@lxpack/conformance
v0.7.0
Published
Shared LessonKit/LXPack export conformance fixtures and matrix runner
Readme
@lxpack/conformance
Shared LessonKit/LXPack export conformance fixtures and a matrix runner — packages a minimal SPA interchange through @lxpack/api and verifies each export target produces output.
Part of LXPack. Docs: LessonKit interoperability · API stability.
| Related | Package |
|---------|---------|
| Packaging API | @lxpack/api |
| Export targets | @lxpack/scorm |
| SPA bridge | @lxpack/spa-bridge |
Install
npm install @lxpack/conformanceRequires Node.js 18 or 20 (18+).
Usage
import {
runConformanceMatrix,
DEFAULT_CONFORMANCE_TARGETS,
} from "@lxpack/conformance";
const result = await runConformanceMatrix();
// or: runConformanceMatrix({ targets: ["scorm12", "standalone"] })
if (!result.ok) {
for (const row of result.results.filter((r) => !r.ok)) {
console.error(row.target, row.message);
}
}Default targets: standalone, scorm12, scorm2004, xapi, cmi5.
Multi-select MCQ conformance
Canonical fixture: test/fixtures/multi-select-valid/ (validate → SCORM 1.2/2004 build → happy-dom quiz pass/fail). LessonKit @lessonkit/lxpack can map answers: string[] descriptors to the same assessment shape for shell injection.
Exports
| Export | Description |
|--------|-------------|
| runConformanceMatrix(options?) | Run packageLessonkit() for each target; returns per-target pass/fail |
| DEFAULT_CONFORMANCE_TARGETS | Default export target list |
| conformanceInterchange() | Minimal v1 lessonkit.json payload for tests |
| conformanceMultiSelectInterchange() | Same fixture with inline multi-select MCQ for answer-key bundle tests |
| conformanceSpaDir() | Path to bundled SPA fixture HTML |
Development
From the monorepo root:
pnpm --filter @lxpack/conformance build
pnpm --filter @lxpack/conformance test
pnpm --filter @lxpack/conformance typecheckLinks
License
Apache-2.0
