@lxpack/runtime 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.js +1582 -1341
- package/dist/core/completion-evaluator.d.ts +13 -0
- package/dist/core/completion-evaluator.d.ts.map +1 -0
- package/dist/core/progress-state.d.ts +20 -0
- package/dist/core/progress-state.d.ts.map +1 -0
- package/dist/flow-conditions.d.ts +4 -0
- package/dist/flow-conditions.d.ts.map +1 -0
- package/dist/flow.d.ts +2 -2
- package/dist/flow.d.ts.map +1 -1
- package/dist/lms/bridge.d.ts +11 -0
- package/dist/lms/bridge.d.ts.map +1 -0
- package/dist/lms/completion-state.d.ts +10 -0
- package/dist/lms/completion-state.d.ts.map +1 -0
- package/dist/lms/factory.d.ts +5 -0
- package/dist/lms/factory.d.ts.map +1 -0
- package/dist/lms/local-bridge.d.ts +15 -0
- package/dist/lms/local-bridge.d.ts.map +1 -0
- package/dist/lms/scorm12-bridge.d.ts +15 -0
- package/dist/lms/scorm12-bridge.d.ts.map +1 -0
- package/dist/lms/scorm2004-bridge.d.ts +15 -0
- package/dist/lms/scorm2004-bridge.d.ts.map +1 -0
- package/dist/{progress-persist.d.ts → progress/codec.d.ts} +2 -3
- package/dist/progress/codec.d.ts.map +1 -0
- package/dist/progress/constants.d.ts +3 -0
- package/dist/progress/constants.d.ts.map +1 -0
- package/dist/progress/size-policy.d.ts +4 -0
- package/dist/progress/size-policy.d.ts.map +1 -0
- package/dist/quiz/host.d.ts +9 -0
- package/dist/quiz/host.d.ts.map +1 -0
- package/dist/quiz/score.d.ts +6 -0
- package/dist/quiz/score.d.ts.map +1 -0
- package/dist/runtime.d.ts +10 -14
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +276 -562
- package/dist/scorm-api.d.ts +1 -1
- package/dist/scorm-api.d.ts.map +1 -1
- package/dist/scorm12-DpGWvsHb.js +375 -0
- package/dist/scorm12.d.ts +3 -0
- package/dist/scorm12.d.ts.map +1 -0
- package/dist/scorm12.js +11 -0
- package/dist/scorm2004.d.ts +2 -0
- package/dist/scorm2004.d.ts.map +1 -0
- package/dist/scorm2004.js +153 -0
- package/package.json +11 -3
- package/dist/progress-persist.d.ts.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CourseManifest } from "@lxpack/validators";
|
|
2
|
+
import type { AssessmentRuntimeConfig } from "@lxpack/validators";
|
|
3
|
+
import type { CourseProgress } from "../types.js";
|
|
4
|
+
import type { CompletionState } from "../lms/completion-state.js";
|
|
5
|
+
export interface CompletionEvaluatorOptions {
|
|
6
|
+
manifest: CourseManifest;
|
|
7
|
+
completionThreshold: number;
|
|
8
|
+
assessmentConfigs: Record<string, AssessmentRuntimeConfig>;
|
|
9
|
+
defaultPassingScores: Record<string, number>;
|
|
10
|
+
passedAssessments: Set<string>;
|
|
11
|
+
}
|
|
12
|
+
export declare function buildCompletionState(progress: CourseProgress, options: CompletionEvaluatorOptions): CompletionState;
|
|
13
|
+
//# sourceMappingURL=completion-evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-evaluator.d.ts","sourceRoot":"","sources":["../../src/core/completion-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGlE,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,cAAc,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAC3D,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,0BAA0B,GAClC,eAAe,CAoCjB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CourseManifest } from "@lxpack/validators";
|
|
2
|
+
import type { CourseProgress } from "../types.js";
|
|
3
|
+
export declare class ProgressState {
|
|
4
|
+
private readonly manifest;
|
|
5
|
+
private readonly defaultPassingScores;
|
|
6
|
+
progress: CourseProgress;
|
|
7
|
+
readonly passedAssessments: Set<string>;
|
|
8
|
+
constructor(initial: CourseProgress, manifest: CourseManifest, defaultPassingScores: Record<string, number>);
|
|
9
|
+
private getAssessmentPassingScore;
|
|
10
|
+
syncPassedAssessments(): void;
|
|
11
|
+
applyAssessmentResult(assessmentId: string, score: number, passingScore: number): void;
|
|
12
|
+
recordAssessmentAttempt(assessmentId: string): number;
|
|
13
|
+
getAssessmentAttemptCount(assessmentId: string): number;
|
|
14
|
+
completeLesson(lessonId: string): void;
|
|
15
|
+
setCurrentLesson(lessonId: string): void;
|
|
16
|
+
isLessonComplete(lessonId: string): boolean;
|
|
17
|
+
isAssessmentPassed(assessmentId: string): boolean;
|
|
18
|
+
getAssessmentPassingScoreForTrack(assessmentId: string): number;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=progress-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress-state.d.ts","sourceRoot":"","sources":["../../src/core/progress-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,qBAAa,aAAa;IAMtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IANvC,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,iBAAiB,cAAqB;gBAG7C,OAAO,EAAE,cAAc,EACN,QAAQ,EAAE,cAAc,EACxB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM/D,OAAO,CAAC,yBAAyB;IASjC,qBAAqB,IAAI,IAAI;IAS7B,qBAAqB,CACnB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GACnB,IAAI;IAWP,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIrD,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIvD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQtC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI3C,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAIjD,iCAAiC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAGhE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-conditions.d.ts","sourceRoot":"","sources":["../src/flow-conditions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAsC7C,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,WAAW,GACf,OAAO,CAQT"}
|
package/dist/flow.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CourseManifest, FlowRule } from "@lxpack/validators";
|
|
2
2
|
export interface FlowContext {
|
|
3
3
|
getVariable: (name: string) => unknown;
|
|
4
4
|
isAssessmentPassed: (id: string) => boolean;
|
|
5
5
|
isInteractionDone: (id: string) => boolean;
|
|
6
6
|
}
|
|
7
|
-
export
|
|
7
|
+
export { evaluateCondition } from "./flow-conditions.js";
|
|
8
8
|
export declare function resolveFlowGoto(manifest: CourseManifest, ctx: FlowContext): string | null;
|
|
9
9
|
export declare function buildActivityOrder(manifest: CourseManifest): string[];
|
|
10
10
|
export declare function resolveLinearAdjacent(manifest: CourseManifest, currentId: string, direction: 1 | -1): string | null;
|
package/dist/flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnE,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C;AAED,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,WAAW,GACf,MAAM,GAAG,IAAI,CAUf;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE,CAMrE;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAChB,MAAM,GAAG,IAAI,CAMf;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,WAAW,GACf,MAAM,GAAG,IAAI,CAMf;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,IAAI,CAEf;AAED,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { CourseProgress } from "../types.js";
|
|
2
|
+
import type { CompletionState } from "./completion-state.js";
|
|
3
|
+
export interface LmsBridge {
|
|
4
|
+
init(): void;
|
|
5
|
+
restoreProgress(defaults: CourseProgress): CourseProgress;
|
|
6
|
+
persist(progress: CourseProgress, serialized: string): void;
|
|
7
|
+
setLocation(lessonId: string): void;
|
|
8
|
+
applyCompletion(state: CompletionState): void;
|
|
9
|
+
terminate(): void;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/lms/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,IAAI,CAAC;IACb,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CAAC;IAC1D,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC9C,SAAS,IAAI,IAAI,CAAC;CACnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface CompletionState {
|
|
2
|
+
ratio: number;
|
|
3
|
+
scorePercent: number;
|
|
4
|
+
allLessonsComplete: boolean;
|
|
5
|
+
allAssessmentsPassed: boolean;
|
|
6
|
+
anyAssessmentFailed: boolean;
|
|
7
|
+
hasAssessments: boolean;
|
|
8
|
+
completionThreshold: number;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=completion-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-state.d.ts","sourceRoot":"","sources":["../../src/lms/completion-state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;CAC7B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RuntimeConfig } from "../types.js";
|
|
2
|
+
import type { LmsBridge } from "./bridge.js";
|
|
3
|
+
export declare function progressStorageKey(title: string, version: string): string;
|
|
4
|
+
export declare function createLmsBridge(mode: RuntimeConfig["mode"], storageKey: string): LmsBridge;
|
|
5
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lms/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,MAAM,CAQR;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,EAC3B,UAAU,EAAE,MAAM,GACjB,SAAS,CAWX"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CourseProgress } from "../types.js";
|
|
2
|
+
import type { CompletionState } from "./completion-state.js";
|
|
3
|
+
import type { LmsBridge } from "./bridge.js";
|
|
4
|
+
/** Preview / standalone: localStorage only, no LMS CMI. */
|
|
5
|
+
export declare class LocalBridge implements LmsBridge {
|
|
6
|
+
private readonly storageKey;
|
|
7
|
+
constructor(storageKey: string);
|
|
8
|
+
init(): void;
|
|
9
|
+
restoreProgress(defaults: CourseProgress): CourseProgress;
|
|
10
|
+
persist(_progress: CourseProgress, serialized: string): void;
|
|
11
|
+
setLocation(_lessonId: string): void;
|
|
12
|
+
applyCompletion(_state: CompletionState): void;
|
|
13
|
+
terminate(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=local-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-bridge.d.ts","sourceRoot":"","sources":["../../src/lms/local-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,2DAA2D;AAC3D,qBAAa,WAAY,YAAW,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAE/C,IAAI,IAAI,IAAI;IAIZ,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc;IAazD,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ5D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIpC,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAI9C,SAAS,IAAI,IAAI;CAGlB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CourseProgress } from "../types.js";
|
|
2
|
+
import type { ScormConnection } from "../scorm-api.js";
|
|
3
|
+
import type { CompletionState } from "./completion-state.js";
|
|
4
|
+
import type { LmsBridge } from "./bridge.js";
|
|
5
|
+
export declare class Scorm12Bridge implements LmsBridge {
|
|
6
|
+
private readonly connection;
|
|
7
|
+
constructor(connection: ScormConnection);
|
|
8
|
+
init(): void;
|
|
9
|
+
restoreProgress(defaults: CourseProgress): CourseProgress;
|
|
10
|
+
persist(_progress: CourseProgress, serialized: string): void;
|
|
11
|
+
setLocation(lessonId: string): void;
|
|
12
|
+
applyCompletion(state: CompletionState): void;
|
|
13
|
+
terminate(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=scorm12-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scorm12-bridge.d.ts","sourceRoot":"","sources":["../../src/lms/scorm12-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,aAAc,YAAW,SAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,eAAe;IAExD,IAAI,IAAI,IAAI;IAIZ,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc;IAkBzD,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAK5D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAiB7C,SAAS,IAAI,IAAI;CAGlB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CourseProgress } from "../types.js";
|
|
2
|
+
import type { Scorm2004Connection } from "../scorm2004-api.js";
|
|
3
|
+
import type { CompletionState } from "./completion-state.js";
|
|
4
|
+
import type { LmsBridge } from "./bridge.js";
|
|
5
|
+
export declare class Scorm2004Bridge implements LmsBridge {
|
|
6
|
+
private readonly connection;
|
|
7
|
+
constructor(connection: Scorm2004Connection);
|
|
8
|
+
init(): void;
|
|
9
|
+
restoreProgress(defaults: CourseProgress): CourseProgress;
|
|
10
|
+
persist(_progress: CourseProgress, serialized: string): void;
|
|
11
|
+
setLocation(lessonId: string): void;
|
|
12
|
+
applyCompletion(state: CompletionState): void;
|
|
13
|
+
terminate(): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=scorm2004-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scorm2004-bridge.d.ts","sourceRoot":"","sources":["../../src/lms/scorm2004-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,qBAAa,eAAgB,YAAW,SAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,mBAAmB;IAE5D,IAAI,IAAI,IAAI;IAIZ,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc;IAkBzD,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAK5D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAkB7C,SAAS,IAAI,IAAI;CAGlB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CourseProgress } from "
|
|
1
|
+
import type { CourseProgress } from "../types.js";
|
|
2
2
|
interface CompactProgress {
|
|
3
3
|
c?: string;
|
|
4
4
|
l?: string[];
|
|
@@ -7,11 +7,10 @@ interface CompactProgress {
|
|
|
7
7
|
}
|
|
8
8
|
export declare function compactProgress(progress: CourseProgress): CompactProgress;
|
|
9
9
|
export declare function expandProgress(compact: CompactProgress, defaults: CourseProgress): CourseProgress;
|
|
10
|
-
export declare function serializeProgressForStorage(progress: CourseProgress): string;
|
|
11
10
|
export declare function expandLegacyProgress(saved: Partial<CourseProgress>, defaults: CourseProgress): CourseProgress;
|
|
12
11
|
export declare function parseStoredProgress(raw: string, defaults: CourseProgress): {
|
|
13
12
|
progress: CourseProgress;
|
|
14
13
|
parsed: boolean;
|
|
15
14
|
};
|
|
16
15
|
export {};
|
|
17
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/progress/codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,UAAU,eAAe;IACvB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,eAAe,CAWzE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,cAAc,GACvB,cAAc,CAahB;AAYD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,EAC9B,QAAQ,EAAE,cAAc,GACvB,cAAc,CAehB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,cAAc,GACvB;IAAE,QAAQ,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAa/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/progress/constants.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,OAAO,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CourseProgress } from "../types.js";
|
|
2
|
+
export declare function serializeProgressForStorage(progress: CourseProgress, maxBytes?: number): string;
|
|
3
|
+
export declare function trimSuspendData(data: string, maxBytes?: number): string;
|
|
4
|
+
//# sourceMappingURL=size-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"size-policy.d.ts","sourceRoot":"","sources":["../../src/progress/size-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAyGlD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,cAAc,EACxB,QAAQ,SAAyB,GAChC,MAAM,CAmBR;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAyB,GAChC,MAAM,CAmBR"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CourseProgress } from "../types.js";
|
|
2
|
+
/** Minimal surface for quiz UI (ISP). */
|
|
3
|
+
export interface AssessmentHost {
|
|
4
|
+
getProgress(): CourseProgress;
|
|
5
|
+
getAssessmentAttemptCount(assessmentId: string): number;
|
|
6
|
+
isAssessmentPassed(assessmentId: string): boolean;
|
|
7
|
+
submitAssessment(assessmentId: string, score: number, passingScore: number): void;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/quiz/host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,WAAW,IAAI,cAAc,CAAC;IAC9B,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IACxD,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAClD,gBAAgB,CACd,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GACnB,IAAI,CAAC;CACT"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LearnerAssessment } from "@lxpack/validators";
|
|
2
|
+
export declare function scoreAssessmentForm(assessment: LearnerAssessment, answerKey: Record<string, string>, form: HTMLFormElement): number;
|
|
3
|
+
export declare function shuffleQuestions<T>(items: T[]): T[];
|
|
4
|
+
export declare function getAttemptCount(suspendData: Record<string, unknown>, assessmentId: string): number;
|
|
5
|
+
export declare function incrementAttemptCount(suspendData: Record<string, unknown>, assessmentId: string): number;
|
|
6
|
+
//# sourceMappingURL=score.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../src/quiz/score.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,IAAI,EAAE,eAAe,GACpB,MAAM,CAYR;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAOnD;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,YAAY,EAAE,MAAM,GACnB,MAAM,CAOR;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,YAAY,EAAE,MAAM,GACnB,MAAM,CAIR"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,28 +1,21 @@
|
|
|
1
1
|
import type { CourseManifest, CourseProgress, LxpackAPI, RuntimeConfig, TrackEvent } from "./types.js";
|
|
2
2
|
import type { FlowContext } from "./flow.js";
|
|
3
|
-
|
|
3
|
+
import type { AssessmentHost } from "./quiz/host.js";
|
|
4
|
+
export declare class LxpackRuntime implements AssessmentHost {
|
|
4
5
|
private manifest;
|
|
5
|
-
private
|
|
6
|
-
private
|
|
7
|
-
private scorm2004;
|
|
6
|
+
private state;
|
|
7
|
+
private bridge;
|
|
8
8
|
private completionThreshold;
|
|
9
|
-
private
|
|
10
|
-
private mode;
|
|
11
|
-
private passedAssessments;
|
|
9
|
+
private assessmentConfigs;
|
|
12
10
|
private defaultPassingScores;
|
|
13
11
|
private terminated;
|
|
14
12
|
constructor(config: RuntimeConfig);
|
|
15
|
-
private restoreLessonLocation;
|
|
16
|
-
private restoreScorm2004Progress;
|
|
17
|
-
private restoreScormProgress;
|
|
18
|
-
private restoreLocalProgress;
|
|
19
|
-
private syncPassedAssessments;
|
|
20
|
-
private getAssessmentPassingScore;
|
|
21
13
|
getAPI(): LxpackAPI;
|
|
22
14
|
track(event: TrackEvent, options?: {
|
|
23
15
|
persist?: boolean;
|
|
24
16
|
}): void;
|
|
25
|
-
|
|
17
|
+
recordAssessmentAttempt(assessmentId: string): number;
|
|
18
|
+
getAssessmentAttemptCount(assessmentId: string): number;
|
|
26
19
|
submitAssessment(assessmentId: string, score: number, passingScore: number): void;
|
|
27
20
|
completeLesson(lessonId: string): void;
|
|
28
21
|
setCurrentLesson(lessonId: string): void;
|
|
@@ -39,5 +32,8 @@ export declare class LxpackRuntime {
|
|
|
39
32
|
terminate(): void;
|
|
40
33
|
}
|
|
41
34
|
export { createScormConnection, findLmsApi, Scorm12Adapter, Scorm12Simulator, Scorm12API, installScormAPI, trimSuspendData, } from "./scorm-api.js";
|
|
35
|
+
export { SCORM_SUSPEND_DATA_MAX } from "./progress/constants.js";
|
|
42
36
|
export type { CourseManifest, CourseProgress, LxpackAPI, RuntimeConfig, TrackEvent };
|
|
37
|
+
export type { LmsBridge } from "./lms/bridge.js";
|
|
38
|
+
export type { AssessmentHost } from "./quiz/host.js";
|
|
43
39
|
//# sourceMappingURL=runtime.d.ts.map
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAC;AAOpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAO7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,oBAAoB,CAAyB;IACrD,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,aAAa;IA0CjC,MAAM,IAAI,SAAS;IAwBnB,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IA2B/D,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIrD,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIvD,gBAAgB,CACd,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,GACnB,IAAI;IAOP,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMtC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMxC,WAAW,IAAI,cAAc;IAU7B,WAAW,IAAI,cAAc;IAI7B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI3C,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAIjD,aAAa,IAAI,MAAM;IAKvB,kBAAkB,IAAI,MAAM;IAU5B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,OAAO;IAKf,cAAc,IAAI,WAAW;IAU7B,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAItC,SAAS,IAAI,IAAI;CAKlB;AAED,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACrF,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|