scorm-again 1.6.0 → 1.7.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/.circleci/config.yml +4 -9
- package/README.md +7 -3
- package/dist/aicc.js +787 -690
- package/dist/aicc.js.map +1 -0
- package/dist/aicc.min.js +40 -7263
- package/dist/scorm-again.js +1075 -980
- package/dist/scorm-again.js.map +1 -0
- package/dist/scorm-again.min.js +52 -10873
- package/dist/scorm12.js +618 -510
- package/dist/scorm12.js.map +1 -0
- package/dist/scorm12.min.js +34 -5500
- package/dist/scorm2004.js +704 -579
- package/dist/scorm2004.js.map +1 -0
- package/dist/scorm2004.min.js +40 -6884
- package/package.json +35 -27
- package/src/BaseAPI.js +55 -38
- package/src/constants/response_constants.js +2 -2
- package/test/Scorm2004API.spec.js +37 -7
- package/webpack.js +78 -0
- package/gruntfile.js +0 -90
package/dist/aicc.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aicc.js","mappings":"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","sources":["webpack://scorm-again/./node_modules/lodash.debounce/index.js","webpack://scorm-again/./src/AICC.js","webpack://scorm-again/./src/BaseAPI.js","webpack://scorm-again/./src/Scorm12API.js","webpack://scorm-again/./src/cmi/aicc_cmi.js","webpack://scorm-again/./src/cmi/common.js","webpack://scorm-again/./src/cmi/scorm12_cmi.js","webpack://scorm-again/./src/constants/api_constants.js","webpack://scorm-again/./src/constants/error_codes.js","webpack://scorm-again/./src/constants/regex.js","webpack://scorm-again/./src/exceptions.js","webpack://scorm-again/./src/utilities.js","webpack://scorm-again/webpack/bootstrap","webpack://scorm-again/webpack/runtime/compat get default export","webpack://scorm-again/webpack/runtime/define property getters","webpack://scorm-again/webpack/runtime/global","webpack://scorm-again/webpack/runtime/hasOwnProperty shorthand","webpack://scorm-again/webpack/runtime/make namespace object","webpack://scorm-again/./src/exports/aicc.js"],"sourcesContent":["/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","// @flow\nimport Scorm12API from './Scorm12API';\nimport {\n CMI,\n CMIAttemptRecordsObject,\n CMIEvaluationCommentsObject,\n CMITriesObject,\n} from './cmi/aicc_cmi';\nimport {NAV} from './cmi/scorm12_cmi';\n\n/**\n * The AICC API class\n */\nexport default class AICC extends Scorm12API {\n /**\n * Constructor to create AICC API object\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(finalSettings);\n\n this.cmi = new CMI();\n this.nav = new NAV();\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {any} value\n * @param {boolean} foundFirstIndex\n * @return {object}\n */\n getChildElement(CMIElement, value, foundFirstIndex) {\n let newChild = super.getChildElement(CMIElement, value, foundFirstIndex);\n\n if (!newChild) {\n if (this.stringMatches(CMIElement, 'cmi\\\\.evaluation\\\\.comments\\\\.\\\\d+')) {\n newChild = new CMIEvaluationCommentsObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.tries\\\\.\\\\d+')) {\n newChild = new CMITriesObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.attempt_records\\\\.\\\\d+')) {\n newChild = new CMIAttemptRecordsObject();\n }\n }\n\n return newChild;\n }\n\n /**\n * Replace the whole API with another\n *\n * @param {AICC} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n this.nav = newAPI.nav;\n }\n}\n","// @flow\nimport {CMIArray} from './cmi/common';\nimport {ValidationError} from './exceptions';\nimport ErrorCodes from './constants/error_codes';\nimport APIConstants from './constants/api_constants';\nimport {unflatten} from './utilities';\nimport debounce from 'lodash.debounce';\n\nconst global_constants = APIConstants.global;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Base API class for AICC, SCORM 1.2, and SCORM 2004. Should be considered\n * abstract, and never initialized on it's own.\n */\nexport default class BaseAPI {\n #timeout;\n #error_codes;\n #settings = {\n autocommit: false,\n autocommitSeconds: 10,\n asyncCommit: false,\n sendBeaconCommit: false,\n lmsCommitUrl: false,\n dataCommitFormat: 'json', // valid formats are 'json' or 'flattened', 'params'\n commitRequestDataType: 'application/json;charset=UTF-8',\n autoProgress: false,\n logLevel: global_constants.LOG_LEVEL_ERROR,\n selfReportSessionTime: false,\n alwaysSendTotalTime: false,\n strict_errors: true,\n xhrHeaders: {},\n xhrWithCredentials: false,\n responseHandler: function(xhr) {\n let result;\n if (typeof xhr !== 'undefined') {\n result = JSON.parse(xhr.responseText);\n if (result === null || !{}.hasOwnProperty.call(result, 'result')) {\n result = {};\n if (xhr.status === 200) {\n result.result = global_constants.SCORM_TRUE;\n result.errorCode = 0;\n } else {\n result.result = global_constants.SCORM_FALSE;\n result.errorCode = 101;\n }\n }\n }\n return result;\n },\n requestHandler: function(commitObject) {\n return commitObject;\n },\n onLogMessage: function(messageLevel, logMessage) {\n switch (messageLevel) {\n case global_constants.LOG_LEVEL_ERROR:\n console.error(logMessage);\n break;\n case global_constants.LOG_LEVEL_WARNING:\n console.warn(logMessage);\n break;\n case global_constants.LOG_LEVEL_INFO:\n console.info(logMessage);\n break;\n case global_constants.LOG_LEVEL_DEBUG:\n if (console.debug) {\n console.debug(logMessage);\n } else {\n console.log(logMessage);\n }\n break;\n }\n },\n };\n cmi;\n startingData: {};\n\n /**\n * Constructor for Base API class. Sets some shared API fields, as well as\n * sets up options for the API.\n * @param {object} error_codes\n * @param {object} settings\n */\n constructor(error_codes, settings) {\n if (new.target === BaseAPI) {\n throw new TypeError('Cannot construct BaseAPI instances directly');\n }\n this.currentState = global_constants.STATE_NOT_INITIALIZED;\n this.lastErrorCode = 0;\n this.listenerArray = [];\n\n this.#timeout = null;\n this.#error_codes = error_codes;\n\n this.settings = settings;\n this.apiLogLevel = this.settings.logLevel;\n this.selfReportSessionTime = this.settings.selfReportSessionTime;\n }\n\n /**\n * Initialize the API\n * @param {string} callbackName\n * @param {string} initializeMessage\n * @param {string} terminationMessage\n * @return {string}\n */\n initialize(\n callbackName: String,\n initializeMessage?: String,\n terminationMessage?: String) {\n let returnValue = global_constants.SCORM_FALSE;\n\n if (this.isInitialized()) {\n this.throwSCORMError(this.#error_codes.INITIALIZED, initializeMessage);\n } else if (this.isTerminated()) {\n this.throwSCORMError(this.#error_codes.TERMINATED, terminationMessage);\n } else {\n if (this.selfReportSessionTime) {\n this.cmi.setStartTime();\n }\n\n this.currentState = global_constants.STATE_INITIALIZED;\n this.lastErrorCode = 0;\n returnValue = global_constants.SCORM_TRUE;\n this.processListeners(callbackName);\n }\n\n this.apiLog(callbackName, null, 'returned: ' + returnValue,\n global_constants.LOG_LEVEL_INFO);\n this.clearSCORMError(returnValue);\n\n return returnValue;\n }\n\n /**\n * Getter for #error_codes\n * @return {object}\n */\n get error_codes() {\n return this.#error_codes;\n }\n\n /**\n * Getter for #settings\n * @return {object}\n */\n get settings() {\n return this.#settings;\n }\n\n /**\n * Setter for #settings\n * @param {object} settings\n */\n set settings(settings: Object) {\n this.#settings = {...this.#settings, ...settings};\n }\n\n /**\n * Terminates the current run of the API\n * @param {string} callbackName\n * @param {boolean} checkTerminated\n * @return {string}\n */\n terminate(\n callbackName: String,\n checkTerminated: boolean) {\n let returnValue = global_constants.SCORM_FALSE;\n\n if (this.checkState(checkTerminated,\n this.#error_codes.TERMINATION_BEFORE_INIT,\n this.#error_codes.MULTIPLE_TERMINATION)) {\n this.currentState = global_constants.STATE_TERMINATED;\n\n const result = this.storeData(true);\n if (!this.settings.sendBeaconCommit && !this.settings.asyncCommit &&\n typeof result.errorCode !== 'undefined' && result.errorCode > 0) {\n this.throwSCORMError(result.errorCode);\n }\n returnValue = (typeof result !== 'undefined' && result.result) ?\n result.result : global_constants.SCORM_FALSE;\n\n if (checkTerminated) this.lastErrorCode = 0;\n\n returnValue = global_constants.SCORM_TRUE;\n this.processListeners(callbackName);\n }\n\n this.apiLog(callbackName, null, 'returned: ' + returnValue,\n global_constants.LOG_LEVEL_INFO);\n this.clearSCORMError(returnValue);\n\n return returnValue;\n }\n\n /**\n * Get the value of the CMIElement.\n *\n * @param {string} callbackName\n * @param {boolean} checkTerminated\n * @param {string} CMIElement\n * @return {string}\n */\n getValue(\n callbackName: String,\n checkTerminated: boolean,\n CMIElement: String) {\n let returnValue;\n\n if (this.checkState(checkTerminated,\n this.#error_codes.RETRIEVE_BEFORE_INIT,\n this.#error_codes.RETRIEVE_AFTER_TERM)) {\n if (checkTerminated) this.lastErrorCode = 0;\n try {\n returnValue = this.getCMIValue(CMIElement);\n } catch (e) {\n if (e instanceof ValidationError) {\n this.lastErrorCode = e.errorCode;\n returnValue = global_constants.SCORM_FALSE;\n } else {\n if (e.message) {\n console.error(e.message);\n } else {\n console.error(e);\n }\n this.throwSCORMError(this.#error_codes.GENERAL);\n }\n }\n this.processListeners(callbackName, CMIElement);\n }\n\n this.apiLog(callbackName, CMIElement, ': returned: ' + returnValue,\n global_constants.LOG_LEVEL_INFO);\n this.clearSCORMError(returnValue);\n\n return returnValue;\n }\n\n /**\n * Sets the value of the CMIElement.\n *\n * @param {string} callbackName\n * @param {string} commitCallback\n * @param {boolean} checkTerminated\n * @param {string} CMIElement\n * @param {*} value\n * @return {string}\n */\n setValue(\n callbackName: String,\n commitCallback: String,\n checkTerminated: boolean,\n CMIElement,\n value) {\n if (value !== undefined) {\n value = String(value);\n }\n let returnValue = global_constants.SCORM_FALSE;\n\n if (this.checkState(checkTerminated, this.#error_codes.STORE_BEFORE_INIT,\n this.#error_codes.STORE_AFTER_TERM)) {\n if (checkTerminated) this.lastErrorCode = 0;\n try {\n returnValue = this.setCMIValue(CMIElement, value);\n } catch (e) {\n if (e instanceof ValidationError) {\n this.lastErrorCode = e.errorCode;\n returnValue = global_constants.SCORM_FALSE;\n } else {\n if (e.message) {\n console.error(e.message);\n } else {\n console.error(e);\n }\n this.throwSCORMError(this.#error_codes.GENERAL);\n }\n }\n this.processListeners(callbackName, CMIElement, value);\n }\n\n if (returnValue === undefined) {\n returnValue = global_constants.SCORM_FALSE;\n }\n\n // If we didn't have any errors while setting the data, go ahead and\n // schedule a commit, if autocommit is turned on\n if (String(this.lastErrorCode) === '0') {\n if (this.settings.autocommit && !this.#timeout) {\n this.scheduleCommit(this.settings.autocommitSeconds * 1000, commitCallback);\n }\n }\n\n this.apiLog(callbackName, CMIElement,\n ': ' + value + ': result: ' + returnValue,\n global_constants.LOG_LEVEL_INFO);\n this.clearSCORMError(returnValue);\n\n return returnValue;\n }\n\n /**\n * Orders LMS to store all content parameters\n * @param {string} callbackName\n * @param {boolean} checkTerminated\n * @return {string}\n */\n commit(\n callbackName: String,\n checkTerminated: boolean) {\n this.clearScheduledCommit();\n\n let returnValue = global_constants.SCORM_FALSE;\n\n if (this.checkState(checkTerminated, this.#error_codes.COMMIT_BEFORE_INIT,\n this.#error_codes.COMMIT_AFTER_TERM)) {\n const result = this.storeData(false);\n if (!this.settings.sendBeaconCommit && !this.settings.asyncCommit &&\n result.errorCode && result.errorCode > 0) {\n this.throwSCORMError(result.errorCode);\n }\n returnValue = (typeof result !== 'undefined' && result.result) ?\n result.result : global_constants.SCORM_FALSE;\n\n this.apiLog(callbackName, 'HttpRequest', ' Result: ' + returnValue,\n global_constants.LOG_LEVEL_DEBUG);\n\n if (checkTerminated) this.lastErrorCode = 0;\n\n this.processListeners(callbackName);\n }\n\n this.apiLog(callbackName, null, 'returned: ' + returnValue,\n global_constants.LOG_LEVEL_INFO);\n this.clearSCORMError(returnValue);\n\n return returnValue;\n }\n\n /**\n * Returns last error code\n * @param {string} callbackName\n * @return {string}\n */\n getLastError(callbackName: String) {\n const returnValue = String(this.lastErrorCode);\n\n this.processListeners(callbackName);\n\n this.apiLog(callbackName, null, 'returned: ' + returnValue,\n global_constants.LOG_LEVEL_INFO);\n\n return returnValue;\n }\n\n /**\n * Returns the errorNumber error description\n *\n * @param {string} callbackName\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n getErrorString(callbackName: String, CMIErrorCode) {\n let returnValue = '';\n\n if (CMIErrorCode !== null && CMIErrorCode !== '') {\n returnValue = this.getLmsErrorMessageDetails(CMIErrorCode);\n this.processListeners(callbackName);\n }\n\n this.apiLog(callbackName, null, 'returned: ' + returnValue,\n global_constants.LOG_LEVEL_INFO);\n\n return returnValue;\n }\n\n /**\n * Returns a comprehensive description of the errorNumber error.\n *\n * @param {string} callbackName\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n getDiagnostic(callbackName: String, CMIErrorCode) {\n let returnValue = '';\n\n if (CMIErrorCode !== null && CMIErrorCode !== '') {\n returnValue = this.getLmsErrorMessageDetails(CMIErrorCode, true);\n this.processListeners(callbackName);\n }\n\n this.apiLog(callbackName, null, 'returned: ' + returnValue,\n global_constants.LOG_LEVEL_INFO);\n\n return returnValue;\n }\n\n /**\n * Checks the LMS state and ensures it has been initialized.\n *\n * @param {boolean} checkTerminated\n * @param {number} beforeInitError\n * @param {number} afterTermError\n * @return {boolean}\n */\n checkState(\n checkTerminated: boolean,\n beforeInitError: number,\n afterTermError?: number) {\n if (this.isNotInitialized()) {\n this.throwSCORMError(beforeInitError);\n return false;\n } else if (checkTerminated && this.isTerminated()) {\n this.throwSCORMError(afterTermError);\n return false;\n }\n\n return true;\n }\n\n /**\n * Logging for all SCORM actions\n *\n * @param {string} functionName\n * @param {string} CMIElement\n * @param {string} logMessage\n * @param {number}messageLevel\n */\n apiLog(\n functionName: String,\n CMIElement: String,\n logMessage: String,\n messageLevel: number) {\n logMessage = this.formatMessage(functionName, CMIElement, logMessage);\n\n if (messageLevel >= this.apiLogLevel) {\n this.settings.onLogMessage(messageLevel, logMessage);\n }\n }\n\n /**\n * Formats the SCORM messages for easy reading\n *\n * @param {string} functionName\n * @param {string} CMIElement\n * @param {string} message\n * @return {string}\n */\n formatMessage(functionName: String, CMIElement: String, message: String) {\n const baseLength = 20;\n let messageString = '';\n\n messageString += functionName;\n\n let fillChars = baseLength - messageString.length;\n\n for (let i = 0; i < fillChars; i++) {\n messageString += ' ';\n }\n\n messageString += ': ';\n\n if (CMIElement) {\n const CMIElementBaseLength = 70;\n\n messageString += CMIElement;\n\n fillChars = CMIElementBaseLength - messageString.length;\n\n for (let j = 0; j < fillChars; j++) {\n messageString += ' ';\n }\n }\n\n if (message) {\n messageString += message;\n }\n\n return messageString;\n }\n\n /**\n * Checks to see if {str} contains {tester}\n *\n * @param {string} str String to check against\n * @param {string} tester String to check for\n * @return {boolean}\n */\n stringMatches(str: String, tester: String) {\n return str && tester && str.match(tester);\n }\n\n /**\n * Check to see if the specific object has the given property\n * @param {*} refObject\n * @param {string} attribute\n * @return {boolean}\n * @private\n */\n _checkObjectHasProperty(refObject, attribute: String) {\n return Object.hasOwnProperty.call(refObject, attribute) ||\n Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(refObject), attribute) ||\n (attribute in refObject);\n }\n\n /**\n * Returns the message that corresponds to errorNumber\n * APIs that inherit BaseAPI should override this function\n *\n * @param {(string|number)} _errorNumber\n * @param {boolean} _detail\n * @return {string}\n * @abstract\n */\n getLmsErrorMessageDetails(_errorNumber, _detail) {\n throw new Error(\n 'The getLmsErrorMessageDetails method has not been implemented');\n }\n\n /**\n * Gets the value for the specific element.\n * APIs that inherit BaseAPI should override this function\n *\n * @param {string} _CMIElement\n * @return {string}\n * @abstract\n */\n getCMIValue(_CMIElement) {\n throw new Error('The getCMIValue method has not been implemented');\n }\n\n /**\n * Sets the value for the specific element.\n * APIs that inherit BaseAPI should override this function\n *\n * @param {string} _CMIElement\n * @param {any} _value\n * @return {string}\n * @abstract\n */\n setCMIValue(_CMIElement, _value) {\n throw new Error('The setCMIValue method has not been implemented');\n }\n\n /**\n * Shared API method to set a valid for a given element.\n *\n * @param {string} methodName\n * @param {boolean} scorm2004\n * @param {string} CMIElement\n * @param {*} value\n * @return {string}\n */\n _commonSetCMIValue(\n methodName: String, scorm2004: boolean, CMIElement, value) {\n if (!CMIElement || CMIElement === '') {\n return global_constants.SCORM_FALSE;\n }\n\n const structure = CMIElement.split('.');\n let refObject = this;\n let returnValue = global_constants.SCORM_FALSE;\n let foundFirstIndex = false;\n\n const invalidErrorMessage = `The data model element passed to ${methodName} (${CMIElement}) is not a valid SCORM data model element.`;\n const invalidErrorCode = scorm2004 ?\n this.#error_codes.UNDEFINED_DATA_MODEL :\n this.#error_codes.GENERAL;\n\n for (let i = 0; i < structure.length; i++) {\n const attribute = structure[i];\n\n if (i === structure.length - 1) {\n if (scorm2004 && (attribute.substr(0, 8) === '{target=') &&\n (typeof refObject._isTargetValid == 'function')) {\n this.throwSCORMError(this.#error_codes.READ_ONLY_ELEMENT);\n } else if (!this._checkObjectHasProperty(refObject, attribute)) {\n this.throwSCORMError(invalidErrorCode, invalidErrorMessage);\n } else {\n if (this.isInitialized() &&\n this.stringMatches(CMIElement, '\\\\.correct_responses\\\\.\\\\d+')) {\n this.validateCorrectResponse(CMIElement, value);\n }\n\n if (!scorm2004 || this.lastErrorCode === 0) {\n refObject[attribute] = value;\n returnValue = global_constants.SCORM_TRUE;\n }\n }\n } else {\n refObject = refObject[attribute];\n if (!refObject) {\n this.throwSCORMError(invalidErrorCode, invalidErrorMessage);\n break;\n }\n\n if (refObject instanceof CMIArray) {\n const index = parseInt(structure[i + 1], 10);\n\n // SCO is trying to set an item on an array\n if (!isNaN(index)) {\n const item = refObject.childArray[index];\n\n if (item) {\n refObject = item;\n foundFirstIndex = true;\n } else {\n const newChild = this.getChildElement(CMIElement, value,\n foundFirstIndex);\n foundFirstIndex = true;\n\n if (!newChild) {\n this.throwSCORMError(invalidErrorCode, invalidErrorMessage);\n } else {\n if (refObject.initialized) newChild.initialize();\n\n refObject.childArray.push(newChild);\n refObject = newChild;\n }\n }\n\n // Have to update i value to skip the array position\n i++;\n }\n }\n }\n }\n\n if (returnValue === global_constants.SCORM_FALSE) {\n this.apiLog(methodName, null,\n `There was an error setting the value for: ${CMIElement}, value of: ${value}`,\n global_constants.LOG_LEVEL_WARNING);\n }\n\n return returnValue;\n }\n\n /**\n * Abstract method for validating that a response is correct.\n *\n * @param {string} _CMIElement\n * @param {*} _value\n */\n validateCorrectResponse(_CMIElement, _value) {\n // just a stub method\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n * APIs that inherit BaseAPI should override this method.\n *\n * @param {string} _CMIElement - unused\n * @param {*} _value - unused\n * @param {boolean} _foundFirstIndex - unused\n * @return {*}\n * @abstract\n */\n getChildElement(_CMIElement, _value, _foundFirstIndex) {\n throw new Error('The getChildElement method has not been implemented');\n }\n\n /**\n * Gets a value from the CMI Object\n *\n * @param {string} methodName\n * @param {boolean} scorm2004\n * @param {string} CMIElement\n * @return {*}\n */\n _commonGetCMIValue(methodName: String, scorm2004: boolean, CMIElement) {\n if (!CMIElement || CMIElement === '') {\n return '';\n }\n\n const structure = CMIElement.split('.');\n let refObject = this;\n let attribute = null;\n\n const uninitializedErrorMessage = `The data model element passed to ${methodName} (${CMIElement}) has not been initialized.`;\n const invalidErrorMessage = `The data model element passed to ${methodName} (${CMIElement}) is not a valid SCORM data model element.`;\n const invalidErrorCode = scorm2004 ?\n this.#error_codes.UNDEFINED_DATA_MODEL :\n this.#error_codes.GENERAL;\n\n for (let i = 0; i < structure.length; i++) {\n attribute = structure[i];\n\n if (!scorm2004) {\n if (i === structure.length - 1) {\n if (!this._checkObjectHasProperty(refObject, attribute)) {\n this.throwSCORMError(invalidErrorCode, invalidErrorMessage);\n return;\n }\n }\n } else {\n if ((String(attribute).substr(0, 8) === '{target=') &&\n (typeof refObject._isTargetValid == 'function')) {\n const target = String(attribute).substr(8, String(attribute).length - 9);\n return refObject._isTargetValid(target);\n } else if (!this._checkObjectHasProperty(refObject, attribute)) {\n this.throwSCORMError(invalidErrorCode, invalidErrorMessage);\n return;\n }\n }\n\n refObject = refObject[attribute];\n if (refObject === undefined) {\n this.throwSCORMError(invalidErrorCode, invalidErrorMessage);\n break;\n }\n\n if (refObject instanceof CMIArray) {\n const index = parseInt(structure[i + 1], 10);\n\n // SCO is trying to set an item on an array\n if (!isNaN(index)) {\n const item = refObject.childArray[index];\n\n if (item) {\n refObject = item;\n } else {\n this.throwSCORMError(this.#error_codes.VALUE_NOT_INITIALIZED,\n uninitializedErrorMessage);\n break;\n }\n\n // Have to update i value to skip the array position\n i++;\n }\n }\n }\n\n if (refObject === null || refObject === undefined) {\n if (!scorm2004) {\n if (attribute === '_children') {\n this.throwSCORMError(scorm12_error_codes.CHILDREN_ERROR);\n } else if (attribute === '_count') {\n this.throwSCORMError(scorm12_error_codes.COUNT_ERROR);\n }\n }\n } else {\n return refObject;\n }\n }\n\n /**\n * Returns true if the API's current state is STATE_INITIALIZED\n *\n * @return {boolean}\n */\n isInitialized() {\n return this.currentState === global_constants.STATE_INITIALIZED;\n }\n\n /**\n * Returns true if the API's current state is STATE_NOT_INITIALIZED\n *\n * @return {boolean}\n */\n isNotInitialized() {\n return this.currentState === global_constants.STATE_NOT_INITIALIZED;\n }\n\n /**\n * Returns true if the API's current state is STATE_TERMINATED\n *\n * @return {boolean}\n */\n isTerminated() {\n return this.currentState === global_constants.STATE_TERMINATED;\n }\n\n /**\n * Provides a mechanism for attaching to a specific SCORM event\n *\n * @param {string} listenerName\n * @param {function} callback\n */\n on(listenerName: String, callback: function) {\n if (!callback) return;\n\n const listenerFunctions = listenerName.split(' ');\n for (let i = 0; i < listenerFunctions.length; i++) {\n const listenerSplit = listenerFunctions[i].split('.');\n if (listenerSplit.length === 0) return;\n\n const functionName = listenerSplit[0];\n\n let CMIElement = null;\n if (listenerSplit.length > 1) {\n CMIElement = listenerName.replace(functionName + '.', '');\n }\n\n this.listenerArray.push({\n functionName: functionName,\n CMIElement: CMIElement,\n callback: callback,\n });\n\n this.apiLog('on', functionName, `Added event listener: ${this.listenerArray.length}`, global_constants.LOG_LEVEL_INFO);\n }\n }\n\n /**\n * Provides a mechanism for detaching a specific SCORM event listener\n *\n * @param {string} listenerName\n * @param {function} callback\n */\n off(listenerName: String, callback: function) {\n if (!callback) return;\n\n const listenerFunctions = listenerName.split(' ');\n for (let i = 0; i < listenerFunctions.length; i++) {\n const listenerSplit = listenerFunctions[i].split('.');\n if (listenerSplit.length === 0) return;\n\n const functionName = listenerSplit[0];\n\n let CMIElement = null;\n if (listenerSplit.length > 1) {\n CMIElement = listenerName.replace(functionName + '.', '');\n }\n\n const removeIndex = this.listenerArray.findIndex((obj) =>\n obj.functionName === functionName &&\n obj.CMIElement === CMIElement &&\n obj.callback === callback,\n );\n if (removeIndex !== -1) {\n this.listenerArray.splice(removeIndex, 1);\n this.apiLog('off', functionName, `Removed event listener: ${this.listenerArray.length}`, global_constants.LOG_LEVEL_INFO);\n }\n }\n }\n\n /**\n * Provides a mechanism for clearing all listeners from a specific SCORM event\n *\n * @param {string} listenerName\n */\n clear(listenerName: String) {\n const listenerFunctions = listenerName.split(' ');\n for (let i = 0; i < listenerFunctions.length; i++) {\n const listenerSplit = listenerFunctions[i].split('.');\n if (listenerSplit.length === 0) return;\n\n const functionName = listenerSplit[0];\n\n let CMIElement = null;\n if (listenerSplit.length > 1) {\n CMIElement = listenerName.replace(functionName + '.', '');\n }\n\n this.listenerArray = this.listenerArray.filter((obj) =>\n obj.functionName !== functionName &&\n obj.CMIElement !== CMIElement,\n );\n }\n }\n\n /**\n * Processes any 'on' listeners that have been created\n *\n * @param {string} functionName\n * @param {string} CMIElement\n * @param {*} value\n */\n processListeners(functionName: String, CMIElement: String, value: any) {\n this.apiLog(functionName, CMIElement, value);\n for (let i = 0; i < this.listenerArray.length; i++) {\n const listener = this.listenerArray[i];\n const functionsMatch = listener.functionName === functionName;\n const listenerHasCMIElement = !!listener.CMIElement;\n let CMIElementsMatch = false;\n if (CMIElement && listener.CMIElement &&\n listener.CMIElement.substring(listener.CMIElement.length - 1) ===\n '*') {\n CMIElementsMatch = CMIElement.indexOf(listener.CMIElement.substring(0,\n listener.CMIElement.length - 1)) === 0;\n } else {\n CMIElementsMatch = listener.CMIElement === CMIElement;\n }\n\n if (functionsMatch && (!listenerHasCMIElement || CMIElementsMatch)) {\n listener.callback(CMIElement, value);\n }\n }\n }\n\n /**\n * Throws a SCORM error\n *\n * @param {number} errorNumber\n * @param {string} message\n */\n throwSCORMError(errorNumber: number, message: String) {\n if (!message) {\n message = this.getLmsErrorMessageDetails(errorNumber);\n }\n\n this.apiLog('throwSCORMError', null, errorNumber + ': ' + message,\n global_constants.LOG_LEVEL_ERROR);\n\n this.lastErrorCode = String(errorNumber);\n }\n\n /**\n * Clears the last SCORM error code on success.\n *\n * @param {string} success\n */\n clearSCORMError(success: String) {\n if (success !== undefined && success !== global_constants.SCORM_FALSE) {\n this.lastErrorCode = 0;\n }\n }\n\n /**\n * Attempts to store the data to the LMS, logs data if no LMS configured\n * APIs that inherit BaseAPI should override this function\n *\n * @param {boolean} _calculateTotalTime\n * @return {string}\n * @abstract\n */\n storeData(_calculateTotalTime) {\n throw new Error(\n 'The storeData method has not been implemented');\n }\n\n /**\n * Load the CMI from a flattened JSON object\n * @param {object} json\n * @param {string} CMIElement\n */\n loadFromFlattenedJSON(json, CMIElement) {\n if (!this.isNotInitialized()) {\n console.error(\n 'loadFromFlattenedJSON can only be called before the call to lmsInitialize.');\n return;\n }\n\n /**\n * Test match pattern.\n *\n * @param {string} a\n * @param {string} c\n * @param {RegExp} a_pattern\n * @return {number}\n */\n function testPattern(a, c, a_pattern) {\n const a_match = a.match(a_pattern);\n\n let c_match;\n if (a_match !== null && (c_match = c.match(a_pattern)) !== null) {\n const a_num = Number(a_match[2]);\n const c_num = Number(c_match[2]);\n if (a_num === c_num) {\n if (a_match[3] === 'id') {\n return -1;\n } else if (a_match[3] === 'type') {\n if (c_match[3] === 'id') {\n return 1;\n } else {\n return -1;\n }\n } else {\n return 1;\n }\n }\n return a_num - c_num;\n }\n\n return null;\n }\n\n const int_pattern = /^(cmi\\.interactions\\.)(\\d+)\\.(.*)$/;\n const obj_pattern = /^(cmi\\.objectives\\.)(\\d+)\\.(.*)$/;\n\n const result = Object.keys(json).map(function(key) {\n return [String(key), json[key]];\n });\n\n // CMI interactions need to have id and type loaded before any other fields\n result.sort(function([a, b], [c, d]) {\n let test;\n if ((test = testPattern(a, c, int_pattern)) !== null) {\n return test;\n }\n if ((test = testPattern(a, c, obj_pattern)) !== null) {\n return test;\n }\n\n if (a < c) {\n return -1;\n }\n if (a > c) {\n return 1;\n }\n return 0;\n });\n\n let obj;\n result.forEach((element) => {\n obj = {};\n obj[element[0]] = element[1];\n this.loadFromJSON(unflatten(obj), CMIElement);\n });\n }\n\n /**\n * Loads CMI data from a JSON object.\n *\n * @param {object} json\n * @param {string} CMIElement\n */\n loadFromJSON(json, CMIElement) {\n if (!this.isNotInitialized()) {\n console.error(\n 'loadFromJSON can only be called before the call to lmsInitialize.');\n return;\n }\n\n CMIElement = CMIElement !== undefined ? CMIElement : 'cmi';\n\n this.startingData = json;\n\n // could this be refactored down to flatten(json) then setCMIValue on each?\n for (const key in json) {\n if ({}.hasOwnProperty.call(json, key) && json[key]) {\n const currentCMIElement = (CMIElement ? CMIElement + '.' : '') + key;\n const value = json[key];\n\n if (value['childArray']) {\n for (let i = 0; i < value['childArray'].length; i++) {\n this.loadFromJSON(value['childArray'][i],\n currentCMIElement + '.' + i);\n }\n } else if (value.constructor === Object) {\n this.loadFromJSON(value, currentCMIElement);\n } else {\n this.setCMIValue(currentCMIElement, value);\n }\n }\n }\n }\n\n /**\n * Render the CMI object to JSON for sending to an LMS.\n *\n * @return {string}\n */\n renderCMIToJSONString() {\n const cmi = this.cmi;\n // Do we want/need to return fields that have no set value?\n // return JSON.stringify({ cmi }, (k, v) => v === undefined ? null : v, 2);\n return JSON.stringify({cmi});\n }\n\n /**\n * Returns a JS object representing the current cmi\n * @return {object}\n */\n renderCMIToJSONObject() {\n // Do we want/need to return fields that have no set value?\n // return JSON.stringify({ cmi }, (k, v) => v === undefined ? null : v, 2);\n return JSON.parse(this.renderCMIToJSONString());\n }\n\n /**\n * Render the cmi object to the proper format for LMS commit\n * APIs that inherit BaseAPI should override this function\n *\n * @param {boolean} _terminateCommit\n * @return {*}\n * @abstract\n */\n renderCommitCMI(_terminateCommit) {\n throw new Error(\n 'The storeData method has not been implemented');\n }\n\n /**\n * Send the request to the LMS\n * @param {string} url\n * @param {object|Array} params\n * @param {boolean} immediate\n * @return {object}\n */\n processHttpRequest(url: String, params, immediate = false) {\n const api = this;\n const process = function(url, params, settings, error_codes) {\n const genericError = {\n 'result': global_constants.SCORM_FALSE,\n 'errorCode': error_codes.GENERAL,\n };\n\n let result;\n if (!settings.sendBeaconCommit) {\n const httpReq = new XMLHttpRequest();\n httpReq.open('POST', url, settings.asyncCommit);\n\n if (Object.keys(settings.xhrHeaders).length) {\n Object.keys(settings.xhrHeaders).forEach((header) => {\n httpReq.setRequestHeader(header, settings.xhrHeaders[header]);\n });\n }\n\n httpReq.withCredentials = settings.xhrWithCredentials;\n\n if (settings.asyncCommit) {\n httpReq.onload = function(e) {\n if (typeof settings.responseHandler === 'function') {\n result = settings.responseHandler(httpReq);\n } else {\n result = JSON.parse(httpReq.responseText);\n }\n };\n }\n try {\n params = settings.requestHandler(params);\n if (params instanceof Array) {\n httpReq.setRequestHeader('Content-Type',\n 'application/x-www-form-urlencoded');\n httpReq.send(params.join('&'));\n } else {\n httpReq.setRequestHeader('Content-Type',\n settings.commitRequestDataType);\n httpReq.send(JSON.stringify(params));\n }\n\n if (!settings.asyncCommit) {\n if (typeof settings.responseHandler === 'function') {\n result = settings.responseHandler(httpReq);\n } else {\n result = JSON.parse(httpReq.responseText);\n }\n } else {\n result = {};\n result.result = global_constants.SCORM_TRUE;\n result.errorCode = 0;\n api.processListeners('CommitSuccess');\n return result;\n }\n } catch (e) {\n console.error(e);\n api.processListeners('CommitError');\n return genericError;\n }\n } else {\n try {\n const headers = {\n type: settings.commitRequestDataType,\n };\n let blob;\n if (params instanceof Array) {\n blob = new Blob([params.join('&')], headers);\n } else {\n blob = new Blob([JSON.stringify(params)], headers);\n }\n\n result = {};\n if (navigator.sendBeacon(url, blob)) {\n result.result = global_constants.SCORM_TRUE;\n result.errorCode = 0;\n } else {\n result.result = global_constants.SCORM_FALSE;\n result.errorCode = 101;\n }\n } catch (e) {\n console.error(e);\n api.processListeners('CommitError');\n return genericError;\n }\n }\n\n if (typeof result === 'undefined') {\n api.processListeners('CommitError');\n return genericError;\n }\n\n if (result.result === true ||\n result.result === global_constants.SCORM_TRUE) {\n api.processListeners('CommitSuccess');\n } else {\n api.processListeners('CommitError');\n }\n\n return result;\n };\n\n if (typeof debounce !== 'undefined') {\n const debounced = debounce(process, 500);\n debounced(url, params, this.settings, this.error_codes);\n\n // if we're terminating, go ahead and commit immediately\n if (immediate) {\n debounced.flush();\n }\n\n return {\n result: global_constants.SCORM_TRUE,\n errorCode: 0,\n };\n } else {\n return process(url, params, this.settings, this.error_codes);\n }\n }\n\n /**\n * Throws a SCORM error\n *\n * @param {number} when - the number of milliseconds to wait before committing\n * @param {string} callback - the name of the commit event callback\n */\n scheduleCommit(when: number, callback: string) {\n this.#timeout = new ScheduledCommit(this, when, callback);\n this.apiLog('scheduleCommit', '', 'scheduled',\n global_constants.LOG_LEVEL_DEBUG);\n }\n\n /**\n * Clears and cancels any currently scheduled commits\n */\n clearScheduledCommit() {\n if (this.#timeout) {\n this.#timeout.cancel();\n this.#timeout = null;\n this.apiLog('clearScheduledCommit', '', 'cleared',\n global_constants.LOG_LEVEL_DEBUG);\n }\n }\n}\n\n/**\n * Private class that wraps a timeout call to the commit() function\n */\nclass ScheduledCommit {\n #API;\n #cancelled = false;\n #timeout;\n #callback;\n\n /**\n * Constructor for ScheduledCommit\n * @param {BaseAPI} API\n * @param {number} when\n * @param {string} callback\n */\n constructor(API: any, when: number, callback: string) {\n this.#API = API;\n this.#timeout = setTimeout(this.wrapper.bind(this), when);\n this.#callback = callback;\n }\n\n /**\n * Cancel any currently scheduled commit\n */\n cancel() {\n this.#cancelled = true;\n if (this.#timeout) {\n clearTimeout(this.#timeout);\n }\n }\n\n /**\n * Wrap the API commit call to check if the call has already been cancelled\n */\n wrapper() {\n if (!this.#cancelled) {\n this.#API.commit(this.#callback);\n }\n }\n}\n","// @flow\nimport BaseAPI from './BaseAPI';\nimport {\n CMI,\n CMIInteractionsCorrectResponsesObject,\n CMIInteractionsObject,\n CMIInteractionsObjectivesObject,\n CMIObjectivesObject, NAV,\n} from './cmi/scorm12_cmi';\nimport * as Utilities from './utilities';\nimport APIConstants from './constants/api_constants';\nimport ErrorCodes from './constants/error_codes';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst global_constants = APIConstants.global;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * API class for SCORM 1.2\n */\nexport default class Scorm12API extends BaseAPI {\n /**\n * Constructor for SCORM 1.2 API\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(scorm12_error_codes, finalSettings);\n\n this.cmi = new CMI();\n this.nav = new NAV();\n\n // Rename functions to match 1.2 Spec and expose to modules\n this.LMSInitialize = this.lmsInitialize;\n this.LMSFinish = this.lmsFinish;\n this.LMSGetValue = this.lmsGetValue;\n this.LMSSetValue = this.lmsSetValue;\n this.LMSCommit = this.lmsCommit;\n this.LMSGetLastError = this.lmsGetLastError;\n this.LMSGetErrorString = this.lmsGetErrorString;\n this.LMSGetDiagnostic = this.lmsGetDiagnostic;\n }\n\n /**\n * lmsInitialize function from SCORM 1.2 Spec\n *\n * @return {string} bool\n */\n lmsInitialize() {\n this.cmi.initialize();\n return this.initialize('LMSInitialize', 'LMS was already initialized!',\n 'LMS is already finished!');\n }\n\n /**\n * LMSFinish function from SCORM 1.2 Spec\n *\n * @return {string} bool\n */\n lmsFinish() {\n const result = this.terminate('LMSFinish', true);\n\n if (result === global_constants.SCORM_TRUE) {\n if (this.nav.event !== '') {\n if (this.nav.event === 'continue') {\n this.processListeners('SequenceNext');\n } else {\n this.processListeners('SequencePrevious');\n }\n } else if (this.settings.autoProgress) {\n this.processListeners('SequenceNext');\n }\n }\n\n return result;\n }\n\n /**\n * LMSGetValue function from SCORM 1.2 Spec\n *\n * @param {string} CMIElement\n * @return {string}\n */\n lmsGetValue(CMIElement) {\n return this.getValue('LMSGetValue', false, CMIElement);\n }\n\n /**\n * LMSSetValue function from SCORM 1.2 Spec\n *\n * @param {string} CMIElement\n * @param {*} value\n * @return {string}\n */\n lmsSetValue(CMIElement, value) {\n return this.setValue('LMSSetValue', 'LMSCommit', false, CMIElement, value);\n }\n\n /**\n * LMSCommit function from SCORM 1.2 Spec\n *\n * @return {string} bool\n */\n lmsCommit() {\n return this.commit('LMSCommit', false);\n }\n\n /**\n * LMSGetLastError function from SCORM 1.2 Spec\n *\n * @return {string}\n */\n lmsGetLastError() {\n return this.getLastError('LMSGetLastError');\n }\n\n /**\n * LMSGetErrorString function from SCORM 1.2 Spec\n *\n * @param {string} CMIErrorCode\n * @return {string}\n */\n lmsGetErrorString(CMIErrorCode) {\n return this.getErrorString('LMSGetErrorString', CMIErrorCode);\n }\n\n /**\n * LMSGetDiagnostic function from SCORM 1.2 Spec\n *\n * @param {string} CMIErrorCode\n * @return {string}\n */\n lmsGetDiagnostic(CMIErrorCode) {\n return this.getDiagnostic('LMSGetDiagnostic', CMIErrorCode);\n }\n\n /**\n * Sets a value on the CMI Object\n *\n * @param {string} CMIElement\n * @param {*} value\n * @return {string}\n */\n setCMIValue(CMIElement, value) {\n return this._commonSetCMIValue('LMSSetValue', false, CMIElement, value);\n }\n\n /**\n * Gets a value from the CMI Object\n *\n * @param {string} CMIElement\n * @return {*}\n */\n getCMIValue(CMIElement) {\n return this._commonGetCMIValue('getCMIValue', false, CMIElement);\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {*} value\n * @param {boolean} foundFirstIndex\n * @return {object}\n */\n getChildElement(CMIElement, value, foundFirstIndex) {\n let newChild;\n\n if (this.stringMatches(CMIElement, 'cmi\\\\.objectives\\\\.\\\\d+')) {\n newChild = new CMIObjectivesObject();\n } else if (foundFirstIndex && this.stringMatches(CMIElement,\n 'cmi\\\\.interactions\\\\.\\\\d+\\\\.correct_responses\\\\.\\\\d+')) {\n newChild = new CMIInteractionsCorrectResponsesObject();\n } else if (foundFirstIndex && this.stringMatches(CMIElement,\n 'cmi\\\\.interactions\\\\.\\\\d+\\\\.objectives\\\\.\\\\d+')) {\n newChild = new CMIInteractionsObjectivesObject();\n } else if (!foundFirstIndex &&\n this.stringMatches(CMIElement, 'cmi\\\\.interactions\\\\.\\\\d+')) {\n newChild = new CMIInteractionsObject();\n }\n\n return newChild;\n }\n\n /**\n * Validates Correct Response values\n *\n * @param {string} CMIElement\n * @param {*} value\n * @return {boolean}\n */\n validateCorrectResponse(CMIElement, value) {\n return true;\n }\n\n /**\n * Returns the message that corresponds to errorNumber.\n *\n * @param {*} errorNumber\n * @param {boolean} detail\n * @return {string}\n */\n getLmsErrorMessageDetails(errorNumber, detail) {\n let basicMessage = 'No Error';\n let detailMessage = 'No Error';\n\n // Set error number to string since inconsistent from modules if string or number\n errorNumber = String(errorNumber);\n if (scorm12_constants.error_descriptions[errorNumber]) {\n basicMessage = scorm12_constants.error_descriptions[errorNumber].basicMessage;\n detailMessage = scorm12_constants.error_descriptions[errorNumber].detailMessage;\n }\n\n return detail ? detailMessage : basicMessage;\n }\n\n /**\n * Replace the whole API with another\n *\n * @param {Scorm12API} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n }\n\n /**\n * Render the cmi object to the proper format for LMS commit\n *\n * @param {boolean} terminateCommit\n * @return {object|Array}\n */\n renderCommitCMI(terminateCommit: boolean) {\n const cmiExport = this.renderCMIToJSONObject();\n\n if (terminateCommit) {\n cmiExport.cmi.core.total_time = this.cmi.getCurrentTotalTime();\n }\n\n const result = [];\n const flattened = Utilities.flatten(cmiExport);\n switch (this.settings.dataCommitFormat) {\n case 'flattened':\n return Utilities.flatten(cmiExport);\n case 'params':\n for (const item in flattened) {\n if ({}.hasOwnProperty.call(flattened, item)) {\n result.push(`${item}=${flattened[item]}`);\n }\n }\n return result;\n case 'json':\n default:\n return cmiExport;\n }\n }\n\n /**\n * Attempts to store the data to the LMS\n *\n * @param {boolean} terminateCommit\n * @return {string}\n */\n storeData(terminateCommit: boolean) {\n if (terminateCommit) {\n const originalStatus = this.cmi.core.lesson_status;\n if (originalStatus === 'not attempted') {\n this.cmi.core.lesson_status = 'completed';\n }\n\n if (this.cmi.core.lesson_mode === 'normal') {\n if (this.cmi.core.credit === 'credit') {\n if (this.settings.mastery_override &&\n this.cmi.student_data.mastery_score !== '' &&\n this.cmi.core.score.raw !== '') {\n if (parseFloat(this.cmi.core.score.raw) >= parseFloat(this.cmi.student_data.mastery_score)) {\n this.cmi.core.lesson_status = 'passed';\n } else {\n this.cmi.core.lesson_status = 'failed';\n }\n }\n }\n } else if (this.cmi.core.lesson_mode === 'browse') {\n if ((this.startingData?.cmi?.core?.lesson_status || '') === '' && originalStatus === 'not attempted') {\n this.cmi.core.lesson_status = 'browsed';\n }\n }\n }\n\n const commitObject = this.renderCommitCMI(terminateCommit ||\n this.settings.alwaysSendTotalTime);\n\n if (this.apiLogLevel === global_constants.LOG_LEVEL_DEBUG) {\n console.debug('Commit (terminated: ' + (terminateCommit ? 'yes' : 'no') + '): ');\n console.debug(commitObject);\n }\n if (this.settings.lmsCommitUrl) {\n return this.processHttpRequest(this.settings.lmsCommitUrl, commitObject, terminateCommit);\n } else {\n return global_constants.SCORM_TRUE;\n }\n }\n}\n","import * as Scorm12CMI from './scorm12_cmi';\nimport {BaseCMI, checkValidFormat, CMIArray, CMIScore} from './common';\nimport APIConstants from '../constants/api_constants';\nimport Regex from '../constants/regex';\nimport ErrorCodes from '../constants/error_codes';\nimport {AICCValidationError} from '../exceptions';\n\nconst aicc_constants = APIConstants.aicc;\nconst aicc_regex = Regex.aicc;\nconst aicc_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nfunction throwReadOnlyError() {\n throw new AICCValidationError(aicc_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nfunction checkAICCValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n aicc_error_codes.TYPE_MISMATCH,\n AICCValidationError,\n allowEmptyString\n );\n}\n\n/**\n * CMI Class for AICC\n */\nexport class CMI extends Scorm12CMI.CMI {\n /**\n * Constructor for AICC CMI object\n * @param {boolean} initialized\n */\n constructor(initialized: boolean) {\n super(aicc_constants.cmi_children);\n\n if (initialized) this.initialize();\n\n this.student_preference = new AICCStudentPreferences();\n this.student_data = new AICCCMIStudentData();\n this.student_demographics = new CMIStudentDemographics();\n this.evaluation = new CMIEvaluation();\n this.paths = new CMIPaths();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.student_preference?.initialize();\n this.student_data?.initialize();\n this.student_demographics?.initialize();\n this.evaluation?.initialize();\n this.paths?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions,\n * paths: CMIPaths\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'student_demographics': this.student_demographics,\n 'interactions': this.interactions,\n 'evaluation': this.evaluation,\n 'paths': this.paths,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * AICC Evaluation object\n */\nclass CMIEvaluation extends BaseCMI {\n /**\n * Constructor for AICC Evaluation object\n */\n constructor() {\n super();\n\n this.comments = new CMIEvaluationComments();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.comments?.initialize();\n }\n\n /**\n * toJSON for cmi.evaluation object\n * @return {{comments: CMIEvaluationComments}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comments': this.comments,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing AICC's cmi.evaluation.comments object\n */\nclass CMIEvaluationComments extends CMIArray {\n /**\n * Constructor for AICC Evaluation Comments object\n */\n constructor() {\n super({\n children: aicc_constants.comments_children,\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n });\n }\n}\n\n/**\n * StudentPreferences class for AICC\n */\nclass AICCStudentPreferences extends Scorm12CMI.CMIStudentPreference {\n /**\n * Constructor for AICC Student Preferences object\n */\n constructor() {\n super(aicc_constants.student_preference_children);\n\n this.windows = new CMIArray({\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n children: '',\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.windows?.initialize();\n }\n\n #lesson_type = '';\n #text_color = '';\n #text_location = '';\n #text_size = '';\n #video = '';\n\n /**\n * Getter for #lesson_type\n * @return {string}\n */\n get lesson_type(): string {\n return this.#lesson_type;\n }\n\n /**\n * Setter for #lesson_type\n * @param {string} lesson_type\n */\n set lesson_type(lesson_type: string) {\n if (checkAICCValidFormat(lesson_type, aicc_regex.CMIString256)) {\n this.#lesson_type = lesson_type;\n }\n }\n\n /**\n * Getter for #text_color\n * @return {string}\n */\n get text_color(): string {\n return this.#text_color;\n }\n\n /**\n * Setter for #text_color\n * @param {string} text_color\n */\n set text_color(text_color: string) {\n if (checkAICCValidFormat(text_color, aicc_regex.CMIString256)) {\n this.#text_color = text_color;\n }\n }\n\n /**\n * Getter for #text_location\n * @return {string}\n */\n get text_location(): string {\n return this.#text_location;\n }\n\n /**\n * Setter for #text_location\n * @param {string} text_location\n */\n set text_location(text_location: string) {\n if (checkAICCValidFormat(text_location, aicc_regex.CMIString256)) {\n this.#text_location = text_location;\n }\n }\n\n /**\n * Getter for #text_size\n * @return {string}\n */\n get text_size(): string {\n return this.#text_size;\n }\n\n /**\n * Setter for #text_size\n * @param {string} text_size\n */\n set text_size(text_size: string) {\n if (checkAICCValidFormat(text_size, aicc_regex.CMIString256)) {\n this.#text_size = text_size;\n }\n }\n\n /**\n * Getter for #video\n * @return {string}\n */\n get video(): string {\n return this.#video;\n }\n\n /**\n * Setter for #video\n * @param {string} video\n */\n set video(video: string) {\n if (checkAICCValidFormat(video, aicc_regex.CMIString256)) {\n this.#video = video;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'lesson_type': this.lesson_type,\n 'speed': this.speed,\n 'text': this.text,\n 'text_color': this.text_color,\n 'text_location': this.text_location,\n 'text_size': this.text_size,\n 'video': this.video,\n 'windows': this.windows,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * StudentData class for AICC\n */\nclass AICCCMIStudentData extends Scorm12CMI.CMIStudentData {\n /**\n * Constructor for AICC StudentData object\n */\n constructor() {\n super(aicc_constants.student_data_children);\n\n this.tries = new CMITries();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.tries?.initialize();\n }\n\n #tries_during_lesson = '';\n\n /**\n * Getter for tries_during_lesson\n * @return {string}\n */\n get tries_during_lesson() {\n return this.#tries_during_lesson;\n }\n\n /**\n * Setter for #tries_during_lesson. Sets an error if trying to set after\n * initialization.\n * @param {string} tries_during_lesson\n */\n set tries_during_lesson(tries_during_lesson) {\n !this.initialized ?\n this.#tries_during_lesson = tries_during_lesson :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data object\n * @return {\n * {\n * mastery_score: string,\n * max_time_allowed: string,\n * time_limit_action: string,\n * tries: CMITries\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n 'tries': this.tries,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_demographics object\n */\nexport class CMIStudentDemographics extends BaseCMI {\n /**\n * Constructor for AICC StudentDemographics object\n */\n constructor() {\n super();\n }\n\n #_children = aicc_constants.student_demographics_children;\n #city = '';\n #class = '';\n #company = '';\n #country = '';\n #experience = '';\n #familiar_name = '';\n #instructor_name = '';\n #title = '';\n #native_language = '';\n #state = '';\n #street_address = '';\n #telephone = '';\n #years_experience = '';\n\n /**\n * Getter for _children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Getter for city\n * @return {string}\n */\n get city() {\n return this.#city;\n }\n\n /**\n * Setter for #city. Sets an error if trying to set after\n * initialization.\n * @param {string} city\n */\n set city(city) {\n !this.initialized ?\n this.#city = city :\n throwReadOnlyError();\n }\n\n /**\n * Getter for class\n * @return {string}\n */\n get class() {\n return this.#class;\n }\n\n /**\n * Setter for #class. Sets an error if trying to set after\n * initialization.\n * @param {string} clazz\n */\n set class(clazz) {\n !this.initialized ?\n this.#class = clazz :\n throwReadOnlyError();\n }\n\n /**\n * Getter for company\n * @return {string}\n */\n get company() {\n return this.#company;\n }\n\n /**\n * Setter for #company. Sets an error if trying to set after\n * initialization.\n * @param {string} company\n */\n set company(company) {\n !this.initialized ?\n this.#company = company :\n throwReadOnlyError();\n }\n\n /**\n * Getter for country\n * @return {string}\n */\n get country() {\n return this.#country;\n }\n\n /**\n * Setter for #country. Sets an error if trying to set after\n * initialization.\n * @param {string} country\n */\n set country(country) {\n !this.initialized ?\n this.#country = country :\n throwReadOnlyError();\n }\n\n /**\n * Getter for experience\n * @return {string}\n */\n get experience() {\n return this.#experience;\n }\n\n /**\n * Setter for #experience. Sets an error if trying to set after\n * initialization.\n * @param {string} experience\n */\n set experience(experience) {\n !this.initialized ?\n this.#experience = experience :\n throwReadOnlyError();\n }\n\n /**\n * Getter for familiar_name\n * @return {string}\n */\n get familiar_name() {\n return this.#familiar_name;\n }\n\n /**\n * Setter for #familiar_name. Sets an error if trying to set after\n * initialization.\n * @param {string} familiar_name\n */\n set familiar_name(familiar_name) {\n !this.initialized ?\n this.#familiar_name = familiar_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for instructor_name\n * @return {string}\n */\n get instructor_name() {\n return this.#instructor_name;\n }\n\n /**\n * Setter for #instructor_name. Sets an error if trying to set after\n * initialization.\n * @param {string} instructor_name\n */\n set instructor_name(instructor_name) {\n !this.initialized ?\n this.#instructor_name = instructor_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for title\n * @return {string}\n */\n get title() {\n return this.#title;\n }\n\n /**\n * Setter for #title. Sets an error if trying to set after\n * initialization.\n * @param {string} title\n */\n set title(title) {\n !this.initialized ?\n this.#title = title :\n throwReadOnlyError();\n }\n\n /**\n * Getter for native_language\n * @return {string}\n */\n get native_language() {\n return this.#native_language;\n }\n\n /**\n * Setter for #native_language. Sets an error if trying to set after\n * initialization.\n * @param {string} native_language\n */\n set native_language(native_language) {\n !this.initialized ?\n this.#native_language = native_language :\n throwReadOnlyError();\n }\n\n /**\n * Getter for state\n * @return {string}\n */\n get state() {\n return this.#state;\n }\n\n /**\n * Setter for #state. Sets an error if trying to set after\n * initialization.\n * @param {string} state\n */\n set state(state) {\n !this.initialized ?\n this.#state = state :\n throwReadOnlyError();\n }\n\n /**\n * Getter for street_address\n * @return {string}\n */\n get street_address() {\n return this.#street_address;\n }\n\n /**\n * Setter for #street_address. Sets an error if trying to set after\n * initialization.\n * @param {string} street_address\n */\n set street_address(street_address) {\n !this.initialized ?\n this.#street_address = street_address :\n throwReadOnlyError();\n }\n\n /**\n * Getter for telephone\n * @return {string}\n */\n get telephone() {\n return this.#telephone;\n }\n\n /**\n * Setter for #telephone. Sets an error if trying to set after\n * initialization.\n * @param {string} telephone\n */\n set telephone(telephone) {\n !this.initialized ?\n this.#telephone = telephone :\n throwReadOnlyError();\n }\n\n /**\n * Getter for years_experience\n * @return {string}\n */\n get years_experience() {\n return this.#years_experience;\n }\n\n /**\n * Setter for #years_experience. Sets an error if trying to set after\n * initialization.\n * @param {string} years_experience\n */\n set years_experience(years_experience) {\n !this.initialized ?\n this.#years_experience = years_experience :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_demographics object\n * @return {\n * {\n * city: string,\n * class: string,\n * company: string,\n * country: string,\n * experience: string,\n * familiar_name: string,\n * instructor_name: string,\n * title: string,\n * native_language: string,\n * state: string,\n * street_address: string,\n * telephone: string,\n * years_experience: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'city': this.city,\n 'class': this.class,\n 'company': this.company,\n 'country': this.country,\n 'experience': this.experience,\n 'familiar_name': this.familiar_name,\n 'instructor_name': this.instructor_name,\n 'title': this.title,\n 'native_language': this.native_language,\n 'state': this.state,\n 'street_address': this.street_address,\n 'telephone': this.telephone,\n 'years_experience': this.years_experience,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.paths object\n */\nexport class CMIPaths extends CMIArray {\n /**\n * Constructor for inline Paths Array class\n */\n constructor() {\n super({children: aicc_constants.paths_children});\n }\n}\n\n/**\n * Class for AICC Paths\n */\nexport class CMIPathsObject extends BaseCMI {\n /**\n * Constructor for AICC Paths objects\n */\n constructor() {\n super();\n }\n\n #location_id = '';\n #date = '';\n #time = '';\n #status = '';\n #why_left = '';\n #time_in_element = '';\n\n /**\n * Getter for #location_id\n * @return {string}\n */\n get location_id() {\n return this.#location_id;\n }\n\n /**\n * Setter for #location_id\n * @param {string} location_id\n */\n set location_id(location_id) {\n if (checkAICCValidFormat(location_id, aicc_regex.CMIString256)) {\n this.#location_id = location_id;\n }\n }\n\n /**\n * Getter for #date\n * @return {string}\n */\n get date() {\n return this.#date;\n }\n\n /**\n * Setter for #date\n * @param {string} date\n */\n set date(date) {\n if (checkAICCValidFormat(date, aicc_regex.CMIString256)) {\n this.#date = date;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #why_left\n * @return {string}\n */\n get why_left() {\n return this.#why_left;\n }\n\n /**\n * Setter for #why_left\n * @param {string} why_left\n */\n set why_left(why_left) {\n if (checkAICCValidFormat(why_left, aicc_regex.CMIString256)) {\n this.#why_left = why_left;\n }\n }\n\n /**\n * Getter for #time_in_element\n * @return {string}\n */\n get time_in_element() {\n return this.#time_in_element;\n }\n\n /**\n * Setter for #time_in_element\n * @param {string} time_in_element\n */\n set time_in_element(time_in_element) {\n if (checkAICCValidFormat(time_in_element, aicc_regex.CMITime)) {\n this.#time_in_element = time_in_element;\n }\n }\n\n /**\n * toJSON for cmi.paths.n object\n * @return {\n * {\n * location_id: string,\n * date: string,\n * time: string,\n * status: string,\n * why_left: string,\n * time_in_element: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'location_id': this.location_id,\n 'date': this.date,\n 'time': this.time,\n 'status': this.status,\n 'why_left': this.why_left,\n 'time_in_element': this.time_in_element,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_data.tries object\n */\nexport class CMITries extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.tries_children});\n }\n}\n\n/**\n * Class for AICC Tries\n */\nexport class CMITriesObject extends BaseCMI {\n /**\n * Constructor for AICC Tries object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #status = '';\n #time = '';\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.student_data.tries.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'status': this.status,\n 'time': this.time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for cmi.student_data.attempt_records array\n */\nexport class CMIAttemptRecords extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.attempt_records_children});\n }\n}\n\n/**\n * Class for AICC Attempt Records\n */\nexport class CMIAttemptRecordsObject extends BaseCMI {\n /**\n * Constructor for AICC Attempt Records object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #lesson_status = '';\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (checkAICCValidFormat(lesson_status, aicc_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n\n /**\n * toJSON for cmi.student_data.attempt_records.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'lesson_status': this.lesson_status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Evaluation Comments\n */\nexport class CMIEvaluationCommentsObject extends BaseCMI {\n /**\n * Constructor for Evaluation Comments\n */\n constructor() {\n super();\n }\n\n #content = '';\n #location = '';\n #time = '';\n\n /**\n * Getter for #content\n * @return {string}\n */\n get content() {\n return this.#content;\n }\n\n /**\n * Setter for #content\n * @param {string} content\n */\n set content(content) {\n if (checkAICCValidFormat(content, aicc_regex.CMIString256)) {\n this.#content = content;\n }\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (checkAICCValidFormat(location, aicc_regex.CMIString256)) {\n this.#location = location;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setting for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.evaulation.comments.n object\n * @return {\n * {\n * content: string,\n * location: string,\n * time: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'content': this.content,\n 'location': this.location,\n 'time': this.time,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Check if the value matches the proper format. If not, throw proper error code.\n *\n * @param {string} value\n * @param {string} regexPattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function checkValidFormat(\n value: String,\n regexPattern: String,\n errorCode: number,\n errorClass: function,\n allowEmptyString?: boolean) {\n const formatRegex = new RegExp(regexPattern);\n const matches = value.match(formatRegex);\n if (allowEmptyString && value === '') {\n return true;\n }\n if (value === undefined || !matches || matches[0] === '') {\n throw new errorClass.prototype.constructor(errorCode);\n }\n return true;\n}\n\n/**\n * Check if the value matches the proper range. If not, throw proper error code.\n *\n * @param {*} value\n * @param {string} rangePattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @return {boolean}\n */\nexport function checkValidRange(\n value: any,\n rangePattern: String,\n errorCode: number,\n errorClass: function) {\n const ranges = rangePattern.split('#');\n value = value * 1.0;\n if (value >= ranges[0]) {\n if ((ranges[1] === '*') || (value <= ranges[1])) {\n return true;\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n}\n\n/**\n * Base class for API cmi objects\n */\nexport class BaseCMI {\n jsonString = false;\n #initialized = false;\n #start_time;\n\n /**\n * Constructor for BaseCMI, just marks the class as abstract\n */\n constructor() {\n if (new.target === BaseCMI) {\n throw new TypeError('Cannot construct BaseCMI instances directly');\n }\n }\n\n /**\n * Getter for #initialized\n * @return {boolean}\n */\n get initialized() {\n return this.#initialized;\n }\n\n /**\n * Getter for #start_time\n * @return {Number}\n */\n get start_time() {\n return this.#start_time;\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n this.#initialized = true;\n }\n\n /**\n * Called when the player should override the 'session_time' provided by\n * the module\n */\n setStartTime() {\n this.#start_time = new Date().getTime();\n }\n}\n\n/**\n * Base class for cmi *.score objects\n */\nexport class CMIScore extends BaseCMI {\n /**\n * Constructor for *.score\n * @param {string} score_children\n * @param {string} score_range\n * @param {string} max\n * @param {number} invalidErrorCode\n * @param {number} invalidTypeCode\n * @param {number} invalidRangeCode\n * @param {string} decimalRegex\n * @param {class} errorClass\n */\n constructor(\n {\n score_children,\n score_range,\n max,\n invalidErrorCode,\n invalidTypeCode,\n invalidRangeCode,\n decimalRegex,\n errorClass,\n }) {\n super();\n\n this.#_children = score_children ||\n scorm12_constants.score_children;\n this.#_score_range = !score_range ? false : scorm12_regex.score_range;\n this.#max = (max || max === '') ? max : '100';\n this.#_invalid_error_code = invalidErrorCode ||\n scorm12_error_codes.INVALID_SET_VALUE;\n this.#_invalid_type_code = invalidTypeCode ||\n scorm12_error_codes.TYPE_MISMATCH;\n this.#_invalid_range_code = invalidRangeCode ||\n scorm12_error_codes.VALUE_OUT_OF_RANGE;\n this.#_decimal_regex = decimalRegex ||\n scorm12_regex.CMIDecimal;\n this.#_error_class = errorClass;\n }\n\n #_children;\n #_score_range;\n #_invalid_error_code;\n #_invalid_type_code;\n #_invalid_range_code;\n #_decimal_regex;\n #_error_class;\n #raw = '';\n #min = '';\n #max;\n\n /**\n * Getter for _children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throw new this.#_error_class.prototype.constructor(this.#_invalid_error_code);\n }\n\n /**\n * Getter for #raw\n * @return {string}\n */\n get raw() {\n return this.#raw;\n }\n\n /**\n * Setter for #raw\n * @param {string} raw\n */\n set raw(raw) {\n if (checkValidFormat(raw, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(raw, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#raw = raw;\n }\n }\n\n /**\n * Getter for #min\n * @return {string}\n */\n get min() {\n return this.#min;\n }\n\n /**\n * Setter for #min\n * @param {string} min\n */\n set min(min) {\n if (checkValidFormat(min, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(min, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#min = min;\n }\n }\n\n /**\n * Getter for #max\n * @return {string}\n */\n get max() {\n return this.#max;\n }\n\n /**\n * Setter for #max\n * @param {string} max\n */\n set max(max) {\n if (checkValidFormat(max, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(max, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#max = max;\n }\n }\n\n /**\n * toJSON for *.score\n * @return {{min: string, max: string, raw: string}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'raw': this.raw,\n 'min': this.min,\n 'max': this.max,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Base class for cmi *.n objects\n */\nexport class CMIArray extends BaseCMI {\n /**\n * Constructor cmi *.n arrays\n * @param {string} children\n * @param {number} errorCode\n * @param {class} errorClass\n */\n constructor({children, errorCode, errorClass}) {\n super();\n this.#_children = children;\n this.#errorCode = errorCode;\n this.#errorClass = errorClass;\n this.childArray = [];\n }\n\n #errorCode;\n #errorClass;\n #_children;\n\n /**\n * Getter for _children\n * @return {*}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * Getter for _count\n * @return {number}\n */\n get _count() {\n return this.childArray.length;\n }\n\n /**\n * Setter for _count. Just throws an error.\n * @param {number} _count\n */\n set _count(_count) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * toJSON for *.n arrays\n * @return {object}\n */\n toJSON() {\n this.jsonString = true;\n const result = {};\n for (let i = 0; i < this.childArray.length; i++) {\n result[i + ''] = this.childArray[i];\n }\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport {\n BaseCMI,\n checkValidFormat,\n checkValidRange,\n CMIArray,\n CMIScore,\n} from './common';\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\nimport {Scorm12ValidationError} from '../exceptions';\nimport * as Utilities from '../utilities';\nimport * as Util from '../utilities';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nexport function throwReadOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Write Only error\n */\nexport function throwWriteOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.WRITE_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Invalid Set error\n */\nfunction throwInvalidValueError() {\n throw new Scorm12ValidationError(scorm12_error_codes.INVALID_SET_VALUE);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n scorm12_error_codes.TYPE_MISMATCH,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} rangePattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidRange(\n value: any,\n rangePattern: String,\n allowEmptyString?: boolean) {\n return checkValidRange(\n value,\n rangePattern,\n scorm12_error_codes.VALUE_OUT_OF_RANGE,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Class representing the cmi object for SCORM 1.2\n */\nexport class CMI extends BaseCMI {\n #_children = '';\n #_version = '3.4';\n #launch_data = '';\n #comments = '';\n #comments_from_lms = '';\n\n student_data = null;\n\n /**\n * Constructor for the SCORM 1.2 cmi object\n * @param {string} cmi_children\n * @param {(CMIStudentData|AICCCMIStudentData)} student_data\n * @param {boolean} initialized\n */\n constructor(cmi_children, student_data, initialized: boolean) {\n super();\n\n if (initialized) this.initialize();\n\n this.#_children = cmi_children ?\n cmi_children :\n scorm12_constants.cmi_children;\n this.core = new CMICore();\n this.objectives = new CMIObjectives();\n this.student_data = student_data ? student_data : new CMIStudentData();\n this.student_preference = new CMIStudentPreference();\n this.interactions = new CMIInteractions();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.core?.initialize();\n this.objectives?.initialize();\n this.student_data?.initialize();\n this.student_preference?.initialize();\n this.interactions?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'interactions': this.interactions,\n };\n delete this.jsonString;\n return result;\n }\n\n /**\n * Getter for #_version\n * @return {string}\n */\n get _version() {\n return this.#_version;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _version\n */\n set _version(_version) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #_children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.core?.suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (this.core) {\n this.core.suspend_data = suspend_data;\n }\n }\n\n /**\n * Getter for #launch_data\n * @return {string}\n */\n get launch_data() {\n return this.#launch_data;\n }\n\n /**\n * Setter for #launch_data. Can only be called before initialization.\n * @param {string} launch_data\n */\n set launch_data(launch_data) {\n !this.initialized ? this.#launch_data = launch_data : throwReadOnlyError();\n }\n\n /**\n * Getter for #comments\n * @return {string}\n */\n get comments() {\n return this.#comments;\n }\n\n /**\n * Setter for #comments\n * @param {string} comments\n */\n set comments(comments) {\n if (check12ValidFormat(comments, scorm12_regex.CMIString4096, true)) {\n this.#comments = comments;\n }\n }\n\n /**\n * Getter for #comments_from_lms\n * @return {string}\n */\n get comments_from_lms() {\n return this.#comments_from_lms;\n }\n\n /**\n * Setter for #comments_from_lms. Can only be called before initialization.\n * @param {string} comments_from_lms\n */\n set comments_from_lms(comments_from_lms) {\n !this.initialized ?\n this.#comments_from_lms = comments_from_lms :\n throwReadOnlyError();\n }\n\n /**\n * Adds the current session time to the existing total time.\n *\n * @return {string}\n */\n getCurrentTotalTime() {\n return this.core.getCurrentTotalTime(this.start_time);\n }\n}\n\n/**\n * Class representing the cmi.core object\n * @extends BaseCMI\n */\nclass CMICore extends BaseCMI {\n /**\n * Constructor for cmi.core\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #_children = scorm12_constants.core_children;\n #student_id = '';\n #student_name = '';\n #lesson_location = '';\n #credit = '';\n #lesson_status = 'not attempted';\n #entry = '';\n #total_time = '';\n #lesson_mode = 'normal';\n #exit = '';\n #session_time = '00:00:00';\n #suspend_data = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #student_id\n * @return {string}\n */\n get student_id() {\n return this.#student_id;\n }\n\n /**\n * Setter for #student_id. Can only be called before initialization.\n * @param {string} student_id\n */\n set student_id(student_id) {\n !this.initialized ? this.#student_id = student_id : throwReadOnlyError();\n }\n\n /**\n * Getter for #student_name\n * @return {string}\n */\n get student_name() {\n return this.#student_name;\n }\n\n /**\n * Setter for #student_name. Can only be called before initialization.\n * @param {string} student_name\n */\n set student_name(student_name) {\n !this.initialized ?\n this.#student_name = student_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_location\n * @return {string}\n */\n get lesson_location() {\n return this.#lesson_location;\n }\n\n /**\n * Setter for #lesson_location\n * @param {string} lesson_location\n */\n set lesson_location(lesson_location) {\n if (check12ValidFormat(lesson_location, scorm12_regex.CMIString256, true)) {\n this.#lesson_location = lesson_location;\n }\n }\n\n /**\n * Getter for #credit\n * @return {string}\n */\n get credit() {\n return this.#credit;\n }\n\n /**\n * Setter for #credit. Can only be called before initialization.\n * @param {string} credit\n */\n set credit(credit) {\n !this.initialized ? this.#credit = credit : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (this.initialized) {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus)) {\n this.#lesson_status = lesson_status;\n }\n } else {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n }\n\n /**\n * Getter for #entry\n * @return {string}\n */\n get entry() {\n return this.#entry;\n }\n\n /**\n * Setter for #entry. Can only be called before initialization.\n * @param {string} entry\n */\n set entry(entry) {\n !this.initialized ? this.#entry = entry : throwReadOnlyError();\n }\n\n /**\n * Getter for #total_time\n * @return {string}\n */\n get total_time() {\n return this.#total_time;\n }\n\n /**\n * Setter for #total_time. Can only be called before initialization.\n * @param {string} total_time\n */\n set total_time(total_time) {\n !this.initialized ? this.#total_time = total_time : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_mode\n * @return {string}\n */\n get lesson_mode() {\n return this.#lesson_mode;\n }\n\n /**\n * Setter for #lesson_mode. Can only be called before initialization.\n * @param {string} lesson_mode\n */\n set lesson_mode(lesson_mode) {\n !this.initialized ? this.#lesson_mode = lesson_mode : throwReadOnlyError();\n }\n\n /**\n * Getter for #exit. Should only be called during JSON export.\n * @return {*}\n */\n get exit() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#exit;\n }\n\n /**\n * Setter for #exit\n * @param {string} exit\n */\n set exit(exit) {\n if (check12ValidFormat(exit, scorm12_regex.CMIExit, true)) {\n this.#exit = exit;\n }\n }\n\n /**\n * Getter for #session_time. Should only be called during JSON export.\n * @return {*}\n */\n get session_time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#session_time;\n }\n\n /**\n * Setter for #session_time\n * @param {string} session_time\n */\n set session_time(session_time) {\n if (check12ValidFormat(session_time, scorm12_regex.CMITimespan)) {\n this.#session_time = session_time;\n }\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.#suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (check12ValidFormat(suspend_data, scorm12_regex.CMIString4096, true)) {\n this.#suspend_data = suspend_data;\n }\n }\n\n /**\n * Adds the current session time to the existing total time.\n * @param {Number} start_time\n * @return {string}\n */\n getCurrentTotalTime(start_time: Number) {\n let sessionTime = this.#session_time;\n const startTime = start_time;\n\n if (typeof startTime !== 'undefined' && startTime !== null) {\n const seconds = new Date().getTime() - startTime;\n sessionTime = Util.getSecondsAsHHMMSS(seconds / 1000);\n }\n\n return Utilities.addHHMMSSTimeStrings(\n this.#total_time,\n sessionTime,\n new RegExp(scorm12_regex.CMITimespan),\n );\n }\n\n /**\n * toJSON for cmi.core\n *\n * @return {\n * {\n * student_name: string,\n * entry: string,\n * exit: string,\n * score: CMIScore,\n * student_id: string,\n * lesson_mode: string,\n * lesson_location: string,\n * lesson_status: string,\n * credit: string,\n * session_time: *\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'student_id': this.student_id,\n 'student_name': this.student_name,\n 'lesson_location': this.lesson_location,\n 'credit': this.credit,\n 'lesson_status': this.lesson_status,\n 'entry': this.entry,\n 'lesson_mode': this.lesson_mode,\n 'exit': this.exit,\n 'session_time': this.session_time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives object\n * @extends CMIArray\n */\nclass CMIObjectives extends CMIArray {\n /**\n * Constructor for cmi.objectives\n */\n constructor() {\n super({\n children: scorm12_constants.objectives_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_data object\n * @extends BaseCMI\n */\nexport class CMIStudentData extends BaseCMI {\n #_children;\n #mastery_score = '';\n #max_time_allowed = '';\n #time_limit_action = '';\n\n /**\n * Constructor for cmi.student_data\n * @param {string} student_data_children\n */\n constructor(student_data_children) {\n super();\n\n this.#_children = student_data_children ?\n student_data_children :\n scorm12_constants.student_data_children;\n }\n\n /**\n * Getter for #_children\n * @return {*}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #master_score\n * @return {string}\n */\n get mastery_score() {\n return this.#mastery_score;\n }\n\n /**\n * Setter for #master_score. Can only be called before initialization.\n * @param {string} mastery_score\n */\n set mastery_score(mastery_score) {\n !this.initialized ?\n this.#mastery_score = mastery_score :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #max_time_allowed\n * @return {string}\n */\n get max_time_allowed() {\n return this.#max_time_allowed;\n }\n\n /**\n * Setter for #max_time_allowed. Can only be called before initialization.\n * @param {string} max_time_allowed\n */\n set max_time_allowed(max_time_allowed) {\n !this.initialized ?\n this.#max_time_allowed = max_time_allowed :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #time_limit_action\n * @return {string}\n */\n get time_limit_action() {\n return this.#time_limit_action;\n }\n\n /**\n * Setter for #time_limit_action. Can only be called before initialization.\n * @param {string} time_limit_action\n */\n set time_limit_action(time_limit_action) {\n !this.initialized ?\n this.#time_limit_action = time_limit_action :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data\n *\n * @return {\n * {\n * max_time_allowed: string,\n * time_limit_action: string,\n * mastery_score: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_preference object\n * @extends BaseCMI\n */\nexport class CMIStudentPreference extends BaseCMI {\n #_children;\n\n /**\n * Constructor for cmi.student_preference\n * @param {string} student_preference_children\n */\n constructor(student_preference_children) {\n super();\n\n this.#_children = student_preference_children ?\n student_preference_children :\n scorm12_constants.student_preference_children;\n }\n\n #audio = '';\n #language = '';\n #speed = '';\n #text = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #audio\n * @return {string}\n */\n get audio() {\n return this.#audio;\n }\n\n /**\n * Setter for #audio\n * @param {string} audio\n */\n set audio(audio) {\n if (check12ValidFormat(audio, scorm12_regex.CMISInteger) &&\n check12ValidRange(audio, scorm12_regex.audio_range)) {\n this.#audio = audio;\n }\n }\n\n /**\n * Getter for #language\n * @return {string}\n */\n get language() {\n return this.#language;\n }\n\n /**\n * Setter for #language\n * @param {string} language\n */\n set language(language) {\n if (check12ValidFormat(language, scorm12_regex.CMIString256)) {\n this.#language = language;\n }\n }\n\n /**\n * Getter for #speed\n * @return {string}\n */\n get speed() {\n return this.#speed;\n }\n\n /**\n * Setter for #speed\n * @param {string} speed\n */\n set speed(speed) {\n if (check12ValidFormat(speed, scorm12_regex.CMISInteger) &&\n check12ValidRange(speed, scorm12_regex.speed_range)) {\n this.#speed = speed;\n }\n }\n\n /**\n * Getter for #text\n * @return {string}\n */\n get text() {\n return this.#text;\n }\n\n /**\n * Setter for #text\n * @param {string} text\n */\n set text(text) {\n if (check12ValidFormat(text, scorm12_regex.CMISInteger) &&\n check12ValidRange(text, scorm12_regex.text_range)) {\n this.#text = text;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'speed': this.speed,\n 'text': this.text,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions object\n * @extends BaseCMI\n */\nclass CMIInteractions extends CMIArray {\n /**\n * Constructor for cmi.interactions\n */\n constructor() {\n super({\n children: scorm12_constants.interactions_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n object\n */\n constructor() {\n super();\n\n this.objectives = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.objectives_children,\n });\n this.correct_responses = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.correct_responses_children,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.objectives?.initialize();\n this.correct_responses?.initialize();\n }\n\n #id = '';\n #time = '';\n #type = '';\n #weighting = '';\n #student_response = '';\n #result = '';\n #latency = '';\n\n /**\n * Getter for #id. Should only be called during JSON export.\n * @return {*}\n */\n get id() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #time. Should only be called during JSON export.\n * @return {*}\n */\n get time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (check12ValidFormat(time, scorm12_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #type. Should only be called during JSON export.\n * @return {*}\n */\n get type() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#type;\n }\n\n /**\n * Setter for #type\n * @param {string} type\n */\n set type(type) {\n if (check12ValidFormat(type, scorm12_regex.CMIType)) {\n this.#type = type;\n }\n }\n\n /**\n * Getter for #weighting. Should only be called during JSON export.\n * @return {*}\n */\n get weighting() {\n return (!this.jsonString) ?\n throwWriteOnlyError() :\n this.#weighting;\n }\n\n /**\n * Setter for #weighting\n * @param {string} weighting\n */\n set weighting(weighting) {\n if (check12ValidFormat(weighting, scorm12_regex.CMIDecimal) &&\n check12ValidRange(weighting, scorm12_regex.weighting_range)) {\n this.#weighting = weighting;\n }\n }\n\n /**\n * Getter for #student_response. Should only be called during JSON export.\n * @return {*}\n */\n get student_response() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#student_response;\n }\n\n /**\n * Setter for #student_response\n * @param {string} student_response\n */\n set student_response(student_response) {\n if (check12ValidFormat(student_response, scorm12_regex.CMIFeedback, true)) {\n this.#student_response = student_response;\n }\n }\n\n /**\n * Getter for #result. Should only be called during JSON export.\n * @return {*}\n */\n get result() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#result;\n }\n\n /**\n * Setter for #result\n * @param {string} result\n */\n set result(result) {\n if (check12ValidFormat(result, scorm12_regex.CMIResult)) {\n this.#result = result;\n }\n }\n\n /**\n * Getter for #latency. Should only be called during JSON export.\n * @return {*}\n */\n get latency() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#latency;\n }\n\n /**\n * Setter for #latency\n * @param {string} latency\n */\n set latency(latency) {\n if (check12ValidFormat(latency, scorm12_regex.CMITimespan)) {\n this.#latency = latency;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n\n *\n * @return {\n * {\n * id: string,\n * time: string,\n * type: string,\n * weighting: string,\n * student_response: string,\n * result: string,\n * latency: string,\n * objectives: CMIArray,\n * correct_responses: CMIArray\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'time': this.time,\n 'type': this.type,\n 'weighting': this.weighting,\n 'student_response': this.student_response,\n 'result': this.result,\n 'latency': this.latency,\n 'objectives': this.objectives,\n 'correct_responses': this.correct_responses,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.objectives.n\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n #id = '';\n #status = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #status\n * @return {\"\"}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (check12ValidFormat(status, scorm12_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * toJSON for cmi.objectives.n\n * @return {\n * {\n * id: string,\n * status: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'status': this.status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n.objectives.n\n */\n constructor() {\n super();\n }\n\n #id = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n.objectives.n\n * @return {\n * {\n * id: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.correct_responses.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsCorrectResponsesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.correct_responses.n\n */\n constructor() {\n super();\n }\n\n #pattern = '';\n\n /**\n * Getter for #pattern\n * @return {string}\n */\n get pattern() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#pattern;\n }\n\n /**\n * Setter for #pattern\n * @param {string} pattern\n */\n set pattern(pattern) {\n if (check12ValidFormat(pattern, scorm12_regex.CMIFeedback, true)) {\n this.#pattern = pattern;\n }\n }\n\n /**\n * toJSON for cmi.interactions.correct_responses.n\n * @return {\n * {\n * pattern: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'pattern': this.pattern,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Navigation object\n */\nexport class NAV extends BaseCMI {\n /**\n * Constructor for NAV object\n */\n constructor() {\n super();\n }\n\n #event = '';\n\n /**\n * Getter for #event\n * @return {string}\n */\n get event() {\n return this.#event;\n }\n\n /**\n * Setter for #event\n * @param {string} event\n */\n set event(event) {\n if (check12ValidFormat(event, scorm12_regex.NAVEvent)) {\n this.#event = event;\n }\n }\n\n /**\n * toJSON for nav object\n * @return {\n * {\n * event: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'event': this.event,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\n\nconst global = {\n SCORM_TRUE: 'true',\n SCORM_FALSE: 'false',\n STATE_NOT_INITIALIZED: 0,\n STATE_INITIALIZED: 1,\n STATE_TERMINATED: 2,\n LOG_LEVEL_DEBUG: 1,\n LOG_LEVEL_INFO: 2,\n LOG_LEVEL_WARNING: 3,\n LOG_LEVEL_ERROR: 4,\n LOG_LEVEL_NONE: 5,\n};\n\nconst scorm12 = {\n // Children lists\n cmi_children: 'core,suspend_data,launch_data,comments,objectives,student_data,student_preference,interactions',\n core_children: 'student_id,student_name,lesson_location,credit,lesson_status,entry,score,total_time,lesson_mode,exit,session_time',\n score_children: 'raw,min,max',\n comments_children: 'content,location,time',\n objectives_children: 'id,score,status',\n correct_responses_children: 'pattern',\n student_data_children: 'mastery_score,max_time_allowed,time_limit_action',\n student_preference_children: 'audio,language,speed,text',\n interactions_children: 'id,objectives,time,type,correct_responses,weighting,student_response,result,latency',\n\n error_descriptions: {\n '101': {\n basicMessage: 'General Exception',\n detailMessage: 'No specific error code exists to describe the error. Use LMSGetDiagnostic for more information',\n },\n '201': {\n basicMessage: 'Invalid argument error',\n detailMessage: 'Indicates that an argument represents an invalid data model element or is otherwise incorrect.',\n },\n '202': {\n basicMessage: 'Element cannot have children',\n detailMessage: 'Indicates that LMSGetValue was called with a data model element name that ends in \"_children\" for a data model element that does not support the \"_children\" suffix.',\n },\n '203': {\n basicMessage: 'Element not an array - cannot have count',\n detailMessage: 'Indicates that LMSGetValue was called with a data model element name that ends in \"_count\" for a data model element that does not support the \"_count\" suffix.',\n },\n '301': {\n basicMessage: 'Not initialized',\n detailMessage: 'Indicates that an API call was made before the call to lmsInitialize.',\n },\n '401': {\n basicMessage: 'Not implemented error',\n detailMessage: 'The data model element indicated in a call to LMSGetValue or LMSSetValue is valid, but was not implemented by this LMS. SCORM 1.2 defines a set of data model elements as being optional for an LMS to implement.',\n },\n '402': {\n basicMessage: 'Invalid set value, element is a keyword',\n detailMessage: 'Indicates that LMSSetValue was called on a data model element that represents a keyword (elements that end in \"_children\" and \"_count\").',\n },\n '403': {\n basicMessage: 'Element is read only',\n detailMessage: 'LMSSetValue was called with a data model element that can only be read.',\n },\n '404': {\n basicMessage: 'Element is write only',\n detailMessage: 'LMSGetValue was called on a data model element that can only be written to.',\n },\n '405': {\n basicMessage: 'Incorrect Data Type',\n detailMessage: 'LMSSetValue was called with a value that is not consistent with the data format of the supplied data model element.',\n },\n '407': {\n basicMessage: 'Element Value Out Of Range',\n detailMessage: 'The numeric value supplied to a LMSSetValue call is outside of the numeric range allowed for the supplied data model element.',\n },\n '408': {\n basicMessage: 'Data Model Dependency Not Established',\n detailMessage: 'Some data model elements cannot be set until another data model element was set. This error condition indicates that the prerequisite element was not set before the dependent element.',\n },\n },\n};\n\nconst aicc = {\n ...scorm12, ...{\n cmi_children: 'core,suspend_data,launch_data,comments,objectives,student_data,student_preference,interactions,evaluation',\n student_preference_children: 'audio,language,lesson_type,speed,text,text_color,text_location,text_size,video,windows',\n student_data_children: 'attempt_number,tries,mastery_score,max_time_allowed,time_limit_action',\n student_demographics_children: 'city,class,company,country,experience,familiar_name,instructor_name,title,native_language,state,street_address,telephone,years_experience',\n tries_children: 'time,status,score',\n attempt_records_children: 'score,lesson_status',\n paths_children: 'location_id,date,time,status,why_left,time_in_element',\n },\n};\n\nconst scorm2004 = {\n // Children lists\n cmi_children: '_version,comments_from_learner,comments_from_lms,completion_status,credit,entry,exit,interactions,launch_data,learner_id,learner_name,learner_preference,location,max_time_allowed,mode,objectives,progress_measure,scaled_passing_score,score,session_time,success_status,suspend_data,time_limit_action,total_time',\n comments_children: 'comment,timestamp,location',\n score_children: 'max,raw,scaled,min',\n objectives_children: 'progress_measure,completion_status,success_status,description,score,id',\n correct_responses_children: 'pattern',\n student_data_children: 'mastery_score,max_time_allowed,time_limit_action',\n student_preference_children: 'audio_level,audio_captioning,delivery_speed,language',\n interactions_children: 'id,type,objectives,timestamp,correct_responses,weighting,learner_response,result,latency,description',\n\n error_descriptions: {\n '0': {\n basicMessage: 'No Error',\n detailMessage: 'No error occurred, the previous API call was successful.',\n },\n '101': {\n basicMessage: 'General Exception',\n detailMessage: 'No specific error code exists to describe the error. Use GetDiagnostic for more information.',\n },\n '102': {\n basicMessage: 'General Initialization Failure',\n detailMessage: 'Call to Initialize failed for an unknown reason.',\n },\n '103': {\n basicMessage: 'Already Initialized',\n detailMessage: 'Call to Initialize failed because Initialize was already called.',\n },\n '104': {\n basicMessage: 'Content Instance Terminated',\n detailMessage: 'Call to Initialize failed because Terminate was already called.',\n },\n '111': {\n basicMessage: 'General Termination Failure',\n detailMessage: 'Call to Terminate failed for an unknown reason.',\n },\n '112': {\n basicMessage: 'Termination Before Initialization',\n detailMessage: 'Call to Terminate failed because it was made before the call to Initialize.',\n },\n '113': {\n basicMessage: 'Termination After Termination',\n detailMessage: 'Call to Terminate failed because Terminate was already called.',\n },\n '122': {\n basicMessage: 'Retrieve Data Before Initialization',\n detailMessage: 'Call to GetValue failed because it was made before the call to Initialize.',\n },\n '123': {\n basicMessage: 'Retrieve Data After Termination',\n detailMessage: 'Call to GetValue failed because it was made after the call to Terminate.',\n },\n '132': {\n basicMessage: 'Store Data Before Initialization',\n detailMessage: 'Call to SetValue failed because it was made before the call to Initialize.',\n },\n '133': {\n basicMessage: 'Store Data After Termination',\n detailMessage: 'Call to SetValue failed because it was made after the call to Terminate.',\n },\n '142': {\n basicMessage: 'Commit Before Initialization',\n detailMessage: 'Call to Commit failed because it was made before the call to Initialize.',\n },\n '143': {\n basicMessage: 'Commit After Termination',\n detailMessage: 'Call to Commit failed because it was made after the call to Terminate.',\n },\n '201': {\n basicMessage: 'General Argument Error',\n detailMessage: 'An invalid argument was passed to an API method (usually indicates that Initialize, Commit or Terminate did not receive the expected empty string argument.',\n },\n '301': {\n basicMessage: 'General Get Failure',\n detailMessage: 'Indicates a failed GetValue call where no other specific error code is applicable. Use GetDiagnostic for more information.',\n },\n '351': {\n basicMessage: 'General Set Failure',\n detailMessage: 'Indicates a failed SetValue call where no other specific error code is applicable. Use GetDiagnostic for more information.',\n },\n '391': {\n basicMessage: 'General Commit Failure',\n detailMessage: 'Indicates a failed Commit call where no other specific error code is applicable. Use GetDiagnostic for more information.',\n },\n '401': {\n basicMessage: 'Undefined Data Model Element',\n detailMessage: 'The data model element name passed to GetValue or SetValue is not a valid SCORM data model element.',\n },\n '402': {\n basicMessage: 'Unimplemented Data Model Element',\n detailMessage: 'The data model element indicated in a call to GetValue or SetValue is valid, but was not implemented by this LMS. In SCORM 2004, this error would indicate an LMS that is not fully SCORM conformant.',\n },\n '403': {\n basicMessage: 'Data Model Element Value Not Initialized',\n detailMessage: 'Attempt to read a data model element that has not been initialized by the LMS or through a SetValue call. This error condition is often reached during normal execution of a SCO.',\n },\n '404': {\n basicMessage: 'Data Model Element Is Read Only',\n detailMessage: 'SetValue was called with a data model element that can only be read.',\n },\n '405': {\n basicMessage: 'Data Model Element Is Write Only',\n detailMessage: 'GetValue was called on a data model element that can only be written to.',\n },\n '406': {\n basicMessage: 'Data Model Element Type Mismatch',\n detailMessage: 'SetValue was called with a value that is not consistent with the data format of the supplied data model element.',\n },\n '407': {\n basicMessage: 'Data Model Element Value Out Of Range',\n detailMessage: 'The numeric value supplied to a SetValue call is outside of the numeric range allowed for the supplied data model element.',\n },\n '408': {\n basicMessage: 'Data Model Dependency Not Established',\n detailMessage: 'Some data model elements cannot be set until another data model element was set. This error condition indicates that the prerequisite element was not set before the dependent element.',\n },\n },\n};\n\nconst APIConstants = {\n global: global,\n scorm12: scorm12,\n aicc: aicc,\n scorm2004: scorm2004,\n};\n\nexport default APIConstants;\n","// @flow\nconst global = {\n GENERAL: 101,\n INITIALIZATION_FAILED: 101,\n INITIALIZED: 101,\n TERMINATED: 101,\n TERMINATION_FAILURE: 101,\n TERMINATION_BEFORE_INIT: 101,\n MULTIPLE_TERMINATION: 101,\n RETRIEVE_BEFORE_INIT: 101,\n RETRIEVE_AFTER_TERM: 101,\n STORE_BEFORE_INIT: 101,\n STORE_AFTER_TERM: 101,\n COMMIT_BEFORE_INIT: 101,\n COMMIT_AFTER_TERM: 101,\n ARGUMENT_ERROR: 101,\n CHILDREN_ERROR: 101,\n COUNT_ERROR: 101,\n GENERAL_GET_FAILURE: 101,\n GENERAL_SET_FAILURE: 101,\n GENERAL_COMMIT_FAILURE: 101,\n UNDEFINED_DATA_MODEL: 101,\n UNIMPLEMENTED_ELEMENT: 101,\n VALUE_NOT_INITIALIZED: 101,\n INVALID_SET_VALUE: 101,\n READ_ONLY_ELEMENT: 101,\n WRITE_ONLY_ELEMENT: 101,\n TYPE_MISMATCH: 101,\n VALUE_OUT_OF_RANGE: 101,\n DEPENDENCY_NOT_ESTABLISHED: 101,\n};\n\nconst scorm12 = {\n ...global, ...{\n RETRIEVE_BEFORE_INIT: 301,\n STORE_BEFORE_INIT: 301,\n COMMIT_BEFORE_INIT: 301,\n ARGUMENT_ERROR: 201,\n CHILDREN_ERROR: 202,\n COUNT_ERROR: 203,\n UNDEFINED_DATA_MODEL: 401,\n UNIMPLEMENTED_ELEMENT: 401,\n VALUE_NOT_INITIALIZED: 301,\n INVALID_SET_VALUE: 402,\n READ_ONLY_ELEMENT: 403,\n WRITE_ONLY_ELEMENT: 404,\n TYPE_MISMATCH: 405,\n VALUE_OUT_OF_RANGE: 407,\n DEPENDENCY_NOT_ESTABLISHED: 408,\n },\n};\n\nconst scorm2004 = {\n ...global, ...{\n INITIALIZATION_FAILED: 102,\n INITIALIZED: 103,\n TERMINATED: 104,\n TERMINATION_FAILURE: 111,\n TERMINATION_BEFORE_INIT: 112,\n MULTIPLE_TERMINATIONS: 113,\n RETRIEVE_BEFORE_INIT: 122,\n RETRIEVE_AFTER_TERM: 123,\n STORE_BEFORE_INIT: 132,\n STORE_AFTER_TERM: 133,\n COMMIT_BEFORE_INIT: 142,\n COMMIT_AFTER_TERM: 143,\n ARGUMENT_ERROR: 201,\n GENERAL_GET_FAILURE: 301,\n GENERAL_SET_FAILURE: 351,\n GENERAL_COMMIT_FAILURE: 391,\n UNDEFINED_DATA_MODEL: 401,\n UNIMPLEMENTED_ELEMENT: 402,\n VALUE_NOT_INITIALIZED: 403,\n READ_ONLY_ELEMENT: 404,\n WRITE_ONLY_ELEMENT: 405,\n TYPE_MISMATCH: 406,\n VALUE_OUT_OF_RANGE: 407,\n DEPENDENCY_NOT_ESTABLISHED: 408,\n },\n};\n\nconst ErrorCodes = {\n scorm12: scorm12,\n scorm2004: scorm2004,\n};\n\nexport default ErrorCodes;\n","// @flow\n\nconst scorm12 = {\n CMIString256: '^.{0,255}$',\n CMIString4096: '^.{0,4096}$',\n CMITime: '^(?:[01]\\\\d|2[0123]):(?:[012345]\\\\d):(?:[012345]\\\\d)$', // eslint-disable-line\n CMITimespan: '^([0-9]{2,}):([0-9]{2}):([0-9]{2})(\\.[0-9]{1,2})?$', // eslint-disable-line\n CMIInteger: '^\\\\d+$',\n CMISInteger: '^-?([0-9]+)$',\n CMIDecimal: '^-?([0-9]{0,3})(\\.[0-9]*)?$', // eslint-disable-line\n CMIIdentifier: '^[\\\\u0021-\\\\u007E\\\\s]{0,255}$',\n CMIFeedback: '^.{0,255}$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMIStatus: '^(passed|completed|failed|incomplete|browsed)$',\n CMIStatus2: '^(passed|completed|failed|incomplete|browsed|not attempted)$',\n CMIExit: '^(time-out|suspend|logout|)$',\n CMIType: '^(true-false|choice|fill-in|matching|performance|sequencing|likert|numeric)$',\n CMIResult: '^(correct|wrong|unanticipated|neutral|([0-9]{0,3})?(\\\\.[0-9]*)?)$', // eslint-disable-line\n NAVEvent: '^(previous|continue)$',\n\n // Data ranges\n score_range: '0#100',\n audio_range: '-1#100',\n speed_range: '-100#100',\n weighting_range: '-100#100',\n text_range: '-1#1',\n};\n\nconst aicc = {\n ...scorm12, ...{\n CMIIdentifier: '^\\\\w{1,255}$',\n },\n};\n\nconst scorm2004 = {\n CMIString200: '^[\\\\u0000-\\\\uFFFF]{0,200}$',\n CMIString250: '^[\\\\u0000-\\\\uFFFF]{0,250}$',\n CMIString1000: '^[\\\\u0000-\\\\uFFFF]{0,1000}$',\n CMIString4000: '^[\\\\u0000-\\\\uFFFF]{0,4000}$',\n CMIString64000: '^[\\\\u0000-\\\\uFFFF]{0,64000}$',\n CMILang: '^([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?$|^$', // eslint-disable-line\n CMILangString250: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,250}$)?$', // eslint-disable-line\n CMILangcr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\}))(.*?)$', // eslint-disable-line\n CMILangString250cr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\})?(.{0,250})?)?$', // eslint-disable-line\n CMILangString4000: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,4000}$)?$', // eslint-disable-line\n CMITime: '^(19[7-9]{1}[0-9]{1}|20[0-2]{1}[0-9]{1}|203[0-8]{1})((-(0[1-9]{1}|1[0-2]{1}))((-(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1}))(T([0-1]{1}[0-9]{1}|2[0-3]{1})((:[0-5]{1}[0-9]{1})((:[0-5]{1}[0-9]{1})((\\\\.[0-9]{1,2})((Z|([+|-]([0-1]{1}[0-9]{1}|2[0-3]{1})))(:[0-5]{1}[0-9]{1})?)?)?)?)?)?)?)?$',\n CMITimespan: '^P(?:([.,\\\\d]+)Y)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)W)?(?:([.,\\\\d]+)D)?(?:T?(?:([.,\\\\d]+)H)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)S)?)?$',\n CMIInteger: '^\\\\d+$',\n CMISInteger: '^-?([0-9]+)$',\n CMIDecimal: '^-?([0-9]{1,5})(\\\\.[0-9]{1,18})?$',\n CMIIdentifier: '^\\\\S{1,250}[a-zA-Z0-9]$',\n CMIShortIdentifier: '^[\\\\w\\\\.\\\\-\\\\_]{1,250}$', // eslint-disable-line\n CMILongIdentifier: '^(?:(?!urn:)\\\\S{1,4000}|urn:[A-Za-z0-9-]{1,31}:\\\\S{1,4000}|.{1,4000})$', // need to re-examine this\n CMIFeedback: '^.*$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n CMIIndexStore: '.N(\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMICStatus: '^(completed|incomplete|not attempted|unknown)$',\n CMISStatus: '^(passed|failed|unknown)$',\n CMIExit: '^(time-out|suspend|logout|normal)$',\n CMIType: '^(true-false|choice|fill-in|long-fill-in|matching|performance|sequencing|likert|numeric|other)$',\n CMIResult: '^(correct|incorrect|unanticipated|neutral|-?([0-9]{1,4})(\\\\.[0-9]{1,18})?)$',\n NAVEvent: '^(previous|continue|exit|exitAll|abandon|abandonAll|suspendAll|\\{target=\\\\S{0,200}[a-zA-Z0-9]\\}choice|jump)$', // eslint-disable-line\n NAVBoolean: '^(unknown|true|false$)',\n NAVTarget: '^(previous|continue|choice.{target=\\\\S{0,200}[a-zA-Z0-9]})$',\n\n // Data ranges\n scaled_range: '-1#1',\n audio_range: '0#*',\n speed_range: '0#*',\n text_range: '-1#1',\n progress_range: '0#1',\n};\n\nconst Regex = {\n aicc: aicc,\n scorm12: scorm12,\n scorm2004: scorm2004,\n};\n\nexport default Regex;\n","// @flow\n\nimport APIConstants from './constants/api_constants';\n\nconst scorm12_errors = APIConstants.scorm12.error_descriptions;\nconst aicc_errors = APIConstants.aicc.error_descriptions;\nconst scorm2004_errors = APIConstants.scorm2004.error_descriptions;\n\n/**\n * Base Validation Exception\n */\nexport class ValidationError extends Error {\n /**\n * Constructor to take in an error message and code\n * @param {number} errorCode\n * @param {string} errorMessage\n * @param {string} detailedMessage\n */\n constructor(errorCode: number, errorMessage: String, detailedMessage: String) {\n super(errorMessage);\n this.#errorCode = errorCode;\n this.#errorMessage = errorMessage;\n this.#detailedMessage = detailedMessage;\n }\n\n #errorCode;\n #errorMessage;\n #detailedMessage;\n\n /**\n * Getter for #errorCode\n * @return {number}\n */\n get errorCode() {\n return this.#errorCode;\n }\n\n /**\n * Getter for #errorMessage\n * @return {string}\n */\n get errorMessage() {\n return this.#errorMessage;\n }\n\n /**\n * Getter for #detailedMessage\n * @return {string}\n */\n get detailedMessage() {\n return this.#detailedMessage;\n }\n}\n\n/**\n * SCORM 1.2 Validation Error\n */\nexport class Scorm12ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm12_errors, String(errorCode))) {\n super(errorCode, scorm12_errors[String(errorCode)].basicMessage, scorm12_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm12_errors['101'].basicMessage, scorm12_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * AICC Validation Error\n */\nexport class AICCValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(aicc_errors, String(errorCode))) {\n super(errorCode, aicc_errors[String(errorCode)].basicMessage, aicc_errors[String(errorCode)].detailMessage);\n } else {\n super(101, aicc_errors['101'].basicMessage, aicc_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * SCORM 2004 Validation Error\n */\nexport class Scorm2004ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {\n super(errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm2004_errors['101'].basicMessage, scorm2004_errors['101'].detailMessage);\n }\n }\n}\n","// @flow\nexport const SECONDS_PER_SECOND = 1.0;\nexport const SECONDS_PER_MINUTE = 60;\nexport const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE;\nexport const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;\n\nconst designations = [\n ['D', SECONDS_PER_DAY],\n ['H', SECONDS_PER_HOUR],\n ['M', SECONDS_PER_MINUTE],\n ['S', SECONDS_PER_SECOND],\n];\n\n/**\n * Converts a Number to a String of HH:MM:SS\n *\n * @param {Number} totalSeconds\n * @return {string}\n */\nexport function getSecondsAsHHMMSS(totalSeconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!totalSeconds || totalSeconds <= 0) {\n return '00:00:00';\n }\n\n const hours = Math.floor(totalSeconds / SECONDS_PER_HOUR);\n\n const dateObj = new Date(totalSeconds * 1000);\n const minutes = dateObj.getUTCMinutes();\n // make sure we add any possible decimal value\n const seconds = dateObj.getSeconds();\n const ms = totalSeconds % 1.0;\n let msStr = '';\n if (countDecimals(ms) > 0) {\n if (countDecimals(ms) > 2) {\n msStr = ms.toFixed(2);\n } else {\n msStr = String(ms);\n }\n msStr = '.' + msStr.split('.')[1];\n }\n\n return (hours + ':' + minutes + ':' + seconds).replace(/\\b\\d\\b/g,\n '0$&') + msStr;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {Number} seconds\n * @return {String}\n */\nexport function getSecondsAsISODuration(seconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!seconds || seconds <= 0) {\n return 'PT0S';\n }\n\n let duration = 'P';\n let remainder = seconds;\n\n designations.forEach(([sign, current_seconds]) => {\n let value = Math.floor(remainder / current_seconds);\n\n remainder = remainder % current_seconds;\n if (countDecimals(remainder) > 2) {\n remainder = Number(Number(remainder).toFixed(2));\n }\n // If we have anything left in the remainder, and we're currently adding\n // seconds to the duration, go ahead and add the decimal to the seconds\n if (sign === 'S' && remainder > 0) {\n value += remainder;\n }\n\n if (value) {\n if ((duration.indexOf('D') > 0 ||\n sign === 'H' || sign === 'M' || sign === 'S') &&\n duration.indexOf('T') === -1) {\n duration += 'T';\n }\n duration += `${value}${sign}`;\n }\n });\n\n return duration;\n}\n\n/**\n * Calculate the number of seconds from HH:MM:SS.DDDDDD\n *\n * @param {string} timeString\n * @param {RegExp} timeRegex\n * @return {number}\n */\nexport function getTimeAsSeconds(timeString: String, timeRegex: RegExp) {\n if (!timeString || typeof timeString !== 'string' ||\n !timeString.match(timeRegex)) {\n return 0;\n }\n const parts = timeString.split(':');\n const hours = Number(parts[0]);\n const minutes = Number(parts[1]);\n const seconds = Number(parts[2]);\n return (hours * 3600) + (minutes * 60) + seconds;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {string} duration\n * @param {RegExp} durationRegex\n * @return {number}\n */\nexport function getDurationAsSeconds(duration: String, durationRegex: RegExp) {\n if (!duration || !duration.match(durationRegex)) {\n return 0;\n }\n\n const [, years, months, , days, hours, minutes, seconds] = new RegExp(\n durationRegex).exec(duration) || [];\n\n let result = 0.0;\n\n result += (Number(seconds) * 1.0 || 0.0);\n result += (Number(minutes) * 60.0 || 0.0);\n result += (Number(hours) * 3600.0 || 0.0);\n result += (Number(days) * (60 * 60 * 24.0) || 0.0);\n result += (Number(years) * (60 * 60 * 24 * 365.0) || 0.0);\n\n return result;\n}\n\n/**\n * Adds together two ISO8601 Duration strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} durationRegex\n * @return {string}\n */\nexport function addTwoDurations(\n first: String,\n second: String,\n durationRegex: RegExp) {\n return getSecondsAsISODuration(\n getDurationAsSeconds(first, durationRegex) +\n getDurationAsSeconds(second, durationRegex),\n );\n}\n\n/**\n * Add together two HH:MM:SS.DD strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} timeRegex\n * @return {string}\n */\nexport function addHHMMSSTimeStrings(\n first: String,\n second: String,\n timeRegex: RegExp) {\n return getSecondsAsHHMMSS(\n getTimeAsSeconds(first, timeRegex) +\n getTimeAsSeconds(\n second, timeRegex),\n );\n}\n\n/**\n * Flatten a JSON object down to string paths for each values\n * @param {object} data\n * @return {object}\n */\nexport function flatten(data) {\n const result = {};\n\n /**\n * Recurse through the object\n * @param {*} cur\n * @param {*} prop\n */\n function recurse(cur, prop) {\n if (Object(cur) !== cur) {\n result[prop] = cur;\n } else if (Array.isArray(cur)) {\n for (let i = 0, l = cur.length; i < l; i++) {\n recurse(cur[i], prop + '[' + i + ']');\n if (l === 0) result[prop] = [];\n }\n } else {\n let isEmpty = true;\n for (const p in cur) {\n if ({}.hasOwnProperty.call(cur, p)) {\n isEmpty = false;\n recurse(cur[p], prop ? prop + '.' + p : p);\n }\n }\n if (isEmpty && prop) result[prop] = {};\n }\n }\n\n recurse(data, '');\n return result;\n}\n\n/**\n * Un-flatten a flat JSON object\n * @param {object} data\n * @return {object}\n */\nexport function unflatten(data) {\n 'use strict';\n if (Object(data) !== data || Array.isArray(data)) return data;\n const regex = /\\.?([^.[\\]]+)|\\[(\\d+)]/g;\n const result = {};\n for (const p in data) {\n if ({}.hasOwnProperty.call(data, p)) {\n let cur = result;\n let prop = '';\n let m = regex.exec(p);\n while (m) {\n cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));\n prop = m[2] || m[1];\n m = regex.exec(p);\n }\n cur[prop] = data[p];\n }\n }\n return result[''] || result;\n}\n\n/**\n * Counts the number of decimal places\n * @param {number} num\n * @return {number}\n */\nexport function countDecimals(num: number) {\n if (Math.floor(num) === num || String(num).indexOf('.') < 0) return 0;\n const parts = num.toString().split('.')[1];\n return parts.length || 0;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import AICC from '../AICC';\n\nwindow.AICC = AICC;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectProto","prototype","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","value","type","isObjectLike","isSymbol","call","other","valueOf","replace","isBinary","test","slice","module","exports","Scorm12API","CMI","CMIAttemptRecordsObject","CMIEvaluationCommentsObject","CMITriesObject","NAV","AICC","settings","finalSettings","mastery_override","cmi","nav","CMIElement","foundFirstIndex","newChild","stringMatches","newAPI","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","BaseAPI","error_codes","autocommit","autocommitSeconds","asyncCommit","sendBeaconCommit","lmsCommitUrl","dataCommitFormat","commitRequestDataType","autoProgress","logLevel","LOG_LEVEL_ERROR","selfReportSessionTime","alwaysSendTotalTime","strict_errors","xhrHeaders","xhrWithCredentials","responseHandler","xhr","JSON","parse","responseText","hasOwnProperty","status","SCORM_TRUE","errorCode","SCORM_FALSE","requestHandler","commitObject","onLogMessage","messageLevel","logMessage","console","error","LOG_LEVEL_WARNING","warn","LOG_LEVEL_INFO","info","LOG_LEVEL_DEBUG","debug","log","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","apiLogLevel","callbackName","initializeMessage","terminationMessage","returnValue","isInitialized","throwSCORMError","INITIALIZED","isTerminated","TERMINATED","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","CMIErrorCode","getLmsErrorMessageDetails","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","str","tester","match","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","methodName","scorm2004","structure","split","invalidErrorMessage","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","_checkObjectHasProperty","validateCorrectResponse","index","isNaN","item","childArray","getChildElement","initialized","initialize","push","_foundFirstIndex","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","listenerName","callback","listenerFunctions","listenerSplit","removeIndex","findIndex","obj","splice","filter","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","json","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","key","sort","b","d","forEach","element","loadFromJSON","startingData","currentCMIElement","constructor","stringify","renderCMIToJSONString","_terminateCommit","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","headers","blob","Blob","navigator","sendBeacon","when","ScheduledCommit","API","wrapper","bind","commit","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","Utilities","scorm12_constants","LMSInitialize","lmsInitialize","LMSFinish","lmsFinish","LMSGetValue","lmsGetValue","LMSSetValue","lmsSetValue","LMSCommit","lmsCommit","LMSGetLastError","lmsGetLastError","LMSGetErrorString","lmsGetErrorString","LMSGetDiagnostic","lmsGetDiagnostic","terminate","event","getValue","setValue","getLastError","getErrorString","getDiagnostic","_commonSetCMIValue","_commonGetCMIValue","detail","basicMessage","detailMessage","error_descriptions","terminateCommit","cmiExport","renderCMIToJSONObject","core","total_time","getCurrentTotalTime","flattened","flatten","originalStatus","lesson_status","lesson_mode","credit","student_data","mastery_score","score","raw","parseFloat","renderCommitCMI","processHttpRequest","Scorm12CMI","BaseCMI","checkValidFormat","CMIScore","Regex","AICCValidationError","aicc_constants","aicc","aicc_regex","aicc_error_codes","throwReadOnlyError","checkAICCValidFormat","regexPattern","allowEmptyString","TYPE_MISMATCH","cmi_children","student_preference","AICCStudentPreferences","AICCCMIStudentData","student_demographics","CMIStudentDemographics","evaluation","CMIEvaluation","paths","CMIPaths","jsonString","suspend_data","launch_data","comments","comments_from_lms","objectives","interactions","CMIEvaluationComments","children","comments_children","INVALID_SET_VALUE","errorClass","student_preference_children","windows","lesson_type","CMIString256","text_color","text_location","text_size","video","audio","language","speed","text","CMIStudentPreference","student_data_children","tries","CMITries","tries_during_lesson","max_time_allowed","time_limit_action","CMIStudentData","student_demographics_children","city","clazz","company","country","experience","familiar_name","instructor_name","title","native_language","state","street_address","telephone","years_experience","class","paths_children","CMIPathsObject","location_id","date","CMITime","CMIStatus2","why_left","time_in_element","tries_children","score_children","score_range","invalidTypeCode","invalidRangeCode","VALUE_OUT_OF_RANGE","CMIAttemptRecords","attempt_records_children","content","location","scorm12_regex","formatRegex","RegExp","matches","checkValidRange","rangePattern","ranges","getTime","decimalRegex","CMIDecimal","_children","_count","Scorm12ValidationError","Util","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwInvalidValueError","check12ValidFormat","check12ValidRange","CMICore","CMIObjectives","CMIInteractions","_version","CMIString4096","start_time","core_children","student_id","student_name","lesson_location","CMIStatus","entry","exit","CMIExit","session_time","CMITimespan","sessionTime","startTime","seconds","getSecondsAsHHMMSS","addHHMMSSTimeStrings","objectives_children","CMISInteger","audio_range","speed_range","text_range","interactions_children","correct_responses","correct_responses_children","id","CMIIdentifier","CMIType","weighting","weighting_range","student_response","CMIFeedback","CMIResult","latency","pattern","NAVEvent","LOG_LEVEL_NONE","INITIALIZATION_FAILED","TERMINATION_FAILURE","ARGUMENT_ERROR","GENERAL_GET_FAILURE","GENERAL_SET_FAILURE","GENERAL_COMMIT_FAILURE","UNIMPLEMENTED_ELEMENT","DEPENDENCY_NOT_ESTABLISHED","MULTIPLE_TERMINATIONS","CMIInteger","CMIIndex","CMIString200","CMIString250","CMIString1000","CMIString4000","CMIString64000","CMILang","CMILangString250","CMILangcr","CMILangString250cr","CMILangString4000","CMIShortIdentifier","CMILongIdentifier","CMIIndexStore","CMICStatus","CMISStatus","NAVBoolean","NAVTarget","scaled_range","progress_range","scorm12_errors","aicc_errors","scorm2004_errors","errorMessage","detailedMessage","Scorm2004ValidationError","SECONDS_PER_SECOND","SECONDS_PER_MINUTE","SECONDS_PER_HOUR","SECONDS_PER_DAY","designations","totalSeconds","hours","floor","dateObj","minutes","getUTCMinutes","getSeconds","ms","msStr","countDecimals","toFixed","getSecondsAsISODuration","duration","remainder","sign","current_seconds","getTimeAsSeconds","timeString","timeRegex","parts","getDurationAsSeconds","durationRegex","exec","years","months","days","addTwoDurations","first","second","data","recurse","cur","prop","isArray","l","isEmpty","p","regex","m","num","window"],"sourceRoot":""}
|