@lxpack/runtime 0.2.1 → 0.2.2

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.
@@ -1 +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"}
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;AAkHlD,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"}
@@ -1 +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"}
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,CASR;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,YAAY,EAAE,MAAM,GACnB,MAAM,CAIR"}
@@ -0,0 +1,8 @@
1
+ import type { AssessmentRuntimeConfig, LearnerAssessment, QuestionFeedback } from "@lxpack/validators";
2
+ export type { AssessmentRuntimeConfig, QuestionFeedback };
3
+ export declare const DEFAULT_ASSESSMENT_CONFIG: AssessmentRuntimeConfig;
4
+ export interface RuntimeAssessmentPayload extends LearnerAssessment {
5
+ config?: Partial<AssessmentRuntimeConfig>;
6
+ feedback?: QuestionFeedback;
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/quiz/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,CAAC;AAE1D,eAAO,MAAM,yBAAyB,EAAE,uBAIvC,CAAC;AAEF,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B"}
package/dist/runtime.d.ts CHANGED
@@ -17,6 +17,8 @@ export declare class LxpackRuntime implements AssessmentHost {
17
17
  recordAssessmentAttempt(assessmentId: string): number;
18
18
  getAssessmentAttemptCount(assessmentId: string): number;
19
19
  submitAssessment(assessmentId: string, score: number, passingScore: number): void;
20
+ private getMaxAttempts;
21
+ private canAcceptAssessmentSubmission;
20
22
  completeLesson(lessonId: string): void;
21
23
  setCurrentLesson(lessonId: string): void;
22
24
  getProgress(): CourseProgress;
@@ -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;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"}
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;AAQ7C,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;IAuB/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;IAUP,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,6BAA6B;IAQrC,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"}
package/dist/runtime.js CHANGED
@@ -1,12 +1,14 @@
1
- var M = Object.defineProperty;
2
- var T = (t, s, e) => s in t ? M(t, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[s] = e;
1
+ var F = Object.defineProperty;
2
+ var T = (t, s, e) => s in t ? F(t, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[s] = e;
3
3
  var a = (t, s, e) => T(t, typeof s != "symbol" ? s + "" : s, e);
4
- import { p as f, d as F, s as I } from "./scorm12-DpGWvsHb.js";
5
- import { S as Q, a as W, b as Y, c as Z, f as ss, i as es, t as ts } from "./scorm12-DpGWvsHb.js";
6
- import { createScorm2004Connection as N } from "./scorm2004.js";
7
- const x = "v:";
4
+ import { p as f, s as N } from "./size-policy-BE1zjEBP.js";
5
+ import { S as Y } from "./size-policy-BE1zjEBP.js";
6
+ import { createScormConnection as V } from "./scorm12.js";
7
+ import { Scorm12API as ss, Scorm12Adapter as es, Scorm12Simulator as ts, findLmsApi as ns, installScormAPI as is, trimSuspendData as rs } from "./scorm12.js";
8
+ import { createScorm2004Connection as v } from "./scorm2004.js";
9
+ const I = "v:";
8
10
  function g(t) {
9
- return `${x}${t}`;
11
+ return `${I}${t}`;
10
12
  }
11
13
  function y(t, s) {
12
14
  for (const [e, n] of Object.entries(t.variables ?? {})) {
@@ -20,7 +22,7 @@ function _(t, s) {
20
22
  function $(t, s, e) {
21
23
  t[g(s)] = e;
22
24
  }
23
- const R = [
25
+ const G = [
24
26
  (t, s) => {
25
27
  var e;
26
28
  if ("variable" in t && ((e = t.variable) != null && e.eq)) {
@@ -41,7 +43,7 @@ const R = [
41
43
  (t, s) => "any" in t && t.any ? t.any.some((e) => d(e, s)) : null
42
44
  ];
43
45
  function d(t, s) {
44
- for (const e of R) {
46
+ for (const e of G) {
45
47
  const n = e(t, s);
46
48
  if (n !== null)
47
49
  return n;
@@ -56,7 +58,10 @@ function k(t, s) {
56
58
  return n.goto;
57
59
  return null;
58
60
  }
59
- class G {
61
+ const R = {
62
+ maxAttempts: 1
63
+ };
64
+ class B {
60
65
  constructor(s) {
61
66
  this.connection = s;
62
67
  }
@@ -89,7 +94,7 @@ class G {
89
94
  this.connection.LMSFinish();
90
95
  }
91
96
  }
92
- class B {
97
+ class E {
93
98
  constructor(s) {
94
99
  this.connection = s;
95
100
  }
@@ -157,15 +162,16 @@ function K(t, s) {
157
162
  n = (n << 5) - n + e.charCodeAt(i), n |= 0;
158
163
  return `lxpack_progress_${Math.abs(n)}`;
159
164
  }
160
- function z(t, s) {
161
- return t === "scorm12" ? new G(F("scorm12")) : t === "scorm2004" ? new B(N("scorm2004")) : t === "preview" || t === "standalone" ? new D(s) : new D(s);
165
+ function O(t, s) {
166
+ return t === "scorm12" ? new B(V("scorm12")) : t === "scorm2004" ? new E(v("scorm2004")) : t === "preview" || t === "standalone" ? new D(s) : new D(s);
162
167
  }
163
- function S(t, s) {
168
+ function A(t, s) {
164
169
  const e = t[`assessment_attempts_${s}`];
165
- return typeof e == "number" ? e : typeof e == "string" && e !== "" && !Number.isNaN(Number(e)) ? Number(e) : 0;
170
+ let n = 0;
171
+ return typeof e == "number" ? n = e : typeof e == "string" && e !== "" && !Number.isNaN(Number(e)) && (n = Number(e)), !Number.isFinite(n) || n < 0 ? 0 : Math.floor(n);
166
172
  }
167
- function O(t, s) {
168
- const e = S(t, s) + 1;
173
+ function z(t, s) {
174
+ const e = A(t, s) + 1;
169
175
  return t[`assessment_attempts_${s}`] = e, e;
170
176
  }
171
177
  class j {
@@ -187,10 +193,10 @@ class j {
187
193
  this.progress.assessmentScores[s] = e, this.progress.suspendData[`assessment_passing_${s}`] = n, e >= n ? this.passedAssessments.add(s) : this.passedAssessments.delete(s);
188
194
  }
189
195
  recordAssessmentAttempt(s) {
190
- return O(this.progress.suspendData, s);
196
+ return z(this.progress.suspendData, s);
191
197
  }
192
198
  getAssessmentAttemptCount(s) {
193
- return S(this.progress.suspendData, s);
199
+ return A(this.progress.suspendData, s);
194
200
  }
195
201
  completeLesson(s) {
196
202
  new Set(this.manifest.lessons.map((n) => n.id)).has(s) && (this.progress.completedLessons.includes(s) || this.progress.completedLessons.push(s));
@@ -208,29 +214,29 @@ class j {
208
214
  return this.getAssessmentPassingScore(s);
209
215
  }
210
216
  }
211
- function w(t, s) {
212
- var A, L, C, P;
213
- const { manifest: e, completionThreshold: n, passedAssessments: i } = s, c = e.lessons.length, r = ((A = e.assessments) == null ? void 0 : A.length) ?? 0, l = c + r, m = t.completedLessons.filter(
214
- (o) => e.lessons.some((p) => p.id === o)
215
- ).length, u = l === 0 ? 0 : (m + i.size) / l, h = e.lessons.every(
217
+ function x(t, s) {
218
+ var S, L, C, P;
219
+ const { manifest: e, completionThreshold: n, passedAssessments: i } = s, c = e.lessons.length, r = ((S = e.assessments) == null ? void 0 : S.length) ?? 0, m = c + r, l = t.completedLessons.filter(
220
+ (o) => e.lessons.some((h) => h.id === o)
221
+ ).length, u = m === 0 ? 0 : (l + i.size) / m, p = e.lessons.every(
216
222
  (o) => t.completedLessons.includes(o.id)
217
- ), V = !((L = e.assessments) != null && L.length) || e.assessments.every((o) => i.has(o.id)), v = (C = e.assessments) == null ? void 0 : C.some((o) => {
223
+ ), M = !((L = e.assessments) != null && L.length) || e.assessments.every((o) => i.has(o.id)), w = (C = e.assessments) == null ? void 0 : C.some((o) => {
218
224
  var b;
219
225
  if (!(o.id in t.assessmentScores) || i.has(o.id)) return !1;
220
- const p = ((b = s.assessmentConfigs[o.id]) == null ? void 0 : b.maxAttempts) ?? 1;
221
- return S(t.suspendData, o.id) >= p;
226
+ const h = ((b = s.assessmentConfigs[o.id]) == null ? void 0 : b.maxAttempts) ?? 1;
227
+ return A(t.suspendData, o.id) >= h;
222
228
  });
223
229
  return {
224
230
  ratio: u,
225
231
  scorePercent: Math.round(u * 100),
226
- allLessonsComplete: h,
227
- allAssessmentsPassed: V,
228
- anyAssessmentFailed: !!v,
232
+ allLessonsComplete: p,
233
+ allAssessmentsPassed: M,
234
+ anyAssessmentFailed: !!w,
229
235
  hasAssessments: (((P = e.assessments) == null ? void 0 : P.length) ?? 0) > 0,
230
236
  completionThreshold: n
231
237
  };
232
238
  }
233
- class X {
239
+ class J {
234
240
  constructor(s) {
235
241
  a(this, "manifest");
236
242
  a(this, "state");
@@ -239,17 +245,17 @@ class X {
239
245
  a(this, "assessmentConfigs");
240
246
  a(this, "defaultPassingScores");
241
247
  a(this, "terminated", !1);
242
- var r, l, m;
243
- this.manifest = s.manifest, this.completionThreshold = ((l = (r = s.manifest.tracking) == null ? void 0 : r.completion) == null ? void 0 : l.threshold) ?? 0.9;
248
+ var r, m, l;
249
+ this.manifest = s.manifest, this.completionThreshold = ((m = (r = s.manifest.tracking) == null ? void 0 : r.completion) == null ? void 0 : m.threshold) ?? 0.9;
244
250
  const e = K(
245
251
  s.manifest.title,
246
252
  s.manifest.version
247
253
  );
248
- this.bridge = z(s.mode, e), this.defaultPassingScores = {};
249
- for (const [u, h] of Object.entries(s.assessments ?? {}))
250
- this.defaultPassingScores[u] = h.passingScore;
254
+ this.bridge = O(s.mode, e), this.defaultPassingScores = {};
255
+ for (const [u, p] of Object.entries(s.assessments ?? {}))
256
+ this.defaultPassingScores[u] = p.passingScore;
251
257
  this.assessmentConfigs = s.assessmentConfigs ?? {};
252
- const n = s.activityId ?? ((m = s.manifest.lessons[0]) == null ? void 0 : m.id) ?? "", i = s.progress ?? {
258
+ const n = s.activityId ?? ((l = s.manifest.lessons[0]) == null ? void 0 : l.id) ?? "", i = s.progress ?? {
253
259
  currentLessonId: n,
254
260
  completedLessons: [],
255
261
  assessmentScores: {},
@@ -280,7 +286,7 @@ class X {
280
286
  if (s.type === "interaction" && s.id && (this.state.progress.suspendData[`interaction_${s.id}`] = s.data ?? !0, console.debug("[lxpack] interaction:", s.id, s.data)), s.type === "assessment" && s.id) {
281
287
  const c = typeof ((n = s.data) == null ? void 0 : n.passingScore) == "number" ? Number(s.data.passingScore) : this.state.getAssessmentPassingScoreForTrack(s.id), r = ((i = s.data) == null ? void 0 : i.score) != null ? Number(s.data.score) : void 0;
282
288
  if (r != null && !Number.isNaN(r)) {
283
- this.state.applyAssessmentResult(s.id, r, c), (e == null ? void 0 : e.persist) !== !1 && (this.updateCompletion(), this.persist());
289
+ this.submitAssessment(s.id, r, c);
284
290
  return;
285
291
  }
286
292
  }
@@ -293,7 +299,17 @@ class X {
293
299
  return this.state.getAssessmentAttemptCount(s);
294
300
  }
295
301
  submitAssessment(s, e, n) {
296
- this.state.recordAssessmentAttempt(s), this.state.applyAssessmentResult(s, e, n), this.updateCompletion(), this.persist();
302
+ this.canAcceptAssessmentSubmission(s) && (this.state.recordAssessmentAttempt(s), this.state.applyAssessmentResult(s, e, n), this.updateCompletion(), this.persist());
303
+ }
304
+ getMaxAttempts(s) {
305
+ const e = this.assessmentConfigs[s];
306
+ return (e == null ? void 0 : e.maxAttempts) ?? R.maxAttempts;
307
+ }
308
+ canAcceptAssessmentSubmission(s) {
309
+ if (this.isAssessmentPassed(s))
310
+ return !1;
311
+ const e = this.getMaxAttempts(s);
312
+ return this.getAssessmentAttemptCount(s) < e;
297
313
  }
298
314
  completeLesson(s) {
299
315
  this.state.completeLesson(s), this.updateCompletion(), this.persist();
@@ -325,7 +341,7 @@ class X {
325
341
  return this.manifest.lessons.length + s;
326
342
  }
327
343
  getCompletionRatio() {
328
- return w(this.state.progress, {
344
+ return x(this.state.progress, {
329
345
  manifest: this.manifest,
330
346
  completionThreshold: this.completionThreshold,
331
347
  assessmentConfigs: this.assessmentConfigs,
@@ -334,7 +350,7 @@ class X {
334
350
  }).ratio;
335
351
  }
336
352
  updateCompletion() {
337
- const s = w(this.state.progress, {
353
+ const s = x(this.state.progress, {
338
354
  manifest: this.manifest,
339
355
  completionThreshold: this.completionThreshold,
340
356
  assessmentConfigs: this.assessmentConfigs,
@@ -344,7 +360,7 @@ class X {
344
360
  this.bridge.applyCompletion(s);
345
361
  }
346
362
  persist() {
347
- const s = I(this.state.progress);
363
+ const s = N(this.state.progress);
348
364
  this.bridge.persist(this.state.progress, s);
349
365
  }
350
366
  getFlowContext() {
@@ -362,13 +378,13 @@ class X {
362
378
  }
363
379
  }
364
380
  export {
365
- X as LxpackRuntime,
366
- Q as SCORM_SUSPEND_DATA_MAX,
367
- W as Scorm12API,
368
- Y as Scorm12Adapter,
369
- Z as Scorm12Simulator,
370
- F as createScormConnection,
371
- ss as findLmsApi,
372
- es as installScormAPI,
373
- ts as trimSuspendData
381
+ J as LxpackRuntime,
382
+ Y as SCORM_SUSPEND_DATA_MAX,
383
+ ss as Scorm12API,
384
+ es as Scorm12Adapter,
385
+ ts as Scorm12Simulator,
386
+ V as createScormConnection,
387
+ ns as findLmsApi,
388
+ is as installScormAPI,
389
+ rs as trimSuspendData
374
390
  };
package/dist/scorm12.js CHANGED
@@ -1,11 +1,247 @@
1
- import { S as s, a as S, b as o, c as m, d as t, f as c, i, t as A } from "./scorm12-DpGWvsHb.js";
1
+ var u = Object.defineProperty;
2
+ var d = (r, t, e) => t in r ? u(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
3
+ var s = (r, t, e) => d(r, typeof t != "symbol" ? t + "" : t, e);
4
+ import { t as S } from "./size-policy-BE1zjEBP.js";
5
+ import { S as T } from "./size-policy-BE1zjEBP.js";
6
+ const i = "0", a = "301", n = "302", h = "lxpack_scorm12_preview";
7
+ function m(r = 500) {
8
+ let t = window, e = 0;
9
+ for (; t && e < r; ) {
10
+ try {
11
+ const c = t.API;
12
+ if (c && typeof c.LMSInitialize == "function")
13
+ return c;
14
+ } catch {
15
+ }
16
+ try {
17
+ if (t.parent && t.parent !== t)
18
+ t = t.parent;
19
+ else if (t.opener && !t.opener.closed)
20
+ t = t.opener;
21
+ else
22
+ break;
23
+ } catch {
24
+ break;
25
+ }
26
+ e++;
27
+ }
28
+ return null;
29
+ }
30
+ class f {
31
+ constructor(t) {
32
+ s(this, "api");
33
+ s(this, "initialized", !1);
34
+ s(this, "terminated", !1);
35
+ s(this, "lastError", i);
36
+ this.api = t;
37
+ }
38
+ LMSInitialize() {
39
+ if (this.initialized)
40
+ return this.lastError = a, "false";
41
+ const t = this.api.LMSInitialize("");
42
+ return t === "true" && (this.initialized = !0, this.terminated = !1, this.lastError = i), t;
43
+ }
44
+ LMSFinish() {
45
+ if (!this.initialized || this.terminated)
46
+ return this.lastError = n, "false";
47
+ const t = this.api.LMSFinish("");
48
+ return t === "true" && (this.terminated = !0, this.lastError = i), t;
49
+ }
50
+ LMSGetValue(t) {
51
+ return !this.initialized || this.terminated ? (this.lastError = a, "") : (this.lastError = i, this.api.LMSGetValue(t));
52
+ }
53
+ LMSSetValue(t, e) {
54
+ return !this.initialized || this.terminated ? (this.lastError = a, "false") : (this.lastError = i, this.api.LMSSetValue(t, e));
55
+ }
56
+ LMSCommit() {
57
+ return !this.initialized || this.terminated ? (this.lastError = a, "false") : (this.lastError = i, this.api.LMSCommit(""));
58
+ }
59
+ LMSGetLastError() {
60
+ return this.lastError;
61
+ }
62
+ LMSGetErrorString(t) {
63
+ const e = t ?? this.lastError;
64
+ return e === a ? "Not initialized" : e === n ? "Already terminated" : this.api.LMSGetErrorString(e);
65
+ }
66
+ LMSGetDiagnostic(t) {
67
+ return this.api.LMSGetDiagnostic(t ?? this.lastError);
68
+ }
69
+ setLessonStatus(t) {
70
+ this.LMSSetValue("cmi.core.lesson_status", t);
71
+ }
72
+ setScore(t, e = 100) {
73
+ this.LMSSetValue("cmi.core.score.raw", String(t)), this.LMSSetValue("cmi.core.score.max", String(e)), this.LMSSetValue("cmi.core.score.min", "0");
74
+ }
75
+ setSuspendData(t) {
76
+ const e = l(t);
77
+ this.LMSSetValue("cmi.suspend_data", e);
78
+ }
79
+ setLessonLocation(t) {
80
+ this.LMSSetValue("cmi.core.lesson_location", t);
81
+ }
82
+ }
83
+ class o {
84
+ constructor(t = {}) {
85
+ s(this, "data", {
86
+ lessonStatus: "not attempted",
87
+ scoreRaw: 0,
88
+ scoreMin: 0,
89
+ scoreMax: 100,
90
+ suspendData: "",
91
+ lessonLocation: "",
92
+ entry: "ab-initio",
93
+ exit: "",
94
+ sessionTime: "00:00:00"
95
+ });
96
+ s(this, "initialized", !1);
97
+ s(this, "terminated", !1);
98
+ s(this, "lastError", i);
99
+ s(this, "persistToStorage");
100
+ this.persistToStorage = t.persistToStorage ?? !1, t.initialData && (this.data = { ...this.data, ...t.initialData }), this.persistToStorage && this.loadFromStorage();
101
+ }
102
+ LMSInitialize() {
103
+ return this.initialized ? (this.lastError = a, "false") : (this.initialized = !0, this.terminated = !1, this.lastError = i, "true");
104
+ }
105
+ LMSFinish() {
106
+ return !this.initialized || this.terminated ? (this.lastError = n, "false") : (this.data.exit = "suspend", this.terminated = !0, this.saveToStorage(), this.lastError = i, "true");
107
+ }
108
+ LMSGetValue(t) {
109
+ if (!this.initialized || this.terminated)
110
+ return this.lastError = a, "";
111
+ switch (this.lastError = i, t) {
112
+ case "cmi.core.lesson_status":
113
+ return this.data.lessonStatus;
114
+ case "cmi.core.score.raw":
115
+ return String(this.data.scoreRaw);
116
+ case "cmi.core.score.min":
117
+ return String(this.data.scoreMin);
118
+ case "cmi.core.score.max":
119
+ return String(this.data.scoreMax);
120
+ case "cmi.suspend_data":
121
+ return this.data.suspendData;
122
+ case "cmi.core.lesson_location":
123
+ return this.data.lessonLocation;
124
+ case "cmi.core.student_id":
125
+ return "lxpack-learner";
126
+ case "cmi.core.student_name":
127
+ return "LXPack Learner";
128
+ case "cmi.core.entry":
129
+ return this.data.entry;
130
+ case "cmi.core.exit":
131
+ return this.data.exit;
132
+ case "cmi.core.session_time":
133
+ return this.data.sessionTime;
134
+ default:
135
+ return "";
136
+ }
137
+ }
138
+ LMSSetValue(t, e) {
139
+ if (!this.initialized || this.terminated)
140
+ return this.lastError = a, "false";
141
+ switch (this.lastError = i, t) {
142
+ case "cmi.core.lesson_status":
143
+ this.data.lessonStatus = e;
144
+ break;
145
+ case "cmi.core.score.raw":
146
+ this.data.scoreRaw = Number(e);
147
+ break;
148
+ case "cmi.core.score.min":
149
+ this.data.scoreMin = Number(e);
150
+ break;
151
+ case "cmi.core.score.max":
152
+ this.data.scoreMax = Number(e);
153
+ break;
154
+ case "cmi.suspend_data":
155
+ this.data.suspendData = l(e);
156
+ break;
157
+ case "cmi.core.lesson_location":
158
+ this.data.lessonLocation = e;
159
+ break;
160
+ case "cmi.core.exit":
161
+ this.data.exit = e;
162
+ break;
163
+ case "cmi.core.session_time":
164
+ this.data.sessionTime = e;
165
+ break;
166
+ default:
167
+ return "false";
168
+ }
169
+ return this.saveToStorage(), "true";
170
+ }
171
+ LMSCommit() {
172
+ return !this.initialized || this.terminated ? (this.lastError = a, "false") : (this.saveToStorage(), this.lastError = i, "true");
173
+ }
174
+ LMSGetLastError() {
175
+ return this.lastError;
176
+ }
177
+ LMSGetErrorString(t) {
178
+ const e = t ?? this.lastError;
179
+ return e === a ? "Not initialized" : e === n ? "Already terminated" : "No error";
180
+ }
181
+ LMSGetDiagnostic() {
182
+ return "";
183
+ }
184
+ setLessonStatus(t) {
185
+ this.data.lessonStatus = t, this.saveToStorage();
186
+ }
187
+ setScore(t, e = 100) {
188
+ this.data.scoreRaw = t, this.data.scoreMax = e, this.data.scoreMin = 0, this.saveToStorage();
189
+ }
190
+ setSuspendData(t) {
191
+ this.data.suspendData = l(t), this.saveToStorage();
192
+ }
193
+ setLessonLocation(t) {
194
+ this.data.lessonLocation = t, this.saveToStorage();
195
+ }
196
+ loadFromStorage() {
197
+ try {
198
+ const t = localStorage.getItem(h);
199
+ t && (this.data = { ...this.data, ...JSON.parse(t) });
200
+ } catch {
201
+ }
202
+ }
203
+ saveToStorage() {
204
+ if (this.persistToStorage)
205
+ try {
206
+ localStorage.setItem(h, JSON.stringify(this.data));
207
+ } catch {
208
+ }
209
+ }
210
+ }
211
+ class E extends o {
212
+ constructor() {
213
+ super({ persistToStorage: !0 });
214
+ }
215
+ }
216
+ function l(r) {
217
+ return S(r);
218
+ }
219
+ function p(r) {
220
+ if (r === "preview")
221
+ return new o({ persistToStorage: !0 });
222
+ if (r === "scorm12") {
223
+ const t = m();
224
+ return t ? new f(t) : (console.warn(
225
+ "[lxpack] No LMS SCORM API found; using in-memory simulator (progress will not persist to LMS)"
226
+ ), new o({ persistToStorage: !1 }));
227
+ }
228
+ return new o({ persistToStorage: !1 });
229
+ }
230
+ function g(r = "preview") {
231
+ const t = p(r);
232
+ if (r === "preview") {
233
+ const e = window;
234
+ e.API = t;
235
+ }
236
+ return t;
237
+ }
2
238
  export {
3
- s as SCORM_SUSPEND_DATA_MAX,
4
- S as Scorm12API,
5
- o as Scorm12Adapter,
6
- m as Scorm12Simulator,
7
- t as createScormConnection,
8
- c as findLmsApi,
9
- i as installScormAPI,
10
- A as trimSuspendData
239
+ T as SCORM_SUSPEND_DATA_MAX,
240
+ E as Scorm12API,
241
+ f as Scorm12Adapter,
242
+ o as Scorm12Simulator,
243
+ p as createScormConnection,
244
+ m as findLmsApi,
245
+ g as installScormAPI,
246
+ l as trimSuspendData
11
247
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scorm2004-api.d.ts","sourceRoot":"","sources":["../src/scorm2004-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACjD,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,YAAY,IAAI,MAAM,CAAC;IACvB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3C;AAKD,wBAAgB,gBAAgB,CAAC,QAAQ,SAAM,GAAG,gBAAgB,GAAG,IAAI,CA8BxE;AAED,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAOV;IACF,OAAO,CAAC,gBAAgB,CAAU;gBAEtB,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE;IAcpD,OAAO,CAAC,IAAI;IASZ,UAAU,IAAI,MAAM;IAOpB,SAAS,IAAI,MAAM;IAOnB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAKjC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAOhD,MAAM,IAAI,MAAM;IAMhB,YAAY,IAAI,MAAM;IAItB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIzC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGrC;AAED,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,OAAO,CAAC,GAAG,CAAmB;gBAElB,GAAG,EAAE,gBAAgB;IAIjC,UAAU,IAAI,MAAM;IAIpB,SAAS,IAAI,MAAM;IAInB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIjC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhD,MAAM,IAAI,MAAM;IAIhB,YAAY,IAAI,MAAM;IAItB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAI1C,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAIzC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIzC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGrC;AAED,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAExE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,GAAG,WAAW,GAC5B,mBAAmB,CAarB"}
1
+ {"version":3,"file":"scorm2004-api.d.ts","sourceRoot":"","sources":["../src/scorm2004-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACjD,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,YAAY,IAAI,MAAM,CAAC;IACvB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3C;AAKD,wBAAgB,gBAAgB,CAAC,QAAQ,SAAM,GAAG,gBAAgB,GAAG,IAAI,CA8BxE;AAED,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAOV;IACF,OAAO,CAAC,gBAAgB,CAAU;gBAEtB,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAAE;IAcpD,OAAO,CAAC,IAAI;IASZ,UAAU,IAAI,MAAM;IAOpB,SAAS,IAAI,MAAM;IAOnB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAKjC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAQhD,MAAM,IAAI,MAAM;IAMhB,YAAY,IAAI,MAAM;IAItB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,MAAM;IAIvB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIzC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGrC;AAED,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,OAAO,CAAC,GAAG,CAAmB;gBAElB,GAAG,EAAE,gBAAgB;IAIjC,UAAU,IAAI,MAAM;IAIpB,SAAS,IAAI,MAAM;IAInB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIjC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAMhD,MAAM,IAAI,MAAM;IAIhB,YAAY,IAAI,MAAM;IAItB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAI1C,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAIzC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIzC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGrC;AAED,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AAExE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,GAAG,WAAW,GAC5B,mBAAmB,CAarB"}
package/dist/scorm2004.js CHANGED
@@ -1,8 +1,9 @@
1
- var o = Object.defineProperty;
2
- var c = (i, t, e) => t in i ? o(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
3
- var a = (i, t, e) => c(i, typeof t != "symbol" ? t + "" : t, e);
4
- const s = "lxpack_scorm2004_preview";
5
- function u(i = 500) {
1
+ var c = Object.defineProperty;
2
+ var u = (i, t, e) => t in i ? c(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e;
3
+ var a = (i, t, e) => u(i, typeof t != "symbol" ? t + "" : t, e);
4
+ import { t as s } from "./size-policy-BE1zjEBP.js";
5
+ const l = "0", n = "lxpack_scorm2004_preview";
6
+ function m(i = 500) {
6
7
  let t = window, e = 0;
7
8
  for (; t && e < i; ) {
8
9
  try {
@@ -25,7 +26,7 @@ function u(i = 500) {
25
26
  }
26
27
  return null;
27
28
  }
28
- class n {
29
+ class o {
29
30
  constructor(t) {
30
31
  a(this, "initialized", !1);
31
32
  a(this, "terminated", !1);
@@ -40,7 +41,7 @@ class n {
40
41
  a(this, "persistToStorage");
41
42
  if (this.persistToStorage = (t == null ? void 0 : t.persistToStorage) ?? !1, this.persistToStorage)
42
43
  try {
43
- const e = localStorage.getItem(s);
44
+ const e = localStorage.getItem(n);
44
45
  e && (this.data = { ...this.data, ...JSON.parse(e) });
45
46
  } catch {
46
47
  }
@@ -48,7 +49,7 @@ class n {
48
49
  save() {
49
50
  if (this.persistToStorage)
50
51
  try {
51
- localStorage.setItem(s, JSON.stringify(this.data));
52
+ localStorage.setItem(n, JSON.stringify(this.data));
52
53
  } catch {
53
54
  }
54
55
  }
@@ -62,13 +63,13 @@ class n {
62
63
  return !this.initialized || this.terminated ? "" : this.data[t] ?? "";
63
64
  }
64
65
  SetValue(t, e) {
65
- return !this.initialized || this.terminated ? "false" : (this.data[t] = e, this.save(), "true");
66
+ return !this.initialized || this.terminated ? "false" : (this.data[t] = t === "cmi.suspend_data" ? s(e) : e, this.save(), "true");
66
67
  }
67
68
  Commit() {
68
69
  return !this.initialized || this.terminated ? "false" : (this.save(), "true");
69
70
  }
70
71
  GetLastError() {
71
- return "0";
72
+ return l;
72
73
  }
73
74
  GetErrorString() {
74
75
  return "No error";
@@ -77,7 +78,7 @@ class n {
77
78
  return "";
78
79
  }
79
80
  setSuspendData(t) {
80
- this.data["cmi.suspend_data"] = t;
81
+ this.data["cmi.suspend_data"] = s(t);
81
82
  }
82
83
  setLocation(t) {
83
84
  this.data["cmi.location"] = t;
@@ -92,7 +93,7 @@ class n {
92
93
  this.data["cmi.score.scaled"] = String(Math.max(0, Math.min(1, t)));
93
94
  }
94
95
  }
95
- class l {
96
+ class d {
96
97
  constructor(t) {
97
98
  a(this, "api");
98
99
  this.api = t;
@@ -107,7 +108,8 @@ class l {
107
108
  return this.api.GetValue(t);
108
109
  }
109
110
  SetValue(t, e) {
110
- return this.api.SetValue(t, e);
111
+ const r = t === "cmi.suspend_data" ? s(e) : e;
112
+ return this.api.SetValue(t, r);
111
113
  }
112
114
  Commit() {
113
115
  return this.api.Commit("");
@@ -122,7 +124,7 @@ class l {
122
124
  return this.api.GetDiagnostic(t);
123
125
  }
124
126
  setSuspendData(t) {
125
- this.api.SetValue("cmi.suspend_data", t);
127
+ this.api.SetValue("cmi.suspend_data", s(t));
126
128
  }
127
129
  setLocation(t) {
128
130
  this.api.SetValue("cmi.location", t);
@@ -137,17 +139,17 @@ class l {
137
139
  this.api.SetValue("cmi.score.scaled", String(Math.max(0, Math.min(1, t))));
138
140
  }
139
141
  }
140
- function h(i) {
142
+ function S(i) {
141
143
  if (i === "preview")
142
- return new n({ persistToStorage: !0 });
143
- const t = u();
144
- return t ? new l(t) : (console.warn(
144
+ return new o({ persistToStorage: !0 });
145
+ const t = m();
146
+ return t ? new d(t) : (console.warn(
145
147
  "[lxpack] No SCORM 2004 API found; using in-memory simulator"
146
- ), new n({ persistToStorage: !1 }));
148
+ ), new o({ persistToStorage: !1 }));
147
149
  }
148
150
  export {
149
- l as Scorm2004Adapter,
150
- n as Scorm2004Simulator,
151
- h as createScorm2004Connection,
152
- u as findScorm2004Api
151
+ d as Scorm2004Adapter,
152
+ o as Scorm2004Simulator,
153
+ S as createScorm2004Connection,
154
+ m as findScorm2004Api
153
155
  };