LessonKit and LXPack packages¶
LessonKit and LXPack packages (1.0+)¶
LessonKit 1.0 and LXPack 0.6.4 are complementary: LessonKit owns React authoring and the author CLI; LXPack owns validation, learner runtime, and LMS export.
@lessonkit/lxpack is not legacy — it is the primary adapter LessonKit uses to call LXPack.
LessonKit packages (@lessonkit/*)¶
Published from github.com/eddiethedean/lessonkit. Current release: 1.0.0.
| Package | Description |
|---|---|
@lessonkit/react |
Components (Course, Lesson, Quiz, …), hooks, ThemeProvider |
@lessonkit/core |
Types, identity helpers, telemetry catalog |
@lessonkit/xapi |
xAPI statements and telemetry mapping |
@lessonkit/lxpack |
LMS packaging — descriptor → course.yaml + SPA copy → @lxpack/api |
@lessonkit/cli |
lessonkit init, dev, build, package |
@lessonkit/accessibility |
Focus trap, roving tabindex, reduced motion |
@lessonkit/themes |
Theme presets and --lk-* design tokens |
Typical install for React + LMS export:
npm install @lessonkit/react @lessonkit/core @lessonkit/lxpack @lxpack/api
npm install -D @lessonkit/cli
Docs: lessonkit.readthedocs.io
LXPack packages (@lxpack/*)¶
Published from this repository. Current release: 0.6.4. Requires Node.js 18+.
| Package | When to use |
|---|---|
@lxpack/cli |
YAML/markdown courses; lxpack init, preview, validate, build |
@lxpack/api |
Programmatic validateCourse, buildCourse, packageLessonkit (used by @lessonkit/lxpack) |
@lxpack/lessonkit |
Optional — re-exports for LXPack-centric integrators |
@lxpack/spa-bridge |
getLxpackBridge() in SPA bundles |
@lxpack/runtime |
Learner shell embedded in exported packages |
@lxpack/conformance |
Export-target matrix for shared CI |
Which packaging API?¶
| API | Package | Best for |
|---|---|---|
packageLessonkitCourse({ descriptor, … }) |
@lessonkit/lxpack |
LessonKit React projects — descriptor, theme mapping, staged output |
packageLessonkit({ interchange, spaDirs, … }) |
@lxpack/api |
Interchange JSON + SPA dirs without a LessonKit descriptor |
buildCourse({ courseDir, target, … }) |
@lxpack/api |
Existing course.yaml tree |
lxpack build --lessonkit … |
@lxpack/cli |
Shell/CI when you have interchange + dist paths |
All LMS export paths ultimately call LXPack validators and @lxpack/scorm (or xAPI/cmi5 adapters).
@lxpack/lessonkit vs @lessonkit/lxpack¶
These names are easy to confuse:
@lessonkit/lxpack(LessonKit repo) — use this in LessonKit apps. Wraps descriptors, writes project files, calls@lxpack/api.@lxpack/lessonkit(LXPack repo) — thin re-export facade for integrators who want LXPack npm scope only:
import {
packageLessonkit,
parseLessonkitInterchange,
getLxpackBridge,
mapLessonkitTelemetryToLxpack,
} from "@lxpack/lessonkit";
You do not need to replace @lessonkit/lxpack with @lxpack/lessonkit in a LessonKit project.
Identity and scores¶
LessonKit uses courseId, lessonId, and checkId — mapped as-is into LXPack lesson and assessment ids. See LessonKit identity reference.
- Bridge
submitAssessment: scores are 0–1 (scaled). - Packaged assessment YAML:
passingScoremay be absolute points when written to disk.
@lessonkit/lxpack/bridge and @lxpack/spa-bridge share score normalization rules.