{"version":3,"file":"scorm12.js","mappings":"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","sources":["webpack://scorm-again/./node_modules/lodash.debounce/index.js","webpack://scorm-again/./src/BaseAPI.js","webpack://scorm-again/./src/Scorm12API.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/scorm12.js"],"sourcesContent":["/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \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 {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 params = settings.requestHandler(params);\n fetch(url, {\n method: 'POST',\n body: params instanceof Array ? params.join('&') : JSON.stringify(params),\n headers: {\n ...settings.xhrHeaders,\n 'Content-Type': settings.commitRequestDataType,\n },\n credentials: settings.xhrWithCredentials ? 'include' : undefined,\n keepalive: true,\n });\n result = {};\n result.result = global_constants.SCORM_TRUE;\n result.errorCode = 0;\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","// @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) || 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 Scorm12API from '../Scorm12API';\n\nwindow.Scorm12API = Scorm12API;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","_typeof","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","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","_timeout","WeakMap","_error_codes","_settings","BaseAPI","error_codes","settings","_classCallCheck","_classPrivateFieldInitSpec","writable","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","_defineProperty","constructor","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","_classPrivateFieldSet","apiLogLevel","_createClass","key","initialize","callbackName","initializeMessage","terminationMessage","returnValue","isInitialized","throwSCORMError","_classPrivateFieldGet","INITIALIZED","isTerminated","TERMINATED","cmi","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","get","set","_objectSpread","terminate","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","getValue","CMIElement","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","setValue","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","commit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","getLastError","getErrorString","CMIErrorCode","getLmsErrorMessageDetails","getDiagnostic","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","stringMatches","str","tester","match","_checkObjectHasProperty","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","_commonSetCMIValue","methodName","scorm2004","structure","split","foundFirstIndex","invalidErrorMessage","concat","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","validateCorrectResponse","index","isNaN","item","childArray","newChild","getChildElement","initialized","push","_foundFirstIndex","_commonGetCMIValue","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","on","listenerName","callback","listenerFunctions","listenerSplit","off","_this","_loop","v","removeIndex","findIndex","obj","splice","_ret","clear","_this2","_loop2","filter","_ret2","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","loadFromFlattenedJSON","json","_this3","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","sort","_ref","_ref2","_ref3","_slicedToArray","b","_ref4","d","forEach","element","loadFromJSON","startingData","currentCMIElement","renderCMIToJSONString","stringify","renderCMIToJSONObject","renderCommitCMI","_terminateCommit","processHttpRequest","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","fetch","method","body","headers","credentials","keepalive","when","ScheduledCommit","default","_API","_cancelled","_timeout2","_callback","API","wrapper","bind","CMI","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","NAV","Utilities","scorm12_constants","Scorm12API","_BaseAPI","_inherits","_super","_createSuper","finalSettings","mastery_override","nav","LMSInitialize","lmsInitialize","LMSFinish","lmsFinish","LMSGetValue","lmsGetValue","LMSSetValue","lmsSetValue","LMSCommit","lmsCommit","LMSGetLastError","lmsGetLastError","LMSGetErrorString","lmsGetErrorString","LMSGetDiagnostic","lmsGetDiagnostic","event","detail","basicMessage","detailMessage","error_descriptions","replaceWithAnotherScormAPI","newAPI","terminateCommit","cmiExport","core","total_time","getCurrentTotalTime","flattened","flatten","originalStatus","lesson_status","lesson_mode","credit","student_data","mastery_score","score","raw","parseFloat","_this$startingData","_this$startingData$cm","_this$startingData$cm2","Regex","scorm12_regex","checkValidFormat","regexPattern","errorClass","allowEmptyString","formatRegex","RegExp","matches","checkValidRange","rangePattern","ranges","_initialized","_start_time","BaseCMI","getTime","_children2","_score_range","_invalid_error_code","_invalid_type_code","_invalid_range_code","_decimal_regex","_error_class","_raw","_min","_max","CMIScore","_BaseCMI","score_children","score_range","invalidTypeCode","invalidRangeCode","decimalRegex","_assertThisInitialized","INVALID_SET_VALUE","TYPE_MISMATCH","VALUE_OUT_OF_RANGE","CMIDecimal","_children","toJSON","jsonString","_errorCode","_errorClass","_children3","_BaseCMI2","_super2","children","_count","Scorm12ValidationError","Util","throwReadOnlyError","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwInvalidValueError","check12ValidFormat","check12ValidRange","_version2","_launch_data","_comments","_comments_from_lms","cmi_children","CMICore","objectives","CMIObjectives","CMIStudentData","student_preference","CMIStudentPreference","interactions","CMIInteractions","_this$core","_this$objectives","_this$student_data","_this$student_prefere","_this$interactions","_get","_getPrototypeOf","suspend_data","launch_data","comments","comments_from_lms","_version","_this$core2","CMIString4096","start_time","_student_id","_student_name","_lesson_location","_credit","_lesson_status","_entry","_total_time","_lesson_mode","_exit","_session_time","_suspend_data","core_children","_this$score","student_id","student_name","lesson_location","CMIString256","CMIStatus","CMIStatus2","entry","exit","CMIExit","session_time","CMITimespan","sessionTime","startTime","seconds","getSecondsAsHHMMSS","addHHMMSSTimeStrings","_CMIArray","_super3","objectives_children","_children4","_mastery_score","_max_time_allowed","_time_limit_action","_BaseCMI3","_super4","student_data_children","max_time_allowed","time_limit_action","_children5","_audio","_language","_speed","_text","_BaseCMI4","_super5","student_preference_children","_this4","audio","CMISInteger","audio_range","language","speed","speed_range","text","text_range","_CMIArray2","_super6","interactions_children","_id","_time","_type","_weighting","_student_response","_result","_latency","_BaseCMI5","_super7","_this5","correct_responses","correct_responses_children","_this$objectives2","_this$correct_respons","id","CMIIdentifier","CMITime","CMIType","weighting","weighting_range","student_response","CMIFeedback","CMIResult","latency","_id2","_status","_BaseCMI6","_super8","_this6","_id3","_BaseCMI7","_super9","_this7","_pattern","_BaseCMI8","_super10","_this8","pattern","_event","_BaseCMI9","_super11","_this9","NAVEvent","LOG_LEVEL_NONE","comments_children","aicc","student_demographics_children","tries_children","attempt_records_children","paths_children","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","_Error","errorMessage","detailedMessage","_wrapNativeSuper","_ValidationError","_possibleConstructorReturn","AICCValidationError","_ValidationError2","Scorm2004ValidationError","_ValidationError3","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":""}