scorm-again 3.0.5 → 3.1.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/README.md +77 -1
- package/dist/cross-frame-api.js +579 -320
- package/dist/cross-frame-api.js.map +1 -1
- package/dist/cross-frame-api.min.js +1 -1
- package/dist/cross-frame-api.min.js.map +1 -1
- package/dist/cross-frame-lms.js +226 -163
- package/dist/cross-frame-lms.js.map +1 -1
- package/dist/cross-frame-lms.min.js +1 -1
- package/dist/cross-frame-lms.min.js.map +1 -1
- package/dist/esm/cross-frame-api.js.map +1 -1
- package/dist/esm/scorm-again.js +391 -86
- package/dist/esm/scorm-again.js.map +1 -1
- package/dist/esm/scorm-again.min.js +1 -1
- package/dist/esm/scorm-again.min.js.map +1 -1
- package/dist/esm/scorm12.js +323 -76
- package/dist/esm/scorm12.js.map +1 -1
- package/dist/esm/scorm12.min.js +1 -1
- package/dist/esm/scorm12.min.js.map +1 -1
- package/dist/esm/scorm2004.js +373 -72
- package/dist/esm/scorm2004.js.map +1 -1
- package/dist/esm/scorm2004.min.js +1 -1
- package/dist/esm/scorm2004.min.js.map +1 -1
- package/dist/scorm-again.js +32522 -19996
- package/dist/scorm-again.js.map +1 -1
- package/dist/scorm-again.min.js +1 -1
- package/dist/scorm-again.min.js.map +1 -1
- package/dist/scorm12.js +9130 -5031
- package/dist/scorm12.js.map +1 -1
- package/dist/scorm12.min.js +1 -1
- package/dist/scorm12.min.js.map +1 -1
- package/dist/scorm2004.js +30040 -18419
- package/dist/scorm2004.js.map +1 -1
- package/dist/scorm2004.min.js +1 -1
- package/dist/scorm2004.min.js.map +1 -1
- package/dist/types/BaseAPI.d.ts +15 -5
- package/dist/types/Scorm12API.d.ts +2 -2
- package/dist/types/Scorm2004API.d.ts +3 -2
- package/dist/types/cmi/common/score.d.ts +2 -0
- package/dist/types/interfaces/services.d.ts +8 -4
- package/dist/types/services/AsynchronousHttpService.d.ts +3 -2
- package/dist/types/services/EventService.d.ts +2 -2
- package/dist/types/services/OfflineStorageService.d.ts +6 -1
- package/dist/types/services/SynchronousHttpService.d.ts +2 -2
- package/dist/types/services/ValidationService.d.ts +1 -1
- package/dist/types/types/api_types.d.ts +22 -2
- package/dist/types/utilities/index.d.ts +1 -0
- package/dist/types/utilities/url.d.ts +2 -0
- package/package.json +27 -27
package/dist/types/BaseAPI.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StringKeyMap } from "./utilities";
|
|
2
2
|
import { BaseCMI } from "./cmi/common/base_cmi";
|
|
3
3
|
import { ErrorCode } from "./constants";
|
|
4
|
-
import { CommitObject, InternalSettings, LogLevel, ResultObject, Settings } from "./types";
|
|
4
|
+
import { CommitEventContext, CommitObject, CommitTrigger, InternalSettings, LogLevel, ResultObject, Settings } from "./types";
|
|
5
5
|
import { IBaseAPI, ICMIDataService, IErrorHandlingService, IEventService, IHttpService, ILoggingService, IOfflineStorageService, ISerializationService, ScormEventCallback } from "./interfaces";
|
|
6
6
|
export default abstract class BaseAPI implements IBaseAPI {
|
|
7
7
|
private _timeout?;
|
|
@@ -15,6 +15,10 @@ export default abstract class BaseAPI implements IBaseAPI {
|
|
|
15
15
|
private readonly _offlineStorageService?;
|
|
16
16
|
private readonly _cmiValueAccessService;
|
|
17
17
|
private _courseId;
|
|
18
|
+
private _pendingCommitCount;
|
|
19
|
+
private _commitSequence;
|
|
20
|
+
private readonly _commitSettleWaiters;
|
|
21
|
+
protected readonly _setCMIElements: Set<string>;
|
|
18
22
|
protected constructor(error_codes: ErrorCode, settings?: Settings, httpService?: IHttpService, eventService?: IEventService, serializationService?: ISerializationService, cmiDataService?: ICMIDataService, errorHandlingService?: IErrorHandlingService, loggingService?: ILoggingService, offlineStorageService?: IOfflineStorageService);
|
|
19
23
|
abstract cmi: BaseCMI;
|
|
20
24
|
startingData?: StringKeyMap;
|
|
@@ -36,16 +40,21 @@ export default abstract class BaseAPI implements IBaseAPI {
|
|
|
36
40
|
abstract lmsGetDiagnostic(CMIErrorCode: string | number): string;
|
|
37
41
|
abstract validateCorrectResponse(_CMIElement: string, _value: any): void;
|
|
38
42
|
abstract getChildElement(_CMIElement: string, _value: any, _foundFirstIndex: boolean): BaseCMI | null;
|
|
39
|
-
abstract storeData(_calculateTotalTime: boolean): ResultObject;
|
|
43
|
+
abstract storeData(_calculateTotalTime: boolean, _trigger?: CommitTrigger): ResultObject;
|
|
40
44
|
abstract renderCommitCMI(_terminateCommit: boolean, _includeTotalTime?: boolean): StringKeyMap | Array<string>;
|
|
41
45
|
abstract renderCommitObject(_terminateCommit: boolean, _includeTotalTime?: boolean): CommitObject;
|
|
42
46
|
apiLog(functionName: string, logMessage: string, messageLevel: LogLevel, CMIElement?: string): void;
|
|
43
47
|
get settings(): InternalSettings;
|
|
44
48
|
set settings(settings: Settings);
|
|
49
|
+
get pendingCommitCount(): number;
|
|
50
|
+
whenCommitsSettled(options?: {
|
|
51
|
+
timeoutMs?: number;
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
private _flushCommitSettleWaiters;
|
|
45
54
|
terminate(callbackName: string, checkTerminated: boolean): string;
|
|
46
55
|
getValue(callbackName: string, checkTerminated: boolean, CMIElement: string): string;
|
|
47
56
|
setValue(callbackName: string, commitCallback: string, checkTerminated: boolean, CMIElement: string, value: any): string;
|
|
48
|
-
commit(callbackName: string, checkTerminated?: boolean): string;
|
|
57
|
+
commit(callbackName: string, checkTerminated?: boolean, trigger?: CommitTrigger): string;
|
|
49
58
|
getLastError(callbackName: string): string;
|
|
50
59
|
getErrorString(callbackName: string, CMIErrorCode: string | number): string;
|
|
51
60
|
getDiagnostic(callbackName: string, CMIErrorCode: string | number): string;
|
|
@@ -56,13 +65,14 @@ export default abstract class BaseAPI implements IBaseAPI {
|
|
|
56
65
|
setCMIValue(_CMIElement: string, _value: any): string;
|
|
57
66
|
_commonSetCMIValue(methodName: string, scorm2004: boolean, CMIElement: string, value: any): string;
|
|
58
67
|
_commonGetCMIValue(methodName: string, scorm2004: boolean, CMIElement: string): any;
|
|
68
|
+
protected checkUninitializedGet(_CMIElement: string, _returnValue: any): void;
|
|
59
69
|
isInitialized(): boolean;
|
|
60
70
|
isNotInitialized(): boolean;
|
|
61
71
|
isTerminated(): boolean;
|
|
62
72
|
on(listenerName: string, callback: ScormEventCallback): void;
|
|
63
73
|
off(listenerName: string, callback: ScormEventCallback): void;
|
|
64
74
|
clear(listenerName: string): void;
|
|
65
|
-
processListeners(functionName: string, CMIElement?: string, value?: any): void;
|
|
75
|
+
processListeners(functionName: string, CMIElement?: string, value?: any, context?: CommitEventContext): void;
|
|
66
76
|
throwSCORMError(CMIElement: string | undefined, errorNumber: number | undefined, message?: string): void;
|
|
67
77
|
clearSCORMError(success: string): void;
|
|
68
78
|
loadFromFlattenedJSON(json: StringKeyMap, CMIElement?: string): void;
|
|
@@ -70,7 +80,7 @@ export default abstract class BaseAPI implements IBaseAPI {
|
|
|
70
80
|
loadFromJSON(json: StringKeyMap, CMIElement?: string): void;
|
|
71
81
|
renderCMIToJSONString(): string;
|
|
72
82
|
renderCMIToJSONObject(): StringKeyMap;
|
|
73
|
-
processHttpRequest(url: string, params: CommitObject | StringKeyMap | Array<any>, immediate?: boolean): ResultObject;
|
|
83
|
+
processHttpRequest(url: string, params: CommitObject | StringKeyMap | Array<any>, immediate?: boolean, trigger?: CommitTrigger): ResultObject;
|
|
74
84
|
scheduleCommit(when: number, callback: string): void;
|
|
75
85
|
clearScheduledCommit(): void;
|
|
76
86
|
private _checkObjectHasProperty;
|
|
@@ -3,7 +3,7 @@ import { StringKeyMap } from "./utilities";
|
|
|
3
3
|
import { BaseCMI } from "./cmi/common/base_cmi";
|
|
4
4
|
import { CMI } from "./cmi/scorm12/cmi";
|
|
5
5
|
import { NAV } from "./cmi/scorm12/nav";
|
|
6
|
-
import { CommitObject, ResultObject, Settings } from "./types";
|
|
6
|
+
import { CommitObject, CommitTrigger, ResultObject, Settings } from "./types";
|
|
7
7
|
import { IHttpService } from "./interfaces";
|
|
8
8
|
declare class Scorm12API extends BaseAPI {
|
|
9
9
|
private static _globalLearnerPrefs;
|
|
@@ -38,7 +38,7 @@ declare class Scorm12API extends BaseAPI {
|
|
|
38
38
|
replaceWithAnotherScormAPI(newAPI: Scorm12API): void;
|
|
39
39
|
renderCommitCMI(terminateCommit: boolean, includeTotalTime?: boolean): StringKeyMap | Array<string>;
|
|
40
40
|
renderCommitObject(terminateCommit: boolean, includeTotalTime?: boolean): CommitObject;
|
|
41
|
-
storeData(terminateCommit: boolean): ResultObject;
|
|
41
|
+
storeData(terminateCommit: boolean, trigger?: CommitTrigger): ResultObject;
|
|
42
42
|
private processCommitData;
|
|
43
43
|
}
|
|
44
44
|
export default Scorm12API;
|
|
@@ -4,7 +4,7 @@ import { BaseCMI } from "./cmi/common/base_cmi";
|
|
|
4
4
|
import { CMI } from "./cmi/scorm2004/cmi";
|
|
5
5
|
import { CMIObjectivesObject } from "./cmi/scorm2004/objectives";
|
|
6
6
|
import { ADL } from "./cmi/scorm2004/adl";
|
|
7
|
-
import { CommitObject, ResultObject, SequencingStateMetadata, Settings } from "./types";
|
|
7
|
+
import { CommitObject, CommitTrigger, ResultObject, SequencingStateMetadata, Settings } from "./types";
|
|
8
8
|
import { IHttpService } from "./interfaces";
|
|
9
9
|
import { SequencingConfiguration, SequencingEventListeners, SequencingService } from "./services";
|
|
10
10
|
declare class Scorm2004API extends BaseAPI {
|
|
@@ -51,11 +51,12 @@ declare class Scorm2004API extends BaseAPI {
|
|
|
51
51
|
validateCorrectResponse(CMIElement: string, value: any): void;
|
|
52
52
|
private _peekCMIValue;
|
|
53
53
|
getCMIValue(CMIElement: string): any;
|
|
54
|
+
protected checkUninitializedGet(CMIElement: string, returnValue: any): void;
|
|
54
55
|
getLmsErrorMessageDetails(errorNumber: string | number, detail: boolean): string;
|
|
55
56
|
replaceWithAnotherScormAPI(newAPI: Scorm2004API): void;
|
|
56
57
|
renderCommitCMI(terminateCommit: boolean, includeTotalTime?: boolean): StringKeyMap | Array<any>;
|
|
57
58
|
renderCommitObject(terminateCommit: boolean, includeTotalTime?: boolean): CommitObject;
|
|
58
|
-
storeData(terminateCommit: boolean): ResultObject;
|
|
59
|
+
storeData(terminateCommit: boolean, trigger?: CommitTrigger): ResultObject;
|
|
59
60
|
private configureSequencing;
|
|
60
61
|
private configureActivityTree;
|
|
61
62
|
private configureSequencingRules;
|
|
@@ -9,6 +9,7 @@ export declare class CMIScore extends BaseCMI {
|
|
|
9
9
|
private readonly __invalid_range_code;
|
|
10
10
|
private readonly __decimal_regex;
|
|
11
11
|
private readonly __error_class;
|
|
12
|
+
private readonly __allow_empty_string;
|
|
12
13
|
protected _raw: string;
|
|
13
14
|
protected _min: string;
|
|
14
15
|
protected _max: string;
|
|
@@ -22,6 +23,7 @@ export declare class CMIScore extends BaseCMI {
|
|
|
22
23
|
invalidRangeCode?: number;
|
|
23
24
|
decimalRegex?: string;
|
|
24
25
|
errorClass: typeof BaseScormValidationError;
|
|
26
|
+
allowEmptyString?: boolean;
|
|
25
27
|
});
|
|
26
28
|
reset(): void;
|
|
27
29
|
get _children(): string;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { CommitObject, LogLevel, ResultObject, Settings } from "../types/api_types";
|
|
1
|
+
import { CommitEventContext, CommitMetadata, CommitObject, LogLevel, ResultObject, Settings } from "../types/api_types";
|
|
2
2
|
import { ErrorCode } from "../constants/error_codes";
|
|
3
3
|
import { LogLevelEnum } from "../constants/enums";
|
|
4
4
|
import { BaseCMI } from "../cmi/common/base_cmi";
|
|
5
5
|
import { ValidationError } from "../exceptions";
|
|
6
6
|
import { StringKeyMap } from "../utilities";
|
|
7
7
|
export interface IHttpService {
|
|
8
|
-
|
|
8
|
+
readonly reportsRequestCompletion?: boolean;
|
|
9
|
+
processHttpRequest(url: string, params: CommitObject | StringKeyMap | Array<any>, immediate: boolean, apiLog: (functionName: string, message: any, messageLevel: LogLevelEnum, CMIElement?: string) => void, processListeners: (functionName: string, CMIElement?: string, value?: any) => void, metadata?: CommitMetadata, onRequestComplete?: () => void): ResultObject;
|
|
9
10
|
updateSettings(settings: Settings): void;
|
|
10
11
|
}
|
|
11
12
|
export type ScormEventCallback = (...args: any[]) => void;
|
|
@@ -13,7 +14,7 @@ export interface IEventService {
|
|
|
13
14
|
on(listenerName: string, callback: ScormEventCallback): void;
|
|
14
15
|
off(listenerName: string, callback: ScormEventCallback): void;
|
|
15
16
|
clear(listenerName: string): void;
|
|
16
|
-
processListeners(functionName: string, CMIElement?: string, value?: any): void;
|
|
17
|
+
processListeners(functionName: string, CMIElement?: string, value?: any, context?: CommitEventContext): void;
|
|
17
18
|
reset(): void;
|
|
18
19
|
}
|
|
19
20
|
export interface ISerializationService {
|
|
@@ -49,7 +50,10 @@ export interface ILoggingService {
|
|
|
49
50
|
debug(logMessage: string): void;
|
|
50
51
|
}
|
|
51
52
|
export interface IOfflineStorageService {
|
|
52
|
-
storeOffline(courseId: string, commitData: CommitObject
|
|
53
|
+
storeOffline(courseId: string, commitData: CommitObject, metadata?: {
|
|
54
|
+
isTerminateCommit?: boolean;
|
|
55
|
+
sequence?: number;
|
|
56
|
+
}): ResultObject;
|
|
53
57
|
getOfflineData(courseId: string): Promise<CommitObject | null>;
|
|
54
58
|
syncOfflineData(): Promise<boolean>;
|
|
55
59
|
hasPendingOfflineData(courseId: string): Promise<boolean>;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { CommitObject, InternalSettings, ResultObject } from "../types/api_types";
|
|
1
|
+
import { CommitMetadata, CommitObject, InternalSettings, ResultObject } from "../types/api_types";
|
|
2
2
|
import { LogLevelEnum } from "../constants/enums";
|
|
3
3
|
import { IHttpService } from "../interfaces/services";
|
|
4
4
|
import { ErrorCode } from "../constants/error_codes";
|
|
5
5
|
import { StringKeyMap } from "../utilities";
|
|
6
6
|
export declare class AsynchronousHttpService implements IHttpService {
|
|
7
|
+
readonly reportsRequestCompletion = true;
|
|
7
8
|
private settings;
|
|
8
9
|
private error_codes;
|
|
9
10
|
constructor(settings: InternalSettings, error_codes: ErrorCode);
|
|
10
|
-
processHttpRequest(url: string, params: CommitObject | StringKeyMap | Array<any>, immediate: boolean | undefined, apiLog: (functionName: string, message: any, messageLevel: LogLevelEnum, CMIElement?: string) => void, processListeners: (functionName: string, CMIElement?: string, value?: any) => void): ResultObject;
|
|
11
|
+
processHttpRequest(url: string, params: CommitObject | StringKeyMap | Array<any>, immediate: boolean | undefined, apiLog: (functionName: string, message: any, messageLevel: LogLevelEnum, CMIElement?: string) => void, processListeners: (functionName: string, CMIElement?: string, value?: any) => void, metadata?: CommitMetadata, onRequestComplete?: () => void): ResultObject;
|
|
11
12
|
private _performAsyncRequest;
|
|
12
13
|
private _prepareRequestBody;
|
|
13
14
|
private performFetch;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LogLevel } from "../types/api_types";
|
|
1
|
+
import { CommitEventContext, LogLevel } from "../types/api_types";
|
|
2
2
|
import { IEventService, ScormEventCallback } from "../interfaces/services";
|
|
3
3
|
export declare class EventService implements IEventService {
|
|
4
4
|
private listenerMap;
|
|
@@ -9,7 +9,7 @@ export declare class EventService implements IEventService {
|
|
|
9
9
|
on(listenerName: string, callback: ScormEventCallback): void;
|
|
10
10
|
off(listenerName: string, callback: ScormEventCallback): void;
|
|
11
11
|
clear(listenerName: string): void;
|
|
12
|
-
processListeners(functionName: string, CMIElement?: string, value?: any): void;
|
|
12
|
+
processListeners(functionName: string, CMIElement?: string, value?: any, context?: CommitEventContext): void;
|
|
13
13
|
reset(): void;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=EventService.d.ts.map
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { CommitObject, InternalSettings, ResultObject } from "../types/api_types";
|
|
2
2
|
import { LogLevelEnum } from "../constants/enums";
|
|
3
3
|
import { ErrorCode } from "../constants/error_codes";
|
|
4
|
+
type OfflineCommitMetadata = {
|
|
5
|
+
isTerminateCommit?: boolean;
|
|
6
|
+
sequence?: number;
|
|
7
|
+
};
|
|
4
8
|
export declare class OfflineStorageService {
|
|
5
9
|
private apiLog;
|
|
6
10
|
private settings;
|
|
@@ -14,7 +18,7 @@ export declare class OfflineStorageService {
|
|
|
14
18
|
constructor(settings: InternalSettings, error_codes: ErrorCode, apiLog: (functionName: string, message: any, messageLevel: LogLevelEnum, CMIElement?: string) => void);
|
|
15
19
|
private handleOnlineStatusChange;
|
|
16
20
|
private handleCustomNetworkStatus;
|
|
17
|
-
storeOffline(courseId: string, commitData: CommitObject): ResultObject;
|
|
21
|
+
storeOffline(courseId: string, commitData: CommitObject, metadata?: OfflineCommitMetadata): ResultObject;
|
|
18
22
|
getOfflineData(courseId: string): Promise<CommitObject | null>;
|
|
19
23
|
syncOfflineData(): Promise<boolean>;
|
|
20
24
|
private sendDataToLMS;
|
|
@@ -25,4 +29,5 @@ export declare class OfflineStorageService {
|
|
|
25
29
|
updateSettings(settings: InternalSettings): void;
|
|
26
30
|
destroy(): void;
|
|
27
31
|
}
|
|
32
|
+
export {};
|
|
28
33
|
//# sourceMappingURL=OfflineStorageService.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CommitObject, InternalSettings, ResultObject } from "../types/api_types";
|
|
1
|
+
import { CommitMetadata, CommitObject, InternalSettings, ResultObject } from "../types/api_types";
|
|
2
2
|
import { IHttpService } from "../interfaces/services";
|
|
3
3
|
import { ErrorCode } from "../constants/error_codes";
|
|
4
4
|
import { StringKeyMap } from "../utilities";
|
|
@@ -6,7 +6,7 @@ export declare class SynchronousHttpService implements IHttpService {
|
|
|
6
6
|
private settings;
|
|
7
7
|
private error_codes;
|
|
8
8
|
constructor(settings: InternalSettings, error_codes: ErrorCode);
|
|
9
|
-
processHttpRequest(url: string, params: CommitObject | StringKeyMap | Array<any>, immediate: boolean | undefined, _apiLog: (functionName: string, message: any, messageLevel: number, CMIElement?: string) => void, _processListeners: (functionName: string, CMIElement?: string, value?: any) => void): ResultObject;
|
|
9
|
+
processHttpRequest(url: string, params: CommitObject | StringKeyMap | Array<any>, immediate: boolean | undefined, _apiLog: (functionName: string, message: any, messageLevel: number, CMIElement?: string) => void, _processListeners: (functionName: string, CMIElement?: string, value?: any) => void, metadata?: CommitMetadata, _onRequestComplete?: () => void): ResultObject;
|
|
10
10
|
private _handleImmediateRequest;
|
|
11
11
|
private _performSyncXHR;
|
|
12
12
|
private _prepareRequestBody;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseScormValidationError } from "../exceptions";
|
|
2
2
|
export declare class ValidationService {
|
|
3
|
-
validateScore(CMIElement: string, value: string, decimalRegex: string, scoreRange: string | false, invalidTypeCode: number, invalidRangeCode: number, errorClass: typeof BaseScormValidationError): boolean;
|
|
3
|
+
validateScore(CMIElement: string, value: string, decimalRegex: string, scoreRange: string | false, invalidTypeCode: number, invalidRangeCode: number, errorClass: typeof BaseScormValidationError, allowEmptyString?: boolean): boolean;
|
|
4
4
|
validateScorm12Audio(CMIElement: string, value: string): boolean;
|
|
5
5
|
validateScorm12Language(CMIElement: string, value: string): boolean;
|
|
6
6
|
validateScorm12Speed(CMIElement: string, value: string): boolean;
|
|
@@ -2,6 +2,19 @@ import { CompletionStatus, LogLevelEnum, SuccessStatus } from "../constants/enum
|
|
|
2
2
|
import { StringKeyMap } from "../utilities";
|
|
3
3
|
import { SequencingSettings } from "./sequencing_types";
|
|
4
4
|
import type { IHttpService } from "../interfaces/services";
|
|
5
|
+
export type CommitTrigger = "autocommit" | "manual" | "terminate" | "offline-replay";
|
|
6
|
+
export type CommitMetadata = {
|
|
7
|
+
isTerminateCommit: boolean;
|
|
8
|
+
trigger: CommitTrigger;
|
|
9
|
+
sequence?: number;
|
|
10
|
+
};
|
|
11
|
+
export type CommitEventContext = {
|
|
12
|
+
url: string;
|
|
13
|
+
trigger: CommitTrigger;
|
|
14
|
+
isTerminateCommit: boolean;
|
|
15
|
+
sequence?: number;
|
|
16
|
+
errorCode?: number;
|
|
17
|
+
};
|
|
5
18
|
export type Settings = {
|
|
6
19
|
autocommit?: boolean | undefined;
|
|
7
20
|
autocommitSeconds?: number | undefined;
|
|
@@ -22,7 +35,10 @@ export type Settings = {
|
|
|
22
35
|
fetchMode?: "cors" | "no-cors" | "same-origin" | "navigate" | undefined;
|
|
23
36
|
responseHandler?: ((response: Response) => Promise<ResultObject>) | undefined;
|
|
24
37
|
xhrResponseHandler?: ((xhr: XMLHttpRequest) => ResultObject) | undefined;
|
|
25
|
-
requestHandler?: ((commitObject: unknown) => unknown) | undefined;
|
|
38
|
+
requestHandler?: ((commitObject: unknown, metadata?: CommitMetadata) => unknown) | undefined;
|
|
39
|
+
terminateCommitParam?: string | undefined;
|
|
40
|
+
terminateCommitPayloadField?: string | undefined;
|
|
41
|
+
includeCommitSequence?: boolean | undefined;
|
|
26
42
|
onLogMessage?: ((messageLevel: LogLevel, logMessage: string) => void) | undefined;
|
|
27
43
|
mastery_override?: boolean | undefined;
|
|
28
44
|
score_overrides_status?: boolean | undefined;
|
|
@@ -66,7 +82,10 @@ export type InternalSettings = {
|
|
|
66
82
|
fetchMode: "cors" | "no-cors" | "same-origin" | "navigate";
|
|
67
83
|
responseHandler: (response: Response) => Promise<ResultObject>;
|
|
68
84
|
xhrResponseHandler: (xhr: XMLHttpRequest) => ResultObject;
|
|
69
|
-
requestHandler: (commitObject: unknown) => unknown;
|
|
85
|
+
requestHandler: (commitObject: unknown, metadata?: CommitMetadata) => unknown;
|
|
86
|
+
terminateCommitParam?: string | undefined;
|
|
87
|
+
terminateCommitPayloadField?: string | undefined;
|
|
88
|
+
includeCommitSequence?: boolean | undefined;
|
|
70
89
|
onLogMessage?: ((messageLevel: LogLevel, logMessage: string) => void) | undefined;
|
|
71
90
|
mastery_override?: boolean | undefined;
|
|
72
91
|
score_overrides_status?: boolean | undefined;
|
|
@@ -121,6 +140,7 @@ export type CommitObject = {
|
|
|
121
140
|
sessionId?: string;
|
|
122
141
|
activityId?: string;
|
|
123
142
|
attempt?: number;
|
|
143
|
+
commitSequence?: number;
|
|
124
144
|
};
|
|
125
145
|
export type CommitObjectWithScore = CommitObject & {
|
|
126
146
|
score: ScoreObject;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from "./core";
|
|
2
|
+
export { appendQueryParam } from "./url";
|
|
2
3
|
export { PlayerEventAdapter } from "./PlayerEventAdapter";
|
|
3
4
|
export type { NavigationState, ScoStatus, CourseProgress, ScoDelivery, SessionEndReason, SessionEndData, PlayerEventAdapterCallbacks, PlayerEventAdapterConfig, } from "./PlayerEventAdapter";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scorm-again",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.1",
|
|
4
4
|
"description": "A modern SCORM JavaScript run-time library for SCORM 1.2 and SCORM 2004",
|
|
5
5
|
"main": "dist/scorm-again.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -90,57 +90,57 @@
|
|
|
90
90
|
"test": "test"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
|
-
"@
|
|
94
|
-
"@babel/preset-env": "7.29.7",
|
|
95
|
-
"@cyclonedx/cyclonedx-npm": "4.2.1",
|
|
93
|
+
"@cyclonedx/cyclonedx-npm": "^6.0.0",
|
|
96
94
|
"@eslint/js": "10.0.1",
|
|
97
95
|
"@mo36924/rollup-plugin-cache": "1.6.11",
|
|
98
|
-
"@playwright/test": "1.
|
|
99
|
-
"@rollup/plugin-babel": "7.0.0",
|
|
96
|
+
"@playwright/test": "1.61.1",
|
|
100
97
|
"@rollup/plugin-terser": "1.0.0",
|
|
101
98
|
"@rollup/plugin-typescript": "12.3.0",
|
|
99
|
+
"@swc/core": "^1.15.43",
|
|
102
100
|
"@types/cors": "^2.8.19",
|
|
103
101
|
"@types/express": "^5.0.6",
|
|
104
|
-
"@vitest/coverage-v8": "4.1.
|
|
105
|
-
"@vitest/ui": "4.1.
|
|
102
|
+
"@vitest/coverage-v8": "4.1.10",
|
|
103
|
+
"@vitest/ui": "4.1.10",
|
|
106
104
|
"cors": "^2.8.6",
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"eslint
|
|
105
|
+
"es-check": "^9.6.4",
|
|
106
|
+
"esbuild": "0.28.1",
|
|
107
|
+
"eslint": "10.7.0",
|
|
108
|
+
"eslint-plugin-jsdoc": "63.0.13",
|
|
110
109
|
"express": "^5.2.1",
|
|
111
110
|
"extract-zip": "2.0.1",
|
|
112
|
-
"fast-check": "4.
|
|
111
|
+
"fast-check": "4.9.0",
|
|
113
112
|
"glob": "13.0.6",
|
|
114
|
-
"globals": "17.
|
|
113
|
+
"globals": "17.7.0",
|
|
115
114
|
"jsdom": "29.1.1",
|
|
116
|
-
"monocart-coverage-reports": "^2.12.
|
|
117
|
-
"monocart-reporter": "^2.
|
|
118
|
-
"playwright": "1.
|
|
119
|
-
"prettier": "3.
|
|
120
|
-
"rollup": "4.
|
|
121
|
-
"rollup-plugin-dts": "6.4.1",
|
|
115
|
+
"monocart-coverage-reports": "^2.12.12",
|
|
116
|
+
"monocart-reporter": "^2.12.2",
|
|
117
|
+
"playwright": "1.61.1",
|
|
118
|
+
"prettier": "3.9.5",
|
|
119
|
+
"rollup": "4.62.2",
|
|
122
120
|
"rollup-plugin-esbuild": "6.2.1",
|
|
121
|
+
"rollup-plugin-swc3": "^0.12.1",
|
|
123
122
|
"standard-version": "9.5.0",
|
|
124
|
-
"terser": "5.
|
|
123
|
+
"terser": "5.49.0",
|
|
125
124
|
"tslib": "2.8.1",
|
|
126
|
-
"tsx": "4.
|
|
125
|
+
"tsx": "4.23.1",
|
|
127
126
|
"typescript": "6.0.3",
|
|
128
|
-
"typescript-eslint": "8.
|
|
129
|
-
"vite": "8.
|
|
130
|
-
"vitest": "4.1.
|
|
127
|
+
"typescript-eslint": "8.64.0",
|
|
128
|
+
"vite": "8.1.4",
|
|
129
|
+
"vitest": "4.1.10"
|
|
131
130
|
},
|
|
132
131
|
"engines": {
|
|
133
132
|
"node": ">=20.19.0"
|
|
134
133
|
},
|
|
135
134
|
"sideEffects": false,
|
|
136
135
|
"scripts": {
|
|
137
|
-
"build": "npm run clean && rollup -c",
|
|
136
|
+
"build": "npm run clean && rollup -c && npm run check:es5",
|
|
138
137
|
"build:all": "npm run build && npm run build:types",
|
|
139
138
|
"build:all:fast": "npm run build:fast && npm run build:types",
|
|
140
139
|
"build:all:prod": "npm run build:prod && npm run build:types",
|
|
141
|
-
"build:fast": "npm run clean && SKIP_MINIFIED=true rollup -c",
|
|
142
|
-
"build:prod": "npm run clean && NODE_ENV=production rollup -c",
|
|
140
|
+
"build:fast": "npm run clean && SKIP_MINIFIED=true rollup -c && npm run check:es5",
|
|
141
|
+
"build:prod": "npm run clean && NODE_ENV=production rollup -c && npm run check:es5",
|
|
143
142
|
"build:types": "tsc --project tsconfig.types.json",
|
|
143
|
+
"check:es5": "es-check es5 'dist/*.js'",
|
|
144
144
|
"clean": "rm -rf dist && mkdir -p dist",
|
|
145
145
|
"compile:dev": "SKIP_MINIFIED=true rollup -c -w",
|
|
146
146
|
"coverage:merge": "tsx scripts/merge-coverage.ts",
|