From b9d58c33e706dbc8a360fd94e37ad546cc339c2e Mon Sep 17 00:00:00 2001 From: Maxime Duchene-Savard Date: Tue, 10 Sep 2024 16:11:03 -0400 Subject: [PATCH] 79871 - scorm tried initializing twice --- dist/aicc.js | 4 +- dist/aicc.js.map | 2 +- dist/aicc.min.js | 2 +- dist/scorm-again.js | 4 +- dist/scorm-again.js.map | 2 +- dist/scorm-again.min.js | 2 +- dist/scorm12.js | 4 +- dist/scorm12.js.map | 2 +- dist/scorm12.min.js | 4 +- dist/scorm2004.js | 4 +- dist/scorm2004.js.map | 2 +- dist/scorm2004.min.js | 2 +- package-lock.json | 10252 ++++++++++++++++++++++++++++++++++++++ yarn.lock | 2923 +++++------ 14 files changed, 11486 insertions(+), 1723 deletions(-) create mode 100644 package-lock.json diff --git a/dist/aicc.js b/dist/aicc.js index 587f1e4..da106b0 100644 --- a/dist/aicc.js +++ b/dist/aicc.js @@ -728,9 +728,7 @@ var BaseAPI = /*#__PURE__*/function () { value: function initialize(callbackName, initializeMessage, terminationMessage) { var returnValue = global_constants.SCORM_FALSE; - if (this.isInitialized()) { - this.throwSCORMError(_classPrivateFieldGet(this, _error_codes).INITIALIZED, initializeMessage); - } else if (this.isTerminated()) { + if (this.isTerminated()) { this.throwSCORMError(_classPrivateFieldGet(this, _error_codes).TERMINATED, terminationMessage); } else { if (this.selfReportSessionTime) { diff --git a/dist/aicc.js.map b/dist/aicc.js.map index 9ae978b..530929d 100644 --- a/dist/aicc.js.map +++ b/dist/aicc.js.map @@ -1 +1 @@ -{"version":3,"file":"aicc.js","mappings":"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","sources":["webpack://scorm-again/./node_modules/lodash.debounce/index.js","webpack://scorm-again/./src/AICC.js","webpack://scorm-again/./src/BaseAPI.js","webpack://scorm-again/./src/Scorm12API.js","webpack://scorm-again/./src/cmi/aicc_cmi.js","webpack://scorm-again/./src/cmi/common.js","webpack://scorm-again/./src/cmi/scorm12_cmi.js","webpack://scorm-again/./src/constants/api_constants.js","webpack://scorm-again/./src/constants/error_codes.js","webpack://scorm-again/./src/constants/regex.js","webpack://scorm-again/./src/exceptions.js","webpack://scorm-again/./src/utilities.js","webpack://scorm-again/webpack/bootstrap","webpack://scorm-again/webpack/runtime/compat get default export","webpack://scorm-again/webpack/runtime/define property getters","webpack://scorm-again/webpack/runtime/global","webpack://scorm-again/webpack/runtime/hasOwnProperty shorthand","webpack://scorm-again/webpack/runtime/make namespace object","webpack://scorm-again/./src/exports/aicc.js"],"sourcesContent":["/**\n * lodash (Custom Build) \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 Scorm12API from './Scorm12API';\nimport {\n CMI,\n CMIAttemptRecordsObject,\n CMIEvaluationCommentsObject,\n CMITriesObject,\n} from './cmi/aicc_cmi';\nimport {NAV} from './cmi/scorm12_cmi';\n\n/**\n * The AICC API class\n */\nexport default class AICC extends Scorm12API {\n /**\n * Constructor to create AICC API object\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(finalSettings);\n\n this.cmi = new CMI();\n this.nav = new NAV();\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {any} value\n * @param {boolean} foundFirstIndex\n * @return {object}\n */\n getChildElement(CMIElement, value, foundFirstIndex) {\n let newChild = super.getChildElement(CMIElement, value, foundFirstIndex);\n\n if (!newChild) {\n if (this.stringMatches(CMIElement, 'cmi\\\\.evaluation\\\\.comments\\\\.\\\\d+')) {\n newChild = new CMIEvaluationCommentsObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.tries\\\\.\\\\d+')) {\n newChild = new CMITriesObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.attempt_records\\\\.\\\\d+')) {\n newChild = new CMIAttemptRecordsObject();\n }\n }\n\n return newChild;\n }\n\n /**\n * Replace the whole API with another\n *\n * @param {AICC} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n this.nav = newAPI.nav;\n }\n}\n","// @flow\nimport {CMIArray} from './cmi/common';\nimport {ValidationError} from './exceptions';\nimport ErrorCodes from './constants/error_codes';\nimport APIConstants from './constants/api_constants';\nimport {unflatten} from './utilities';\nimport debounce from 'lodash.debounce';\n\nconst global_constants = APIConstants.global;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Base API class for AICC, SCORM 1.2, and SCORM 2004. Should be considered\n * abstract, and never initialized on it's own.\n */\nexport default class BaseAPI {\n #timeout;\n #error_codes;\n #settings = {\n autocommit: false,\n autocommitSeconds: 10,\n asyncCommit: false,\n sendBeaconCommit: false,\n lmsCommitUrl: false,\n dataCommitFormat: 'json', // valid formats are 'json' or 'flattened', 'params'\n commitRequestDataType: 'application/json;charset=UTF-8',\n autoProgress: false,\n logLevel: global_constants.LOG_LEVEL_ERROR,\n selfReportSessionTime: false,\n alwaysSendTotalTime: false,\n strict_errors: true,\n xhrHeaders: {},\n xhrWithCredentials: false,\n responseHandler: function(xhr) {\n let result;\n if (typeof xhr !== 'undefined') {\n result = JSON.parse(xhr.responseText);\n if (result === null || !{}.hasOwnProperty.call(result, 'result')) {\n result = {};\n if (xhr.status === 200) {\n result.result = global_constants.SCORM_TRUE;\n result.errorCode = 0;\n } else {\n result.result = global_constants.SCORM_FALSE;\n result.errorCode = 101;\n }\n }\n }\n return result;\n },\n requestHandler: function(commitObject) {\n return commitObject;\n },\n onLogMessage: function(messageLevel, logMessage) {\n switch (messageLevel) {\n case global_constants.LOG_LEVEL_ERROR:\n console.error(logMessage);\n break;\n case global_constants.LOG_LEVEL_WARNING:\n console.warn(logMessage);\n break;\n case global_constants.LOG_LEVEL_INFO:\n console.info(logMessage);\n break;\n case global_constants.LOG_LEVEL_DEBUG:\n if (console.debug) {\n console.debug(logMessage);\n } else {\n console.log(logMessage);\n }\n break;\n }\n },\n fetchKeepalive: function() {\n return true;\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: settings.fetchKeepalive(),\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","import * as Scorm12CMI from './scorm12_cmi';\nimport {BaseCMI, checkValidFormat, CMIArray, CMIScore} from './common';\nimport APIConstants from '../constants/api_constants';\nimport Regex from '../constants/regex';\nimport ErrorCodes from '../constants/error_codes';\nimport {AICCValidationError} from '../exceptions';\n\nconst aicc_constants = APIConstants.aicc;\nconst aicc_regex = Regex.aicc;\nconst aicc_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nfunction throwReadOnlyError() {\n throw new AICCValidationError(aicc_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nfunction checkAICCValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n aicc_error_codes.TYPE_MISMATCH,\n AICCValidationError,\n allowEmptyString\n );\n}\n\n/**\n * CMI Class for AICC\n */\nexport class CMI extends Scorm12CMI.CMI {\n /**\n * Constructor for AICC CMI object\n * @param {boolean} initialized\n */\n constructor(initialized: boolean) {\n super(aicc_constants.cmi_children);\n\n if (initialized) this.initialize();\n\n this.student_preference = new AICCStudentPreferences();\n this.student_data = new AICCCMIStudentData();\n this.student_demographics = new CMIStudentDemographics();\n this.evaluation = new CMIEvaluation();\n this.paths = new CMIPaths();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.student_preference?.initialize();\n this.student_data?.initialize();\n this.student_demographics?.initialize();\n this.evaluation?.initialize();\n this.paths?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions,\n * paths: CMIPaths\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'student_demographics': this.student_demographics,\n 'interactions': this.interactions,\n 'evaluation': this.evaluation,\n 'paths': this.paths,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * AICC Evaluation object\n */\nclass CMIEvaluation extends BaseCMI {\n /**\n * Constructor for AICC Evaluation object\n */\n constructor() {\n super();\n\n this.comments = new CMIEvaluationComments();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.comments?.initialize();\n }\n\n /**\n * toJSON for cmi.evaluation object\n * @return {{comments: CMIEvaluationComments}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comments': this.comments,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing AICC's cmi.evaluation.comments object\n */\nclass CMIEvaluationComments extends CMIArray {\n /**\n * Constructor for AICC Evaluation Comments object\n */\n constructor() {\n super({\n children: aicc_constants.comments_children,\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n });\n }\n}\n\n/**\n * StudentPreferences class for AICC\n */\nclass AICCStudentPreferences extends Scorm12CMI.CMIStudentPreference {\n /**\n * Constructor for AICC Student Preferences object\n */\n constructor() {\n super(aicc_constants.student_preference_children);\n\n this.windows = new CMIArray({\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n children: '',\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.windows?.initialize();\n }\n\n #lesson_type = '';\n #text_color = '';\n #text_location = '';\n #text_size = '';\n #video = '';\n\n /**\n * Getter for #lesson_type\n * @return {string}\n */\n get lesson_type(): string {\n return this.#lesson_type;\n }\n\n /**\n * Setter for #lesson_type\n * @param {string} lesson_type\n */\n set lesson_type(lesson_type: string) {\n if (checkAICCValidFormat(lesson_type, aicc_regex.CMIString256)) {\n this.#lesson_type = lesson_type;\n }\n }\n\n /**\n * Getter for #text_color\n * @return {string}\n */\n get text_color(): string {\n return this.#text_color;\n }\n\n /**\n * Setter for #text_color\n * @param {string} text_color\n */\n set text_color(text_color: string) {\n if (checkAICCValidFormat(text_color, aicc_regex.CMIString256)) {\n this.#text_color = text_color;\n }\n }\n\n /**\n * Getter for #text_location\n * @return {string}\n */\n get text_location(): string {\n return this.#text_location;\n }\n\n /**\n * Setter for #text_location\n * @param {string} text_location\n */\n set text_location(text_location: string) {\n if (checkAICCValidFormat(text_location, aicc_regex.CMIString256)) {\n this.#text_location = text_location;\n }\n }\n\n /**\n * Getter for #text_size\n * @return {string}\n */\n get text_size(): string {\n return this.#text_size;\n }\n\n /**\n * Setter for #text_size\n * @param {string} text_size\n */\n set text_size(text_size: string) {\n if (checkAICCValidFormat(text_size, aicc_regex.CMIString256)) {\n this.#text_size = text_size;\n }\n }\n\n /**\n * Getter for #video\n * @return {string}\n */\n get video(): string {\n return this.#video;\n }\n\n /**\n * Setter for #video\n * @param {string} video\n */\n set video(video: string) {\n if (checkAICCValidFormat(video, aicc_regex.CMIString256)) {\n this.#video = video;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'lesson_type': this.lesson_type,\n 'speed': this.speed,\n 'text': this.text,\n 'text_color': this.text_color,\n 'text_location': this.text_location,\n 'text_size': this.text_size,\n 'video': this.video,\n 'windows': this.windows,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * StudentData class for AICC\n */\nclass AICCCMIStudentData extends Scorm12CMI.CMIStudentData {\n /**\n * Constructor for AICC StudentData object\n */\n constructor() {\n super(aicc_constants.student_data_children);\n\n this.tries = new CMITries();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.tries?.initialize();\n }\n\n #tries_during_lesson = '';\n\n /**\n * Getter for tries_during_lesson\n * @return {string}\n */\n get tries_during_lesson() {\n return this.#tries_during_lesson;\n }\n\n /**\n * Setter for #tries_during_lesson. Sets an error if trying to set after\n * initialization.\n * @param {string} tries_during_lesson\n */\n set tries_during_lesson(tries_during_lesson) {\n !this.initialized ?\n this.#tries_during_lesson = tries_during_lesson :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data object\n * @return {\n * {\n * mastery_score: string,\n * max_time_allowed: string,\n * time_limit_action: string,\n * tries: CMITries\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n 'tries': this.tries,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_demographics object\n */\nexport class CMIStudentDemographics extends BaseCMI {\n /**\n * Constructor for AICC StudentDemographics object\n */\n constructor() {\n super();\n }\n\n #_children = aicc_constants.student_demographics_children;\n #city = '';\n #class = '';\n #company = '';\n #country = '';\n #experience = '';\n #familiar_name = '';\n #instructor_name = '';\n #title = '';\n #native_language = '';\n #state = '';\n #street_address = '';\n #telephone = '';\n #years_experience = '';\n\n /**\n * Getter for _children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Getter for city\n * @return {string}\n */\n get city() {\n return this.#city;\n }\n\n /**\n * Setter for #city. Sets an error if trying to set after\n * initialization.\n * @param {string} city\n */\n set city(city) {\n !this.initialized ?\n this.#city = city :\n throwReadOnlyError();\n }\n\n /**\n * Getter for class\n * @return {string}\n */\n get class() {\n return this.#class;\n }\n\n /**\n * Setter for #class. Sets an error if trying to set after\n * initialization.\n * @param {string} clazz\n */\n set class(clazz) {\n !this.initialized ?\n this.#class = clazz :\n throwReadOnlyError();\n }\n\n /**\n * Getter for company\n * @return {string}\n */\n get company() {\n return this.#company;\n }\n\n /**\n * Setter for #company. Sets an error if trying to set after\n * initialization.\n * @param {string} company\n */\n set company(company) {\n !this.initialized ?\n this.#company = company :\n throwReadOnlyError();\n }\n\n /**\n * Getter for country\n * @return {string}\n */\n get country() {\n return this.#country;\n }\n\n /**\n * Setter for #country. Sets an error if trying to set after\n * initialization.\n * @param {string} country\n */\n set country(country) {\n !this.initialized ?\n this.#country = country :\n throwReadOnlyError();\n }\n\n /**\n * Getter for experience\n * @return {string}\n */\n get experience() {\n return this.#experience;\n }\n\n /**\n * Setter for #experience. Sets an error if trying to set after\n * initialization.\n * @param {string} experience\n */\n set experience(experience) {\n !this.initialized ?\n this.#experience = experience :\n throwReadOnlyError();\n }\n\n /**\n * Getter for familiar_name\n * @return {string}\n */\n get familiar_name() {\n return this.#familiar_name;\n }\n\n /**\n * Setter for #familiar_name. Sets an error if trying to set after\n * initialization.\n * @param {string} familiar_name\n */\n set familiar_name(familiar_name) {\n !this.initialized ?\n this.#familiar_name = familiar_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for instructor_name\n * @return {string}\n */\n get instructor_name() {\n return this.#instructor_name;\n }\n\n /**\n * Setter for #instructor_name. Sets an error if trying to set after\n * initialization.\n * @param {string} instructor_name\n */\n set instructor_name(instructor_name) {\n !this.initialized ?\n this.#instructor_name = instructor_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for title\n * @return {string}\n */\n get title() {\n return this.#title;\n }\n\n /**\n * Setter for #title. Sets an error if trying to set after\n * initialization.\n * @param {string} title\n */\n set title(title) {\n !this.initialized ?\n this.#title = title :\n throwReadOnlyError();\n }\n\n /**\n * Getter for native_language\n * @return {string}\n */\n get native_language() {\n return this.#native_language;\n }\n\n /**\n * Setter for #native_language. Sets an error if trying to set after\n * initialization.\n * @param {string} native_language\n */\n set native_language(native_language) {\n !this.initialized ?\n this.#native_language = native_language :\n throwReadOnlyError();\n }\n\n /**\n * Getter for state\n * @return {string}\n */\n get state() {\n return this.#state;\n }\n\n /**\n * Setter for #state. Sets an error if trying to set after\n * initialization.\n * @param {string} state\n */\n set state(state) {\n !this.initialized ?\n this.#state = state :\n throwReadOnlyError();\n }\n\n /**\n * Getter for street_address\n * @return {string}\n */\n get street_address() {\n return this.#street_address;\n }\n\n /**\n * Setter for #street_address. Sets an error if trying to set after\n * initialization.\n * @param {string} street_address\n */\n set street_address(street_address) {\n !this.initialized ?\n this.#street_address = street_address :\n throwReadOnlyError();\n }\n\n /**\n * Getter for telephone\n * @return {string}\n */\n get telephone() {\n return this.#telephone;\n }\n\n /**\n * Setter for #telephone. Sets an error if trying to set after\n * initialization.\n * @param {string} telephone\n */\n set telephone(telephone) {\n !this.initialized ?\n this.#telephone = telephone :\n throwReadOnlyError();\n }\n\n /**\n * Getter for years_experience\n * @return {string}\n */\n get years_experience() {\n return this.#years_experience;\n }\n\n /**\n * Setter for #years_experience. Sets an error if trying to set after\n * initialization.\n * @param {string} years_experience\n */\n set years_experience(years_experience) {\n !this.initialized ?\n this.#years_experience = years_experience :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_demographics object\n * @return {\n * {\n * city: string,\n * class: string,\n * company: string,\n * country: string,\n * experience: string,\n * familiar_name: string,\n * instructor_name: string,\n * title: string,\n * native_language: string,\n * state: string,\n * street_address: string,\n * telephone: string,\n * years_experience: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'city': this.city,\n 'class': this.class,\n 'company': this.company,\n 'country': this.country,\n 'experience': this.experience,\n 'familiar_name': this.familiar_name,\n 'instructor_name': this.instructor_name,\n 'title': this.title,\n 'native_language': this.native_language,\n 'state': this.state,\n 'street_address': this.street_address,\n 'telephone': this.telephone,\n 'years_experience': this.years_experience,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.paths object\n */\nexport class CMIPaths extends CMIArray {\n /**\n * Constructor for inline Paths Array class\n */\n constructor() {\n super({children: aicc_constants.paths_children});\n }\n}\n\n/**\n * Class for AICC Paths\n */\nexport class CMIPathsObject extends BaseCMI {\n /**\n * Constructor for AICC Paths objects\n */\n constructor() {\n super();\n }\n\n #location_id = '';\n #date = '';\n #time = '';\n #status = '';\n #why_left = '';\n #time_in_element = '';\n\n /**\n * Getter for #location_id\n * @return {string}\n */\n get location_id() {\n return this.#location_id;\n }\n\n /**\n * Setter for #location_id\n * @param {string} location_id\n */\n set location_id(location_id) {\n if (checkAICCValidFormat(location_id, aicc_regex.CMIString256)) {\n this.#location_id = location_id;\n }\n }\n\n /**\n * Getter for #date\n * @return {string}\n */\n get date() {\n return this.#date;\n }\n\n /**\n * Setter for #date\n * @param {string} date\n */\n set date(date) {\n if (checkAICCValidFormat(date, aicc_regex.CMIString256)) {\n this.#date = date;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #why_left\n * @return {string}\n */\n get why_left() {\n return this.#why_left;\n }\n\n /**\n * Setter for #why_left\n * @param {string} why_left\n */\n set why_left(why_left) {\n if (checkAICCValidFormat(why_left, aicc_regex.CMIString256)) {\n this.#why_left = why_left;\n }\n }\n\n /**\n * Getter for #time_in_element\n * @return {string}\n */\n get time_in_element() {\n return this.#time_in_element;\n }\n\n /**\n * Setter for #time_in_element\n * @param {string} time_in_element\n */\n set time_in_element(time_in_element) {\n if (checkAICCValidFormat(time_in_element, aicc_regex.CMITime)) {\n this.#time_in_element = time_in_element;\n }\n }\n\n /**\n * toJSON for cmi.paths.n object\n * @return {\n * {\n * location_id: string,\n * date: string,\n * time: string,\n * status: string,\n * why_left: string,\n * time_in_element: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'location_id': this.location_id,\n 'date': this.date,\n 'time': this.time,\n 'status': this.status,\n 'why_left': this.why_left,\n 'time_in_element': this.time_in_element,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_data.tries object\n */\nexport class CMITries extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.tries_children});\n }\n}\n\n/**\n * Class for AICC Tries\n */\nexport class CMITriesObject extends BaseCMI {\n /**\n * Constructor for AICC Tries object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #status = '';\n #time = '';\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.student_data.tries.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'status': this.status,\n 'time': this.time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for cmi.student_data.attempt_records array\n */\nexport class CMIAttemptRecords extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.attempt_records_children});\n }\n}\n\n/**\n * Class for AICC Attempt Records\n */\nexport class CMIAttemptRecordsObject extends BaseCMI {\n /**\n * Constructor for AICC Attempt Records object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #lesson_status = '';\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (checkAICCValidFormat(lesson_status, aicc_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n\n /**\n * toJSON for cmi.student_data.attempt_records.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'lesson_status': this.lesson_status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Evaluation Comments\n */\nexport class CMIEvaluationCommentsObject extends BaseCMI {\n /**\n * Constructor for Evaluation Comments\n */\n constructor() {\n super();\n }\n\n #content = '';\n #location = '';\n #time = '';\n\n /**\n * Getter for #content\n * @return {string}\n */\n get content() {\n return this.#content;\n }\n\n /**\n * Setter for #content\n * @param {string} content\n */\n set content(content) {\n if (checkAICCValidFormat(content, aicc_regex.CMIString256)) {\n this.#content = content;\n }\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (checkAICCValidFormat(location, aicc_regex.CMIString256)) {\n this.#location = location;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setting for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.evaulation.comments.n object\n * @return {\n * {\n * content: string,\n * location: string,\n * time: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'content': this.content,\n 'location': this.location,\n 'time': this.time,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Check if the value matches the proper format. If not, throw proper error code.\n *\n * @param {string} value\n * @param {string} regexPattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function checkValidFormat(\n value: String,\n regexPattern: String,\n errorCode: number,\n errorClass: function,\n allowEmptyString?: boolean) {\n const formatRegex = new RegExp(regexPattern);\n const matches = value.match(formatRegex);\n if (allowEmptyString && value === '') {\n return true;\n }\n if (value === undefined || !matches || matches[0] === '') {\n throw new errorClass.prototype.constructor(errorCode);\n }\n return true;\n}\n\n/**\n * Check if the value matches the proper range. If not, throw proper error code.\n *\n * @param {*} value\n * @param {string} rangePattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @return {boolean}\n */\nexport function checkValidRange(\n value: any,\n rangePattern: String,\n errorCode: number,\n errorClass: function) {\n const ranges = rangePattern.split('#');\n value = value * 1.0;\n if (value >= ranges[0]) {\n if ((ranges[1] === '*') || (value <= ranges[1])) {\n return true;\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n}\n\n/**\n * Base class for API cmi objects\n */\nexport class BaseCMI {\n jsonString = false;\n #initialized = false;\n #start_time;\n\n /**\n * Constructor for BaseCMI, just marks the class as abstract\n */\n constructor() {\n if (new.target === BaseCMI) {\n throw new TypeError('Cannot construct BaseCMI instances directly');\n }\n }\n\n /**\n * Getter for #initialized\n * @return {boolean}\n */\n get initialized() {\n return this.#initialized;\n }\n\n /**\n * Getter for #start_time\n * @return {Number}\n */\n get start_time() {\n return this.#start_time;\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n this.#initialized = true;\n }\n\n /**\n * Called when the player should override the 'session_time' provided by\n * the module\n */\n setStartTime() {\n this.#start_time = new Date().getTime();\n }\n}\n\n/**\n * Base class for cmi *.score objects\n */\nexport class CMIScore extends BaseCMI {\n /**\n * Constructor for *.score\n * @param {string} score_children\n * @param {string} score_range\n * @param {string} max\n * @param {number} invalidErrorCode\n * @param {number} invalidTypeCode\n * @param {number} invalidRangeCode\n * @param {string} decimalRegex\n * @param {class} errorClass\n */\n constructor(\n {\n score_children,\n score_range,\n max,\n invalidErrorCode,\n invalidTypeCode,\n invalidRangeCode,\n decimalRegex,\n errorClass,\n }) {\n super();\n\n this.#_children = score_children ||\n scorm12_constants.score_children;\n this.#_score_range = !score_range ? false : scorm12_regex.score_range;\n this.#max = (max || max === '') ? max : '100';\n this.#_invalid_error_code = invalidErrorCode ||\n scorm12_error_codes.INVALID_SET_VALUE;\n this.#_invalid_type_code = invalidTypeCode ||\n scorm12_error_codes.TYPE_MISMATCH;\n this.#_invalid_range_code = invalidRangeCode ||\n scorm12_error_codes.VALUE_OUT_OF_RANGE;\n this.#_decimal_regex = decimalRegex ||\n scorm12_regex.CMIDecimal;\n this.#_error_class = errorClass;\n }\n\n #_children;\n #_score_range;\n #_invalid_error_code;\n #_invalid_type_code;\n #_invalid_range_code;\n #_decimal_regex;\n #_error_class;\n #raw = '';\n #min = '';\n #max;\n\n /**\n * Getter for _children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throw new this.#_error_class.prototype.constructor(this.#_invalid_error_code);\n }\n\n /**\n * Getter for #raw\n * @return {string}\n */\n get raw() {\n return this.#raw;\n }\n\n /**\n * Setter for #raw\n * @param {string} raw\n */\n set raw(raw) {\n if (checkValidFormat(raw, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(raw, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#raw = raw;\n }\n }\n\n /**\n * Getter for #min\n * @return {string}\n */\n get min() {\n return this.#min;\n }\n\n /**\n * Setter for #min\n * @param {string} min\n */\n set min(min) {\n if (checkValidFormat(min, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(min, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#min = min;\n }\n }\n\n /**\n * Getter for #max\n * @return {string}\n */\n get max() {\n return this.#max;\n }\n\n /**\n * Setter for #max\n * @param {string} max\n */\n set max(max) {\n if (checkValidFormat(max, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(max, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#max = max;\n }\n }\n\n /**\n * toJSON for *.score\n * @return {{min: string, max: string, raw: string}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'raw': this.raw,\n 'min': this.min,\n 'max': this.max,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Base class for cmi *.n objects\n */\nexport class CMIArray extends BaseCMI {\n /**\n * Constructor cmi *.n arrays\n * @param {string} children\n * @param {number} errorCode\n * @param {class} errorClass\n */\n constructor({children, errorCode, errorClass}) {\n super();\n this.#_children = children;\n this.#errorCode = errorCode;\n this.#errorClass = errorClass;\n this.childArray = [];\n }\n\n #errorCode;\n #errorClass;\n #_children;\n\n /**\n * Getter for _children\n * @return {*}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * Getter for _count\n * @return {number}\n */\n get _count() {\n return this.childArray.length;\n }\n\n /**\n * Setter for _count. Just throws an error.\n * @param {number} _count\n */\n set _count(_count) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * toJSON for *.n arrays\n * @return {object}\n */\n toJSON() {\n this.jsonString = true;\n const result = {};\n for (let i = 0; i < this.childArray.length; i++) {\n result[i + ''] = this.childArray[i];\n }\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport {\n BaseCMI,\n checkValidFormat,\n checkValidRange,\n CMIArray,\n CMIScore,\n} from './common';\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\nimport {Scorm12ValidationError} from '../exceptions';\nimport * as Utilities from '../utilities';\nimport * as Util from '../utilities';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nexport function throwReadOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Write Only error\n */\nexport function throwWriteOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.WRITE_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Invalid Set error\n */\nfunction throwInvalidValueError() {\n throw new Scorm12ValidationError(scorm12_error_codes.INVALID_SET_VALUE);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n scorm12_error_codes.TYPE_MISMATCH,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} rangePattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidRange(\n value: any,\n rangePattern: String,\n allowEmptyString?: boolean) {\n return checkValidRange(\n value,\n rangePattern,\n scorm12_error_codes.VALUE_OUT_OF_RANGE,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Class representing the cmi object for SCORM 1.2\n */\nexport class CMI extends BaseCMI {\n #_children = '';\n #_version = '3.4';\n #launch_data = '';\n #comments = '';\n #comments_from_lms = '';\n\n student_data = null;\n\n /**\n * Constructor for the SCORM 1.2 cmi object\n * @param {string} cmi_children\n * @param {(CMIStudentData|AICCCMIStudentData)} student_data\n * @param {boolean} initialized\n */\n constructor(cmi_children, student_data, initialized: boolean) {\n super();\n\n if (initialized) this.initialize();\n\n this.#_children = cmi_children ?\n cmi_children :\n scorm12_constants.cmi_children;\n this.core = new CMICore();\n this.objectives = new CMIObjectives();\n this.student_data = student_data ? student_data : new CMIStudentData();\n this.student_preference = new CMIStudentPreference();\n this.interactions = new CMIInteractions();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.core?.initialize();\n this.objectives?.initialize();\n this.student_data?.initialize();\n this.student_preference?.initialize();\n this.interactions?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'interactions': this.interactions,\n };\n delete this.jsonString;\n return result;\n }\n\n /**\n * Getter for #_version\n * @return {string}\n */\n get _version() {\n return this.#_version;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _version\n */\n set _version(_version) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #_children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.core?.suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (this.core) {\n this.core.suspend_data = suspend_data;\n }\n }\n\n /**\n * Getter for #launch_data\n * @return {string}\n */\n get launch_data() {\n return this.#launch_data;\n }\n\n /**\n * Setter for #launch_data. Can only be called before initialization.\n * @param {string} launch_data\n */\n set launch_data(launch_data) {\n !this.initialized ? this.#launch_data = launch_data : throwReadOnlyError();\n }\n\n /**\n * Getter for #comments\n * @return {string}\n */\n get comments() {\n return this.#comments;\n }\n\n /**\n * Setter for #comments\n * @param {string} comments\n */\n set comments(comments) {\n if (check12ValidFormat(comments, scorm12_regex.CMIString4096, true)) {\n this.#comments = comments;\n }\n }\n\n /**\n * Getter for #comments_from_lms\n * @return {string}\n */\n get comments_from_lms() {\n return this.#comments_from_lms;\n }\n\n /**\n * Setter for #comments_from_lms. Can only be called before initialization.\n * @param {string} comments_from_lms\n */\n set comments_from_lms(comments_from_lms) {\n !this.initialized ?\n this.#comments_from_lms = comments_from_lms :\n throwReadOnlyError();\n }\n\n /**\n * Adds the current session time to the existing total time.\n *\n * @return {string}\n */\n getCurrentTotalTime() {\n return this.core.getCurrentTotalTime(this.start_time);\n }\n}\n\n/**\n * Class representing the cmi.core object\n * @extends BaseCMI\n */\nclass CMICore extends BaseCMI {\n /**\n * Constructor for cmi.core\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #_children = scorm12_constants.core_children;\n #student_id = '';\n #student_name = '';\n #lesson_location = '';\n #credit = '';\n #lesson_status = 'not attempted';\n #entry = '';\n #total_time = '';\n #lesson_mode = 'normal';\n #exit = '';\n #session_time = '00:00:00';\n #suspend_data = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #student_id\n * @return {string}\n */\n get student_id() {\n return this.#student_id;\n }\n\n /**\n * Setter for #student_id. Can only be called before initialization.\n * @param {string} student_id\n */\n set student_id(student_id) {\n !this.initialized ? this.#student_id = student_id : throwReadOnlyError();\n }\n\n /**\n * Getter for #student_name\n * @return {string}\n */\n get student_name() {\n return this.#student_name;\n }\n\n /**\n * Setter for #student_name. Can only be called before initialization.\n * @param {string} student_name\n */\n set student_name(student_name) {\n !this.initialized ?\n this.#student_name = student_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_location\n * @return {string}\n */\n get lesson_location() {\n return this.#lesson_location;\n }\n\n /**\n * Setter for #lesson_location\n * @param {string} lesson_location\n */\n set lesson_location(lesson_location) {\n if (check12ValidFormat(lesson_location, scorm12_regex.CMIString256, true)) {\n this.#lesson_location = lesson_location;\n }\n }\n\n /**\n * Getter for #credit\n * @return {string}\n */\n get credit() {\n return this.#credit;\n }\n\n /**\n * Setter for #credit. Can only be called before initialization.\n * @param {string} credit\n */\n set credit(credit) {\n !this.initialized ? this.#credit = credit : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (this.initialized) {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus)) {\n this.#lesson_status = lesson_status;\n }\n } else {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n }\n\n /**\n * Getter for #entry\n * @return {string}\n */\n get entry() {\n return this.#entry;\n }\n\n /**\n * Setter for #entry. Can only be called before initialization.\n * @param {string} entry\n */\n set entry(entry) {\n !this.initialized ? this.#entry = entry : throwReadOnlyError();\n }\n\n /**\n * Getter for #total_time\n * @return {string}\n */\n get total_time() {\n return this.#total_time;\n }\n\n /**\n * Setter for #total_time. Can only be called before initialization.\n * @param {string} total_time\n */\n set total_time(total_time) {\n !this.initialized ? this.#total_time = total_time : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_mode\n * @return {string}\n */\n get lesson_mode() {\n return this.#lesson_mode;\n }\n\n /**\n * Setter for #lesson_mode. Can only be called before initialization.\n * @param {string} lesson_mode\n */\n set lesson_mode(lesson_mode) {\n !this.initialized ? this.#lesson_mode = lesson_mode : throwReadOnlyError();\n }\n\n /**\n * Getter for #exit. Should only be called during JSON export.\n * @return {*}\n */\n get exit() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#exit;\n }\n\n /**\n * Setter for #exit\n * @param {string} exit\n */\n set exit(exit) {\n if (check12ValidFormat(exit, scorm12_regex.CMIExit, true)) {\n this.#exit = exit;\n }\n }\n\n /**\n * Getter for #session_time. Should only be called during JSON export.\n * @return {*}\n */\n get session_time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#session_time;\n }\n\n /**\n * Setter for #session_time\n * @param {string} session_time\n */\n set session_time(session_time) {\n if (check12ValidFormat(session_time, scorm12_regex.CMITimespan)) {\n this.#session_time = session_time;\n }\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.#suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (check12ValidFormat(suspend_data, scorm12_regex.CMIString4096, true)) {\n this.#suspend_data = suspend_data;\n }\n }\n\n /**\n * Adds the current session time to the existing total time.\n * @param {Number} start_time\n * @return {string}\n */\n getCurrentTotalTime(start_time: Number) {\n let sessionTime = this.#session_time;\n const startTime = start_time;\n\n if (typeof startTime !== 'undefined' && startTime !== null) {\n const seconds = new Date().getTime() - startTime;\n sessionTime = Util.getSecondsAsHHMMSS(seconds / 1000);\n }\n\n return Utilities.addHHMMSSTimeStrings(\n this.#total_time,\n sessionTime,\n new RegExp(scorm12_regex.CMITimespan),\n );\n }\n\n /**\n * toJSON for cmi.core\n *\n * @return {\n * {\n * student_name: string,\n * entry: string,\n * exit: string,\n * score: CMIScore,\n * student_id: string,\n * lesson_mode: string,\n * lesson_location: string,\n * lesson_status: string,\n * credit: string,\n * session_time: *\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'student_id': this.student_id,\n 'student_name': this.student_name,\n 'lesson_location': this.lesson_location,\n 'credit': this.credit,\n 'lesson_status': this.lesson_status,\n 'entry': this.entry,\n 'lesson_mode': this.lesson_mode,\n 'exit': this.exit,\n 'session_time': this.session_time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives object\n * @extends CMIArray\n */\nclass CMIObjectives extends CMIArray {\n /**\n * Constructor for cmi.objectives\n */\n constructor() {\n super({\n children: scorm12_constants.objectives_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_data object\n * @extends BaseCMI\n */\nexport class CMIStudentData extends BaseCMI {\n #_children;\n #mastery_score = '';\n #max_time_allowed = '';\n #time_limit_action = '';\n\n /**\n * Constructor for cmi.student_data\n * @param {string} student_data_children\n */\n constructor(student_data_children) {\n super();\n\n this.#_children = student_data_children ?\n student_data_children :\n scorm12_constants.student_data_children;\n }\n\n /**\n * Getter for #_children\n * @return {*}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #master_score\n * @return {string}\n */\n get mastery_score() {\n return this.#mastery_score;\n }\n\n /**\n * Setter for #master_score. Can only be called before initialization.\n * @param {string} mastery_score\n */\n set mastery_score(mastery_score) {\n !this.initialized ?\n this.#mastery_score = mastery_score :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #max_time_allowed\n * @return {string}\n */\n get max_time_allowed() {\n return this.#max_time_allowed;\n }\n\n /**\n * Setter for #max_time_allowed. Can only be called before initialization.\n * @param {string} max_time_allowed\n */\n set max_time_allowed(max_time_allowed) {\n !this.initialized ?\n this.#max_time_allowed = max_time_allowed :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #time_limit_action\n * @return {string}\n */\n get time_limit_action() {\n return this.#time_limit_action;\n }\n\n /**\n * Setter for #time_limit_action. Can only be called before initialization.\n * @param {string} time_limit_action\n */\n set time_limit_action(time_limit_action) {\n !this.initialized ?\n this.#time_limit_action = time_limit_action :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data\n *\n * @return {\n * {\n * max_time_allowed: string,\n * time_limit_action: string,\n * mastery_score: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_preference object\n * @extends BaseCMI\n */\nexport class CMIStudentPreference extends BaseCMI {\n #_children;\n\n /**\n * Constructor for cmi.student_preference\n * @param {string} student_preference_children\n */\n constructor(student_preference_children) {\n super();\n\n this.#_children = student_preference_children ?\n student_preference_children :\n scorm12_constants.student_preference_children;\n }\n\n #audio = '';\n #language = '';\n #speed = '';\n #text = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #audio\n * @return {string}\n */\n get audio() {\n return this.#audio;\n }\n\n /**\n * Setter for #audio\n * @param {string} audio\n */\n set audio(audio) {\n if (check12ValidFormat(audio, scorm12_regex.CMISInteger) &&\n check12ValidRange(audio, scorm12_regex.audio_range)) {\n this.#audio = audio;\n }\n }\n\n /**\n * Getter for #language\n * @return {string}\n */\n get language() {\n return this.#language;\n }\n\n /**\n * Setter for #language\n * @param {string} language\n */\n set language(language) {\n if (check12ValidFormat(language, scorm12_regex.CMIString256)) {\n this.#language = language;\n }\n }\n\n /**\n * Getter for #speed\n * @return {string}\n */\n get speed() {\n return this.#speed;\n }\n\n /**\n * Setter for #speed\n * @param {string} speed\n */\n set speed(speed) {\n if (check12ValidFormat(speed, scorm12_regex.CMISInteger) &&\n check12ValidRange(speed, scorm12_regex.speed_range)) {\n this.#speed = speed;\n }\n }\n\n /**\n * Getter for #text\n * @return {string}\n */\n get text() {\n return this.#text;\n }\n\n /**\n * Setter for #text\n * @param {string} text\n */\n set text(text) {\n if (check12ValidFormat(text, scorm12_regex.CMISInteger) &&\n check12ValidRange(text, scorm12_regex.text_range)) {\n this.#text = text;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'speed': this.speed,\n 'text': this.text,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions object\n * @extends BaseCMI\n */\nclass CMIInteractions extends CMIArray {\n /**\n * Constructor for cmi.interactions\n */\n constructor() {\n super({\n children: scorm12_constants.interactions_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n object\n */\n constructor() {\n super();\n\n this.objectives = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.objectives_children,\n });\n this.correct_responses = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.correct_responses_children,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.objectives?.initialize();\n this.correct_responses?.initialize();\n }\n\n #id = '';\n #time = '';\n #type = '';\n #weighting = '';\n #student_response = '';\n #result = '';\n #latency = '';\n\n /**\n * Getter for #id. Should only be called during JSON export.\n * @return {*}\n */\n get id() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #time. Should only be called during JSON export.\n * @return {*}\n */\n get time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (check12ValidFormat(time, scorm12_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #type. Should only be called during JSON export.\n * @return {*}\n */\n get type() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#type;\n }\n\n /**\n * Setter for #type\n * @param {string} type\n */\n set type(type) {\n if (check12ValidFormat(type, scorm12_regex.CMIType)) {\n this.#type = type;\n }\n }\n\n /**\n * Getter for #weighting. Should only be called during JSON export.\n * @return {*}\n */\n get weighting() {\n return (!this.jsonString) ?\n throwWriteOnlyError() :\n this.#weighting;\n }\n\n /**\n * Setter for #weighting\n * @param {string} weighting\n */\n set weighting(weighting) {\n if (check12ValidFormat(weighting, scorm12_regex.CMIDecimal) &&\n check12ValidRange(weighting, scorm12_regex.weighting_range)) {\n this.#weighting = weighting;\n }\n }\n\n /**\n * Getter for #student_response. Should only be called during JSON export.\n * @return {*}\n */\n get student_response() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#student_response;\n }\n\n /**\n * Setter for #student_response\n * @param {string} student_response\n */\n set student_response(student_response) {\n if (check12ValidFormat(student_response, scorm12_regex.CMIFeedback, true)) {\n this.#student_response = student_response;\n }\n }\n\n /**\n * Getter for #result. Should only be called during JSON export.\n * @return {*}\n */\n get result() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#result;\n }\n\n /**\n * Setter for #result\n * @param {string} result\n */\n set result(result) {\n if (check12ValidFormat(result, scorm12_regex.CMIResult)) {\n this.#result = result;\n }\n }\n\n /**\n * Getter for #latency. Should only be called during JSON export.\n * @return {*}\n */\n get latency() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#latency;\n }\n\n /**\n * Setter for #latency\n * @param {string} latency\n */\n set latency(latency) {\n if (check12ValidFormat(latency, scorm12_regex.CMITimespan)) {\n this.#latency = latency;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n\n *\n * @return {\n * {\n * id: string,\n * time: string,\n * type: string,\n * weighting: string,\n * student_response: string,\n * result: string,\n * latency: string,\n * objectives: CMIArray,\n * correct_responses: CMIArray\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'time': this.time,\n 'type': this.type,\n 'weighting': this.weighting,\n 'student_response': this.student_response,\n 'result': this.result,\n 'latency': this.latency,\n 'objectives': this.objectives,\n 'correct_responses': this.correct_responses,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.objectives.n\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n #id = '';\n #status = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #status\n * @return {\"\"}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (check12ValidFormat(status, scorm12_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * toJSON for cmi.objectives.n\n * @return {\n * {\n * id: string,\n * status: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'status': this.status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n.objectives.n\n */\n constructor() {\n super();\n }\n\n #id = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n.objectives.n\n * @return {\n * {\n * id: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.correct_responses.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsCorrectResponsesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.correct_responses.n\n */\n constructor() {\n super();\n }\n\n #pattern = '';\n\n /**\n * Getter for #pattern\n * @return {string}\n */\n get pattern() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#pattern;\n }\n\n /**\n * Setter for #pattern\n * @param {string} pattern\n */\n set pattern(pattern) {\n if (check12ValidFormat(pattern, scorm12_regex.CMIFeedback, true)) {\n this.#pattern = pattern;\n }\n }\n\n /**\n * toJSON for cmi.interactions.correct_responses.n\n * @return {\n * {\n * pattern: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'pattern': this.pattern,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Navigation object\n */\nexport class NAV extends BaseCMI {\n /**\n * Constructor for NAV object\n */\n constructor() {\n super();\n }\n\n #event = '';\n\n /**\n * Getter for #event\n * @return {string}\n */\n get event() {\n return this.#event;\n }\n\n /**\n * Setter for #event\n * @param {string} event\n */\n set event(event) {\n if (check12ValidFormat(event, scorm12_regex.NAVEvent)) {\n this.#event = event;\n }\n }\n\n /**\n * toJSON for nav object\n * @return {\n * {\n * event: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'event': this.event,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\n\nconst global = {\n SCORM_TRUE: 'true',\n SCORM_FALSE: 'false',\n STATE_NOT_INITIALIZED: 0,\n STATE_INITIALIZED: 1,\n STATE_TERMINATED: 2,\n LOG_LEVEL_DEBUG: 1,\n LOG_LEVEL_INFO: 2,\n LOG_LEVEL_WARNING: 3,\n LOG_LEVEL_ERROR: 4,\n LOG_LEVEL_NONE: 5,\n};\n\nconst scorm12 = {\n // Children lists\n cmi_children: 'core,suspend_data,launch_data,comments,objectives,student_data,student_preference,interactions',\n core_children: 'student_id,student_name,lesson_location,credit,lesson_status,entry,score,total_time,lesson_mode,exit,session_time',\n score_children: 'raw,min,max',\n comments_children: 'content,location,time',\n objectives_children: 'id,score,status',\n correct_responses_children: 'pattern',\n student_data_children: 'mastery_score,max_time_allowed,time_limit_action',\n student_preference_children: 'audio,language,speed,text',\n interactions_children: 'id,objectives,time,type,correct_responses,weighting,student_response,result,latency',\n\n error_descriptions: {\n '101': {\n basicMessage: 'General Exception',\n detailMessage: 'No specific error code exists to describe the error. Use LMSGetDiagnostic for more information',\n },\n '201': {\n basicMessage: 'Invalid argument error',\n detailMessage: 'Indicates that an argument represents an invalid data model element or is otherwise incorrect.',\n },\n '202': {\n basicMessage: 'Element cannot have children',\n detailMessage: 'Indicates that LMSGetValue was called with a data model element name that ends in \"_children\" for a data model element that does not support the \"_children\" suffix.',\n },\n '203': {\n basicMessage: 'Element not an array - cannot have count',\n detailMessage: 'Indicates that LMSGetValue was called with a data model element name that ends in \"_count\" for a data model element that does not support the \"_count\" suffix.',\n },\n '301': {\n basicMessage: 'Not initialized',\n detailMessage: 'Indicates that an API call was made before the call to lmsInitialize.',\n },\n '401': {\n basicMessage: 'Not implemented error',\n detailMessage: 'The data model element indicated in a call to LMSGetValue or LMSSetValue is valid, but was not implemented by this LMS. SCORM 1.2 defines a set of data model elements as being optional for an LMS to implement.',\n },\n '402': {\n basicMessage: 'Invalid set value, element is a keyword',\n detailMessage: 'Indicates that LMSSetValue was called on a data model element that represents a keyword (elements that end in \"_children\" and \"_count\").',\n },\n '403': {\n basicMessage: 'Element is read only',\n detailMessage: 'LMSSetValue was called with a data model element that can only be read.',\n },\n '404': {\n basicMessage: 'Element is write only',\n detailMessage: 'LMSGetValue was called on a data model element that can only be written to.',\n },\n '405': {\n basicMessage: 'Incorrect Data Type',\n detailMessage: 'LMSSetValue was called with a value that is not consistent with the data format of the supplied data model element.',\n },\n '407': {\n basicMessage: 'Element Value Out Of Range',\n detailMessage: 'The numeric value supplied to a LMSSetValue call is outside of the numeric range allowed for the supplied data model element.',\n },\n '408': {\n basicMessage: 'Data Model Dependency Not Established',\n detailMessage: 'Some data model elements cannot be set until another data model element was set. This error condition indicates that the prerequisite element was not set before the dependent element.',\n },\n },\n};\n\nconst aicc = {\n ...scorm12, ...{\n cmi_children: 'core,suspend_data,launch_data,comments,objectives,student_data,student_preference,interactions,evaluation',\n student_preference_children: 'audio,language,lesson_type,speed,text,text_color,text_location,text_size,video,windows',\n student_data_children: 'attempt_number,tries,mastery_score,max_time_allowed,time_limit_action',\n student_demographics_children: 'city,class,company,country,experience,familiar_name,instructor_name,title,native_language,state,street_address,telephone,years_experience',\n tries_children: 'time,status,score',\n attempt_records_children: 'score,lesson_status',\n paths_children: 'location_id,date,time,status,why_left,time_in_element',\n },\n};\n\nconst scorm2004 = {\n // Children lists\n cmi_children: '_version,comments_from_learner,comments_from_lms,completion_status,credit,entry,exit,interactions,launch_data,learner_id,learner_name,learner_preference,location,max_time_allowed,mode,objectives,progress_measure,scaled_passing_score,score,session_time,success_status,suspend_data,time_limit_action,total_time',\n comments_children: 'comment,timestamp,location',\n score_children: 'max,raw,scaled,min',\n objectives_children: 'progress_measure,completion_status,success_status,description,score,id',\n correct_responses_children: 'pattern',\n student_data_children: 'mastery_score,max_time_allowed,time_limit_action',\n student_preference_children: 'audio_level,audio_captioning,delivery_speed,language',\n interactions_children: 'id,type,objectives,timestamp,correct_responses,weighting,learner_response,result,latency,description',\n\n error_descriptions: {\n '0': {\n basicMessage: 'No Error',\n detailMessage: 'No error occurred, the previous API call was successful.',\n },\n '101': {\n basicMessage: 'General Exception',\n detailMessage: 'No specific error code exists to describe the error. Use GetDiagnostic for more information.',\n },\n '102': {\n basicMessage: 'General Initialization Failure',\n detailMessage: 'Call to Initialize failed for an unknown reason.',\n },\n '103': {\n basicMessage: 'Already Initialized',\n detailMessage: 'Call to Initialize failed because Initialize was already called.',\n },\n '104': {\n basicMessage: 'Content Instance Terminated',\n detailMessage: 'Call to Initialize failed because Terminate was already called.',\n },\n '111': {\n basicMessage: 'General Termination Failure',\n detailMessage: 'Call to Terminate failed for an unknown reason.',\n },\n '112': {\n basicMessage: 'Termination Before Initialization',\n detailMessage: 'Call to Terminate failed because it was made before the call to Initialize.',\n },\n '113': {\n basicMessage: 'Termination After Termination',\n detailMessage: 'Call to Terminate failed because Terminate was already called.',\n },\n '122': {\n basicMessage: 'Retrieve Data Before Initialization',\n detailMessage: 'Call to GetValue failed because it was made before the call to Initialize.',\n },\n '123': {\n basicMessage: 'Retrieve Data After Termination',\n detailMessage: 'Call to GetValue failed because it was made after the call to Terminate.',\n },\n '132': {\n basicMessage: 'Store Data Before Initialization',\n detailMessage: 'Call to SetValue failed because it was made before the call to Initialize.',\n },\n '133': {\n basicMessage: 'Store Data After Termination',\n detailMessage: 'Call to SetValue failed because it was made after the call to Terminate.',\n },\n '142': {\n basicMessage: 'Commit Before Initialization',\n detailMessage: 'Call to Commit failed because it was made before the call to Initialize.',\n },\n '143': {\n basicMessage: 'Commit After Termination',\n detailMessage: 'Call to Commit failed because it was made after the call to Terminate.',\n },\n '201': {\n basicMessage: 'General Argument Error',\n detailMessage: 'An invalid argument was passed to an API method (usually indicates that Initialize, Commit or Terminate did not receive the expected empty string argument.',\n },\n '301': {\n basicMessage: 'General Get Failure',\n detailMessage: 'Indicates a failed GetValue call where no other specific error code is applicable. Use GetDiagnostic for more information.',\n },\n '351': {\n basicMessage: 'General Set Failure',\n detailMessage: 'Indicates a failed SetValue call where no other specific error code is applicable. Use GetDiagnostic for more information.',\n },\n '391': {\n basicMessage: 'General Commit Failure',\n detailMessage: 'Indicates a failed Commit call where no other specific error code is applicable. Use GetDiagnostic for more information.',\n },\n '401': {\n basicMessage: 'Undefined Data Model Element',\n detailMessage: 'The data model element name passed to GetValue or SetValue is not a valid SCORM data model element.',\n },\n '402': {\n basicMessage: 'Unimplemented Data Model Element',\n detailMessage: 'The data model element indicated in a call to GetValue or SetValue is valid, but was not implemented by this LMS. In SCORM 2004, this error would indicate an LMS that is not fully SCORM conformant.',\n },\n '403': {\n basicMessage: 'Data Model Element Value Not Initialized',\n detailMessage: 'Attempt to read a data model element that has not been initialized by the LMS or through a SetValue call. This error condition is often reached during normal execution of a SCO.',\n },\n '404': {\n basicMessage: 'Data Model Element Is Read Only',\n detailMessage: 'SetValue was called with a data model element that can only be read.',\n },\n '405': {\n basicMessage: 'Data Model Element Is Write Only',\n detailMessage: 'GetValue was called on a data model element that can only be written to.',\n },\n '406': {\n basicMessage: 'Data Model Element Type Mismatch',\n detailMessage: 'SetValue was called with a value that is not consistent with the data format of the supplied data model element.',\n },\n '407': {\n basicMessage: 'Data Model Element Value Out Of Range',\n detailMessage: 'The numeric value supplied to a SetValue call is outside of the numeric range allowed for the supplied data model element.',\n },\n '408': {\n basicMessage: 'Data Model Dependency Not Established',\n detailMessage: 'Some data model elements cannot be set until another data model element was set. This error condition indicates that the prerequisite element was not set before the dependent element.',\n },\n },\n};\n\nconst APIConstants = {\n global: global,\n scorm12: scorm12,\n aicc: aicc,\n scorm2004: scorm2004,\n};\n\nexport default APIConstants;\n","// @flow\nconst global = {\n GENERAL: 101,\n INITIALIZATION_FAILED: 101,\n INITIALIZED: 101,\n TERMINATED: 101,\n TERMINATION_FAILURE: 101,\n TERMINATION_BEFORE_INIT: 101,\n MULTIPLE_TERMINATION: 101,\n RETRIEVE_BEFORE_INIT: 101,\n RETRIEVE_AFTER_TERM: 101,\n STORE_BEFORE_INIT: 101,\n STORE_AFTER_TERM: 101,\n COMMIT_BEFORE_INIT: 101,\n COMMIT_AFTER_TERM: 101,\n ARGUMENT_ERROR: 101,\n CHILDREN_ERROR: 101,\n COUNT_ERROR: 101,\n GENERAL_GET_FAILURE: 101,\n GENERAL_SET_FAILURE: 101,\n GENERAL_COMMIT_FAILURE: 101,\n UNDEFINED_DATA_MODEL: 101,\n UNIMPLEMENTED_ELEMENT: 101,\n VALUE_NOT_INITIALIZED: 101,\n INVALID_SET_VALUE: 101,\n READ_ONLY_ELEMENT: 101,\n WRITE_ONLY_ELEMENT: 101,\n TYPE_MISMATCH: 101,\n VALUE_OUT_OF_RANGE: 101,\n DEPENDENCY_NOT_ESTABLISHED: 101,\n};\n\nconst scorm12 = {\n ...global, ...{\n RETRIEVE_BEFORE_INIT: 301,\n STORE_BEFORE_INIT: 301,\n COMMIT_BEFORE_INIT: 301,\n ARGUMENT_ERROR: 201,\n CHILDREN_ERROR: 202,\n COUNT_ERROR: 203,\n UNDEFINED_DATA_MODEL: 401,\n UNIMPLEMENTED_ELEMENT: 401,\n VALUE_NOT_INITIALIZED: 301,\n INVALID_SET_VALUE: 402,\n READ_ONLY_ELEMENT: 403,\n WRITE_ONLY_ELEMENT: 404,\n TYPE_MISMATCH: 405,\n VALUE_OUT_OF_RANGE: 407,\n DEPENDENCY_NOT_ESTABLISHED: 408,\n },\n};\n\nconst scorm2004 = {\n ...global, ...{\n INITIALIZATION_FAILED: 102,\n INITIALIZED: 103,\n TERMINATED: 104,\n TERMINATION_FAILURE: 111,\n TERMINATION_BEFORE_INIT: 112,\n MULTIPLE_TERMINATIONS: 113,\n RETRIEVE_BEFORE_INIT: 122,\n RETRIEVE_AFTER_TERM: 123,\n STORE_BEFORE_INIT: 132,\n STORE_AFTER_TERM: 133,\n COMMIT_BEFORE_INIT: 142,\n COMMIT_AFTER_TERM: 143,\n ARGUMENT_ERROR: 201,\n GENERAL_GET_FAILURE: 301,\n GENERAL_SET_FAILURE: 351,\n GENERAL_COMMIT_FAILURE: 391,\n UNDEFINED_DATA_MODEL: 401,\n UNIMPLEMENTED_ELEMENT: 402,\n VALUE_NOT_INITIALIZED: 403,\n READ_ONLY_ELEMENT: 404,\n WRITE_ONLY_ELEMENT: 405,\n TYPE_MISMATCH: 406,\n VALUE_OUT_OF_RANGE: 407,\n DEPENDENCY_NOT_ESTABLISHED: 408,\n },\n};\n\nconst ErrorCodes = {\n scorm12: scorm12,\n scorm2004: scorm2004,\n};\n\nexport default ErrorCodes;\n","// @flow\n\nconst scorm12 = {\n CMIString256: '^.*$',\n CMIString4096: '^.*$',\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: '^.*$',\n CMIFeedback: '^.*$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMIStatus: '^(passed|completed|failed|incomplete|browsed)$',\n CMIStatus2: '^(passed|completed|failed|incomplete|browsed|not attempted)$',\n CMIExit: '^(time-out|suspend|logout|)$',\n CMIType: '^(true-false|choice|fill-in|matching|performance|sequencing|likert|numeric)$',\n CMIResult: '^(correct|wrong|unanticipated|neutral|([0-9]{0,3})?(\\\\.[0-9]*)?)$', // eslint-disable-line\n NAVEvent: '^(previous|continue)$',\n\n // Data ranges\n score_range: '0#100',\n audio_range: '-1#100',\n speed_range: '-100#100',\n weighting_range: '-100#100',\n text_range: '-1#1',\n};\n\nconst aicc = {\n ...scorm12, ...{\n CMIIdentifier: '^\\\\w{1,255}$',\n },\n};\n\nconst scorm2004 = {\n CMIString200: '^[\\\\u0000-\\\\uFFFF]{0,200}$',\n CMIString250: '^[\\\\u0000-\\\\uFFFF]{0,250}$',\n CMIString1000: '^[\\\\u0000-\\\\uFFFF]{0,1000}$',\n CMIString4000: '^[\\\\u0000-\\\\uFFFF]{0,4000}$',\n CMIString64000: '^[\\\\u0000-\\\\uFFFF]{0,64000}$',\n CMILang: '^([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?$|^$', // eslint-disable-line\n CMILangString250: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,250}$)?$', // eslint-disable-line\n CMILangcr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\}))(.*?)$', // eslint-disable-line\n CMILangString250cr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\})?(.{0,250})?)?$', // eslint-disable-line\n CMILangString4000: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,4000}$)?$', // eslint-disable-line\n CMITime: '^(19[7-9]{1}[0-9]{1}|20[0-2]{1}[0-9]{1}|203[0-8]{1})((-(0[1-9]{1}|1[0-2]{1}))((-(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1}))(T([0-1]{1}[0-9]{1}|2[0-3]{1})((:[0-5]{1}[0-9]{1})((:[0-5]{1}[0-9]{1})((\\\\.[0-9]{1,2})((Z|([+|-]([0-1]{1}[0-9]{1}|2[0-3]{1})))(:[0-5]{1}[0-9]{1})?)?)?)?)?)?)?)?$',\n CMITimespan: '^P(?:([.,\\\\d]+)Y)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)W)?(?:([.,\\\\d]+)D)?(?:T?(?:([.,\\\\d]+)H)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)S)?)?$',\n CMIInteger: '^\\\\d+$',\n CMISInteger: '^-?([0-9]+)$',\n CMIDecimal: '^-?([0-9]{1,5})(\\\\.[0-9]{1,18})?$',\n CMIIdentifier: '^\\\\S{1,250}[a-zA-Z0-9]$',\n CMIShortIdentifier: '^[\\\\w\\\\.\\\\-\\\\_]{1,250}$', // eslint-disable-line\n CMILongIdentifier: '^(?:(?!urn:)\\\\S{1,4000}|urn:[A-Za-z0-9-]{1,31}:\\\\S{1,4000}|.{1,4000})$', // need to re-examine this\n CMIFeedback: '^.*$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n CMIIndexStore: '.N(\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMICStatus: '^(completed|incomplete|not attempted|unknown)$',\n CMISStatus: '^(passed|failed|unknown)$',\n CMIExit: '^(time-out|suspend|logout|normal)$',\n CMIType: '^(true-false|choice|fill-in|long-fill-in|matching|performance|sequencing|likert|numeric|other)$',\n CMIResult: '^(correct|incorrect|unanticipated|neutral|-?([0-9]{1,4})(\\\\.[0-9]{1,18})?)$',\n NAVEvent: '^(previous|continue|exit|exitAll|abandon|abandonAll|suspendAll|\\{target=\\\\S{0,200}[a-zA-Z0-9]\\}choice|jump)$', // eslint-disable-line\n NAVBoolean: '^(unknown|true|false$)',\n NAVTarget: '^(previous|continue|choice.{target=\\\\S{0,200}[a-zA-Z0-9]})$',\n\n // Data ranges\n scaled_range: '-1#1',\n audio_range: '0#*',\n speed_range: '0#*',\n text_range: '-1#1',\n progress_range: '0#1',\n};\n\nconst Regex = {\n aicc: aicc,\n scorm12: scorm12,\n scorm2004: scorm2004,\n};\n\nexport default Regex;\n","// @flow\n\nimport APIConstants from './constants/api_constants';\n\nconst scorm12_errors = APIConstants.scorm12.error_descriptions;\nconst aicc_errors = APIConstants.aicc.error_descriptions;\nconst scorm2004_errors = APIConstants.scorm2004.error_descriptions;\n\n/**\n * Base Validation Exception\n */\nexport class ValidationError extends Error {\n /**\n * Constructor to take in an error message and code\n * @param {number} errorCode\n * @param {string} errorMessage\n * @param {string} detailedMessage\n */\n constructor(errorCode: number, errorMessage: String, detailedMessage: String) {\n super(errorMessage);\n this.#errorCode = errorCode;\n this.#errorMessage = errorMessage;\n this.#detailedMessage = detailedMessage;\n }\n\n #errorCode;\n #errorMessage;\n #detailedMessage;\n\n /**\n * Getter for #errorCode\n * @return {number}\n */\n get errorCode() {\n return this.#errorCode;\n }\n\n /**\n * Getter for #errorMessage\n * @return {string}\n */\n get errorMessage() {\n return this.#errorMessage;\n }\n\n /**\n * Getter for #detailedMessage\n * @return {string}\n */\n get detailedMessage() {\n return this.#detailedMessage;\n }\n}\n\n/**\n * SCORM 1.2 Validation Error\n */\nexport class Scorm12ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm12_errors, String(errorCode))) {\n super(errorCode, scorm12_errors[String(errorCode)].basicMessage, scorm12_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm12_errors['101'].basicMessage, scorm12_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * AICC Validation Error\n */\nexport class AICCValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(aicc_errors, String(errorCode))) {\n super(errorCode, aicc_errors[String(errorCode)].basicMessage, aicc_errors[String(errorCode)].detailMessage);\n } else {\n super(101, aicc_errors['101'].basicMessage, aicc_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * SCORM 2004 Validation Error\n */\nexport class Scorm2004ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {\n super(errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm2004_errors['101'].basicMessage, scorm2004_errors['101'].detailMessage);\n }\n }\n}\n","// @flow\nexport const SECONDS_PER_SECOND = 1.0;\nexport const SECONDS_PER_MINUTE = 60;\nexport const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE;\nexport const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;\n\nconst designations = [\n ['D', SECONDS_PER_DAY],\n ['H', SECONDS_PER_HOUR],\n ['M', SECONDS_PER_MINUTE],\n ['S', SECONDS_PER_SECOND],\n];\n\n/**\n * Converts a Number to a String of HH:MM:SS\n *\n * @param {Number} totalSeconds\n * @return {string}\n */\nexport function getSecondsAsHHMMSS(totalSeconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!totalSeconds || totalSeconds <= 0) {\n return '00:00:00';\n }\n\n const hours = Math.floor(totalSeconds / SECONDS_PER_HOUR);\n\n const dateObj = new Date(totalSeconds * 1000);\n const minutes = dateObj.getUTCMinutes();\n // make sure we add any possible decimal value\n const seconds = dateObj.getSeconds();\n const ms = totalSeconds % 1.0;\n let msStr = '';\n if (countDecimals(ms) > 0) {\n if (countDecimals(ms) > 2) {\n msStr = ms.toFixed(2);\n } else {\n msStr = String(ms);\n }\n msStr = '.' + msStr.split('.')[1];\n }\n\n return (hours + ':' + minutes + ':' + seconds).replace(/\\b\\d\\b/g,\n '0$&') + msStr;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {Number} seconds\n * @return {String}\n */\nexport function getSecondsAsISODuration(seconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!seconds || seconds <= 0) {\n return 'PT0S';\n }\n\n let duration = 'P';\n let remainder = seconds;\n\n designations.forEach(([sign, current_seconds]) => {\n let value = Math.floor(remainder / current_seconds);\n\n remainder = remainder % current_seconds;\n if (countDecimals(remainder) > 2) {\n remainder = Number(Number(remainder).toFixed(2));\n }\n // If we have anything left in the remainder, and we're currently adding\n // seconds to the duration, go ahead and add the decimal to the seconds\n if (sign === 'S' && remainder > 0) {\n value += remainder;\n }\n\n if (value) {\n if ((duration.indexOf('D') > 0 ||\n sign === 'H' || sign === 'M' || sign === 'S') &&\n duration.indexOf('T') === -1) {\n duration += 'T';\n }\n duration += `${value}${sign}`;\n }\n });\n\n return duration;\n}\n\n/**\n * Calculate the number of seconds from HH:MM:SS.DDDDDD\n *\n * @param {string} timeString\n * @param {RegExp} timeRegex\n * @return {number}\n */\nexport function getTimeAsSeconds(timeString: String, timeRegex: RegExp) {\n if (!timeString || typeof timeString !== 'string' ||\n !timeString.match(timeRegex)) {\n return 0;\n }\n const parts = timeString.split(':');\n const hours = Number(parts[0]);\n const minutes = Number(parts[1]);\n const seconds = Number(parts[2]);\n return (hours * 3600) + (minutes * 60) + seconds;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {string} duration\n * @param {RegExp} durationRegex\n * @return {number}\n */\nexport function getDurationAsSeconds(duration: String, durationRegex: RegExp) {\n if (!duration || !duration.match(durationRegex)) {\n return 0;\n }\n\n const [, years, months, , days, hours, minutes, seconds] = new RegExp(\n durationRegex).exec(duration) || [];\n\n let result = 0.0;\n\n result += (Number(seconds) * 1.0 || 0.0);\n result += (Number(minutes) * 60.0 || 0.0);\n result += (Number(hours) * 3600.0 || 0.0);\n result += (Number(days) * (60 * 60 * 24.0) || 0.0);\n result += (Number(years) * (60 * 60 * 24 * 365.0) || 0.0);\n\n return result;\n}\n\n/**\n * Adds together two ISO8601 Duration strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} durationRegex\n * @return {string}\n */\nexport function addTwoDurations(\n first: String,\n second: String,\n durationRegex: RegExp) {\n return getSecondsAsISODuration(\n getDurationAsSeconds(first, durationRegex) +\n getDurationAsSeconds(second, durationRegex),\n );\n}\n\n/**\n * Add together two HH:MM:SS.DD strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} timeRegex\n * @return {string}\n */\nexport function addHHMMSSTimeStrings(\n first: String,\n second: String,\n timeRegex: RegExp) {\n return getSecondsAsHHMMSS(\n getTimeAsSeconds(first, timeRegex) +\n getTimeAsSeconds(\n second, timeRegex),\n );\n}\n\n/**\n * Flatten a JSON object down to string paths for each values\n * @param {object} data\n * @return {object}\n */\nexport function flatten(data) {\n const result = {};\n\n /**\n * Recurse through the object\n * @param {*} cur\n * @param {*} prop\n */\n function recurse(cur, prop) {\n if (Object(cur) !== cur) {\n result[prop] = cur;\n } else if (Array.isArray(cur)) {\n for (let i = 0, l = cur.length; i < l; i++) {\n recurse(cur[i], prop + '[' + i + ']');\n if (l === 0) result[prop] = [];\n }\n } else {\n let isEmpty = true;\n for (const p in cur) {\n if ({}.hasOwnProperty.call(cur, p)) {\n isEmpty = false;\n recurse(cur[p], prop ? prop + '.' + p : p);\n }\n }\n if (isEmpty && prop) result[prop] = {};\n }\n }\n\n recurse(data, '');\n return result;\n}\n\n/**\n * Un-flatten a flat JSON object\n * @param {object} data\n * @return {object}\n */\nexport function unflatten(data) {\n 'use strict';\n if (Object(data) !== data || Array.isArray(data)) return data;\n const regex = /\\.?([^.[\\]]+)|\\[(\\d+)]/g;\n const result = {};\n for (const p in data) {\n if ({}.hasOwnProperty.call(data, p)) {\n let cur = result;\n let prop = '';\n let m = regex.exec(p);\n while (m) {\n cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));\n prop = m[2] || m[1];\n m = regex.exec(p);\n }\n cur[prop] = data[p];\n }\n }\n return result[''] || result;\n}\n\n/**\n * Counts the number of decimal places\n * @param {number} num\n * @return {number}\n */\nexport function countDecimals(num: number) {\n if (Math.floor(num) === num || String(num).indexOf('.') < 0) return 0;\n const parts = num.toString().split('.')[1];\n return parts.length || 0;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import AICC from '../AICC';\n\nwindow.AICC = AICC;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectProto","prototype","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","value","type","isObjectLike","isSymbol","call","other","valueOf","replace","isBinary","test","slice","module","exports","Scorm12API","CMI","CMIAttemptRecordsObject","CMIEvaluationCommentsObject","CMITriesObject","NAV","AICC","settings","finalSettings","mastery_override","cmi","nav","CMIElement","foundFirstIndex","newChild","stringMatches","newAPI","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","BaseAPI","error_codes","autocommit","autocommitSeconds","asyncCommit","sendBeaconCommit","lmsCommitUrl","dataCommitFormat","commitRequestDataType","autoProgress","logLevel","LOG_LEVEL_ERROR","selfReportSessionTime","alwaysSendTotalTime","strict_errors","xhrHeaders","xhrWithCredentials","responseHandler","xhr","JSON","parse","responseText","hasOwnProperty","status","SCORM_TRUE","errorCode","SCORM_FALSE","requestHandler","commitObject","onLogMessage","messageLevel","logMessage","console","error","LOG_LEVEL_WARNING","warn","LOG_LEVEL_INFO","info","LOG_LEVEL_DEBUG","debug","log","fetchKeepalive","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","apiLogLevel","callbackName","initializeMessage","terminationMessage","returnValue","isInitialized","throwSCORMError","INITIALIZED","isTerminated","TERMINATED","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","CMIErrorCode","getLmsErrorMessageDetails","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","str","tester","match","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","methodName","scorm2004","structure","split","invalidErrorMessage","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","_checkObjectHasProperty","validateCorrectResponse","index","isNaN","item","childArray","getChildElement","initialized","initialize","push","_foundFirstIndex","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","listenerName","callback","listenerFunctions","listenerSplit","removeIndex","findIndex","obj","splice","filter","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","json","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","key","sort","b","d","forEach","element","loadFromJSON","startingData","currentCMIElement","constructor","stringify","renderCMIToJSONString","_terminateCommit","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","fetch","method","body","headers","credentials","keepalive","when","ScheduledCommit","API","wrapper","bind","commit","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","Utilities","scorm12_constants","LMSInitialize","lmsInitialize","LMSFinish","lmsFinish","LMSGetValue","lmsGetValue","LMSSetValue","lmsSetValue","LMSCommit","lmsCommit","LMSGetLastError","lmsGetLastError","LMSGetErrorString","lmsGetErrorString","LMSGetDiagnostic","lmsGetDiagnostic","terminate","event","getValue","setValue","getLastError","getErrorString","getDiagnostic","_commonSetCMIValue","_commonGetCMIValue","detail","basicMessage","detailMessage","error_descriptions","terminateCommit","cmiExport","renderCMIToJSONObject","core","total_time","getCurrentTotalTime","flattened","flatten","originalStatus","lesson_status","lesson_mode","credit","student_data","mastery_score","score","raw","parseFloat","renderCommitCMI","processHttpRequest","Scorm12CMI","BaseCMI","checkValidFormat","CMIScore","Regex","AICCValidationError","aicc_constants","aicc","aicc_regex","aicc_error_codes","throwReadOnlyError","checkAICCValidFormat","regexPattern","allowEmptyString","TYPE_MISMATCH","cmi_children","student_preference","AICCStudentPreferences","AICCCMIStudentData","student_demographics","CMIStudentDemographics","evaluation","CMIEvaluation","paths","CMIPaths","jsonString","suspend_data","launch_data","comments","comments_from_lms","objectives","interactions","CMIEvaluationComments","children","comments_children","INVALID_SET_VALUE","errorClass","student_preference_children","windows","lesson_type","CMIString256","text_color","text_location","text_size","video","audio","language","speed","text","CMIStudentPreference","student_data_children","tries","CMITries","tries_during_lesson","max_time_allowed","time_limit_action","CMIStudentData","student_demographics_children","city","clazz","company","country","experience","familiar_name","instructor_name","title","native_language","state","street_address","telephone","years_experience","class","paths_children","CMIPathsObject","location_id","date","CMITime","CMIStatus2","why_left","time_in_element","tries_children","score_children","score_range","invalidTypeCode","invalidRangeCode","VALUE_OUT_OF_RANGE","CMIAttemptRecords","attempt_records_children","content","location","scorm12_regex","formatRegex","RegExp","matches","checkValidRange","rangePattern","ranges","getTime","decimalRegex","CMIDecimal","_children","_count","Scorm12ValidationError","Util","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwInvalidValueError","check12ValidFormat","check12ValidRange","CMICore","CMIObjectives","CMIInteractions","_version","CMIString4096","start_time","core_children","student_id","student_name","lesson_location","CMIStatus","entry","exit","CMIExit","session_time","CMITimespan","sessionTime","startTime","seconds","getSecondsAsHHMMSS","addHHMMSSTimeStrings","objectives_children","CMISInteger","audio_range","speed_range","text_range","interactions_children","correct_responses","correct_responses_children","id","CMIIdentifier","CMIType","weighting","weighting_range","student_response","CMIFeedback","CMIResult","latency","pattern","NAVEvent","LOG_LEVEL_NONE","INITIALIZATION_FAILED","TERMINATION_FAILURE","ARGUMENT_ERROR","GENERAL_GET_FAILURE","GENERAL_SET_FAILURE","GENERAL_COMMIT_FAILURE","UNIMPLEMENTED_ELEMENT","DEPENDENCY_NOT_ESTABLISHED","MULTIPLE_TERMINATIONS","CMIInteger","CMIIndex","CMIString200","CMIString250","CMIString1000","CMIString4000","CMIString64000","CMILang","CMILangString250","CMILangcr","CMILangString250cr","CMILangString4000","CMIShortIdentifier","CMILongIdentifier","CMIIndexStore","CMICStatus","CMISStatus","NAVBoolean","NAVTarget","scaled_range","progress_range","scorm12_errors","aicc_errors","scorm2004_errors","errorMessage","detailedMessage","Scorm2004ValidationError","SECONDS_PER_SECOND","SECONDS_PER_MINUTE","SECONDS_PER_HOUR","SECONDS_PER_DAY","designations","totalSeconds","hours","floor","dateObj","minutes","getUTCMinutes","getSeconds","ms","msStr","countDecimals","toFixed","getSecondsAsISODuration","duration","remainder","sign","current_seconds","getTimeAsSeconds","timeString","timeRegex","parts","getDurationAsSeconds","durationRegex","exec","years","months","days","addTwoDurations","first","second","data","recurse","cur","prop","isArray","l","isEmpty","p","regex","m","num","window"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"aicc.js","mappings":"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","sources":["webpack://scorm-again/./node_modules/lodash.debounce/index.js","webpack://scorm-again/./src/AICC.js","webpack://scorm-again/./src/BaseAPI.js","webpack://scorm-again/./src/Scorm12API.js","webpack://scorm-again/./src/cmi/aicc_cmi.js","webpack://scorm-again/./src/cmi/common.js","webpack://scorm-again/./src/cmi/scorm12_cmi.js","webpack://scorm-again/./src/constants/api_constants.js","webpack://scorm-again/./src/constants/error_codes.js","webpack://scorm-again/./src/constants/regex.js","webpack://scorm-again/./src/exceptions.js","webpack://scorm-again/./src/utilities.js","webpack://scorm-again/webpack/bootstrap","webpack://scorm-again/webpack/runtime/compat get default export","webpack://scorm-again/webpack/runtime/define property getters","webpack://scorm-again/webpack/runtime/global","webpack://scorm-again/webpack/runtime/hasOwnProperty shorthand","webpack://scorm-again/webpack/runtime/make namespace object","webpack://scorm-again/./src/exports/aicc.js"],"sourcesContent":["/**\n * lodash (Custom Build) \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 Scorm12API from './Scorm12API';\nimport {\n CMI,\n CMIAttemptRecordsObject,\n CMIEvaluationCommentsObject,\n CMITriesObject,\n} from './cmi/aicc_cmi';\nimport {NAV} from './cmi/scorm12_cmi';\n\n/**\n * The AICC API class\n */\nexport default class AICC extends Scorm12API {\n /**\n * Constructor to create AICC API object\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(finalSettings);\n\n this.cmi = new CMI();\n this.nav = new NAV();\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {any} value\n * @param {boolean} foundFirstIndex\n * @return {object}\n */\n getChildElement(CMIElement, value, foundFirstIndex) {\n let newChild = super.getChildElement(CMIElement, value, foundFirstIndex);\n\n if (!newChild) {\n if (this.stringMatches(CMIElement, 'cmi\\\\.evaluation\\\\.comments\\\\.\\\\d+')) {\n newChild = new CMIEvaluationCommentsObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.tries\\\\.\\\\d+')) {\n newChild = new CMITriesObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.attempt_records\\\\.\\\\d+')) {\n newChild = new CMIAttemptRecordsObject();\n }\n }\n\n return newChild;\n }\n\n /**\n * Replace the whole API with another\n *\n * @param {AICC} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n this.nav = newAPI.nav;\n }\n}\n","// @flow\nimport {CMIArray} from './cmi/common';\nimport {ValidationError} from './exceptions';\nimport ErrorCodes from './constants/error_codes';\nimport APIConstants from './constants/api_constants';\nimport {unflatten} from './utilities';\nimport debounce from 'lodash.debounce';\n\nconst global_constants = APIConstants.global;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Base API class for AICC, SCORM 1.2, and SCORM 2004. Should be considered\n * abstract, and never initialized on it's own.\n */\nexport default class BaseAPI {\n #timeout;\n #error_codes;\n #settings = {\n autocommit: false,\n autocommitSeconds: 10,\n asyncCommit: false,\n sendBeaconCommit: false,\n lmsCommitUrl: false,\n dataCommitFormat: 'json', // valid formats are 'json' or 'flattened', 'params'\n commitRequestDataType: 'application/json;charset=UTF-8',\n autoProgress: false,\n logLevel: global_constants.LOG_LEVEL_ERROR,\n selfReportSessionTime: false,\n alwaysSendTotalTime: false,\n strict_errors: true,\n xhrHeaders: {},\n xhrWithCredentials: false,\n responseHandler: function(xhr) {\n let result;\n if (typeof xhr !== 'undefined') {\n result = JSON.parse(xhr.responseText);\n if (result === null || !{}.hasOwnProperty.call(result, 'result')) {\n result = {};\n if (xhr.status === 200) {\n result.result = global_constants.SCORM_TRUE;\n result.errorCode = 0;\n } else {\n result.result = global_constants.SCORM_FALSE;\n result.errorCode = 101;\n }\n }\n }\n return result;\n },\n requestHandler: function(commitObject) {\n return commitObject;\n },\n onLogMessage: function(messageLevel, logMessage) {\n switch (messageLevel) {\n case global_constants.LOG_LEVEL_ERROR:\n console.error(logMessage);\n break;\n case global_constants.LOG_LEVEL_WARNING:\n console.warn(logMessage);\n break;\n case global_constants.LOG_LEVEL_INFO:\n console.info(logMessage);\n break;\n case global_constants.LOG_LEVEL_DEBUG:\n if (console.debug) {\n console.debug(logMessage);\n } else {\n console.log(logMessage);\n }\n break;\n }\n },\n fetchKeepalive: function() {\n return true;\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.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: settings.fetchKeepalive(),\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","import * as Scorm12CMI from './scorm12_cmi';\nimport {BaseCMI, checkValidFormat, CMIArray, CMIScore} from './common';\nimport APIConstants from '../constants/api_constants';\nimport Regex from '../constants/regex';\nimport ErrorCodes from '../constants/error_codes';\nimport {AICCValidationError} from '../exceptions';\n\nconst aicc_constants = APIConstants.aicc;\nconst aicc_regex = Regex.aicc;\nconst aicc_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nfunction throwReadOnlyError() {\n throw new AICCValidationError(aicc_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nfunction checkAICCValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n aicc_error_codes.TYPE_MISMATCH,\n AICCValidationError,\n allowEmptyString\n );\n}\n\n/**\n * CMI Class for AICC\n */\nexport class CMI extends Scorm12CMI.CMI {\n /**\n * Constructor for AICC CMI object\n * @param {boolean} initialized\n */\n constructor(initialized: boolean) {\n super(aicc_constants.cmi_children);\n\n if (initialized) this.initialize();\n\n this.student_preference = new AICCStudentPreferences();\n this.student_data = new AICCCMIStudentData();\n this.student_demographics = new CMIStudentDemographics();\n this.evaluation = new CMIEvaluation();\n this.paths = new CMIPaths();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.student_preference?.initialize();\n this.student_data?.initialize();\n this.student_demographics?.initialize();\n this.evaluation?.initialize();\n this.paths?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions,\n * paths: CMIPaths\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'student_demographics': this.student_demographics,\n 'interactions': this.interactions,\n 'evaluation': this.evaluation,\n 'paths': this.paths,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * AICC Evaluation object\n */\nclass CMIEvaluation extends BaseCMI {\n /**\n * Constructor for AICC Evaluation object\n */\n constructor() {\n super();\n\n this.comments = new CMIEvaluationComments();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.comments?.initialize();\n }\n\n /**\n * toJSON for cmi.evaluation object\n * @return {{comments: CMIEvaluationComments}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comments': this.comments,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing AICC's cmi.evaluation.comments object\n */\nclass CMIEvaluationComments extends CMIArray {\n /**\n * Constructor for AICC Evaluation Comments object\n */\n constructor() {\n super({\n children: aicc_constants.comments_children,\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n });\n }\n}\n\n/**\n * StudentPreferences class for AICC\n */\nclass AICCStudentPreferences extends Scorm12CMI.CMIStudentPreference {\n /**\n * Constructor for AICC Student Preferences object\n */\n constructor() {\n super(aicc_constants.student_preference_children);\n\n this.windows = new CMIArray({\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n children: '',\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.windows?.initialize();\n }\n\n #lesson_type = '';\n #text_color = '';\n #text_location = '';\n #text_size = '';\n #video = '';\n\n /**\n * Getter for #lesson_type\n * @return {string}\n */\n get lesson_type(): string {\n return this.#lesson_type;\n }\n\n /**\n * Setter for #lesson_type\n * @param {string} lesson_type\n */\n set lesson_type(lesson_type: string) {\n if (checkAICCValidFormat(lesson_type, aicc_regex.CMIString256)) {\n this.#lesson_type = lesson_type;\n }\n }\n\n /**\n * Getter for #text_color\n * @return {string}\n */\n get text_color(): string {\n return this.#text_color;\n }\n\n /**\n * Setter for #text_color\n * @param {string} text_color\n */\n set text_color(text_color: string) {\n if (checkAICCValidFormat(text_color, aicc_regex.CMIString256)) {\n this.#text_color = text_color;\n }\n }\n\n /**\n * Getter for #text_location\n * @return {string}\n */\n get text_location(): string {\n return this.#text_location;\n }\n\n /**\n * Setter for #text_location\n * @param {string} text_location\n */\n set text_location(text_location: string) {\n if (checkAICCValidFormat(text_location, aicc_regex.CMIString256)) {\n this.#text_location = text_location;\n }\n }\n\n /**\n * Getter for #text_size\n * @return {string}\n */\n get text_size(): string {\n return this.#text_size;\n }\n\n /**\n * Setter for #text_size\n * @param {string} text_size\n */\n set text_size(text_size: string) {\n if (checkAICCValidFormat(text_size, aicc_regex.CMIString256)) {\n this.#text_size = text_size;\n }\n }\n\n /**\n * Getter for #video\n * @return {string}\n */\n get video(): string {\n return this.#video;\n }\n\n /**\n * Setter for #video\n * @param {string} video\n */\n set video(video: string) {\n if (checkAICCValidFormat(video, aicc_regex.CMIString256)) {\n this.#video = video;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'lesson_type': this.lesson_type,\n 'speed': this.speed,\n 'text': this.text,\n 'text_color': this.text_color,\n 'text_location': this.text_location,\n 'text_size': this.text_size,\n 'video': this.video,\n 'windows': this.windows,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * StudentData class for AICC\n */\nclass AICCCMIStudentData extends Scorm12CMI.CMIStudentData {\n /**\n * Constructor for AICC StudentData object\n */\n constructor() {\n super(aicc_constants.student_data_children);\n\n this.tries = new CMITries();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.tries?.initialize();\n }\n\n #tries_during_lesson = '';\n\n /**\n * Getter for tries_during_lesson\n * @return {string}\n */\n get tries_during_lesson() {\n return this.#tries_during_lesson;\n }\n\n /**\n * Setter for #tries_during_lesson. Sets an error if trying to set after\n * initialization.\n * @param {string} tries_during_lesson\n */\n set tries_during_lesson(tries_during_lesson) {\n !this.initialized ?\n this.#tries_during_lesson = tries_during_lesson :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data object\n * @return {\n * {\n * mastery_score: string,\n * max_time_allowed: string,\n * time_limit_action: string,\n * tries: CMITries\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n 'tries': this.tries,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_demographics object\n */\nexport class CMIStudentDemographics extends BaseCMI {\n /**\n * Constructor for AICC StudentDemographics object\n */\n constructor() {\n super();\n }\n\n #_children = aicc_constants.student_demographics_children;\n #city = '';\n #class = '';\n #company = '';\n #country = '';\n #experience = '';\n #familiar_name = '';\n #instructor_name = '';\n #title = '';\n #native_language = '';\n #state = '';\n #street_address = '';\n #telephone = '';\n #years_experience = '';\n\n /**\n * Getter for _children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Getter for city\n * @return {string}\n */\n get city() {\n return this.#city;\n }\n\n /**\n * Setter for #city. Sets an error if trying to set after\n * initialization.\n * @param {string} city\n */\n set city(city) {\n !this.initialized ?\n this.#city = city :\n throwReadOnlyError();\n }\n\n /**\n * Getter for class\n * @return {string}\n */\n get class() {\n return this.#class;\n }\n\n /**\n * Setter for #class. Sets an error if trying to set after\n * initialization.\n * @param {string} clazz\n */\n set class(clazz) {\n !this.initialized ?\n this.#class = clazz :\n throwReadOnlyError();\n }\n\n /**\n * Getter for company\n * @return {string}\n */\n get company() {\n return this.#company;\n }\n\n /**\n * Setter for #company. Sets an error if trying to set after\n * initialization.\n * @param {string} company\n */\n set company(company) {\n !this.initialized ?\n this.#company = company :\n throwReadOnlyError();\n }\n\n /**\n * Getter for country\n * @return {string}\n */\n get country() {\n return this.#country;\n }\n\n /**\n * Setter for #country. Sets an error if trying to set after\n * initialization.\n * @param {string} country\n */\n set country(country) {\n !this.initialized ?\n this.#country = country :\n throwReadOnlyError();\n }\n\n /**\n * Getter for experience\n * @return {string}\n */\n get experience() {\n return this.#experience;\n }\n\n /**\n * Setter for #experience. Sets an error if trying to set after\n * initialization.\n * @param {string} experience\n */\n set experience(experience) {\n !this.initialized ?\n this.#experience = experience :\n throwReadOnlyError();\n }\n\n /**\n * Getter for familiar_name\n * @return {string}\n */\n get familiar_name() {\n return this.#familiar_name;\n }\n\n /**\n * Setter for #familiar_name. Sets an error if trying to set after\n * initialization.\n * @param {string} familiar_name\n */\n set familiar_name(familiar_name) {\n !this.initialized ?\n this.#familiar_name = familiar_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for instructor_name\n * @return {string}\n */\n get instructor_name() {\n return this.#instructor_name;\n }\n\n /**\n * Setter for #instructor_name. Sets an error if trying to set after\n * initialization.\n * @param {string} instructor_name\n */\n set instructor_name(instructor_name) {\n !this.initialized ?\n this.#instructor_name = instructor_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for title\n * @return {string}\n */\n get title() {\n return this.#title;\n }\n\n /**\n * Setter for #title. Sets an error if trying to set after\n * initialization.\n * @param {string} title\n */\n set title(title) {\n !this.initialized ?\n this.#title = title :\n throwReadOnlyError();\n }\n\n /**\n * Getter for native_language\n * @return {string}\n */\n get native_language() {\n return this.#native_language;\n }\n\n /**\n * Setter for #native_language. Sets an error if trying to set after\n * initialization.\n * @param {string} native_language\n */\n set native_language(native_language) {\n !this.initialized ?\n this.#native_language = native_language :\n throwReadOnlyError();\n }\n\n /**\n * Getter for state\n * @return {string}\n */\n get state() {\n return this.#state;\n }\n\n /**\n * Setter for #state. Sets an error if trying to set after\n * initialization.\n * @param {string} state\n */\n set state(state) {\n !this.initialized ?\n this.#state = state :\n throwReadOnlyError();\n }\n\n /**\n * Getter for street_address\n * @return {string}\n */\n get street_address() {\n return this.#street_address;\n }\n\n /**\n * Setter for #street_address. Sets an error if trying to set after\n * initialization.\n * @param {string} street_address\n */\n set street_address(street_address) {\n !this.initialized ?\n this.#street_address = street_address :\n throwReadOnlyError();\n }\n\n /**\n * Getter for telephone\n * @return {string}\n */\n get telephone() {\n return this.#telephone;\n }\n\n /**\n * Setter for #telephone. Sets an error if trying to set after\n * initialization.\n * @param {string} telephone\n */\n set telephone(telephone) {\n !this.initialized ?\n this.#telephone = telephone :\n throwReadOnlyError();\n }\n\n /**\n * Getter for years_experience\n * @return {string}\n */\n get years_experience() {\n return this.#years_experience;\n }\n\n /**\n * Setter for #years_experience. Sets an error if trying to set after\n * initialization.\n * @param {string} years_experience\n */\n set years_experience(years_experience) {\n !this.initialized ?\n this.#years_experience = years_experience :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_demographics object\n * @return {\n * {\n * city: string,\n * class: string,\n * company: string,\n * country: string,\n * experience: string,\n * familiar_name: string,\n * instructor_name: string,\n * title: string,\n * native_language: string,\n * state: string,\n * street_address: string,\n * telephone: string,\n * years_experience: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'city': this.city,\n 'class': this.class,\n 'company': this.company,\n 'country': this.country,\n 'experience': this.experience,\n 'familiar_name': this.familiar_name,\n 'instructor_name': this.instructor_name,\n 'title': this.title,\n 'native_language': this.native_language,\n 'state': this.state,\n 'street_address': this.street_address,\n 'telephone': this.telephone,\n 'years_experience': this.years_experience,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.paths object\n */\nexport class CMIPaths extends CMIArray {\n /**\n * Constructor for inline Paths Array class\n */\n constructor() {\n super({children: aicc_constants.paths_children});\n }\n}\n\n/**\n * Class for AICC Paths\n */\nexport class CMIPathsObject extends BaseCMI {\n /**\n * Constructor for AICC Paths objects\n */\n constructor() {\n super();\n }\n\n #location_id = '';\n #date = '';\n #time = '';\n #status = '';\n #why_left = '';\n #time_in_element = '';\n\n /**\n * Getter for #location_id\n * @return {string}\n */\n get location_id() {\n return this.#location_id;\n }\n\n /**\n * Setter for #location_id\n * @param {string} location_id\n */\n set location_id(location_id) {\n if (checkAICCValidFormat(location_id, aicc_regex.CMIString256)) {\n this.#location_id = location_id;\n }\n }\n\n /**\n * Getter for #date\n * @return {string}\n */\n get date() {\n return this.#date;\n }\n\n /**\n * Setter for #date\n * @param {string} date\n */\n set date(date) {\n if (checkAICCValidFormat(date, aicc_regex.CMIString256)) {\n this.#date = date;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #why_left\n * @return {string}\n */\n get why_left() {\n return this.#why_left;\n }\n\n /**\n * Setter for #why_left\n * @param {string} why_left\n */\n set why_left(why_left) {\n if (checkAICCValidFormat(why_left, aicc_regex.CMIString256)) {\n this.#why_left = why_left;\n }\n }\n\n /**\n * Getter for #time_in_element\n * @return {string}\n */\n get time_in_element() {\n return this.#time_in_element;\n }\n\n /**\n * Setter for #time_in_element\n * @param {string} time_in_element\n */\n set time_in_element(time_in_element) {\n if (checkAICCValidFormat(time_in_element, aicc_regex.CMITime)) {\n this.#time_in_element = time_in_element;\n }\n }\n\n /**\n * toJSON for cmi.paths.n object\n * @return {\n * {\n * location_id: string,\n * date: string,\n * time: string,\n * status: string,\n * why_left: string,\n * time_in_element: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'location_id': this.location_id,\n 'date': this.date,\n 'time': this.time,\n 'status': this.status,\n 'why_left': this.why_left,\n 'time_in_element': this.time_in_element,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_data.tries object\n */\nexport class CMITries extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.tries_children});\n }\n}\n\n/**\n * Class for AICC Tries\n */\nexport class CMITriesObject extends BaseCMI {\n /**\n * Constructor for AICC Tries object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #status = '';\n #time = '';\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.student_data.tries.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'status': this.status,\n 'time': this.time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for cmi.student_data.attempt_records array\n */\nexport class CMIAttemptRecords extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.attempt_records_children});\n }\n}\n\n/**\n * Class for AICC Attempt Records\n */\nexport class CMIAttemptRecordsObject extends BaseCMI {\n /**\n * Constructor for AICC Attempt Records object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #lesson_status = '';\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (checkAICCValidFormat(lesson_status, aicc_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n\n /**\n * toJSON for cmi.student_data.attempt_records.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'lesson_status': this.lesson_status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Evaluation Comments\n */\nexport class CMIEvaluationCommentsObject extends BaseCMI {\n /**\n * Constructor for Evaluation Comments\n */\n constructor() {\n super();\n }\n\n #content = '';\n #location = '';\n #time = '';\n\n /**\n * Getter for #content\n * @return {string}\n */\n get content() {\n return this.#content;\n }\n\n /**\n * Setter for #content\n * @param {string} content\n */\n set content(content) {\n if (checkAICCValidFormat(content, aicc_regex.CMIString256)) {\n this.#content = content;\n }\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (checkAICCValidFormat(location, aicc_regex.CMIString256)) {\n this.#location = location;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setting for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.evaulation.comments.n object\n * @return {\n * {\n * content: string,\n * location: string,\n * time: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'content': this.content,\n 'location': this.location,\n 'time': this.time,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Check if the value matches the proper format. If not, throw proper error code.\n *\n * @param {string} value\n * @param {string} regexPattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function checkValidFormat(\n value: String,\n regexPattern: String,\n errorCode: number,\n errorClass: function,\n allowEmptyString?: boolean) {\n const formatRegex = new RegExp(regexPattern);\n const matches = value.match(formatRegex);\n if (allowEmptyString && value === '') {\n return true;\n }\n if (value === undefined || !matches || matches[0] === '') {\n throw new errorClass.prototype.constructor(errorCode);\n }\n return true;\n}\n\n/**\n * Check if the value matches the proper range. If not, throw proper error code.\n *\n * @param {*} value\n * @param {string} rangePattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @return {boolean}\n */\nexport function checkValidRange(\n value: any,\n rangePattern: String,\n errorCode: number,\n errorClass: function) {\n const ranges = rangePattern.split('#');\n value = value * 1.0;\n if (value >= ranges[0]) {\n if ((ranges[1] === '*') || (value <= ranges[1])) {\n return true;\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n}\n\n/**\n * Base class for API cmi objects\n */\nexport class BaseCMI {\n jsonString = false;\n #initialized = false;\n #start_time;\n\n /**\n * Constructor for BaseCMI, just marks the class as abstract\n */\n constructor() {\n if (new.target === BaseCMI) {\n throw new TypeError('Cannot construct BaseCMI instances directly');\n }\n }\n\n /**\n * Getter for #initialized\n * @return {boolean}\n */\n get initialized() {\n return this.#initialized;\n }\n\n /**\n * Getter for #start_time\n * @return {Number}\n */\n get start_time() {\n return this.#start_time;\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n this.#initialized = true;\n }\n\n /**\n * Called when the player should override the 'session_time' provided by\n * the module\n */\n setStartTime() {\n this.#start_time = new Date().getTime();\n }\n}\n\n/**\n * Base class for cmi *.score objects\n */\nexport class CMIScore extends BaseCMI {\n /**\n * Constructor for *.score\n * @param {string} score_children\n * @param {string} score_range\n * @param {string} max\n * @param {number} invalidErrorCode\n * @param {number} invalidTypeCode\n * @param {number} invalidRangeCode\n * @param {string} decimalRegex\n * @param {class} errorClass\n */\n constructor(\n {\n score_children,\n score_range,\n max,\n invalidErrorCode,\n invalidTypeCode,\n invalidRangeCode,\n decimalRegex,\n errorClass,\n }) {\n super();\n\n this.#_children = score_children ||\n scorm12_constants.score_children;\n this.#_score_range = !score_range ? false : scorm12_regex.score_range;\n this.#max = (max || max === '') ? max : '100';\n this.#_invalid_error_code = invalidErrorCode ||\n scorm12_error_codes.INVALID_SET_VALUE;\n this.#_invalid_type_code = invalidTypeCode ||\n scorm12_error_codes.TYPE_MISMATCH;\n this.#_invalid_range_code = invalidRangeCode ||\n scorm12_error_codes.VALUE_OUT_OF_RANGE;\n this.#_decimal_regex = decimalRegex ||\n scorm12_regex.CMIDecimal;\n this.#_error_class = errorClass;\n }\n\n #_children;\n #_score_range;\n #_invalid_error_code;\n #_invalid_type_code;\n #_invalid_range_code;\n #_decimal_regex;\n #_error_class;\n #raw = '';\n #min = '';\n #max;\n\n /**\n * Getter for _children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throw new this.#_error_class.prototype.constructor(this.#_invalid_error_code);\n }\n\n /**\n * Getter for #raw\n * @return {string}\n */\n get raw() {\n return this.#raw;\n }\n\n /**\n * Setter for #raw\n * @param {string} raw\n */\n set raw(raw) {\n if (checkValidFormat(raw, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(raw, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#raw = raw;\n }\n }\n\n /**\n * Getter for #min\n * @return {string}\n */\n get min() {\n return this.#min;\n }\n\n /**\n * Setter for #min\n * @param {string} min\n */\n set min(min) {\n if (checkValidFormat(min, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(min, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#min = min;\n }\n }\n\n /**\n * Getter for #max\n * @return {string}\n */\n get max() {\n return this.#max;\n }\n\n /**\n * Setter for #max\n * @param {string} max\n */\n set max(max) {\n if (checkValidFormat(max, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(max, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#max = max;\n }\n }\n\n /**\n * toJSON for *.score\n * @return {{min: string, max: string, raw: string}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'raw': this.raw,\n 'min': this.min,\n 'max': this.max,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Base class for cmi *.n objects\n */\nexport class CMIArray extends BaseCMI {\n /**\n * Constructor cmi *.n arrays\n * @param {string} children\n * @param {number} errorCode\n * @param {class} errorClass\n */\n constructor({children, errorCode, errorClass}) {\n super();\n this.#_children = children;\n this.#errorCode = errorCode;\n this.#errorClass = errorClass;\n this.childArray = [];\n }\n\n #errorCode;\n #errorClass;\n #_children;\n\n /**\n * Getter for _children\n * @return {*}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * Getter for _count\n * @return {number}\n */\n get _count() {\n return this.childArray.length;\n }\n\n /**\n * Setter for _count. Just throws an error.\n * @param {number} _count\n */\n set _count(_count) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * toJSON for *.n arrays\n * @return {object}\n */\n toJSON() {\n this.jsonString = true;\n const result = {};\n for (let i = 0; i < this.childArray.length; i++) {\n result[i + ''] = this.childArray[i];\n }\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport {\n BaseCMI,\n checkValidFormat,\n checkValidRange,\n CMIArray,\n CMIScore,\n} from './common';\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\nimport {Scorm12ValidationError} from '../exceptions';\nimport * as Utilities from '../utilities';\nimport * as Util from '../utilities';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nexport function throwReadOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Write Only error\n */\nexport function throwWriteOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.WRITE_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Invalid Set error\n */\nfunction throwInvalidValueError() {\n throw new Scorm12ValidationError(scorm12_error_codes.INVALID_SET_VALUE);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n scorm12_error_codes.TYPE_MISMATCH,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} rangePattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidRange(\n value: any,\n rangePattern: String,\n allowEmptyString?: boolean) {\n return checkValidRange(\n value,\n rangePattern,\n scorm12_error_codes.VALUE_OUT_OF_RANGE,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Class representing the cmi object for SCORM 1.2\n */\nexport class CMI extends BaseCMI {\n #_children = '';\n #_version = '3.4';\n #launch_data = '';\n #comments = '';\n #comments_from_lms = '';\n\n student_data = null;\n\n /**\n * Constructor for the SCORM 1.2 cmi object\n * @param {string} cmi_children\n * @param {(CMIStudentData|AICCCMIStudentData)} student_data\n * @param {boolean} initialized\n */\n constructor(cmi_children, student_data, initialized: boolean) {\n super();\n\n if (initialized) this.initialize();\n\n this.#_children = cmi_children ?\n cmi_children :\n scorm12_constants.cmi_children;\n this.core = new CMICore();\n this.objectives = new CMIObjectives();\n this.student_data = student_data ? student_data : new CMIStudentData();\n this.student_preference = new CMIStudentPreference();\n this.interactions = new CMIInteractions();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.core?.initialize();\n this.objectives?.initialize();\n this.student_data?.initialize();\n this.student_preference?.initialize();\n this.interactions?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'interactions': this.interactions,\n };\n delete this.jsonString;\n return result;\n }\n\n /**\n * Getter for #_version\n * @return {string}\n */\n get _version() {\n return this.#_version;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _version\n */\n set _version(_version) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #_children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.core?.suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (this.core) {\n this.core.suspend_data = suspend_data;\n }\n }\n\n /**\n * Getter for #launch_data\n * @return {string}\n */\n get launch_data() {\n return this.#launch_data;\n }\n\n /**\n * Setter for #launch_data. Can only be called before initialization.\n * @param {string} launch_data\n */\n set launch_data(launch_data) {\n !this.initialized ? this.#launch_data = launch_data : throwReadOnlyError();\n }\n\n /**\n * Getter for #comments\n * @return {string}\n */\n get comments() {\n return this.#comments;\n }\n\n /**\n * Setter for #comments\n * @param {string} comments\n */\n set comments(comments) {\n if (check12ValidFormat(comments, scorm12_regex.CMIString4096, true)) {\n this.#comments = comments;\n }\n }\n\n /**\n * Getter for #comments_from_lms\n * @return {string}\n */\n get comments_from_lms() {\n return this.#comments_from_lms;\n }\n\n /**\n * Setter for #comments_from_lms. Can only be called before initialization.\n * @param {string} comments_from_lms\n */\n set comments_from_lms(comments_from_lms) {\n !this.initialized ?\n this.#comments_from_lms = comments_from_lms :\n throwReadOnlyError();\n }\n\n /**\n * Adds the current session time to the existing total time.\n *\n * @return {string}\n */\n getCurrentTotalTime() {\n return this.core.getCurrentTotalTime(this.start_time);\n }\n}\n\n/**\n * Class representing the cmi.core object\n * @extends BaseCMI\n */\nclass CMICore extends BaseCMI {\n /**\n * Constructor for cmi.core\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #_children = scorm12_constants.core_children;\n #student_id = '';\n #student_name = '';\n #lesson_location = '';\n #credit = '';\n #lesson_status = 'not attempted';\n #entry = '';\n #total_time = '';\n #lesson_mode = 'normal';\n #exit = '';\n #session_time = '00:00:00';\n #suspend_data = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #student_id\n * @return {string}\n */\n get student_id() {\n return this.#student_id;\n }\n\n /**\n * Setter for #student_id. Can only be called before initialization.\n * @param {string} student_id\n */\n set student_id(student_id) {\n !this.initialized ? this.#student_id = student_id : throwReadOnlyError();\n }\n\n /**\n * Getter for #student_name\n * @return {string}\n */\n get student_name() {\n return this.#student_name;\n }\n\n /**\n * Setter for #student_name. Can only be called before initialization.\n * @param {string} student_name\n */\n set student_name(student_name) {\n !this.initialized ?\n this.#student_name = student_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_location\n * @return {string}\n */\n get lesson_location() {\n return this.#lesson_location;\n }\n\n /**\n * Setter for #lesson_location\n * @param {string} lesson_location\n */\n set lesson_location(lesson_location) {\n if (check12ValidFormat(lesson_location, scorm12_regex.CMIString256, true)) {\n this.#lesson_location = lesson_location;\n }\n }\n\n /**\n * Getter for #credit\n * @return {string}\n */\n get credit() {\n return this.#credit;\n }\n\n /**\n * Setter for #credit. Can only be called before initialization.\n * @param {string} credit\n */\n set credit(credit) {\n !this.initialized ? this.#credit = credit : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (this.initialized) {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus)) {\n this.#lesson_status = lesson_status;\n }\n } else {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n }\n\n /**\n * Getter for #entry\n * @return {string}\n */\n get entry() {\n return this.#entry;\n }\n\n /**\n * Setter for #entry. Can only be called before initialization.\n * @param {string} entry\n */\n set entry(entry) {\n !this.initialized ? this.#entry = entry : throwReadOnlyError();\n }\n\n /**\n * Getter for #total_time\n * @return {string}\n */\n get total_time() {\n return this.#total_time;\n }\n\n /**\n * Setter for #total_time. Can only be called before initialization.\n * @param {string} total_time\n */\n set total_time(total_time) {\n !this.initialized ? this.#total_time = total_time : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_mode\n * @return {string}\n */\n get lesson_mode() {\n return this.#lesson_mode;\n }\n\n /**\n * Setter for #lesson_mode. Can only be called before initialization.\n * @param {string} lesson_mode\n */\n set lesson_mode(lesson_mode) {\n !this.initialized ? this.#lesson_mode = lesson_mode : throwReadOnlyError();\n }\n\n /**\n * Getter for #exit. Should only be called during JSON export.\n * @return {*}\n */\n get exit() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#exit;\n }\n\n /**\n * Setter for #exit\n * @param {string} exit\n */\n set exit(exit) {\n if (check12ValidFormat(exit, scorm12_regex.CMIExit, true)) {\n this.#exit = exit;\n }\n }\n\n /**\n * Getter for #session_time. Should only be called during JSON export.\n * @return {*}\n */\n get session_time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#session_time;\n }\n\n /**\n * Setter for #session_time\n * @param {string} session_time\n */\n set session_time(session_time) {\n if (check12ValidFormat(session_time, scorm12_regex.CMITimespan)) {\n this.#session_time = session_time;\n }\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.#suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (check12ValidFormat(suspend_data, scorm12_regex.CMIString4096, true)) {\n this.#suspend_data = suspend_data;\n }\n }\n\n /**\n * Adds the current session time to the existing total time.\n * @param {Number} start_time\n * @return {string}\n */\n getCurrentTotalTime(start_time: Number) {\n let sessionTime = this.#session_time;\n const startTime = start_time;\n\n if (typeof startTime !== 'undefined' && startTime !== null) {\n const seconds = new Date().getTime() - startTime;\n sessionTime = Util.getSecondsAsHHMMSS(seconds / 1000);\n }\n\n return Utilities.addHHMMSSTimeStrings(\n this.#total_time,\n sessionTime,\n new RegExp(scorm12_regex.CMITimespan),\n );\n }\n\n /**\n * toJSON for cmi.core\n *\n * @return {\n * {\n * student_name: string,\n * entry: string,\n * exit: string,\n * score: CMIScore,\n * student_id: string,\n * lesson_mode: string,\n * lesson_location: string,\n * lesson_status: string,\n * credit: string,\n * session_time: *\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'student_id': this.student_id,\n 'student_name': this.student_name,\n 'lesson_location': this.lesson_location,\n 'credit': this.credit,\n 'lesson_status': this.lesson_status,\n 'entry': this.entry,\n 'lesson_mode': this.lesson_mode,\n 'exit': this.exit,\n 'session_time': this.session_time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives object\n * @extends CMIArray\n */\nclass CMIObjectives extends CMIArray {\n /**\n * Constructor for cmi.objectives\n */\n constructor() {\n super({\n children: scorm12_constants.objectives_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_data object\n * @extends BaseCMI\n */\nexport class CMIStudentData extends BaseCMI {\n #_children;\n #mastery_score = '';\n #max_time_allowed = '';\n #time_limit_action = '';\n\n /**\n * Constructor for cmi.student_data\n * @param {string} student_data_children\n */\n constructor(student_data_children) {\n super();\n\n this.#_children = student_data_children ?\n student_data_children :\n scorm12_constants.student_data_children;\n }\n\n /**\n * Getter for #_children\n * @return {*}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #master_score\n * @return {string}\n */\n get mastery_score() {\n return this.#mastery_score;\n }\n\n /**\n * Setter for #master_score. Can only be called before initialization.\n * @param {string} mastery_score\n */\n set mastery_score(mastery_score) {\n !this.initialized ?\n this.#mastery_score = mastery_score :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #max_time_allowed\n * @return {string}\n */\n get max_time_allowed() {\n return this.#max_time_allowed;\n }\n\n /**\n * Setter for #max_time_allowed. Can only be called before initialization.\n * @param {string} max_time_allowed\n */\n set max_time_allowed(max_time_allowed) {\n !this.initialized ?\n this.#max_time_allowed = max_time_allowed :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #time_limit_action\n * @return {string}\n */\n get time_limit_action() {\n return this.#time_limit_action;\n }\n\n /**\n * Setter for #time_limit_action. Can only be called before initialization.\n * @param {string} time_limit_action\n */\n set time_limit_action(time_limit_action) {\n !this.initialized ?\n this.#time_limit_action = time_limit_action :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data\n *\n * @return {\n * {\n * max_time_allowed: string,\n * time_limit_action: string,\n * mastery_score: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_preference object\n * @extends BaseCMI\n */\nexport class CMIStudentPreference extends BaseCMI {\n #_children;\n\n /**\n * Constructor for cmi.student_preference\n * @param {string} student_preference_children\n */\n constructor(student_preference_children) {\n super();\n\n this.#_children = student_preference_children ?\n student_preference_children :\n scorm12_constants.student_preference_children;\n }\n\n #audio = '';\n #language = '';\n #speed = '';\n #text = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #audio\n * @return {string}\n */\n get audio() {\n return this.#audio;\n }\n\n /**\n * Setter for #audio\n * @param {string} audio\n */\n set audio(audio) {\n if (check12ValidFormat(audio, scorm12_regex.CMISInteger) &&\n check12ValidRange(audio, scorm12_regex.audio_range)) {\n this.#audio = audio;\n }\n }\n\n /**\n * Getter for #language\n * @return {string}\n */\n get language() {\n return this.#language;\n }\n\n /**\n * Setter for #language\n * @param {string} language\n */\n set language(language) {\n if (check12ValidFormat(language, scorm12_regex.CMIString256)) {\n this.#language = language;\n }\n }\n\n /**\n * Getter for #speed\n * @return {string}\n */\n get speed() {\n return this.#speed;\n }\n\n /**\n * Setter for #speed\n * @param {string} speed\n */\n set speed(speed) {\n if (check12ValidFormat(speed, scorm12_regex.CMISInteger) &&\n check12ValidRange(speed, scorm12_regex.speed_range)) {\n this.#speed = speed;\n }\n }\n\n /**\n * Getter for #text\n * @return {string}\n */\n get text() {\n return this.#text;\n }\n\n /**\n * Setter for #text\n * @param {string} text\n */\n set text(text) {\n if (check12ValidFormat(text, scorm12_regex.CMISInteger) &&\n check12ValidRange(text, scorm12_regex.text_range)) {\n this.#text = text;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'speed': this.speed,\n 'text': this.text,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions object\n * @extends BaseCMI\n */\nclass CMIInteractions extends CMIArray {\n /**\n * Constructor for cmi.interactions\n */\n constructor() {\n super({\n children: scorm12_constants.interactions_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n object\n */\n constructor() {\n super();\n\n this.objectives = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.objectives_children,\n });\n this.correct_responses = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.correct_responses_children,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.objectives?.initialize();\n this.correct_responses?.initialize();\n }\n\n #id = '';\n #time = '';\n #type = '';\n #weighting = '';\n #student_response = '';\n #result = '';\n #latency = '';\n\n /**\n * Getter for #id. Should only be called during JSON export.\n * @return {*}\n */\n get id() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #time. Should only be called during JSON export.\n * @return {*}\n */\n get time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (check12ValidFormat(time, scorm12_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #type. Should only be called during JSON export.\n * @return {*}\n */\n get type() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#type;\n }\n\n /**\n * Setter for #type\n * @param {string} type\n */\n set type(type) {\n if (check12ValidFormat(type, scorm12_regex.CMIType)) {\n this.#type = type;\n }\n }\n\n /**\n * Getter for #weighting. Should only be called during JSON export.\n * @return {*}\n */\n get weighting() {\n return (!this.jsonString) ?\n throwWriteOnlyError() :\n this.#weighting;\n }\n\n /**\n * Setter for #weighting\n * @param {string} weighting\n */\n set weighting(weighting) {\n if (check12ValidFormat(weighting, scorm12_regex.CMIDecimal) &&\n check12ValidRange(weighting, scorm12_regex.weighting_range)) {\n this.#weighting = weighting;\n }\n }\n\n /**\n * Getter for #student_response. Should only be called during JSON export.\n * @return {*}\n */\n get student_response() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#student_response;\n }\n\n /**\n * Setter for #student_response\n * @param {string} student_response\n */\n set student_response(student_response) {\n if (check12ValidFormat(student_response, scorm12_regex.CMIFeedback, true)) {\n this.#student_response = student_response;\n }\n }\n\n /**\n * Getter for #result. Should only be called during JSON export.\n * @return {*}\n */\n get result() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#result;\n }\n\n /**\n * Setter for #result\n * @param {string} result\n */\n set result(result) {\n if (check12ValidFormat(result, scorm12_regex.CMIResult)) {\n this.#result = result;\n }\n }\n\n /**\n * Getter for #latency. Should only be called during JSON export.\n * @return {*}\n */\n get latency() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#latency;\n }\n\n /**\n * Setter for #latency\n * @param {string} latency\n */\n set latency(latency) {\n if (check12ValidFormat(latency, scorm12_regex.CMITimespan)) {\n this.#latency = latency;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n\n *\n * @return {\n * {\n * id: string,\n * time: string,\n * type: string,\n * weighting: string,\n * student_response: string,\n * result: string,\n * latency: string,\n * objectives: CMIArray,\n * correct_responses: CMIArray\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'time': this.time,\n 'type': this.type,\n 'weighting': this.weighting,\n 'student_response': this.student_response,\n 'result': this.result,\n 'latency': this.latency,\n 'objectives': this.objectives,\n 'correct_responses': this.correct_responses,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.objectives.n\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n #id = '';\n #status = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #status\n * @return {\"\"}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (check12ValidFormat(status, scorm12_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * toJSON for cmi.objectives.n\n * @return {\n * {\n * id: string,\n * status: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'status': this.status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n.objectives.n\n */\n constructor() {\n super();\n }\n\n #id = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n.objectives.n\n * @return {\n * {\n * id: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.correct_responses.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsCorrectResponsesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.correct_responses.n\n */\n constructor() {\n super();\n }\n\n #pattern = '';\n\n /**\n * Getter for #pattern\n * @return {string}\n */\n get pattern() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#pattern;\n }\n\n /**\n * Setter for #pattern\n * @param {string} pattern\n */\n set pattern(pattern) {\n if (check12ValidFormat(pattern, scorm12_regex.CMIFeedback, true)) {\n this.#pattern = pattern;\n }\n }\n\n /**\n * toJSON for cmi.interactions.correct_responses.n\n * @return {\n * {\n * pattern: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'pattern': this.pattern,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Navigation object\n */\nexport class NAV extends BaseCMI {\n /**\n * Constructor for NAV object\n */\n constructor() {\n super();\n }\n\n #event = '';\n\n /**\n * Getter for #event\n * @return {string}\n */\n get event() {\n return this.#event;\n }\n\n /**\n * Setter for #event\n * @param {string} event\n */\n set event(event) {\n if (check12ValidFormat(event, scorm12_regex.NAVEvent)) {\n this.#event = event;\n }\n }\n\n /**\n * toJSON for nav object\n * @return {\n * {\n * event: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'event': this.event,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\n\nconst global = {\n SCORM_TRUE: 'true',\n SCORM_FALSE: 'false',\n STATE_NOT_INITIALIZED: 0,\n STATE_INITIALIZED: 1,\n STATE_TERMINATED: 2,\n LOG_LEVEL_DEBUG: 1,\n LOG_LEVEL_INFO: 2,\n LOG_LEVEL_WARNING: 3,\n LOG_LEVEL_ERROR: 4,\n LOG_LEVEL_NONE: 5,\n};\n\nconst scorm12 = {\n // Children lists\n cmi_children: 'core,suspend_data,launch_data,comments,objectives,student_data,student_preference,interactions',\n core_children: 'student_id,student_name,lesson_location,credit,lesson_status,entry,score,total_time,lesson_mode,exit,session_time',\n score_children: 'raw,min,max',\n comments_children: 'content,location,time',\n objectives_children: 'id,score,status',\n correct_responses_children: 'pattern',\n student_data_children: 'mastery_score,max_time_allowed,time_limit_action',\n student_preference_children: 'audio,language,speed,text',\n interactions_children: 'id,objectives,time,type,correct_responses,weighting,student_response,result,latency',\n\n error_descriptions: {\n '101': {\n basicMessage: 'General Exception',\n detailMessage: 'No specific error code exists to describe the error. Use LMSGetDiagnostic for more information',\n },\n '201': {\n basicMessage: 'Invalid argument error',\n detailMessage: 'Indicates that an argument represents an invalid data model element or is otherwise incorrect.',\n },\n '202': {\n basicMessage: 'Element cannot have children',\n detailMessage: 'Indicates that LMSGetValue was called with a data model element name that ends in \"_children\" for a data model element that does not support the \"_children\" suffix.',\n },\n '203': {\n basicMessage: 'Element not an array - cannot have count',\n detailMessage: 'Indicates that LMSGetValue was called with a data model element name that ends in \"_count\" for a data model element that does not support the \"_count\" suffix.',\n },\n '301': {\n basicMessage: 'Not initialized',\n detailMessage: 'Indicates that an API call was made before the call to lmsInitialize.',\n },\n '401': {\n basicMessage: 'Not implemented error',\n detailMessage: 'The data model element indicated in a call to LMSGetValue or LMSSetValue is valid, but was not implemented by this LMS. SCORM 1.2 defines a set of data model elements as being optional for an LMS to implement.',\n },\n '402': {\n basicMessage: 'Invalid set value, element is a keyword',\n detailMessage: 'Indicates that LMSSetValue was called on a data model element that represents a keyword (elements that end in \"_children\" and \"_count\").',\n },\n '403': {\n basicMessage: 'Element is read only',\n detailMessage: 'LMSSetValue was called with a data model element that can only be read.',\n },\n '404': {\n basicMessage: 'Element is write only',\n detailMessage: 'LMSGetValue was called on a data model element that can only be written to.',\n },\n '405': {\n basicMessage: 'Incorrect Data Type',\n detailMessage: 'LMSSetValue was called with a value that is not consistent with the data format of the supplied data model element.',\n },\n '407': {\n basicMessage: 'Element Value Out Of Range',\n detailMessage: 'The numeric value supplied to a LMSSetValue call is outside of the numeric range allowed for the supplied data model element.',\n },\n '408': {\n basicMessage: 'Data Model Dependency Not Established',\n detailMessage: 'Some data model elements cannot be set until another data model element was set. This error condition indicates that the prerequisite element was not set before the dependent element.',\n },\n },\n};\n\nconst aicc = {\n ...scorm12, ...{\n cmi_children: 'core,suspend_data,launch_data,comments,objectives,student_data,student_preference,interactions,evaluation',\n student_preference_children: 'audio,language,lesson_type,speed,text,text_color,text_location,text_size,video,windows',\n student_data_children: 'attempt_number,tries,mastery_score,max_time_allowed,time_limit_action',\n student_demographics_children: 'city,class,company,country,experience,familiar_name,instructor_name,title,native_language,state,street_address,telephone,years_experience',\n tries_children: 'time,status,score',\n attempt_records_children: 'score,lesson_status',\n paths_children: 'location_id,date,time,status,why_left,time_in_element',\n },\n};\n\nconst scorm2004 = {\n // Children lists\n cmi_children: '_version,comments_from_learner,comments_from_lms,completion_status,credit,entry,exit,interactions,launch_data,learner_id,learner_name,learner_preference,location,max_time_allowed,mode,objectives,progress_measure,scaled_passing_score,score,session_time,success_status,suspend_data,time_limit_action,total_time',\n comments_children: 'comment,timestamp,location',\n score_children: 'max,raw,scaled,min',\n objectives_children: 'progress_measure,completion_status,success_status,description,score,id',\n correct_responses_children: 'pattern',\n student_data_children: 'mastery_score,max_time_allowed,time_limit_action',\n student_preference_children: 'audio_level,audio_captioning,delivery_speed,language',\n interactions_children: 'id,type,objectives,timestamp,correct_responses,weighting,learner_response,result,latency,description',\n\n error_descriptions: {\n '0': {\n basicMessage: 'No Error',\n detailMessage: 'No error occurred, the previous API call was successful.',\n },\n '101': {\n basicMessage: 'General Exception',\n detailMessage: 'No specific error code exists to describe the error. Use GetDiagnostic for more information.',\n },\n '102': {\n basicMessage: 'General Initialization Failure',\n detailMessage: 'Call to Initialize failed for an unknown reason.',\n },\n '103': {\n basicMessage: 'Already Initialized',\n detailMessage: 'Call to Initialize failed because Initialize was already called.',\n },\n '104': {\n basicMessage: 'Content Instance Terminated',\n detailMessage: 'Call to Initialize failed because Terminate was already called.',\n },\n '111': {\n basicMessage: 'General Termination Failure',\n detailMessage: 'Call to Terminate failed for an unknown reason.',\n },\n '112': {\n basicMessage: 'Termination Before Initialization',\n detailMessage: 'Call to Terminate failed because it was made before the call to Initialize.',\n },\n '113': {\n basicMessage: 'Termination After Termination',\n detailMessage: 'Call to Terminate failed because Terminate was already called.',\n },\n '122': {\n basicMessage: 'Retrieve Data Before Initialization',\n detailMessage: 'Call to GetValue failed because it was made before the call to Initialize.',\n },\n '123': {\n basicMessage: 'Retrieve Data After Termination',\n detailMessage: 'Call to GetValue failed because it was made after the call to Terminate.',\n },\n '132': {\n basicMessage: 'Store Data Before Initialization',\n detailMessage: 'Call to SetValue failed because it was made before the call to Initialize.',\n },\n '133': {\n basicMessage: 'Store Data After Termination',\n detailMessage: 'Call to SetValue failed because it was made after the call to Terminate.',\n },\n '142': {\n basicMessage: 'Commit Before Initialization',\n detailMessage: 'Call to Commit failed because it was made before the call to Initialize.',\n },\n '143': {\n basicMessage: 'Commit After Termination',\n detailMessage: 'Call to Commit failed because it was made after the call to Terminate.',\n },\n '201': {\n basicMessage: 'General Argument Error',\n detailMessage: 'An invalid argument was passed to an API method (usually indicates that Initialize, Commit or Terminate did not receive the expected empty string argument.',\n },\n '301': {\n basicMessage: 'General Get Failure',\n detailMessage: 'Indicates a failed GetValue call where no other specific error code is applicable. Use GetDiagnostic for more information.',\n },\n '351': {\n basicMessage: 'General Set Failure',\n detailMessage: 'Indicates a failed SetValue call where no other specific error code is applicable. Use GetDiagnostic for more information.',\n },\n '391': {\n basicMessage: 'General Commit Failure',\n detailMessage: 'Indicates a failed Commit call where no other specific error code is applicable. Use GetDiagnostic for more information.',\n },\n '401': {\n basicMessage: 'Undefined Data Model Element',\n detailMessage: 'The data model element name passed to GetValue or SetValue is not a valid SCORM data model element.',\n },\n '402': {\n basicMessage: 'Unimplemented Data Model Element',\n detailMessage: 'The data model element indicated in a call to GetValue or SetValue is valid, but was not implemented by this LMS. In SCORM 2004, this error would indicate an LMS that is not fully SCORM conformant.',\n },\n '403': {\n basicMessage: 'Data Model Element Value Not Initialized',\n detailMessage: 'Attempt to read a data model element that has not been initialized by the LMS or through a SetValue call. This error condition is often reached during normal execution of a SCO.',\n },\n '404': {\n basicMessage: 'Data Model Element Is Read Only',\n detailMessage: 'SetValue was called with a data model element that can only be read.',\n },\n '405': {\n basicMessage: 'Data Model Element Is Write Only',\n detailMessage: 'GetValue was called on a data model element that can only be written to.',\n },\n '406': {\n basicMessage: 'Data Model Element Type Mismatch',\n detailMessage: 'SetValue was called with a value that is not consistent with the data format of the supplied data model element.',\n },\n '407': {\n basicMessage: 'Data Model Element Value Out Of Range',\n detailMessage: 'The numeric value supplied to a SetValue call is outside of the numeric range allowed for the supplied data model element.',\n },\n '408': {\n basicMessage: 'Data Model Dependency Not Established',\n detailMessage: 'Some data model elements cannot be set until another data model element was set. This error condition indicates that the prerequisite element was not set before the dependent element.',\n },\n },\n};\n\nconst APIConstants = {\n global: global,\n scorm12: scorm12,\n aicc: aicc,\n scorm2004: scorm2004,\n};\n\nexport default APIConstants;\n","// @flow\nconst global = {\n GENERAL: 101,\n INITIALIZATION_FAILED: 101,\n INITIALIZED: 101,\n TERMINATED: 101,\n TERMINATION_FAILURE: 101,\n TERMINATION_BEFORE_INIT: 101,\n MULTIPLE_TERMINATION: 101,\n RETRIEVE_BEFORE_INIT: 101,\n RETRIEVE_AFTER_TERM: 101,\n STORE_BEFORE_INIT: 101,\n STORE_AFTER_TERM: 101,\n COMMIT_BEFORE_INIT: 101,\n COMMIT_AFTER_TERM: 101,\n ARGUMENT_ERROR: 101,\n CHILDREN_ERROR: 101,\n COUNT_ERROR: 101,\n GENERAL_GET_FAILURE: 101,\n GENERAL_SET_FAILURE: 101,\n GENERAL_COMMIT_FAILURE: 101,\n UNDEFINED_DATA_MODEL: 101,\n UNIMPLEMENTED_ELEMENT: 101,\n VALUE_NOT_INITIALIZED: 101,\n INVALID_SET_VALUE: 101,\n READ_ONLY_ELEMENT: 101,\n WRITE_ONLY_ELEMENT: 101,\n TYPE_MISMATCH: 101,\n VALUE_OUT_OF_RANGE: 101,\n DEPENDENCY_NOT_ESTABLISHED: 101,\n};\n\nconst scorm12 = {\n ...global, ...{\n RETRIEVE_BEFORE_INIT: 301,\n STORE_BEFORE_INIT: 301,\n COMMIT_BEFORE_INIT: 301,\n ARGUMENT_ERROR: 201,\n CHILDREN_ERROR: 202,\n COUNT_ERROR: 203,\n UNDEFINED_DATA_MODEL: 401,\n UNIMPLEMENTED_ELEMENT: 401,\n VALUE_NOT_INITIALIZED: 301,\n INVALID_SET_VALUE: 402,\n READ_ONLY_ELEMENT: 403,\n WRITE_ONLY_ELEMENT: 404,\n TYPE_MISMATCH: 405,\n VALUE_OUT_OF_RANGE: 407,\n DEPENDENCY_NOT_ESTABLISHED: 408,\n },\n};\n\nconst scorm2004 = {\n ...global, ...{\n INITIALIZATION_FAILED: 102,\n INITIALIZED: 103,\n TERMINATED: 104,\n TERMINATION_FAILURE: 111,\n TERMINATION_BEFORE_INIT: 112,\n MULTIPLE_TERMINATIONS: 113,\n RETRIEVE_BEFORE_INIT: 122,\n RETRIEVE_AFTER_TERM: 123,\n STORE_BEFORE_INIT: 132,\n STORE_AFTER_TERM: 133,\n COMMIT_BEFORE_INIT: 142,\n COMMIT_AFTER_TERM: 143,\n ARGUMENT_ERROR: 201,\n GENERAL_GET_FAILURE: 301,\n GENERAL_SET_FAILURE: 351,\n GENERAL_COMMIT_FAILURE: 391,\n UNDEFINED_DATA_MODEL: 401,\n UNIMPLEMENTED_ELEMENT: 402,\n VALUE_NOT_INITIALIZED: 403,\n READ_ONLY_ELEMENT: 404,\n WRITE_ONLY_ELEMENT: 405,\n TYPE_MISMATCH: 406,\n VALUE_OUT_OF_RANGE: 407,\n DEPENDENCY_NOT_ESTABLISHED: 408,\n },\n};\n\nconst ErrorCodes = {\n scorm12: scorm12,\n scorm2004: scorm2004,\n};\n\nexport default ErrorCodes;\n","// @flow\n\nconst scorm12 = {\n CMIString256: '^.*$',\n CMIString4096: '^.*$',\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: '^.*$',\n CMIFeedback: '^.*$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMIStatus: '^(passed|completed|failed|incomplete|browsed)$',\n CMIStatus2: '^(passed|completed|failed|incomplete|browsed|not attempted)$',\n CMIExit: '^(time-out|suspend|logout|)$',\n CMIType: '^(true-false|choice|fill-in|matching|performance|sequencing|likert|numeric)$',\n CMIResult: '^(correct|wrong|unanticipated|neutral|([0-9]{0,3})?(\\\\.[0-9]*)?)$', // eslint-disable-line\n NAVEvent: '^(previous|continue)$',\n\n // Data ranges\n score_range: '0#100',\n audio_range: '-1#100',\n speed_range: '-100#100',\n weighting_range: '-100#100',\n text_range: '-1#1',\n};\n\nconst aicc = {\n ...scorm12, ...{\n CMIIdentifier: '^\\\\w{1,255}$',\n },\n};\n\nconst scorm2004 = {\n CMIString200: '^[\\\\u0000-\\\\uFFFF]{0,200}$',\n CMIString250: '^[\\\\u0000-\\\\uFFFF]{0,250}$',\n CMIString1000: '^[\\\\u0000-\\\\uFFFF]{0,1000}$',\n CMIString4000: '^[\\\\u0000-\\\\uFFFF]{0,4000}$',\n CMIString64000: '^[\\\\u0000-\\\\uFFFF]{0,64000}$',\n CMILang: '^([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?$|^$', // eslint-disable-line\n CMILangString250: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,250}$)?$', // eslint-disable-line\n CMILangcr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\}))(.*?)$', // eslint-disable-line\n CMILangString250cr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\})?(.{0,250})?)?$', // eslint-disable-line\n CMILangString4000: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,4000}$)?$', // eslint-disable-line\n CMITime: '^(19[7-9]{1}[0-9]{1}|20[0-2]{1}[0-9]{1}|203[0-8]{1})((-(0[1-9]{1}|1[0-2]{1}))((-(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1}))(T([0-1]{1}[0-9]{1}|2[0-3]{1})((:[0-5]{1}[0-9]{1})((:[0-5]{1}[0-9]{1})((\\\\.[0-9]{1,2})((Z|([+|-]([0-1]{1}[0-9]{1}|2[0-3]{1})))(:[0-5]{1}[0-9]{1})?)?)?)?)?)?)?)?$',\n CMITimespan: '^P(?:([.,\\\\d]+)Y)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)W)?(?:([.,\\\\d]+)D)?(?:T?(?:([.,\\\\d]+)H)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)S)?)?$',\n CMIInteger: '^\\\\d+$',\n CMISInteger: '^-?([0-9]+)$',\n CMIDecimal: '^-?([0-9]{1,5})(\\\\.[0-9]{1,18})?$',\n CMIIdentifier: '^\\\\S{1,250}[a-zA-Z0-9]$',\n CMIShortIdentifier: '^[\\\\w\\\\.\\\\-\\\\_]{1,250}$', // eslint-disable-line\n CMILongIdentifier: '^(?:(?!urn:)\\\\S{1,4000}|urn:[A-Za-z0-9-]{1,31}:\\\\S{1,4000}|.{1,4000})$', // need to re-examine this\n CMIFeedback: '^.*$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n CMIIndexStore: '.N(\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMICStatus: '^(completed|incomplete|not attempted|unknown)$',\n CMISStatus: '^(passed|failed|unknown)$',\n CMIExit: '^(time-out|suspend|logout|normal)$',\n CMIType: '^(true-false|choice|fill-in|long-fill-in|matching|performance|sequencing|likert|numeric|other)$',\n CMIResult: '^(correct|incorrect|unanticipated|neutral|-?([0-9]{1,4})(\\\\.[0-9]{1,18})?)$',\n NAVEvent: '^(previous|continue|exit|exitAll|abandon|abandonAll|suspendAll|\\{target=\\\\S{0,200}[a-zA-Z0-9]\\}choice|jump)$', // eslint-disable-line\n NAVBoolean: '^(unknown|true|false$)',\n NAVTarget: '^(previous|continue|choice.{target=\\\\S{0,200}[a-zA-Z0-9]})$',\n\n // Data ranges\n scaled_range: '-1#1',\n audio_range: '0#*',\n speed_range: '0#*',\n text_range: '-1#1',\n progress_range: '0#1',\n};\n\nconst Regex = {\n aicc: aicc,\n scorm12: scorm12,\n scorm2004: scorm2004,\n};\n\nexport default Regex;\n","// @flow\n\nimport APIConstants from './constants/api_constants';\n\nconst scorm12_errors = APIConstants.scorm12.error_descriptions;\nconst aicc_errors = APIConstants.aicc.error_descriptions;\nconst scorm2004_errors = APIConstants.scorm2004.error_descriptions;\n\n/**\n * Base Validation Exception\n */\nexport class ValidationError extends Error {\n /**\n * Constructor to take in an error message and code\n * @param {number} errorCode\n * @param {string} errorMessage\n * @param {string} detailedMessage\n */\n constructor(errorCode: number, errorMessage: String, detailedMessage: String) {\n super(errorMessage);\n this.#errorCode = errorCode;\n this.#errorMessage = errorMessage;\n this.#detailedMessage = detailedMessage;\n }\n\n #errorCode;\n #errorMessage;\n #detailedMessage;\n\n /**\n * Getter for #errorCode\n * @return {number}\n */\n get errorCode() {\n return this.#errorCode;\n }\n\n /**\n * Getter for #errorMessage\n * @return {string}\n */\n get errorMessage() {\n return this.#errorMessage;\n }\n\n /**\n * Getter for #detailedMessage\n * @return {string}\n */\n get detailedMessage() {\n return this.#detailedMessage;\n }\n}\n\n/**\n * SCORM 1.2 Validation Error\n */\nexport class Scorm12ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm12_errors, String(errorCode))) {\n super(errorCode, scorm12_errors[String(errorCode)].basicMessage, scorm12_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm12_errors['101'].basicMessage, scorm12_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * AICC Validation Error\n */\nexport class AICCValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(aicc_errors, String(errorCode))) {\n super(errorCode, aicc_errors[String(errorCode)].basicMessage, aicc_errors[String(errorCode)].detailMessage);\n } else {\n super(101, aicc_errors['101'].basicMessage, aicc_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * SCORM 2004 Validation Error\n */\nexport class Scorm2004ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {\n super(errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm2004_errors['101'].basicMessage, scorm2004_errors['101'].detailMessage);\n }\n }\n}\n","// @flow\nexport const SECONDS_PER_SECOND = 1.0;\nexport const SECONDS_PER_MINUTE = 60;\nexport const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE;\nexport const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;\n\nconst designations = [\n ['D', SECONDS_PER_DAY],\n ['H', SECONDS_PER_HOUR],\n ['M', SECONDS_PER_MINUTE],\n ['S', SECONDS_PER_SECOND],\n];\n\n/**\n * Converts a Number to a String of HH:MM:SS\n *\n * @param {Number} totalSeconds\n * @return {string}\n */\nexport function getSecondsAsHHMMSS(totalSeconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!totalSeconds || totalSeconds <= 0) {\n return '00:00:00';\n }\n\n const hours = Math.floor(totalSeconds / SECONDS_PER_HOUR);\n\n const dateObj = new Date(totalSeconds * 1000);\n const minutes = dateObj.getUTCMinutes();\n // make sure we add any possible decimal value\n const seconds = dateObj.getSeconds();\n const ms = totalSeconds % 1.0;\n let msStr = '';\n if (countDecimals(ms) > 0) {\n if (countDecimals(ms) > 2) {\n msStr = ms.toFixed(2);\n } else {\n msStr = String(ms);\n }\n msStr = '.' + msStr.split('.')[1];\n }\n\n return (hours + ':' + minutes + ':' + seconds).replace(/\\b\\d\\b/g,\n '0$&') + msStr;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {Number} seconds\n * @return {String}\n */\nexport function getSecondsAsISODuration(seconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!seconds || seconds <= 0) {\n return 'PT0S';\n }\n\n let duration = 'P';\n let remainder = seconds;\n\n designations.forEach(([sign, current_seconds]) => {\n let value = Math.floor(remainder / current_seconds);\n\n remainder = remainder % current_seconds;\n if (countDecimals(remainder) > 2) {\n remainder = Number(Number(remainder).toFixed(2));\n }\n // If we have anything left in the remainder, and we're currently adding\n // seconds to the duration, go ahead and add the decimal to the seconds\n if (sign === 'S' && remainder > 0) {\n value += remainder;\n }\n\n if (value) {\n if ((duration.indexOf('D') > 0 ||\n sign === 'H' || sign === 'M' || sign === 'S') &&\n duration.indexOf('T') === -1) {\n duration += 'T';\n }\n duration += `${value}${sign}`;\n }\n });\n\n return duration;\n}\n\n/**\n * Calculate the number of seconds from HH:MM:SS.DDDDDD\n *\n * @param {string} timeString\n * @param {RegExp} timeRegex\n * @return {number}\n */\nexport function getTimeAsSeconds(timeString: String, timeRegex: RegExp) {\n if (!timeString || typeof timeString !== 'string' ||\n !timeString.match(timeRegex)) {\n return 0;\n }\n const parts = timeString.split(':');\n const hours = Number(parts[0]);\n const minutes = Number(parts[1]);\n const seconds = Number(parts[2]);\n return (hours * 3600) + (minutes * 60) + seconds;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {string} duration\n * @param {RegExp} durationRegex\n * @return {number}\n */\nexport function getDurationAsSeconds(duration: String, durationRegex: RegExp) {\n if (!duration || !duration.match(durationRegex)) {\n return 0;\n }\n\n const [, years, months, , days, hours, minutes, seconds] = new RegExp(\n durationRegex).exec(duration) || [];\n\n let result = 0.0;\n\n result += (Number(seconds) * 1.0 || 0.0);\n result += (Number(minutes) * 60.0 || 0.0);\n result += (Number(hours) * 3600.0 || 0.0);\n result += (Number(days) * (60 * 60 * 24.0) || 0.0);\n result += (Number(years) * (60 * 60 * 24 * 365.0) || 0.0);\n\n return result;\n}\n\n/**\n * Adds together two ISO8601 Duration strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} durationRegex\n * @return {string}\n */\nexport function addTwoDurations(\n first: String,\n second: String,\n durationRegex: RegExp) {\n return getSecondsAsISODuration(\n getDurationAsSeconds(first, durationRegex) +\n getDurationAsSeconds(second, durationRegex),\n );\n}\n\n/**\n * Add together two HH:MM:SS.DD strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} timeRegex\n * @return {string}\n */\nexport function addHHMMSSTimeStrings(\n first: String,\n second: String,\n timeRegex: RegExp) {\n return getSecondsAsHHMMSS(\n getTimeAsSeconds(first, timeRegex) +\n getTimeAsSeconds(\n second, timeRegex),\n );\n}\n\n/**\n * Flatten a JSON object down to string paths for each values\n * @param {object} data\n * @return {object}\n */\nexport function flatten(data) {\n const result = {};\n\n /**\n * Recurse through the object\n * @param {*} cur\n * @param {*} prop\n */\n function recurse(cur, prop) {\n if (Object(cur) !== cur) {\n result[prop] = cur;\n } else if (Array.isArray(cur)) {\n for (let i = 0, l = cur.length; i < l; i++) {\n recurse(cur[i], prop + '[' + i + ']');\n if (l === 0) result[prop] = [];\n }\n } else {\n let isEmpty = true;\n for (const p in cur) {\n if ({}.hasOwnProperty.call(cur, p)) {\n isEmpty = false;\n recurse(cur[p], prop ? prop + '.' + p : p);\n }\n }\n if (isEmpty && prop) result[prop] = {};\n }\n }\n\n recurse(data, '');\n return result;\n}\n\n/**\n * Un-flatten a flat JSON object\n * @param {object} data\n * @return {object}\n */\nexport function unflatten(data) {\n 'use strict';\n if (Object(data) !== data || Array.isArray(data)) return data;\n const regex = /\\.?([^.[\\]]+)|\\[(\\d+)]/g;\n const result = {};\n for (const p in data) {\n if ({}.hasOwnProperty.call(data, p)) {\n let cur = result;\n let prop = '';\n let m = regex.exec(p);\n while (m) {\n cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));\n prop = m[2] || m[1];\n m = regex.exec(p);\n }\n cur[prop] = data[p];\n }\n }\n return result[''] || result;\n}\n\n/**\n * Counts the number of decimal places\n * @param {number} num\n * @return {number}\n */\nexport function countDecimals(num: number) {\n if (Math.floor(num) === num || String(num).indexOf('.') < 0) return 0;\n const parts = num.toString().split('.')[1];\n return parts.length || 0;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import AICC from '../AICC';\n\nwindow.AICC = AICC;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectProto","prototype","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","value","type","isObjectLike","isSymbol","call","other","valueOf","replace","isBinary","test","slice","module","exports","Scorm12API","CMI","CMIAttemptRecordsObject","CMIEvaluationCommentsObject","CMITriesObject","NAV","AICC","settings","finalSettings","mastery_override","cmi","nav","CMIElement","foundFirstIndex","newChild","stringMatches","newAPI","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","BaseAPI","error_codes","autocommit","autocommitSeconds","asyncCommit","sendBeaconCommit","lmsCommitUrl","dataCommitFormat","commitRequestDataType","autoProgress","logLevel","LOG_LEVEL_ERROR","selfReportSessionTime","alwaysSendTotalTime","strict_errors","xhrHeaders","xhrWithCredentials","responseHandler","xhr","JSON","parse","responseText","hasOwnProperty","status","SCORM_TRUE","errorCode","SCORM_FALSE","requestHandler","commitObject","onLogMessage","messageLevel","logMessage","console","error","LOG_LEVEL_WARNING","warn","LOG_LEVEL_INFO","info","LOG_LEVEL_DEBUG","debug","log","fetchKeepalive","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","apiLogLevel","callbackName","initializeMessage","terminationMessage","returnValue","isTerminated","throwSCORMError","TERMINATED","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","CMIErrorCode","getLmsErrorMessageDetails","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","str","tester","match","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","methodName","scorm2004","structure","split","invalidErrorMessage","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","_checkObjectHasProperty","isInitialized","validateCorrectResponse","index","isNaN","item","childArray","getChildElement","initialized","initialize","push","_foundFirstIndex","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","listenerName","callback","listenerFunctions","listenerSplit","removeIndex","findIndex","obj","splice","filter","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","json","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","key","sort","b","d","forEach","element","loadFromJSON","startingData","currentCMIElement","constructor","stringify","renderCMIToJSONString","_terminateCommit","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","fetch","method","body","headers","credentials","keepalive","when","ScheduledCommit","API","wrapper","bind","commit","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","Utilities","scorm12_constants","LMSInitialize","lmsInitialize","LMSFinish","lmsFinish","LMSGetValue","lmsGetValue","LMSSetValue","lmsSetValue","LMSCommit","lmsCommit","LMSGetLastError","lmsGetLastError","LMSGetErrorString","lmsGetErrorString","LMSGetDiagnostic","lmsGetDiagnostic","terminate","event","getValue","setValue","getLastError","getErrorString","getDiagnostic","_commonSetCMIValue","_commonGetCMIValue","detail","basicMessage","detailMessage","error_descriptions","terminateCommit","cmiExport","renderCMIToJSONObject","core","total_time","getCurrentTotalTime","flattened","flatten","originalStatus","lesson_status","lesson_mode","credit","student_data","mastery_score","score","raw","parseFloat","renderCommitCMI","processHttpRequest","Scorm12CMI","BaseCMI","checkValidFormat","CMIScore","Regex","AICCValidationError","aicc_constants","aicc","aicc_regex","aicc_error_codes","throwReadOnlyError","checkAICCValidFormat","regexPattern","allowEmptyString","TYPE_MISMATCH","cmi_children","student_preference","AICCStudentPreferences","AICCCMIStudentData","student_demographics","CMIStudentDemographics","evaluation","CMIEvaluation","paths","CMIPaths","jsonString","suspend_data","launch_data","comments","comments_from_lms","objectives","interactions","CMIEvaluationComments","children","comments_children","INVALID_SET_VALUE","errorClass","student_preference_children","windows","lesson_type","CMIString256","text_color","text_location","text_size","video","audio","language","speed","text","CMIStudentPreference","student_data_children","tries","CMITries","tries_during_lesson","max_time_allowed","time_limit_action","CMIStudentData","student_demographics_children","city","clazz","company","country","experience","familiar_name","instructor_name","title","native_language","state","street_address","telephone","years_experience","class","paths_children","CMIPathsObject","location_id","date","CMITime","CMIStatus2","why_left","time_in_element","tries_children","score_children","score_range","invalidTypeCode","invalidRangeCode","VALUE_OUT_OF_RANGE","CMIAttemptRecords","attempt_records_children","content","location","scorm12_regex","formatRegex","RegExp","matches","checkValidRange","rangePattern","ranges","getTime","decimalRegex","CMIDecimal","_children","_count","Scorm12ValidationError","Util","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwInvalidValueError","check12ValidFormat","check12ValidRange","CMICore","CMIObjectives","CMIInteractions","_version","CMIString4096","start_time","core_children","student_id","student_name","lesson_location","CMIStatus","entry","exit","CMIExit","session_time","CMITimespan","sessionTime","startTime","seconds","getSecondsAsHHMMSS","addHHMMSSTimeStrings","objectives_children","CMISInteger","audio_range","speed_range","text_range","interactions_children","correct_responses","correct_responses_children","id","CMIIdentifier","CMIType","weighting","weighting_range","student_response","CMIFeedback","CMIResult","latency","pattern","NAVEvent","LOG_LEVEL_NONE","INITIALIZATION_FAILED","INITIALIZED","TERMINATION_FAILURE","ARGUMENT_ERROR","GENERAL_GET_FAILURE","GENERAL_SET_FAILURE","GENERAL_COMMIT_FAILURE","UNIMPLEMENTED_ELEMENT","DEPENDENCY_NOT_ESTABLISHED","MULTIPLE_TERMINATIONS","CMIInteger","CMIIndex","CMIString200","CMIString250","CMIString1000","CMIString4000","CMIString64000","CMILang","CMILangString250","CMILangcr","CMILangString250cr","CMILangString4000","CMIShortIdentifier","CMILongIdentifier","CMIIndexStore","CMICStatus","CMISStatus","NAVBoolean","NAVTarget","scaled_range","progress_range","scorm12_errors","aicc_errors","scorm2004_errors","errorMessage","detailedMessage","Scorm2004ValidationError","SECONDS_PER_SECOND","SECONDS_PER_MINUTE","SECONDS_PER_HOUR","SECONDS_PER_DAY","designations","totalSeconds","hours","floor","dateObj","minutes","getUTCMinutes","getSeconds","ms","msStr","countDecimals","toFixed","getSecondsAsISODuration","duration","remainder","sign","current_seconds","getTimeAsSeconds","timeString","timeRegex","parts","getDurationAsSeconds","durationRegex","exec","years","months","days","addTwoDurations","first","second","data","recurse","cur","prop","isArray","l","isEmpty","p","regex","m","num","window"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/aicc.min.js b/dist/aicc.min.js index 2cf933f..5ca773c 100644 --- a/dist/aicc.min.js +++ b/dist/aicc.min.js @@ -7,7 +7,7 @@ \*********************/function(r,e,t){"use strict";t.r(e),t.d(e,{default:function(){return d}});var e=t(/*! ./Scorm12API */"./src/Scorm12API.js"),o=t(/*! ./cmi/aicc_cmi */"./src/cmi/aicc_cmi.js"),f=t(/*! ./cmi/scorm12_cmi */"./src/cmi/scorm12_cmi.js");function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}function a(r){for(var e=1;ee.length)&&(t=e.length);for(var n=0,r=new Array(t);n=this.apiLogLevel&&this.settings.onLogMessage(r,n)}},{key:"formatMessage",value:function(e,t,n){for(var r="",i=20-(r+=e).length,o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=this.apiLogLevel&&this.settings.onLogMessage(r,n)}},{key:"formatMessage",value:function(e,t,n){for(var r="",i=20-(r+=e).length,o=0;o=parseFloat(this.cmi.student_data.mastery_score)?this.cmi.core.lesson_status="passed":this.cmi.core.lesson_status="failed"):"browse"===this.cmi.core.lesson_mode&&""===((null===(i=this.startingData)||void 0===i||null===(n=i.cmi)||void 0===n||null===(r=n.core)||void 0===r?void 0:r.lesson_status)||"")&&"not attempted"===t&&(this.cmi.core.lesson_status="browsed"));var t,n,r,i=this.renderCommitCMI(e||this.settings.alwaysSendTotalTime);return this.apiLogLevel===u.LOG_LEVEL_DEBUG&&(console.debug("Commit (terminated: "+(e?"yes":"no")+"): "),console.debug(i)),this.settings.lmsCommitUrl?this.processHttpRequest(this.settings.lmsCommitUrl,i,e):u.SCORM_TRUE}}])&&h(t.prototype,e),n&&h(t,n),Object.defineProperty(t,"prototype",{writable:!1}),i}(e.default)},"./src/cmi/aicc_cmi.js": diff --git a/dist/scorm-again.js b/dist/scorm-again.js index d84c998..d4ce5ab 100644 --- a/dist/scorm-again.js +++ b/dist/scorm-again.js @@ -728,9 +728,7 @@ var BaseAPI = /*#__PURE__*/function () { value: function initialize(callbackName, initializeMessage, terminationMessage) { var returnValue = global_constants.SCORM_FALSE; - if (this.isInitialized()) { - this.throwSCORMError(_classPrivateFieldGet(this, _error_codes).INITIALIZED, initializeMessage); - } else if (this.isTerminated()) { + if (this.isTerminated()) { this.throwSCORMError(_classPrivateFieldGet(this, _error_codes).TERMINATED, terminationMessage); } else { if (this.selfReportSessionTime) { diff --git a/dist/scorm-again.js.map b/dist/scorm-again.js.map index f399335..5ee9c99 100644 --- a/dist/scorm-again.js.map +++ b/dist/scorm-again.js.map @@ -1 +1 @@ -{"version":3,"file":"scorm-again.js","mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAIA,eAAe,GAAG,qBAAtB;AAEA;;AACA,IAAIC,GAAG,GAAG,IAAI,CAAd;AAEA;;AACA,IAAIC,SAAS,GAAG,iBAAhB;AAEA;;AACA,IAAIC,MAAM,GAAG,YAAb;AAEA;;AACA,IAAIC,UAAU,GAAG,oBAAjB;AAEA;;AACA,IAAIC,UAAU,GAAG,YAAjB;AAEA;;AACA,IAAIC,SAAS,GAAG,aAAhB;AAEA;;AACA,IAAIC,YAAY,GAAGC,QAAnB;AAEA;;AACA,IAAIC,UAAU,GAAG,QAAOC,qBAAP,yCAAOA,qBAAP,MAAiB,QAAjB,IAA6BA,qBAA7B,IAAuCA,qBAAM,CAACC,MAAP,KAAkBA,MAAzD,IAAmED,qBAApF;AAEA;;AACA,IAAIE,QAAQ,GAAG,QAAOC,IAAP,yCAAOA,IAAP,MAAe,QAAf,IAA2BA,IAA3B,IAAmCA,IAAI,CAACF,MAAL,KAAgBA,MAAnD,IAA6DE,IAA5E;AAEA;;AACA,IAAIC,IAAI,GAAGL,UAAU,IAAIG,QAAd,IAA0BG,QAAQ,CAAC,aAAD,CAAR,EAArC;AAEA;;AACA,IAAIC,WAAW,GAAGL,MAAM,CAACM,SAAzB;AAEA;AACA;AACA;AACA;AACA;;AACA,IAAIC,cAAc,GAAGF,WAAW,CAACG,QAAjC;AAEA;;AACA,IAAIC,SAAS,GAAGC,IAAI,CAACC,GAArB;AAAA,IACIC,SAAS,GAAGF,IAAI,CAACG,GADrB;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIC,GAAG,GAAG,SAANA,GAAM,GAAW;EACnB,OAAOX,IAAI,CAACY,IAAL,CAAUD,GAAV,EAAP;AACD,CAFD;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,QAAT,CAAkBC,IAAlB,EAAwBC,IAAxB,EAA8BC,OAA9B,EAAuC;EACrC,IAAIC,QAAJ;EAAA,IACIC,QADJ;EAAA,IAEIC,OAFJ;EAAA,IAGIC,MAHJ;EAAA,IAIIC,OAJJ;EAAA,IAKIC,YALJ;EAAA,IAMIC,cAAc,GAAG,CANrB;EAAA,IAOIC,OAAO,GAAG,KAPd;EAAA,IAQIC,MAAM,GAAG,KARb;EAAA,IASIC,QAAQ,GAAG,IATf;;EAWA,IAAI,OAAOZ,IAAP,IAAe,UAAnB,EAA+B;IAC7B,MAAM,IAAIa,SAAJ,CAAczC,eAAd,CAAN;EACD;;EACD6B,IAAI,GAAGa,QAAQ,CAACb,IAAD,CAAR,IAAkB,CAAzB;;EACA,IAAIc,QAAQ,CAACb,OAAD,CAAZ,EAAuB;IACrBQ,OAAO,GAAG,CAAC,CAACR,OAAO,CAACQ,OAApB;IACAC,MAAM,GAAG,aAAaT,OAAtB;IACAG,OAAO,GAAGM,MAAM,GAAGnB,SAAS,CAACsB,QAAQ,CAACZ,OAAO,CAACG,OAAT,CAAR,IAA6B,CAA9B,EAAiCJ,IAAjC,CAAZ,GAAqDI,OAArE;IACAO,QAAQ,GAAG,cAAcV,OAAd,GAAwB,CAAC,CAACA,OAAO,CAACU,QAAlC,GAA6CA,QAAxD;EACD;;EAED,SAASI,UAAT,CAAoBC,IAApB,EAA0B;IACxB,IAAIC,IAAI,GAAGf,QAAX;IAAA,IACIgB,OAAO,GAAGf,QADd;IAGAD,QAAQ,GAAGC,QAAQ,GAAGgB,SAAtB;IACAX,cAAc,GAAGQ,IAAjB;IACAX,MAAM,GAAGN,IAAI,CAACqB,KAAL,CAAWF,OAAX,EAAoBD,IAApB,CAAT;IACA,OAAOZ,MAAP;EACD;;EAED,SAASgB,WAAT,CAAqBL,IAArB,EAA2B;IACzB;IACAR,cAAc,GAAGQ,IAAjB,CAFyB,CAGzB;;IACAV,OAAO,GAAGgB,UAAU,CAACC,YAAD,EAAevB,IAAf,CAApB,CAJyB,CAKzB;;IACA,OAAOS,OAAO,GAAGM,UAAU,CAACC,IAAD,CAAb,GAAsBX,MAApC;EACD;;EAED,SAASmB,aAAT,CAAuBR,IAAvB,EAA6B;IAC3B,IAAIS,iBAAiB,GAAGT,IAAI,GAAGT,YAA/B;IAAA,IACImB,mBAAmB,GAAGV,IAAI,GAAGR,cADjC;IAAA,IAEIH,MAAM,GAAGL,IAAI,GAAGyB,iBAFpB;IAIA,OAAOf,MAAM,GAAGhB,SAAS,CAACW,MAAD,EAASD,OAAO,GAAGsB,mBAAnB,CAAZ,GAAsDrB,MAAnE;EACD;;EAED,SAASsB,YAAT,CAAsBX,IAAtB,EAA4B;IAC1B,IAAIS,iBAAiB,GAAGT,IAAI,GAAGT,YAA/B;IAAA,IACImB,mBAAmB,GAAGV,IAAI,GAAGR,cADjC,CAD0B,CAI1B;IACA;IACA;;IACA,OAAQD,YAAY,KAAKY,SAAjB,IAA+BM,iBAAiB,IAAIzB,IAApD,IACLyB,iBAAiB,GAAG,CADf,IACsBf,MAAM,IAAIgB,mBAAmB,IAAItB,OAD/D;EAED;;EAED,SAASmB,YAAT,GAAwB;IACtB,IAAIP,IAAI,GAAGpB,GAAG,EAAd;;IACA,IAAI+B,YAAY,CAACX,IAAD,CAAhB,EAAwB;MACtB,OAAOY,YAAY,CAACZ,IAAD,CAAnB;IACD,CAJqB,CAKtB;;;IACAV,OAAO,GAAGgB,UAAU,CAACC,YAAD,EAAeC,aAAa,CAACR,IAAD,CAA5B,CAApB;EACD;;EAED,SAASY,YAAT,CAAsBZ,IAAtB,EAA4B;IAC1BV,OAAO,GAAGa,SAAV,CAD0B,CAG1B;IACA;;IACA,IAAIR,QAAQ,IAAIT,QAAhB,EAA0B;MACxB,OAAOa,UAAU,CAACC,IAAD,CAAjB;IACD;;IACDd,QAAQ,GAAGC,QAAQ,GAAGgB,SAAtB;IACA,OAAOd,MAAP;EACD;;EAED,SAASwB,MAAT,GAAkB;IAChB,IAAIvB,OAAO,KAAKa,SAAhB,EAA2B;MACzBW,YAAY,CAACxB,OAAD,CAAZ;IACD;;IACDE,cAAc,GAAG,CAAjB;IACAN,QAAQ,GAAGK,YAAY,GAAGJ,QAAQ,GAAGG,OAAO,GAAGa,SAA/C;EACD;;EAED,SAASY,KAAT,GAAiB;IACf,OAAOzB,OAAO,KAAKa,SAAZ,GAAwBd,MAAxB,GAAiCuB,YAAY,CAAChC,GAAG,EAAJ,CAApD;EACD;;EAED,SAASoC,SAAT,GAAqB;IACnB,IAAIhB,IAAI,GAAGpB,GAAG,EAAd;IAAA,IACIqC,UAAU,GAAGN,YAAY,CAACX,IAAD,CAD7B;IAGAd,QAAQ,GAAGgC,SAAX;IACA/B,QAAQ,GAAG,IAAX;IACAI,YAAY,GAAGS,IAAf;;IAEA,IAAIiB,UAAJ,EAAgB;MACd,IAAI3B,OAAO,KAAKa,SAAhB,EAA2B;QACzB,OAAOE,WAAW,CAACd,YAAD,CAAlB;MACD;;MACD,IAAIG,MAAJ,EAAY;QACV;QACAJ,OAAO,GAAGgB,UAAU,CAACC,YAAD,EAAevB,IAAf,CAApB;QACA,OAAOe,UAAU,CAACR,YAAD,CAAjB;MACD;IACF;;IACD,IAAID,OAAO,KAAKa,SAAhB,EAA2B;MACzBb,OAAO,GAAGgB,UAAU,CAACC,YAAD,EAAevB,IAAf,CAApB;IACD;;IACD,OAAOK,MAAP;EACD;;EACD2B,SAAS,CAACH,MAAV,GAAmBA,MAAnB;EACAG,SAAS,CAACD,KAAV,GAAkBA,KAAlB;EACA,OAAOC,SAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASlB,QAAT,CAAkBqB,KAAlB,EAAyB;EACvB,IAAIC,IAAI,WAAUD,KAAV,CAAR;;EACA,OAAO,CAAC,CAACA,KAAF,KAAYC,IAAI,IAAI,QAAR,IAAoBA,IAAI,IAAI,UAAxC,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,YAAT,CAAsBF,KAAtB,EAA6B;EAC3B,OAAO,CAAC,CAACA,KAAF,IAAW,QAAOA,KAAP,KAAgB,QAAlC;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,QAAT,CAAkBH,KAAlB,EAAyB;EACvB,OAAO,QAAOA,KAAP,KAAgB,QAAhB,IACJE,YAAY,CAACF,KAAD,CAAZ,IAAuB9C,cAAc,CAACkD,IAAf,CAAoBJ,KAApB,KAA8B9D,SADxD;AAED;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwC,QAAT,CAAkBsB,KAAlB,EAAyB;EACvB,IAAI,OAAOA,KAAP,IAAgB,QAApB,EAA8B;IAC5B,OAAOA,KAAP;EACD;;EACD,IAAIG,QAAQ,CAACH,KAAD,CAAZ,EAAqB;IACnB,OAAO/D,GAAP;EACD;;EACD,IAAI0C,QAAQ,CAACqB,KAAD,CAAZ,EAAqB;IACnB,IAAIK,KAAK,GAAG,OAAOL,KAAK,CAACM,OAAb,IAAwB,UAAxB,GAAqCN,KAAK,CAACM,OAAN,EAArC,GAAuDN,KAAnE;IACAA,KAAK,GAAGrB,QAAQ,CAAC0B,KAAD,CAAR,GAAmBA,KAAK,GAAG,EAA3B,GAAiCA,KAAzC;EACD;;EACD,IAAI,OAAOL,KAAP,IAAgB,QAApB,EAA8B;IAC5B,OAAOA,KAAK,KAAK,CAAV,GAAcA,KAAd,GAAsB,CAACA,KAA9B;EACD;;EACDA,KAAK,GAAGA,KAAK,CAACO,OAAN,CAAcpE,MAAd,EAAsB,EAAtB,CAAR;EACA,IAAIqE,QAAQ,GAAGnE,UAAU,CAACoE,IAAX,CAAgBT,KAAhB,CAAf;EACA,OAAQQ,QAAQ,IAAIlE,SAAS,CAACmE,IAAV,CAAeT,KAAf,CAAb,GACHzD,YAAY,CAACyD,KAAK,CAACU,KAAN,CAAY,CAAZ,CAAD,EAAiBF,QAAQ,GAAG,CAAH,GAAO,CAAhC,CADT,GAEFpE,UAAU,CAACqE,IAAX,CAAgBT,KAAhB,IAAyB/D,GAAzB,GAA+B,CAAC+D,KAFrC;AAGD;;AAEDW,MAAM,CAACC,OAAP,GAAiBjD,QAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvXA;AACA;AAMA;AAEA;AACA;AACA;;IACqBwD;;;;;EACnB;AACF;AACA;AACA;EACE,cAAYC,QAAZ,EAA0B;IAAA;;IAAA;;IACxB,IAAMC,aAAa,mCACd;MACDC,gBAAgB,EAAE;IADjB,CADc,GAGXF,QAHW,CAAnB;;IAMA,0BAAMC,aAAN;IAEA,MAAKE,GAAL,GAAW,IAAIT,8CAAJ,EAAX;IACA,MAAKU,GAAL,GAAW,IAAIN,iDAAJ,EAAX;IAVwB;EAWzB;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;;WACE,yBAAgBO,UAAhB,EAA4BzB,KAA5B,EAAmC0B,eAAnC,EAAoD;MAClD,IAAIC,QAAQ,6EAAyBF,UAAzB,EAAqCzB,KAArC,EAA4C0B,eAA5C,CAAZ;;MAEA,IAAI,CAACC,QAAL,EAAe;QACb,IAAI,KAAKC,aAAL,CAAmBH,UAAnB,EAA+B,oCAA/B,CAAJ,EAA0E;UACxEE,QAAQ,GAAG,IAAIX,sEAAJ,EAAX;QACD,CAFD,MAEO,IAAI,KAAKY,aAAL,CAAmBH,UAAnB,EACP,mCADO,CAAJ,EACmC;UACxCE,QAAQ,GAAG,IAAIV,yDAAJ,EAAX;QACD,CAHM,MAGA,IAAI,KAAKW,aAAL,CAAmBH,UAAnB,EACP,6CADO,CAAJ,EAC6C;UAClDE,QAAQ,GAAG,IAAIZ,kEAAJ,EAAX;QACD;MACF;;MAED,OAAOY,QAAP;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,oCAA2BE,MAA3B,EAAmC;MACjC;MACA,KAAKN,GAAL,GAAWM,MAAM,CAACN,GAAlB;MACA,KAAKC,GAAL,GAAWK,MAAM,CAACL,GAAlB;IACD;;;;EArD+BX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZlC;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMsB,gBAAgB,GAAGF,uEAAzB;AACA,IAAMG,mBAAmB,GAAGJ,sEAA5B;AAEA;AACA;AACA;AACA;;;;;;;;IACqBM;EAiEnB;AACF;AACA;AACA;AACA;AACA;EACE,iBAAYC,WAAZ,EAAyBnB,QAAzB,EAAmC;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA,OApEvB;QACVoB,UAAU,EAAE,KADF;QAEVC,iBAAiB,EAAE,EAFT;QAGVC,WAAW,EAAE,KAHH;QAIVC,gBAAgB,EAAE,KAJR;QAKVC,YAAY,EAAE,KALJ;QAMVC,gBAAgB,EAAE,MANR;QAMgB;QAC1BC,qBAAqB,EAAE,gCAPb;QAQVC,YAAY,EAAE,KARJ;QASVC,QAAQ,EAAEb,gBAAgB,CAACc,eATjB;QAUVC,qBAAqB,EAAE,KAVb;QAWVC,mBAAmB,EAAE,KAXX;QAYVC,aAAa,EAAE,IAZL;QAaVC,UAAU,EAAE,EAbF;QAcVC,kBAAkB,EAAE,KAdV;QAeVC,eAAe,EAAE,yBAASC,GAAT,EAAc;UAC7B,IAAItF,MAAJ;;UACA,IAAI,OAAOsF,GAAP,KAAe,WAAnB,EAAgC;YAC9BtF,MAAM,GAAGuF,IAAI,CAACC,KAAL,CAAWF,GAAG,CAACG,YAAf,CAAT;;YACA,IAAIzF,MAAM,KAAK,IAAX,IAAmB,CAAC,GAAG0F,cAAH,CAAkBxD,IAAlB,CAAuBlC,MAAvB,EAA+B,QAA/B,CAAxB,EAAkE;cAChEA,MAAM,GAAG,EAAT;;cACA,IAAIsF,GAAG,CAACK,MAAJ,KAAe,GAAnB,EAAwB;gBACtB3F,MAAM,CAACA,MAAP,GAAgBiE,gBAAgB,CAAC2B,UAAjC;gBACA5F,MAAM,CAAC6F,SAAP,GAAmB,CAAnB;cACD,CAHD,MAGO;gBACL7F,MAAM,CAACA,MAAP,GAAgBiE,gBAAgB,CAAC6B,WAAjC;gBACA9F,MAAM,CAAC6F,SAAP,GAAmB,GAAnB;cACD;YACF;UACF;;UACD,OAAO7F,MAAP;QACD,CA/BS;QAgCV+F,cAAc,EAAE,wBAASC,YAAT,EAAuB;UACrC,OAAOA,YAAP;QACD,CAlCS;QAmCVC,YAAY,EAAE,sBAASC,YAAT,EAAuBC,UAAvB,EAAmC;UAC/C,QAAQD,YAAR;YACE,KAAKjC,gBAAgB,CAACc,eAAtB;cACEqB,OAAO,CAACC,KAAR,CAAcF,UAAd;cACA;;YACF,KAAKlC,gBAAgB,CAACqC,iBAAtB;cACEF,OAAO,CAACG,IAAR,CAAaJ,UAAb;cACA;;YACF,KAAKlC,gBAAgB,CAACuC,cAAtB;cACEJ,OAAO,CAACK,IAAR,CAAaN,UAAb;cACA;;YACF,KAAKlC,gBAAgB,CAACyC,eAAtB;cACE,IAAIN,OAAO,CAACO,KAAZ,EAAmB;gBACjBP,OAAO,CAACO,KAAR,CAAcR,UAAd;cACD,CAFD,MAEO;gBACLC,OAAO,CAACQ,GAAR,CAAYT,UAAZ;cACD;;cACD;UAhBJ;QAkBD,CAtDS;QAuDVU,cAAc,EAAE,0BAAW;UACzB,OAAO,IAAP;QACD;MAzDS;IAoEuB;;IAAA;;IAAA;;IACjC,IAAI,0DAAezC,OAAnB,EAA4B;MAC1B,MAAM,IAAI7D,SAAJ,CAAc,6CAAd,CAAN;IACD;;IACD,KAAKuG,YAAL,GAAoB7C,gBAAgB,CAAC8C,qBAArC;IACA,KAAKC,aAAL,GAAqB,CAArB;IACA,KAAKC,aAAL,GAAqB,EAArB;;IAEA,sCAAgB,IAAhB;;IACA,0CAAoB5C,WAApB;;IAEA,KAAKnB,QAAL,GAAgBA,QAAhB;IACA,KAAKgE,WAAL,GAAmB,KAAKhE,QAAL,CAAc4B,QAAjC;IACA,KAAKE,qBAAL,GAA6B,KAAK9B,QAAL,CAAc8B,qBAA3C;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;;WACE,oBACImC,YADJ,EAEIC,iBAFJ,EAGIC,kBAHJ,EAGiC;MAC/B,IAAIC,WAAW,GAAGrD,gBAAgB,CAAC6B,WAAnC;;MAEA,IAAI,KAAKyB,aAAL,EAAJ,EAA0B;QACxB,KAAKC,eAAL,CAAqB,0CAAkBC,WAAvC,EAAoDL,iBAApD;MACD,CAFD,MAEO,IAAI,KAAKM,YAAL,EAAJ,EAAyB;QAC9B,KAAKF,eAAL,CAAqB,0CAAkBG,UAAvC,EAAmDN,kBAAnD;MACD,CAFM,MAEA;QACL,IAAI,KAAKrC,qBAAT,EAAgC;UAC9B,KAAK3B,GAAL,CAASuE,YAAT;QACD;;QAED,KAAKd,YAAL,GAAoB7C,gBAAgB,CAAC4D,iBAArC;QACA,KAAKb,aAAL,GAAqB,CAArB;QACAM,WAAW,GAAGrD,gBAAgB,CAAC2B,UAA/B;QACA,KAAKkC,gBAAL,CAAsBX,YAAtB;MACD;;MAED,KAAKY,MAAL,CAAYZ,YAAZ,EAA0B,IAA1B,EAAgC,eAAeG,WAA/C,EACIrD,gBAAgB,CAACuC,cADrB;MAEA,KAAKwB,eAAL,CAAqBV,WAArB;MAEA,OAAOA,WAAP;IACD;IAED;AACF;AACA;AACA;;;;SACE,eAAkB;MAChB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;;;SACE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAapE,QAAb,EAA+B;MAC7B,6FAAqB,IAArB,eAAwCA,QAAxC;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,mBACIiE,YADJ,EAEIc,eAFJ,EAE8B;MAC5B,IAAIX,WAAW,GAAGrD,gBAAgB,CAAC6B,WAAnC;;MAEA,IAAI,KAAKoC,UAAL,CAAgBD,eAAhB,EACA,0CAAkBE,uBADlB,EAEA,0CAAkBC,oBAFlB,CAAJ,EAE6C;QAC3C,KAAKtB,YAAL,GAAoB7C,gBAAgB,CAACoE,gBAArC;QAEA,IAAMrI,MAAM,GAAG,KAAKsI,SAAL,CAAe,IAAf,CAAf;;QACA,IAAI,CAAC,KAAKpF,QAAL,CAAcuB,gBAAf,IAAmC,CAAC,KAAKvB,QAAL,CAAcsB,WAAlD,IACF,OAAOxE,MAAM,CAAC6F,SAAd,KAA4B,WAD1B,IACyC7F,MAAM,CAAC6F,SAAP,GAAmB,CADhE,EACmE;UACjE,KAAK2B,eAAL,CAAqBxH,MAAM,CAAC6F,SAA5B;QACD;;QACDyB,WAAW,GAAI,OAAOtH,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACA,MAAzC,GACZA,MAAM,CAACA,MADK,GACIiE,gBAAgB,CAAC6B,WADnC;QAGA,IAAImC,eAAJ,EAAqB,KAAKjB,aAAL,GAAqB,CAArB;QAErBM,WAAW,GAAGrD,gBAAgB,CAAC2B,UAA/B;QACA,KAAKkC,gBAAL,CAAsBX,YAAtB;MACD;;MAED,KAAKY,MAAL,CAAYZ,YAAZ,EAA0B,IAA1B,EAAgC,eAAeG,WAA/C,EACIrD,gBAAgB,CAACuC,cADrB;MAEA,KAAKwB,eAAL,CAAqBV,WAArB;MAEA,OAAOA,WAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBACIH,YADJ,EAEIc,eAFJ,EAGI1E,UAHJ,EAGwB;MACtB,IAAI+D,WAAJ;;MAEA,IAAI,KAAKY,UAAL,CAAgBD,eAAhB,EACA,0CAAkBM,oBADlB,EAEA,0CAAkBC,mBAFlB,CAAJ,EAE4C;QAC1C,IAAIP,eAAJ,EAAqB,KAAKjB,aAAL,GAAqB,CAArB;;QACrB,IAAI;UACFM,WAAW,GAAG,KAAKmB,WAAL,CAAiBlF,UAAjB,CAAd;QACD,CAFD,CAEE,OAAOmF,CAAP,EAAU;UACV,IAAIA,CAAC,YAAY7E,wDAAjB,EAAkC;YAChC,KAAKmD,aAAL,GAAqB0B,CAAC,CAAC7C,SAAvB;YACAyB,WAAW,GAAGrD,gBAAgB,CAAC6B,WAA/B;UACD,CAHD,MAGO;YACL,IAAI4C,CAAC,CAACC,OAAN,EAAe;cACbvC,OAAO,CAACC,KAAR,CAAcqC,CAAC,CAACC,OAAhB;YACD,CAFD,MAEO;cACLvC,OAAO,CAACC,KAAR,CAAcqC,CAAd;YACD;;YACD,KAAKlB,eAAL,CAAqB,0CAAkBoB,OAAvC;UACD;QACF;;QACD,KAAKd,gBAAL,CAAsBX,YAAtB,EAAoC5D,UAApC;MACD;;MAED,KAAKwE,MAAL,CAAYZ,YAAZ,EAA0B5D,UAA1B,EAAsC,iBAAiB+D,WAAvD,EACIrD,gBAAgB,CAACuC,cADrB;MAEA,KAAKwB,eAAL,CAAqBV,WAArB;MAEA,OAAOA,WAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBACIH,YADJ,EAEI0B,cAFJ,EAGIZ,eAHJ,EAII1E,UAJJ,EAKIzB,KALJ,EAKW;MACT,IAAIA,KAAK,KAAKhB,SAAd,EAAyB;QACvBgB,KAAK,GAAGgH,MAAM,CAAChH,KAAD,CAAd;MACD;;MACD,IAAIwF,WAAW,GAAGrD,gBAAgB,CAAC6B,WAAnC;;MAEA,IAAI,KAAKoC,UAAL,CAAgBD,eAAhB,EAAiC,0CAAkBc,iBAAnD,EACA,0CAAkBC,gBADlB,CAAJ,EACyC;QACvC,IAAIf,eAAJ,EAAqB,KAAKjB,aAAL,GAAqB,CAArB;;QACrB,IAAI;UACFM,WAAW,GAAG,KAAK2B,WAAL,CAAiB1F,UAAjB,EAA6BzB,KAA7B,CAAd;QACD,CAFD,CAEE,OAAO4G,CAAP,EAAU;UACV,IAAIA,CAAC,YAAY7E,wDAAjB,EAAkC;YAChC,KAAKmD,aAAL,GAAqB0B,CAAC,CAAC7C,SAAvB;YACAyB,WAAW,GAAGrD,gBAAgB,CAAC6B,WAA/B;UACD,CAHD,MAGO;YACL,IAAI4C,CAAC,CAACC,OAAN,EAAe;cACbvC,OAAO,CAACC,KAAR,CAAcqC,CAAC,CAACC,OAAhB;YACD,CAFD,MAEO;cACLvC,OAAO,CAACC,KAAR,CAAcqC,CAAd;YACD;;YACD,KAAKlB,eAAL,CAAqB,0CAAkBoB,OAAvC;UACD;QACF;;QACD,KAAKd,gBAAL,CAAsBX,YAAtB,EAAoC5D,UAApC,EAAgDzB,KAAhD;MACD;;MAED,IAAIwF,WAAW,KAAKxG,SAApB,EAA+B;QAC7BwG,WAAW,GAAGrD,gBAAgB,CAAC6B,WAA/B;MACD,CA7BQ,CA+BT;MACA;;;MACA,IAAIgD,MAAM,CAAC,KAAK9B,aAAN,CAAN,KAA+B,GAAnC,EAAwC;QACtC,IAAI,KAAK9D,QAAL,CAAcoB,UAAd,IAA4B,uBAAC,IAAD,WAAhC,EAAgD;UAC9C,KAAK4E,cAAL,CAAoB,KAAKhG,QAAL,CAAcqB,iBAAd,GAAkC,IAAtD,EAA4DsE,cAA5D;QACD;MACF;;MAED,KAAKd,MAAL,CAAYZ,YAAZ,EAA0B5D,UAA1B,EACI,OAAOzB,KAAP,GAAe,YAAf,GAA8BwF,WADlC,EAEIrD,gBAAgB,CAACuC,cAFrB;MAGA,KAAKwB,eAAL,CAAqBV,WAArB;MAEA,OAAOA,WAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,gBACIH,YADJ,EAEIc,eAFJ,EAE8B;MAC5B,KAAKkB,oBAAL;MAEA,IAAI7B,WAAW,GAAGrD,gBAAgB,CAAC6B,WAAnC;;MAEA,IAAI,KAAKoC,UAAL,CAAgBD,eAAhB,EAAiC,0CAAkBmB,kBAAnD,EACA,0CAAkBC,iBADlB,CAAJ,EAC0C;QACxC,IAAMrJ,MAAM,GAAG,KAAKsI,SAAL,CAAe,KAAf,CAAf;;QACA,IAAI,CAAC,KAAKpF,QAAL,CAAcuB,gBAAf,IAAmC,CAAC,KAAKvB,QAAL,CAAcsB,WAAlD,IACFxE,MAAM,CAAC6F,SADL,IACkB7F,MAAM,CAAC6F,SAAP,GAAmB,CADzC,EAC4C;UAC1C,KAAK2B,eAAL,CAAqBxH,MAAM,CAAC6F,SAA5B;QACD;;QACDyB,WAAW,GAAI,OAAOtH,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACA,MAAzC,GACZA,MAAM,CAACA,MADK,GACIiE,gBAAgB,CAAC6B,WADnC;QAGA,KAAKiC,MAAL,CAAYZ,YAAZ,EAA0B,aAA1B,EAAyC,cAAcG,WAAvD,EACIrD,gBAAgB,CAACyC,eADrB;QAGA,IAAIuB,eAAJ,EAAqB,KAAKjB,aAAL,GAAqB,CAArB;QAErB,KAAKc,gBAAL,CAAsBX,YAAtB;MACD;;MAED,KAAKY,MAAL,CAAYZ,YAAZ,EAA0B,IAA1B,EAAgC,eAAeG,WAA/C,EACIrD,gBAAgB,CAACuC,cADrB;MAEA,KAAKwB,eAAL,CAAqBV,WAArB;MAEA,OAAOA,WAAP;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,sBAAaH,YAAb,EAAmC;MACjC,IAAMG,WAAW,GAAGwB,MAAM,CAAC,KAAK9B,aAAN,CAA1B;MAEA,KAAKc,gBAAL,CAAsBX,YAAtB;MAEA,KAAKY,MAAL,CAAYZ,YAAZ,EAA0B,IAA1B,EAAgC,eAAeG,WAA/C,EACIrD,gBAAgB,CAACuC,cADrB;MAGA,OAAOc,WAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,wBAAeH,YAAf,EAAqCmC,YAArC,EAAmD;MACjD,IAAIhC,WAAW,GAAG,EAAlB;;MAEA,IAAIgC,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,EAA9C,EAAkD;QAChDhC,WAAW,GAAG,KAAKiC,yBAAL,CAA+BD,YAA/B,CAAd;QACA,KAAKxB,gBAAL,CAAsBX,YAAtB;MACD;;MAED,KAAKY,MAAL,CAAYZ,YAAZ,EAA0B,IAA1B,EAAgC,eAAeG,WAA/C,EACIrD,gBAAgB,CAACuC,cADrB;MAGA,OAAOc,WAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,uBAAcH,YAAd,EAAoCmC,YAApC,EAAkD;MAChD,IAAIhC,WAAW,GAAG,EAAlB;;MAEA,IAAIgC,YAAY,KAAK,IAAjB,IAAyBA,YAAY,KAAK,EAA9C,EAAkD;QAChDhC,WAAW,GAAG,KAAKiC,yBAAL,CAA+BD,YAA/B,EAA6C,IAA7C,CAAd;QACA,KAAKxB,gBAAL,CAAsBX,YAAtB;MACD;;MAED,KAAKY,MAAL,CAAYZ,YAAZ,EAA0B,IAA1B,EAAgC,eAAeG,WAA/C,EACIrD,gBAAgB,CAACuC,cADrB;MAGA,OAAOc,WAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,oBACIW,eADJ,EAEIuB,eAFJ,EAGIC,cAHJ,EAG6B;MAC3B,IAAI,KAAKC,gBAAL,EAAJ,EAA6B;QAC3B,KAAKlC,eAAL,CAAqBgC,eAArB;QACA,OAAO,KAAP;MACD,CAHD,MAGO,IAAIvB,eAAe,IAAI,KAAKP,YAAL,EAAvB,EAA4C;QACjD,KAAKF,eAAL,CAAqBiC,cAArB;QACA,OAAO,KAAP;MACD;;MAED,OAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,gBACIE,YADJ,EAEIpG,UAFJ,EAGI4C,UAHJ,EAIID,YAJJ,EAI0B;MACxBC,UAAU,GAAG,KAAKyD,aAAL,CAAmBD,YAAnB,EAAiCpG,UAAjC,EAA6C4C,UAA7C,CAAb;;MAEA,IAAID,YAAY,IAAI,KAAKgB,WAAzB,EAAsC;QACpC,KAAKhE,QAAL,CAAc+C,YAAd,CAA2BC,YAA3B,EAAyCC,UAAzC;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,uBAAcwD,YAAd,EAAoCpG,UAApC,EAAwDoF,OAAxD,EAAyE;MACvE,IAAMkB,UAAU,GAAG,EAAnB;MACA,IAAIC,aAAa,GAAG,EAApB;MAEAA,aAAa,IAAIH,YAAjB;MAEA,IAAII,SAAS,GAAGF,UAAU,GAAGC,aAAa,CAACE,MAA3C;;MAEA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,SAApB,EAA+BE,CAAC,EAAhC,EAAoC;QAClCH,aAAa,IAAI,GAAjB;MACD;;MAEDA,aAAa,IAAI,IAAjB;;MAEA,IAAIvG,UAAJ,EAAgB;QACd,IAAM2G,oBAAoB,GAAG,EAA7B;QAEAJ,aAAa,IAAIvG,UAAjB;QAEAwG,SAAS,GAAGG,oBAAoB,GAAGJ,aAAa,CAACE,MAAjD;;QAEA,KAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,SAApB,EAA+BI,CAAC,EAAhC,EAAoC;UAClCL,aAAa,IAAI,GAAjB;QACD;MACF;;MAED,IAAInB,OAAJ,EAAa;QACXmB,aAAa,IAAInB,OAAjB;MACD;;MAED,OAAOmB,aAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,uBAAcM,GAAd,EAA2BC,MAA3B,EAA2C;MACzC,OAAOD,GAAG,IAAIC,MAAP,IAAiBD,GAAG,CAACE,KAAJ,CAAUD,MAAV,CAAxB;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,iCAAwBE,SAAxB,EAAmCC,SAAnC,EAAsD;MACpD,OAAO/L,MAAM,CAACiH,cAAP,CAAsBxD,IAAtB,CAA2BqI,SAA3B,EAAsCC,SAAtC,KACL/L,MAAM,CAACgM,wBAAP,CACIhM,MAAM,CAACiM,cAAP,CAAsBH,SAAtB,CADJ,EACsCC,SADtC,CADK,IAGJA,SAAS,IAAID,SAHhB;IAID;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,mCAA0BI,YAA1B,EAAwCC,OAAxC,EAAiD;MAC/C,MAAM,IAAIC,KAAJ,CACF,+DADE,CAAN;IAED;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAYC,WAAZ,EAAyB;MACvB,MAAM,IAAID,KAAJ,CAAU,iDAAV,CAAN;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAYC,WAAZ,EAAyBC,MAAzB,EAAiC;MAC/B,MAAM,IAAIF,KAAJ,CAAU,iDAAV,CAAN;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,4BACIG,UADJ,EACwBC,SADxB,EAC4C1H,UAD5C,EACwDzB,KADxD,EAC+D;MAC7D,IAAI,CAACyB,UAAD,IAAeA,UAAU,KAAK,EAAlC,EAAsC;QACpC,OAAOU,gBAAgB,CAAC6B,WAAxB;MACD;;MAED,IAAMoF,SAAS,GAAG3H,UAAU,CAAC4H,KAAX,CAAiB,GAAjB,CAAlB;MACA,IAAIZ,SAAS,GAAG,IAAhB;MACA,IAAIjD,WAAW,GAAGrD,gBAAgB,CAAC6B,WAAnC;MACA,IAAItC,eAAe,GAAG,KAAtB;MAEA,IAAM4H,mBAAmB,8CAAuCJ,UAAvC,eAAsDzH,UAAtD,+CAAzB;MACA,IAAM8H,gBAAgB,GAAGJ,SAAS,GAChC,0CAAkBK,oBADc,GAEhC,0CAAkB1C,OAFpB;;MAIA,KAAK,IAAIqB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiB,SAAS,CAAClB,MAA9B,EAAsCC,CAAC,EAAvC,EAA2C;QACzC,IAAMO,SAAS,GAAGU,SAAS,CAACjB,CAAD,CAA3B;;QAEA,IAAIA,CAAC,KAAKiB,SAAS,CAAClB,MAAV,GAAmB,CAA7B,EAAgC;UAC9B,IAAIiB,SAAS,IAAKT,SAAS,CAACe,MAAV,CAAiB,CAAjB,EAAoB,CAApB,MAA2B,UAAzC,IACD,OAAOhB,SAAS,CAACiB,cAAjB,IAAmC,UADtC,EACmD;YACjD,KAAKhE,eAAL,CAAqB,0CAAkBiE,iBAAvC;UACD,CAHD,MAGO,IAAI,CAAC,KAAKC,uBAAL,CAA6BnB,SAA7B,EAAwCC,SAAxC,CAAL,EAAyD;YAC9D,KAAKhD,eAAL,CAAqB6D,gBAArB,EAAuCD,mBAAvC;UACD,CAFM,MAEA;YACL,IAAI,KAAK7D,aAAL,MACF,KAAK7D,aAAL,CAAmBH,UAAnB,EAA+B,6BAA/B,CADF,EACiE;cAC/D,KAAKoI,uBAAL,CAA6BpI,UAA7B,EAAyCzB,KAAzC;YACD;;YAED,IAAI,CAACmJ,SAAD,IAAc,KAAKjE,aAAL,KAAuB,CAAzC,EAA4C;cAC1CuD,SAAS,CAACC,SAAD,CAAT,GAAuB1I,KAAvB;cACAwF,WAAW,GAAGrD,gBAAgB,CAAC2B,UAA/B;YACD;UACF;QACF,CAjBD,MAiBO;UACL2E,SAAS,GAAGA,SAAS,CAACC,SAAD,CAArB;;UACA,IAAI,CAACD,SAAL,EAAgB;YACd,KAAK/C,eAAL,CAAqB6D,gBAArB,EAAuCD,mBAAvC;YACA;UACD;;UAED,IAAIb,SAAS,YAAY3G,iDAAzB,EAAmC;YACjC,IAAMgI,KAAK,GAAGtN,QAAQ,CAAC4M,SAAS,CAACjB,CAAC,GAAG,CAAL,CAAV,EAAmB,EAAnB,CAAtB,CADiC,CAGjC;;YACA,IAAI,CAAC4B,KAAK,CAACD,KAAD,CAAV,EAAmB;cACjB,IAAME,IAAI,GAAGvB,SAAS,CAACwB,UAAV,CAAqBH,KAArB,CAAb;;cAEA,IAAIE,IAAJ,EAAU;gBACRvB,SAAS,GAAGuB,IAAZ;gBACAtI,eAAe,GAAG,IAAlB;cACD,CAHD,MAGO;gBACL,IAAMC,QAAQ,GAAG,KAAKuI,eAAL,CAAqBzI,UAArB,EAAiCzB,KAAjC,EACb0B,eADa,CAAjB;gBAEAA,eAAe,GAAG,IAAlB;;gBAEA,IAAI,CAACC,QAAL,EAAe;kBACb,KAAK+D,eAAL,CAAqB6D,gBAArB,EAAuCD,mBAAvC;gBACD,CAFD,MAEO;kBACL,IAAIb,SAAS,CAAC0B,WAAd,EAA2BxI,QAAQ,CAACyI,UAAT;kBAE3B3B,SAAS,CAACwB,UAAV,CAAqBI,IAArB,CAA0B1I,QAA1B;kBACA8G,SAAS,GAAG9G,QAAZ;gBACD;cACF,CAnBgB,CAqBjB;;;cACAwG,CAAC;YACF;UACF;QACF;MACF;;MAED,IAAI3C,WAAW,KAAKrD,gBAAgB,CAAC6B,WAArC,EAAkD;QAChD,KAAKiC,MAAL,CAAYiD,UAAZ,EAAwB,IAAxB,sDACiDzH,UADjD,yBAC0EzB,KAD1E,GAEImC,gBAAgB,CAACqC,iBAFrB;MAGD;;MAED,OAAOgB,WAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,iCAAwBwD,WAAxB,EAAqCC,MAArC,EAA6C,CAC3C;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,yBAAgBD,WAAhB,EAA6BC,MAA7B,EAAqCqB,gBAArC,EAAuD;MACrD,MAAM,IAAIvB,KAAJ,CAAU,qDAAV,CAAN;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,4BAAmBG,UAAnB,EAAuCC,SAAvC,EAA2D1H,UAA3D,EAAuE;MACrE,IAAI,CAACA,UAAD,IAAeA,UAAU,KAAK,EAAlC,EAAsC;QACpC,OAAO,EAAP;MACD;;MAED,IAAM2H,SAAS,GAAG3H,UAAU,CAAC4H,KAAX,CAAiB,GAAjB,CAAlB;MACA,IAAIZ,SAAS,GAAG,IAAhB;MACA,IAAIC,SAAS,GAAG,IAAhB;MAEA,IAAM6B,yBAAyB,8CAAuCrB,UAAvC,eAAsDzH,UAAtD,gCAA/B;MACA,IAAM6H,mBAAmB,8CAAuCJ,UAAvC,eAAsDzH,UAAtD,+CAAzB;MACA,IAAM8H,gBAAgB,GAAGJ,SAAS,GAChC,0CAAkBK,oBADc,GAEhC,0CAAkB1C,OAFpB;;MAIA,KAAK,IAAIqB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGiB,SAAS,CAAClB,MAA9B,EAAsCC,CAAC,EAAvC,EAA2C;QACzCO,SAAS,GAAGU,SAAS,CAACjB,CAAD,CAArB;;QAEA,IAAI,CAACgB,SAAL,EAAgB;UACd,IAAIhB,CAAC,KAAKiB,SAAS,CAAClB,MAAV,GAAmB,CAA7B,EAAgC;YAC9B,IAAI,CAAC,KAAK0B,uBAAL,CAA6BnB,SAA7B,EAAwCC,SAAxC,CAAL,EAAyD;cACvD,KAAKhD,eAAL,CAAqB6D,gBAArB,EAAuCD,mBAAvC;cACA;YACD;UACF;QACF,CAPD,MAOO;UACL,IAAKtC,MAAM,CAAC0B,SAAD,CAAN,CAAkBe,MAAlB,CAAyB,CAAzB,EAA4B,CAA5B,MAAmC,UAApC,IACD,OAAOhB,SAAS,CAACiB,cAAjB,IAAmC,UADtC,EACmD;YACjD,IAAMc,MAAM,GAAGxD,MAAM,CAAC0B,SAAD,CAAN,CAAkBe,MAAlB,CAAyB,CAAzB,EAA4BzC,MAAM,CAAC0B,SAAD,CAAN,CAAkBR,MAAlB,GAA2B,CAAvD,CAAf;YACA,OAAOO,SAAS,CAACiB,cAAV,CAAyBc,MAAzB,CAAP;UACD,CAJD,MAIO,IAAI,CAAC,KAAKZ,uBAAL,CAA6BnB,SAA7B,EAAwCC,SAAxC,CAAL,EAAyD;YAC9D,KAAKhD,eAAL,CAAqB6D,gBAArB,EAAuCD,mBAAvC;YACA;UACD;QACF;;QAEDb,SAAS,GAAGA,SAAS,CAACC,SAAD,CAArB;;QACA,IAAID,SAAS,KAAKzJ,SAAlB,EAA6B;UAC3B,KAAK0G,eAAL,CAAqB6D,gBAArB,EAAuCD,mBAAvC;UACA;QACD;;QAED,IAAIb,SAAS,YAAY3G,iDAAzB,EAAmC;UACjC,IAAMgI,KAAK,GAAGtN,QAAQ,CAAC4M,SAAS,CAACjB,CAAC,GAAG,CAAL,CAAV,EAAmB,EAAnB,CAAtB,CADiC,CAGjC;;UACA,IAAI,CAAC4B,KAAK,CAACD,KAAD,CAAV,EAAmB;YACjB,IAAME,IAAI,GAAGvB,SAAS,CAACwB,UAAV,CAAqBH,KAArB,CAAb;;YAEA,IAAIE,IAAJ,EAAU;cACRvB,SAAS,GAAGuB,IAAZ;YACD,CAFD,MAEO;cACL,KAAKtE,eAAL,CAAqB,0CAAkB+E,qBAAvC,EACIF,yBADJ;cAEA;YACD,CATgB,CAWjB;;;YACApC,CAAC;UACF;QACF;MACF;;MAED,IAAIM,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAKzJ,SAAxC,EAAmD;QACjD,IAAI,CAACmK,SAAL,EAAgB;UACd,IAAIT,SAAS,KAAK,WAAlB,EAA+B;YAC7B,KAAKhD,eAAL,CAAqBtD,mBAAmB,CAACsI,cAAzC;UACD,CAFD,MAEO,IAAIhC,SAAS,KAAK,QAAlB,EAA4B;YACjC,KAAKhD,eAAL,CAAqBtD,mBAAmB,CAACuI,WAAzC;UACD;QACF;MACF,CARD,MAQO;QACL,OAAOlC,SAAP;MACD;IACF;IAED;AACF;AACA;AACA;AACA;;;;WACE,yBAAgB;MACd,OAAO,KAAKzD,YAAL,KAAsB7C,gBAAgB,CAAC4D,iBAA9C;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,4BAAmB;MACjB,OAAO,KAAKf,YAAL,KAAsB7C,gBAAgB,CAAC8C,qBAA9C;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,wBAAe;MACb,OAAO,KAAKD,YAAL,KAAsB7C,gBAAgB,CAACoE,gBAA9C;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,YAAGqE,YAAH,EAAyBC,QAAzB,EAA6C;MAC3C,IAAI,CAACA,QAAL,EAAe;MAEf,IAAMC,iBAAiB,GAAGF,YAAY,CAACvB,KAAb,CAAmB,GAAnB,CAA1B;;MACA,KAAK,IAAIlB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2C,iBAAiB,CAAC5C,MAAtC,EAA8CC,CAAC,EAA/C,EAAmD;QACjD,IAAM4C,aAAa,GAAGD,iBAAiB,CAAC3C,CAAD,CAAjB,CAAqBkB,KAArB,CAA2B,GAA3B,CAAtB;QACA,IAAI0B,aAAa,CAAC7C,MAAd,KAAyB,CAA7B,EAAgC;QAEhC,IAAML,YAAY,GAAGkD,aAAa,CAAC,CAAD,CAAlC;QAEA,IAAItJ,UAAU,GAAG,IAAjB;;QACA,IAAIsJ,aAAa,CAAC7C,MAAd,GAAuB,CAA3B,EAA8B;UAC5BzG,UAAU,GAAGmJ,YAAY,CAACrK,OAAb,CAAqBsH,YAAY,GAAG,GAApC,EAAyC,EAAzC,CAAb;QACD;;QAED,KAAK1C,aAAL,CAAmBkF,IAAnB,CAAwB;UACtBxC,YAAY,EAAEA,YADQ;UAEtBpG,UAAU,EAAEA,UAFU;UAGtBoJ,QAAQ,EAAEA;QAHY,CAAxB;QAMA,KAAK5E,MAAL,CAAY,IAAZ,EAAkB4B,YAAlB,kCAAyD,KAAK1C,aAAL,CAAmB+C,MAA5E,GAAsF/F,gBAAgB,CAACuC,cAAvG;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,aAAIkG,YAAJ,EAA0BC,QAA1B,EAA8C;MAAA;;MAC5C,IAAI,CAACA,QAAL,EAAe;MAEf,IAAMC,iBAAiB,GAAGF,YAAY,CAACvB,KAAb,CAAmB,GAAnB,CAA1B;;MAH4C,2BAInClB,CAJmC;QAK1C,IAAM4C,aAAa,GAAGD,iBAAiB,CAAC3C,CAAD,CAAjB,CAAqBkB,KAArB,CAA2B,GAA3B,CAAtB;QACA,IAAI0B,aAAa,CAAC7C,MAAd,KAAyB,CAA7B,EAAgC;UAAA;QAAA;QAEhC,IAAML,YAAY,GAAGkD,aAAa,CAAC,CAAD,CAAlC;QAEA,IAAItJ,UAAU,GAAG,IAAjB;;QACA,IAAIsJ,aAAa,CAAC7C,MAAd,GAAuB,CAA3B,EAA8B;UAC5BzG,UAAU,GAAGmJ,YAAY,CAACrK,OAAb,CAAqBsH,YAAY,GAAG,GAApC,EAAyC,EAAzC,CAAb;QACD;;QAED,IAAMmD,WAAW,GAAG,KAAI,CAAC7F,aAAL,CAAmB8F,SAAnB,CAA6B,UAACC,GAAD;UAAA,OAC/CA,GAAG,CAACrD,YAAJ,KAAqBA,YAArB,IACAqD,GAAG,CAACzJ,UAAJ,KAAmBA,UADnB,IAEAyJ,GAAG,CAACL,QAAJ,KAAiBA,QAH8B;QAAA,CAA7B,CAApB;;QAKA,IAAIG,WAAW,KAAK,CAAC,CAArB,EAAwB;UACtB,KAAI,CAAC7F,aAAL,CAAmBgG,MAAnB,CAA0BH,WAA1B,EAAuC,CAAvC;;UACA,KAAI,CAAC/E,MAAL,CAAY,KAAZ,EAAmB4B,YAAnB,oCAA4D,KAAI,CAAC1C,aAAL,CAAmB+C,MAA/E,GAAyF/F,gBAAgB,CAACuC,cAA1G;QACD;MAvByC;;MAI5C,KAAK,IAAIyD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2C,iBAAiB,CAAC5C,MAAtC,EAA8CC,CAAC,EAA/C,EAAmD;QAAA,iBAA1CA,CAA0C;;QAAA;MAoBlD;IACF;IAED;AACF;AACA;AACA;AACA;;;;WACE,eAAMyC,YAAN,EAA4B;MAAA;;MAC1B,IAAME,iBAAiB,GAAGF,YAAY,CAACvB,KAAb,CAAmB,GAAnB,CAA1B;;MAD0B,6BAEjBlB,CAFiB;QAGxB,IAAM4C,aAAa,GAAGD,iBAAiB,CAAC3C,CAAD,CAAjB,CAAqBkB,KAArB,CAA2B,GAA3B,CAAtB;QACA,IAAI0B,aAAa,CAAC7C,MAAd,KAAyB,CAA7B,EAAgC;UAAA;QAAA;QAEhC,IAAML,YAAY,GAAGkD,aAAa,CAAC,CAAD,CAAlC;QAEA,IAAItJ,UAAU,GAAG,IAAjB;;QACA,IAAIsJ,aAAa,CAAC7C,MAAd,GAAuB,CAA3B,EAA8B;UAC5BzG,UAAU,GAAGmJ,YAAY,CAACrK,OAAb,CAAqBsH,YAAY,GAAG,GAApC,EAAyC,EAAzC,CAAb;QACD;;QAED,MAAI,CAAC1C,aAAL,GAAqB,MAAI,CAACA,aAAL,CAAmBiG,MAAnB,CAA0B,UAACF,GAAD;UAAA,OAC7CA,GAAG,CAACrD,YAAJ,KAAqBA,YAArB,IACAqD,GAAG,CAACzJ,UAAJ,KAAmBA,UAF0B;QAAA,CAA1B,CAArB;MAbwB;;MAE1B,KAAK,IAAI0G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2C,iBAAiB,CAAC5C,MAAtC,EAA8CC,CAAC,EAA/C,EAAmD;QAAA,mBAA1CA,CAA0C;;QAAA;MAelD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,0BAAiBN,YAAjB,EAAuCpG,UAAvC,EAA2DzB,KAA3D,EAAuE;MACrE,KAAKiG,MAAL,CAAY4B,YAAZ,EAA0BpG,UAA1B,EAAsCzB,KAAtC;;MACA,KAAK,IAAImI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKhD,aAAL,CAAmB+C,MAAvC,EAA+CC,CAAC,EAAhD,EAAoD;QAClD,IAAMkD,QAAQ,GAAG,KAAKlG,aAAL,CAAmBgD,CAAnB,CAAjB;QACA,IAAMmD,cAAc,GAAGD,QAAQ,CAACxD,YAAT,KAA0BA,YAAjD;QACA,IAAM0D,qBAAqB,GAAG,CAAC,CAACF,QAAQ,CAAC5J,UAAzC;QACA,IAAI+J,gBAAgB,GAAG,KAAvB;;QACA,IAAI/J,UAAU,IAAI4J,QAAQ,CAAC5J,UAAvB,IACF4J,QAAQ,CAAC5J,UAAT,CAAoBgK,SAApB,CAA8BJ,QAAQ,CAAC5J,UAAT,CAAoByG,MAApB,GAA6B,CAA3D,MACA,GAFF,EAEO;UACLsD,gBAAgB,GAAG/J,UAAU,CAACiK,OAAX,CAAmBL,QAAQ,CAAC5J,UAAT,CAAoBgK,SAApB,CAA8B,CAA9B,EAClCJ,QAAQ,CAAC5J,UAAT,CAAoByG,MAApB,GAA6B,CADK,CAAnB,MACsB,CADzC;QAED,CALD,MAKO;UACLsD,gBAAgB,GAAGH,QAAQ,CAAC5J,UAAT,KAAwBA,UAA3C;QACD;;QAED,IAAI6J,cAAc,KAAK,CAACC,qBAAD,IAA0BC,gBAA/B,CAAlB,EAAoE;UAClEH,QAAQ,CAACR,QAAT,CAAkBpJ,UAAlB,EAA8BzB,KAA9B;QACD;MACF;IACF;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,yBAAgB2L,WAAhB,EAAqC9E,OAArC,EAAsD;MACpD,IAAI,CAACA,OAAL,EAAc;QACZA,OAAO,GAAG,KAAKY,yBAAL,CAA+BkE,WAA/B,CAAV;MACD;;MAED,KAAK1F,MAAL,CAAY,iBAAZ,EAA+B,IAA/B,EAAqC0F,WAAW,GAAG,IAAd,GAAqB9E,OAA1D,EACI1E,gBAAgB,CAACc,eADrB;MAGA,KAAKiC,aAAL,GAAqB8B,MAAM,CAAC2E,WAAD,CAA3B;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,yBAAgBC,OAAhB,EAAiC;MAC/B,IAAIA,OAAO,KAAK5M,SAAZ,IAAyB4M,OAAO,KAAKzJ,gBAAgB,CAAC6B,WAA1D,EAAuE;QACrE,KAAKkB,aAAL,GAAqB,CAArB;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,mBAAU2G,mBAAV,EAA+B;MAC7B,MAAM,IAAI9C,KAAJ,CACF,+CADE,CAAN;IAED;IAED;AACF;AACA;AACA;AACA;;;;WACE,+BAAsB+C,IAAtB,EAA4BrK,UAA5B,EAAwC;MAAA;;MACtC,IAAI,CAAC,KAAKmG,gBAAL,EAAL,EAA8B;QAC5BtD,OAAO,CAACC,KAAR,CACI,4EADJ;QAEA;MACD;MAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;MACI,SAASwH,WAAT,CAAqBC,CAArB,EAAwBC,CAAxB,EAA2BC,SAA3B,EAAsC;QACpC,IAAMC,OAAO,GAAGH,CAAC,CAACxD,KAAF,CAAQ0D,SAAR,CAAhB;QAEA,IAAIE,OAAJ;;QACA,IAAID,OAAO,KAAK,IAAZ,IAAoB,CAACC,OAAO,GAAGH,CAAC,CAACzD,KAAF,CAAQ0D,SAAR,CAAX,MAAmC,IAA3D,EAAiE;UAC/D,IAAMG,KAAK,GAAGC,MAAM,CAACH,OAAO,CAAC,CAAD,CAAR,CAApB;UACA,IAAMI,KAAK,GAAGD,MAAM,CAACF,OAAO,CAAC,CAAD,CAAR,CAApB;;UACA,IAAIC,KAAK,KAAKE,KAAd,EAAqB;YACnB,IAAIJ,OAAO,CAAC,CAAD,CAAP,KAAe,IAAnB,EAAyB;cACvB,OAAO,CAAC,CAAR;YACD,CAFD,MAEO,IAAIA,OAAO,CAAC,CAAD,CAAP,KAAe,MAAnB,EAA2B;cAChC,IAAIC,OAAO,CAAC,CAAD,CAAP,KAAe,IAAnB,EAAyB;gBACvB,OAAO,CAAP;cACD,CAFD,MAEO;gBACL,OAAO,CAAC,CAAR;cACD;YACF,CANM,MAMA;cACL,OAAO,CAAP;YACD;UACF;;UACD,OAAOC,KAAK,GAAGE,KAAf;QACD;;QAED,OAAO,IAAP;MACD;;MAED,IAAMC,WAAW,GAAG,oCAApB;MACA,IAAMC,WAAW,GAAG,kCAApB;MAEA,IAAMvO,MAAM,GAAGvB,MAAM,CAAC+P,IAAP,CAAYZ,IAAZ,EAAkBa,GAAlB,CAAsB,UAASC,GAAT,EAAc;QACjD,OAAO,CAAC5F,MAAM,CAAC4F,GAAD,CAAP,EAAcd,IAAI,CAACc,GAAD,CAAlB,CAAP;MACD,CAFc,CAAf,CA5CsC,CAgDtC;;MACA1O,MAAM,CAAC2O,IAAP,CAAY,uBAAyB;QAAA;QAAA,IAAfb,CAAe;QAAA,IAAZc,CAAY;;QAAA;QAAA,IAAPb,CAAO;QAAA,IAAJc,CAAI;;QACnC,IAAItM,IAAJ;;QACA,IAAI,CAACA,IAAI,GAAGsL,WAAW,CAACC,CAAD,EAAIC,CAAJ,EAAOO,WAAP,CAAnB,MAA4C,IAAhD,EAAsD;UACpD,OAAO/L,IAAP;QACD;;QACD,IAAI,CAACA,IAAI,GAAGsL,WAAW,CAACC,CAAD,EAAIC,CAAJ,EAAOQ,WAAP,CAAnB,MAA4C,IAAhD,EAAsD;UACpD,OAAOhM,IAAP;QACD;;QAED,IAAIuL,CAAC,GAAGC,CAAR,EAAW;UACT,OAAO,CAAC,CAAR;QACD;;QACD,IAAID,CAAC,GAAGC,CAAR,EAAW;UACT,OAAO,CAAP;QACD;;QACD,OAAO,CAAP;MACD,CAhBD;MAkBA,IAAIf,GAAJ;MACAhN,MAAM,CAAC8O,OAAP,CAAe,UAACC,OAAD,EAAa;QAC1B/B,GAAG,GAAG,EAAN;QACAA,GAAG,CAAC+B,OAAO,CAAC,CAAD,CAAR,CAAH,GAAkBA,OAAO,CAAC,CAAD,CAAzB;;QACA,MAAI,CAACC,YAAL,CAAkBhL,qDAAS,CAACgJ,GAAD,CAA3B,EAAkCzJ,UAAlC;MACD,CAJD;IAKD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,sBAAaqK,IAAb,EAAmBrK,UAAnB,EAA+B;MAC7B,IAAI,CAAC,KAAKmG,gBAAL,EAAL,EAA8B;QAC5BtD,OAAO,CAACC,KAAR,CACI,mEADJ;QAEA;MACD;;MAED9C,UAAU,GAAGA,UAAU,KAAKzC,SAAf,GAA2ByC,UAA3B,GAAwC,KAArD;MAEA,KAAK0L,YAAL,GAAoBrB,IAApB,CAT6B,CAW7B;;MACA,KAAK,IAAMc,GAAX,IAAkBd,IAAlB,EAAwB;QACtB,IAAI,GAAGlI,cAAH,CAAkBxD,IAAlB,CAAuB0L,IAAvB,EAA6Bc,GAA7B,KAAqCd,IAAI,CAACc,GAAD,CAA7C,EAAoD;UAClD,IAAMQ,iBAAiB,GAAG,CAAC3L,UAAU,GAAGA,UAAU,GAAG,GAAhB,GAAsB,EAAjC,IAAuCmL,GAAjE;UACA,IAAM5M,KAAK,GAAG8L,IAAI,CAACc,GAAD,CAAlB;;UAEA,IAAI5M,KAAK,CAAC,YAAD,CAAT,EAAyB;YACvB,KAAK,IAAImI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGnI,KAAK,CAAC,YAAD,CAAL,CAAoBkI,MAAxC,EAAgDC,CAAC,EAAjD,EAAqD;cACnD,KAAK+E,YAAL,CAAkBlN,KAAK,CAAC,YAAD,CAAL,CAAoBmI,CAApB,CAAlB,EACIiF,iBAAiB,GAAG,GAApB,GAA0BjF,CAD9B;YAED;UACF,CALD,MAKO,IAAInI,KAAK,CAACqN,WAAN,KAAsB1Q,MAA1B,EAAkC;YACvC,KAAKuQ,YAAL,CAAkBlN,KAAlB,EAAyBoN,iBAAzB;UACD,CAFM,MAEA;YACL,KAAKjG,WAAL,CAAiBiG,iBAAjB,EAAoCpN,KAApC;UACD;QACF;MACF;IACF;IAED;AACF;AACA;AACA;AACA;;;;WACE,iCAAwB;MACtB,IAAMuB,GAAG,GAAG,KAAKA,GAAjB,CADsB,CAEtB;MACA;;MACA,OAAOkC,IAAI,CAAC6J,SAAL,CAAe;QAAC/L,GAAG,EAAHA;MAAD,CAAf,CAAP;IACD;IAED;AACF;AACA;AACA;;;;WACE,iCAAwB;MACtB;MACA;MACA,OAAOkC,IAAI,CAACC,KAAL,CAAW,KAAK6J,qBAAL,EAAX,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,yBAAgBC,gBAAhB,EAAkC;MAChC,MAAM,IAAIzE,KAAJ,CACF,+CADE,CAAN;IAED;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,4BAAmB0E,GAAnB,EAAgCC,MAAhC,EAA2D;MAAA,IAAnBC,SAAmB,uEAAP,KAAO;MACzD,IAAMC,GAAG,GAAG,IAAZ;;MACA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAASJ,GAAT,EAAcC,MAAd,EAAsBtM,QAAtB,EAAgCmB,WAAhC,EAA6C;QAC3D,IAAMuL,YAAY,GAAG;UACnB,UAAU3L,gBAAgB,CAAC6B,WADR;UAEnB,aAAazB,WAAW,CAACuE;QAFN,CAArB;QAKA,IAAI5I,MAAJ;;QACA,IAAI,CAACkD,QAAQ,CAACuB,gBAAd,EAAgC;UAC9B,IAAMoL,OAAO,GAAG,IAAIC,cAAJ,EAAhB;UACAD,OAAO,CAACE,IAAR,CAAa,MAAb,EAAqBR,GAArB,EAA0BrM,QAAQ,CAACsB,WAAnC;;UAEA,IAAI/F,MAAM,CAAC+P,IAAP,CAAYtL,QAAQ,CAACiC,UAArB,EAAiC6E,MAArC,EAA6C;YAC3CvL,MAAM,CAAC+P,IAAP,CAAYtL,QAAQ,CAACiC,UAArB,EAAiC2J,OAAjC,CAAyC,UAACkB,MAAD,EAAY;cACnDH,OAAO,CAACI,gBAAR,CAAyBD,MAAzB,EAAiC9M,QAAQ,CAACiC,UAAT,CAAoB6K,MAApB,CAAjC;YACD,CAFD;UAGD;;UAEDH,OAAO,CAACK,eAAR,GAA0BhN,QAAQ,CAACkC,kBAAnC;;UAEA,IAAIlC,QAAQ,CAACsB,WAAb,EAA0B;YACxBqL,OAAO,CAACM,MAAR,GAAiB,UAASzH,CAAT,EAAY;cAC3B,IAAI,OAAOxF,QAAQ,CAACmC,eAAhB,KAAoC,UAAxC,EAAoD;gBAClDrF,MAAM,GAAGkD,QAAQ,CAACmC,eAAT,CAAyBwK,OAAzB,CAAT;cACD,CAFD,MAEO;gBACL7P,MAAM,GAAGuF,IAAI,CAACC,KAAL,CAAWqK,OAAO,CAACpK,YAAnB,CAAT;cACD;YACF,CAND;UAOD;;UACD,IAAI;YACF+J,MAAM,GAAGtM,QAAQ,CAAC6C,cAAT,CAAwByJ,MAAxB,CAAT;;YACA,IAAIA,MAAM,YAAYY,KAAtB,EAA6B;cAC3BP,OAAO,CAACI,gBAAR,CAAyB,cAAzB,EACI,mCADJ;cAEAJ,OAAO,CAACQ,IAAR,CAAab,MAAM,CAACc,IAAP,CAAY,GAAZ,CAAb;YACD,CAJD,MAIO;cACLT,OAAO,CAACI,gBAAR,CAAyB,cAAzB,EACI/M,QAAQ,CAAC0B,qBADb;cAEAiL,OAAO,CAACQ,IAAR,CAAa9K,IAAI,CAAC6J,SAAL,CAAeI,MAAf,CAAb;YACD;;YAED,IAAI,CAACtM,QAAQ,CAACsB,WAAd,EAA2B;cACzB,IAAI,OAAOtB,QAAQ,CAACmC,eAAhB,KAAoC,UAAxC,EAAoD;gBAClDrF,MAAM,GAAGkD,QAAQ,CAACmC,eAAT,CAAyBwK,OAAzB,CAAT;cACD,CAFD,MAEO;gBACL7P,MAAM,GAAGuF,IAAI,CAACC,KAAL,CAAWqK,OAAO,CAACpK,YAAnB,CAAT;cACD;YACF,CAND,MAMO;cACLzF,MAAM,GAAG,EAAT;cACAA,MAAM,CAACA,MAAP,GAAgBiE,gBAAgB,CAAC2B,UAAjC;cACA5F,MAAM,CAAC6F,SAAP,GAAmB,CAAnB;cACA6J,GAAG,CAAC5H,gBAAJ,CAAqB,eAArB;cACA,OAAO9H,MAAP;YACD;UACF,CAzBD,CAyBE,OAAO0I,CAAP,EAAU;YACVtC,OAAO,CAACC,KAAR,CAAcqC,CAAd;YACAgH,GAAG,CAAC5H,gBAAJ,CAAqB,aAArB;YACA,OAAO8H,YAAP;UACD;QACF,CAnDD,MAmDO;UACL,IAAI;YACFJ,MAAM,GAAGtM,QAAQ,CAAC6C,cAAT,CAAwByJ,MAAxB,CAAT;YACAe,KAAK,CAAChB,GAAD,EAAM;cACTiB,MAAM,EAAE,MADC;cAETC,IAAI,EAAEjB,MAAM,YAAYY,KAAlB,GAA0BZ,MAAM,CAACc,IAAP,CAAY,GAAZ,CAA1B,GAA6C/K,IAAI,CAAC6J,SAAL,CAAeI,MAAf,CAF1C;cAGTkB,OAAO,kCACFxN,QAAQ,CAACiC,UADP;gBAEL,gBAAgBjC,QAAQ,CAAC0B;cAFpB,EAHE;cAOT+L,WAAW,EAAEzN,QAAQ,CAACkC,kBAAT,GAA8B,SAA9B,GAA0CtE,SAP9C;cAQT8P,SAAS,EAAE1N,QAAQ,CAAC2D,cAAT;YARF,CAAN,CAAL;YAUA7G,MAAM,GAAG,EAAT;YACAA,MAAM,CAACA,MAAP,GAAgBiE,gBAAgB,CAAC2B,UAAjC;YACA5F,MAAM,CAAC6F,SAAP,GAAmB,CAAnB;UACD,CAfD,CAeE,OAAO6C,CAAP,EAAU;YACVtC,OAAO,CAACC,KAAR,CAAcqC,CAAd;YACAgH,GAAG,CAAC5H,gBAAJ,CAAqB,aAArB;YACA,OAAO8H,YAAP;UACD;QACF;;QAED,IAAI,OAAO5P,MAAP,KAAkB,WAAtB,EAAmC;UACjC0P,GAAG,CAAC5H,gBAAJ,CAAqB,aAArB;UACA,OAAO8H,YAAP;QACD;;QAED,IAAI5P,MAAM,CAACA,MAAP,KAAkB,IAAlB,IACFA,MAAM,CAACA,MAAP,KAAkBiE,gBAAgB,CAAC2B,UADrC,EACiD;UAC/C8J,GAAG,CAAC5H,gBAAJ,CAAqB,eAArB;QACD,CAHD,MAGO;UACL4H,GAAG,CAAC5H,gBAAJ,CAAqB,aAArB;QACD;;QAED,OAAO9H,MAAP;MACD,CA9FD;;MAgGA,IAAI,OAAOP,wDAAP,KAAoB,WAAxB,EAAqC;QACnC,IAAMkC,SAAS,GAAGlC,sDAAQ,CAACkQ,OAAD,EAAU,GAAV,CAA1B;QACAhO,SAAS,CAAC4N,GAAD,EAAMC,MAAN,EAAc,KAAKtM,QAAnB,EAA6B,KAAKmB,WAAlC,CAAT,CAFmC,CAInC;;QACA,IAAIoL,SAAJ,EAAe;UACb9N,SAAS,CAACD,KAAV;QACD;;QAED,OAAO;UACL1B,MAAM,EAAEiE,gBAAgB,CAAC2B,UADpB;UAELC,SAAS,EAAE;QAFN,CAAP;MAID,CAbD,MAaO;QACL,OAAO8J,OAAO,CAACJ,GAAD,EAAMC,MAAN,EAAc,KAAKtM,QAAnB,EAA6B,KAAKmB,WAAlC,CAAd;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,wBAAewM,IAAf,EAA6BlE,QAA7B,EAA+C;MAC7C,sCAAgB,IAAImE,eAAJ,CAAoB,IAApB,EAA0BD,IAA1B,EAAgClE,QAAhC,CAAhB;;MACA,KAAK5E,MAAL,CAAY,gBAAZ,EAA8B,EAA9B,EAAkC,WAAlC,EACI9D,gBAAgB,CAACyC,eADrB;IAED;IAED;AACF;AACA;;;;WACE,gCAAuB;MACrB,0BAAI,IAAJ,aAAmB;QACjB,sCAAclF,MAAd;;QACA,sCAAgB,IAAhB;;QACA,KAAKuG,MAAL,CAAY,sBAAZ,EAAoC,EAApC,EAAwC,SAAxC,EACI9D,gBAAgB,CAACyC,eADrB;MAED;IACF;;;;;AAGH;AACA;AACA;;;;;;;;;;;;;IACMoK;EAMJ;AACF;AACA;AACA;AACA;AACA;EACE,yBAAYC,GAAZ,EAAsBF,IAAtB,EAAoClE,QAApC,EAAsD;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA,OAVzC;IAUyC;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IACpD,kCAAYoE,GAAZ;;IACA,uCAAgB9P,UAAU,CAAC,KAAK+P,OAAL,CAAaC,IAAb,CAAkB,IAAlB,CAAD,EAA0BJ,IAA1B,CAA1B;;IACA,uCAAiBlE,QAAjB;EACD;EAED;AACF;AACA;;;;;WACE,kBAAS;MACP,wCAAkB,IAAlB;;MACA,0BAAI,IAAJ,cAAmB;QACjBlL,YAAY,uBAAC,IAAD,aAAZ;MACD;IACF;IAED;AACF;AACA;;;;WACE,mBAAU;MACR,IAAI,uBAAC,IAAD,aAAJ,EAAsB;QACpB,kCAAUyP,MAAV,uBAAiB,IAAjB;MACD;IACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvvCH;AACA;AAOA;AACA;AACA;AAEA,IAAMM,iBAAiB,GAAGzN,wEAA1B;AACA,IAAME,gBAAgB,GAAGF,uEAAzB;AACA,IAAMG,mBAAmB,GAAGJ,sEAA5B;AAEA;AACA;AACA;;IACqBnB;;;;;EACnB;AACF;AACA;AACA;EACE,oBAAYO,QAAZ,EAA0B;IAAA;;IAAA;;IACxB,IAAMC,aAAa,mCACd;MACDC,gBAAgB,EAAE;IADjB,CADc,GAGXF,QAHW,CAAnB;;IAMA,0BAAMgB,mBAAN,EAA2Bf,aAA3B;IAEA,MAAKE,GAAL,GAAW,IAAIT,iDAAJ,EAAX;IACA,MAAKU,GAAL,GAAW,IAAIN,iDAAJ,EAAX,CAVwB,CAYxB;;IACA,MAAKyO,aAAL,GAAqB,MAAKC,aAA1B;IACA,MAAKC,SAAL,GAAiB,MAAKC,SAAtB;IACA,MAAKC,WAAL,GAAmB,MAAKC,WAAxB;IACA,MAAKC,WAAL,GAAmB,MAAKC,WAAxB;IACA,MAAKC,SAAL,GAAiB,MAAKC,SAAtB;IACA,MAAKC,eAAL,GAAuB,MAAKC,eAA5B;IACA,MAAKC,iBAAL,GAAyB,MAAKC,iBAA9B;IACA,MAAKC,gBAAL,GAAwB,MAAKC,gBAA7B;IApBwB;EAqBzB;EAED;AACF;AACA;AACA;AACA;;;;;WACE,yBAAgB;MACd,KAAKnP,GAAL,CAAS6I,UAAT;MACA,OAAO,KAAKA,UAAL,CAAgB,eAAhB,EAAiC,8BAAjC,EACH,0BADG,CAAP;IAED;IAED;AACF;AACA;AACA;AACA;;;;WACE,qBAAY;MACV,IAAMlM,MAAM,GAAG,KAAKyS,SAAL,CAAe,WAAf,EAA4B,IAA5B,CAAf;;MAEA,IAAIzS,MAAM,KAAKiE,gBAAgB,CAAC2B,UAAhC,EAA4C;QAC1C,IAAI,KAAKtC,GAAL,CAASoP,KAAT,KAAmB,EAAvB,EAA2B;UACzB,IAAI,KAAKpP,GAAL,CAASoP,KAAT,KAAmB,UAAvB,EAAmC;YACjC,KAAK5K,gBAAL,CAAsB,cAAtB;UACD,CAFD,MAEO;YACL,KAAKA,gBAAL,CAAsB,kBAAtB;UACD;QACF,CAND,MAMO,IAAI,KAAK5E,QAAL,CAAc2B,YAAlB,EAAgC;UACrC,KAAKiD,gBAAL,CAAsB,cAAtB;QACD;MACF;;MAED,OAAO9H,MAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,qBAAYuD,UAAZ,EAAwB;MACtB,OAAO,KAAKoP,QAAL,CAAc,aAAd,EAA6B,KAA7B,EAAoCpP,UAApC,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAYA,UAAZ,EAAwBzB,KAAxB,EAA+B;MAC7B,OAAO,KAAK8Q,QAAL,CAAc,aAAd,EAA6B,WAA7B,EAA0C,KAA1C,EAAiDrP,UAAjD,EAA6DzB,KAA7D,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,qBAAY;MACV,OAAO,KAAKoP,MAAL,CAAY,WAAZ,EAAyB,KAAzB,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,2BAAkB;MAChB,OAAO,KAAK2B,YAAL,CAAkB,iBAAlB,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,2BAAkBvJ,YAAlB,EAAgC;MAC9B,OAAO,KAAKwJ,cAAL,CAAoB,mBAApB,EAAyCxJ,YAAzC,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,0BAAiBA,YAAjB,EAA+B;MAC7B,OAAO,KAAKyJ,aAAL,CAAmB,kBAAnB,EAAuCzJ,YAAvC,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAY/F,UAAZ,EAAwBzB,KAAxB,EAA+B;MAC7B,OAAO,KAAKkR,kBAAL,CAAwB,aAAxB,EAAuC,KAAvC,EAA8CzP,UAA9C,EAA0DzB,KAA1D,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,qBAAYyB,UAAZ,EAAwB;MACtB,OAAO,KAAK0P,kBAAL,CAAwB,aAAxB,EAAuC,KAAvC,EAA8C1P,UAA9C,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,yBAAgBA,UAAhB,EAA4BzB,KAA5B,EAAmC0B,eAAnC,EAAoD;MAClD,IAAIC,QAAJ;;MAEA,IAAI,KAAKC,aAAL,CAAmBH,UAAnB,EAA+B,yBAA/B,CAAJ,EAA+D;QAC7DE,QAAQ,GAAG,IAAI6N,iEAAJ,EAAX;MACD,CAFD,MAEO,IAAI9N,eAAe,IAAI,KAAKE,aAAL,CAAmBH,UAAnB,EAC1B,sDAD0B,CAAvB,EACsD;QAC3DE,QAAQ,GAAG,IAAI0N,mFAAJ,EAAX;MACD,CAHM,MAGA,IAAI3N,eAAe,IAAI,KAAKE,aAAL,CAAmBH,UAAnB,EAC1B,+CAD0B,CAAvB,EAC+C;QACpDE,QAAQ,GAAG,IAAI4N,6EAAJ,EAAX;MACD,CAHM,MAGA,IAAI,CAAC7N,eAAD,IACP,KAAKE,aAAL,CAAmBH,UAAnB,EAA+B,2BAA/B,CADG,EAC0D;QAC/DE,QAAQ,GAAG,IAAI2N,mEAAJ,EAAX;MACD;;MAED,OAAO3N,QAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,iCAAwBF,UAAxB,EAAoCzB,KAApC,EAA2C;MACzC,OAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,mCAA0B2L,WAA1B,EAAuCyF,MAAvC,EAA+C;MAC7C,IAAIC,YAAY,GAAG,UAAnB;MACA,IAAIC,aAAa,GAAG,UAApB,CAF6C,CAI7C;;MACA3F,WAAW,GAAG3E,MAAM,CAAC2E,WAAD,CAApB;;MACA,IAAI+D,iBAAiB,CAAC6B,kBAAlB,CAAqC5F,WAArC,CAAJ,EAAuD;QACrD0F,YAAY,GAAG3B,iBAAiB,CAAC6B,kBAAlB,CAAqC5F,WAArC,EAAkD0F,YAAjE;QACAC,aAAa,GAAG5B,iBAAiB,CAAC6B,kBAAlB,CAAqC5F,WAArC,EAAkD2F,aAAlE;MACD;;MAED,OAAOF,MAAM,GAAGE,aAAH,GAAmBD,YAAhC;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,oCAA2BxP,MAA3B,EAAmC;MACjC;MACA,KAAKN,GAAL,GAAWM,MAAM,CAACN,GAAlB;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,yBAAgBiQ,eAAhB,EAA0C;MACxC,IAAMC,SAAS,GAAG,KAAKC,qBAAL,EAAlB;;MAEA,IAAIF,eAAJ,EAAqB;QACnBC,SAAS,CAAClQ,GAAV,CAAcoQ,IAAd,CAAmBC,UAAnB,GAAgC,KAAKrQ,GAAL,CAASsQ,mBAAT,EAAhC;MACD;;MAED,IAAM3T,MAAM,GAAG,EAAf;MACA,IAAM4T,SAAS,GAAGrC,+CAAA,CAAkBgC,SAAlB,CAAlB;;MACA,QAAQ,KAAKrQ,QAAL,CAAcyB,gBAAtB;QACE,KAAK,WAAL;UACE,OAAO4M,+CAAA,CAAkBgC,SAAlB,CAAP;;QACF,KAAK,QAAL;UACE,KAAK,IAAMzH,IAAX,IAAmB8H,SAAnB,EAA8B;YAC5B,IAAI,GAAGlO,cAAH,CAAkBxD,IAAlB,CAAuB0R,SAAvB,EAAkC9H,IAAlC,CAAJ,EAA6C;cAC3C9L,MAAM,CAACmM,IAAP,WAAeL,IAAf,cAAuB8H,SAAS,CAAC9H,IAAD,CAAhC;YACD;UACF;;UACD,OAAO9L,MAAP;;QACF,KAAK,MAAL;QACA;UACE,OAAOuT,SAAP;MAZJ;IAcD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,mBAAUD,eAAV,EAAoC;MAClC,IAAIA,eAAJ,EAAqB;QACnB,IAAMQ,cAAc,GAAG,KAAKzQ,GAAL,CAASoQ,IAAT,CAAcM,aAArC;;QACA,IAAID,cAAc,KAAK,eAAvB,EAAwC;UACtC,KAAKzQ,GAAL,CAASoQ,IAAT,CAAcM,aAAd,GAA8B,WAA9B;QACD;;QAED,IAAI,KAAK1Q,GAAL,CAASoQ,IAAT,CAAcO,WAAd,KAA8B,QAAlC,EAA4C;UAC1C,IAAI,KAAK3Q,GAAL,CAASoQ,IAAT,CAAcQ,MAAd,KAAyB,QAA7B,EAAuC;YACrC,IAAI,KAAK/Q,QAAL,CAAcE,gBAAd,IACA,KAAKC,GAAL,CAAS6Q,YAAT,CAAsBC,aAAtB,KAAwC,EADxC,IAEA,KAAK9Q,GAAL,CAASoQ,IAAT,CAAcW,KAAd,CAAoBC,GAApB,KAA4B,EAFhC,EAEoC;cAClC,IAAIC,UAAU,CAAC,KAAKjR,GAAL,CAASoQ,IAAT,CAAcW,KAAd,CAAoBC,GAArB,CAAV,IAAuCC,UAAU,CAAC,KAAKjR,GAAL,CAAS6Q,YAAT,CAAsBC,aAAvB,CAArD,EAA4F;gBAC1F,KAAK9Q,GAAL,CAASoQ,IAAT,CAAcM,aAAd,GAA8B,QAA9B;cACD,CAFD,MAEO;gBACL,KAAK1Q,GAAL,CAASoQ,IAAT,CAAcM,aAAd,GAA8B,QAA9B;cACD;YACF;UACF;QACF,CAZD,MAYO,IAAI,KAAK1Q,GAAL,CAASoQ,IAAT,CAAcO,WAAd,KAA8B,QAAlC,EAA4C;UAAA;;UACjD,IAAI,CAAC,4BAAK/E,YAAL,mGAAmB5L,GAAnB,0GAAwBoQ,IAAxB,kFAA8BM,aAA9B,KAA+C,EAAhD,MAAwD,EAAxD,IAA8DD,cAAc,KAAK,eAArF,EAAsG;YACpG,KAAKzQ,GAAL,CAASoQ,IAAT,CAAcM,aAAd,GAA8B,SAA9B;UACD;QACF;MACF;;MAED,IAAM/N,YAAY,GAAG,KAAKuO,eAAL,CAAqBjB,eAAe,IACrD,KAAKpQ,QAAL,CAAc+B,mBADG,CAArB;;MAGA,IAAI,KAAKiC,WAAL,KAAqBjD,gBAAgB,CAACyC,eAA1C,EAA2D;QACzDN,OAAO,CAACO,KAAR,CAAc,0BAA0B2M,eAAe,GAAG,KAAH,GAAW,IAApD,IAA4D,KAA1E;QACAlN,OAAO,CAACO,KAAR,CAAcX,YAAd;MACD;;MACD,IAAI,KAAK9C,QAAL,CAAcwB,YAAlB,EAAgC;QAC9B,OAAO,KAAK8P,kBAAL,CAAwB,KAAKtR,QAAL,CAAcwB,YAAtC,EAAoDsB,YAApD,EAAkEsN,eAAlE,CAAP;MACD,CAFD,MAEO;QACL,OAAOrP,gBAAgB,CAAC2B,UAAxB;MACD;IACF;;;;EA9RqCxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBxC;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAM0Q,mBAAmB,GAAG/Q,0EAA5B;AACA,IAAME,gBAAgB,GAAGF,uEAAzB;AACA,IAAMgR,qBAAqB,GAAGjR,wEAA9B;AACA,IAAMkR,iBAAiB,GAAGL,6EAA1B;AACA,IAAMO,eAAe,GAAGL,kEAAxB;AAEA;AACA;AACA;;;;IACqBM;;;;;EAGnB;AACF;AACA;AACA;EACE,sBAAYjS,QAAZ,EAA0B;IAAA;;IAAA;;IACxB,IAAMC,aAAa,mCACd;MACDC,gBAAgB,EAAE;IADjB,CADc,GAGXF,QAHW,CAAnB;;IAMA,0BAAM6R,qBAAN,EAA6B5R,aAA7B;;IAPwB;MAAA;MAAA;IAAA;;IAAA,yEAyTD,UAACiS,gBAAD,EAAmBC,aAAnB,EAAkCvT,KAAlC,EAA4C;MACnE,IAAIwT,KAAK,GAAG,KAAZ;MACA,IAAMC,KAAK,GAAGH,gBAAgB,CAACI,MAA/B;;MACA,KAAK,IAAIvL,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsL,KAAJ,IAAa,CAACD,KAA9B,EAAqCrL,CAAC,EAAtC,EAA0C;QACxC,IAAIA,CAAC,KAAKoL,aAAN,IAAuBD,gBAAgB,CAACrJ,UAAjB,CAA4B9B,CAA5B,MAAmCnI,KAA9D,EAAqE;UACnEwT,KAAK,GAAG,IAAR;QACD;MACF;;MACD,OAAOA,KAAP;IACD,CAlUyB;;IASxB,MAAKjS,GAAL,GAAW,IAAIT,mDAAJ,EAAX;IACA,MAAK6S,GAAL,GAAW,IAAIhB,mDAAJ,EAAX,CAVwB,CAYxB;;IACA,MAAKiB,UAAL,GAAkB,MAAKhE,aAAvB;IACA,MAAKiE,SAAL,GAAiB,MAAKC,YAAtB;IACA,MAAKC,QAAL,GAAgB,MAAK/D,WAArB;IACA,MAAKgE,QAAL,GAAgB,MAAK9D,WAArB;IACA,MAAK+D,MAAL,GAAc,MAAK7D,SAAnB;IACA,MAAK8D,YAAL,GAAoB,MAAK5D,eAAzB;IACA,MAAK6D,cAAL,GAAsB,MAAK3D,iBAA3B;IACA,MAAK4D,aAAL,GAAqB,MAAK1D,gBAA1B;IApBwB;EAqBzB;EAED;AACF;AACA;AACA;;;;;SACE,eAAc;MACZ,6BAAO,IAAP;IACD;IAED;AACF;AACA;;;;WACE,yBAAgB;MACd,KAAKnP,GAAL,CAAS6I,UAAT;MACA,OAAO,KAAKA,UAAL,CAAgB,YAAhB,CAAP;IACD;IAED;AACF;AACA;;;;WACE,wBAAe;MACb,IAAMlM,MAAM,GAAG,KAAKyS,SAAL,CAAe,WAAf,EAA4B,IAA5B,CAAf;;MAEA,IAAIzS,MAAM,KAAKiE,gBAAgB,CAAC2B,UAAhC,EAA4C;QAC1C,IAAI,KAAK6P,GAAL,CAASnS,GAAT,CAAa6S,OAAb,KAAyB,QAA7B,EAAuC;UACrC,QAAQ,KAAKV,GAAL,CAASnS,GAAT,CAAa6S,OAArB;YACE,KAAK,UAAL;cACE,KAAKrO,gBAAL,CAAsB,cAAtB;cACA;;YACF,KAAK,UAAL;cACE,KAAKA,gBAAL,CAAsB,kBAAtB;cACA;;YACF,KAAK,QAAL;cACE,KAAKA,gBAAL,CAAsB,gBAAtB;cACA;;YACF,KAAK,MAAL;cACE,KAAKA,gBAAL,CAAsB,cAAtB;cACA;;YACF,KAAK,SAAL;cACE,KAAKA,gBAAL,CAAsB,iBAAtB;cACA;;YACF,KAAK,SAAL;cACE,KAAKA,gBAAL,CAAsB,iBAAtB;cACA;;YACF,KAAK,YAAL;cACE,KAAKA,gBAAL,CAAsB,oBAAtB;cACA;UArBJ;QAuBD,CAxBD,MAwBO,IAAI,KAAK5E,QAAL,CAAc2B,YAAlB,EAAgC;UACrC,KAAKiD,gBAAL,CAAsB,cAAtB;QACD;MACF;;MAED,OAAO9H,MAAP;IACD;IAED;AACF;AACA;AACA;;;;WACE,qBAAYuD,UAAZ,EAAwB;MACtB,OAAO,KAAKoP,QAAL,CAAc,UAAd,EAA0B,IAA1B,EAAgCpP,UAAhC,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,qBAAYA,UAAZ,EAAwBzB,KAAxB,EAA+B;MAC7B,OAAO,KAAK8Q,QAAL,CAAc,UAAd,EAA0B,QAA1B,EAAoC,IAApC,EAA0CrP,UAA1C,EAAsDzB,KAAtD,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,qBAAY;MACV,OAAO,KAAKoP,MAAL,CAAY,QAAZ,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;;;;WACE,2BAAkB;MAChB,OAAO,KAAK2B,YAAL,CAAkB,cAAlB,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,2BAAkBvJ,YAAlB,EAAgC;MAC9B,OAAO,KAAKwJ,cAAL,CAAoB,gBAApB,EAAsCxJ,YAAtC,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,0BAAiBA,YAAjB,EAA+B;MAC7B,OAAO,KAAKyJ,aAAL,CAAmB,eAAnB,EAAoCzJ,YAApC,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,qBAAY/F,UAAZ,EAAwBzB,KAAxB,EAA+B;MAC7B,OAAO,KAAKkR,kBAAL,CAAwB,UAAxB,EAAoC,IAApC,EAA0CzP,UAA1C,EAAsDzB,KAAtD,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,yBAAgByB,UAAhB,EAA4BzB,KAA5B,EAAmC0B,eAAnC,EAAoD;MAClD,IAAIC,QAAJ;;MAEA,IAAI,KAAKC,aAAL,CAAmBH,UAAnB,EAA+B,yBAA/B,CAAJ,EAA+D;QAC7DE,QAAQ,GAAG,IAAI6N,mEAAJ,EAAX;MACD,CAFD,MAEO,IAAI9N,eAAe,IAAI,KAAKE,aAAL,CAAmBH,UAAnB,EAC1B,sDAD0B,CAAvB,EACsD;QAC3D,IAAM6S,KAAK,GAAG7S,UAAU,CAAC4H,KAAX,CAAiB,GAAjB,CAAd;QACA,IAAMS,KAAK,GAAGwC,MAAM,CAACgI,KAAK,CAAC,CAAD,CAAN,CAApB;QACA,IAAMC,WAAW,GAAG,KAAKhT,GAAL,CAASiT,YAAT,CAAsBvK,UAAtB,CAAiCH,KAAjC,CAApB;;QACA,IAAI,KAAKrE,aAAL,EAAJ,EAA0B;UACxB,IAAI,CAAC8O,WAAW,CAACtU,IAAjB,EAAuB;YACrB,KAAKyF,eAAL,CACIuN,qBAAqB,CAACwB,0BAD1B;UAED,CAHD,MAGO;YACL,KAAKC,4BAAL,CAAkCH,WAAlC,EAA+CvU,KAA/C;YAEA,IAAM2U,aAAa,GAAGzB,iBAAiB,CAACqB,WAAW,CAACtU,IAAb,CAAvC;;YACA,IAAI0U,aAAJ,EAAmB;cACjB,KAAKC,sBAAL,CAA4BD,aAA5B,EAA2C3U,KAA3C,EAAkDuU,WAAW,CAACtU,IAA9D;YACD,CAFD,MAEO;cACL,KAAKyF,eAAL,CAAqBuN,qBAAqB,CAAC4B,mBAA3C,EACI,8BAA8BN,WAAW,CAACtU,IAD9C;YAED;UACF;QACF;;QACD,IAAI,KAAKiF,aAAL,KAAuB,CAA3B,EAA8B;UAC5BvD,QAAQ,GAAG,IAAI0N,qFAAJ,EAAX;QACD;MACF,CAxBM,MAwBA,IAAI3N,eAAe,IAAI,KAAKE,aAAL,CAAmBH,UAAnB,EAC1B,+CAD0B,CAAvB,EAC+C;QACpDE,QAAQ,GAAG,IAAI4N,+EAAJ,EAAX;MACD,CAHM,MAGA,IAAI,CAAC7N,eAAD,IACP,KAAKE,aAAL,CAAmBH,UAAnB,EAA+B,2BAA/B,CADG,EAC0D;QAC/DE,QAAQ,GAAG,IAAI2N,qEAAJ,EAAX;MACD,CAHM,MAGA,IAAI,KAAK1N,aAAL,CAAmBH,UAAnB,EACP,oCADO,CAAJ,EACoC;QACzCE,QAAQ,GAAG,IAAIiR,iEAAJ,EAAX;MACD,CAHM,MAGA,IAAI,KAAKhR,aAAL,CAAmBH,UAAnB,EACP,gCADO,CAAJ,EACgC;QACrCE,QAAQ,GAAG,IAAIiR,iEAAJ,CAAsB,IAAtB,CAAX;MACD;;MAED,OAAOjR,QAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,gCAAuBgT,aAAvB,EAAsC3U,KAAtC,EAA6C8U,gBAA7C,EAA+D;MAC7D,IAAIC,KAAK,GAAG,EAAZ;;MACA,IAAIJ,aAAJ,aAAIA,aAAJ,eAAIA,aAAa,CAAEK,SAAnB,EAA8B;QAC5BD,KAAK,GAAG/N,MAAM,CAAChH,KAAD,CAAN,CAAcqJ,KAAd,CAAoBsL,aAAa,CAACK,SAAlC,CAAR;MACD,CAFD,MAEO;QACLD,KAAK,CAAC,CAAD,CAAL,GAAW/U,KAAX;MACD;;MAED,IAAI+U,KAAK,CAAC7M,MAAN,GAAe,CAAf,IAAoB6M,KAAK,CAAC7M,MAAN,IAAgByM,aAAa,CAACrX,GAAtD,EAA2D;QACzD,KAAK2X,yBAAL,CAA+BH,gBAA/B,EAAiDC,KAAjD,EAAwD/U,KAAxD;MACD,CAFD,MAEO,IAAI+U,KAAK,CAAC7M,MAAN,GAAeyM,aAAa,CAACrX,GAAjC,EAAsC;QAC3C,KAAKoI,eAAL,CAAqBuN,qBAAqB,CAAC4B,mBAA3C,EACI,qCADJ;MAED;IACF;IAED;AACF;AACA;AACA;AACA;;;;WACE,sCAA6BN,WAA7B,EAA0CvU,KAA1C,EAAiD;MAC/C,IAAMkV,iBAAiB,GAAGX,WAAW,CAACrB,iBAAZ,CAA8BQ,MAAxD;;MACA,IAAIa,WAAW,CAACtU,IAAZ,KAAqB,QAAzB,EAAmC;QACjC,KAAK,IAAIkI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+M,iBAAJ,IAAyB,KAAKhQ,aAAL,KACzC,CADA,EACGiD,CAAC,EADJ,EACQ;UACN,IAAMgN,QAAQ,GAAGZ,WAAW,CAACrB,iBAAZ,CAA8BjJ,UAA9B,CAAyC9B,CAAzC,CAAjB;;UACA,IAAIgN,QAAQ,CAACC,OAAT,KAAqBpV,KAAzB,EAAgC;YAC9B,KAAK0F,eAAL,CAAqBuN,qBAAqB,CAAC4B,mBAA3C;UACD;QACF;MACF;IACF;IAED;AACF;AACA;AACA;AACA;;;;WACE,iCAAwBpT,UAAxB,EAAoCzB,KAApC,EAA2C;MACzC,IAAMsU,KAAK,GAAG7S,UAAU,CAAC4H,KAAX,CAAiB,GAAjB,CAAd;MACA,IAAMS,KAAK,GAAGwC,MAAM,CAACgI,KAAK,CAAC,CAAD,CAAN,CAApB;MACA,IAAMe,aAAa,GAAG/I,MAAM,CAACgI,KAAK,CAAC,CAAD,CAAN,CAA5B;MACA,IAAMC,WAAW,GAAG,KAAKhT,GAAL,CAASiT,YAAT,CAAsBvK,UAAtB,CAAiCH,KAAjC,CAApB;MAEA,IAAMoL,iBAAiB,GAAGX,WAAW,CAACrB,iBAAZ,CAA8BQ,MAAxD;MACA,KAAKgB,4BAAL,CAAkCH,WAAlC,EAA+CvU,KAA/C;MAEA,IAAM2U,aAAa,GAAGzB,iBAAiB,CAACqB,WAAW,CAACtU,IAAb,CAAvC;;MACA,IAAI,OAAO0U,aAAa,CAACW,KAArB,KAA+B,WAA/B,IAA8CJ,iBAAiB,IAC/DP,aAAa,CAACW,KADlB,EACyB;QACvB,KAAKV,sBAAL,CAA4BD,aAA5B,EAA2C3U,KAA3C,EAAkDuU,WAAW,CAACtU,IAA9D;;QAEA,IAAI,KAAKiF,aAAL,KAAuB,CAAvB,KACC,CAACyP,aAAa,CAACY,SAAf,IACG,CAAC,KAAKC,sBAAL,CAA4BjB,WAAW,CAACrB,iBAAxC,EACGmC,aADH,EACkBrV,KADlB,CAFL,KAIC,KAAKkF,aAAL,KAAuB,CAAvB,IAA4BlF,KAAK,KAAK,EAJ3C,EAIgD,CAC9C;QACD,CAND,MAMO;UACL,IAAI,KAAKkF,aAAL,KAAuB,CAA3B,EAA8B;YAC5B,KAAKQ,eAAL,CAAqBuN,qBAAqB,CAAC4B,mBAA3C,EACI,2CADJ;UAED;QACF;MACF,CAhBD,MAgBO;QACL,KAAKnP,eAAL,CAAqBuN,qBAAqB,CAAC4B,mBAA3C,EACI,6CADJ;MAED;IACF;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,qBAAYpT,UAAZ,EAAwB;MACtB,OAAO,KAAK0P,kBAAL,CAAwB,UAAxB,EAAoC,IAApC,EAA0C1P,UAA1C,CAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;WACE,mCAA0BkK,WAA1B,EAAuCyF,MAAvC,EAA+C;MAC7C,IAAIC,YAAY,GAAG,EAAnB;MACA,IAAIC,aAAa,GAAG,EAApB,CAF6C,CAI7C;;MACA3F,WAAW,GAAG3E,MAAM,CAAC2E,WAAD,CAApB;;MACA,IAAIqH,mBAAmB,CAACzB,kBAApB,CAAuC5F,WAAvC,CAAJ,EAAyD;QACvD0F,YAAY,GAAG2B,mBAAmB,CAACzB,kBAApB,CAAuC5F,WAAvC,EAAoD0F,YAAnE;QACAC,aAAa,GAAG0B,mBAAmB,CAACzB,kBAApB,CAAuC5F,WAAvC,EAAoD2F,aAApE;MACD;;MAED,OAAOF,MAAM,GAAGE,aAAH,GAAmBD,YAAhC;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;;;;;IAYE;AACF;AACA;AACA;AACA;AACA;IACE,mCAA0ByD,gBAA1B,EAA4CC,KAA5C,EAAmD/U,KAAnD,EAA0D;MACxD,IAAMmV,QAAQ,GAAGjC,iBAAiB,CAAC4B,gBAAD,CAAlC;MACA,IAAMW,WAAW,GAAG,IAAIC,MAAJ,CAAWP,QAAQ,CAACQ,MAApB,CAApB;;MACA,KAAK,IAAIxN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4M,KAAK,CAAC7M,MAAV,IAAoB,KAAKhD,aAAL,KAAuB,CAA3D,EAA8DiD,CAAC,EAA/D,EAAmE;QACjE,IAAI2M,gBAAgB,CAACtM,KAAjB,CACA,0DADA,CAAJ,EACiE;UAC/DuM,KAAK,CAAC5M,CAAD,CAAL,GAAW,KAAKyN,6BAAL,CAAmCb,KAAK,CAAC5M,CAAD,CAAxC,CAAX;QACD;;QAED,IAAIgN,QAAJ,aAAIA,QAAJ,eAAIA,QAAQ,CAAEU,UAAd,EAA0B;UACxB,IAAMC,MAAM,GAAGf,KAAK,CAAC5M,CAAD,CAAL,CAASkB,KAAT,CAAe8L,QAAQ,CAACU,UAAxB,CAAf;;UACA,IAAIC,MAAM,CAAC5N,MAAP,KAAkB,CAAtB,EAAyB;YACvB,IAAM6N,OAAO,GAAGD,MAAM,CAAC,CAAD,CAAN,CAAUtN,KAAV,CAAgBiN,WAAhB,CAAhB;;YACA,IAAI,CAACM,OAAL,EAAc;cACZ,KAAKrQ,eAAL,CAAqBuN,qBAAqB,CAAC+C,aAA3C;YACD,CAFD,MAEO;cACL,IAAI,CAACF,MAAM,CAAC,CAAD,CAAN,CAAUtN,KAAV,CAAgB,IAAIkN,MAAJ,CAAWP,QAAQ,CAACc,OAApB,CAAhB,CAAL,EAAoD;gBAClD,KAAKvQ,eAAL,CAAqBuN,qBAAqB,CAAC+C,aAA3C;cACD;YACF;UACF,CATD,MASO;YACL,KAAKtQ,eAAL,CAAqBuN,qBAAqB,CAAC+C,aAA3C;UACD;QACF,CAdD,MAcO;UACL,IAAMD,QAAO,GAAGhB,KAAK,CAAC5M,CAAD,CAAL,CAASK,KAAT,CAAeiN,WAAf,CAAhB;;UACA,IAAK,CAACM,QAAD,IAAY/V,KAAK,KAAK,EAAvB,IACC,CAAC+V,QAAD,IAAYjB,gBAAgB,KAAK,YADtC,EACqD;YACnD,KAAKpP,eAAL,CAAqBuN,qBAAqB,CAAC+C,aAA3C;UACD,CAHD,MAGO;YACL,IAAIlB,gBAAgB,KAAK,SAArB,IAAkCC,KAAK,CAAC7M,MAAN,GAAe,CAArD,EAAwD;cACtD,IAAIoE,MAAM,CAACyI,KAAK,CAAC,CAAD,CAAN,CAAN,GAAmBzI,MAAM,CAACyI,KAAK,CAAC,CAAD,CAAN,CAA7B,EAAyC;gBACvC,KAAKrP,eAAL,CAAqBuN,qBAAqB,CAAC+C,aAA3C;cACD;YACF,CAJD,MAIO;cACL,IAAIjB,KAAK,CAAC5M,CAAD,CAAL,KAAa,EAAb,IAAmBgN,QAAQ,CAACe,MAAhC,EAAwC;gBACtC,KAAK,IAAI7N,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,CAAJ,IAAS,KAAKjD,aAAL,KAAuB,CAAhD,EAAmDmD,CAAC,EAApD,EAAwD;kBACtD,IAAI0M,KAAK,CAAC5M,CAAD,CAAL,KAAa4M,KAAK,CAAC1M,CAAD,CAAtB,EAA2B;oBACzB,KAAK3C,eAAL,CAAqBuN,qBAAqB,CAAC+C,aAA3C;kBACD;gBACF;cACF;YACF;UACF;QACF;MACF;IACF;IAED;AACF;AACA;AACA;AACA;;;;WACE,uCAA8BG,IAA9B,EAAoC;MAClC,IAAIC,SAAS,GAAG,KAAhB;MACA,IAAIC,QAAQ,GAAG,KAAf;MACA,IAAIC,QAAQ,GAAG,KAAf;MAEA,IAAMC,WAAW,GAAG,IAAIb,MAAJ,CAChB,gDADgB,CAApB;MAEA,IAAIK,OAAO,GAAGI,IAAI,CAAC3N,KAAL,CAAW+N,WAAX,CAAd;MACA,IAAIC,WAAW,GAAG,IAAlB;;MACA,OAAOT,OAAP,EAAgB;QACd,QAAQA,OAAO,CAAC,CAAD,CAAf;UACE,KAAK,MAAL;YACES,WAAW,GAAGL,IAAI,CAAC3N,KAAL,CAAW4K,eAAe,CAACqD,SAA3B,CAAd;;YACA,IAAID,WAAJ,EAAiB;cACf,IAAME,IAAI,GAAGF,WAAW,CAAC,CAAD,CAAxB;;cACA,IAAIE,IAAI,KAAK1X,SAAT,IAAsB0X,IAAI,CAACxO,MAAL,GAAc,CAAxC,EAA2C;gBACzC,IAAI4K,qEAAc,CAAC4D,IAAI,CAACC,WAAL,EAAD,CAAd,KAAuC3X,SAA3C,EAAsD;kBACpD,KAAK0G,eAAL,CAAqBuN,qBAAqB,CAAC+C,aAA3C;gBACD;cACF;YACF;;YACDM,QAAQ,GAAG,IAAX;YACA;;UACF,KAAK,cAAL;YACE,IAAI,CAACA,QAAD,IAAa,CAACF,SAAd,IAA2B,CAACC,QAAhC,EAA0C;cACxC,IAAIN,OAAO,CAAC,CAAD,CAAP,KAAe,MAAf,IAAyBA,OAAO,CAAC,CAAD,CAAP,KAAe,OAA5C,EAAqD;gBACnD,KAAKrQ,eAAL,CAAqBuN,qBAAqB,CAAC+C,aAA3C;cACD;YACF;;YAEDK,QAAQ,GAAG,IAAX;YACA;;UACF,KAAK,eAAL;YACE,IAAI,CAACA,QAAD,IAAa,CAACC,QAAd,IAA0B,CAACF,SAA/B,EAA0C;cACxC,IAAIL,OAAO,CAAC,CAAD,CAAP,KAAe,MAAf,IAAyBA,OAAO,CAAC,CAAD,CAAP,KAAe,OAA5C,EAAqD;gBACnD,KAAKrQ,eAAL,CAAqBuN,qBAAqB,CAAC+C,aAA3C;cACD;YACF;;YAEDI,SAAS,GAAG,IAAZ;YACA;;UACF;YACE;QAhCJ;;QAkCAD,IAAI,GAAGA,IAAI,CAAC1M,MAAL,CAAYsM,OAAO,CAAC,CAAD,CAAP,CAAW7N,MAAvB,CAAP;QACA6N,OAAO,GAAGI,IAAI,CAAC3N,KAAL,CAAW+N,WAAX,CAAV;MACD;;MAED,OAAOJ,IAAP;IACD;IAED;AACF;AACA;AACA;;;;WACE,oCAA2BtU,MAA3B,EAAmC;MACjC;MACA,KAAKN,GAAL,GAAWM,MAAM,CAACN,GAAlB;MACA,KAAKoS,GAAL,GAAW9R,MAAM,CAAC8R,GAAlB;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,yBAAgBnC,eAAhB,EAA0C;MACxC,IAAMC,SAAS,GAAG,KAAKC,qBAAL,EAAlB;;MAEA,IAAIF,eAAJ,EAAqB;QACnBC,SAAS,CAAClQ,GAAV,CAAcqQ,UAAd,GAA2B,KAAKrQ,GAAL,CAASsQ,mBAAT,EAA3B;MACD;;MAED,IAAM3T,MAAM,GAAG,EAAf;MACA,IAAM4T,SAAS,GAAGrC,+CAAA,CAAkBgC,SAAlB,CAAlB;;MACA,QAAQ,KAAKrQ,QAAL,CAAcyB,gBAAtB;QACE,KAAK,WAAL;UACE,OAAO4M,+CAAA,CAAkBgC,SAAlB,CAAP;;QACF,KAAK,QAAL;UACE,KAAK,IAAMzH,IAAX,IAAmB8H,SAAnB,EAA8B;YAC5B,IAAI,GAAGlO,cAAH,CAAkBxD,IAAlB,CAAuB0R,SAAvB,EAAkC9H,IAAlC,CAAJ,EAA6C;cAC3C9L,MAAM,CAACmM,IAAP,WAAeL,IAAf,cAAuB8H,SAAS,CAAC9H,IAAD,CAAhC;YACD;UACF;;UACD,OAAO9L,MAAP;;QACF,KAAK,MAAL;QACA;UACE,OAAOuT,SAAP;MAZJ;IAcD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,mBAAUD,eAAV,EAAoC;MAAA;;MAClC,IAAIA,eAAJ,EAAqB;QACnB,IAAI,KAAKjQ,GAAL,CAASqV,IAAT,KAAkB,QAAtB,EAAgC;UAC9B,IAAI,KAAKrV,GAAL,CAAS4Q,MAAT,KAAoB,QAAxB,EAAkC;YAChC,IAAI,KAAK5Q,GAAL,CAASsV,oBAAT,IAAiC,KAAKtV,GAAL,CAASuV,gBAA9C,EAAgE;cAC9D,IAAI,KAAKvV,GAAL,CAASuV,gBAAT,IAA6B,KAAKvV,GAAL,CAASsV,oBAA1C,EAAgE;gBAC9DvS,OAAO,CAACO,KAAR,CAAc,sCAAd;gBACA,KAAKtD,GAAL,CAASwV,iBAAT,GAA6B,WAA7B;cACD,CAHD,MAGO;gBACLzS,OAAO,CAACO,KAAR,CAAc,uCAAd;gBACA,KAAKtD,GAAL,CAASwV,iBAAT,GAA6B,YAA7B;cACD;YACF;;YACD,IAAI,KAAKxV,GAAL,CAASyV,oBAAT,IAAiC,KAAKzV,GAAL,CAAS+Q,KAAT,CAAe2E,MAApD,EAA4D;cAC1D,IAAI,KAAK1V,GAAL,CAAS+Q,KAAT,CAAe2E,MAAf,IAAyB,KAAK1V,GAAL,CAASyV,oBAAtC,EAA4D;gBAC1D1S,OAAO,CAACO,KAAR,CAAc,gCAAd;gBACA,KAAKtD,GAAL,CAAS2V,cAAT,GAA0B,QAA1B;cACD,CAHD,MAGO;gBACL5S,OAAO,CAACO,KAAR,CAAc,gCAAd;gBACA,KAAKtD,GAAL,CAAS2V,cAAT,GAA0B,QAA1B;cACD;YACF;UACF;QACF;MACF;;MAED,IAAIC,UAAU,GAAG,KAAjB;;MACA,IAAI,KAAKxD,GAAL,CAASnS,GAAT,CAAa6S,OAAb,4BAA0B,KAAKlH,YAA/B,gFAA0B,mBAAmBwG,GAA7C,oFAA0B,sBAAwBnS,GAAlD,2DAA0B,uBAA6B6S,OAAvD,KACA,KAAKV,GAAL,CAASnS,GAAT,CAAa6S,OAAb,KAAyB,QAD7B,EACuC;QACrC,KAAKV,GAAL,CAASnS,GAAT,CAAa6S,OAAb,GAAuB+C,kBAAkB,CAAC,KAAKzD,GAAL,CAASnS,GAAT,CAAa6S,OAAd,CAAzC;QACA8C,UAAU,GAAG,IAAb;MACD;;MAED,IAAMjT,YAAY,GAAG,KAAKuO,eAAL,CAAqBjB,eAAe,IACrD,KAAKpQ,QAAL,CAAc+B,mBADG,CAArB;;MAGA,IAAI,KAAKiC,WAAL,KAAqBjD,gBAAgB,CAACyC,eAA1C,EAA2D;QACzDN,OAAO,CAACO,KAAR,CAAc,0BACP2M,eAAe,GAAG,KAAH,GAAW,IADnB,IAC2B,KADzC;QAEAlN,OAAO,CAACO,KAAR,CAAcX,YAAd;MACD;;MACD,IAAI,KAAK9C,QAAL,CAAcwB,YAAlB,EAAgC;QAC9B,IAAM1E,MAAM,GAAG,KAAKwU,kBAAL,CAAwB,KAAKtR,QAAL,CAAcwB,YAAtC,EACXsB,YADW,EACGsN,eADH,CAAf,CAD8B,CAI9B;;QACA;UACE,IAAI2F,UAAU,IAAIjZ,MAAM,CAACiZ,UAAP,KAAsBnY,SAApC,IACAd,MAAM,CAACiZ,UAAP,KAAsB,EAD1B,EAC8B;YAC5Bpa,QAAQ,mCAA0BmB,MAAM,CAACiZ,UAAjC,WAAR;UACD;QACF;QACD,OAAOjZ,MAAP;MACD,CAZD,MAYO;QACL,OAAOiE,gBAAgB,CAAC2B,UAAxB;MACD;IACF;;;;EA/hBuCxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3B1C;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMoV,cAAc,GAAGzV,qEAAvB;AACA,IAAM2V,UAAU,GAAG7E,6DAAnB;AACA,IAAM8E,gBAAgB,GAAG7V,sEAAzB;AAEA;AACA;AACA;;AACA,SAAS8V,kBAAT,GAA8B;EAC5B,MAAM,IAAIL,4DAAJ,CAAwBI,gBAAgB,CAAClO,iBAAzC,CAAN;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoO,oBAAT,CACI/X,KADJ,EAEIgY,YAFJ,EAGIC,gBAHJ,EAGgC;EAC9B,OAAOV,yDAAgB,CACnBvX,KADmB,EAEnBgY,YAFmB,EAGnBH,gBAAgB,CAAC7B,aAHE,EAInByB,4DAJmB,EAKnBQ,gBALmB,CAAvB;AAOD;AAED;AACA;AACA;;;AACO,IAAMnX,GAAb;EAAA;;EAAA;;EACE;AACF;AACA;AACA;EACE,aAAYqJ,WAAZ,EAAkC;IAAA;;IAAA;;IAChC,0BAAMuN,cAAc,CAACQ,YAArB;IAEA,IAAI/N,WAAJ,EAAiB,MAAKC,UAAL;IAEjB,MAAK+N,kBAAL,GAA0B,IAAIC,sBAAJ,EAA1B;IACA,MAAKhG,YAAL,GAAoB,IAAIiG,kBAAJ,EAApB;IACA,MAAKC,oBAAL,GAA4B,IAAIC,sBAAJ,EAA5B;IACA,MAAKC,UAAL,GAAkB,IAAIC,aAAJ,EAAlB;IACA,MAAKC,KAAL,GAAa,IAAIC,QAAJ,EAAb;IATgC;EAUjC;EAED;AACF;AACA;;;EAnBA;IAAA;IAAA,OAoBE,sBAAa;MAAA;;MACX;;MACA,8BAAKR,kBAAL,gFAAyB/N,UAAzB;MACA,2BAAKgI,YAAL,0EAAmBhI,UAAnB;MACA,8BAAKkO,oBAAL,gFAA2BlO,UAA3B;MACA,yBAAKoO,UAAL,sEAAiBpO,UAAjB;MACA,oBAAKsO,KAAL,4DAAYtO,UAAZ;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EA9CA;IAAA;IAAA,OA+CE,kBAAS;MACP,KAAKwO,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,gBAAgB,KAAK2a,YADR;QAEb,eAAe,KAAKC,WAFP;QAGb,YAAY,KAAKC,QAHJ;QAIb,qBAAqB,KAAKC,iBAJb;QAKb,QAAQ,KAAKrH,IALA;QAMb,cAAc,KAAKsH,UANN;QAOb,gBAAgB,KAAK7G,YAPR;QAQb,sBAAsB,KAAK+F,kBARd;QASb,wBAAwB,KAAKG,oBAThB;QAUb,gBAAgB,KAAK9D,YAVR;QAWb,cAAc,KAAKgE,UAXN;QAYb,SAAS,KAAKE;MAZD,CAAf;MAcA,OAAO,KAAKE,UAAZ;MACA,OAAO1a,MAAP;IACD;EAjEH;;EAAA;AAAA,EAAyBmZ,6CAAzB;AAoEA;AACA;AACA;;IACMoB;;;;;EACJ;AACF;AACA;EACE,yBAAc;IAAA;;IAAA;;IACZ;IAEA,OAAKM,QAAL,GAAgB,IAAIG,qBAAJ,EAAhB;IAHY;EAIb;EAED;AACF;AACA;;;;;WACE,sBAAa;MAAA;;MACX;;MACA,uBAAKH,QAAL,kEAAe3O,UAAf;IACD;IAED;AACF;AACA;AACA;;;;WACE,kBAAS;MACP,KAAKwO,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,YAAY,KAAK6a;MADJ,CAAf;MAGA,OAAO,KAAKH,UAAZ;MACA,OAAO1a,MAAP;IACD;;;;EA7ByBoZ;AAgC5B;AACA;AACA;;;IACM4B;;;;;EACJ;AACF;AACA;EACE,iCAAc;IAAA;;IAAA,0BACN;MACJC,QAAQ,EAAEzB,cAAc,CAAC0B,iBADrB;MAEJrV,SAAS,EAAE8T,gBAAgB,CAACwB,iBAFxB;MAGJC,UAAU,EAAE7B,4DAAmBA;IAH3B,CADM;EAMb;;;EAViC3V;AAapC;AACA;AACA;;;;;;;;;;;;;IACMsW;;;;;EACJ;AACF;AACA;EACE,kCAAc;IAAA;;IAAA;;IACZ,4BAAMV,cAAc,CAAC6B,2BAArB;;IADY;MAAA;MAAA,OAkBC;IAlBD;;IAAA;MAAA;MAAA,OAmBA;IAnBA;;IAAA;MAAA;MAAA,OAoBG;IApBH;;IAAA;MAAA;MAAA,OAqBD;IArBC;;IAAA;MAAA;MAAA,OAsBL;IAtBK;;IAGZ,OAAKC,OAAL,GAAe,IAAI1X,6CAAJ,CAAa;MAC1BiC,SAAS,EAAE8T,gBAAgB,CAACwB,iBADF;MAE1BC,UAAU,EAAE7B,4DAFc;MAG1B0B,QAAQ,EAAE;IAHgB,CAAb,CAAf;IAHY;EAQb;EAED;AACF;AACA;;;;;WACE,sBAAa;MAAA;;MACX;;MACA,sBAAKK,OAAL,gEAAcpP,UAAd;IACD;;;;IAQD;AACF;AACA;AACA;IACE,eAA0B;MACxB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAgBqP,WAAhB,EAAqC;MACnC,IAAI1B,oBAAoB,CAAC0B,WAAD,EAAc7B,UAAU,CAAC8B,YAAzB,CAAxB,EAAgE;QAC9D,0CAAoBD,WAApB;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAyB;MACvB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAeE,UAAf,EAAmC;MACjC,IAAI5B,oBAAoB,CAAC4B,UAAD,EAAa/B,UAAU,CAAC8B,YAAxB,CAAxB,EAA+D;QAC7D,yCAAmBC,UAAnB;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAA4B;MAC1B,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAkBC,aAAlB,EAAyC;MACvC,IAAI7B,oBAAoB,CAAC6B,aAAD,EAAgBhC,UAAU,CAAC8B,YAA3B,CAAxB,EAAkE;QAChE,4CAAsBE,aAAtB;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAwB;MACtB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAcC,SAAd,EAAiC;MAC/B,IAAI9B,oBAAoB,CAAC8B,SAAD,EAAYjC,UAAU,CAAC8B,YAAvB,CAAxB,EAA8D;QAC5D,wCAAkBG,SAAlB;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAoB;MAClB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAUC,KAAV,EAAyB;MACvB,IAAI/B,oBAAoB,CAAC+B,KAAD,EAAQlC,UAAU,CAAC8B,YAAnB,CAAxB,EAA0D;QACxD,oCAAcI,KAAd;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS;MACP,KAAKlB,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,SAAS,KAAK6b,KADD;QAEb,YAAY,KAAKC,QAFJ;QAGb,eAAe,KAAKP,WAHP;QAIb,SAAS,KAAKQ,KAJD;QAKb,QAAQ,KAAKC,IALA;QAMb,cAAc,KAAKP,UANN;QAOb,iBAAiB,KAAKC,aAPT;QAQb,aAAa,KAAKC,SARL;QASb,SAAS,KAAKC,KATD;QAUb,WAAW,KAAKN;MAVH,CAAf;MAYA,OAAO,KAAKZ,UAAZ;MACA,OAAO1a,MAAP;IACD;;;;EAlJkCmZ;AAqJrC;AACA;AACA;;;;;IACMgB;;;;;EACJ;AACF;AACA;EACE,8BAAc;IAAA;;IAAA;;IACZ,4BAAMX,cAAc,CAAC0C,qBAArB;;IADY;MAAA;MAAA,OAcS;IAdT;;IAGZ,OAAKC,KAAL,GAAa,IAAIC,QAAJ,EAAb;IAHY;EAIb;EAED;AACF;AACA;;;;;WACE,sBAAa;MAAA;;MACX;;MACA,oBAAKD,KAAL,4DAAYjQ,UAAZ;IACD;;;;IAID;AACF;AACA;AACA;IACE,eAA0B;MACxB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;;SACE,aAAwBmQ,mBAAxB,EAA6C;MAC3C,CAAC,KAAKpQ,WAAN,yBACI,IADJ,wBACgCoQ,mBADhC,IAEIzC,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS;MACP,KAAKc,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,iBAAiB,KAAKmU,aADT;QAEb,oBAAoB,KAAKmI,gBAFZ;QAGb,qBAAqB,KAAKC,iBAHb;QAIb,SAAS,KAAKJ;MAJD,CAAf;MAMA,OAAO,KAAKzB,UAAZ;MACA,OAAO1a,MAAP;IACD;;;;EA5D8BmZ;AA+DjC;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACO,IAAMkB,sBAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,kCAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAIDb,cAAc,CAACiD;IAJd;;IAAA;MAAA;MAAA,OAKN;IALM;;IAAA;MAAA;MAAA,OAML;IANK;;IAAA;MAAA;MAAA,OAOH;IAPG;;IAAA;MAAA;MAAA,OAQH;IARG;;IAAA;MAAA;MAAA,OASA;IATA;;IAAA;MAAA;MAAA,OAUG;IAVH;;IAAA;MAAA;MAAA,OAWK;IAXL;;IAAA;MAAA;MAAA,OAYL;IAZK;;IAAA;MAAA;MAAA,OAaK;IAbL;;IAAA;MAAA;MAAA,OAcL;IAdK;;IAAA;MAAA;MAAA,OAeI;IAfJ;;IAAA;MAAA;MAAA,OAgBD;IAhBC;;IAAA;MAAA;MAAA,OAiBM;IAjBN;;IAAA;EAEb;;EANH;IAAA;IAAA;IAuBE;AACF;AACA;AACA;IACE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;EAlCA;IAAA;IAAA,KAmCE,eAAW;MACT,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IA3CA;IAAA,KA4CE,aAASC,IAAT,EAAe;MACb,CAAC,KAAKzQ,WAAN,yBACI,IADJ,SACiByQ,IADjB,IAEI9C,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EArDA;IAAA;IAAA,KAsDE,eAAY;MACV,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IA9DA;IAAA,KA+DE,aAAU+C,KAAV,EAAiB;MACf,CAAC,KAAK1Q,WAAN,yBACI,IADJ,UACkB0Q,KADlB,IAEI/C,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EAxEA;IAAA;IAAA,KAyEE,eAAc;MACZ,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAjFA;IAAA,KAkFE,aAAYgD,OAAZ,EAAqB;MACnB,CAAC,KAAK3Q,WAAN,yBACI,IADJ,YACoB2Q,OADpB,IAEIhD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EA3FA;IAAA;IAAA,KA4FE,eAAc;MACZ,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IApGA;IAAA,KAqGE,aAAYiD,OAAZ,EAAqB;MACnB,CAAC,KAAK5Q,WAAN,yBACI,IADJ,YACoB4Q,OADpB,IAEIjD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EA9GA;IAAA;IAAA,KA+GE,eAAiB;MACf,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAvHA;IAAA,KAwHE,aAAekD,UAAf,EAA2B;MACzB,CAAC,KAAK7Q,WAAN,yBACI,IADJ,eACuB6Q,UADvB,IAEIlD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EAjIA;IAAA;IAAA,KAkIE,eAAoB;MAClB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IA1IA;IAAA,KA2IE,aAAkBmD,aAAlB,EAAiC;MAC/B,CAAC,KAAK9Q,WAAN,yBACI,IADJ,kBAC0B8Q,aAD1B,IAEInD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EApJA;IAAA;IAAA,KAqJE,eAAsB;MACpB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IA7JA;IAAA,KA8JE,aAAoBoD,eAApB,EAAqC;MACnC,CAAC,KAAK/Q,WAAN,yBACI,IADJ,oBAC4B+Q,eAD5B,IAEIpD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EAvKA;IAAA;IAAA,KAwKE,eAAY;MACV,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAhLA;IAAA,KAiLE,aAAUqD,KAAV,EAAiB;MACf,CAAC,KAAKhR,WAAN,yBACI,IADJ,UACkBgR,KADlB,IAEIrD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EA1LA;IAAA;IAAA,KA2LE,eAAsB;MACpB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAnMA;IAAA,KAoME,aAAoBsD,eAApB,EAAqC;MACnC,CAAC,KAAKjR,WAAN,yBACI,IADJ,oBAC4BiR,eAD5B,IAEItD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EA7MA;IAAA;IAAA,KA8ME,eAAY;MACV,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAtNA;IAAA,KAuNE,aAAUuD,KAAV,EAAiB;MACf,CAAC,KAAKlR,WAAN,yBACI,IADJ,UACkBkR,KADlB,IAEIvD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EAhOA;IAAA;IAAA,KAiOE,eAAqB;MACnB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAzOA;IAAA,KA0OE,aAAmBwD,cAAnB,EAAmC;MACjC,CAAC,KAAKnR,WAAN,yBACI,IADJ,mBAC2BmR,cAD3B,IAEIxD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EAnPA;IAAA;IAAA,KAoPE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IA5PA;IAAA,KA6PE,aAAcyD,SAAd,EAAyB;MACvB,CAAC,KAAKpR,WAAN,yBACI,IADJ,cACsBoR,SADtB,IAEIzD,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EAtQA;IAAA;IAAA,KAuQE,eAAuB;MACrB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IA/QA;IAAA,KAgRE,aAAqB0D,gBAArB,EAAuC;MACrC,CAAC,KAAKrR,WAAN,yBACI,IADJ,qBAC6BqR,gBAD7B,IAEI1D,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAzSA;IAAA;IAAA,OA0SE,kBAAS;MACP,KAAKc,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,QAAQ,KAAK0c,IADA;QAEb,SAAS,KAAKa,KAFD;QAGb,WAAW,KAAKX,OAHH;QAIb,WAAW,KAAKC,OAJH;QAKb,cAAc,KAAKC,UALN;QAMb,iBAAiB,KAAKC,aANT;QAOb,mBAAmB,KAAKC,eAPX;QAQb,SAAS,KAAKC,KARD;QASb,mBAAmB,KAAKC,eATX;QAUb,SAAS,KAAKC,KAVD;QAWb,kBAAkB,KAAKC,cAXV;QAYb,aAAa,KAAKC,SAZL;QAab,oBAAoB,KAAKC;MAbZ,CAAf;MAeA,OAAO,KAAK5C,UAAZ;MACA,OAAO1a,MAAP;IACD;EA7TH;;EAAA;AAAA,EAA4CoZ,4CAA5C;AAgUA;AACA;AACA;;AACO,IAAMqB,QAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,oBAAc;IAAA;;IAAA,0BACN;MAACQ,QAAQ,EAAEzB,cAAc,CAACgE;IAA1B,CADM;EAEb;;EANH;AAAA,EAA8B5Z,6CAA9B;AASA;AACA;AACA;;;;;;;;;;;;;;AACO,IAAM6Z,cAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,0BAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAIC;IAJD;;IAAA;MAAA;MAAA,OAKN;IALM;;IAAA;MAAA;MAAA,OAMN;IANM;;IAAA;MAAA;MAAA,OAOJ;IAPI;;IAAA;MAAA;MAAA,OAQF;IARE;;IAAA;MAAA;MAAA,OASK;IATL;;IAAA;EAEb;;EANH;IAAA;IAAA;IAeE;AACF;AACA;AACA;IACE,eAAkB;MAChB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA1BA;IAAA,KA2BE,aAAgBC,WAAhB,EAA6B;MAC3B,IAAI7D,oBAAoB,CAAC6D,WAAD,EAAchE,UAAU,CAAC8B,YAAzB,CAAxB,EAAgE;QAC9D,0CAAoBkC,WAApB;MACD;IACF;IAED;AACF;AACA;AACA;;EApCA;IAAA;IAAA,KAqCE,eAAW;MACT,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA5CA;IAAA,KA6CE,aAASC,IAAT,EAAe;MACb,IAAI9D,oBAAoB,CAAC8D,IAAD,EAAOjE,UAAU,CAAC8B,YAAlB,CAAxB,EAAyD;QACvD,mCAAamC,IAAb;MACD;IACF;IAED;AACF;AACA;AACA;;EAtDA;IAAA;IAAA,KAuDE,eAAW;MACT,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA9DA;IAAA,KA+DE,aAAShd,IAAT,EAAe;MACb,IAAIkZ,oBAAoB,CAAClZ,IAAD,EAAO+Y,UAAU,CAACkE,OAAlB,CAAxB,EAAoD;QAClD,mCAAajd,IAAb;MACD;IACF;IAED;AACF;AACA;AACA;;EAxEA;IAAA;IAAA,KAyEE,eAAa;MACX,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAhFA;IAAA,KAiFE,aAAWgF,MAAX,EAAmB;MACjB,IAAIkU,oBAAoB,CAAClU,MAAD,EAAS+T,UAAU,CAACmE,UAApB,CAAxB,EAAyD;QACvD,qCAAelY,MAAf;MACD;IACF;IAED;AACF;AACA;AACA;;EA1FA;IAAA;IAAA,KA2FE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAlGA;IAAA,KAmGE,aAAamY,QAAb,EAAuB;MACrB,IAAIjE,oBAAoB,CAACiE,QAAD,EAAWpE,UAAU,CAAC8B,YAAtB,CAAxB,EAA6D;QAC3D,uCAAiBsC,QAAjB;MACD;IACF;IAED;AACF;AACA;AACA;;EA5GA;IAAA;IAAA,KA6GE,eAAsB;MACpB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IApHA;IAAA,KAqHE,aAAoBC,eAApB,EAAqC;MACnC,IAAIlE,oBAAoB,CAACkE,eAAD,EAAkBrE,UAAU,CAACkE,OAA7B,CAAxB,EAA+D;QAC7D,8CAAwBG,eAAxB;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAvIA;IAAA;IAAA,OAwIE,kBAAS;MACP,KAAKrD,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,eAAe,KAAK0d,WADP;QAEb,QAAQ,KAAKC,IAFA;QAGb,QAAQ,KAAKhd,IAHA;QAIb,UAAU,KAAKgF,MAJF;QAKb,YAAY,KAAKmY,QALJ;QAMb,mBAAmB,KAAKC;MANX,CAAf;MAQA,OAAO,KAAKrD,UAAZ;MACA,OAAO1a,MAAP;IACD;EApJH;;EAAA;AAAA,EAAoCoZ,4CAApC;AAuJA;AACA;AACA;;AACO,IAAMgD,QAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,oBAAc;IAAA;;IAAA,0BACN;MAACnB,QAAQ,EAAEzB,cAAc,CAACwE;IAA1B,CADM;EAEb;;EANH;AAAA,EAA8Bpa,6CAA9B;AASA;AACA;AACA;;;;;;AACO,IAAMb,cAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,0BAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAsBJ;IAtBI;;IAAA;MAAA;MAAA,OAuBN;IAvBM;;IAGZ,OAAKqR,KAAL,GAAa,IAAIkF,6CAAJ,CACT;MACE2E,cAAc,EAAEzE,cAAc,CAACyE,cADjC;MAEEC,WAAW,EAAExE,UAAU,CAACwE,WAF1B;MAGE7S,gBAAgB,EAAEsO,gBAAgB,CAACwB,iBAHrC;MAIEgD,eAAe,EAAExE,gBAAgB,CAAC7B,aAJpC;MAKEsG,gBAAgB,EAAEzE,gBAAgB,CAAC0E,kBALrC;MAMEjD,UAAU,EAAE7B,4DAAmBA;IANjC,CADS,CAAb;IAHY;EAYb;EAED;AACF;AACA;;;EApBA;IAAA;IAAA,OAqBE,sBAAa;MAAA;;MACX;;MACA,oBAAKnF,KAAL,4DAAYlI,UAAZ;IACD;EAxBH;IAAA;IAAA;IA6BE;AACF;AACA;AACA;IACE,eAAa;MACX,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAxCA;IAAA,KAyCE,aAAWvG,MAAX,EAAmB;MACjB,IAAIkU,oBAAoB,CAAClU,MAAD,EAAS+T,UAAU,CAACmE,UAApB,CAAxB,EAAyD;QACvD,sCAAelY,MAAf;MACD;IACF;IAED;AACF;AACA;AACA;;EAlDA;IAAA;IAAA,KAmDE,eAAW;MACT,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA1DA;IAAA,KA2DE,aAAShF,IAAT,EAAe;MACb,IAAIkZ,oBAAoB,CAAClZ,IAAD,EAAO+Y,UAAU,CAACkE,OAAlB,CAAxB,EAAoD;QAClD,oCAAajd,IAAb;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EA1EA;IAAA;IAAA,OA2EE,kBAAS;MACP,KAAK+Z,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,UAAU,KAAK2F,MADF;QAEb,QAAQ,KAAKhF,IAFA;QAGb,SAAS,KAAKyT;MAHD,CAAf;MAKA,OAAO,KAAKsG,UAAZ;MACA,OAAO1a,MAAP;IACD;EApFH;;EAAA;AAAA,EAAoCoZ,4CAApC;AAuFA;AACA;AACA;;AACO,IAAMkF,iBAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,6BAAc;IAAA;;IAAA,2BACN;MAACrD,QAAQ,EAAEzB,cAAc,CAAC+E;IAA1B,CADM;EAEb;;EANH;AAAA,EAAuC3a,6CAAvC;AASA;AACA;AACA;;;;AACO,IAAMf,uBAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,mCAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAsBG;IAtBH;;IAGZ,OAAKuR,KAAL,GAAa,IAAIkF,6CAAJ,CACT;MACE2E,cAAc,EAAEzE,cAAc,CAACyE,cADjC;MAEEC,WAAW,EAAExE,UAAU,CAACwE,WAF1B;MAGE7S,gBAAgB,EAAEsO,gBAAgB,CAACwB,iBAHrC;MAIEgD,eAAe,EAAExE,gBAAgB,CAAC7B,aAJpC;MAKEsG,gBAAgB,EAAEzE,gBAAgB,CAAC0E,kBALrC;MAMEjD,UAAU,EAAE7B,4DAAmBA;IANjC,CADS,CAAb;IAHY;EAYb;EAED;AACF;AACA;;;EApBA;IAAA;IAAA,OAqBE,sBAAa;MAAA;;MACX;;MACA,qBAAKnF,KAAL,8DAAYlI,UAAZ;IACD;EAxBH;IAAA;IAAA;IA4BE;AACF;AACA;AACA;IACE,eAAoB;MAClB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAvCA;IAAA,KAwCE,aAAkB6H,aAAlB,EAAiC;MAC/B,IAAI8F,oBAAoB,CAAC9F,aAAD,EAAgB2F,UAAU,CAACmE,UAA3B,CAAxB,EAAgE;QAC9D,4CAAsB9J,aAAtB;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAvDA;IAAA;IAAA,OAwDE,kBAAS;MACP,KAAK2G,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,iBAAiB,KAAK+T,aADT;QAEb,SAAS,KAAKK;MAFD,CAAf;MAIA,OAAO,KAAKsG,UAAZ;MACA,OAAO1a,MAAP;IACD;EAhEH;;EAAA;AAAA,EAA6CoZ,4CAA7C;AAmEA;AACA;AACA;;;;;;;;AACO,IAAMtW,2BAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,uCAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAIH;IAJG;;IAAA;MAAA;MAAA,OAKF;IALE;;IAAA;MAAA;MAAA,OAMN;IANM;;IAAA;EAEb;;EANH;IAAA;IAAA;IAYE;AACF;AACA;AACA;IACE,eAAc;MACZ,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAvBA;IAAA,KAwBE,aAAY0b,OAAZ,EAAqB;MACnB,IAAI3E,oBAAoB,CAAC2E,OAAD,EAAU9E,UAAU,CAAC8B,YAArB,CAAxB,EAA4D;QAC1D,sCAAgBgD,OAAhB;MACD;IACF;IAED;AACF;AACA;AACA;;EAjCA;IAAA;IAAA,KAkCE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAzCA;IAAA,KA0CE,aAAaC,QAAb,EAAuB;MACrB,IAAI5E,oBAAoB,CAAC4E,QAAD,EAAW/E,UAAU,CAAC8B,YAAtB,CAAxB,EAA6D;QAC3D,uCAAiBiD,QAAjB;MACD;IACF;IAED;AACF;AACA;AACA;;EAnDA;IAAA;IAAA,KAoDE,eAAW;MACT,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA3DA;IAAA,KA4DE,aAAS9d,IAAT,EAAe;MACb,IAAIkZ,oBAAoB,CAAClZ,IAAD,EAAO+Y,UAAU,CAACkE,OAAlB,CAAxB,EAAoD;QAClD,oCAAajd,IAAb;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EA3EA;IAAA;IAAA,OA4EE,kBAAS;MACP,KAAK+Z,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,WAAW,KAAKwe,OADH;QAEb,YAAY,KAAKC,QAFJ;QAGb,QAAQ,KAAK9d;MAHA,CAAf;MAKA,OAAO,KAAK+Z,UAAZ;MACA,OAAO1a,MAAP;IACD;EArFH;;EAAA;AAAA,EAAiDoZ,4CAAjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7hCA;AACA;AACA;AAEA,IAAM5H,iBAAiB,GAAGzN,wEAA1B;AACA,IAAM2a,aAAa,GAAG7J,gEAAtB;AACA,IAAM3Q,mBAAmB,GAAGJ,sEAA5B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASuV,gBAAT,CACHvX,KADG,EAEHgY,YAFG,EAGHjU,SAHG,EAIHuV,UAJG,EAKHrB,gBALG,EAKyB;EAC9B,IAAMxC,WAAW,GAAG,IAAIC,MAAJ,CAAWsC,YAAX,CAApB;EACA,IAAMjC,OAAO,GAAG/V,KAAK,CAACwI,KAAN,CAAYiN,WAAZ,CAAhB;;EACA,IAAIwC,gBAAgB,IAAIjY,KAAK,KAAK,EAAlC,EAAsC;IACpC,OAAO,IAAP;EACD;;EACD,IAAIA,KAAK,KAAKhB,SAAV,IAAuB,CAAC+W,OAAxB,IAAmCA,OAAO,CAAC,CAAD,CAAP,KAAe,EAAtD,EAA0D;IACxD,MAAM,IAAIuD,UAAU,CAACrc,SAAX,CAAqBoQ,WAAzB,CAAqCtJ,SAArC,CAAN;EACD;;EACD,OAAO,IAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAAS8Y,eAAT,CACH7c,KADG,EAEH8c,YAFG,EAGH/Y,SAHG,EAIHuV,UAJG,EAImB;EACxB,IAAMyD,MAAM,GAAGD,YAAY,CAACzT,KAAb,CAAmB,GAAnB,CAAf;EACArJ,KAAK,GAAGA,KAAK,GAAG,GAAhB;;EACA,IAAIA,KAAK,IAAI+c,MAAM,CAAC,CAAD,CAAnB,EAAwB;IACtB,IAAKA,MAAM,CAAC,CAAD,CAAN,KAAc,GAAf,IAAwB/c,KAAK,IAAI+c,MAAM,CAAC,CAAD,CAA3C,EAAiD;MAC/C,OAAO,IAAP;IACD,CAFD,MAEO;MACL,MAAM,IAAIzD,UAAU,CAACrc,SAAX,CAAqBoQ,WAAzB,CAAqCtJ,SAArC,CAAN;IACD;EACF,CAND,MAMO;IACL,MAAM,IAAIuV,UAAU,CAACrc,SAAX,CAAqBoQ,WAAzB,CAAqCtJ,SAArC,CAAN;EACD;AACF;AAED;AACA;AACA;;;;;;AACO,IAAMuT,OAAb;EAKE;AACF;AACA;EACE,mBAAc;IAAA;;IAAA,oCAPD,KAOC;;IAAA;MAAA;MAAA,OANC;IAMD;;IAAA;MAAA;MAAA;IAAA;;IACZ,IAAI,0DAAeA,OAAnB,EAA4B;MAC1B,MAAM,IAAI7Y,SAAJ,CAAc,6CAAd,CAAN;IACD;EACF;EAED;AACF;AACA;AACA;;;EAjBA;IAAA;IAAA,KAkBE,eAAkB;MAChB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;EAzBA;IAAA;IAAA,KA0BE,eAAiB;MACf,6BAAO,IAAP;IACD;IAED;AACF;AACA;;EAhCA;IAAA;IAAA,OAiCE,sBAAa;MACX,0CAAoB,IAApB;IACD;IAED;AACF;AACA;AACA;;EAxCA;IAAA;IAAA,OAyCE,wBAAe;MACb,yCAAmB,IAAIf,IAAJ,GAAWsf,OAAX,EAAnB;IACD;EA3CH;;EAAA;AAAA;AA8CA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AACO,IAAMxF,QAAb;EAAA;;EAAA;;EACE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,wBAUO;IAAA;;IAAA,IARD2E,cAQC,QARDA,cAQC;IAAA,IAPDC,WAOC,QAPDA,WAOC;IAAA,IAND9e,GAMC,QANDA,GAMC;IAAA,IALDiM,gBAKC,QALDA,gBAKC;IAAA,IAJD8S,eAIC,QAJDA,eAIC;IAAA,IAHDC,gBAGC,QAHDA,gBAGC;IAAA,IAFDW,YAEC,QAFDA,YAEC;IAAA,IADD3D,UACC,QADDA,UACC;;IAAA;;IACL;;IADK;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA,OAyBA;IAzBA;;IAAA;MAAA;MAAA,OA0BA;IA1BA;;IAAA;MAAA;MAAA;IAAA;;IAGL,iEAAkB6C,cAAc,IAC5BzM,iBAAiB,CAACyM,cADtB;;IAEA,mEAAqB,CAACC,WAAD,GAAe,KAAf,GAAuBQ,aAAa,CAACR,WAA1D;;IACA,2DAAa9e,GAAG,IAAIA,GAAG,KAAK,EAAhB,GAAsBA,GAAtB,GAA4B,KAAxC;;IACA,0EAA4BiM,gBAAgB,IACxCnH,mBAAmB,CAACiX,iBADxB;;IAEA,yEAA2BgD,eAAe,IACtCja,mBAAmB,CAAC4T,aADxB;;IAEA,0EAA4BsG,gBAAgB,IACxCla,mBAAmB,CAACma,kBADxB;;IAEA,qEAAuBU,YAAY,IAC/BL,aAAa,CAACM,UADlB;;IAEA,mEAAqB5D,UAArB;;IAfK;EAgBN;;EAtCH;IAAA;IAAA;IAmDE;AACF;AACA;AACA;AACA;IACE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAhEA;IAAA,KAiEE,aAAc6D,SAAd,EAAyB;MACvB,MAAM,KAAI,0CAAmBlgB,SAAnB,CAA6BoQ,WAAjC,wBAA6C,IAA7C,uBAAN;IACD;IAED;AACF;AACA;AACA;;EAxEA;IAAA;IAAA,KAyEE,eAAU;MACR,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAhFA;IAAA,KAiFE,aAAQkF,GAAR,EAAa;MACX,IAAIgF,gBAAgB,CAAChF,GAAD,wBAAM,IAAN,yCAA4B,IAA5B,6CAAsD,IAAtD,gBAAhB,KACC,uBAAC,IAAD,mBACGsK,eAAe,CAACtK,GAAD,wBAAM,IAAN,uCAA0B,IAA1B,8CAAqD,IAArD,gBAFnB,CAAJ,EAEkG;QAChG,kCAAYA,GAAZ;MACD;IACF;IAED;AACF;AACA;AACA;;EA5FA;IAAA;IAAA,KA6FE,eAAU;MACR,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IApGA;IAAA,KAqGE,aAAQ/U,GAAR,EAAa;MACX,IAAI+Z,gBAAgB,CAAC/Z,GAAD,wBAAM,IAAN,yCAA4B,IAA5B,6CAAsD,IAAtD,gBAAhB,KACC,uBAAC,IAAD,mBACGqf,eAAe,CAACrf,GAAD,wBAAM,IAAN,uCAA0B,IAA1B,8CAAqD,IAArD,gBAFnB,CAAJ,EAEkG;QAChG,kCAAYA,GAAZ;MACD;IACF;IAED;AACF;AACA;AACA;;EAhHA;IAAA;IAAA,KAiHE,eAAU;MACR,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAxHA;IAAA,KAyHE,aAAQF,GAAR,EAAa;MACX,IAAIia,gBAAgB,CAACja,GAAD,wBAAM,IAAN,yCAA4B,IAA5B,6CAAsD,IAAtD,gBAAhB,KACC,uBAAC,IAAD,mBACGuf,eAAe,CAACvf,GAAD,wBAAM,IAAN,uCAA0B,IAA1B,8CAAqD,IAArD,gBAFnB,CAAJ,EAEkG;QAChG,kCAAYA,GAAZ;MACD;IACF;IAED;AACF;AACA;AACA;;EApIA;IAAA;IAAA,OAqIE,kBAAS;MACP,KAAKsb,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,OAAO,KAAKqU,GADC;QAEb,OAAO,KAAK/U,GAFC;QAGb,OAAO,KAAKF;MAHC,CAAf;MAKA,OAAO,KAAKsb,UAAZ;MACA,OAAO1a,MAAP;IACD;EA9IH;;EAAA;AAAA,EAA8BoZ,OAA9B;AAiJA;AACA;AACA;;;;;;;;AACO,IAAMxV,QAAb;EAAA;;EAAA;;EACE;AACF;AACA;AACA;AACA;AACA;EACE,yBAA+C;IAAA;;IAAA,IAAlCqX,QAAkC,SAAlCA,QAAkC;IAAA,IAAxBpV,SAAwB,SAAxBA,SAAwB;IAAA,IAAbuV,UAAa,SAAbA,UAAa;;IAAA;;IAC7C;;IAD6C;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAE7C,kEAAkBH,QAAlB;;IACA,kEAAkBpV,SAAlB;;IACA,mEAAmBuV,UAAnB;;IACA,OAAKrP,UAAL,GAAkB,EAAlB;IAL6C;EAM9C;;EAbH;IAAA;IAAA;IAmBE;AACF;AACA;AACA;IACE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA9BA;IAAA,KA+BE,aAAckT,SAAd,EAAyB;MACvB,MAAM,KAAI,yCAAiBlgB,SAAjB,CAA2BoQ,WAA/B,wBAA2C,IAA3C,cAAN;IACD;IAED;AACF;AACA;AACA;;EAtCA;IAAA;IAAA,KAuCE,eAAa;MACX,OAAO,KAAKpD,UAAL,CAAgB/B,MAAvB;IACD;IAED;AACF;AACA;AACA;IA9CA;IAAA,KA+CE,aAAWwL,MAAX,EAAmB;MACjB,MAAM,KAAI,yCAAiBzW,SAAjB,CAA2BoQ,WAA/B,wBAA2C,IAA3C,cAAN;IACD;IAED;AACF;AACA;AACA;;EAtDA;IAAA;IAAA,OAuDE,kBAAS;MACP,KAAKuL,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG,EAAf;;MACA,KAAK,IAAIiK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK8B,UAAL,CAAgB/B,MAApC,EAA4CC,CAAC,EAA7C,EAAiD;QAC/CjK,MAAM,CAACiK,CAAC,GAAG,EAAL,CAAN,GAAiB,KAAK8B,UAAL,CAAgB9B,CAAhB,CAAjB;MACD;;MACD,OAAO,KAAKyQ,UAAZ;MACA,OAAO1a,MAAP;IACD;EA/DH;;EAAA;AAAA,EAA8BoZ,OAA9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtQA;AAOA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAM5H,iBAAiB,GAAGzN,wEAA1B;AACA,IAAM2a,aAAa,GAAG7J,gEAAtB;AACA,IAAM3Q,mBAAmB,GAAGJ,sEAA5B;AAEA;AACA;AACA;;AACO,SAAS8V,kBAAT,GAA8B;EACnC,MAAM,IAAIsF,+DAAJ,CAA2Bhb,mBAAmB,CAACuH,iBAA/C,CAAN;AACD;AAED;AACA;AACA;;AACO,SAAS2T,mBAAT,GAA+B;EACpC,MAAM,IAAIF,+DAAJ,CAA2Bhb,mBAAmB,CAACmb,kBAA/C,CAAN;AACD;AAED;AACA;AACA;;AACA,SAASC,sBAAT,GAAkC;EAChC,MAAM,IAAIJ,+DAAJ,CAA2Bhb,mBAAmB,CAACiX,iBAA/C,CAAN;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASoE,kBAAT,CACHzd,KADG,EAEHgY,YAFG,EAGHC,gBAHG,EAGyB;EAC9B,OAAOV,yDAAgB,CACnBvX,KADmB,EAEnBgY,YAFmB,EAGnB5V,mBAAmB,CAAC4T,aAHD,EAInBoH,+DAJmB,EAKnBnF,gBALmB,CAAvB;AAOD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASyF,iBAAT,CACH1d,KADG,EAEH8c,YAFG,EAGH7E,gBAHG,EAGyB;EAC9B,OAAO4E,wDAAe,CAClB7c,KADkB,EAElB8c,YAFkB,EAGlB1a,mBAAmB,CAACma,kBAHF,EAIlBa,+DAJkB,EAKlBnF,gBALkB,CAAtB;AAOD;AAED;AACA;AACA;;;;;;;;;;;;AACO,IAAMnX,GAAb;EAAA;;EAAA;;EASE;AACF;AACA;AACA;AACA;AACA;EACE,aAAYoX,YAAZ,EAA0B9F,YAA1B,EAAwCjI,WAAxC,EAA8D;IAAA;;IAAA;;IAC5D;;IAD4D;MAAA;MAAA,OAdjD;IAciD;;IAAA;MAAA;MAAA,OAblD;IAakD;;IAAA;MAAA;MAAA,OAZ/C;IAY+C;;IAAA;MAAA;MAAA,OAXlD;IAWkD;;IAAA;MAAA;MAAA,OAVzC;IAUyC;;IAAA,+DAR/C,IAQ+C;;IAG5D,IAAIA,WAAJ,EAAiB,MAAKC,UAAL;;IAEjB,iEAAkB8N,YAAY,GAC1BA,YAD0B,GAE1BxI,iBAAiB,CAACwI,YAFtB;;IAGA,MAAKvG,IAAL,GAAY,IAAIgM,OAAJ,EAAZ;IACA,MAAK1E,UAAL,GAAkB,IAAI2E,aAAJ,EAAlB;IACA,MAAKxL,YAAL,GAAoBA,YAAY,GAAGA,YAAH,GAAkB,IAAIsI,cAAJ,EAAlD;IACA,MAAKvC,kBAAL,GAA0B,IAAIgC,oBAAJ,EAA1B;IACA,MAAK3F,YAAL,GAAoB,IAAIqJ,eAAJ,EAApB;IAZ4D;EAa7D;EAED;AACF;AACA;;;EAhCA;IAAA;IAAA,OAiCE,sBAAa;MAAA;;MACX;;MACA,mBAAKlM,IAAL,0DAAWvH,UAAX;MACA,yBAAK6O,UAAL,sEAAiB7O,UAAjB;MACA,2BAAKgI,YAAL,0EAAmBhI,UAAnB;MACA,8BAAK+N,kBAAL,gFAAyB/N,UAAzB;MACA,2BAAKoK,YAAL,0EAAmBpK,UAAnB;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EA1DA;IAAA;IAAA,OA2DE,kBAAS;MACP,KAAKwO,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,gBAAgB,KAAK2a,YADR;QAEb,eAAe,KAAKC,WAFP;QAGb,YAAY,KAAKC,QAHJ;QAIb,qBAAqB,KAAKC,iBAJb;QAKb,QAAQ,KAAKrH,IALA;QAMb,cAAc,KAAKsH,UANN;QAOb,gBAAgB,KAAK7G,YAPR;QAQb,sBAAsB,KAAK+F,kBARd;QASb,gBAAgB,KAAK3D;MATR,CAAf;MAWA,OAAO,KAAKoE,UAAZ;MACA,OAAO1a,MAAP;IACD;IAED;AACF;AACA;AACA;;EA/EA;IAAA;IAAA,KAgFE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAvFA;IAAA,KAwFE,aAAa4f,QAAb,EAAuB;MACrBN,sBAAsB;IACvB;IAED;AACF;AACA;AACA;;EA/FA;IAAA;IAAA,KAgGE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAvGA;IAAA,KAwGE,aAAcL,SAAd,EAAyB;MACvBK,sBAAsB;IACvB;IAED;AACF;AACA;AACA;;EA/GA;IAAA;IAAA,KAgHE,eAAmB;MAAA;;MACjB,sBAAO,KAAK7L,IAAZ,gDAAO,YAAWkH,YAAlB;IACD;IAED;AACF;AACA;AACA;IAvHA;IAAA,KAwHE,aAAiBA,YAAjB,EAA+B;MAC7B,IAAI,KAAKlH,IAAT,EAAe;QACb,KAAKA,IAAL,CAAUkH,YAAV,GAAyBA,YAAzB;MACD;IACF;IAED;AACF;AACA;AACA;;EAjIA;IAAA;IAAA,KAkIE,eAAkB;MAChB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAzIA;IAAA,KA0IE,aAAgBC,WAAhB,EAA6B;MAC3B,CAAC,KAAK3O,WAAN,yBAAoB,IAApB,gBAAwC2O,WAAxC,IAAsDhB,kBAAkB,EAAxE;IACD;IAED;AACF;AACA;AACA;;EAjJA;IAAA;IAAA,KAkJE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAzJA;IAAA,KA0JE,aAAaiB,QAAb,EAAuB;MACrB,IAAI0E,kBAAkB,CAAC1E,QAAD,EAAW6D,aAAa,CAACmB,aAAzB,EAAwC,IAAxC,CAAtB,EAAqE;QACnE,uCAAiBhF,QAAjB;MACD;IACF;IAED;AACF;AACA;AACA;;EAnKA;IAAA;IAAA,KAoKE,eAAwB;MACtB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA3KA;IAAA,KA4KE,aAAsBC,iBAAtB,EAAyC;MACvC,CAAC,KAAK7O,WAAN,yBACI,IADJ,sBAC8B6O,iBAD9B,IAEIlB,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;AACA;;EAtLA;IAAA;IAAA,OAuLE,+BAAsB;MACpB,OAAO,KAAKnG,IAAL,CAAUE,mBAAV,CAA8B,KAAKmM,UAAnC,CAAP;IACD;EAzLH;;EAAA;AAAA,EAAyB1G,4CAAzB;AA4LA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;IACMqG;;;;;EACJ;AACF;AACA;EACE,mBAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAsBDjO,iBAAiB,CAACuO;IAtBjB;;IAAA;MAAA;MAAA,OAuBA;IAvBA;;IAAA;MAAA;MAAA,OAwBE;IAxBF;;IAAA;MAAA;MAAA,OAyBK;IAzBL;;IAAA;MAAA;MAAA,OA0BJ;IA1BI;;IAAA;MAAA;MAAA,OA2BG;IA3BH;;IAAA;MAAA;MAAA,OA4BL;IA5BK;;IAAA;MAAA;MAAA,OA6BA;IA7BA;;IAAA;MAAA;MAAA,OA8BC;IA9BD;;IAAA;MAAA;MAAA,OA+BN;IA/BM;;IAAA;MAAA;MAAA,OAgCE;IAhCF;;IAAA;MAAA;MAAA,OAiCE;IAjCF;;IAGZ,OAAK3L,KAAL,GAAa,IAAIkF,6CAAJ,CACT;MACE2E,cAAc,EAAEzM,iBAAiB,CAACyM,cADpC;MAEEC,WAAW,EAAEQ,aAAa,CAACR,WAF7B;MAGE7S,gBAAgB,EAAEnH,mBAAmB,CAACiX,iBAHxC;MAIEgD,eAAe,EAAEja,mBAAmB,CAAC4T,aAJvC;MAKEsG,gBAAgB,EAAEla,mBAAmB,CAACma,kBALxC;MAMEjD,UAAU,EAAE8D,+DAAsBA;IANpC,CADS,CAAb;IAHY;EAYb;EAED;AACF;AACA;;;;;WACE,sBAAa;MAAA;;MACX;;MACA,oBAAK9K,KAAL,4DAAYlI,UAAZ;IACD;;;;IAeD;AACF;AACA;AACA;AACA;IACE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;;SACE,aAAc+S,SAAd,EAAyB;MACvBK,sBAAsB;IACvB;IAED;AACF;AACA;AACA;;;;SACE,eAAiB;MACf,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAeU,UAAf,EAA2B;MACzB,CAAC,KAAK/T,WAAN,yBAAoB,IAApB,eAAuC+T,UAAvC,IAAoDpG,kBAAkB,EAAtE;IACD;IAED;AACF;AACA;AACA;;;;SACE,eAAmB;MACjB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAiBqG,YAAjB,EAA+B;MAC7B,CAAC,KAAKhU,WAAN,yBACI,IADJ,iBACyBgU,YADzB,IAEIrG,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;;;SACE,eAAsB;MACpB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAoBsG,eAApB,EAAqC;MACnC,IAAIX,kBAAkB,CAACW,eAAD,EAAkBxB,aAAa,CAAClD,YAAhC,EAA8C,IAA9C,CAAtB,EAA2E;QACzE,8CAAwB0E,eAAxB;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAa;MACX,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAWjM,MAAX,EAAmB;MACjB,CAAC,KAAKhI,WAAN,yBAAoB,IAApB,WAAmCgI,MAAnC,IAA4C2F,kBAAkB,EAA9D;IACD;IAED;AACF;AACA;AACA;;;;SACE,eAAoB;MAClB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAkB7F,aAAlB,EAAiC;MAC/B,IAAI,KAAK9H,WAAT,EAAsB;QACpB,IAAIsT,kBAAkB,CAACxL,aAAD,EAAgB2K,aAAa,CAACyB,SAA9B,CAAtB,EAAgE;UAC9D,4CAAsBpM,aAAtB;QACD;MACF,CAJD,MAIO;QACL,IAAIwL,kBAAkB,CAACxL,aAAD,EAAgB2K,aAAa,CAACb,UAA9B,CAAtB,EAAiE;UAC/D,4CAAsB9J,aAAtB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAY;MACV,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAUqM,KAAV,EAAiB;MACf,CAAC,KAAKnU,WAAN,yBAAoB,IAApB,UAAkCmU,KAAlC,IAA0CxG,kBAAkB,EAA5D;IACD;IAED;AACF;AACA;AACA;;;;SACE,eAAiB;MACf,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAelG,UAAf,EAA2B;MACzB,CAAC,KAAKzH,WAAN,yBAAoB,IAApB,eAAuCyH,UAAvC,IAAoDkG,kBAAkB,EAAtE;IACD;IAED;AACF;AACA;AACA;;;;SACE,eAAkB;MAChB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAgB5F,WAAhB,EAA6B;MAC3B,CAAC,KAAK/H,WAAN,yBAAoB,IAApB,gBAAwC+H,WAAxC,IAAsD4F,kBAAkB,EAAxE;IACD;IAED;AACF;AACA;AACA;;;;SACE,eAAW;MACT,OAAQ,CAAC,KAAKc,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,QAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAASiB,IAAT,EAAe;MACb,IAAId,kBAAkB,CAACc,IAAD,EAAO3B,aAAa,CAAC4B,OAArB,EAA8B,IAA9B,CAAtB,EAA2D;QACzD,mCAAaD,IAAb;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAmB;MACjB,OAAQ,CAAC,KAAK3F,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,gBAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAiBmB,YAAjB,EAA+B;MAC7B,IAAIhB,kBAAkB,CAACgB,YAAD,EAAe7B,aAAa,CAAC8B,WAA7B,CAAtB,EAAiE;QAC/D,2CAAqBD,YAArB;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAmB;MACjB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAiB5F,YAAjB,EAA+B;MAC7B,IAAI4E,kBAAkB,CAAC5E,YAAD,EAAe+D,aAAa,CAACmB,aAA7B,EAA4C,IAA5C,CAAtB,EAAyE;QACvE,2CAAqBlF,YAArB;MACD;IACF;IAED;AACF;AACA;AACA;AACA;;;;WACE,6BAAoBmF,UAApB,EAAwC;MACtC,IAAIW,WAAW,yBAAG,IAAH,gBAAf;;MACA,IAAMC,SAAS,GAAGZ,UAAlB;;MAEA,IAAI,OAAOY,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAtD,EAA4D;QAC1D,IAAMC,OAAO,GAAG,IAAInhB,IAAJ,GAAWsf,OAAX,KAAuB4B,SAAvC;QACAD,WAAW,GAAGtB,0DAAA,CAAwBwB,OAAO,GAAG,IAAlC,CAAd;MACD;;MAED,OAAOpP,4DAAA,uBACH,IADG,gBAEHkP,WAFG,EAGH,IAAIjJ,MAAJ,CAAWkH,aAAa,CAAC8B,WAAzB,CAHG,CAAP;IAKD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS;MACP,KAAK9F,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,cAAc,KAAKggB,UADN;QAEb,gBAAgB,KAAKC,YAFR;QAGb,mBAAmB,KAAKC,eAHX;QAIb,UAAU,KAAKjM,MAJF;QAKb,iBAAiB,KAAKF,aALT;QAMb,SAAS,KAAKqM,KAND;QAOb,eAAe,KAAKpM,WAPP;QAQb,QAAQ,KAAKqM,IARA;QASb,gBAAgB,KAAKE,YATR;QAUb,SAAS,KAAKnM;MAVD,CAAf;MAYA,OAAO,KAAKsG,UAAZ;MACA,OAAO1a,MAAP;IACD;;;;EAlTmBoZ;AAqTtB;AACA;AACA;AACA;;;IACMsG;;;;;EACJ;AACF;AACA;EACE,yBAAc;IAAA;;IAAA,0BACN;MACJzE,QAAQ,EAAEzJ,iBAAiB,CAACsP,mBADxB;MAEJjb,SAAS,EAAE3B,mBAAmB,CAACiX,iBAF3B;MAGJC,UAAU,EAAE8D,+DAAsBA;IAH9B,CADM;EAMb;;;EAVyBtb;AAa5B;AACA;AACA;AACA;;;;;;;;;;;AACO,IAAM4Y,cAAb;EAAA;;EAAA;;EAME;AACF;AACA;AACA;EACE,wBAAYN,qBAAZ,EAAmC;IAAA;;IAAA;;IACjC;;IADiC;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA,OARlB;IAQkB;;IAAA;MAAA;MAAA,OAPf;IAOe;;IAAA;MAAA;MAAA,OANd;IAMc;;IAGjC,kEAAkBA,qBAAqB,GACnCA,qBADmC,GAEnC1K,iBAAiB,CAAC0K,qBAFtB;;IAHiC;EAMlC;EAED;AACF;AACA;AACA;AACA;;;EAtBA;IAAA;IAAA,KAuBE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IA/BA;IAAA,KAgCE,aAAc+C,SAAd,EAAyB;MACvBK,sBAAsB;IACvB;IAED;AACF;AACA;AACA;;EAvCA;IAAA;IAAA,KAwCE,eAAoB;MAClB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA/CA;IAAA,KAgDE,aAAkBnL,aAAlB,EAAiC;MAC/B,CAAC,KAAKlI,WAAN,yBACI,IADJ,kBAC0BkI,aAD1B,IAEIyF,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EAzDA;IAAA;IAAA,KA0DE,eAAuB;MACrB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAjEA;IAAA,KAkEE,aAAqB0C,gBAArB,EAAuC;MACrC,CAAC,KAAKrQ,WAAN,yBACI,IADJ,qBAC6BqQ,gBAD7B,IAEI1C,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;;EA3EA;IAAA;IAAA,KA4EE,eAAwB;MACtB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAnFA;IAAA,KAoFE,aAAsB2C,iBAAtB,EAAyC;MACvC,CAAC,KAAKtQ,WAAN,yBACI,IADJ,sBAC8BsQ,iBAD9B,IAEI3C,kBAAkB,EAFtB;IAGD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EApGA;IAAA;IAAA,OAqGE,kBAAS;MACP,KAAKc,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,iBAAiB,KAAKmU,aADT;QAEb,oBAAoB,KAAKmI,gBAFZ;QAGb,qBAAqB,KAAKC;MAHb,CAAf;MAKA,OAAO,KAAK7B,UAAZ;MACA,OAAO1a,MAAP;IACD;EA9GH;;EAAA;AAAA,EAAoCoZ,4CAApC;AAiHA;AACA;AACA;AACA;;;;;;;;;;;;AACO,IAAM6C,oBAAb;EAAA;;EAAA;;EAGE;AACF;AACA;AACA;EACE,8BAAYZ,2BAAZ,EAAyC;IAAA;;IAAA;;IACvC;;IADuC;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA,OAQhC;IARgC;;IAAA;MAAA;MAAA,OAS7B;IAT6B;;IAAA;MAAA;MAAA,OAUhC;IAVgC;;IAAA;MAAA;MAAA,OAWjC;IAXiC;;IAGvC,kEAAkBA,2BAA2B,GACzCA,2BADyC,GAEzC7J,iBAAiB,CAAC6J,2BAFtB;;IAHuC;EAMxC;;EAbH;IAAA;IAAA;IAoBE;AACF;AACA;AACA;AACA;IACE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAjCA;IAAA,KAkCE,aAAc4D,SAAd,EAAyB;MACvBK,sBAAsB;IACvB;IAED;AACF;AACA;AACA;;EAzCA;IAAA;IAAA,KA0CE,eAAY;MACV,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAjDA;IAAA,KAkDE,aAAUzD,KAAV,EAAiB;MACf,IAAI0D,kBAAkB,CAAC1D,KAAD,EAAQ6C,aAAa,CAACqC,WAAtB,CAAlB,IACAvB,iBAAiB,CAAC3D,KAAD,EAAQ6C,aAAa,CAACsC,WAAtB,CADrB,EACyD;QACvD,oCAAcnF,KAAd;MACD;IACF;IAED;AACF;AACA;AACA;;EA5DA;IAAA;IAAA,KA6DE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IApEA;IAAA,KAqEE,aAAaC,QAAb,EAAuB;MACrB,IAAIyD,kBAAkB,CAACzD,QAAD,EAAW4C,aAAa,CAAClD,YAAzB,CAAtB,EAA8D;QAC5D,uCAAiBM,QAAjB;MACD;IACF;IAED;AACF;AACA;AACA;;EA9EA;IAAA;IAAA,KA+EE,eAAY;MACV,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAtFA;IAAA,KAuFE,aAAUC,KAAV,EAAiB;MACf,IAAIwD,kBAAkB,CAACxD,KAAD,EAAQ2C,aAAa,CAACqC,WAAtB,CAAlB,IACAvB,iBAAiB,CAACzD,KAAD,EAAQ2C,aAAa,CAACuC,WAAtB,CADrB,EACyD;QACvD,oCAAclF,KAAd;MACD;IACF;IAED;AACF;AACA;AACA;;EAjGA;IAAA;IAAA,KAkGE,eAAW;MACT,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAzGA;IAAA,KA0GE,aAASC,IAAT,EAAe;MACb,IAAIuD,kBAAkB,CAACvD,IAAD,EAAO0C,aAAa,CAACqC,WAArB,CAAlB,IACAvB,iBAAiB,CAACxD,IAAD,EAAO0C,aAAa,CAACwC,UAArB,CADrB,EACuD;QACrD,mCAAalF,IAAb;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EA5HA;IAAA;IAAA,OA6HE,kBAAS;MACP,KAAKtB,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,SAAS,KAAK6b,KADD;QAEb,YAAY,KAAKC,QAFJ;QAGb,SAAS,KAAKC,KAHD;QAIb,QAAQ,KAAKC;MAJA,CAAf;MAMA,OAAO,KAAKtB,UAAZ;MACA,OAAO1a,MAAP;IACD;EAvIH;;EAAA;AAAA,EAA0CoZ,4CAA1C;AA0IA;AACA;AACA;AACA;;IACMuG;;;;;EACJ;AACF;AACA;EACE,2BAAc;IAAA;;IAAA,0BACN;MACJ1E,QAAQ,EAAEzJ,iBAAiB,CAAC2P,qBADxB;MAEJtb,SAAS,EAAE3B,mBAAmB,CAACiX,iBAF3B;MAGJC,UAAU,EAAE8D,+DAAsBA;IAH9B,CADM;EAMb;;;EAV2Btb;AAa9B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AACO,IAAMwN,qBAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,iCAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAwBR;IAxBQ;;IAAA;MAAA;MAAA,OAyBN;IAzBM;;IAAA;MAAA;MAAA,OA0BN;IA1BM;;IAAA;MAAA;MAAA,OA2BD;IA3BC;;IAAA;MAAA;MAAA,OA4BM;IA5BN;;IAAA;MAAA;MAAA,OA6BJ;IA7BI;;IAAA;MAAA;MAAA,OA8BH;IA9BG;;IAGZ,OAAK2J,UAAL,GAAkB,IAAInX,6CAAJ,CAAa;MAC7BiC,SAAS,EAAE3B,mBAAmB,CAACiX,iBADF;MAE7BC,UAAU,EAAE8D,+DAFiB;MAG7BjE,QAAQ,EAAEzJ,iBAAiB,CAACsP;IAHC,CAAb,CAAlB;IAKA,OAAK9L,iBAAL,GAAyB,IAAIpR,6CAAJ,CAAa;MACpCiC,SAAS,EAAE3B,mBAAmB,CAACiX,iBADK;MAEpCC,UAAU,EAAE8D,+DAFwB;MAGpCjE,QAAQ,EAAEzJ,iBAAiB,CAAC4P;IAHQ,CAAb,CAAzB;IARY;EAab;EAED;AACF;AACA;;;EArBA;IAAA;IAAA,OAsBE,sBAAa;MAAA;;MACX;;MACA,0BAAKrG,UAAL,wEAAiB7O,UAAjB;MACA,8BAAK8I,iBAAL,gFAAwB9I,UAAxB;IACD;EA1BH;IAAA;IAAA;IAoCE;AACF;AACA;AACA;IACE,eAAS;MACP,OAAQ,CAAC,KAAKwO,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,MAAP;IACD;IAED;AACF;AACA;AACA;IA/CA;IAAA,KAgDE,aAAOiC,EAAP,EAAW;MACT,IAAI9B,kBAAkB,CAAC8B,EAAD,EAAK3C,aAAa,CAAC4C,aAAnB,CAAtB,EAAyD;QACvD,iCAAWD,EAAX;MACD;IACF;IAED;AACF;AACA;AACA;;EAzDA;IAAA;IAAA,KA0DE,eAAW;MACT,OAAQ,CAAC,KAAK3G,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,QAAP;IACD;IAED;AACF;AACA;AACA;IAjEA;IAAA,KAkEE,aAASze,IAAT,EAAe;MACb,IAAI4e,kBAAkB,CAAC5e,IAAD,EAAO+d,aAAa,CAACd,OAArB,CAAtB,EAAqD;QACnD,mCAAajd,IAAb;MACD;IACF;IAED;AACF;AACA;AACA;;EA3EA;IAAA;IAAA,KA4EE,eAAW;MACT,OAAQ,CAAC,KAAK+Z,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,QAAP;IACD;IAED;AACF;AACA;AACA;IAnFA;IAAA,KAoFE,aAASrd,IAAT,EAAe;MACb,IAAIwd,kBAAkB,CAACxd,IAAD,EAAO2c,aAAa,CAAC6C,OAArB,CAAtB,EAAqD;QACnD,mCAAaxf,IAAb;MACD;IACF;IAED;AACF;AACA;AACA;;EA7FA;IAAA;IAAA,KA8FE,eAAgB;MACd,OAAQ,CAAC,KAAK2Y,UAAP,GACH0E,mBAAmB,EADhB,yBAEH,IAFG,aAAP;IAGD;IAED;AACF;AACA;AACA;IAvGA;IAAA,KAwGE,aAAcoC,SAAd,EAAyB;MACvB,IAAIjC,kBAAkB,CAACiC,SAAD,EAAY9C,aAAa,CAACM,UAA1B,CAAlB,IACAQ,iBAAiB,CAACgC,SAAD,EAAY9C,aAAa,CAAC+C,eAA1B,CADrB,EACiE;QAC/D,wCAAkBD,SAAlB;MACD;IACF;IAED;AACF;AACA;AACA;;EAlHA;IAAA;IAAA,KAmHE,eAAuB;MACrB,OAAQ,CAAC,KAAK9G,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,oBAAP;IACD;IAED;AACF;AACA;AACA;IA1HA;IAAA,KA2HE,aAAqBsC,gBAArB,EAAuC;MACrC,IAAInC,kBAAkB,CAACmC,gBAAD,EAAmBhD,aAAa,CAACiD,WAAjC,EAA8C,IAA9C,CAAtB,EAA2E;QACzE,+CAAyBD,gBAAzB;MACD;IACF;IAED;AACF;AACA;AACA;;EApIA;IAAA;IAAA,KAqIE,eAAa;MACX,OAAQ,CAAC,KAAKhH,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,UAAP;IACD;IAED;AACF;AACA;AACA;IA5IA;IAAA,KA6IE,aAAWpf,MAAX,EAAmB;MACjB,IAAIuf,kBAAkB,CAACvf,MAAD,EAAS0e,aAAa,CAACkD,SAAvB,CAAtB,EAAyD;QACvD,qCAAe5hB,MAAf;MACD;IACF;IAED;AACF;AACA;AACA;;EAtJA;IAAA;IAAA,KAuJE,eAAc;MACZ,OAAQ,CAAC,KAAK0a,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,WAAP;IACD;IAED;AACF;AACA;AACA;IA9JA;IAAA,KA+JE,aAAYyC,OAAZ,EAAqB;MACnB,IAAItC,kBAAkB,CAACsC,OAAD,EAAUnD,aAAa,CAAC8B,WAAxB,CAAtB,EAA4D;QAC1D,sCAAgBqB,OAAhB;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EArLA;IAAA;IAAA,OAsLE,kBAAS;MACP,KAAKnH,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,MAAM,KAAKqhB,EADE;QAEb,QAAQ,KAAK1gB,IAFA;QAGb,QAAQ,KAAKoB,IAHA;QAIb,aAAa,KAAKyf,SAJL;QAKb,oBAAoB,KAAKE,gBALZ;QAMb,UAAU,KAAK1hB,MANF;QAOb,WAAW,KAAK6hB,OAPH;QAQb,cAAc,KAAK9G,UARN;QASb,qBAAqB,KAAK/F;MATb,CAAf;MAWA,OAAO,KAAK0F,UAAZ;MACA,OAAO1a,MAAP;IACD;EArMH;;EAAA;AAAA,EAA2CoZ,4CAA3C;AAwMA;AACA;AACA;AACA;;;;;;AACO,IAAM9H,mBAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,+BAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAcR;IAdQ;;IAAA;MAAA;MAAA,OAeJ;IAfI;;IAGZ,OAAK8C,KAAL,GAAa,IAAIkF,6CAAJ,CACT;MACE2E,cAAc,EAAEzM,iBAAiB,CAACyM,cADpC;MAEEC,WAAW,EAAEQ,aAAa,CAACR,WAF7B;MAGE7S,gBAAgB,EAAEnH,mBAAmB,CAACiX,iBAHxC;MAIEgD,eAAe,EAAEja,mBAAmB,CAAC4T,aAJvC;MAKEsG,gBAAgB,EAAEla,mBAAmB,CAACma,kBALxC;MAMEjD,UAAU,EAAE8D,+DAAsBA;IANpC,CADS,CAAb;IAHY;EAYb;;EAhBH;IAAA;IAAA;IAqBE;AACF;AACA;AACA;IACE,eAAS;MACP,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAhCA;IAAA,KAiCE,aAAOmC,EAAP,EAAW;MACT,IAAI9B,kBAAkB,CAAC8B,EAAD,EAAK3C,aAAa,CAAC4C,aAAnB,CAAtB,EAAyD;QACvD,kCAAWD,EAAX;MACD;IACF;IAED;AACF;AACA;AACA;;EA1CA;IAAA;IAAA,KA2CE,eAAa;MACX,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAlDA;IAAA,KAmDE,aAAW1b,MAAX,EAAmB;MACjB,IAAI4Z,kBAAkB,CAAC5Z,MAAD,EAAS+Y,aAAa,CAACb,UAAvB,CAAtB,EAA0D;QACxD,qCAAelY,MAAf;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAlEA;IAAA;IAAA,OAmEE,kBAAS;MACP,KAAK+U,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,MAAM,KAAKqhB,EADE;QAEb,UAAU,KAAK1b,MAFF;QAGb,SAAS,KAAKyO;MAHD,CAAf;MAKA,OAAO,KAAKsG,UAAZ;MACA,OAAO1a,MAAP;IACD;EA5EH;;EAAA;AAAA,EAAyCoZ,4CAAzC;AA+EA;AACA;AACA;AACA;;;;AACO,IAAM/H,+BAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,2CAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAIR;IAJQ;;IAAA;EAEb;;EANH;IAAA;IAAA;IAUE;AACF;AACA;AACA;IACE,eAAS;MACP,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IArBA;IAAA,KAsBE,aAAOgQ,EAAP,EAAW;MACT,IAAI9B,kBAAkB,CAAC8B,EAAD,EAAK3C,aAAa,CAAC4C,aAAnB,CAAtB,EAAyD;QACvD,kCAAWD,EAAX;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAnCA;IAAA;IAAA,OAoCE,kBAAS;MACP,KAAK3G,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,MAAM,KAAKqhB;MADE,CAAf;MAGA,OAAO,KAAK3G,UAAZ;MACA,OAAO1a,MAAP;IACD;EA3CH;;EAAA;AAAA,EAAqDoZ,4CAArD;AA8CA;AACA;AACA;AACA;;;;AACO,IAAMjI,qCAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,iDAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAIH;IAJG;;IAAA;EAEb;;EANH;IAAA;IAAA;IAUE;AACF;AACA;AACA;IACE,eAAc;MACZ,OAAQ,CAAC,KAAKuJ,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,WAAP;IACD;IAED;AACF;AACA;AACA;IArBA;IAAA,KAsBE,aAAYlI,OAAZ,EAAqB;MACnB,IAAIqI,kBAAkB,CAACrI,OAAD,EAAUwH,aAAa,CAACiD,WAAxB,EAAqC,IAArC,CAAtB,EAAkE;QAChE,sCAAgBzK,OAAhB;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAnCA;IAAA;IAAA,OAoCE,kBAAS;MACP,KAAKwD,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,WAAW,KAAKkX;MADH,CAAf;MAGA,OAAO,KAAKwD,UAAZ;MACA,OAAO1a,MAAP;IACD;EA3CH;;EAAA;AAAA,EAA2DoZ,4CAA3D;AA8CA;AACA;AACA;;;;AACO,IAAMpW,GAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,eAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAIL;IAJK;;IAAA;EAEb;;EANH;IAAA;IAAA;IAUE;AACF;AACA;AACA;IACE,eAAY;MACV,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IArBA;IAAA,KAsBE,aAAU0P,KAAV,EAAiB;MACf,IAAI6M,kBAAkB,CAAC7M,KAAD,EAAQgM,aAAa,CAACoD,QAAtB,CAAtB,EAAuD;QACrD,oCAAcpP,KAAd;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAnCA;IAAA;IAAA,OAoCE,kBAAS;MACP,KAAKgI,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,SAAS,KAAK0S;MADD,CAAf;MAGA,OAAO,KAAKgI,UAAZ;MACA,OAAO1a,MAAP;IACD;EA3CH;;EAAA;AAAA,EAAyBoZ,4CAAzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClvCA;AAOA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMtE,mBAAmB,GAAG/Q,0EAA5B;AACA,IAAMgR,qBAAqB,GAAGjR,wEAA9B;AACA,IAAMke,iBAAiB,GAAGrN,6EAA1B;AAEA,IAAMO,eAAe,GAAGL,kEAAxB;AAEA;AACA;AACA;;AACA,SAAS+E,kBAAT,GAA8B;EAC5B,MAAM,IAAImI,iEAAJ,CAA6BhN,qBAAqB,CAACtJ,iBAAnD,CAAN;AACD;AAED;AACA;AACA;;;AACA,SAAS2T,mBAAT,GAA+B;EAC7B,MAAM,IAAI2C,iEAAJ,CAA6BhN,qBAAqB,CAACsK,kBAAnD,CAAN;AACD;AAED;AACA;AACA;;;AACA,SAAS6C,sBAAT,GAAkC;EAChC,MAAM,IAAIH,iEAAJ,CAA6BhN,qBAAqB,CAAC+C,aAAnD,CAAN;AACD;AAED;AACA;AACA;;;AACA,SAASqK,kCAAT,GAA8C;EAC5C,MAAM,IAAIJ,iEAAJ,CAA6BhN,qBAAqB,CAACwB,0BAAnD,CAAN;AACD;AAED;AACA;AACA;;;AACA,SAAS6L,oBAAT,GAAgC;EAC9B,MAAM,IAAIL,iEAAJ,CAA6BhN,qBAAqB,CAAC4B,mBAAnD,CAAN;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0L,oBAAT,CACIvgB,KADJ,EAEIgY,YAFJ,EAGIC,gBAHJ,EAGgC;EAC9B,OAAOV,yDAAgB,CACnBvX,KADmB,EAEnBgY,YAFmB,EAGnB/E,qBAAqB,CAAC+C,aAHH,EAInBiK,iEAJmB,EAKnBhI,gBALmB,CAAvB;AAOD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuI,mBAAT,CAA6BxgB,KAA7B,EAAyC8c,YAAzC,EAA+D;EAC7D,OAAOD,wDAAe,CAClB7c,KADkB,EAElB8c,YAFkB,EAGlB7J,qBAAqB,CAACsJ,kBAHJ,EAIlB0D,iEAJkB,CAAtB;AAMD;AAED;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACO,IAAMnf,GAAb;EAAA;;EAAA;;EACE;AACF;AACA;AACA;EACE,aAAYqJ,WAAZ,EAAkC;IAAA;;IAAA;;IAChC;;IADgC;MAAA;MAAA,OAatB;IAbsB;;IAAA;MAAA;MAAA,OAcrB6I,mBAAmB,CAACkF;IAdC;;IAAA;MAAA;MAAA,OAeb;IAfa;;IAAA;MAAA;MAAA,OAgBV;IAhBU;;IAAA;MAAA;MAAA,OAiBxB;IAjBwB;;IAAA;MAAA;MAAA,OAkBzB;IAlByB;;IAAA;MAAA;MAAA,OAmB1B;IAnB0B;;IAAA;MAAA;MAAA,OAoBnB;IApBmB;;IAAA;MAAA;MAAA,OAqBpB;IArBoB;;IAAA;MAAA;MAAA,OAsBlB;IAtBkB;;IAAA;MAAA;MAAA,OAuBtB;IAvBsB;;IAAA;MAAA;MAAA,OAwBd;IAxBc;;IAAA;MAAA;MAAA,OAyB1B;IAzB0B;;IAAA;MAAA;MAAA,OA0Bd;IA1Bc;;IAAA;MAAA;MAAA,OA2BV;IA3BU;;IAAA;MAAA;MAAA,OA4BlB;IA5BkB;;IAAA;MAAA;MAAA,OA6BhB;IA7BgB;;IAAA;MAAA;MAAA,OA8BlB;IA9BkB;;IAAA;MAAA;MAAA,OA+Bb;IA/Ba;;IAAA;MAAA;MAAA,OAgCpB;IAhCoB;;IAGhC,MAAKuI,kBAAL,GAA0B,IAAIC,oBAAJ,EAA1B;IACA,MAAKpO,KAAL,GAAa,IAAIqO,iBAAJ,EAAb;IACA,MAAKC,qBAAL,GAA6B,IAAIC,sBAAJ,EAA7B;IACA,MAAK7H,iBAAL,GAAyB,IAAI8H,kBAAJ,EAAzB;IACA,MAAKtM,YAAL,GAAoB,IAAIqJ,eAAJ,EAApB;IACA,MAAK5E,UAAL,GAAkB,IAAI2E,aAAJ,EAAlB;IAEA,IAAIzT,WAAJ,EAAiB,MAAKC,UAAL;IAVe;EAWjC;;EAhBH;IAAA;IAAA;IAuCE;AACF;AACA;IACE,sBAAa;MAAA;;MACX;;MACA,8BAAKqW,kBAAL,gFAAyBrW,UAAzB;MACA,oBAAKkI,KAAL,4DAAYlI,UAAZ;MACA,8BAAKwW,qBAAL,gFAA4BxW,UAA5B;MACA,+BAAK4O,iBAAL,kFAAwB5O,UAAxB;MACA,2BAAKoK,YAAL,0EAAmBpK,UAAnB;MACA,yBAAK6O,UAAL,sEAAiB7O,UAAjB;IACD;IAED;AACF;AACA;AACA;AACA;;EAxDA;IAAA;IAAA,KAyDE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAjEA;IAAA,KAkEE,aAAa0T,QAAb,EAAuB;MACrBhG,kBAAkB;IACnB;IAED;AACF;AACA;AACA;AACA;;EA1EA;IAAA;IAAA,KA2EE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IAnFA;IAAA,KAoFE,aAAcqF,SAAd,EAAyB;MACvBrF,kBAAkB;IACnB;IAED;AACF;AACA;AACA;;EA3FA;IAAA;IAAA,KA4FE,eAAwB;MACtB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAnGA;IAAA,KAoGE,aAAsBf,iBAAtB,EAAyC;MACvC,IAAIwJ,oBAAoB,CAACxJ,iBAAD,EAAoB3D,eAAe,CAAC2N,UAApC,CAAxB,EAAyE;QACvE,gDAA0BhK,iBAA1B;MACD;IACF;IAED;AACF;AACA;AACA;;EA7GA;IAAA;IAAA,KA8GE,eAA2B;MACzB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IArHA;IAAA,KAsHE,aAAyBF,oBAAzB,EAA+C;MAC7C,CAAC,KAAK1M,WAAN,yBACE,IADF,yBAC+B0M,oBAD/B,IAEEiB,kBAAkB,EAFpB;IAGD;IAED;AACF;AACA;AACA;;EA/HA;IAAA;IAAA,KAgIE,eAAa;MACX,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAvIA;IAAA,KAwIE,aAAW3F,MAAX,EAAmB;MACjB,CAAC,KAAKhI,WAAN,yBAAoB,IAApB,WAAmCgI,MAAnC,IAA4C2F,kBAAkB,EAA9D;IACD;IAED;AACF;AACA;AACA;;EA/IA;IAAA;IAAA,KAgJE,eAAY;MACV,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAvJA;IAAA,KAwJE,aAAUwG,KAAV,EAAiB;MACf,CAAC,KAAKnU,WAAN,yBAAoB,IAApB,UAAkCmU,KAAlC,IAA0CxG,kBAAkB,EAA5D;IACD;IAED;AACF;AACA;AACA;;EA/JA;IAAA;IAAA,KAgKE,eAAW;MACT,OAAQ,CAAC,KAAKc,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,QAAP;IACD;IAED;AACF;AACA;AACA;IAvKA;IAAA,KAwKE,aAASiB,IAAT,EAAe;MACb,IAAIgC,oBAAoB,CAAChC,IAAD,EAAOnL,eAAe,CAACoL,OAAvB,EAAgC,IAAhC,CAAxB,EAA+D;QAC7D,mCAAaD,IAAb;MACD;IACF;IAED;AACF;AACA;AACA;;EAjLA;IAAA;IAAA,KAkLE,eAAkB;MAChB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAzLA;IAAA,KA0LE,aAAgBzF,WAAhB,EAA6B;MAC3B,CAAC,KAAK3O,WAAN,yBAAoB,IAApB,gBAAwC2O,WAAxC,IAAsDhB,kBAAkB,EAAxE;IACD;IAED;AACF;AACA;AACA;;EAjMA;IAAA;IAAA,KAkME,eAAiB;MACf,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAzMA;IAAA,KA0ME,aAAekJ,UAAf,EAA2B;MACzB,CAAC,KAAK7W,WAAN,yBAAoB,IAApB,eAAuC6W,UAAvC,IAAoDlJ,kBAAkB,EAAtE;IACD;IAED;AACF;AACA;AACA;;EAjNA;IAAA;IAAA,KAkNE,eAAmB;MACjB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAzNA;IAAA,KA0NE,aAAiBmJ,YAAjB,EAA+B;MAC7B,CAAC,KAAK9W,WAAN,yBACE,IADF,iBACuB8W,YADvB,IAEEnJ,kBAAkB,EAFpB;IAGD;IAED;AACF;AACA;AACA;;EAnOA;IAAA;IAAA,KAoOE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA3OA;IAAA,KA4OE,aAAa6E,QAAb,EAAuB;MACrB,IAAI4D,oBAAoB,CAAC5D,QAAD,EAAWvJ,eAAe,CAAC8N,aAA3B,CAAxB,EAAmE;QACjE,uCAAiBvE,QAAjB;MACD;IACF;IAED;AACF;AACA;AACA;;EArPA;IAAA;IAAA,KAsPE,eAAuB;MACrB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA7PA;IAAA,KA8PE,aAAqBnC,gBAArB,EAAuC;MACrC,CAAC,KAAKrQ,WAAN,yBACE,IADF,qBAC2BqQ,gBAD3B,IAEE1C,kBAAkB,EAFpB;IAGD;IAED;AACF;AACA;AACA;;EAvQA;IAAA;IAAA,KAwQE,eAAW;MACT,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA/QA;IAAA,KAgRE,aAASlB,IAAT,EAAe;MACb,CAAC,KAAKzM,WAAN,yBAAoB,IAApB,SAAiCyM,IAAjC,IAAwCkB,kBAAkB,EAA1D;IACD;IAED;AACF;AACA;AACA;;EAvRA;IAAA;IAAA,KAwRE,eAAuB;MACrB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA/RA;IAAA,KAgSE,aAAqBhB,gBAArB,EAAuC;MACrC,IAAIyJ,oBAAoB,CAACzJ,gBAAD,EAAmB1D,eAAe,CAAC8J,UAAnC,CAApB,IACFsD,mBAAmB,CAAC1J,gBAAD,EAAmB1D,eAAe,CAAC+N,cAAnC,CADrB,EACyE;QACvE,+CAAyBrK,gBAAzB;MACD;IACF;IAED;AACF;AACA;AACA;;EA1SA;IAAA;IAAA,KA2SE,eAA2B;MACzB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAlTA;IAAA,KAmTE,aAAyBE,oBAAzB,EAA+C;MAC7C,CAAC,KAAK7M,WAAN,yBACE,IADF,yBAC+B6M,oBAD/B,IAEEc,kBAAkB,EAFpB;IAGD;IAED;AACF;AACA;AACA;;EA5TA;IAAA;IAAA,KA6TE,eAAmB;MACjB,OAAQ,CAAC,KAAKc,UAAP,GAAqB0E,mBAAmB,EAAxC,yBAA6C,IAA7C,gBAAP;IACD;IAED;AACF;AACA;AACA;IApUA;IAAA,KAqUE,aAAiBmB,YAAjB,EAA+B;MAC7B,IAAI8B,oBAAoB,CAAC9B,YAAD,EAAerL,eAAe,CAACsL,WAA/B,CAAxB,EAAqE;QACnE,2CAAqBD,YAArB;MACD;IACF;IAED;AACF;AACA;AACA;;EA9UA;IAAA;IAAA,KA+UE,eAAqB;MACnB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAtVA;IAAA,KAuVE,aAAmBvH,cAAnB,EAAmC;MACjC,IAAIqJ,oBAAoB,CAACrJ,cAAD,EAAiB9D,eAAe,CAACgO,UAAjC,CAAxB,EAAsE;QACpE,6CAAuBlK,cAAvB;MACD;IACF;IAED;AACF;AACA;AACA;;EAhWA;IAAA;IAAA,KAiWE,eAAmB;MACjB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAxWA;IAAA,KAyWE,aAAiB2B,YAAjB,EAA+B;MAC7B,IAAI0H,oBAAoB,CAAC1H,YAAD,EAAezF,eAAe,CAACiO,cAA/B,EACpB,IADoB,CAAxB,EACW;QACT,2CAAqBxI,YAArB;MACD;IACF;IAED;AACF;AACA;AACA;;EAnXA;IAAA;IAAA,KAoXE,eAAwB;MACtB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA3XA;IAAA,KA4XE,aAAsB4B,iBAAtB,EAAyC;MACvC,CAAC,KAAKtQ,WAAN,yBACE,IADF,sBAC4BsQ,iBAD5B,IAEE3C,kBAAkB,EAFpB;IAGD;IAED;AACF;AACA;AACA;;EArYA;IAAA;IAAA,KAsYE,eAAiB;MACf,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA7YA;IAAA,KA8YE,aAAelG,UAAf,EAA2B;MACzB,CAAC,KAAKzH,WAAN,yBAAoB,IAApB,eAAuCyH,UAAvC,IAAoDkG,kBAAkB,EAAtE;IACD;IAED;AACF;AACA;AACA;AACA;;EAtZA;IAAA;IAAA,OAuZE,+BAAsB;MACpB,IAAI6G,WAAW,yBAAG,IAAH,gBAAf;;MACA,IAAMC,SAAS,GAAG,KAAKZ,UAAvB;;MAEA,IAAI,OAAOY,SAAP,KAAqB,WAArB,IAAoCA,SAAS,KAAK,IAAtD,EAA4D;QAC1D,IAAMC,OAAO,GAAG,IAAInhB,IAAJ,GAAWsf,OAAX,KAAuB4B,SAAvC;QACAD,WAAW,GAAGtB,+DAAA,CAA6BwB,OAAO,GAAG,IAAvC,CAAd;MACD;;MAED,OAAOxB,uDAAA,uBACH,IADG,gBAEHsB,WAFG,EAGHvL,eAAe,CAACsL,WAHb,CAAP;IAKD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EArcA;IAAA;IAAA,OAscE,kBAAS;MACP,KAAK9F,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,yBAAyB,KAAK0iB,qBADjB;QAEb,qBAAqB,KAAK5H,iBAFb;QAGb,qBAAqB,KAAKjC,iBAHb;QAIb,wBAAwB,KAAKF,oBAJhB;QAKb,UAAU,KAAK1E,MALF;QAMb,SAAS,KAAKmM,KAND;QAOb,QAAQ,KAAKC,IAPA;QAQb,gBAAgB,KAAK/J,YARR;QASb,eAAe,KAAKsE,WATP;QAUb,cAAc,KAAKkI,UAVN;QAWb,gBAAgB,KAAKC,YAXR;QAYb,sBAAsB,KAAKR,kBAZd;QAab,YAAY,KAAK9D,QAbJ;QAcb,oBAAoB,KAAKnC,gBAdZ;QAeb,QAAQ,KAAK5D,IAfA;QAgBb,cAAc,KAAKqC,UAhBN;QAiBb,oBAAoB,KAAKnC,gBAjBZ;QAkBb,wBAAwB,KAAKE,oBAlBhB;QAmBb,SAAS,KAAK1E,KAnBD;QAoBb,gBAAgB,KAAKmM,YApBR;QAqBb,kBAAkB,KAAKvH,cArBV;QAsBb,gBAAgB,KAAK2B,YAtBR;QAuBb,qBAAqB,KAAK4B;MAvBb,CAAf;MAyBA,OAAO,KAAK7B,UAAZ;MACA,OAAO1a,MAAP;IACD;EAneH;;EAAA;AAAA,EAAyBoZ,4CAAzB;AAseA;AACA;AACA;;;;;;;;;;;;IACMoJ;;;;;EAOJ;AACF;AACA;EACE,gCAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OATD1N,mBAAmB,CAACuG;IASnB;;IAAA;MAAA;MAAA,OARC;IAQD;;IAAA;MAAA;MAAA,OAPF;IAOE;;IAAA;MAAA;MAAA,OANI;IAMJ;;IAAA;MAAA;MAAA,OALM;IAKN;;IAAA;EAEb;EAED;AACF;AACA;AACA;AACA;;;;;SACE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;;SACE,aAAc4D,SAAd,EAAyB;MACvBrF,kBAAkB;IACnB;IAED;AACF;AACA;AACA;;;;SACE,eAAkB;MAChB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAgB0J,WAAhB,EAA6B;MAC3B,IAAIjB,oBAAoB,CAACiB,WAAD,EAAcpO,eAAe,CAAC8J,UAA9B,CAApB,IACFsD,mBAAmB,CAACgB,WAAD,EAAcpO,eAAe,CAAC8L,WAA9B,CADrB,EACiE;QAC/D,0CAAoBsC,WAApB;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAaxH,QAAb,EAAuB;MACrB,IAAIuG,oBAAoB,CAACvG,QAAD,EAAW5G,eAAe,CAACqO,OAA3B,CAAxB,EAA6D;QAC3D,uCAAiBzH,QAAjB;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAqB;MACnB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAmB0H,cAAnB,EAAmC;MACjC,IAAInB,oBAAoB,CAACmB,cAAD,EAAiBtO,eAAe,CAAC8J,UAAjC,CAApB,IACFsD,mBAAmB,CAACkB,cAAD,EAAiBtO,eAAe,CAAC+L,WAAjC,CADrB,EACoE;QAClE,6CAAuBuC,cAAvB;MACD;IACF;IAED;AACF;AACA;AACA;;;;SACE,eAAuB;MACrB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAqBC,gBAArB,EAAuC;MACrC,IAAIpB,oBAAoB,CAACoB,gBAAD,EAAmBvO,eAAe,CAAC6L,WAAnC,CAApB,IACFuB,mBAAmB,CAACmB,gBAAD,EAAmBvO,eAAe,CAACgM,UAAnC,CADrB,EACqE;QACnE,+CAAyBuC,gBAAzB;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS;MACP,KAAK/I,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,eAAe,KAAKsjB,WADP;QAEb,YAAY,KAAKxH,QAFJ;QAGb,kBAAkB,KAAK0H,cAHV;QAIb,oBAAoB,KAAKC;MAJZ,CAAf;MAMA,OAAO,KAAK/I,UAAZ;MACA,OAAO1a,MAAP;IACD;;;;EAjIgCoZ;AAoInC;AACA;AACA;;;IACMuG;;;;;EACJ;AACF;AACA;EACE,2BAAc;IAAA;;IAAA,0BACN;MACJ1E,QAAQ,EAAEnG,mBAAmB,CAACqM,qBAD1B;MAEJtb,SAAS,EAAEkP,qBAAqB,CAACtJ,iBAF7B;MAGJ2P,UAAU,EAAE2G,iEAAwBA;IAHhC,CADM;EAMb;;;EAV2Bne;AAa9B;AACA;AACA;;;IACM8b;;;;;EACJ;AACF;AACA;EACE,yBAAc;IAAA;;IAAA,0BACN;MACJzE,QAAQ,EAAEnG,mBAAmB,CAACgM,mBAD1B;MAEJjb,SAAS,EAAEkP,qBAAqB,CAACtJ,iBAF7B;MAGJ2P,UAAU,EAAE2G,iEAAwBA;IAHhC,CADM;EAMb;;;EAVyBne;AAa5B;AACA;AACA;;;IACMgf;;;;;EACJ;AACF;AACA;EACE,8BAAc;IAAA;;IAAA,0BACN;MACJ3H,QAAQ,EAAEnG,mBAAmB,CAACoG,iBAD1B;MAEJrV,SAAS,EAAEkP,qBAAqB,CAACtJ,iBAF7B;MAGJ2P,UAAU,EAAE2G,iEAAwBA;IAHhC,CADM;EAMb;;;EAV8Bne;AAajC;AACA;AACA;;;IACM+e;;;;;EACJ;AACF;AACA;EACE,kCAAc;IAAA;;IAAA,0BACN;MACJ1H,QAAQ,EAAEnG,mBAAmB,CAACoG,iBAD1B;MAEJrV,SAAS,EAAEkP,qBAAqB,CAACtJ,iBAF7B;MAGJ2P,UAAU,EAAE2G,iEAAwBA;IAHhC,CADM;EAMb;;;EAVkCne;AAarC;AACA;AACA;;;;;;;;;;;;;;;;;;;AACO,IAAMwN,qBAAb;EAAA;;EAAA;;EAUE;AACF;AACA;EACE,iCAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAZR;IAYQ;;IAAA;MAAA;MAAA,OAXN;IAWM;;IAAA;MAAA;MAAA,OAVD;IAUC;;IAAA;MAAA;MAAA,OATD;IASC;;IAAA;MAAA;MAAA,OARM;IAQN;;IAAA;MAAA;MAAA,OAPJ;IAOI;;IAAA;MAAA;MAAA,OANH;IAMG;;IAAA;MAAA;MAAA,OALC;IAKD;;IAGZ,OAAK2J,UAAL,GAAkB,IAAInX,6CAAJ,CAAa;MAC7BiC,SAAS,EAAEkP,qBAAqB,CAACtJ,iBADJ;MAE7B2P,UAAU,EAAE2G,iEAFiB;MAG7B9G,QAAQ,EAAEnG,mBAAmB,CAACgM;IAHD,CAAb,CAAlB;IAKA,OAAK9L,iBAAL,GAAyB,IAAIpR,6CAAJ,CAAa;MACpCiC,SAAS,EAAEkP,qBAAqB,CAACtJ,iBADG;MAEpC2P,UAAU,EAAE2G,iEAFwB;MAGpC9G,QAAQ,EAAEnG,mBAAmB,CAACsM;IAHM,CAAb,CAAzB;IARY;EAab;EAED;AACF;AACA;;;EA9BA;IAAA;IAAA,OA+BE,sBAAa;MAAA;;MACX;;MACA,0BAAKrG,UAAL,wEAAiB7O,UAAjB;MACA,8BAAK8I,iBAAL,gFAAwB9I,UAAxB;IACD;IAED;AACF;AACA;AACA;;EAxCA;IAAA;IAAA,KAyCE,eAAS;MACP,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAhDA;IAAA,KAiDE,aAAOmV,EAAP,EAAW;MACT,IAAIgB,oBAAoB,CAAChB,EAAD,EAAKnM,eAAe,CAACwO,iBAArB,CAAxB,EAAiE;QAC/D,iCAAWrC,EAAX;MACD;IACF;IAED;AACF;AACA;AACA;;EA1DA;IAAA;IAAA,KA2DE,eAAW;MACT,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAlEA;IAAA,KAmEE,aAAStf,IAAT,EAAe;MACb,IAAI,KAAKkK,WAAL,IAAoB,qCAAa,EAArC,EAAyC;QACvCkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAIE,oBAAoB,CAACtgB,IAAD,EAAOmT,eAAe,CAACqM,OAAvB,CAAxB,EAAyD;UACvD,mCAAaxf,IAAb;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;EAhFA;IAAA;IAAA,KAiFE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAxFA;IAAA,KAyFE,aAAc4hB,SAAd,EAAyB;MACvB,IAAI,KAAK1X,WAAL,IAAoB,qCAAa,EAArC,EAAyC;QACvCkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAIE,oBAAoB,CAACsB,SAAD,EAAYzO,eAAe,CAAC0I,OAA5B,CAAxB,EAA8D;UAC5D,wCAAkB+F,SAAlB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;EAtGA;IAAA;IAAA,KAuGE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA9GA;IAAA,KA+GE,aAAcnC,SAAd,EAAyB;MACvB,IAAI,KAAKvV,WAAL,IAAoB,qCAAa,EAArC,EAAyC;QACvCkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAIE,oBAAoB,CAACb,SAAD,EAAYtM,eAAe,CAAC8J,UAA5B,CAAxB,EAAiE;UAC/D,wCAAkBwC,SAAlB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;EA5HA;IAAA;IAAA,KA6HE,eAAuB;MACrB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;AACA;IArIA;IAAA,KAsIE,aAAqBoC,gBAArB,EAAuC;MACrC,IAAI,KAAK3X,WAAL,KAAqB,uCAAe,EAAf,IAAqB,qCAAa,EAAvD,CAAJ,EAAgE;QAC9DkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAItL,KAAK,GAAG,EAAZ;QACA,IAAMJ,aAAa,GAAGuL,iBAAiB,CAAC,KAAKjgB,IAAN,CAAvC;;QACA,IAAI0U,aAAJ,EAAmB;UACjB,IAAIA,aAAJ,aAAIA,aAAJ,eAAIA,aAAa,CAAEK,SAAnB,EAA8B;YAC5BD,KAAK,GAAG+M,gBAAgB,CAACzY,KAAjB,CAAuBsL,aAAa,CAACK,SAArC,CAAR;UACD,CAFD,MAEO;YACLD,KAAK,CAAC,CAAD,CAAL,GAAW+M,gBAAX;UACD;;UAED,IAAK/M,KAAK,CAAC7M,MAAN,GAAe,CAAhB,IAAuB6M,KAAK,CAAC7M,MAAN,IAAgByM,aAAa,CAACrX,GAAzD,EAA+D;YAC7D,IAAMmY,WAAW,GAAG,IAAIC,MAAJ,CAAWf,aAAa,CAACgB,MAAzB,CAApB;;YACA,KAAK,IAAIxN,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4M,KAAK,CAAC7M,MAA1B,EAAkCC,CAAC,EAAnC,EAAuC;cACrC,IAAIwM,aAAJ,aAAIA,aAAJ,eAAIA,aAAa,CAAEkB,UAAnB,EAA+B;gBAC7B,IAAMC,MAAM,GAAGf,KAAK,CAAC5M,CAAD,CAAL,CAASkB,KAAT,CAAesL,aAAa,CAACkB,UAA7B,CAAf;;gBACA,IAAIC,MAAM,CAAC5N,MAAP,KAAkB,CAAtB,EAAyB;kBACvB,IAAI,CAAC4N,MAAM,CAAC,CAAD,CAAN,CAAUtN,KAAV,CAAgBiN,WAAhB,CAAL,EAAmC;oBACjC2K,sBAAsB;kBACvB,CAFD,MAEO;oBACL,IAAI,CAACtK,MAAM,CAAC,CAAD,CAAN,CAAUtN,KAAV,CAAgB,IAAIkN,MAAJ,CAAWf,aAAa,CAACsB,OAAzB,CAAhB,CAAL,EAAyD;sBACvDmK,sBAAsB;oBACvB;kBACF;gBACF,CARD,MAQO;kBACLA,sBAAsB;gBACvB;cACF,CAbD,MAaO;gBACL,IAAI,CAACrL,KAAK,CAAC5M,CAAD,CAAL,CAASK,KAAT,CAAeiN,WAAf,CAAL,EAAkC;kBAChC2K,sBAAsB;gBACvB,CAFD,MAEO;kBACL,IAAIrL,KAAK,CAAC5M,CAAD,CAAL,KAAa,EAAb,IAAmBwM,aAAa,CAACuB,MAArC,EAA6C;oBAC3C,KAAK,IAAI7N,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,CAApB,EAAuBE,CAAC,EAAxB,EAA4B;sBAC1B,IAAI0M,KAAK,CAAC5M,CAAD,CAAL,KAAa4M,KAAK,CAAC1M,CAAD,CAAtB,EAA2B;wBACzB+X,sBAAsB;sBACvB;oBACF;kBACF;gBACF;cACF;YACF;UACF,CA9BD,MA8BO;YACLE,oBAAoB;UACrB;;UAED,+CAAyBwB,gBAAzB;QACD,CA1CD,MA0CO;UACL1B,sBAAsB;QACvB;MACF;IACF;IAED;AACF;AACA;AACA;;EA/LA;IAAA;IAAA,KAgME,eAAa;MACX,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAvMA;IAAA,KAwME,aAAWliB,MAAX,EAAmB;MACjB,IAAIqiB,oBAAoB,CAACriB,MAAD,EAASkV,eAAe,CAAC0M,SAAzB,CAAxB,EAA6D;QAC3D,qCAAe5hB,MAAf;MACD;IACF;IAED;AACF;AACA;AACA;;EAjNA;IAAA;IAAA,KAkNE,eAAc;MACZ,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAzNA;IAAA,KA0NE,aAAY6hB,OAAZ,EAAqB;MACnB,IAAI,KAAK5V,WAAL,IAAoB,qCAAa,EAArC,EAAyC;QACvCkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAIE,oBAAoB,CAACR,OAAD,EAAU3M,eAAe,CAACsL,WAA1B,CAAxB,EAAgE;UAC9D,sCAAgBqB,OAAhB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;EAvOA;IAAA;IAAA,KAwOE,eAAkB;MAChB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA/OA;IAAA,KAgPE,aAAgBgC,WAAhB,EAA6B;MAC3B,IAAI,KAAK5X,WAAL,IAAoB,qCAAa,EAArC,EAAyC;QACvCkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAIE,oBAAoB,CAACwB,WAAD,EAAc3O,eAAe,CAAC4O,gBAA9B,EACpB,IADoB,CAAxB,EACW;UACT,0CAAoBD,WAApB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EA5QA;IAAA;IAAA,OA6QE,kBAAS;MACP,KAAKnJ,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,MAAM,KAAKqhB,EADE;QAEb,QAAQ,KAAKtf,IAFA;QAGb,cAAc,KAAKgZ,UAHN;QAIb,aAAa,KAAK4I,SAJL;QAKb,aAAa,KAAKnC,SALL;QAMb,oBAAoB,KAAKoC,gBANZ;QAOb,UAAU,KAAK5jB,MAPF;QAQb,WAAW,KAAK6hB,OARH;QASb,eAAe,KAAKgC,WATP;QAUb,qBAAqB,KAAK7O;MAVb,CAAf;MAYA,OAAO,KAAK0F,UAAZ;MACA,OAAO1a,MAAP;IACD;EA7RH;;EAAA;AAAA,EAA2CoZ,4CAA3C;AAgSA;AACA;AACA;;;;;;;;;;;;AACO,IAAM9H,mBAAb;EAAA;;EAAA;;EAOE;AACF;AACA;EACE,+BAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OATR;IASQ;;IAAA;MAAA;MAAA,OARI;IAQJ;;IAAA;MAAA;MAAA,OAPO;IAOP;;IAAA;MAAA;MAAA,OANM;IAMN;;IAAA;MAAA;MAAA,OALC;IAKD;;IAGZ,OAAK8C,KAAL,GAAa,IAAIqO,iBAAJ,EAAb;IAHY;EAIb;EAED;AACF;AACA;;;EAlBA;IAAA;IAAA,OAmBE,sBAAa;MAAA;;MACX;;MACA,qBAAKrO,KAAL,8DAAYlI,UAAZ;IACD;IAED;AACF;AACA;AACA;;EA3BA;IAAA;IAAA,KA4BE,eAAS;MACP,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAnCA;IAAA,KAoCE,aAAOmV,EAAP,EAAW;MACT,IAAIgB,oBAAoB,CAAChB,EAAD,EAAKnM,eAAe,CAACwO,iBAArB,CAAxB,EAAiE;QAC/D,kCAAWrC,EAAX;MACD;IACF;IAED;AACF;AACA;AACA;;EA7CA;IAAA;IAAA,KA8CE,eAAqB;MACnB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IArDA;IAAA,KAsDE,aAAmBrI,cAAnB,EAAmC;MACjC,IAAI,KAAK/M,WAAL,IAAoB,sCAAa,EAArC,EAAyC;QACvCkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAIE,oBAAoB,CAACrJ,cAAD,EAAiB9D,eAAe,CAACgO,UAAjC,CAAxB,EAAsE;UACpE,8CAAuBlK,cAAvB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;EAnEA;IAAA;IAAA,KAoEE,eAAwB;MACtB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA3EA;IAAA,KA4EE,aAAsBH,iBAAtB,EAAyC;MACvC,IAAI,KAAK5M,WAAL,IAAoB,sCAAa,EAArC,EAAyC;QACvCkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAIE,oBAAoB,CAACxJ,iBAAD,EAAoB3D,eAAe,CAAC2N,UAApC,CAAxB,EAAyE;UACvE,iDAA0BhK,iBAA1B;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;EAzFA;IAAA;IAAA,KA0FE,eAAuB;MACrB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAjGA;IAAA,KAkGE,aAAqBD,gBAArB,EAAuC;MACrC,IAAI,KAAK3M,WAAL,IAAoB,sCAAa,EAArC,EAAyC;QACvCkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAIE,oBAAoB,CAACzJ,gBAAD,EAAmB1D,eAAe,CAAC8J,UAAnC,CAApB,IACFsD,mBAAmB,CAAC1J,gBAAD,EACf1D,eAAe,CAAC+N,cADD,CADrB,EAEuC;UACrC,gDAAyBrK,gBAAzB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;EAjHA;IAAA;IAAA,KAkHE,eAAkB;MAChB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IAzHA;IAAA,KA0HE,aAAgBiL,WAAhB,EAA6B;MAC3B,IAAI,KAAK5X,WAAL,IAAoB,sCAAa,EAArC,EAAyC;QACvCkW,kCAAkC;MACnC,CAFD,MAEO;QACL,IAAIE,oBAAoB,CAACwB,WAAD,EAAc3O,eAAe,CAAC4O,gBAA9B,EACpB,IADoB,CAAxB,EACW;UACT,2CAAoBD,WAApB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAlJA;IAAA;IAAA,OAmJE,kBAAS;MACP,KAAKnJ,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,MAAM,KAAKqhB,EADE;QAEb,kBAAkB,KAAKrI,cAFV;QAGb,qBAAqB,KAAKH,iBAHb;QAIb,oBAAoB,KAAKD,gBAJZ;QAKb,eAAe,KAAKiL,WALP;QAMb,SAAS,KAAKzP;MAND,CAAf;MAQA,OAAO,KAAKsG,UAAZ;MACA,OAAO1a,MAAP;IACD;EA/JH;;EAAA;AAAA,EAAyCoZ,4CAAzC;AAkKA;AACA;AACA;;;;IACMqJ;;;;;EAGJ;AACF;AACA;EACE,6BAAc;IAAA;;IAAA;;IACZ,4BACI;MACExE,cAAc,EAAEnJ,mBAAmB,CAACmJ,cADtC;MAEE7e,GAAG,EAAE,EAFP;MAGEiM,gBAAgB,EAAE0J,qBAAqB,CAACtJ,iBAH1C;MAIE0S,eAAe,EAAEpJ,qBAAqB,CAAC+C,aAJzC;MAKEsG,gBAAgB,EAAErJ,qBAAqB,CAACsJ,kBAL1C;MAMEU,YAAY,EAAE7J,eAAe,CAAC8J,UANhC;MAOE5D,UAAU,EAAE2G,iEAAwBA;IAPtC,CADJ;;IADY;MAAA;MAAA,OALJ;IAKI;;IAAA;EAWb;EAED;AACF;AACA;AACA;;;;;SACE,eAAa;MACX,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAWhJ,MAAX,EAAmB;MACjB,IAAIsJ,oBAAoB,CAACtJ,MAAD,EAAS7D,eAAe,CAAC8J,UAAzB,CAApB,IACFsD,mBAAmB,CAACvJ,MAAD,EAAS7D,eAAe,CAAC6O,YAAzB,CADrB,EAC6D;QAC3D,qCAAehL,MAAf;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS;MACP,KAAK2B,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,UAAU,KAAK+Y,MADF;QAEb,sEAFa;QAGb,sEAHa;QAIb;MAJa,CAAf;MAMA,OAAO,KAAK2B,UAAZ;MACA,OAAO1a,MAAP;IACD;;;;EA5D6BsZ;AA+DhC;AACA;AACA;;;;;;;;;;;AACO,IAAM5E,iBAAb;EAAA;;EAAA;;EAME;AACF;AACA;AACA;EACE,6BAAuC;IAAA;;IAAA,IAA3BsP,iBAA2B,uEAAP,KAAO;;IAAA;;IACrC;;IADqC;MAAA;MAAA,OAT5B;IAS4B;;IAAA;MAAA;MAAA,OAR3B;IAQ2B;;IAAA;MAAA;MAAA,OAP1B;IAO0B;;IAAA;MAAA;MAAA;IAAA;;IAErC,gEAAgB,EAAhB;;IACA,kEAAiB,EAAjB;;IACA,mEAAkB,EAAlB;;IACA,0EAA0BA,iBAA1B;;IALqC;EAMtC;EAED;AACF;AACA;AACA;;;EArBA;IAAA;IAAA,KAsBE,eAAc;MACZ,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA7BA;IAAA,KA8BE,aAAYC,OAAZ,EAAqB;MACnB,IAAI,KAAKhY,WAAL,0BAAoB,IAApB,qBAAJ,EAAiD;QAC/C2N,kBAAkB;MACnB,CAFD,MAEO;QACL,IAAIyI,oBAAoB,CAAC4B,OAAD,EAAU/O,eAAe,CAACgP,iBAA1B,EACpB,IADoB,CAAxB,EACW;UACT,sCAAgBD,OAAhB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;EA5CA;IAAA;IAAA,KA6CE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IApDA;IAAA,KAqDE,aAAaxF,QAAb,EAAuB;MACrB,IAAI,KAAKxS,WAAL,0BAAoB,IAApB,qBAAJ,EAAiD;QAC/C2N,kBAAkB;MACnB,CAFD,MAEO;QACL,IAAIyI,oBAAoB,CAAC5D,QAAD,EAAWvJ,eAAe,CAACiP,YAA3B,CAAxB,EAAkE;UAChE,wCAAiB1F,QAAjB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;;EAlEA;IAAA;IAAA,KAmEE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IA1EA;IAAA,KA2EE,aAAckF,SAAd,EAAyB;MACvB,IAAI,KAAK1X,WAAL,0BAAoB,IAApB,qBAAJ,EAAiD;QAC/C2N,kBAAkB;MACnB,CAFD,MAEO;QACL,IAAIyI,oBAAoB,CAACsB,SAAD,EAAYzO,eAAe,CAAC0I,OAA5B,CAAxB,EAA8D;UAC5D,yCAAkB+F,SAAlB;QACD;MACF;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EA9FA;IAAA;IAAA,OA+FE,kBAAS;MACP,KAAKjJ,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,WAAW,KAAKikB,OADH;QAEb,YAAY,KAAKxF,QAFJ;QAGb,aAAa,KAAKkF;MAHL,CAAf;MAKA,OAAO,KAAKjJ,UAAZ;MACA,OAAO1a,MAAP;IACD;EAxGH;;EAAA;AAAA,EAAuCoZ,4CAAvC;AA2GA;AACA;AACA;;;;AACO,IAAM/H,+BAAb;EAAA;;EAAA;;EAGE;AACF;AACA;EACE,2CAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OALR;IAKQ;;IAAA;EAEb;EAED;AACF;AACA;AACA;;;EAbA;IAAA;IAAA,KAcE,eAAS;MACP,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IArBA;IAAA,KAsBE,aAAOgQ,EAAP,EAAW;MACT,IAAIgB,oBAAoB,CAAChB,EAAD,EAAKnM,eAAe,CAACwO,iBAArB,CAAxB,EAAiE;QAC/D,kCAAWrC,EAAX;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAnCA;IAAA;IAAA,OAoCE,kBAAS;MACP,KAAK3G,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,MAAM,KAAKqhB;MADE,CAAf;MAGA,OAAO,KAAK3G,UAAZ;MACA,OAAO1a,MAAP;IACD;EA3CH;;EAAA;AAAA,EAAqDoZ,4CAArD;AA8CA;AACA;AACA;;;;AACO,IAAMjI,qCAAb;EAAA;;EAAA;;EAGE;AACF;AACA;EACE,iDAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OALH;IAKG;;IAAA;EAEb;EAED;AACF;AACA;AACA;;;EAbA;IAAA;IAAA,KAcE,eAAc;MACZ,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;IArBA;IAAA,KAsBE,aAAY+F,OAAZ,EAAqB;MACnB,IAAImL,oBAAoB,CAACnL,OAAD,EAAUhC,eAAe,CAACyM,WAA1B,CAAxB,EAAgE;QAC9D,sCAAgBzK,OAAhB;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAnCA;IAAA;IAAA,OAoCE,kBAAS;MACP,KAAKwD,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,WAAW,KAAKkX;MADH,CAAf;MAGA,OAAO,KAAKwD,UAAZ;MACA,OAAO1a,MAAP;IACD;EA3CH;;EAAA;AAAA,EAA2DoZ,4CAA3D;AA8CA;AACA;AACA;;AACO,IAAM3E,GAAb;EAAA;;EAAA;;EACE;AACF;AACA;EACE,eAAc;IAAA;;IAAA;;IACZ;IAEA,OAAKnR,GAAL,GAAW,IAAI8gB,MAAJ,EAAX;IAHY;EAIb;EAED;AACF;AACA;;;EAZA;IAAA;IAAA,OAaE,sBAAa;MAAA;;MACX;;MACA,kBAAK9gB,GAAL,wDAAU4I,UAAV;IACD;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EA3BA;IAAA;IAAA,OA4BE,kBAAS;MACP,KAAKwO,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,OAAO,KAAKsD;MADC,CAAf;MAGA,OAAO,KAAKoX,UAAZ;MACA,OAAO1a,MAAP;IACD;EAnCH;;EAAA;AAAA,EAAyBoZ,4CAAzB;AAsCA;AACA;AACA;;;;IACMgL;;;;;EAGJ;AACF;AACA;EACE,kBAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OALH;IAKG;;IAGZ,QAAKC,aAAL,GAAqB,IAAIC,kBAAJ,EAArB;IAHY;EAIb;EAED;AACF;AACA;;;;;WACE,sBAAa;MAAA;;MACX;;MACA,4BAAKD,aAAL,4EAAoBnY,UAApB;IACD;IAED;AACF;AACA;AACA;;;;SACE,eAAc;MACZ,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAYiK,OAAZ,EAAqB;MACnB,IAAIkM,oBAAoB,CAAClM,OAAD,EAAUjB,eAAe,CAAC4M,QAA1B,CAAxB,EAA6D;QAC3D,sCAAgB3L,OAAhB;MACD;IACF;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS;MACP,KAAKuE,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,WAAW,KAAKmW;MADH,CAAf;MAGA,OAAO,KAAKuE,UAAZ;MACA,OAAO1a,MAAP;IACD;;;;EAtDkBoZ;AAyDrB;AACA;AACA;;;;;;;IACMkL;;;;;EAoBJ;AACF;AACA;EACE,8BAAc;IAAA;;IAAA;;IACZ;;IADY;MAAA;MAAA,OAtBF;IAsBE;;IAAA;MAAA;MAAA,OArBF;IAqBE;;IAAA;MAAA;QAAA;;QAAA,wCAdK,UAACC,OAAD;UAAA,OAAa,SAAb;QAAA,CAcL;MAAA;;MAAA;IAAA;;IAAA;MAAA;QAAA;;QAAA,wCANK,UAACA,OAAD;UAAA,OAAa,SAAb;QAAA,CAML;MAAA;;MAAA;IAAA;;IAAA;EAEb;EAED;AACF;AACA;AACA;;;;;SACE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAaC,CAAb,EAAgB;MACd5K,kBAAkB;IACnB;IAED;AACF;AACA;AACA;;;;SACE,eAAe;MACb,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;SACE,aAAa4K,CAAb,EAAgB;MACd5K,kBAAkB;IACnB;IAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACE,kBAAS;MACP,KAAKc,UAAL,GAAkB,IAAlB;MACA,IAAM1a,MAAM,GAAG;QACb,YAAY,KAAKykB,QADJ;QAEb,YAAY,KAAKC;MAFJ,CAAf;MAIA,OAAO,KAAKhK,UAAZ;MACA,OAAO1a,MAAP;IACD;;;;EA7E8BoZ;;;;;;;;;;;;;;;;;;AC3kDjC,IAAM5a,MAAM,GAAG;EACboH,UAAU,EAAE,MADC;EAEbE,WAAW,EAAE,OAFA;EAGbiB,qBAAqB,EAAE,CAHV;EAIbc,iBAAiB,EAAE,CAJN;EAKbQ,gBAAgB,EAAE,CALL;EAMb3B,eAAe,EAAE,CANJ;EAObF,cAAc,EAAE,CAPH;EAQbF,iBAAiB,EAAE,CARN;EASbvB,eAAe,EAAE,CATJ;EAUb4f,cAAc,EAAE;AAVH,CAAf;AAaA,IAAMxgB,OAAO,GAAG;EACd;EACA6V,YAAY,EAAE,gGAFA;EAGd+F,aAAa,EAAE,mHAHD;EAId9B,cAAc,EAAE,aAJF;EAKd/C,iBAAiB,EAAE,uBALL;EAMd4F,mBAAmB,EAAE,iBANP;EAOdM,0BAA0B,EAAE,SAPd;EAQdlF,qBAAqB,EAAE,kDART;EASdb,2BAA2B,EAAE,2BATf;EAUd8F,qBAAqB,EAAE,qFAVT;EAYd9N,kBAAkB,EAAE;IAClB,OAAO;MACLF,YAAY,EAAE,mBADT;MAELC,aAAa,EAAE;IAFV,CADW;IAKlB,OAAO;MACLD,YAAY,EAAE,wBADT;MAELC,aAAa,EAAE;IAFV,CALW;IASlB,OAAO;MACLD,YAAY,EAAE,8BADT;MAELC,aAAa,EAAE;IAFV,CATW;IAalB,OAAO;MACLD,YAAY,EAAE,0CADT;MAELC,aAAa,EAAE;IAFV,CAbW;IAiBlB,OAAO;MACLD,YAAY,EAAE,iBADT;MAELC,aAAa,EAAE;IAFV,CAjBW;IAqBlB,OAAO;MACLD,YAAY,EAAE,uBADT;MAELC,aAAa,EAAE;IAFV,CArBW;IAyBlB,OAAO;MACLD,YAAY,EAAE,yCADT;MAELC,aAAa,EAAE;IAFV,CAzBW;IA6BlB,OAAO;MACLD,YAAY,EAAE,sBADT;MAELC,aAAa,EAAE;IAFV,CA7BW;IAiClB,OAAO;MACLD,YAAY,EAAE,uBADT;MAELC,aAAa,EAAE;IAFV,CAjCW;IAqClB,OAAO;MACLD,YAAY,EAAE,qBADT;MAELC,aAAa,EAAE;IAFV,CArCW;IAyClB,OAAO;MACLD,YAAY,EAAE,4BADT;MAELC,aAAa,EAAE;IAFV,CAzCW;IA6ClB,OAAO;MACLD,YAAY,EAAE,uCADT;MAELC,aAAa,EAAE;IAFV;EA7CW;AAZN,CAAhB;;AAgEA,IAAMqG,IAAI,mCACLtV,OADK,GACO;EACb6V,YAAY,EAAE,2GADD;EAEbqB,2BAA2B,EAAE,wFAFhB;EAGba,qBAAqB,EAAE,uEAHV;EAIbO,6BAA6B,EAAE,2IAJlB;EAKbuB,cAAc,EAAE,mBALH;EAMbO,wBAAwB,EAAE,qBANb;EAObf,cAAc,EAAE;AAPH,CADP,CAAV;;AAYA,IAAMvS,SAAS,GAAG;EAChB;EACA+O,YAAY,EAAE,sTAFE;EAGhBkB,iBAAiB,EAAE,4BAHH;EAIhB+C,cAAc,EAAE,oBAJA;EAKhB6C,mBAAmB,EAAE,wEALL;EAMhBM,0BAA0B,EAAE,SANZ;EAOhBlF,qBAAqB,EAAE,kDAPP;EAQhBb,2BAA2B,EAAE,sDARb;EAShB8F,qBAAqB,EAAE,sGATP;EAWhB9N,kBAAkB,EAAE;IAClB,KAAK;MACHF,YAAY,EAAE,UADX;MAEHC,aAAa,EAAE;IAFZ,CADa;IAKlB,OAAO;MACLD,YAAY,EAAE,mBADT;MAELC,aAAa,EAAE;IAFV,CALW;IASlB,OAAO;MACLD,YAAY,EAAE,gCADT;MAELC,aAAa,EAAE;IAFV,CATW;IAalB,OAAO;MACLD,YAAY,EAAE,qBADT;MAELC,aAAa,EAAE;IAFV,CAbW;IAiBlB,OAAO;MACLD,YAAY,EAAE,6BADT;MAELC,aAAa,EAAE;IAFV,CAjBW;IAqBlB,OAAO;MACLD,YAAY,EAAE,6BADT;MAELC,aAAa,EAAE;IAFV,CArBW;IAyBlB,OAAO;MACLD,YAAY,EAAE,mCADT;MAELC,aAAa,EAAE;IAFV,CAzBW;IA6BlB,OAAO;MACLD,YAAY,EAAE,+BADT;MAELC,aAAa,EAAE;IAFV,CA7BW;IAiClB,OAAO;MACLD,YAAY,EAAE,qCADT;MAELC,aAAa,EAAE;IAFV,CAjCW;IAqClB,OAAO;MACLD,YAAY,EAAE,iCADT;MAELC,aAAa,EAAE;IAFV,CArCW;IAyClB,OAAO;MACLD,YAAY,EAAE,kCADT;MAELC,aAAa,EAAE;IAFV,CAzCW;IA6ClB,OAAO;MACLD,YAAY,EAAE,8BADT;MAELC,aAAa,EAAE;IAFV,CA7CW;IAiDlB,OAAO;MACLD,YAAY,EAAE,8BADT;MAELC,aAAa,EAAE;IAFV,CAjDW;IAqDlB,OAAO;MACLD,YAAY,EAAE,0BADT;MAELC,aAAa,EAAE;IAFV,CArDW;IAyDlB,OAAO;MACLD,YAAY,EAAE,wBADT;MAELC,aAAa,EAAE;IAFV,CAzDW;IA6DlB,OAAO;MACLD,YAAY,EAAE,qBADT;MAELC,aAAa,EAAE;IAFV,CA7DW;IAiElB,OAAO;MACLD,YAAY,EAAE,qBADT;MAELC,aAAa,EAAE;IAFV,CAjEW;IAqElB,OAAO;MACLD,YAAY,EAAE,wBADT;MAELC,aAAa,EAAE;IAFV,CArEW;IAyElB,OAAO;MACLD,YAAY,EAAE,8BADT;MAELC,aAAa,EAAE;IAFV,CAzEW;IA6ElB,OAAO;MACLD,YAAY,EAAE,kCADT;MAELC,aAAa,EAAE;IAFV,CA7EW;IAiFlB,OAAO;MACLD,YAAY,EAAE,0CADT;MAELC,aAAa,EAAE;IAFV,CAjFW;IAqFlB,OAAO;MACLD,YAAY,EAAE,iCADT;MAELC,aAAa,EAAE;IAFV,CArFW;IAyFlB,OAAO;MACLD,YAAY,EAAE,kCADT;MAELC,aAAa,EAAE;IAFV,CAzFW;IA6FlB,OAAO;MACLD,YAAY,EAAE,kCADT;MAELC,aAAa,EAAE;IAFV,CA7FW;IAiGlB,OAAO;MACLD,YAAY,EAAE,uCADT;MAELC,aAAa,EAAE;IAFV,CAjGW;IAqGlB,OAAO;MACLD,YAAY,EAAE,uCADT;MAELC,aAAa,EAAE;IAFV;EArGW;AAXJ,CAAlB;AAuHA,IAAMrP,YAAY,GAAG;EACnBvF,MAAM,EAAEA,MADW;EAEnB2F,OAAO,EAAEA,OAFU;EAGnBsV,IAAI,EAAEA,IAHa;EAInBxO,SAAS,EAAEA;AAJQ,CAArB;AAOA,+DAAelH,YAAf;;;;;;;;;;;;;;;;;;ACxNA,IAAMvF,MAAM,GAAG;EACboK,OAAO,EAAE,GADI;EAEbgc,qBAAqB,EAAE,GAFV;EAGbnd,WAAW,EAAE,GAHA;EAIbE,UAAU,EAAE,GAJC;EAKbkd,mBAAmB,EAAE,GALR;EAMb1c,uBAAuB,EAAE,GANZ;EAObC,oBAAoB,EAAE,GAPT;EAQbG,oBAAoB,EAAE,GART;EASbC,mBAAmB,EAAE,GATR;EAUbO,iBAAiB,EAAE,GAVN;EAWbC,gBAAgB,EAAE,GAXL;EAYbI,kBAAkB,EAAE,GAZP;EAabC,iBAAiB,EAAE,GAbN;EAcbyb,cAAc,EAAE,GAdH;EAebtY,cAAc,EAAE,GAfH;EAgBbC,WAAW,EAAE,GAhBA;EAiBbsY,mBAAmB,EAAE,GAjBR;EAkBbpO,mBAAmB,EAAE,GAlBR;EAmBbqO,sBAAsB,EAAE,GAnBX;EAoBb1Z,oBAAoB,EAAE,GApBT;EAqBb2Z,qBAAqB,EAAE,GArBV;EAsBb1Y,qBAAqB,EAAE,GAtBV;EAuBb4O,iBAAiB,EAAE,GAvBN;EAwBb1P,iBAAiB,EAAE,GAxBN;EAyBb4T,kBAAkB,EAAE,GAzBP;EA0BbvH,aAAa,EAAE,GA1BF;EA2BbuG,kBAAkB,EAAE,GA3BP;EA4Bb9H,0BAA0B,EAAE;AA5Bf,CAAf;;AA+BA,IAAMpS,OAAO,mCACR3F,MADQ,GACG;EACZ+J,oBAAoB,EAAE,GADV;EAEZQ,iBAAiB,EAAE,GAFP;EAGZK,kBAAkB,EAAE,GAHR;EAIZ0b,cAAc,EAAE,GAJJ;EAKZtY,cAAc,EAAE,GALJ;EAMZC,WAAW,EAAE,GAND;EAOZnB,oBAAoB,EAAE,GAPV;EAQZ2Z,qBAAqB,EAAE,GARX;EASZ1Y,qBAAqB,EAAE,GATX;EAUZ4O,iBAAiB,EAAE,GAVP;EAWZ1P,iBAAiB,EAAE,GAXP;EAYZ4T,kBAAkB,EAAE,GAZR;EAaZvH,aAAa,EAAE,GAbH;EAcZuG,kBAAkB,EAAE,GAdR;EAeZ9H,0BAA0B,EAAE;AAfhB,CADH,CAAb;;AAoBA,IAAMtL,SAAS,mCACVzM,MADU,GACC;EACZomB,qBAAqB,EAAE,GADX;EAEZnd,WAAW,EAAE,GAFD;EAGZE,UAAU,EAAE,GAHA;EAIZkd,mBAAmB,EAAE,GAJT;EAKZ1c,uBAAuB,EAAE,GALb;EAMZ+c,qBAAqB,EAAE,GANX;EAOZ3c,oBAAoB,EAAE,GAPV;EAQZC,mBAAmB,EAAE,GART;EASZO,iBAAiB,EAAE,GATP;EAUZC,gBAAgB,EAAE,GAVN;EAWZI,kBAAkB,EAAE,GAXR;EAYZC,iBAAiB,EAAE,GAZP;EAaZyb,cAAc,EAAE,GAbJ;EAcZC,mBAAmB,EAAE,GAdT;EAeZpO,mBAAmB,EAAE,GAfT;EAgBZqO,sBAAsB,EAAE,GAhBZ;EAiBZ1Z,oBAAoB,EAAE,GAjBV;EAkBZ2Z,qBAAqB,EAAE,GAlBX;EAmBZ1Y,qBAAqB,EAAE,GAnBX;EAoBZd,iBAAiB,EAAE,GApBP;EAqBZ4T,kBAAkB,EAAE,GArBR;EAsBZvH,aAAa,EAAE,GAtBH;EAuBZuG,kBAAkB,EAAE,GAvBR;EAwBZ9H,0BAA0B,EAAE;AAxBhB,CADD,CAAf;;AA6BA,IAAMzS,UAAU,GAAG;EACjBK,OAAO,EAAEA,OADQ;EAEjB8G,SAAS,EAAEA;AAFM,CAAnB;AAKA,+DAAenH,UAAf;;;;;;;;;;;;ACtFA,IAAM8Q,cAAc,GAAG;EACrB,MAAM,IADe;EACT,MAAM,IADG;EACG,MAAM,IADT;EACe,MAAM,IADrB;EAC2B,MAAM,IADjC;EACuC,MAAM,IAD7C;EAErB,MAAM,IAFe;EAET,MAAM,IAFG;EAEG,MAAM,IAFT;EAEe,MAAM,IAFrB;EAE2B,MAAM,IAFjC;EAEuC,MAAM,IAF7C;EAGrB,MAAM,IAHe;EAGT,MAAM,IAHG;EAGG,MAAM,IAHT;EAGe,MAAM,IAHrB;EAG2B,MAAM,IAHjC;EAGuC,MAAM,IAH7C;EAIrB,MAAM,IAJe;EAIT,MAAM,IAJG;EAIG,MAAM,IAJT;EAIe,MAAM,IAJrB;EAI2B,MAAM,IAJjC;EAIuC,MAAM,IAJ7C;EAKrB,MAAM,IALe;EAKT,MAAM,IALG;EAKG,MAAM,IALT;EAKe,MAAM,IALrB;EAK2B,MAAM,IALjC;EAKuC,MAAM,IAL7C;EAMrB,MAAM,IANe;EAMT,MAAM,IANG;EAMG,MAAM,IANT;EAMe,MAAM,IANrB;EAM2B,MAAM,IANjC;EAMuC,MAAM,IAN7C;EAOrB,MAAM,IAPe;EAOT,MAAM,IAPG;EAOG,MAAM,IAPT;EAOe,MAAM,IAPrB;EAO2B,MAAM,IAPjC;EAOuC,MAAM,IAP7C;EAQrB,MAAM,IARe;EAQT,MAAM,IARG;EAQG,MAAM,IART;EAQe,MAAM,IARrB;EAQ2B,MAAM,IARjC;EAQuC,MAAM,IAR7C;EASrB,MAAM,IATe;EAST,MAAM,IATG;EASG,MAAM,IATT;EASe,MAAM,IATrB;EAS2B,MAAM,IATjC;EASuC,MAAM,IAT7C;EAUrB,MAAM,IAVe;EAUT,MAAM,IAVG;EAUG,MAAM,IAVT;EAUe,MAAM,IAVrB;EAU2B,MAAM,IAVjC;EAUuC,MAAM,IAV7C;EAWrB,MAAM,IAXe;EAWT,MAAM,IAXG;EAWG,MAAM,IAXT;EAWe,MAAM,IAXrB;EAW2B,MAAM,IAXjC;EAWuC,MAAM,IAX7C;EAYrB,MAAM,IAZe;EAYT,MAAM,IAZG;EAYG,MAAM,IAZT;EAYe,MAAM,IAZrB;EAY2B,MAAM,IAZjC;EAYuC,MAAM,IAZ7C;EAarB,MAAM,IAbe;EAaT,MAAM,IAbG;EAaG,MAAM,IAbT;EAae,MAAM,IAbrB;EAa2B,MAAM,IAbjC;EAauC,MAAM,IAb7C;EAcrB,MAAM,IAde;EAcT,MAAM,IAdG;EAcG,MAAM,IAdT;EAce,MAAM,IAdrB;EAc2B,MAAM,IAdjC;EAcuC,MAAM,IAd7C;EAerB,MAAM,IAfe;EAeT,MAAM,IAfG;EAeG,MAAM,IAfT;EAee,MAAM,IAfrB;EAe2B,MAAM,IAfjC;EAeuC,MAAM,IAf7C;EAgBrB,MAAM,IAhBe;EAgBT,MAAM,IAhBG;EAgBG,MAAM,IAhBT;EAgBe,MAAM,IAhBrB;EAgB2B,MAAM,IAhBjC;EAgBuC,MAAM,IAhB7C;EAiBrB,MAAM,IAjBe;EAiBT,MAAM,IAjBG;EAiBG,MAAM,IAjBT;EAiBe,MAAM,IAjBrB;EAiB2B,MAAM,IAjBjC;EAiBuC,MAAM,IAjB7C;EAkBrB,MAAM,IAlBe;EAkBT,MAAM,IAlBG;EAkBG,MAAM,IAlBT;EAkBe,MAAM,IAlBrB;EAkB2B,MAAM,IAlBjC;EAkBuC,MAAM,IAlB7C;EAmBrB,MAAM,IAnBe;EAmBT,MAAM,IAnBG;EAmBG,MAAM,IAnBT;EAmBe,MAAM,IAnBrB;EAmB2B,MAAM,IAnBjC;EAmBuC,MAAM,IAnB7C;EAoBrB,MAAM,IApBe;EAoBT,MAAM,IApBG;EAoBG,MAAM,IApBT;EAoBe,MAAM,IApBrB;EAoB2B,MAAM,IApBjC;EAoBuC,MAAM,IApB7C;EAqBrB,MAAM,IArBe;EAqBT,MAAM,IArBG;EAqBG,MAAM,IArBT;EAqBe,MAAM,IArBrB;EAqB2B,MAAM,IArBjC;EAqBuC,MAAM,IArB7C;EAsBrB,MAAM,IAtBe;EAsBT,MAAM,IAtBG;EAsBG,MAAM,IAtBT;EAsBe,MAAM,IAtBrB;EAsB2B,MAAM,IAtBjC;EAsBuC,MAAM,IAtB7C;EAuBrB,MAAM,IAvBe;EAuBT,MAAM,IAvBG;EAuBG,MAAM,IAvBT;EAuBe,MAAM,IAvBrB;EAuB2B,MAAM,IAvBjC;EAuBuC,MAAM,IAvB7C;EAwBrB,MAAM,IAxBe;EAwBT,MAAM,IAxBG;EAwBG,MAAM,IAxBT;EAwBe,MAAM,IAxBrB;EAwB2B,MAAM,IAxBjC;EAwBuC,MAAM,IAxB7C;EAyBrB,MAAM,IAzBe;EAyBT,MAAM,IAzBG;EAyBG,MAAM,IAzBT;EAyBe,MAAM,IAzBrB;EAyB2B,MAAM,IAzBjC;EAyBuC,MAAM,IAzB7C;EA0BrB,MAAM,IA1Be;EA0BT,MAAM,IA1BG;EA0BG,MAAM,IA1BT;EA0Be,MAAM,IA1BrB;EA0B2B,MAAM,IA1BjC;EA0BuC,MAAM,IA1B7C;EA2BrB,MAAM,IA3Be;EA2BT,MAAM,IA3BG;EA2BG,MAAM,IA3BT;EA2Be,MAAM,IA3BrB;EA2B2B,MAAM,IA3BjC;EA2BuC,MAAM,IA3B7C;EA4BrB,MAAM,IA5Be;EA4BT,MAAM,IA5BG;EA4BG,MAAM,IA5BT;EA4Be,MAAM,IA5BrB;EA4B2B,MAAM,IA5BjC;EA4BuC,MAAM,IA5B7C;EA6BrB,MAAM,IA7Be;EA6BT,MAAM,IA7BG;EA6BG,MAAM,IA7BT;EA6Be,MAAM,IA7BrB;EA6B2B,MAAM,IA7BjC;EA6BuC,MAAM,IA7B7C;EA8BrB,MAAM,IA9Be;EA8BT,MAAM,IA9BG;EA8BG,MAAM,IA9BT;EA8Be,MAAM,IA9BrB;EA8B2B,MAAM,IA9BjC;EA8BuC,MAAM,IA9B7C;EA+BrB,MAAM,IA/Be;EA+BT,MAAM,IA/BG;EA+BG,MAAM,IA/BT;EA+Be,MAAM,IA/BrB;EA+B2B,MAAM,IA/BjC;EA+BuC,MAAM,IA/B7C;EAgCrB,OAAO,KAhCc;EAgCP,OAAO,KAhCA;EAgCO,OAAO,KAhCd;EAgCqB,OAAO,KAhC5B;EAgCmC,OAAO,KAhC1C;EAiCrB,OAAO,KAjCc;EAiCP,OAAO,KAjCA;EAiCO,OAAO,KAjCd;EAiCqB,OAAO,KAjC5B;EAiCmC,OAAO,KAjC1C;EAkCrB,OAAO,KAlCc;EAkCP,OAAO,KAlCA;EAkCO,OAAO,KAlCd;EAkCqB,OAAO,KAlC5B;EAkCmC,OAAO,KAlC1C;EAmCrB,OAAO,KAnCc;EAmCP,OAAO,KAnCA;EAmCO,OAAO,KAnCd;EAmCqB,OAAO,KAnC5B;EAmCmC,OAAO,KAnC1C;EAoCrB,OAAO,KApCc;EAoCP,OAAO,KApCA;EAoCO,OAAO,KApCd;EAoCqB,OAAO,KApC5B;EAoCmC,OAAO,KApC1C;EAqCrB,OAAO,KArCc;EAqCP,OAAO,KArCA;EAqCO,OAAO,KArCd;EAqCqB,OAAO,KArC5B;EAqCmC,OAAO,KArC1C;EAsCrB,OAAO,KAtCc;EAsCP,OAAO,KAtCA;EAsCO,OAAO,KAtCd;EAsCqB,OAAO,KAtC5B;EAsCmC,OAAO,KAtC1C;EAuCrB,OAAO,KAvCc;EAuCP,OAAO,KAvCA;EAuCO,OAAO,KAvCd;EAuCqB,OAAO,KAvC5B;EAuCmC,OAAO,KAvC1C;EAwCrB,OAAO,KAxCc;EAwCP,OAAO,KAxCA;EAwCO,OAAO,KAxCd;EAwCqB,OAAO,KAxC5B;EAwCmC,OAAO,KAxC1C;EAyCrB,OAAO,KAzCc;EAyCP,OAAO,KAzCA;EAyCO,OAAO,KAzCd;EAyCqB,OAAO,KAzC5B;EAyCmC,OAAO,KAzC1C;EA0CrB,OAAO,KA1Cc;EA0CP,OAAO,KA1CA;EA0CO,OAAO,KA1Cd;EA0CqB,OAAO,KA1C5B;EA0CmC,OAAO,KA1C1C;EA2CrB,OAAO,KA3Cc;EA2CP,OAAO,KA3CA;EA2CO,OAAO,KA3Cd;EA2CqB,OAAO,KA3C5B;EA2CmC,OAAO,KA3C1C;EA4CrB,OAAO,KA5Cc;EA4CP,OAAO,KA5CA;EA4CO,OAAO,KA5Cd;EA4CqB,OAAO,KA5C5B;EA4CmC,OAAO,KA5C1C;EA6CrB,OAAO,KA7Cc;EA6CP,OAAO,KA7CA;EA6CO,OAAO,KA7Cd;EA6CqB,OAAO,KA7C5B;EA6CmC,OAAO,KA7C1C;EA8CrB,OAAO,KA9Cc;EA8CP,OAAO,KA9CA;EA8CO,OAAO,KA9Cd;EA8CqB,OAAO,KA9C5B;EA8CmC,OAAO,KA9C1C;EA+CrB,OAAO,KA/Cc;EA+CP,OAAO,KA/CA;EA+CO,OAAO,KA/Cd;EA+CqB,OAAO,KA/C5B;EA+CmC,OAAO,KA/C1C;EAgDrB,OAAO,KAhDc;EAgDP,OAAO,KAhDA;EAgDO,OAAO,KAhDd;EAgDqB,OAAO,KAhD5B;EAgDmC,OAAO,KAhD1C;EAiDrB,OAAO,KAjDc;EAiDP,OAAO,KAjDA;EAiDO,OAAO,KAjDd;EAiDqB,OAAO,KAjD5B;EAiDmC,OAAO,KAjD1C;EAkDrB,OAAO,KAlDc;EAkDP,OAAO,KAlDA;EAkDO,OAAO,KAlDd;EAkDqB,OAAO,KAlD5B;EAkDmC,OAAO,KAlD1C;EAmDrB,OAAO,KAnDc;EAmDP,OAAO,KAnDA;EAmDO,OAAO,KAnDd;EAmDqB,OAAO,KAnD5B;EAmDmC,OAAO,KAnD1C;EAoDrB,OAAO,KApDc;EAoDP,OAAO,KApDA;EAoDO,OAAO,KApDd;EAoDqB,OAAO,KApD5B;EAoDmC,OAAO,KApD1C;EAqDrB,OAAO,KArDc;EAqDP,OAAO,KArDA;EAqDO,OAAO,KArDd;EAqDqB,OAAO,KArD5B;EAqDmC,OAAO,KArD1C;EAsDrB,OAAO,KAtDc;EAsDP,OAAO,KAtDA;EAsDO,OAAO,KAtDd;EAsDqB,OAAO,KAtD5B;EAsDmC,OAAO,KAtD1C;EAuDrB,OAAO,KAvDc;EAuDP,OAAO,KAvDA;EAuDO,OAAO,KAvDd;EAuDqB,OAAO,KAvD5B;EAuDmC,OAAO,KAvD1C;EAwDrB,OAAO,KAxDc;EAwDP,OAAO,KAxDA;EAwDO,OAAO,KAxDd;EAwDqB,OAAO,KAxD5B;EAwDmC,OAAO,KAxD1C;EAyDrB,OAAO,KAzDc;EAyDP,OAAO,KAzDA;EAyDO,OAAO,KAzDd;EAyDqB,OAAO,KAzD5B;EAyDmC,OAAO,KAzD1C;EA0DrB,OAAO,KA1Dc;EA0DP,OAAO,KA1DA;EA0DO,OAAO,KA1Dd;EA0DqB,OAAO,KA1D5B;EA0DmC,OAAO,KA1D1C;EA2DrB,OAAO,KA3Dc;EA2DP,OAAO,KA3DA;EA2DO,OAAO,KA3Dd;EA2DqB,OAAO,KA3D5B;EA2DmC,OAAO,KA3D1C;EA4DrB,OAAO,KA5Dc;EA4DP,OAAO,KA5DA;EA4DO,OAAO,KA5Dd;EA4DqB,OAAO,KA5D5B;EA4DmC,OAAO,KA5D1C;EA6DrB,OAAO,KA7Dc;EA6DP,OAAO,KA7DA;EA6DO,OAAO,KA7Dd;EA6DqB,OAAO,KA7D5B;EA6DmC,OAAO,KA7D1C;EA8DrB,OAAO,KA9Dc;EA8DP,OAAO,KA9DA;EA8DO,OAAO,KA9Dd;EA8DqB,OAAO,KA9D5B;EA8DmC,OAAO,KA9D1C;EA+DrB,OAAO,KA/Dc;EA+DP,OAAO,KA/DA;EA+DO,OAAO,KA/Dd;EA+DqB,OAAO,KA/D5B;EA+DmC,OAAO,KA/D1C;EAgErB,OAAO,KAhEc;EAgEP,OAAO,KAhEA;EAgEO,OAAO,KAhEd;EAgEqB,OAAO,KAhE5B;EAgEmC,OAAO,KAhE1C;EAiErB,OAAO,KAjEc;EAiEP,OAAO,KAjEA;EAiEO,OAAO,KAjEd;EAiEqB,OAAO,KAjE5B;EAiEmC,OAAO,KAjE1C;EAkErB,OAAO,KAlEc;EAkEP,OAAO,KAlEA;EAkEO,OAAO,KAlEd;EAkEqB,OAAO,KAlE5B;EAkEmC,OAAO,KAlE1C;EAmErB,OAAO,KAnEc;EAmEP,OAAO,KAnEA;EAmEO,OAAO,KAnEd;EAmEqB,OAAO,KAnE5B;EAmEmC,OAAO,KAnE1C;EAoErB,OAAO,KApEc;EAoEP,OAAO,KApEA;EAoEO,OAAO,KApEd;EAoEqB,OAAO,KApE5B;EAoEmC,OAAO,KApE1C;EAqErB,OAAO,KArEc;EAqEP,OAAO,KArEA;EAqEO,OAAO,KArEd;EAqEqB,OAAO,KArE5B;EAqEmC,OAAO,KArE1C;EAsErB,OAAO,KAtEc;EAsEP,OAAO,KAtEA;EAsEO,OAAO,KAtEd;EAsEqB,OAAO,KAtE5B;EAsEmC,OAAO,KAtE1C;EAuErB,OAAO,KAvEc;EAuEP,OAAO,KAvEA;EAuEO,OAAO,KAvEd;EAuEqB,OAAO,KAvE5B;EAuEmC,OAAO,KAvE1C;EAwErB,OAAO,KAxEc;EAwEP,OAAO,KAxEA;EAwEO,OAAO,KAxEd;EAwEqB,OAAO,KAxE5B;EAwEmC,OAAO;AAxE1C,CAAvB;AA2EA,+DAAeA,cAAf;;;;;;;;;;;;;;;;;;ACzEA,IAAMzQ,OAAO,GAAG;EACdqX,YAAY,EAAE,MADA;EAEdqE,aAAa,EAAE,MAFD;EAGdjC,OAAO,EAAE,uDAHK;EAGoD;EAClE4C,WAAW,EAAE,oDAJC;EAIqD;EACnE2E,UAAU,EAAE,QALE;EAMdpE,WAAW,EAAE,cANC;EAOd/B,UAAU,EAAE,6BAPE;EAO6B;EAC3CsC,aAAa,EAAE,MARD;EASdK,WAAW,EAAE,MATC;EASO;EACrByD,QAAQ,EAAE,aAVI;EAYd;EACAjF,SAAS,EAAE,gDAbG;EAcdtC,UAAU,EAAE,8DAdE;EAedyC,OAAO,EAAE,8BAfK;EAgBdiB,OAAO,EAAE,8EAhBK;EAiBdK,SAAS,EAAE,mEAjBG;EAiBkE;EAChFE,QAAQ,EAAE,uBAlBI;EAoBd;EACA5D,WAAW,EAAE,OArBC;EAsBd8C,WAAW,EAAE,QAtBC;EAuBdC,WAAW,EAAE,UAvBC;EAwBdQ,eAAe,EAAE,UAxBH;EAyBdP,UAAU,EAAE;AAzBE,CAAhB;;AA4BA,IAAMzH,IAAI,mCACLtV,OADK,GACO;EACbmd,aAAa,EAAE;AADF,CADP,CAAV;;AAMA,IAAMrW,SAAS,GAAG;EAChBoa,YAAY,EAAE,4BADE;EAEhBlB,YAAY,EAAE,4BAFE;EAGhBnB,aAAa,EAAE,6BAHC;EAIhBsC,aAAa,EAAE,6BAJC;EAKhBnC,cAAc,EAAE,8BALA;EAMhBI,OAAO,EAAE,iDANO;EAM4C;EAC5DO,gBAAgB,EAAE,+EAPF;EAOmF;EACnGvL,SAAS,EAAE,iEARK;EAQ8D;EAC9EgN,kBAAkB,EAAE,yEATJ;EAS+E;EAC/FrB,iBAAiB,EAAE,gFAVH;EAUqF;EACrGtG,OAAO,EAAE,0RAXO;EAYhB4C,WAAW,EAAE,4HAZG;EAahB2E,UAAU,EAAE,QAbI;EAchBpE,WAAW,EAAE,cAdG;EAehB/B,UAAU,EAAE,mCAfI;EAgBhBsC,aAAa,EAAE,yBAhBC;EAiBhBkE,kBAAkB,EAAE,yBAjBJ;EAiB+B;EAC/C9B,iBAAiB,EAAE,wEAlBH;EAkB6E;EAC7F/B,WAAW,EAAE,MAnBG;EAmBK;EACrByD,QAAQ,EAAE,aApBM;EAqBhBK,aAAa,EAAE,WArBC;EAuBhB;EACA5C,UAAU,EAAE,gDAxBI;EAyBhBK,UAAU,EAAE,2BAzBI;EA0BhB5C,OAAO,EAAE,oCA1BO;EA2BhBiB,OAAO,EAAE,iGA3BO;EA4BhBK,SAAS,EAAE,6EA5BK;EA6BhBE,QAAQ,EAAE,8GA7BM;EA6B0G;EAC1H4D,UAAU,EAAE,wBA9BI;EA+BhBC,SAAS,EAAE,6DA/BK;EAiChB;EACA5B,YAAY,EAAE,MAlCE;EAmChB/C,WAAW,EAAE,KAnCG;EAoChBC,WAAW,EAAE,KApCG;EAqChBC,UAAU,EAAE,MArCI;EAsChB+B,cAAc,EAAE;AAtCA,CAAlB;AAyCA,IAAMpO,KAAK,GAAG;EACZ4E,IAAI,EAAEA,IADM;EAEZtV,OAAO,EAAEA,OAFG;EAGZ8G,SAAS,EAAEA;AAHC,CAAd;AAMA,+DAAe4J,KAAf;;;;;;;;;;;;;AClFA;AAEA,IAAMK,eAAe,GAAGL,wDAAxB;AAEA,IAAMoN,OAAO,GAAG;EACd,cAAc;IACZxK,MAAM,EAAE,gBADI;IAEZrY,GAAG,EAAE,CAFO;IAGZ0X,SAAS,EAAE,EAHC;IAIZkB,MAAM,EAAE;EAJI,CADA;EAOd,UAAU;IACRP,MAAM,EAAEvC,eAAe,CAACwO,iBADhB;IAERtkB,GAAG,EAAE,EAFG;IAGR0X,SAAS,EAAE,KAHH;IAIRkB,MAAM,EAAE;EAJA,CAPI;EAad,WAAW;IACTP,MAAM,EAAEvC,eAAe,CAAC4O,gBADf;IAET1kB,GAAG,EAAE,EAFI;IAGT0X,SAAS,EAAE,KAHF;IAITkB,MAAM,EAAE;EAJC,CAbG;EAmBd,gBAAgB;IACdP,MAAM,EAAEvC,eAAe,CAACgP,iBADV;IAEd9kB,GAAG,EAAE,CAFS;IAGd0X,SAAS,EAAE,EAHG;IAIdkB,MAAM,EAAE;EAJM,CAnBF;EAyBd,YAAY;IACVP,MAAM,EAAEvC,eAAe,CAACsQ,kBADd;IAEVzN,OAAO,EAAE7C,eAAe,CAACsQ,kBAFf;IAGVpmB,GAAG,EAAE,EAHK;IAIV0X,SAAS,EAAE,KAJD;IAKVa,UAAU,EAAE,KALF;IAMVK,MAAM,EAAE;EANE,CAzBE;EAiCd,eAAe;IACbP,MAAM,EAAE,QAAQvC,eAAe,CAACsQ,kBADnB;IAEbzN,OAAO,EAAE7C,eAAe,CAAC8J,UAAhB,GAA6B,MAA7B,GACL9J,eAAe,CAACsQ,kBAHP;IAIbpmB,GAAG,EAAE,GAJQ;IAKb0X,SAAS,EAAE,KALE;IAMba,UAAU,EAAE,KANC;IAObK,MAAM,EAAE;EAPK,CAjCD;EA0Cd,cAAc;IACZP,MAAM,EAAEvC,eAAe,CAACsQ,kBADZ;IAEZpmB,GAAG,EAAE,EAFO;IAGZ0X,SAAS,EAAE,KAHC;IAIZkB,MAAM,EAAE;EAJI,CA1CA;EAgDd,UAAU;IACRP,MAAM,EAAEvC,eAAe,CAACsQ,kBADhB;IAERpmB,GAAG,EAAE,CAFG;IAGR0X,SAAS,EAAE,EAHH;IAIRkB,MAAM,EAAE;EAJA,CAhDI;EAsDd,WAAW;IACTP,MAAM,EAAEvC,eAAe,CAAC8J,UADf;IAET5f,GAAG,EAAE,CAFI;IAGT0X,SAAS,EAAE,EAHF;IAITkB,MAAM,EAAE;EAJC,CAtDG;EA4Dd,SAAS;IACPP,MAAM,EAAEvC,eAAe,CAACoQ,aADjB;IAEPlmB,GAAG,EAAE,CAFE;IAGP0X,SAAS,EAAE,EAHJ;IAIPkB,MAAM,EAAE;EAJD;AA5DK,CAAhB;AAoEA,IAAM/C,OAAO,GAAG;EACd,cAAc;IACZ7V,GAAG,EAAE,CADO;IAEZ0X,SAAS,EAAE,EAFC;IAGZkB,MAAM,EAAE,KAHI;IAIZX,SAAS,EAAE,KAJC;IAKZI,MAAM,EAAE,gBALI;IAMZL,KAAK,EAAE;EANK,CADA;EASd,UAAU;IACRhY,GAAG,EAAE,EADG;IAER0X,SAAS,EAAE,KAFH;IAGRkB,MAAM,EAAE,IAHA;IAIRX,SAAS,EAAE,KAJH;IAKRI,MAAM,EAAEvC,eAAe,CAACwO;EALhB,CATI;EAgBd,WAAW;IACTtkB,GAAG,EAAE,EADI;IAET0X,SAAS,EAAE,KAFF;IAGTkB,MAAM,EAAE,KAHC;IAITX,SAAS,EAAE,KAJF;IAKTI,MAAM,EAAEvC,eAAe,CAACqQ;EALf,CAhBG;EAuBd,gBAAgB;IACdnmB,GAAG,EAAE,CADS;IAEd0X,SAAS,EAAE,EAFG;IAGdkB,MAAM,EAAE,KAHM;IAIdX,SAAS,EAAE,IAJG;IAKdI,MAAM,EAAEvC,eAAe,CAACgP;EALV,CAvBF;EA8Bd,YAAY;IACV9kB,GAAG,EAAE,EADK;IAEV0X,SAAS,EAAE,KAFD;IAGVa,UAAU,EAAE,KAHF;IAIVK,MAAM,EAAE,KAJE;IAKVX,SAAS,EAAE,KALD;IAMVI,MAAM,EAAEvC,eAAe,CAACsQ,kBANd;IAOVzN,OAAO,EAAE7C,eAAe,CAACsQ;EAPf,CA9BE;EAuCd,eAAe;IACbpmB,GAAG,EAAE,GADQ;IAEb0X,SAAS,EAAE,KAFE;IAGba,UAAU,EAAE,KAHC;IAIbK,MAAM,EAAE,KAJK;IAKbX,SAAS,EAAE,KALE;IAMbI,MAAM,EAAE,QAAQvC,eAAe,CAACsQ,kBANnB;IAObzN,OAAO,EAAE7C,eAAe,CAAC8J,UAAhB,GAA6B,MAA7B,GACL9J,eAAe,CAACsQ;EARP,CAvCD;EAiDd,cAAc;IACZpmB,GAAG,EAAE,EADO;IAEZ0X,SAAS,EAAE,KAFC;IAGZkB,MAAM,EAAE,KAHI;IAIZX,SAAS,EAAE,KAJC;IAKZI,MAAM,EAAEvC,eAAe,CAACsQ;EALZ,CAjDA;EAwDd,UAAU;IACRpmB,GAAG,EAAE,CADG;IAER0X,SAAS,EAAE,EAFH;IAGRkB,MAAM,EAAE,KAHA;IAIRX,SAAS,EAAE,KAJH;IAKRI,MAAM,EAAEvC,eAAe,CAACsQ,kBALhB;IAMRpO,KAAK,EAAE;EANC,CAxDI;EAgEd,WAAW;IACThY,GAAG,EAAE,CADI;IAET0X,SAAS,EAAE,KAFF;IAGTkB,MAAM,EAAE,KAHC;IAITX,SAAS,EAAE,KAJF;IAKTI,MAAM,EAAEvC,eAAe,CAAC8J,UALf;IAMT5H,KAAK,EAAE;EANE,CAhEG;EAwEd,SAAS;IACPhY,GAAG,EAAE,CADE;IAEP0X,SAAS,EAAE,EAFJ;IAGPkB,MAAM,EAAE,KAHD;IAIPX,SAAS,EAAE,KAJJ;IAKPI,MAAM,EAAEvC,eAAe,CAACoQ,aALjB;IAMPlO,KAAK,EAAE;EANA;AAxEK,CAAhB;AAkFA,IAAMzC,SAAS,GAAG;EAChBsN,OAAO,EAAEA,OADO;EAEhBhN,OAAO,EAAEA;AAFO,CAAlB;AAKA,+DAAeN,SAAf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9JA;AAEA,IAAMiR,cAAc,GAAG7hB,2FAAvB;AACA,IAAM8hB,WAAW,GAAG9hB,wFAApB;AACA,IAAM+hB,gBAAgB,GAAG/hB,6FAAzB;AAEA;AACA;AACA;;;;;;;;AACO,IAAMF,eAAb;EAAA;;EAAA;;EACE;AACF;AACA;AACA;AACA;AACA;EACE,yBAAYgC,SAAZ,EAA+BkgB,YAA/B,EAAqDC,eAArD,EAA8E;IAAA;;IAAA;;IAC5E,0BAAMD,YAAN;;IAD4E;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAE5E,iEAAkBlgB,SAAlB;;IACA,oEAAqBkgB,YAArB;;IACA,uEAAwBC,eAAxB;;IAJ4E;EAK7E;;EAZH;IAAA;IAAA;IAkBE;AACF;AACA;AACA;IACE,eAAgB;MACd,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;EA7BA;IAAA;IAAA,KA8BE,eAAmB;MACjB,6BAAO,IAAP;IACD;IAED;AACF;AACA;AACA;;EArCA;IAAA;IAAA,KAsCE,eAAsB;MACpB,6BAAO,IAAP;IACD;EAxCH;;EAAA;AAAA,iCAAqCnb,KAArC;AA2CA;AACA;AACA;;AACO,IAAMqU,sBAAb;EAAA;;EAAA;;EACE;AACF;AACA;AACA;EACE,gCAAYrZ,SAAZ,EAA+B;IAAA;;IAAA;;IAC7B,IAAI,GAAGH,cAAH,CAAkBxD,IAAlB,CAAuB0jB,cAAvB,EAAuC9c,MAAM,CAACjD,SAAD,CAA7C,CAAJ,EAA+D;MAC7D,4BAAMA,SAAN,EAAiB+f,cAAc,CAAC9c,MAAM,CAACjD,SAAD,CAAP,CAAd,CAAkCsN,YAAnD,EAAiEyS,cAAc,CAAC9c,MAAM,CAACjD,SAAD,CAAP,CAAd,CAAkCuN,aAAnG;IACD,CAFD,MAEO;MACL,4BAAM,GAAN,EAAWwS,cAAc,CAAC,KAAD,CAAd,CAAsBzS,YAAjC,EAA+CyS,cAAc,CAAC,KAAD,CAAd,CAAsBxS,aAArE;IACD;;IAL4B;EAM9B;;EAXH;AAAA,EAA4CvP,eAA5C;AAcA;AACA;AACA;;AACO,IAAM0V,mBAAb;EAAA;;EAAA;;EACE;AACF;AACA;AACA;EACE,6BAAY1T,SAAZ,EAA+B;IAAA;;IAAA;;IAC7B,IAAI,GAAGH,cAAH,CAAkBxD,IAAlB,CAAuB2jB,WAAvB,EAAoC/c,MAAM,CAACjD,SAAD,CAA1C,CAAJ,EAA4D;MAC1D,4BAAMA,SAAN,EAAiBggB,WAAW,CAAC/c,MAAM,CAACjD,SAAD,CAAP,CAAX,CAA+BsN,YAAhD,EAA8D0S,WAAW,CAAC/c,MAAM,CAACjD,SAAD,CAAP,CAAX,CAA+BuN,aAA7F;IACD,CAFD,MAEO;MACL,4BAAM,GAAN,EAAWyS,WAAW,CAAC,KAAD,CAAX,CAAmB1S,YAA9B,EAA4C0S,WAAW,CAAC,KAAD,CAAX,CAAmBzS,aAA/D;IACD;;IAL4B;EAM9B;;EAXH;AAAA,EAAyCvP,eAAzC;AAcA;AACA;AACA;;AACO,IAAMke,wBAAb;EAAA;;EAAA;;EACE;AACF;AACA;AACA;EACE,kCAAYlc,SAAZ,EAA+B;IAAA;;IAAA;;IAC7B,IAAI,GAAGH,cAAH,CAAkBxD,IAAlB,CAAuB4jB,gBAAvB,EAAyChd,MAAM,CAACjD,SAAD,CAA/C,CAAJ,EAAiE;MAC/D,4BAAMA,SAAN,EAAiBigB,gBAAgB,CAAChd,MAAM,CAACjD,SAAD,CAAP,CAAhB,CAAoCsN,YAArD,EAAmE2S,gBAAgB,CAAChd,MAAM,CAACjD,SAAD,CAAP,CAAhB,CAAoCuN,aAAvG;IACD,CAFD,MAEO;MACL,4BAAM,GAAN,EAAW0S,gBAAgB,CAAC,KAAD,CAAhB,CAAwB3S,YAAnC,EAAiD2S,gBAAgB,CAAC,KAAD,CAAhB,CAAwB1S,aAAzE;IACD;;IAL4B;EAM9B;;EAXH;AAAA,EAA8CvP,eAA9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FO,IAAMoiB,kBAAkB,GAAG,GAA3B;AACA,IAAMC,kBAAkB,GAAG,EAA3B;AACA,IAAMC,gBAAgB,GAAG,KAAKD,kBAA9B;AACA,IAAME,eAAe,GAAG,KAAKD,gBAA7B;AAEP,IAAME,YAAY,GAAG,CACnB,CAAC,GAAD,EAAMD,eAAN,CADmB,EAEnB,CAAC,GAAD,EAAMD,gBAAN,CAFmB,EAGnB,CAAC,GAAD,EAAMD,kBAAN,CAHmB,EAInB,CAAC,GAAD,EAAMD,kBAAN,CAJmB,CAArB;AAOA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASrF,kBAAT,CAA4B0F,YAA5B,EAAkD;EACvD;EACA,IAAI,CAACA,YAAD,IAAiBA,YAAY,IAAI,CAArC,EAAwC;IACtC,OAAO,UAAP;EACD;;EAED,IAAMC,KAAK,GAAGpnB,IAAI,CAACqnB,KAAL,CAAWF,YAAY,GAAGH,gBAA1B,CAAd;EAEA,IAAMM,OAAO,GAAG,IAAIjnB,IAAJ,CAAS8mB,YAAY,GAAG,IAAxB,CAAhB;EACA,IAAMI,OAAO,GAAGD,OAAO,CAACE,aAAR,EAAhB,CATuD,CAUvD;;EACA,IAAMhG,OAAO,GAAG8F,OAAO,CAACG,UAAR,EAAhB;EACA,IAAMC,EAAE,GAAGP,YAAY,GAAG,GAA1B;EACA,IAAIQ,KAAK,GAAG,EAAZ;;EACA,IAAIC,aAAa,CAACF,EAAD,CAAb,GAAoB,CAAxB,EAA2B;IACzB,IAAIE,aAAa,CAACF,EAAD,CAAb,GAAoB,CAAxB,EAA2B;MACzBC,KAAK,GAAGD,EAAE,CAACG,OAAH,CAAW,CAAX,CAAR;IACD,CAFD,MAEO;MACLF,KAAK,GAAGhe,MAAM,CAAC+d,EAAD,CAAd;IACD;;IACDC,KAAK,GAAG,MAAMA,KAAK,CAAC3b,KAAN,CAAY,GAAZ,EAAiB,CAAjB,CAAd;EACD;;EAED,OAAO,CAACob,KAAK,GAAG,GAAR,GAAcG,OAAd,GAAwB,GAAxB,GAA8B/F,OAA/B,EAAwCte,OAAxC,CAAgD,SAAhD,EACH,KADG,IACMykB,KADb;AAED;AAED;AACA;AACA;AACA;AACA;AACA;;AACO,SAAS1D,uBAAT,CAAiCzC,OAAjC,EAAkD;EACvD;EACA,IAAI,CAACA,OAAD,IAAYA,OAAO,IAAI,CAA3B,EAA8B;IAC5B,OAAO,MAAP;EACD;;EAED,IAAIsG,QAAQ,GAAG,GAAf;EACA,IAAIC,SAAS,GAAGvG,OAAhB;EAEA0F,YAAY,CAACvX,OAAb,CAAqB,gBAA6B;IAAA;IAAA,IAA3BqY,IAA2B;IAAA,IAArBC,eAAqB;;IAChD,IAAItlB,KAAK,GAAG3C,IAAI,CAACqnB,KAAL,CAAWU,SAAS,GAAGE,eAAvB,CAAZ;IAEAF,SAAS,GAAGA,SAAS,GAAGE,eAAxB;;IACA,IAAIL,aAAa,CAACG,SAAD,CAAb,GAA2B,CAA/B,EAAkC;MAChCA,SAAS,GAAG9Y,MAAM,CAACA,MAAM,CAAC8Y,SAAD,CAAN,CAAkBF,OAAlB,CAA0B,CAA1B,CAAD,CAAlB;IACD,CAN+C,CAOhD;IACA;;;IACA,IAAIG,IAAI,KAAK,GAAT,IAAgBD,SAAS,GAAG,CAAhC,EAAmC;MACjCplB,KAAK,IAAIolB,SAAT;IACD;;IAED,IAAIplB,KAAJ,EAAW;MACT,IAAI,CAACmlB,QAAQ,CAACzZ,OAAT,CAAiB,GAAjB,IAAwB,CAAxB,IACD2Z,IAAI,KAAK,GADR,IACeA,IAAI,KAAK,GADxB,IAC+BA,IAAI,KAAK,GADzC,KAEAF,QAAQ,CAACzZ,OAAT,CAAiB,GAAjB,MAA0B,CAAC,CAF/B,EAEkC;QAChCyZ,QAAQ,IAAI,GAAZ;MACD;;MACDA,QAAQ,cAAOnlB,KAAP,SAAeqlB,IAAf,CAAR;IACD;EACF,CArBD;EAuBA,OAAOF,QAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASI,gBAAT,CAA0BC,UAA1B,EAA8CC,SAA9C,EAAiE;EACtE,IAAI,CAACD,UAAD,IAAe,OAAOA,UAAP,KAAsB,QAArC,IACA,CAACA,UAAU,CAAChd,KAAX,CAAiBid,SAAjB,CADL,EACkC;IAChC,OAAO,CAAP;EACD;;EACD,IAAMnR,KAAK,GAAGkR,UAAU,CAACnc,KAAX,CAAiB,GAAjB,CAAd;EACA,IAAMob,KAAK,GAAGnY,MAAM,CAACgI,KAAK,CAAC,CAAD,CAAN,CAApB;EACA,IAAMsQ,OAAO,GAAGtY,MAAM,CAACgI,KAAK,CAAC,CAAD,CAAN,CAAtB;EACA,IAAMuK,OAAO,GAAGvS,MAAM,CAACgI,KAAK,CAAC,CAAD,CAAN,CAAtB;EACA,OAAQmQ,KAAK,GAAG,IAAT,GAAkBG,OAAO,GAAG,EAA5B,GAAkC/F,OAAzC;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAAS6G,oBAAT,CAA8BP,QAA9B,EAAgDQ,aAAhD,EAAuE;EAC5E,IAAI,CAACR,QAAD,IAAa,CAACA,QAAQ,CAAC3c,KAAT,CAAemd,aAAf,CAAlB,EAAiD;IAC/C,OAAO,CAAP;EACD;;EAED,YAA2D,IAAIjQ,MAAJ,CACvDiQ,aADuD,EACxCC,IADwC,CACnCT,QADmC,KACtB,EADrC;EAAA;EAAA,IAASU,KAAT;EAAA,IAAgBC,MAAhB;EAAA,IAA0BC,IAA1B;EAAA,IAAgCtB,KAAhC;EAAA,IAAuCG,OAAvC;EAAA,IAAgD/F,OAAhD;;EAGA,IAAI3gB,MAAM,GAAG,GAAb;EAEAA,MAAM,IAAKoO,MAAM,CAACuS,OAAD,CAAN,GAAkB,GAAlB,IAAyB,GAApC;EACA3gB,MAAM,IAAKoO,MAAM,CAACsY,OAAD,CAAN,GAAkB,IAAlB,IAA0B,GAArC;EACA1mB,MAAM,IAAKoO,MAAM,CAACmY,KAAD,CAAN,GAAgB,MAAhB,IAA0B,GAArC;EACAvmB,MAAM,IAAKoO,MAAM,CAACyZ,IAAD,CAAN,IAAgB,KAAK,EAAL,GAAU,IAA1B,KAAmC,GAA9C;EACA7nB,MAAM,IAAKoO,MAAM,CAACuZ,KAAD,CAAN,IAAiB,KAAK,EAAL,GAAU,EAAV,GAAe,KAAhC,KAA0C,GAArD;EAEA,OAAO3nB,MAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASqjB,eAAT,CACHyE,KADG,EAEHC,MAFG,EAGHN,aAHG,EAGoB;EACzB,OAAOrE,uBAAuB,CAC1BoE,oBAAoB,CAACM,KAAD,EAAQL,aAAR,CAApB,GACAD,oBAAoB,CAACO,MAAD,EAASN,aAAT,CAFM,CAA9B;AAID;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAAS5G,oBAAT,CACHiH,KADG,EAEHC,MAFG,EAGHR,SAHG,EAGgB;EACrB,OAAO3G,kBAAkB,CACrByG,gBAAgB,CAACS,KAAD,EAAQP,SAAR,CAAhB,GACAF,gBAAgB,CACZU,MADY,EACJR,SADI,CAFK,CAAzB;AAKD;AAED;AACA;AACA;AACA;AACA;;AACO,SAAS1T,OAAT,CAAiBmU,IAAjB,EAAuB;EAC5B,IAAMhoB,MAAM,GAAG,EAAf;EAEA;AACF;AACA;AACA;AACA;;EACE,SAASioB,OAAT,CAAiBC,GAAjB,EAAsBC,IAAtB,EAA4B;IAC1B,IAAI1pB,MAAM,CAACypB,GAAD,CAAN,KAAgBA,GAApB,EAAyB;MACvBloB,MAAM,CAACmoB,IAAD,CAAN,GAAeD,GAAf;IACD,CAFD,MAEO,IAAI9X,KAAK,CAACgY,OAAN,CAAcF,GAAd,CAAJ,EAAwB;MAC7B,KAAK,IAAIje,CAAC,GAAG,CAAR,EAAWoe,CAAC,GAAGH,GAAG,CAACle,MAAxB,EAAgCC,CAAC,GAAGoe,CAApC,EAAuCpe,CAAC,EAAxC,EAA4C;QAC1Cge,OAAO,CAACC,GAAG,CAACje,CAAD,CAAJ,EAASke,IAAI,GAAG,GAAP,GAAale,CAAb,GAAiB,GAA1B,CAAP;QACA,IAAIoe,CAAC,KAAK,CAAV,EAAaroB,MAAM,CAACmoB,IAAD,CAAN,GAAe,EAAf;MACd;IACF,CALM,MAKA;MACL,IAAIG,OAAO,GAAG,IAAd;;MACA,KAAK,IAAMC,CAAX,IAAgBL,GAAhB,EAAqB;QACnB,IAAI,GAAGxiB,cAAH,CAAkBxD,IAAlB,CAAuBgmB,GAAvB,EAA4BK,CAA5B,CAAJ,EAAoC;UAClCD,OAAO,GAAG,KAAV;UACAL,OAAO,CAACC,GAAG,CAACK,CAAD,CAAJ,EAASJ,IAAI,GAAGA,IAAI,GAAG,GAAP,GAAaI,CAAhB,GAAoBA,CAAjC,CAAP;QACD;MACF;;MACD,IAAID,OAAO,IAAIH,IAAf,EAAqBnoB,MAAM,CAACmoB,IAAD,CAAN,GAAe,EAAf;IACtB;EACF;;EAEDF,OAAO,CAACD,IAAD,EAAO,EAAP,CAAP;EACA,OAAOhoB,MAAP;AACD;AAED;AACA;AACA;AACA;AACA;;AACO,SAASgE,SAAT,CAAmBgkB,IAAnB,EAAyB;EAC9B;;EACA,IAAIvpB,MAAM,CAACupB,IAAD,CAAN,KAAiBA,IAAjB,IAAyB5X,KAAK,CAACgY,OAAN,CAAcJ,IAAd,CAA7B,EAAkD,OAAOA,IAAP;EAClD,IAAMQ,KAAK,GAAG,yBAAd;EACA,IAAMxoB,MAAM,GAAG,EAAf;;EACA,KAAK,IAAMuoB,CAAX,IAAgBP,IAAhB,EAAsB;IACpB,IAAI,GAAGtiB,cAAH,CAAkBxD,IAAlB,CAAuB8lB,IAAvB,EAA6BO,CAA7B,CAAJ,EAAqC;MACnC,IAAIL,GAAG,GAAGloB,MAAV;MACA,IAAImoB,IAAI,GAAG,EAAX;MACA,IAAIM,CAAC,GAAGD,KAAK,CAACd,IAAN,CAAWa,CAAX,CAAR;;MACA,OAAOE,CAAP,EAAU;QACRP,GAAG,GAAGA,GAAG,CAACC,IAAD,CAAH,KAAcD,GAAG,CAACC,IAAD,CAAH,GAAaM,CAAC,CAAC,CAAD,CAAD,GAAO,EAAP,GAAY,EAAvC,CAAN;QACAN,IAAI,GAAGM,CAAC,CAAC,CAAD,CAAD,IAAQA,CAAC,CAAC,CAAD,CAAhB;QACAA,CAAC,GAAGD,KAAK,CAACd,IAAN,CAAWa,CAAX,CAAJ;MACD;;MACDL,GAAG,CAACC,IAAD,CAAH,GAAYH,IAAI,CAACO,CAAD,CAAhB;IACD;EACF;;EACD,OAAOvoB,MAAM,CAAC,EAAD,CAAN,IAAcA,MAArB;AACD;AAED;AACA;AACA;AACA;AACA;;AACO,SAAS+mB,aAAT,CAAuB2B,GAAvB,EAAoC;EACzC,IAAIvpB,IAAI,CAACqnB,KAAL,CAAWkC,GAAX,MAAoBA,GAApB,IAA2B5f,MAAM,CAAC4f,GAAD,CAAN,CAAYlb,OAAZ,CAAoB,GAApB,IAA2B,CAA1D,EAA6D,OAAO,CAAP;EAC7D,IAAM4I,KAAK,GAAGsS,GAAG,CAACzpB,QAAJ,GAAekM,KAAf,CAAqB,GAArB,EAA0B,CAA1B,CAAd;EACA,OAAOiL,KAAK,CAACpM,MAAN,IAAgB,CAAvB;AACD;;;;;;UCjPD;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA,eAAe,4BAA4B;WAC3C,eAAe;WACf,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,GAAG;WACH;WACA;WACA,CAAC;;;;;WCPD,8CAA8C;;;;;WCA9C;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACNA;AACA;AACA;AAEA2e,MAAM,CAAChmB,UAAP,GAAoBA,mDAApB;AACAgmB,MAAM,CAACxT,YAAP,GAAsBA,qDAAtB;AACAwT,MAAM,CAAC1lB,IAAP,GAAcA,6CAAd,C","sources":["webpack://scorm-again/./node_modules/lodash.debounce/index.js","webpack://scorm-again/./src/AICC.js","webpack://scorm-again/./src/BaseAPI.js","webpack://scorm-again/./src/Scorm12API.js","webpack://scorm-again/./src/Scorm2004API.js","webpack://scorm-again/./src/cmi/aicc_cmi.js","webpack://scorm-again/./src/cmi/common.js","webpack://scorm-again/./src/cmi/scorm12_cmi.js","webpack://scorm-again/./src/cmi/scorm2004_cmi.js","webpack://scorm-again/./src/constants/api_constants.js","webpack://scorm-again/./src/constants/error_codes.js","webpack://scorm-again/./src/constants/language_constants.js","webpack://scorm-again/./src/constants/regex.js","webpack://scorm-again/./src/constants/response_constants.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/scorm-again.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 Scorm12API from './Scorm12API';\nimport {\n CMI,\n CMIAttemptRecordsObject,\n CMIEvaluationCommentsObject,\n CMITriesObject,\n} from './cmi/aicc_cmi';\nimport {NAV} from './cmi/scorm12_cmi';\n\n/**\n * The AICC API class\n */\nexport default class AICC extends Scorm12API {\n /**\n * Constructor to create AICC API object\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(finalSettings);\n\n this.cmi = new CMI();\n this.nav = new NAV();\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {any} value\n * @param {boolean} foundFirstIndex\n * @return {object}\n */\n getChildElement(CMIElement, value, foundFirstIndex) {\n let newChild = super.getChildElement(CMIElement, value, foundFirstIndex);\n\n if (!newChild) {\n if (this.stringMatches(CMIElement, 'cmi\\\\.evaluation\\\\.comments\\\\.\\\\d+')) {\n newChild = new CMIEvaluationCommentsObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.tries\\\\.\\\\d+')) {\n newChild = new CMITriesObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.attempt_records\\\\.\\\\d+')) {\n newChild = new CMIAttemptRecordsObject();\n }\n }\n\n return newChild;\n }\n\n /**\n * Replace the whole API with another\n *\n * @param {AICC} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n this.nav = newAPI.nav;\n }\n}\n","// @flow\nimport {CMIArray} from './cmi/common';\nimport {ValidationError} from './exceptions';\nimport ErrorCodes from './constants/error_codes';\nimport APIConstants from './constants/api_constants';\nimport {unflatten} from './utilities';\nimport debounce from 'lodash.debounce';\n\nconst global_constants = APIConstants.global;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Base API class for AICC, SCORM 1.2, and SCORM 2004. Should be considered\n * abstract, and never initialized on it's own.\n */\nexport default class BaseAPI {\n #timeout;\n #error_codes;\n #settings = {\n autocommit: false,\n autocommitSeconds: 10,\n asyncCommit: false,\n sendBeaconCommit: false,\n lmsCommitUrl: false,\n dataCommitFormat: 'json', // valid formats are 'json' or 'flattened', 'params'\n commitRequestDataType: 'application/json;charset=UTF-8',\n autoProgress: false,\n logLevel: global_constants.LOG_LEVEL_ERROR,\n selfReportSessionTime: false,\n alwaysSendTotalTime: false,\n strict_errors: true,\n xhrHeaders: {},\n xhrWithCredentials: false,\n responseHandler: function(xhr) {\n let result;\n if (typeof xhr !== 'undefined') {\n result = JSON.parse(xhr.responseText);\n if (result === null || !{}.hasOwnProperty.call(result, 'result')) {\n result = {};\n if (xhr.status === 200) {\n result.result = global_constants.SCORM_TRUE;\n result.errorCode = 0;\n } else {\n result.result = global_constants.SCORM_FALSE;\n result.errorCode = 101;\n }\n }\n }\n return result;\n },\n requestHandler: function(commitObject) {\n return commitObject;\n },\n onLogMessage: function(messageLevel, logMessage) {\n switch (messageLevel) {\n case global_constants.LOG_LEVEL_ERROR:\n console.error(logMessage);\n break;\n case global_constants.LOG_LEVEL_WARNING:\n console.warn(logMessage);\n break;\n case global_constants.LOG_LEVEL_INFO:\n console.info(logMessage);\n break;\n case global_constants.LOG_LEVEL_DEBUG:\n if (console.debug) {\n console.debug(logMessage);\n } else {\n console.log(logMessage);\n }\n break;\n }\n },\n fetchKeepalive: function() {\n return true;\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: settings.fetchKeepalive(),\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 BaseAPI from './BaseAPI';\nimport {\n ADL,\n CMI,\n CMICommentsObject,\n CMIInteractionsCorrectResponsesObject,\n CMIInteractionsObject,\n CMIInteractionsObjectivesObject,\n CMIObjectivesObject,\n} from './cmi/scorm2004_cmi';\nimport * as Utilities from './utilities';\nimport APIConstants from './constants/api_constants';\nimport ErrorCodes from './constants/error_codes';\nimport Responses from './constants/response_constants';\nimport ValidLanguages from './constants/language_constants';\nimport Regex from './constants/regex';\n\nconst scorm2004_constants = APIConstants.scorm2004;\nconst global_constants = APIConstants.global;\nconst scorm2004_error_codes = ErrorCodes.scorm2004;\nconst correct_responses = Responses.correct;\nconst scorm2004_regex = Regex.scorm2004;\n\n/**\n * API class for SCORM 2004\n */\nexport default class Scorm2004API extends BaseAPI {\n #version: '1.0';\n\n /**\n * Constructor for SCORM 2004 API\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(scorm2004_error_codes, finalSettings);\n\n this.cmi = new CMI();\n this.adl = new ADL();\n\n // Rename functions to match 2004 Spec and expose to modules\n this.Initialize = this.lmsInitialize;\n this.Terminate = this.lmsTerminate;\n this.GetValue = this.lmsGetValue;\n this.SetValue = this.lmsSetValue;\n this.Commit = this.lmsCommit;\n this.GetLastError = this.lmsGetLastError;\n this.GetErrorString = this.lmsGetErrorString;\n this.GetDiagnostic = this.lmsGetDiagnostic;\n }\n\n /**\n * Getter for #version\n * @return {string}\n */\n get version() {\n return this.#version;\n }\n\n /**\n * @return {string} bool\n */\n lmsInitialize() {\n this.cmi.initialize();\n return this.initialize('Initialize');\n }\n\n /**\n * @return {string} bool\n */\n lmsTerminate() {\n const result = this.terminate('Terminate', true);\n\n if (result === global_constants.SCORM_TRUE) {\n if (this.adl.nav.request !== '_none_') {\n switch (this.adl.nav.request) {\n case 'continue':\n this.processListeners('SequenceNext');\n break;\n case 'previous':\n this.processListeners('SequencePrevious');\n break;\n case 'choice':\n this.processListeners('SequenceChoice');\n break;\n case 'exit':\n this.processListeners('SequenceExit');\n break;\n case 'exitAll':\n this.processListeners('SequenceExitAll');\n break;\n case 'abandon':\n this.processListeners('SequenceAbandon');\n break;\n case 'abandonAll':\n this.processListeners('SequenceAbandonAll');\n break;\n }\n } else if (this.settings.autoProgress) {\n this.processListeners('SequenceNext');\n }\n }\n\n return result;\n }\n\n /**\n * @param {string} CMIElement\n * @return {string}\n */\n lmsGetValue(CMIElement) {\n return this.getValue('GetValue', true, CMIElement);\n }\n\n /**\n * @param {string} CMIElement\n * @param {any} value\n * @return {string}\n */\n lmsSetValue(CMIElement, value) {\n return this.setValue('SetValue', 'Commit', true, CMIElement, value);\n }\n\n /**\n * Orders LMS to store all content parameters\n *\n * @return {string} bool\n */\n lmsCommit() {\n return this.commit('Commit');\n }\n\n /**\n * Returns last error code\n *\n * @return {string}\n */\n lmsGetLastError() {\n return this.getLastError('GetLastError');\n }\n\n /**\n * Returns the errorNumber error description\n *\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n lmsGetErrorString(CMIErrorCode) {\n return this.getErrorString('GetErrorString', CMIErrorCode);\n }\n\n /**\n * Returns a comprehensive description of the errorNumber error.\n *\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n lmsGetDiagnostic(CMIErrorCode) {\n return this.getDiagnostic('GetDiagnostic', CMIErrorCode);\n }\n\n /**\n * Sets a value on the CMI Object\n *\n * @param {string} CMIElement\n * @param {any} value\n * @return {string}\n */\n setCMIValue(CMIElement, value) {\n return this._commonSetCMIValue('SetValue', true, CMIElement, value);\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {any} value\n * @param {boolean} foundFirstIndex\n * @return {any}\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 const parts = CMIElement.split('.');\n const index = Number(parts[2]);\n const interaction = this.cmi.interactions.childArray[index];\n if (this.isInitialized()) {\n if (!interaction.type) {\n this.throwSCORMError(\n scorm2004_error_codes.DEPENDENCY_NOT_ESTABLISHED);\n } else {\n this.checkDuplicateChoiceResponse(interaction, value);\n\n const response_type = correct_responses[interaction.type];\n if (response_type) {\n this.checkValidResponseType(response_type, value, interaction.type);\n } else {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Incorrect Response Type: ' + interaction.type);\n }\n }\n }\n if (this.lastErrorCode === 0) {\n newChild = new CMIInteractionsCorrectResponsesObject();\n }\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 } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.comments_from_learner\\\\.\\\\d+')) {\n newChild = new CMICommentsObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.comments_from_lms\\\\.\\\\d+')) {\n newChild = new CMICommentsObject(true);\n }\n\n return newChild;\n }\n\n /**\n * Checks for valid response types\n * @param {object} response_type\n * @param {any} value\n * @param {string} interaction_type\n */\n checkValidResponseType(response_type, value, interaction_type) {\n let nodes = [];\n if (response_type?.delimiter) {\n nodes = String(value).split(response_type.delimiter);\n } else {\n nodes[0] = value;\n }\n\n if (nodes.length > 0 && nodes.length <= response_type.max) {\n this.checkCorrectResponseValue(interaction_type, nodes, value);\n } else if (nodes.length > response_type.max) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Pattern Too Long');\n }\n }\n\n /**\n * Checks for duplicate 'choice' responses.\n * @param {CMIInteractionsObject} interaction\n * @param {any} value\n */\n checkDuplicateChoiceResponse(interaction, value) {\n const interaction_count = interaction.correct_responses._count;\n if (interaction.type === 'choice') {\n for (let i = 0; i < interaction_count && this.lastErrorCode ===\n 0; i++) {\n const response = interaction.correct_responses.childArray[i];\n if (response.pattern === value) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE);\n }\n }\n }\n }\n\n /**\n * Validate correct response.\n * @param {string} CMIElement\n * @param {*} value\n */\n validateCorrectResponse(CMIElement, value) {\n const parts = CMIElement.split('.');\n const index = Number(parts[2]);\n const pattern_index = Number(parts[4]);\n const interaction = this.cmi.interactions.childArray[index];\n\n const interaction_count = interaction.correct_responses._count;\n this.checkDuplicateChoiceResponse(interaction, value);\n\n const response_type = correct_responses[interaction.type];\n if (typeof response_type.limit === 'undefined' || interaction_count <=\n response_type.limit) {\n this.checkValidResponseType(response_type, value, interaction.type);\n\n if (this.lastErrorCode === 0 &&\n (!response_type.duplicate ||\n !this.checkDuplicatedPattern(interaction.correct_responses,\n pattern_index, value)) ||\n (this.lastErrorCode === 0 && value === '')) {\n // do nothing, we want the inverse\n } else {\n if (this.lastErrorCode === 0) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Pattern Already Exists');\n }\n }\n } else {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Collection Limit Reached');\n }\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('GetValue', true, CMIElement);\n }\n\n /**\n * Returns the message that corresponds to errorNumber.\n *\n * @param {(string|number)} errorNumber\n * @param {boolean} detail\n * @return {string}\n */\n getLmsErrorMessageDetails(errorNumber, detail) {\n let basicMessage = '';\n let detailMessage = '';\n\n // Set error number to string since inconsistent from modules if string or number\n errorNumber = String(errorNumber);\n if (scorm2004_constants.error_descriptions[errorNumber]) {\n basicMessage = scorm2004_constants.error_descriptions[errorNumber].basicMessage;\n detailMessage = scorm2004_constants.error_descriptions[errorNumber].detailMessage;\n }\n\n return detail ? detailMessage : basicMessage;\n }\n\n /**\n * Check to see if a correct_response value has been duplicated\n * @param {CMIArray} correct_response\n * @param {number} current_index\n * @param {*} value\n * @return {boolean}\n */\n checkDuplicatedPattern = (correct_response, current_index, value) => {\n let found = false;\n const count = correct_response._count;\n for (let i = 0; i < count && !found; i++) {\n if (i !== current_index && correct_response.childArray[i] === value) {\n found = true;\n }\n }\n return found;\n };\n\n /**\n * Checks for a valid correct_response value\n * @param {string} interaction_type\n * @param {Array} nodes\n * @param {*} value\n */\n checkCorrectResponseValue(interaction_type, nodes, value) {\n const response = correct_responses[interaction_type];\n const formatRegex = new RegExp(response.format);\n for (let i = 0; i < nodes.length && this.lastErrorCode === 0; i++) {\n if (interaction_type.match(\n '^(fill-in|long-fill-in|matching|performance|sequencing)$')) {\n nodes[i] = this.removeCorrectResponsePrefixes(nodes[i]);\n }\n\n if (response?.delimiter2) {\n const values = nodes[i].split(response.delimiter2);\n if (values.length === 2) {\n const matches = values[0].match(formatRegex);\n if (!matches) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n } else {\n if (!values[1].match(new RegExp(response.format2))) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n } else {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n } else {\n const matches = nodes[i].match(formatRegex);\n if ((!matches && value !== '') ||\n (!matches && interaction_type === 'true-false')) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n } else {\n if (interaction_type === 'numeric' && nodes.length > 1) {\n if (Number(nodes[0]) > Number(nodes[1])) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n } else {\n if (nodes[i] !== '' && response.unique) {\n for (let j = 0; j < i && this.lastErrorCode === 0; j++) {\n if (nodes[i] === nodes[j]) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Remove prefixes from correct_response\n * @param {string} node\n * @return {*}\n */\n removeCorrectResponsePrefixes(node) {\n let seenOrder = false;\n let seenCase = false;\n let seenLang = false;\n\n const prefixRegex = new RegExp(\n '^({(lang|case_matters|order_matters)=([^}]+)})');\n let matches = node.match(prefixRegex);\n let langMatches = null;\n while (matches) {\n switch (matches[2]) {\n case 'lang':\n langMatches = node.match(scorm2004_regex.CMILangcr);\n if (langMatches) {\n const lang = langMatches[3];\n if (lang !== undefined && lang.length > 0) {\n if (ValidLanguages[lang.toLowerCase()] === undefined) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n }\n seenLang = true;\n break;\n case 'case_matters':\n if (!seenLang && !seenOrder && !seenCase) {\n if (matches[3] !== 'true' && matches[3] !== 'false') {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n\n seenCase = true;\n break;\n case 'order_matters':\n if (!seenCase && !seenLang && !seenOrder) {\n if (matches[3] !== 'true' && matches[3] !== 'false') {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n\n seenOrder = true;\n break;\n default:\n break;\n }\n node = node.substr(matches[1].length);\n matches = node.match(prefixRegex);\n }\n\n return node;\n }\n\n /**\n * Replace the whole API with another\n * @param {Scorm2004API} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n this.adl = newAPI.adl;\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.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 if (this.cmi.mode === 'normal') {\n if (this.cmi.credit === 'credit') {\n if (this.cmi.completion_threshold && this.cmi.progress_measure) {\n if (this.cmi.progress_measure >= this.cmi.completion_threshold) {\n console.debug('Setting Completion Status: Completed');\n this.cmi.completion_status = 'completed';\n } else {\n console.debug('Setting Completion Status: Incomplete');\n this.cmi.completion_status = 'incomplete';\n }\n }\n if (this.cmi.scaled_passing_score && this.cmi.score.scaled) {\n if (this.cmi.score.scaled >= this.cmi.scaled_passing_score) {\n console.debug('Setting Success Status: Passed');\n this.cmi.success_status = 'passed';\n } else {\n console.debug('Setting Success Status: Failed');\n this.cmi.success_status = 'failed';\n }\n }\n }\n }\n }\n\n let navRequest = false;\n if (this.adl.nav.request !== (this.startingData?.adl?.nav?.request) &&\n this.adl.nav.request !== '_none_') {\n this.adl.nav.request = encodeURIComponent(this.adl.nav.request);\n navRequest = true;\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: ' +\n (terminateCommit ? 'yes' : 'no') + '): ');\n console.debug(commitObject);\n }\n if (this.settings.lmsCommitUrl) {\n const result = this.processHttpRequest(this.settings.lmsCommitUrl,\n commitObject, terminateCommit);\n\n // check if this is a sequencing call, and then call the necessary JS\n {\n if (navRequest && result.navRequest !== undefined &&\n result.navRequest !== '') {\n Function(`\"use strict\";(() => { ${result.navRequest} })()`)();\n }\n }\n return result;\n } else {\n return global_constants.SCORM_TRUE;\n }\n }\n}\n","import * as Scorm12CMI from './scorm12_cmi';\nimport {BaseCMI, checkValidFormat, CMIArray, CMIScore} from './common';\nimport APIConstants from '../constants/api_constants';\nimport Regex from '../constants/regex';\nimport ErrorCodes from '../constants/error_codes';\nimport {AICCValidationError} from '../exceptions';\n\nconst aicc_constants = APIConstants.aicc;\nconst aicc_regex = Regex.aicc;\nconst aicc_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nfunction throwReadOnlyError() {\n throw new AICCValidationError(aicc_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nfunction checkAICCValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n aicc_error_codes.TYPE_MISMATCH,\n AICCValidationError,\n allowEmptyString\n );\n}\n\n/**\n * CMI Class for AICC\n */\nexport class CMI extends Scorm12CMI.CMI {\n /**\n * Constructor for AICC CMI object\n * @param {boolean} initialized\n */\n constructor(initialized: boolean) {\n super(aicc_constants.cmi_children);\n\n if (initialized) this.initialize();\n\n this.student_preference = new AICCStudentPreferences();\n this.student_data = new AICCCMIStudentData();\n this.student_demographics = new CMIStudentDemographics();\n this.evaluation = new CMIEvaluation();\n this.paths = new CMIPaths();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.student_preference?.initialize();\n this.student_data?.initialize();\n this.student_demographics?.initialize();\n this.evaluation?.initialize();\n this.paths?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions,\n * paths: CMIPaths\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'student_demographics': this.student_demographics,\n 'interactions': this.interactions,\n 'evaluation': this.evaluation,\n 'paths': this.paths,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * AICC Evaluation object\n */\nclass CMIEvaluation extends BaseCMI {\n /**\n * Constructor for AICC Evaluation object\n */\n constructor() {\n super();\n\n this.comments = new CMIEvaluationComments();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.comments?.initialize();\n }\n\n /**\n * toJSON for cmi.evaluation object\n * @return {{comments: CMIEvaluationComments}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comments': this.comments,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing AICC's cmi.evaluation.comments object\n */\nclass CMIEvaluationComments extends CMIArray {\n /**\n * Constructor for AICC Evaluation Comments object\n */\n constructor() {\n super({\n children: aicc_constants.comments_children,\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n });\n }\n}\n\n/**\n * StudentPreferences class for AICC\n */\nclass AICCStudentPreferences extends Scorm12CMI.CMIStudentPreference {\n /**\n * Constructor for AICC Student Preferences object\n */\n constructor() {\n super(aicc_constants.student_preference_children);\n\n this.windows = new CMIArray({\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n children: '',\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.windows?.initialize();\n }\n\n #lesson_type = '';\n #text_color = '';\n #text_location = '';\n #text_size = '';\n #video = '';\n\n /**\n * Getter for #lesson_type\n * @return {string}\n */\n get lesson_type(): string {\n return this.#lesson_type;\n }\n\n /**\n * Setter for #lesson_type\n * @param {string} lesson_type\n */\n set lesson_type(lesson_type: string) {\n if (checkAICCValidFormat(lesson_type, aicc_regex.CMIString256)) {\n this.#lesson_type = lesson_type;\n }\n }\n\n /**\n * Getter for #text_color\n * @return {string}\n */\n get text_color(): string {\n return this.#text_color;\n }\n\n /**\n * Setter for #text_color\n * @param {string} text_color\n */\n set text_color(text_color: string) {\n if (checkAICCValidFormat(text_color, aicc_regex.CMIString256)) {\n this.#text_color = text_color;\n }\n }\n\n /**\n * Getter for #text_location\n * @return {string}\n */\n get text_location(): string {\n return this.#text_location;\n }\n\n /**\n * Setter for #text_location\n * @param {string} text_location\n */\n set text_location(text_location: string) {\n if (checkAICCValidFormat(text_location, aicc_regex.CMIString256)) {\n this.#text_location = text_location;\n }\n }\n\n /**\n * Getter for #text_size\n * @return {string}\n */\n get text_size(): string {\n return this.#text_size;\n }\n\n /**\n * Setter for #text_size\n * @param {string} text_size\n */\n set text_size(text_size: string) {\n if (checkAICCValidFormat(text_size, aicc_regex.CMIString256)) {\n this.#text_size = text_size;\n }\n }\n\n /**\n * Getter for #video\n * @return {string}\n */\n get video(): string {\n return this.#video;\n }\n\n /**\n * Setter for #video\n * @param {string} video\n */\n set video(video: string) {\n if (checkAICCValidFormat(video, aicc_regex.CMIString256)) {\n this.#video = video;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'lesson_type': this.lesson_type,\n 'speed': this.speed,\n 'text': this.text,\n 'text_color': this.text_color,\n 'text_location': this.text_location,\n 'text_size': this.text_size,\n 'video': this.video,\n 'windows': this.windows,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * StudentData class for AICC\n */\nclass AICCCMIStudentData extends Scorm12CMI.CMIStudentData {\n /**\n * Constructor for AICC StudentData object\n */\n constructor() {\n super(aicc_constants.student_data_children);\n\n this.tries = new CMITries();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.tries?.initialize();\n }\n\n #tries_during_lesson = '';\n\n /**\n * Getter for tries_during_lesson\n * @return {string}\n */\n get tries_during_lesson() {\n return this.#tries_during_lesson;\n }\n\n /**\n * Setter for #tries_during_lesson. Sets an error if trying to set after\n * initialization.\n * @param {string} tries_during_lesson\n */\n set tries_during_lesson(tries_during_lesson) {\n !this.initialized ?\n this.#tries_during_lesson = tries_during_lesson :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data object\n * @return {\n * {\n * mastery_score: string,\n * max_time_allowed: string,\n * time_limit_action: string,\n * tries: CMITries\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n 'tries': this.tries,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_demographics object\n */\nexport class CMIStudentDemographics extends BaseCMI {\n /**\n * Constructor for AICC StudentDemographics object\n */\n constructor() {\n super();\n }\n\n #_children = aicc_constants.student_demographics_children;\n #city = '';\n #class = '';\n #company = '';\n #country = '';\n #experience = '';\n #familiar_name = '';\n #instructor_name = '';\n #title = '';\n #native_language = '';\n #state = '';\n #street_address = '';\n #telephone = '';\n #years_experience = '';\n\n /**\n * Getter for _children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Getter for city\n * @return {string}\n */\n get city() {\n return this.#city;\n }\n\n /**\n * Setter for #city. Sets an error if trying to set after\n * initialization.\n * @param {string} city\n */\n set city(city) {\n !this.initialized ?\n this.#city = city :\n throwReadOnlyError();\n }\n\n /**\n * Getter for class\n * @return {string}\n */\n get class() {\n return this.#class;\n }\n\n /**\n * Setter for #class. Sets an error if trying to set after\n * initialization.\n * @param {string} clazz\n */\n set class(clazz) {\n !this.initialized ?\n this.#class = clazz :\n throwReadOnlyError();\n }\n\n /**\n * Getter for company\n * @return {string}\n */\n get company() {\n return this.#company;\n }\n\n /**\n * Setter for #company. Sets an error if trying to set after\n * initialization.\n * @param {string} company\n */\n set company(company) {\n !this.initialized ?\n this.#company = company :\n throwReadOnlyError();\n }\n\n /**\n * Getter for country\n * @return {string}\n */\n get country() {\n return this.#country;\n }\n\n /**\n * Setter for #country. Sets an error if trying to set after\n * initialization.\n * @param {string} country\n */\n set country(country) {\n !this.initialized ?\n this.#country = country :\n throwReadOnlyError();\n }\n\n /**\n * Getter for experience\n * @return {string}\n */\n get experience() {\n return this.#experience;\n }\n\n /**\n * Setter for #experience. Sets an error if trying to set after\n * initialization.\n * @param {string} experience\n */\n set experience(experience) {\n !this.initialized ?\n this.#experience = experience :\n throwReadOnlyError();\n }\n\n /**\n * Getter for familiar_name\n * @return {string}\n */\n get familiar_name() {\n return this.#familiar_name;\n }\n\n /**\n * Setter for #familiar_name. Sets an error if trying to set after\n * initialization.\n * @param {string} familiar_name\n */\n set familiar_name(familiar_name) {\n !this.initialized ?\n this.#familiar_name = familiar_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for instructor_name\n * @return {string}\n */\n get instructor_name() {\n return this.#instructor_name;\n }\n\n /**\n * Setter for #instructor_name. Sets an error if trying to set after\n * initialization.\n * @param {string} instructor_name\n */\n set instructor_name(instructor_name) {\n !this.initialized ?\n this.#instructor_name = instructor_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for title\n * @return {string}\n */\n get title() {\n return this.#title;\n }\n\n /**\n * Setter for #title. Sets an error if trying to set after\n * initialization.\n * @param {string} title\n */\n set title(title) {\n !this.initialized ?\n this.#title = title :\n throwReadOnlyError();\n }\n\n /**\n * Getter for native_language\n * @return {string}\n */\n get native_language() {\n return this.#native_language;\n }\n\n /**\n * Setter for #native_language. Sets an error if trying to set after\n * initialization.\n * @param {string} native_language\n */\n set native_language(native_language) {\n !this.initialized ?\n this.#native_language = native_language :\n throwReadOnlyError();\n }\n\n /**\n * Getter for state\n * @return {string}\n */\n get state() {\n return this.#state;\n }\n\n /**\n * Setter for #state. Sets an error if trying to set after\n * initialization.\n * @param {string} state\n */\n set state(state) {\n !this.initialized ?\n this.#state = state :\n throwReadOnlyError();\n }\n\n /**\n * Getter for street_address\n * @return {string}\n */\n get street_address() {\n return this.#street_address;\n }\n\n /**\n * Setter for #street_address. Sets an error if trying to set after\n * initialization.\n * @param {string} street_address\n */\n set street_address(street_address) {\n !this.initialized ?\n this.#street_address = street_address :\n throwReadOnlyError();\n }\n\n /**\n * Getter for telephone\n * @return {string}\n */\n get telephone() {\n return this.#telephone;\n }\n\n /**\n * Setter for #telephone. Sets an error if trying to set after\n * initialization.\n * @param {string} telephone\n */\n set telephone(telephone) {\n !this.initialized ?\n this.#telephone = telephone :\n throwReadOnlyError();\n }\n\n /**\n * Getter for years_experience\n * @return {string}\n */\n get years_experience() {\n return this.#years_experience;\n }\n\n /**\n * Setter for #years_experience. Sets an error if trying to set after\n * initialization.\n * @param {string} years_experience\n */\n set years_experience(years_experience) {\n !this.initialized ?\n this.#years_experience = years_experience :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_demographics object\n * @return {\n * {\n * city: string,\n * class: string,\n * company: string,\n * country: string,\n * experience: string,\n * familiar_name: string,\n * instructor_name: string,\n * title: string,\n * native_language: string,\n * state: string,\n * street_address: string,\n * telephone: string,\n * years_experience: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'city': this.city,\n 'class': this.class,\n 'company': this.company,\n 'country': this.country,\n 'experience': this.experience,\n 'familiar_name': this.familiar_name,\n 'instructor_name': this.instructor_name,\n 'title': this.title,\n 'native_language': this.native_language,\n 'state': this.state,\n 'street_address': this.street_address,\n 'telephone': this.telephone,\n 'years_experience': this.years_experience,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.paths object\n */\nexport class CMIPaths extends CMIArray {\n /**\n * Constructor for inline Paths Array class\n */\n constructor() {\n super({children: aicc_constants.paths_children});\n }\n}\n\n/**\n * Class for AICC Paths\n */\nexport class CMIPathsObject extends BaseCMI {\n /**\n * Constructor for AICC Paths objects\n */\n constructor() {\n super();\n }\n\n #location_id = '';\n #date = '';\n #time = '';\n #status = '';\n #why_left = '';\n #time_in_element = '';\n\n /**\n * Getter for #location_id\n * @return {string}\n */\n get location_id() {\n return this.#location_id;\n }\n\n /**\n * Setter for #location_id\n * @param {string} location_id\n */\n set location_id(location_id) {\n if (checkAICCValidFormat(location_id, aicc_regex.CMIString256)) {\n this.#location_id = location_id;\n }\n }\n\n /**\n * Getter for #date\n * @return {string}\n */\n get date() {\n return this.#date;\n }\n\n /**\n * Setter for #date\n * @param {string} date\n */\n set date(date) {\n if (checkAICCValidFormat(date, aicc_regex.CMIString256)) {\n this.#date = date;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #why_left\n * @return {string}\n */\n get why_left() {\n return this.#why_left;\n }\n\n /**\n * Setter for #why_left\n * @param {string} why_left\n */\n set why_left(why_left) {\n if (checkAICCValidFormat(why_left, aicc_regex.CMIString256)) {\n this.#why_left = why_left;\n }\n }\n\n /**\n * Getter for #time_in_element\n * @return {string}\n */\n get time_in_element() {\n return this.#time_in_element;\n }\n\n /**\n * Setter for #time_in_element\n * @param {string} time_in_element\n */\n set time_in_element(time_in_element) {\n if (checkAICCValidFormat(time_in_element, aicc_regex.CMITime)) {\n this.#time_in_element = time_in_element;\n }\n }\n\n /**\n * toJSON for cmi.paths.n object\n * @return {\n * {\n * location_id: string,\n * date: string,\n * time: string,\n * status: string,\n * why_left: string,\n * time_in_element: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'location_id': this.location_id,\n 'date': this.date,\n 'time': this.time,\n 'status': this.status,\n 'why_left': this.why_left,\n 'time_in_element': this.time_in_element,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_data.tries object\n */\nexport class CMITries extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.tries_children});\n }\n}\n\n/**\n * Class for AICC Tries\n */\nexport class CMITriesObject extends BaseCMI {\n /**\n * Constructor for AICC Tries object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #status = '';\n #time = '';\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.student_data.tries.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'status': this.status,\n 'time': this.time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for cmi.student_data.attempt_records array\n */\nexport class CMIAttemptRecords extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.attempt_records_children});\n }\n}\n\n/**\n * Class for AICC Attempt Records\n */\nexport class CMIAttemptRecordsObject extends BaseCMI {\n /**\n * Constructor for AICC Attempt Records object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #lesson_status = '';\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (checkAICCValidFormat(lesson_status, aicc_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n\n /**\n * toJSON for cmi.student_data.attempt_records.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'lesson_status': this.lesson_status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Evaluation Comments\n */\nexport class CMIEvaluationCommentsObject extends BaseCMI {\n /**\n * Constructor for Evaluation Comments\n */\n constructor() {\n super();\n }\n\n #content = '';\n #location = '';\n #time = '';\n\n /**\n * Getter for #content\n * @return {string}\n */\n get content() {\n return this.#content;\n }\n\n /**\n * Setter for #content\n * @param {string} content\n */\n set content(content) {\n if (checkAICCValidFormat(content, aicc_regex.CMIString256)) {\n this.#content = content;\n }\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (checkAICCValidFormat(location, aicc_regex.CMIString256)) {\n this.#location = location;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setting for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.evaulation.comments.n object\n * @return {\n * {\n * content: string,\n * location: string,\n * time: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'content': this.content,\n 'location': this.location,\n 'time': this.time,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Check if the value matches the proper format. If not, throw proper error code.\n *\n * @param {string} value\n * @param {string} regexPattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function checkValidFormat(\n value: String,\n regexPattern: String,\n errorCode: number,\n errorClass: function,\n allowEmptyString?: boolean) {\n const formatRegex = new RegExp(regexPattern);\n const matches = value.match(formatRegex);\n if (allowEmptyString && value === '') {\n return true;\n }\n if (value === undefined || !matches || matches[0] === '') {\n throw new errorClass.prototype.constructor(errorCode);\n }\n return true;\n}\n\n/**\n * Check if the value matches the proper range. If not, throw proper error code.\n *\n * @param {*} value\n * @param {string} rangePattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @return {boolean}\n */\nexport function checkValidRange(\n value: any,\n rangePattern: String,\n errorCode: number,\n errorClass: function) {\n const ranges = rangePattern.split('#');\n value = value * 1.0;\n if (value >= ranges[0]) {\n if ((ranges[1] === '*') || (value <= ranges[1])) {\n return true;\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n}\n\n/**\n * Base class for API cmi objects\n */\nexport class BaseCMI {\n jsonString = false;\n #initialized = false;\n #start_time;\n\n /**\n * Constructor for BaseCMI, just marks the class as abstract\n */\n constructor() {\n if (new.target === BaseCMI) {\n throw new TypeError('Cannot construct BaseCMI instances directly');\n }\n }\n\n /**\n * Getter for #initialized\n * @return {boolean}\n */\n get initialized() {\n return this.#initialized;\n }\n\n /**\n * Getter for #start_time\n * @return {Number}\n */\n get start_time() {\n return this.#start_time;\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n this.#initialized = true;\n }\n\n /**\n * Called when the player should override the 'session_time' provided by\n * the module\n */\n setStartTime() {\n this.#start_time = new Date().getTime();\n }\n}\n\n/**\n * Base class for cmi *.score objects\n */\nexport class CMIScore extends BaseCMI {\n /**\n * Constructor for *.score\n * @param {string} score_children\n * @param {string} score_range\n * @param {string} max\n * @param {number} invalidErrorCode\n * @param {number} invalidTypeCode\n * @param {number} invalidRangeCode\n * @param {string} decimalRegex\n * @param {class} errorClass\n */\n constructor(\n {\n score_children,\n score_range,\n max,\n invalidErrorCode,\n invalidTypeCode,\n invalidRangeCode,\n decimalRegex,\n errorClass,\n }) {\n super();\n\n this.#_children = score_children ||\n scorm12_constants.score_children;\n this.#_score_range = !score_range ? false : scorm12_regex.score_range;\n this.#max = (max || max === '') ? max : '100';\n this.#_invalid_error_code = invalidErrorCode ||\n scorm12_error_codes.INVALID_SET_VALUE;\n this.#_invalid_type_code = invalidTypeCode ||\n scorm12_error_codes.TYPE_MISMATCH;\n this.#_invalid_range_code = invalidRangeCode ||\n scorm12_error_codes.VALUE_OUT_OF_RANGE;\n this.#_decimal_regex = decimalRegex ||\n scorm12_regex.CMIDecimal;\n this.#_error_class = errorClass;\n }\n\n #_children;\n #_score_range;\n #_invalid_error_code;\n #_invalid_type_code;\n #_invalid_range_code;\n #_decimal_regex;\n #_error_class;\n #raw = '';\n #min = '';\n #max;\n\n /**\n * Getter for _children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throw new this.#_error_class.prototype.constructor(this.#_invalid_error_code);\n }\n\n /**\n * Getter for #raw\n * @return {string}\n */\n get raw() {\n return this.#raw;\n }\n\n /**\n * Setter for #raw\n * @param {string} raw\n */\n set raw(raw) {\n if (checkValidFormat(raw, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(raw, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#raw = raw;\n }\n }\n\n /**\n * Getter for #min\n * @return {string}\n */\n get min() {\n return this.#min;\n }\n\n /**\n * Setter for #min\n * @param {string} min\n */\n set min(min) {\n if (checkValidFormat(min, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(min, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#min = min;\n }\n }\n\n /**\n * Getter for #max\n * @return {string}\n */\n get max() {\n return this.#max;\n }\n\n /**\n * Setter for #max\n * @param {string} max\n */\n set max(max) {\n if (checkValidFormat(max, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(max, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#max = max;\n }\n }\n\n /**\n * toJSON for *.score\n * @return {{min: string, max: string, raw: string}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'raw': this.raw,\n 'min': this.min,\n 'max': this.max,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Base class for cmi *.n objects\n */\nexport class CMIArray extends BaseCMI {\n /**\n * Constructor cmi *.n arrays\n * @param {string} children\n * @param {number} errorCode\n * @param {class} errorClass\n */\n constructor({children, errorCode, errorClass}) {\n super();\n this.#_children = children;\n this.#errorCode = errorCode;\n this.#errorClass = errorClass;\n this.childArray = [];\n }\n\n #errorCode;\n #errorClass;\n #_children;\n\n /**\n * Getter for _children\n * @return {*}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * Getter for _count\n * @return {number}\n */\n get _count() {\n return this.childArray.length;\n }\n\n /**\n * Setter for _count. Just throws an error.\n * @param {number} _count\n */\n set _count(_count) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * toJSON for *.n arrays\n * @return {object}\n */\n toJSON() {\n this.jsonString = true;\n const result = {};\n for (let i = 0; i < this.childArray.length; i++) {\n result[i + ''] = this.childArray[i];\n }\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport {\n BaseCMI,\n checkValidFormat,\n checkValidRange,\n CMIArray,\n CMIScore,\n} from './common';\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\nimport {Scorm12ValidationError} from '../exceptions';\nimport * as Utilities from '../utilities';\nimport * as Util from '../utilities';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nexport function throwReadOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Write Only error\n */\nexport function throwWriteOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.WRITE_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Invalid Set error\n */\nfunction throwInvalidValueError() {\n throw new Scorm12ValidationError(scorm12_error_codes.INVALID_SET_VALUE);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n scorm12_error_codes.TYPE_MISMATCH,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} rangePattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidRange(\n value: any,\n rangePattern: String,\n allowEmptyString?: boolean) {\n return checkValidRange(\n value,\n rangePattern,\n scorm12_error_codes.VALUE_OUT_OF_RANGE,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Class representing the cmi object for SCORM 1.2\n */\nexport class CMI extends BaseCMI {\n #_children = '';\n #_version = '3.4';\n #launch_data = '';\n #comments = '';\n #comments_from_lms = '';\n\n student_data = null;\n\n /**\n * Constructor for the SCORM 1.2 cmi object\n * @param {string} cmi_children\n * @param {(CMIStudentData|AICCCMIStudentData)} student_data\n * @param {boolean} initialized\n */\n constructor(cmi_children, student_data, initialized: boolean) {\n super();\n\n if (initialized) this.initialize();\n\n this.#_children = cmi_children ?\n cmi_children :\n scorm12_constants.cmi_children;\n this.core = new CMICore();\n this.objectives = new CMIObjectives();\n this.student_data = student_data ? student_data : new CMIStudentData();\n this.student_preference = new CMIStudentPreference();\n this.interactions = new CMIInteractions();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.core?.initialize();\n this.objectives?.initialize();\n this.student_data?.initialize();\n this.student_preference?.initialize();\n this.interactions?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'interactions': this.interactions,\n };\n delete this.jsonString;\n return result;\n }\n\n /**\n * Getter for #_version\n * @return {string}\n */\n get _version() {\n return this.#_version;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _version\n */\n set _version(_version) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #_children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.core?.suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (this.core) {\n this.core.suspend_data = suspend_data;\n }\n }\n\n /**\n * Getter for #launch_data\n * @return {string}\n */\n get launch_data() {\n return this.#launch_data;\n }\n\n /**\n * Setter for #launch_data. Can only be called before initialization.\n * @param {string} launch_data\n */\n set launch_data(launch_data) {\n !this.initialized ? this.#launch_data = launch_data : throwReadOnlyError();\n }\n\n /**\n * Getter for #comments\n * @return {string}\n */\n get comments() {\n return this.#comments;\n }\n\n /**\n * Setter for #comments\n * @param {string} comments\n */\n set comments(comments) {\n if (check12ValidFormat(comments, scorm12_regex.CMIString4096, true)) {\n this.#comments = comments;\n }\n }\n\n /**\n * Getter for #comments_from_lms\n * @return {string}\n */\n get comments_from_lms() {\n return this.#comments_from_lms;\n }\n\n /**\n * Setter for #comments_from_lms. Can only be called before initialization.\n * @param {string} comments_from_lms\n */\n set comments_from_lms(comments_from_lms) {\n !this.initialized ?\n this.#comments_from_lms = comments_from_lms :\n throwReadOnlyError();\n }\n\n /**\n * Adds the current session time to the existing total time.\n *\n * @return {string}\n */\n getCurrentTotalTime() {\n return this.core.getCurrentTotalTime(this.start_time);\n }\n}\n\n/**\n * Class representing the cmi.core object\n * @extends BaseCMI\n */\nclass CMICore extends BaseCMI {\n /**\n * Constructor for cmi.core\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #_children = scorm12_constants.core_children;\n #student_id = '';\n #student_name = '';\n #lesson_location = '';\n #credit = '';\n #lesson_status = 'not attempted';\n #entry = '';\n #total_time = '';\n #lesson_mode = 'normal';\n #exit = '';\n #session_time = '00:00:00';\n #suspend_data = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #student_id\n * @return {string}\n */\n get student_id() {\n return this.#student_id;\n }\n\n /**\n * Setter for #student_id. Can only be called before initialization.\n * @param {string} student_id\n */\n set student_id(student_id) {\n !this.initialized ? this.#student_id = student_id : throwReadOnlyError();\n }\n\n /**\n * Getter for #student_name\n * @return {string}\n */\n get student_name() {\n return this.#student_name;\n }\n\n /**\n * Setter for #student_name. Can only be called before initialization.\n * @param {string} student_name\n */\n set student_name(student_name) {\n !this.initialized ?\n this.#student_name = student_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_location\n * @return {string}\n */\n get lesson_location() {\n return this.#lesson_location;\n }\n\n /**\n * Setter for #lesson_location\n * @param {string} lesson_location\n */\n set lesson_location(lesson_location) {\n if (check12ValidFormat(lesson_location, scorm12_regex.CMIString256, true)) {\n this.#lesson_location = lesson_location;\n }\n }\n\n /**\n * Getter for #credit\n * @return {string}\n */\n get credit() {\n return this.#credit;\n }\n\n /**\n * Setter for #credit. Can only be called before initialization.\n * @param {string} credit\n */\n set credit(credit) {\n !this.initialized ? this.#credit = credit : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (this.initialized) {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus)) {\n this.#lesson_status = lesson_status;\n }\n } else {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n }\n\n /**\n * Getter for #entry\n * @return {string}\n */\n get entry() {\n return this.#entry;\n }\n\n /**\n * Setter for #entry. Can only be called before initialization.\n * @param {string} entry\n */\n set entry(entry) {\n !this.initialized ? this.#entry = entry : throwReadOnlyError();\n }\n\n /**\n * Getter for #total_time\n * @return {string}\n */\n get total_time() {\n return this.#total_time;\n }\n\n /**\n * Setter for #total_time. Can only be called before initialization.\n * @param {string} total_time\n */\n set total_time(total_time) {\n !this.initialized ? this.#total_time = total_time : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_mode\n * @return {string}\n */\n get lesson_mode() {\n return this.#lesson_mode;\n }\n\n /**\n * Setter for #lesson_mode. Can only be called before initialization.\n * @param {string} lesson_mode\n */\n set lesson_mode(lesson_mode) {\n !this.initialized ? this.#lesson_mode = lesson_mode : throwReadOnlyError();\n }\n\n /**\n * Getter for #exit. Should only be called during JSON export.\n * @return {*}\n */\n get exit() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#exit;\n }\n\n /**\n * Setter for #exit\n * @param {string} exit\n */\n set exit(exit) {\n if (check12ValidFormat(exit, scorm12_regex.CMIExit, true)) {\n this.#exit = exit;\n }\n }\n\n /**\n * Getter for #session_time. Should only be called during JSON export.\n * @return {*}\n */\n get session_time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#session_time;\n }\n\n /**\n * Setter for #session_time\n * @param {string} session_time\n */\n set session_time(session_time) {\n if (check12ValidFormat(session_time, scorm12_regex.CMITimespan)) {\n this.#session_time = session_time;\n }\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.#suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (check12ValidFormat(suspend_data, scorm12_regex.CMIString4096, true)) {\n this.#suspend_data = suspend_data;\n }\n }\n\n /**\n * Adds the current session time to the existing total time.\n * @param {Number} start_time\n * @return {string}\n */\n getCurrentTotalTime(start_time: Number) {\n let sessionTime = this.#session_time;\n const startTime = start_time;\n\n if (typeof startTime !== 'undefined' && startTime !== null) {\n const seconds = new Date().getTime() - startTime;\n sessionTime = Util.getSecondsAsHHMMSS(seconds / 1000);\n }\n\n return Utilities.addHHMMSSTimeStrings(\n this.#total_time,\n sessionTime,\n new RegExp(scorm12_regex.CMITimespan),\n );\n }\n\n /**\n * toJSON for cmi.core\n *\n * @return {\n * {\n * student_name: string,\n * entry: string,\n * exit: string,\n * score: CMIScore,\n * student_id: string,\n * lesson_mode: string,\n * lesson_location: string,\n * lesson_status: string,\n * credit: string,\n * session_time: *\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'student_id': this.student_id,\n 'student_name': this.student_name,\n 'lesson_location': this.lesson_location,\n 'credit': this.credit,\n 'lesson_status': this.lesson_status,\n 'entry': this.entry,\n 'lesson_mode': this.lesson_mode,\n 'exit': this.exit,\n 'session_time': this.session_time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives object\n * @extends CMIArray\n */\nclass CMIObjectives extends CMIArray {\n /**\n * Constructor for cmi.objectives\n */\n constructor() {\n super({\n children: scorm12_constants.objectives_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_data object\n * @extends BaseCMI\n */\nexport class CMIStudentData extends BaseCMI {\n #_children;\n #mastery_score = '';\n #max_time_allowed = '';\n #time_limit_action = '';\n\n /**\n * Constructor for cmi.student_data\n * @param {string} student_data_children\n */\n constructor(student_data_children) {\n super();\n\n this.#_children = student_data_children ?\n student_data_children :\n scorm12_constants.student_data_children;\n }\n\n /**\n * Getter for #_children\n * @return {*}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #master_score\n * @return {string}\n */\n get mastery_score() {\n return this.#mastery_score;\n }\n\n /**\n * Setter for #master_score. Can only be called before initialization.\n * @param {string} mastery_score\n */\n set mastery_score(mastery_score) {\n !this.initialized ?\n this.#mastery_score = mastery_score :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #max_time_allowed\n * @return {string}\n */\n get max_time_allowed() {\n return this.#max_time_allowed;\n }\n\n /**\n * Setter for #max_time_allowed. Can only be called before initialization.\n * @param {string} max_time_allowed\n */\n set max_time_allowed(max_time_allowed) {\n !this.initialized ?\n this.#max_time_allowed = max_time_allowed :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #time_limit_action\n * @return {string}\n */\n get time_limit_action() {\n return this.#time_limit_action;\n }\n\n /**\n * Setter for #time_limit_action. Can only be called before initialization.\n * @param {string} time_limit_action\n */\n set time_limit_action(time_limit_action) {\n !this.initialized ?\n this.#time_limit_action = time_limit_action :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data\n *\n * @return {\n * {\n * max_time_allowed: string,\n * time_limit_action: string,\n * mastery_score: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_preference object\n * @extends BaseCMI\n */\nexport class CMIStudentPreference extends BaseCMI {\n #_children;\n\n /**\n * Constructor for cmi.student_preference\n * @param {string} student_preference_children\n */\n constructor(student_preference_children) {\n super();\n\n this.#_children = student_preference_children ?\n student_preference_children :\n scorm12_constants.student_preference_children;\n }\n\n #audio = '';\n #language = '';\n #speed = '';\n #text = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #audio\n * @return {string}\n */\n get audio() {\n return this.#audio;\n }\n\n /**\n * Setter for #audio\n * @param {string} audio\n */\n set audio(audio) {\n if (check12ValidFormat(audio, scorm12_regex.CMISInteger) &&\n check12ValidRange(audio, scorm12_regex.audio_range)) {\n this.#audio = audio;\n }\n }\n\n /**\n * Getter for #language\n * @return {string}\n */\n get language() {\n return this.#language;\n }\n\n /**\n * Setter for #language\n * @param {string} language\n */\n set language(language) {\n if (check12ValidFormat(language, scorm12_regex.CMIString256)) {\n this.#language = language;\n }\n }\n\n /**\n * Getter for #speed\n * @return {string}\n */\n get speed() {\n return this.#speed;\n }\n\n /**\n * Setter for #speed\n * @param {string} speed\n */\n set speed(speed) {\n if (check12ValidFormat(speed, scorm12_regex.CMISInteger) &&\n check12ValidRange(speed, scorm12_regex.speed_range)) {\n this.#speed = speed;\n }\n }\n\n /**\n * Getter for #text\n * @return {string}\n */\n get text() {\n return this.#text;\n }\n\n /**\n * Setter for #text\n * @param {string} text\n */\n set text(text) {\n if (check12ValidFormat(text, scorm12_regex.CMISInteger) &&\n check12ValidRange(text, scorm12_regex.text_range)) {\n this.#text = text;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'speed': this.speed,\n 'text': this.text,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions object\n * @extends BaseCMI\n */\nclass CMIInteractions extends CMIArray {\n /**\n * Constructor for cmi.interactions\n */\n constructor() {\n super({\n children: scorm12_constants.interactions_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n object\n */\n constructor() {\n super();\n\n this.objectives = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.objectives_children,\n });\n this.correct_responses = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.correct_responses_children,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.objectives?.initialize();\n this.correct_responses?.initialize();\n }\n\n #id = '';\n #time = '';\n #type = '';\n #weighting = '';\n #student_response = '';\n #result = '';\n #latency = '';\n\n /**\n * Getter for #id. Should only be called during JSON export.\n * @return {*}\n */\n get id() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #time. Should only be called during JSON export.\n * @return {*}\n */\n get time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (check12ValidFormat(time, scorm12_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #type. Should only be called during JSON export.\n * @return {*}\n */\n get type() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#type;\n }\n\n /**\n * Setter for #type\n * @param {string} type\n */\n set type(type) {\n if (check12ValidFormat(type, scorm12_regex.CMIType)) {\n this.#type = type;\n }\n }\n\n /**\n * Getter for #weighting. Should only be called during JSON export.\n * @return {*}\n */\n get weighting() {\n return (!this.jsonString) ?\n throwWriteOnlyError() :\n this.#weighting;\n }\n\n /**\n * Setter for #weighting\n * @param {string} weighting\n */\n set weighting(weighting) {\n if (check12ValidFormat(weighting, scorm12_regex.CMIDecimal) &&\n check12ValidRange(weighting, scorm12_regex.weighting_range)) {\n this.#weighting = weighting;\n }\n }\n\n /**\n * Getter for #student_response. Should only be called during JSON export.\n * @return {*}\n */\n get student_response() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#student_response;\n }\n\n /**\n * Setter for #student_response\n * @param {string} student_response\n */\n set student_response(student_response) {\n if (check12ValidFormat(student_response, scorm12_regex.CMIFeedback, true)) {\n this.#student_response = student_response;\n }\n }\n\n /**\n * Getter for #result. Should only be called during JSON export.\n * @return {*}\n */\n get result() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#result;\n }\n\n /**\n * Setter for #result\n * @param {string} result\n */\n set result(result) {\n if (check12ValidFormat(result, scorm12_regex.CMIResult)) {\n this.#result = result;\n }\n }\n\n /**\n * Getter for #latency. Should only be called during JSON export.\n * @return {*}\n */\n get latency() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#latency;\n }\n\n /**\n * Setter for #latency\n * @param {string} latency\n */\n set latency(latency) {\n if (check12ValidFormat(latency, scorm12_regex.CMITimespan)) {\n this.#latency = latency;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n\n *\n * @return {\n * {\n * id: string,\n * time: string,\n * type: string,\n * weighting: string,\n * student_response: string,\n * result: string,\n * latency: string,\n * objectives: CMIArray,\n * correct_responses: CMIArray\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'time': this.time,\n 'type': this.type,\n 'weighting': this.weighting,\n 'student_response': this.student_response,\n 'result': this.result,\n 'latency': this.latency,\n 'objectives': this.objectives,\n 'correct_responses': this.correct_responses,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.objectives.n\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n #id = '';\n #status = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #status\n * @return {\"\"}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (check12ValidFormat(status, scorm12_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * toJSON for cmi.objectives.n\n * @return {\n * {\n * id: string,\n * status: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'status': this.status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n.objectives.n\n */\n constructor() {\n super();\n }\n\n #id = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n.objectives.n\n * @return {\n * {\n * id: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.correct_responses.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsCorrectResponsesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.correct_responses.n\n */\n constructor() {\n super();\n }\n\n #pattern = '';\n\n /**\n * Getter for #pattern\n * @return {string}\n */\n get pattern() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#pattern;\n }\n\n /**\n * Setter for #pattern\n * @param {string} pattern\n */\n set pattern(pattern) {\n if (check12ValidFormat(pattern, scorm12_regex.CMIFeedback, true)) {\n this.#pattern = pattern;\n }\n }\n\n /**\n * toJSON for cmi.interactions.correct_responses.n\n * @return {\n * {\n * pattern: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'pattern': this.pattern,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Navigation object\n */\nexport class NAV extends BaseCMI {\n /**\n * Constructor for NAV object\n */\n constructor() {\n super();\n }\n\n #event = '';\n\n /**\n * Getter for #event\n * @return {string}\n */\n get event() {\n return this.#event;\n }\n\n /**\n * Setter for #event\n * @param {string} event\n */\n set event(event) {\n if (check12ValidFormat(event, scorm12_regex.NAVEvent)) {\n this.#event = event;\n }\n }\n\n /**\n * toJSON for nav object\n * @return {\n * {\n * event: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'event': this.event,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport {\n BaseCMI,\n checkValidFormat,\n checkValidRange,\n CMIArray,\n CMIScore,\n} from './common';\nimport APIConstants from '../constants/api_constants';\nimport Regex from '../constants/regex';\nimport ErrorCodes from '../constants/error_codes';\nimport Responses from '../constants/response_constants';\nimport {Scorm2004ValidationError} from '../exceptions';\nimport * as Util from '../utilities';\n\nconst scorm2004_constants = APIConstants.scorm2004;\nconst scorm2004_error_codes = ErrorCodes.scorm2004;\nconst learner_responses = Responses.learner;\n\nconst scorm2004_regex = Regex.scorm2004;\n\n/**\n * Helper method for throwing Read Only error\n */\nfunction throwReadOnlyError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Write Only error\n */\nfunction throwWriteOnlyError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.WRITE_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Type Mismatch error\n */\nfunction throwTypeMismatchError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.TYPE_MISMATCH);\n}\n\n/**\n * Helper method for throwing Dependency Not Established error\n */\nfunction throwDependencyNotEstablishedError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.DEPENDENCY_NOT_ESTABLISHED);\n}\n\n/**\n * Helper method for throwing Dependency Not Established error\n */\nfunction throwGeneralSetError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.GENERAL_SET_FAILURE);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nfunction check2004ValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n scorm2004_error_codes.TYPE_MISMATCH,\n Scorm2004ValidationError,\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 * @return {boolean}\n */\nfunction check2004ValidRange(value: any, rangePattern: String) {\n return checkValidRange(\n value,\n rangePattern,\n scorm2004_error_codes.VALUE_OUT_OF_RANGE,\n Scorm2004ValidationError,\n );\n}\n\n/**\n * Class representing cmi object for SCORM 2004\n */\nexport class CMI extends BaseCMI {\n /**\n * Constructor for the SCORM 2004 cmi object\n * @param {boolean} initialized\n */\n constructor(initialized: boolean) {\n super();\n\n this.learner_preference = new CMILearnerPreference();\n this.score = new Scorm2004CMIScore();\n this.comments_from_learner = new CMICommentsFromLearner();\n this.comments_from_lms = new CMICommentsFromLMS();\n this.interactions = new CMIInteractions();\n this.objectives = new CMIObjectives();\n\n if (initialized) this.initialize();\n }\n\n #_version = '1.0';\n #_children = scorm2004_constants.cmi_children;\n #completion_status = 'unknown';\n #completion_threshold = '';\n #credit = 'credit';\n #entry = '';\n #exit = '';\n #launch_data = '';\n #learner_id = '';\n #learner_name = '';\n #location = '';\n #max_time_allowed = '';\n #mode = 'normal';\n #progress_measure = '';\n #scaled_passing_score = '';\n #session_time = 'PT0H0M0S';\n #success_status = 'unknown';\n #suspend_data = '';\n #time_limit_action = 'continue,no message';\n #total_time = '';\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.learner_preference?.initialize();\n this.score?.initialize();\n this.comments_from_learner?.initialize();\n this.comments_from_lms?.initialize();\n this.interactions?.initialize();\n this.objectives?.initialize();\n }\n\n /**\n * Getter for #_version\n * @return {string}\n * @private\n */\n get _version() {\n return this.#_version;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _version\n * @private\n */\n set _version(_version) {\n throwReadOnlyError();\n }\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 {number} _children\n * @private\n */\n set _children(_children) {\n throwReadOnlyError();\n }\n\n /**\n * Getter for #completion_status\n * @return {string}\n */\n get completion_status() {\n return this.#completion_status;\n }\n\n /**\n * Setter for #completion_status\n * @param {string} completion_status\n */\n set completion_status(completion_status) {\n if (check2004ValidFormat(completion_status, scorm2004_regex.CMICStatus)) {\n this.#completion_status = completion_status;\n }\n }\n\n /**\n * Getter for #completion_threshold\n * @return {string}\n */\n get completion_threshold() {\n return this.#completion_threshold;\n }\n\n /**\n * Setter for #completion_threshold. Can only be called before initialization.\n * @param {string} completion_threshold\n */\n set completion_threshold(completion_threshold) {\n !this.initialized ?\n this.#completion_threshold = completion_threshold :\n throwReadOnlyError();\n }\n\n /**\n * Setter 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 #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 #exit. Should only be called during JSON export.\n * @return {string}\n */\n get exit() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#exit;\n }\n\n /**\n * Getter for #exit\n * @param {string} exit\n */\n set exit(exit) {\n if (check2004ValidFormat(exit, scorm2004_regex.CMIExit, true)) {\n this.#exit = exit;\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 #learner_id\n * @return {string}\n */\n get learner_id() {\n return this.#learner_id;\n }\n\n /**\n * Setter for #learner_id. Can only be called before initialization.\n * @param {string} learner_id\n */\n set learner_id(learner_id) {\n !this.initialized ? this.#learner_id = learner_id : throwReadOnlyError();\n }\n\n /**\n * Getter for #learner_name\n * @return {string}\n */\n get learner_name() {\n return this.#learner_name;\n }\n\n /**\n * Setter for #learner_name. Can only be called before initialization.\n * @param {string} learner_name\n */\n set learner_name(learner_name) {\n !this.initialized ?\n this.#learner_name = learner_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (check2004ValidFormat(location, scorm2004_regex.CMIString1000)) {\n this.#location = location;\n }\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 #mode\n * @return {string}\n */\n get mode() {\n return this.#mode;\n }\n\n /**\n * Setter for #mode. Can only be called before initialization.\n * @param {string} mode\n */\n set mode(mode) {\n !this.initialized ? this.#mode = mode : throwReadOnlyError();\n }\n\n /**\n * Getter for #progress_measure\n * @return {string}\n */\n get progress_measure() {\n return this.#progress_measure;\n }\n\n /**\n * Setter for #progress_measure\n * @param {string} progress_measure\n */\n set progress_measure(progress_measure) {\n if (check2004ValidFormat(progress_measure, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(progress_measure, scorm2004_regex.progress_range)) {\n this.#progress_measure = progress_measure;\n }\n }\n\n /**\n * Getter for #scaled_passing_score\n * @return {string}\n */\n get scaled_passing_score() {\n return this.#scaled_passing_score;\n }\n\n /**\n * Setter for #scaled_passing_score. Can only be called before initialization.\n * @param {string} scaled_passing_score\n */\n set scaled_passing_score(scaled_passing_score) {\n !this.initialized ?\n this.#scaled_passing_score = scaled_passing_score :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #session_time. Should only be called during JSON export.\n * @return {string}\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 (check2004ValidFormat(session_time, scorm2004_regex.CMITimespan)) {\n this.#session_time = session_time;\n }\n }\n\n /**\n * Getter for #success_status\n * @return {string}\n */\n get success_status() {\n return this.#success_status;\n }\n\n /**\n * Setter for #success_status\n * @param {string} success_status\n */\n set success_status(success_status) {\n if (check2004ValidFormat(success_status, scorm2004_regex.CMISStatus)) {\n this.#success_status = success_status;\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 (check2004ValidFormat(suspend_data, scorm2004_regex.CMIString64000,\n true)) {\n this.#suspend_data = suspend_data;\n }\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 * 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 * Adds the current session time to the existing total time.\n *\n * @return {string} ISO8601 Duration\n */\n getCurrentTotalTime() {\n let sessionTime = this.#session_time;\n const startTime = this.start_time;\n\n if (typeof startTime !== 'undefined' && startTime !== null) {\n const seconds = new Date().getTime() - startTime;\n sessionTime = Util.getSecondsAsISODuration(seconds / 1000);\n }\n\n return Util.addTwoDurations(\n this.#total_time,\n sessionTime,\n scorm2004_regex.CMITimespan,\n );\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * comments_from_learner: CMICommentsFromLearner,\n * comments_from_lms: CMICommentsFromLMS,\n * completion_status: string,\n * completion_threshold: string,\n * credit: string,\n * entry: string,\n * exit: string,\n * interactions: CMIInteractions,\n * launch_data: string,\n * learner_id: string,\n * learner_name: string,\n * learner_preference: CMILearnerPreference,\n * location: string,\n * max_time_allowed: string,\n * mode: string,\n * objectives: CMIObjectives,\n * progress_measure: string,\n * scaled_passing_score: string,\n * score: Scorm2004CMIScore,\n * session_time: string,\n * success_status: string,\n * suspend_data: string,\n * time_limit_action: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comments_from_learner': this.comments_from_learner,\n 'comments_from_lms': this.comments_from_lms,\n 'completion_status': this.completion_status,\n 'completion_threshold': this.completion_threshold,\n 'credit': this.credit,\n 'entry': this.entry,\n 'exit': this.exit,\n 'interactions': this.interactions,\n 'launch_data': this.launch_data,\n 'learner_id': this.learner_id,\n 'learner_name': this.learner_name,\n 'learner_preference': this.learner_preference,\n 'location': this.location,\n 'max_time_allowed': this.max_time_allowed,\n 'mode': this.mode,\n 'objectives': this.objectives,\n 'progress_measure': this.progress_measure,\n 'scaled_passing_score': this.scaled_passing_score,\n 'score': this.score,\n 'session_time': this.session_time,\n 'success_status': this.success_status,\n 'suspend_data': this.suspend_data,\n 'time_limit_action': this.time_limit_action,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.learner_preference object\n */\nclass CMILearnerPreference extends BaseCMI {\n #_children = scorm2004_constants.student_preference_children;\n #audio_level = '1';\n #language = '';\n #delivery_speed = '1';\n #audio_captioning = '0';\n\n /**\n * Constructor for cmi.learner_preference\n */\n constructor() {\n super();\n }\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 throwReadOnlyError();\n }\n\n /**\n * Getter for #audio_level\n * @return {string}\n */\n get audio_level() {\n return this.#audio_level;\n }\n\n /**\n * Setter for #audio_level\n * @param {string} audio_level\n */\n set audio_level(audio_level) {\n if (check2004ValidFormat(audio_level, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(audio_level, scorm2004_regex.audio_range)) {\n this.#audio_level = audio_level;\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 (check2004ValidFormat(language, scorm2004_regex.CMILang)) {\n this.#language = language;\n }\n }\n\n /**\n * Getter for #delivery_speed\n * @return {string}\n */\n get delivery_speed() {\n return this.#delivery_speed;\n }\n\n /**\n * Setter for #delivery_speed\n * @param {string} delivery_speed\n */\n set delivery_speed(delivery_speed) {\n if (check2004ValidFormat(delivery_speed, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(delivery_speed, scorm2004_regex.speed_range)) {\n this.#delivery_speed = delivery_speed;\n }\n }\n\n /**\n * Getter for #audio_captioning\n * @return {string}\n */\n get audio_captioning() {\n return this.#audio_captioning;\n }\n\n /**\n * Setter for #audio_captioning\n * @param {string} audio_captioning\n */\n set audio_captioning(audio_captioning) {\n if (check2004ValidFormat(audio_captioning, scorm2004_regex.CMISInteger) &&\n check2004ValidRange(audio_captioning, scorm2004_regex.text_range)) {\n this.#audio_captioning = audio_captioning;\n }\n }\n\n /**\n * toJSON for cmi.learner_preference\n *\n * @return {\n * {\n * audio_level: string,\n * language: string,\n * delivery_speed: string,\n * audio_captioning: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio_level': this.audio_level,\n 'language': this.language,\n 'delivery_speed': this.delivery_speed,\n 'audio_captioning': this.audio_captioning,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.interactions object\n */\nclass CMIInteractions extends CMIArray {\n /**\n * Constructor for cmi.objectives Array\n */\n constructor() {\n super({\n children: scorm2004_constants.interactions_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.objectives object\n */\nclass CMIObjectives extends CMIArray {\n /**\n * Constructor for cmi.objectives Array\n */\n constructor() {\n super({\n children: scorm2004_constants.objectives_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_lms object\n */\nclass CMICommentsFromLMS extends CMIArray {\n /**\n * Constructor for cmi.comments_from_lms Array\n */\n constructor() {\n super({\n children: scorm2004_constants.comments_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_learner object\n */\nclass CMICommentsFromLearner extends CMIArray {\n /**\n * Constructor for cmi.comments_from_learner Array\n */\n constructor() {\n super({\n children: scorm2004_constants.comments_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.interaction.n object\n */\nexport class CMIInteractionsObject extends BaseCMI {\n #id = '';\n #type = '';\n #timestamp = '';\n #weighting = '';\n #learner_response = '';\n #result = '';\n #latency = '';\n #description = '';\n\n /**\n * Constructor for cmi.interaction.n\n */\n constructor() {\n super();\n\n this.objectives = new CMIArray({\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n children: scorm2004_constants.objectives_children,\n });\n this.correct_responses = new CMIArray({\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n children: scorm2004_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 /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #type\n * @return {string}\n */\n get type() {\n return this.#type;\n }\n\n /**\n * Setter for #type\n * @param {string} type\n */\n set type(type) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(type, scorm2004_regex.CMIType)) {\n this.#type = type;\n }\n }\n }\n\n /**\n * Getter for #timestamp\n * @return {string}\n */\n get timestamp() {\n return this.#timestamp;\n }\n\n /**\n * Setter for #timestamp\n * @param {string} timestamp\n */\n set timestamp(timestamp) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(timestamp, scorm2004_regex.CMITime)) {\n this.#timestamp = timestamp;\n }\n }\n }\n\n /**\n * Getter for #weighting\n * @return {string}\n */\n get weighting() {\n return this.#weighting;\n }\n\n /**\n * Setter for #weighting\n * @param {string} weighting\n */\n set weighting(weighting) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(weighting, scorm2004_regex.CMIDecimal)) {\n this.#weighting = weighting;\n }\n }\n }\n\n /**\n * Getter for #learner_response\n * @return {string}\n */\n get learner_response() {\n return this.#learner_response;\n }\n\n /**\n * Setter for #learner_response. Does type validation to make sure response\n * matches SCORM 2004's spec\n * @param {string} learner_response\n */\n set learner_response(learner_response) {\n if (this.initialized && (this.#type === '' || this.#id === '')) {\n throwDependencyNotEstablishedError();\n } else {\n let nodes = [];\n const response_type = learner_responses[this.type];\n if (response_type) {\n if (response_type?.delimiter) {\n nodes = learner_response.split(response_type.delimiter);\n } else {\n nodes[0] = learner_response;\n }\n\n if ((nodes.length > 0) && (nodes.length <= response_type.max)) {\n const formatRegex = new RegExp(response_type.format);\n for (let i = 0; i < nodes.length; i++) {\n if (response_type?.delimiter2) {\n const values = nodes[i].split(response_type.delimiter2);\n if (values.length === 2) {\n if (!values[0].match(formatRegex)) {\n throwTypeMismatchError();\n } else {\n if (!values[1].match(new RegExp(response_type.format2))) {\n throwTypeMismatchError();\n }\n }\n } else {\n throwTypeMismatchError();\n }\n } else {\n if (!nodes[i].match(formatRegex)) {\n throwTypeMismatchError();\n } else {\n if (nodes[i] !== '' && response_type.unique) {\n for (let j = 0; j < i; j++) {\n if (nodes[i] === nodes[j]) {\n throwTypeMismatchError();\n }\n }\n }\n }\n }\n }\n } else {\n throwGeneralSetError();\n }\n\n this.#learner_response = learner_response;\n } else {\n throwTypeMismatchError();\n }\n }\n }\n\n /**\n * Getter for #result\n * @return {string}\n */\n get result() {\n return this.#result;\n }\n\n /**\n * Setter for #result\n * @param {string} result\n */\n set result(result) {\n if (check2004ValidFormat(result, scorm2004_regex.CMIResult)) {\n this.#result = result;\n }\n }\n\n /**\n * Getter for #latency\n * @return {string}\n */\n get latency() {\n return this.#latency;\n }\n\n /**\n * Setter for #latency\n * @param {string} latency\n */\n set latency(latency) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(latency, scorm2004_regex.CMITimespan)) {\n this.#latency = latency;\n }\n }\n }\n\n /**\n * Getter for #description\n * @return {string}\n */\n get description() {\n return this.#description;\n }\n\n /**\n * Setter for #description\n * @param {string} description\n */\n set description(description) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(description, scorm2004_regex.CMILangString250,\n true)) {\n this.#description = description;\n }\n }\n }\n\n /**\n * toJSON for cmi.interactions.n\n *\n * @return {\n * {\n * id: string,\n * type: string,\n * objectives: CMIArray,\n * timestamp: string,\n * correct_responses: CMIArray,\n * weighting: string,\n * learner_response: string,\n * result: string,\n * latency: string,\n * description: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'type': this.type,\n 'objectives': this.objectives,\n 'timestamp': this.timestamp,\n 'weighting': this.weighting,\n 'learner_response': this.learner_response,\n 'result': this.result,\n 'latency': this.latency,\n 'description': this.description,\n 'correct_responses': this.correct_responses,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.objectives.n object\n */\nexport class CMIObjectivesObject extends BaseCMI {\n #id = '';\n #success_status = 'unknown';\n #completion_status = 'unknown';\n #progress_measure = '';\n #description = '';\n\n /**\n * Constructor for cmi.objectives.n\n */\n constructor() {\n super();\n\n this.score = new Scorm2004CMIScore();\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 /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #success_status\n * @return {string}\n */\n get success_status() {\n return this.#success_status;\n }\n\n /**\n * Setter for #success_status\n * @param {string} success_status\n */\n set success_status(success_status) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(success_status, scorm2004_regex.CMISStatus)) {\n this.#success_status = success_status;\n }\n }\n }\n\n /**\n * Getter for #completion_status\n * @return {string}\n */\n get completion_status() {\n return this.#completion_status;\n }\n\n /**\n * Setter for #completion_status\n * @param {string} completion_status\n */\n set completion_status(completion_status) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(completion_status, scorm2004_regex.CMICStatus)) {\n this.#completion_status = completion_status;\n }\n }\n }\n\n /**\n * Getter for #progress_measure\n * @return {string}\n */\n get progress_measure() {\n return this.#progress_measure;\n }\n\n /**\n * Setter for #progress_measure\n * @param {string} progress_measure\n */\n set progress_measure(progress_measure) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(progress_measure, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(progress_measure,\n scorm2004_regex.progress_range)) {\n this.#progress_measure = progress_measure;\n }\n }\n }\n\n /**\n * Getter for #description\n * @return {string}\n */\n get description() {\n return this.#description;\n }\n\n /**\n * Setter for #description\n * @param {string} description\n */\n set description(description) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(description, scorm2004_regex.CMILangString250,\n true)) {\n this.#description = description;\n }\n }\n }\n\n /**\n * toJSON for cmi.objectives.n\n *\n * @return {\n * {\n * id: string,\n * success_status: string,\n * completion_status: string,\n * progress_measure: string,\n * description: string,\n * score: Scorm2004CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'success_status': this.success_status,\n 'completion_status': this.completion_status,\n 'progress_measure': this.progress_measure,\n 'description': this.description,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi *.score object\n */\nclass Scorm2004CMIScore extends CMIScore {\n #scaled = '';\n\n /**\n * Constructor for cmi *.score\n */\n constructor() {\n super(\n {\n score_children: scorm2004_constants.score_children,\n max: '',\n invalidErrorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n invalidTypeCode: scorm2004_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm2004_error_codes.VALUE_OUT_OF_RANGE,\n decimalRegex: scorm2004_regex.CMIDecimal,\n errorClass: Scorm2004ValidationError,\n });\n }\n\n /**\n * Getter for #scaled\n * @return {string}\n */\n get scaled() {\n return this.#scaled;\n }\n\n /**\n * Setter for #scaled\n * @param {string} scaled\n */\n set scaled(scaled) {\n if (check2004ValidFormat(scaled, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(scaled, scorm2004_regex.scaled_range)) {\n this.#scaled = scaled;\n }\n }\n\n /**\n * toJSON for cmi *.score\n *\n * @return {\n * {\n * scaled: string,\n * raw: string,\n * min: string,\n * max: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'scaled': this.scaled,\n 'raw': super.raw,\n 'min': super.min,\n 'max': super.max,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_learner.n and cmi.comments_from_lms.n object\n */\nexport class CMICommentsObject extends BaseCMI {\n #comment = '';\n #location = '';\n #timestamp = '';\n #readOnlyAfterInit;\n\n /**\n * Constructor for cmi.comments_from_learner.n and cmi.comments_from_lms.n\n * @param {boolean} readOnlyAfterInit\n */\n constructor(readOnlyAfterInit = false) {\n super();\n this.#comment = '';\n this.#location = '';\n this.#timestamp = '';\n this.#readOnlyAfterInit = readOnlyAfterInit;\n }\n\n /**\n * Getter for #comment\n * @return {string}\n */\n get comment() {\n return this.#comment;\n }\n\n /**\n * Setter for #comment\n * @param {string} comment\n */\n set comment(comment) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(comment, scorm2004_regex.CMILangString4000,\n true)) {\n this.#comment = comment;\n }\n }\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(location, scorm2004_regex.CMIString250)) {\n this.#location = location;\n }\n }\n }\n\n /**\n * Getter for #timestamp\n * @return {string}\n */\n get timestamp() {\n return this.#timestamp;\n }\n\n /**\n * Setter for #timestamp\n * @param {string} timestamp\n */\n set timestamp(timestamp) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(timestamp, scorm2004_regex.CMITime)) {\n this.#timestamp = timestamp;\n }\n }\n }\n\n /**\n * toJSON for cmi.comments_from_learner.n object\n * @return {\n * {\n * comment: string,\n * location: string,\n * timestamp: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comment': this.comment,\n 'location': this.location,\n 'timestamp': this.timestamp,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.interactions.n.objectives.n object\n */\nexport class CMIInteractionsObjectivesObject extends BaseCMI {\n #id = '';\n\n /**\n * Constructor for cmi.interactions.n.objectives.n\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\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 2004's cmi.interactions.n.correct_responses.n object\n */\nexport class CMIInteractionsCorrectResponsesObject extends BaseCMI {\n #pattern = '';\n\n /**\n * Constructor for cmi.interactions.n.correct_responses.n\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #pattern\n * @return {string}\n */\n get pattern() {\n return this.#pattern;\n }\n\n /**\n * Setter for #pattern\n * @param {string} pattern\n */\n set pattern(pattern) {\n if (check2004ValidFormat(pattern, scorm2004_regex.CMIFeedback)) {\n this.#pattern = pattern;\n }\n }\n\n /**\n * toJSON cmi.interactions.n.correct_responses.n object\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 representing SCORM 2004's adl object\n */\nexport class ADL extends BaseCMI {\n /**\n * Constructor for adl\n */\n constructor() {\n super();\n\n this.nav = new ADLNav();\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.nav?.initialize();\n }\n\n /**\n * toJSON for adl\n * @return {\n * {\n * nav: {\n * request: string\n * }\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'nav': this.nav,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's adl.nav object\n */\nclass ADLNav extends BaseCMI {\n #request = '_none_';\n\n /**\n * Constructor for adl.nav\n */\n constructor() {\n super();\n\n this.request_valid = new ADLNavRequestValid();\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.request_valid?.initialize();\n }\n\n /**\n * Getter for #request\n * @return {string}\n */\n get request() {\n return this.#request;\n }\n\n /**\n * Setter for #request\n * @param {string} request\n */\n set request(request) {\n if (check2004ValidFormat(request, scorm2004_regex.NAVEvent)) {\n this.#request = request;\n }\n }\n\n /**\n * toJSON for adl.nav\n *\n * @return {\n * {\n * request: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'request': this.request,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's adl.nav.request_valid object\n */\nclass ADLNavRequestValid extends BaseCMI {\n #continue = 'unknown';\n #previous = 'unknown';\n choice = class {\n /**\n * Check if target is valid\n * @param {*} _target\n * @return {string}\n */\n _isTargetValid = (_target) => 'unknown';\n };\n jump = class {\n /**\n * Check if target is valid\n * @param {*} _target\n * @return {string}\n */\n _isTargetValid = (_target) => 'unknown';\n };\n\n /**\n * Constructor for adl.nav.request_valid\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #continue\n * @return {string}\n */\n get continue() {\n return this.#continue;\n }\n\n /**\n * Setter for #continue. Just throws an error.\n * @param {*} _\n */\n set continue(_) {\n throwReadOnlyError();\n }\n\n /**\n * Getter for #previous\n * @return {string}\n */\n get previous() {\n return this.#previous;\n }\n\n /**\n * Setter for #previous. Just throws an error.\n * @param {*} _\n */\n set previous(_) {\n throwReadOnlyError();\n }\n\n /**\n * toJSON for adl.nav.request_valid\n *\n * @return {\n * {\n * previous: string,\n * continue: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'previous': this.previous,\n 'continue': this.continue,\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","const ValidLanguages = {\n 'aa': 'aa', 'ab': 'ab', 'ae': 'ae', 'af': 'af', 'ak': 'ak', 'am': 'am',\n 'an': 'an', 'ar': 'ar', 'as': 'as', 'av': 'av', 'ay': 'ay', 'az': 'az',\n 'ba': 'ba', 'be': 'be', 'bg': 'bg', 'bh': 'bh', 'bi': 'bi', 'bm': 'bm',\n 'bn': 'bn', 'bo': 'bo', 'br': 'br', 'bs': 'bs', 'ca': 'ca', 'ce': 'ce',\n 'ch': 'ch', 'co': 'co', 'cr': 'cr', 'cs': 'cs', 'cu': 'cu', 'cv': 'cv',\n 'cy': 'cy', 'da': 'da', 'de': 'de', 'dv': 'dv', 'dz': 'dz', 'ee': 'ee',\n 'el': 'el', 'en': 'en', 'eo': 'eo', 'es': 'es', 'et': 'et', 'eu': 'eu',\n 'fa': 'fa', 'ff': 'ff', 'fi': 'fi', 'fj': 'fj', 'fo': 'fo', 'fr': 'fr',\n 'fy': 'fy', 'ga': 'ga', 'gd': 'gd', 'gl': 'gl', 'gn': 'gn', 'gu': 'gu',\n 'gv': 'gv', 'ha': 'ha', 'he': 'he', 'hi': 'hi', 'ho': 'ho', 'hr': 'hr',\n 'ht': 'ht', 'hu': 'hu', 'hy': 'hy', 'hz': 'hz', 'ia': 'ia', 'id': 'id',\n 'ie': 'ie', 'ig': 'ig', 'ii': 'ii', 'ik': 'ik', 'io': 'io', 'is': 'is',\n 'it': 'it', 'iu': 'iu', 'ja': 'ja', 'jv': 'jv', 'ka': 'ka', 'kg': 'kg',\n 'ki': 'ki', 'kj': 'kj', 'kk': 'kk', 'kl': 'kl', 'km': 'km', 'kn': 'kn',\n 'ko': 'ko', 'kr': 'kr', 'ks': 'ks', 'ku': 'ku', 'kv': 'kv', 'kw': 'kw',\n 'ky': 'ky', 'la': 'la', 'lb': 'lb', 'lg': 'lg', 'li': 'li', 'ln': 'ln',\n 'lo': 'lo', 'lt': 'lt', 'lu': 'lu', 'lv': 'lv', 'mg': 'mg', 'mh': 'mh',\n 'mi': 'mi', 'mk': 'mk', 'ml': 'ml', 'mn': 'mn', 'mo': 'mo', 'mr': 'mr',\n 'ms': 'ms', 'mt': 'mt', 'my': 'my', 'na': 'na', 'nb': 'nb', 'nd': 'nd',\n 'ne': 'ne', 'ng': 'ng', 'nl': 'nl', 'nn': 'nn', 'no': 'no', 'nr': 'nr',\n 'nv': 'nv', 'ny': 'ny', 'oc': 'oc', 'oj': 'oj', 'om': 'om', 'or': 'or',\n 'os': 'os', 'pa': 'pa', 'pi': 'pi', 'pl': 'pl', 'ps': 'ps', 'pt': 'pt',\n 'qu': 'qu', 'rm': 'rm', 'rn': 'rn', 'ro': 'ro', 'ru': 'ru', 'rw': 'rw',\n 'sa': 'sa', 'sc': 'sc', 'sd': 'sd', 'se': 'se', 'sg': 'sg', 'sh': 'sh',\n 'si': 'si', 'sk': 'sk', 'sl': 'sl', 'sm': 'sm', 'sn': 'sn', 'so': 'so',\n 'sq': 'sq', 'sr': 'sr', 'ss': 'ss', 'st': 'st', 'su': 'su', 'sv': 'sv',\n 'sw': 'sw', 'ta': 'ta', 'te': 'te', 'tg': 'tg', 'th': 'th', 'ti': 'ti',\n 'tk': 'tk', 'tl': 'tl', 'tn': 'tn', 'to': 'to', 'tr': 'tr', 'ts': 'ts',\n 'tt': 'tt', 'tw': 'tw', 'ty': 'ty', 'ug': 'ug', 'uk': 'uk', 'ur': 'ur',\n 'uz': 'uz', 've': 've', 'vi': 'vi', 'vo': 'vo', 'wa': 'wa', 'wo': 'wo',\n 'xh': 'xh', 'yi': 'yi', 'yo': 'yo', 'za': 'za', 'zh': 'zh', 'zu': 'zu',\n 'aar': 'aar', 'abk': 'abk', 'ave': 'ave', 'afr': 'afr', 'aka': 'aka',\n 'amh': 'amh', 'arg': 'arg', 'ara': 'ara', 'asm': 'asm', 'ava': 'ava',\n 'aym': 'aym', 'aze': 'aze', 'bak': 'bak', 'bel': 'bel', 'bul': 'bul',\n 'bih': 'bih', 'bis': 'bis', 'bam': 'bam', 'ben': 'ben', 'tib': 'tib',\n 'bod': 'bod', 'bre': 'bre', 'bos': 'bos', 'cat': 'cat', 'che': 'che',\n 'cha': 'cha', 'cos': 'cos', 'cre': 'cre', 'cze': 'cze', 'ces': 'ces',\n 'chu': 'chu', 'chv': 'chv', 'wel': 'wel', 'cym': 'cym', 'dan': 'dan',\n 'ger': 'ger', 'deu': 'deu', 'div': 'div', 'dzo': 'dzo', 'ewe': 'ewe',\n 'gre': 'gre', 'ell': 'ell', 'eng': 'eng', 'epo': 'epo', 'spa': 'spa',\n 'est': 'est', 'baq': 'baq', 'eus': 'eus', 'per': 'per', 'fas': 'fas',\n 'ful': 'ful', 'fin': 'fin', 'fij': 'fij', 'fao': 'fao', 'fre': 'fre',\n 'fra': 'fra', 'fry': 'fry', 'gle': 'gle', 'gla': 'gla', 'glg': 'glg',\n 'grn': 'grn', 'guj': 'guj', 'glv': 'glv', 'hau': 'hau', 'heb': 'heb',\n 'hin': 'hin', 'hmo': 'hmo', 'hrv': 'hrv', 'hat': 'hat', 'hun': 'hun',\n 'arm': 'arm', 'hye': 'hye', 'her': 'her', 'ina': 'ina', 'ind': 'ind',\n 'ile': 'ile', 'ibo': 'ibo', 'iii': 'iii', 'ipk': 'ipk', 'ido': 'ido',\n 'ice': 'ice', 'isl': 'isl', 'ita': 'ita', 'iku': 'iku', 'jpn': 'jpn',\n 'jav': 'jav', 'geo': 'geo', 'kat': 'kat', 'kon': 'kon', 'kik': 'kik',\n 'kua': 'kua', 'kaz': 'kaz', 'kal': 'kal', 'khm': 'khm', 'kan': 'kan',\n 'kor': 'kor', 'kau': 'kau', 'kas': 'kas', 'kur': 'kur', 'kom': 'kom',\n 'cor': 'cor', 'kir': 'kir', 'lat': 'lat', 'ltz': 'ltz', 'lug': 'lug',\n 'lim': 'lim', 'lin': 'lin', 'lao': 'lao', 'lit': 'lit', 'lub': 'lub',\n 'lav': 'lav', 'mlg': 'mlg', 'mah': 'mah', 'mao': 'mao', 'mri': 'mri',\n 'mac': 'mac', 'mkd': 'mkd', 'mal': 'mal', 'mon': 'mon', 'mol': 'mol',\n 'mar': 'mar', 'may': 'may', 'msa': 'msa', 'mlt': 'mlt', 'bur': 'bur',\n 'mya': 'mya', 'nau': 'nau', 'nob': 'nob', 'nde': 'nde', 'nep': 'nep',\n 'ndo': 'ndo', 'dut': 'dut', 'nld': 'nld', 'nno': 'nno', 'nor': 'nor',\n 'nbl': 'nbl', 'nav': 'nav', 'nya': 'nya', 'oci': 'oci', 'oji': 'oji',\n 'orm': 'orm', 'ori': 'ori', 'oss': 'oss', 'pan': 'pan', 'pli': 'pli',\n 'pol': 'pol', 'pus': 'pus', 'por': 'por', 'que': 'que', 'roh': 'roh',\n 'run': 'run', 'rum': 'rum', 'ron': 'ron', 'rus': 'rus', 'kin': 'kin',\n 'san': 'san', 'srd': 'srd', 'snd': 'snd', 'sme': 'sme', 'sag': 'sag',\n 'slo': 'slo', 'sin': 'sin', 'slk': 'slk', 'slv': 'slv', 'smo': 'smo',\n 'sna': 'sna', 'som': 'som', 'alb': 'alb', 'sqi': 'sqi', 'srp': 'srp',\n 'ssw': 'ssw', 'sot': 'sot', 'sun': 'sun', 'swe': 'swe', 'swa': 'swa',\n 'tam': 'tam', 'tel': 'tel', 'tgk': 'tgk', 'tha': 'tha', 'tir': 'tir',\n 'tuk': 'tuk', 'tgl': 'tgl', 'tsn': 'tsn', 'ton': 'ton', 'tur': 'tur',\n 'tso': 'tso', 'tat': 'tat', 'twi': 'twi', 'tah': 'tah', 'uig': 'uig',\n 'ukr': 'ukr', 'urd': 'urd', 'uzb': 'uzb', 'ven': 'ven', 'vie': 'vie',\n 'vol': 'vol', 'wln': 'wln', 'wol': 'wol', 'xho': 'xho', 'yid': 'yid',\n 'yor': 'yor', 'zha': 'zha', 'chi': 'chi', 'zho': 'zho', 'zul': 'zul',\n};\n\nexport default ValidLanguages;\n","// @flow\n\nconst scorm12 = {\n CMIString256: '^.*$',\n CMIString4096: '^.*$',\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: '^.*$',\n CMIFeedback: '^.*$', // 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\nimport Regex from './regex';\n\nconst scorm2004_regex = Regex.scorm2004;\n\nconst learner = {\n 'true-false': {\n format: '^true$|^false$',\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'choice': {\n format: scorm2004_regex.CMILongIdentifier,\n max: 36,\n delimiter: '[,]',\n unique: true,\n },\n 'fill-in': {\n format: scorm2004_regex.CMILangString250,\n max: 10,\n delimiter: '[,]',\n unique: false,\n },\n 'long-fill-in': {\n format: scorm2004_regex.CMILangString4000,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'matching': {\n format: scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIShortIdentifier,\n max: 36,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n },\n 'performance': {\n format: '^$|' + scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIDecimal + '|^$|' +\n scorm2004_regex.CMIShortIdentifier,\n max: 250,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n },\n 'sequencing': {\n format: scorm2004_regex.CMIShortIdentifier,\n max: 36,\n delimiter: '[,]',\n unique: false,\n },\n 'likert': {\n format: scorm2004_regex.CMIShortIdentifier,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'numeric': {\n format: scorm2004_regex.CMIDecimal,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'other': {\n format: scorm2004_regex.CMIString4000,\n max: 1,\n delimiter: '',\n unique: false,\n },\n};\n\nconst correct = {\n 'true-false': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: '^true$|^false$',\n limit: 1,\n },\n 'choice': {\n max: 36,\n delimiter: '[,]',\n unique: true,\n duplicate: false,\n format: scorm2004_regex.CMILongIdentifier,\n },\n 'fill-in': {\n max: 10,\n delimiter: '[,]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMILangString250cr,\n },\n 'long-fill-in': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: true,\n format: scorm2004_regex.CMILangString4000,\n },\n 'matching': {\n max: 36,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIShortIdentifier,\n },\n 'performance': {\n max: 250,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n duplicate: false,\n format: '^$|' + scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIDecimal + '|^$|' +\n scorm2004_regex.CMIShortIdentifier,\n },\n 'sequencing': {\n max: 36,\n delimiter: '[,]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n },\n 'likert': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n limit: 1,\n },\n 'numeric': {\n max: 2,\n delimiter: '[:]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIDecimal,\n limit: 1,\n },\n 'other': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIString4000,\n limit: 1,\n },\n};\n\nconst Responses = {\n learner: learner,\n correct: correct,\n};\n\nexport default Responses;\n","// @flow\n\nimport APIConstants from './constants/api_constants';\n\nconst scorm12_errors = APIConstants.scorm12.error_descriptions;\nconst aicc_errors = APIConstants.aicc.error_descriptions;\nconst scorm2004_errors = APIConstants.scorm2004.error_descriptions;\n\n/**\n * Base Validation Exception\n */\nexport class ValidationError extends Error {\n /**\n * Constructor to take in an error message and code\n * @param {number} errorCode\n * @param {string} errorMessage\n * @param {string} detailedMessage\n */\n constructor(errorCode: number, errorMessage: String, detailedMessage: String) {\n super(errorMessage);\n this.#errorCode = errorCode;\n this.#errorMessage = errorMessage;\n this.#detailedMessage = detailedMessage;\n }\n\n #errorCode;\n #errorMessage;\n #detailedMessage;\n\n /**\n * Getter for #errorCode\n * @return {number}\n */\n get errorCode() {\n return this.#errorCode;\n }\n\n /**\n * Getter for #errorMessage\n * @return {string}\n */\n get errorMessage() {\n return this.#errorMessage;\n }\n\n /**\n * Getter for #detailedMessage\n * @return {string}\n */\n get detailedMessage() {\n return this.#detailedMessage;\n }\n}\n\n/**\n * SCORM 1.2 Validation Error\n */\nexport class Scorm12ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm12_errors, String(errorCode))) {\n super(errorCode, scorm12_errors[String(errorCode)].basicMessage, scorm12_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm12_errors['101'].basicMessage, scorm12_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * AICC Validation Error\n */\nexport class AICCValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(aicc_errors, String(errorCode))) {\n super(errorCode, aicc_errors[String(errorCode)].basicMessage, aicc_errors[String(errorCode)].detailMessage);\n } else {\n super(101, aicc_errors['101'].basicMessage, aicc_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * SCORM 2004 Validation Error\n */\nexport class Scorm2004ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {\n super(errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm2004_errors['101'].basicMessage, scorm2004_errors['101'].detailMessage);\n }\n }\n}\n","// @flow\nexport const SECONDS_PER_SECOND = 1.0;\nexport const SECONDS_PER_MINUTE = 60;\nexport const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE;\nexport const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;\n\nconst designations = [\n ['D', SECONDS_PER_DAY],\n ['H', SECONDS_PER_HOUR],\n ['M', SECONDS_PER_MINUTE],\n ['S', SECONDS_PER_SECOND],\n];\n\n/**\n * Converts a Number to a String of HH:MM:SS\n *\n * @param {Number} totalSeconds\n * @return {string}\n */\nexport function getSecondsAsHHMMSS(totalSeconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!totalSeconds || totalSeconds <= 0) {\n return '00:00:00';\n }\n\n const hours = Math.floor(totalSeconds / SECONDS_PER_HOUR);\n\n const dateObj = new Date(totalSeconds * 1000);\n const minutes = dateObj.getUTCMinutes();\n // make sure we add any possible decimal value\n const seconds = dateObj.getSeconds();\n const ms = totalSeconds % 1.0;\n let msStr = '';\n if (countDecimals(ms) > 0) {\n if (countDecimals(ms) > 2) {\n msStr = ms.toFixed(2);\n } else {\n msStr = String(ms);\n }\n msStr = '.' + msStr.split('.')[1];\n }\n\n return (hours + ':' + minutes + ':' + seconds).replace(/\\b\\d\\b/g,\n '0$&') + msStr;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {Number} seconds\n * @return {String}\n */\nexport function getSecondsAsISODuration(seconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!seconds || seconds <= 0) {\n return 'PT0S';\n }\n\n let duration = 'P';\n let remainder = seconds;\n\n designations.forEach(([sign, current_seconds]) => {\n let value = Math.floor(remainder / current_seconds);\n\n remainder = remainder % current_seconds;\n if (countDecimals(remainder) > 2) {\n remainder = Number(Number(remainder).toFixed(2));\n }\n // If we have anything left in the remainder, and we're currently adding\n // seconds to the duration, go ahead and add the decimal to the seconds\n if (sign === 'S' && remainder > 0) {\n value += remainder;\n }\n\n if (value) {\n if ((duration.indexOf('D') > 0 ||\n sign === 'H' || sign === 'M' || sign === 'S') &&\n duration.indexOf('T') === -1) {\n duration += 'T';\n }\n duration += `${value}${sign}`;\n }\n });\n\n return duration;\n}\n\n/**\n * Calculate the number of seconds from HH:MM:SS.DDDDDD\n *\n * @param {string} timeString\n * @param {RegExp} timeRegex\n * @return {number}\n */\nexport function getTimeAsSeconds(timeString: String, timeRegex: RegExp) {\n if (!timeString || typeof timeString !== 'string' ||\n !timeString.match(timeRegex)) {\n return 0;\n }\n const parts = timeString.split(':');\n const hours = Number(parts[0]);\n const minutes = Number(parts[1]);\n const seconds = Number(parts[2]);\n return (hours * 3600) + (minutes * 60) + seconds;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {string} duration\n * @param {RegExp} durationRegex\n * @return {number}\n */\nexport function getDurationAsSeconds(duration: String, durationRegex: RegExp) {\n if (!duration || !duration.match(durationRegex)) {\n return 0;\n }\n\n const [, years, months, , days, hours, minutes, seconds] = new RegExp(\n durationRegex).exec(duration) || [];\n\n let result = 0.0;\n\n result += (Number(seconds) * 1.0 || 0.0);\n result += (Number(minutes) * 60.0 || 0.0);\n result += (Number(hours) * 3600.0 || 0.0);\n result += (Number(days) * (60 * 60 * 24.0) || 0.0);\n result += (Number(years) * (60 * 60 * 24 * 365.0) || 0.0);\n\n return result;\n}\n\n/**\n * Adds together two ISO8601 Duration strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} durationRegex\n * @return {string}\n */\nexport function addTwoDurations(\n first: String,\n second: String,\n durationRegex: RegExp) {\n return getSecondsAsISODuration(\n getDurationAsSeconds(first, durationRegex) +\n getDurationAsSeconds(second, durationRegex),\n );\n}\n\n/**\n * Add together two HH:MM:SS.DD strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} timeRegex\n * @return {string}\n */\nexport function addHHMMSSTimeStrings(\n first: String,\n second: String,\n timeRegex: RegExp) {\n return getSecondsAsHHMMSS(\n getTimeAsSeconds(first, timeRegex) +\n getTimeAsSeconds(\n second, timeRegex),\n );\n}\n\n/**\n * Flatten a JSON object down to string paths for each values\n * @param {object} data\n * @return {object}\n */\nexport function flatten(data) {\n const result = {};\n\n /**\n * Recurse through the object\n * @param {*} cur\n * @param {*} prop\n */\n function recurse(cur, prop) {\n if (Object(cur) !== cur) {\n result[prop] = cur;\n } else if (Array.isArray(cur)) {\n for (let i = 0, l = cur.length; i < l; i++) {\n recurse(cur[i], prop + '[' + i + ']');\n if (l === 0) result[prop] = [];\n }\n } else {\n let isEmpty = true;\n for (const p in cur) {\n if ({}.hasOwnProperty.call(cur, p)) {\n isEmpty = false;\n recurse(cur[p], prop ? prop + '.' + p : p);\n }\n }\n if (isEmpty && prop) result[prop] = {};\n }\n }\n\n recurse(data, '');\n return result;\n}\n\n/**\n * Un-flatten a flat JSON object\n * @param {object} data\n * @return {object}\n */\nexport function unflatten(data) {\n 'use strict';\n if (Object(data) !== data || Array.isArray(data)) return data;\n const regex = /\\.?([^.[\\]]+)|\\[(\\d+)]/g;\n const result = {};\n for (const p in data) {\n if ({}.hasOwnProperty.call(data, p)) {\n let cur = result;\n let prop = '';\n let m = regex.exec(p);\n while (m) {\n cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));\n prop = m[2] || m[1];\n m = regex.exec(p);\n }\n cur[prop] = data[p];\n }\n }\n return result[''] || result;\n}\n\n/**\n * Counts the number of decimal places\n * @param {number} num\n * @return {number}\n */\nexport function countDecimals(num: number) {\n if (Math.floor(num) === num || String(num).indexOf('.') < 0) return 0;\n const parts = num.toString().split('.')[1];\n return parts.length || 0;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Scorm2004API from '../Scorm2004API';\nimport Scorm12API from '../Scorm12API';\nimport AICC from '../AICC';\n\nwindow.Scorm12API = Scorm12API;\nwindow.Scorm2004API = Scorm2004API;\nwindow.AICC = AICC;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectProto","prototype","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","value","type","isObjectLike","isSymbol","call","other","valueOf","replace","isBinary","test","slice","module","exports","Scorm12API","CMI","CMIAttemptRecordsObject","CMIEvaluationCommentsObject","CMITriesObject","NAV","AICC","settings","finalSettings","mastery_override","cmi","nav","CMIElement","foundFirstIndex","newChild","stringMatches","newAPI","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","BaseAPI","error_codes","autocommit","autocommitSeconds","asyncCommit","sendBeaconCommit","lmsCommitUrl","dataCommitFormat","commitRequestDataType","autoProgress","logLevel","LOG_LEVEL_ERROR","selfReportSessionTime","alwaysSendTotalTime","strict_errors","xhrHeaders","xhrWithCredentials","responseHandler","xhr","JSON","parse","responseText","hasOwnProperty","status","SCORM_TRUE","errorCode","SCORM_FALSE","requestHandler","commitObject","onLogMessage","messageLevel","logMessage","console","error","LOG_LEVEL_WARNING","warn","LOG_LEVEL_INFO","info","LOG_LEVEL_DEBUG","debug","log","fetchKeepalive","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","apiLogLevel","callbackName","initializeMessage","terminationMessage","returnValue","isInitialized","throwSCORMError","INITIALIZED","isTerminated","TERMINATED","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","CMIErrorCode","getLmsErrorMessageDetails","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","str","tester","match","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","methodName","scorm2004","structure","split","invalidErrorMessage","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","_checkObjectHasProperty","validateCorrectResponse","index","isNaN","item","childArray","getChildElement","initialized","initialize","push","_foundFirstIndex","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","listenerName","callback","listenerFunctions","listenerSplit","removeIndex","findIndex","obj","splice","filter","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","json","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","key","sort","b","d","forEach","element","loadFromJSON","startingData","currentCMIElement","constructor","stringify","renderCMIToJSONString","_terminateCommit","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","fetch","method","body","headers","credentials","keepalive","when","ScheduledCommit","API","wrapper","bind","commit","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","Utilities","scorm12_constants","LMSInitialize","lmsInitialize","LMSFinish","lmsFinish","LMSGetValue","lmsGetValue","LMSSetValue","lmsSetValue","LMSCommit","lmsCommit","LMSGetLastError","lmsGetLastError","LMSGetErrorString","lmsGetErrorString","LMSGetDiagnostic","lmsGetDiagnostic","terminate","event","getValue","setValue","getLastError","getErrorString","getDiagnostic","_commonSetCMIValue","_commonGetCMIValue","detail","basicMessage","detailMessage","error_descriptions","terminateCommit","cmiExport","renderCMIToJSONObject","core","total_time","getCurrentTotalTime","flattened","flatten","originalStatus","lesson_status","lesson_mode","credit","student_data","mastery_score","score","raw","parseFloat","renderCommitCMI","processHttpRequest","ADL","CMICommentsObject","Responses","ValidLanguages","Regex","scorm2004_constants","scorm2004_error_codes","correct_responses","correct","scorm2004_regex","Scorm2004API","correct_response","current_index","found","count","_count","adl","Initialize","Terminate","lmsTerminate","GetValue","SetValue","Commit","GetLastError","GetErrorString","GetDiagnostic","request","parts","interaction","interactions","DEPENDENCY_NOT_ESTABLISHED","checkDuplicateChoiceResponse","response_type","checkValidResponseType","GENERAL_SET_FAILURE","interaction_type","nodes","delimiter","checkCorrectResponseValue","interaction_count","response","pattern","pattern_index","limit","duplicate","checkDuplicatedPattern","formatRegex","RegExp","format","removeCorrectResponsePrefixes","delimiter2","values","matches","TYPE_MISMATCH","format2","unique","node","seenOrder","seenCase","seenLang","prefixRegex","langMatches","CMILangcr","lang","toLowerCase","mode","completion_threshold","progress_measure","completion_status","scaled_passing_score","scaled","success_status","navRequest","encodeURIComponent","Scorm12CMI","BaseCMI","checkValidFormat","CMIScore","AICCValidationError","aicc_constants","aicc","aicc_regex","aicc_error_codes","throwReadOnlyError","checkAICCValidFormat","regexPattern","allowEmptyString","cmi_children","student_preference","AICCStudentPreferences","AICCCMIStudentData","student_demographics","CMIStudentDemographics","evaluation","CMIEvaluation","paths","CMIPaths","jsonString","suspend_data","launch_data","comments","comments_from_lms","objectives","CMIEvaluationComments","children","comments_children","INVALID_SET_VALUE","errorClass","student_preference_children","windows","lesson_type","CMIString256","text_color","text_location","text_size","video","audio","language","speed","text","CMIStudentPreference","student_data_children","tries","CMITries","tries_during_lesson","max_time_allowed","time_limit_action","CMIStudentData","student_demographics_children","city","clazz","company","country","experience","familiar_name","instructor_name","title","native_language","state","street_address","telephone","years_experience","class","paths_children","CMIPathsObject","location_id","date","CMITime","CMIStatus2","why_left","time_in_element","tries_children","score_children","score_range","invalidTypeCode","invalidRangeCode","VALUE_OUT_OF_RANGE","CMIAttemptRecords","attempt_records_children","content","location","scorm12_regex","checkValidRange","rangePattern","ranges","getTime","decimalRegex","CMIDecimal","_children","Scorm12ValidationError","Util","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwInvalidValueError","check12ValidFormat","check12ValidRange","CMICore","CMIObjectives","CMIInteractions","_version","CMIString4096","start_time","core_children","student_id","student_name","lesson_location","CMIStatus","entry","exit","CMIExit","session_time","CMITimespan","sessionTime","startTime","seconds","getSecondsAsHHMMSS","addHHMMSSTimeStrings","objectives_children","CMISInteger","audio_range","speed_range","text_range","interactions_children","correct_responses_children","id","CMIIdentifier","CMIType","weighting","weighting_range","student_response","CMIFeedback","CMIResult","latency","NAVEvent","Scorm2004ValidationError","learner_responses","learner","throwTypeMismatchError","throwDependencyNotEstablishedError","throwGeneralSetError","check2004ValidFormat","check2004ValidRange","learner_preference","CMILearnerPreference","Scorm2004CMIScore","comments_from_learner","CMICommentsFromLearner","CMICommentsFromLMS","CMICStatus","learner_id","learner_name","CMIString1000","progress_range","CMISStatus","CMIString64000","getSecondsAsISODuration","addTwoDurations","audio_level","CMILang","delivery_speed","audio_captioning","CMILongIdentifier","timestamp","learner_response","description","CMILangString250","scaled_range","readOnlyAfterInit","comment","CMILangString4000","CMIString250","ADLNav","request_valid","ADLNavRequestValid","_target","_","previous","continue","LOG_LEVEL_NONE","INITIALIZATION_FAILED","TERMINATION_FAILURE","ARGUMENT_ERROR","GENERAL_GET_FAILURE","GENERAL_COMMIT_FAILURE","UNIMPLEMENTED_ELEMENT","MULTIPLE_TERMINATIONS","CMIInteger","CMIIndex","CMIString200","CMIString4000","CMILangString250cr","CMIShortIdentifier","CMIIndexStore","NAVBoolean","NAVTarget","scorm12_errors","aicc_errors","scorm2004_errors","errorMessage","detailedMessage","SECONDS_PER_SECOND","SECONDS_PER_MINUTE","SECONDS_PER_HOUR","SECONDS_PER_DAY","designations","totalSeconds","hours","floor","dateObj","minutes","getUTCMinutes","getSeconds","ms","msStr","countDecimals","toFixed","duration","remainder","sign","current_seconds","getTimeAsSeconds","timeString","timeRegex","getDurationAsSeconds","durationRegex","exec","years","months","days","first","second","data","recurse","cur","prop","isArray","l","isEmpty","p","regex","m","num","window"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"scorm-again.js","mappings":"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","sources":["webpack://scorm-again/./node_modules/lodash.debounce/index.js","webpack://scorm-again/./src/AICC.js","webpack://scorm-again/./src/BaseAPI.js","webpack://scorm-again/./src/Scorm12API.js","webpack://scorm-again/./src/Scorm2004API.js","webpack://scorm-again/./src/cmi/aicc_cmi.js","webpack://scorm-again/./src/cmi/common.js","webpack://scorm-again/./src/cmi/scorm12_cmi.js","webpack://scorm-again/./src/cmi/scorm2004_cmi.js","webpack://scorm-again/./src/constants/api_constants.js","webpack://scorm-again/./src/constants/error_codes.js","webpack://scorm-again/./src/constants/language_constants.js","webpack://scorm-again/./src/constants/regex.js","webpack://scorm-again/./src/constants/response_constants.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/scorm-again.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 Scorm12API from './Scorm12API';\nimport {\n CMI,\n CMIAttemptRecordsObject,\n CMIEvaluationCommentsObject,\n CMITriesObject,\n} from './cmi/aicc_cmi';\nimport {NAV} from './cmi/scorm12_cmi';\n\n/**\n * The AICC API class\n */\nexport default class AICC extends Scorm12API {\n /**\n * Constructor to create AICC API object\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(finalSettings);\n\n this.cmi = new CMI();\n this.nav = new NAV();\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {any} value\n * @param {boolean} foundFirstIndex\n * @return {object}\n */\n getChildElement(CMIElement, value, foundFirstIndex) {\n let newChild = super.getChildElement(CMIElement, value, foundFirstIndex);\n\n if (!newChild) {\n if (this.stringMatches(CMIElement, 'cmi\\\\.evaluation\\\\.comments\\\\.\\\\d+')) {\n newChild = new CMIEvaluationCommentsObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.tries\\\\.\\\\d+')) {\n newChild = new CMITriesObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.student_data\\\\.attempt_records\\\\.\\\\d+')) {\n newChild = new CMIAttemptRecordsObject();\n }\n }\n\n return newChild;\n }\n\n /**\n * Replace the whole API with another\n *\n * @param {AICC} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n this.nav = newAPI.nav;\n }\n}\n","// @flow\nimport {CMIArray} from './cmi/common';\nimport {ValidationError} from './exceptions';\nimport ErrorCodes from './constants/error_codes';\nimport APIConstants from './constants/api_constants';\nimport {unflatten} from './utilities';\nimport debounce from 'lodash.debounce';\n\nconst global_constants = APIConstants.global;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Base API class for AICC, SCORM 1.2, and SCORM 2004. Should be considered\n * abstract, and never initialized on it's own.\n */\nexport default class BaseAPI {\n #timeout;\n #error_codes;\n #settings = {\n autocommit: false,\n autocommitSeconds: 10,\n asyncCommit: false,\n sendBeaconCommit: false,\n lmsCommitUrl: false,\n dataCommitFormat: 'json', // valid formats are 'json' or 'flattened', 'params'\n commitRequestDataType: 'application/json;charset=UTF-8',\n autoProgress: false,\n logLevel: global_constants.LOG_LEVEL_ERROR,\n selfReportSessionTime: false,\n alwaysSendTotalTime: false,\n strict_errors: true,\n xhrHeaders: {},\n xhrWithCredentials: false,\n responseHandler: function(xhr) {\n let result;\n if (typeof xhr !== 'undefined') {\n result = JSON.parse(xhr.responseText);\n if (result === null || !{}.hasOwnProperty.call(result, 'result')) {\n result = {};\n if (xhr.status === 200) {\n result.result = global_constants.SCORM_TRUE;\n result.errorCode = 0;\n } else {\n result.result = global_constants.SCORM_FALSE;\n result.errorCode = 101;\n }\n }\n }\n return result;\n },\n requestHandler: function(commitObject) {\n return commitObject;\n },\n onLogMessage: function(messageLevel, logMessage) {\n switch (messageLevel) {\n case global_constants.LOG_LEVEL_ERROR:\n console.error(logMessage);\n break;\n case global_constants.LOG_LEVEL_WARNING:\n console.warn(logMessage);\n break;\n case global_constants.LOG_LEVEL_INFO:\n console.info(logMessage);\n break;\n case global_constants.LOG_LEVEL_DEBUG:\n if (console.debug) {\n console.debug(logMessage);\n } else {\n console.log(logMessage);\n }\n break;\n }\n },\n fetchKeepalive: function() {\n return true;\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.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: settings.fetchKeepalive(),\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 BaseAPI from './BaseAPI';\nimport {\n ADL,\n CMI,\n CMICommentsObject,\n CMIInteractionsCorrectResponsesObject,\n CMIInteractionsObject,\n CMIInteractionsObjectivesObject,\n CMIObjectivesObject,\n} from './cmi/scorm2004_cmi';\nimport * as Utilities from './utilities';\nimport APIConstants from './constants/api_constants';\nimport ErrorCodes from './constants/error_codes';\nimport Responses from './constants/response_constants';\nimport ValidLanguages from './constants/language_constants';\nimport Regex from './constants/regex';\n\nconst scorm2004_constants = APIConstants.scorm2004;\nconst global_constants = APIConstants.global;\nconst scorm2004_error_codes = ErrorCodes.scorm2004;\nconst correct_responses = Responses.correct;\nconst scorm2004_regex = Regex.scorm2004;\n\n/**\n * API class for SCORM 2004\n */\nexport default class Scorm2004API extends BaseAPI {\n #version: '1.0';\n\n /**\n * Constructor for SCORM 2004 API\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(scorm2004_error_codes, finalSettings);\n\n this.cmi = new CMI();\n this.adl = new ADL();\n\n // Rename functions to match 2004 Spec and expose to modules\n this.Initialize = this.lmsInitialize;\n this.Terminate = this.lmsTerminate;\n this.GetValue = this.lmsGetValue;\n this.SetValue = this.lmsSetValue;\n this.Commit = this.lmsCommit;\n this.GetLastError = this.lmsGetLastError;\n this.GetErrorString = this.lmsGetErrorString;\n this.GetDiagnostic = this.lmsGetDiagnostic;\n }\n\n /**\n * Getter for #version\n * @return {string}\n */\n get version() {\n return this.#version;\n }\n\n /**\n * @return {string} bool\n */\n lmsInitialize() {\n this.cmi.initialize();\n return this.initialize('Initialize');\n }\n\n /**\n * @return {string} bool\n */\n lmsTerminate() {\n const result = this.terminate('Terminate', true);\n\n if (result === global_constants.SCORM_TRUE) {\n if (this.adl.nav.request !== '_none_') {\n switch (this.adl.nav.request) {\n case 'continue':\n this.processListeners('SequenceNext');\n break;\n case 'previous':\n this.processListeners('SequencePrevious');\n break;\n case 'choice':\n this.processListeners('SequenceChoice');\n break;\n case 'exit':\n this.processListeners('SequenceExit');\n break;\n case 'exitAll':\n this.processListeners('SequenceExitAll');\n break;\n case 'abandon':\n this.processListeners('SequenceAbandon');\n break;\n case 'abandonAll':\n this.processListeners('SequenceAbandonAll');\n break;\n }\n } else if (this.settings.autoProgress) {\n this.processListeners('SequenceNext');\n }\n }\n\n return result;\n }\n\n /**\n * @param {string} CMIElement\n * @return {string}\n */\n lmsGetValue(CMIElement) {\n return this.getValue('GetValue', true, CMIElement);\n }\n\n /**\n * @param {string} CMIElement\n * @param {any} value\n * @return {string}\n */\n lmsSetValue(CMIElement, value) {\n return this.setValue('SetValue', 'Commit', true, CMIElement, value);\n }\n\n /**\n * Orders LMS to store all content parameters\n *\n * @return {string} bool\n */\n lmsCommit() {\n return this.commit('Commit');\n }\n\n /**\n * Returns last error code\n *\n * @return {string}\n */\n lmsGetLastError() {\n return this.getLastError('GetLastError');\n }\n\n /**\n * Returns the errorNumber error description\n *\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n lmsGetErrorString(CMIErrorCode) {\n return this.getErrorString('GetErrorString', CMIErrorCode);\n }\n\n /**\n * Returns a comprehensive description of the errorNumber error.\n *\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n lmsGetDiagnostic(CMIErrorCode) {\n return this.getDiagnostic('GetDiagnostic', CMIErrorCode);\n }\n\n /**\n * Sets a value on the CMI Object\n *\n * @param {string} CMIElement\n * @param {any} value\n * @return {string}\n */\n setCMIValue(CMIElement, value) {\n return this._commonSetCMIValue('SetValue', true, CMIElement, value);\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {any} value\n * @param {boolean} foundFirstIndex\n * @return {any}\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 const parts = CMIElement.split('.');\n const index = Number(parts[2]);\n const interaction = this.cmi.interactions.childArray[index];\n if (this.isInitialized()) {\n if (!interaction.type) {\n this.throwSCORMError(\n scorm2004_error_codes.DEPENDENCY_NOT_ESTABLISHED);\n } else {\n this.checkDuplicateChoiceResponse(interaction, value);\n\n const response_type = correct_responses[interaction.type];\n if (response_type) {\n this.checkValidResponseType(response_type, value, interaction.type);\n } else {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Incorrect Response Type: ' + interaction.type);\n }\n }\n }\n if (this.lastErrorCode === 0) {\n newChild = new CMIInteractionsCorrectResponsesObject();\n }\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 } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.comments_from_learner\\\\.\\\\d+')) {\n newChild = new CMICommentsObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.comments_from_lms\\\\.\\\\d+')) {\n newChild = new CMICommentsObject(true);\n }\n\n return newChild;\n }\n\n /**\n * Checks for valid response types\n * @param {object} response_type\n * @param {any} value\n * @param {string} interaction_type\n */\n checkValidResponseType(response_type, value, interaction_type) {\n let nodes = [];\n if (response_type?.delimiter) {\n nodes = String(value).split(response_type.delimiter);\n } else {\n nodes[0] = value;\n }\n\n if (nodes.length > 0 && nodes.length <= response_type.max) {\n this.checkCorrectResponseValue(interaction_type, nodes, value);\n } else if (nodes.length > response_type.max) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Pattern Too Long');\n }\n }\n\n /**\n * Checks for duplicate 'choice' responses.\n * @param {CMIInteractionsObject} interaction\n * @param {any} value\n */\n checkDuplicateChoiceResponse(interaction, value) {\n const interaction_count = interaction.correct_responses._count;\n if (interaction.type === 'choice') {\n for (let i = 0; i < interaction_count && this.lastErrorCode ===\n 0; i++) {\n const response = interaction.correct_responses.childArray[i];\n if (response.pattern === value) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE);\n }\n }\n }\n }\n\n /**\n * Validate correct response.\n * @param {string} CMIElement\n * @param {*} value\n */\n validateCorrectResponse(CMIElement, value) {\n const parts = CMIElement.split('.');\n const index = Number(parts[2]);\n const pattern_index = Number(parts[4]);\n const interaction = this.cmi.interactions.childArray[index];\n\n const interaction_count = interaction.correct_responses._count;\n this.checkDuplicateChoiceResponse(interaction, value);\n\n const response_type = correct_responses[interaction.type];\n if (typeof response_type.limit === 'undefined' || interaction_count <=\n response_type.limit) {\n this.checkValidResponseType(response_type, value, interaction.type);\n\n if (this.lastErrorCode === 0 &&\n (!response_type.duplicate ||\n !this.checkDuplicatedPattern(interaction.correct_responses,\n pattern_index, value)) ||\n (this.lastErrorCode === 0 && value === '')) {\n // do nothing, we want the inverse\n } else {\n if (this.lastErrorCode === 0) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Pattern Already Exists');\n }\n }\n } else {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Collection Limit Reached');\n }\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('GetValue', true, CMIElement);\n }\n\n /**\n * Returns the message that corresponds to errorNumber.\n *\n * @param {(string|number)} errorNumber\n * @param {boolean} detail\n * @return {string}\n */\n getLmsErrorMessageDetails(errorNumber, detail) {\n let basicMessage = '';\n let detailMessage = '';\n\n // Set error number to string since inconsistent from modules if string or number\n errorNumber = String(errorNumber);\n if (scorm2004_constants.error_descriptions[errorNumber]) {\n basicMessage = scorm2004_constants.error_descriptions[errorNumber].basicMessage;\n detailMessage = scorm2004_constants.error_descriptions[errorNumber].detailMessage;\n }\n\n return detail ? detailMessage : basicMessage;\n }\n\n /**\n * Check to see if a correct_response value has been duplicated\n * @param {CMIArray} correct_response\n * @param {number} current_index\n * @param {*} value\n * @return {boolean}\n */\n checkDuplicatedPattern = (correct_response, current_index, value) => {\n let found = false;\n const count = correct_response._count;\n for (let i = 0; i < count && !found; i++) {\n if (i !== current_index && correct_response.childArray[i] === value) {\n found = true;\n }\n }\n return found;\n };\n\n /**\n * Checks for a valid correct_response value\n * @param {string} interaction_type\n * @param {Array} nodes\n * @param {*} value\n */\n checkCorrectResponseValue(interaction_type, nodes, value) {\n const response = correct_responses[interaction_type];\n const formatRegex = new RegExp(response.format);\n for (let i = 0; i < nodes.length && this.lastErrorCode === 0; i++) {\n if (interaction_type.match(\n '^(fill-in|long-fill-in|matching|performance|sequencing)$')) {\n nodes[i] = this.removeCorrectResponsePrefixes(nodes[i]);\n }\n\n if (response?.delimiter2) {\n const values = nodes[i].split(response.delimiter2);\n if (values.length === 2) {\n const matches = values[0].match(formatRegex);\n if (!matches) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n } else {\n if (!values[1].match(new RegExp(response.format2))) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n } else {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n } else {\n const matches = nodes[i].match(formatRegex);\n if ((!matches && value !== '') ||\n (!matches && interaction_type === 'true-false')) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n } else {\n if (interaction_type === 'numeric' && nodes.length > 1) {\n if (Number(nodes[0]) > Number(nodes[1])) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n } else {\n if (nodes[i] !== '' && response.unique) {\n for (let j = 0; j < i && this.lastErrorCode === 0; j++) {\n if (nodes[i] === nodes[j]) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Remove prefixes from correct_response\n * @param {string} node\n * @return {*}\n */\n removeCorrectResponsePrefixes(node) {\n let seenOrder = false;\n let seenCase = false;\n let seenLang = false;\n\n const prefixRegex = new RegExp(\n '^({(lang|case_matters|order_matters)=([^}]+)})');\n let matches = node.match(prefixRegex);\n let langMatches = null;\n while (matches) {\n switch (matches[2]) {\n case 'lang':\n langMatches = node.match(scorm2004_regex.CMILangcr);\n if (langMatches) {\n const lang = langMatches[3];\n if (lang !== undefined && lang.length > 0) {\n if (ValidLanguages[lang.toLowerCase()] === undefined) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n }\n seenLang = true;\n break;\n case 'case_matters':\n if (!seenLang && !seenOrder && !seenCase) {\n if (matches[3] !== 'true' && matches[3] !== 'false') {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n\n seenCase = true;\n break;\n case 'order_matters':\n if (!seenCase && !seenLang && !seenOrder) {\n if (matches[3] !== 'true' && matches[3] !== 'false') {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n\n seenOrder = true;\n break;\n default:\n break;\n }\n node = node.substr(matches[1].length);\n matches = node.match(prefixRegex);\n }\n\n return node;\n }\n\n /**\n * Replace the whole API with another\n * @param {Scorm2004API} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n this.adl = newAPI.adl;\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.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 if (this.cmi.mode === 'normal') {\n if (this.cmi.credit === 'credit') {\n if (this.cmi.completion_threshold && this.cmi.progress_measure) {\n if (this.cmi.progress_measure >= this.cmi.completion_threshold) {\n console.debug('Setting Completion Status: Completed');\n this.cmi.completion_status = 'completed';\n } else {\n console.debug('Setting Completion Status: Incomplete');\n this.cmi.completion_status = 'incomplete';\n }\n }\n if (this.cmi.scaled_passing_score && this.cmi.score.scaled) {\n if (this.cmi.score.scaled >= this.cmi.scaled_passing_score) {\n console.debug('Setting Success Status: Passed');\n this.cmi.success_status = 'passed';\n } else {\n console.debug('Setting Success Status: Failed');\n this.cmi.success_status = 'failed';\n }\n }\n }\n }\n }\n\n let navRequest = false;\n if (this.adl.nav.request !== (this.startingData?.adl?.nav?.request) &&\n this.adl.nav.request !== '_none_') {\n this.adl.nav.request = encodeURIComponent(this.adl.nav.request);\n navRequest = true;\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: ' +\n (terminateCommit ? 'yes' : 'no') + '): ');\n console.debug(commitObject);\n }\n if (this.settings.lmsCommitUrl) {\n const result = this.processHttpRequest(this.settings.lmsCommitUrl,\n commitObject, terminateCommit);\n\n // check if this is a sequencing call, and then call the necessary JS\n {\n if (navRequest && result.navRequest !== undefined &&\n result.navRequest !== '') {\n Function(`\"use strict\";(() => { ${result.navRequest} })()`)();\n }\n }\n return result;\n } else {\n return global_constants.SCORM_TRUE;\n }\n }\n}\n","import * as Scorm12CMI from './scorm12_cmi';\nimport {BaseCMI, checkValidFormat, CMIArray, CMIScore} from './common';\nimport APIConstants from '../constants/api_constants';\nimport Regex from '../constants/regex';\nimport ErrorCodes from '../constants/error_codes';\nimport {AICCValidationError} from '../exceptions';\n\nconst aicc_constants = APIConstants.aicc;\nconst aicc_regex = Regex.aicc;\nconst aicc_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nfunction throwReadOnlyError() {\n throw new AICCValidationError(aicc_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nfunction checkAICCValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n aicc_error_codes.TYPE_MISMATCH,\n AICCValidationError,\n allowEmptyString\n );\n}\n\n/**\n * CMI Class for AICC\n */\nexport class CMI extends Scorm12CMI.CMI {\n /**\n * Constructor for AICC CMI object\n * @param {boolean} initialized\n */\n constructor(initialized: boolean) {\n super(aicc_constants.cmi_children);\n\n if (initialized) this.initialize();\n\n this.student_preference = new AICCStudentPreferences();\n this.student_data = new AICCCMIStudentData();\n this.student_demographics = new CMIStudentDemographics();\n this.evaluation = new CMIEvaluation();\n this.paths = new CMIPaths();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.student_preference?.initialize();\n this.student_data?.initialize();\n this.student_demographics?.initialize();\n this.evaluation?.initialize();\n this.paths?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions,\n * paths: CMIPaths\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'student_demographics': this.student_demographics,\n 'interactions': this.interactions,\n 'evaluation': this.evaluation,\n 'paths': this.paths,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * AICC Evaluation object\n */\nclass CMIEvaluation extends BaseCMI {\n /**\n * Constructor for AICC Evaluation object\n */\n constructor() {\n super();\n\n this.comments = new CMIEvaluationComments();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.comments?.initialize();\n }\n\n /**\n * toJSON for cmi.evaluation object\n * @return {{comments: CMIEvaluationComments}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comments': this.comments,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing AICC's cmi.evaluation.comments object\n */\nclass CMIEvaluationComments extends CMIArray {\n /**\n * Constructor for AICC Evaluation Comments object\n */\n constructor() {\n super({\n children: aicc_constants.comments_children,\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n });\n }\n}\n\n/**\n * StudentPreferences class for AICC\n */\nclass AICCStudentPreferences extends Scorm12CMI.CMIStudentPreference {\n /**\n * Constructor for AICC Student Preferences object\n */\n constructor() {\n super(aicc_constants.student_preference_children);\n\n this.windows = new CMIArray({\n errorCode: aicc_error_codes.INVALID_SET_VALUE,\n errorClass: AICCValidationError,\n children: '',\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.windows?.initialize();\n }\n\n #lesson_type = '';\n #text_color = '';\n #text_location = '';\n #text_size = '';\n #video = '';\n\n /**\n * Getter for #lesson_type\n * @return {string}\n */\n get lesson_type(): string {\n return this.#lesson_type;\n }\n\n /**\n * Setter for #lesson_type\n * @param {string} lesson_type\n */\n set lesson_type(lesson_type: string) {\n if (checkAICCValidFormat(lesson_type, aicc_regex.CMIString256)) {\n this.#lesson_type = lesson_type;\n }\n }\n\n /**\n * Getter for #text_color\n * @return {string}\n */\n get text_color(): string {\n return this.#text_color;\n }\n\n /**\n * Setter for #text_color\n * @param {string} text_color\n */\n set text_color(text_color: string) {\n if (checkAICCValidFormat(text_color, aicc_regex.CMIString256)) {\n this.#text_color = text_color;\n }\n }\n\n /**\n * Getter for #text_location\n * @return {string}\n */\n get text_location(): string {\n return this.#text_location;\n }\n\n /**\n * Setter for #text_location\n * @param {string} text_location\n */\n set text_location(text_location: string) {\n if (checkAICCValidFormat(text_location, aicc_regex.CMIString256)) {\n this.#text_location = text_location;\n }\n }\n\n /**\n * Getter for #text_size\n * @return {string}\n */\n get text_size(): string {\n return this.#text_size;\n }\n\n /**\n * Setter for #text_size\n * @param {string} text_size\n */\n set text_size(text_size: string) {\n if (checkAICCValidFormat(text_size, aicc_regex.CMIString256)) {\n this.#text_size = text_size;\n }\n }\n\n /**\n * Getter for #video\n * @return {string}\n */\n get video(): string {\n return this.#video;\n }\n\n /**\n * Setter for #video\n * @param {string} video\n */\n set video(video: string) {\n if (checkAICCValidFormat(video, aicc_regex.CMIString256)) {\n this.#video = video;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'lesson_type': this.lesson_type,\n 'speed': this.speed,\n 'text': this.text,\n 'text_color': this.text_color,\n 'text_location': this.text_location,\n 'text_size': this.text_size,\n 'video': this.video,\n 'windows': this.windows,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * StudentData class for AICC\n */\nclass AICCCMIStudentData extends Scorm12CMI.CMIStudentData {\n /**\n * Constructor for AICC StudentData object\n */\n constructor() {\n super(aicc_constants.student_data_children);\n\n this.tries = new CMITries();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.tries?.initialize();\n }\n\n #tries_during_lesson = '';\n\n /**\n * Getter for tries_during_lesson\n * @return {string}\n */\n get tries_during_lesson() {\n return this.#tries_during_lesson;\n }\n\n /**\n * Setter for #tries_during_lesson. Sets an error if trying to set after\n * initialization.\n * @param {string} tries_during_lesson\n */\n set tries_during_lesson(tries_during_lesson) {\n !this.initialized ?\n this.#tries_during_lesson = tries_during_lesson :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data object\n * @return {\n * {\n * mastery_score: string,\n * max_time_allowed: string,\n * time_limit_action: string,\n * tries: CMITries\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n 'tries': this.tries,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_demographics object\n */\nexport class CMIStudentDemographics extends BaseCMI {\n /**\n * Constructor for AICC StudentDemographics object\n */\n constructor() {\n super();\n }\n\n #_children = aicc_constants.student_demographics_children;\n #city = '';\n #class = '';\n #company = '';\n #country = '';\n #experience = '';\n #familiar_name = '';\n #instructor_name = '';\n #title = '';\n #native_language = '';\n #state = '';\n #street_address = '';\n #telephone = '';\n #years_experience = '';\n\n /**\n * Getter for _children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Getter for city\n * @return {string}\n */\n get city() {\n return this.#city;\n }\n\n /**\n * Setter for #city. Sets an error if trying to set after\n * initialization.\n * @param {string} city\n */\n set city(city) {\n !this.initialized ?\n this.#city = city :\n throwReadOnlyError();\n }\n\n /**\n * Getter for class\n * @return {string}\n */\n get class() {\n return this.#class;\n }\n\n /**\n * Setter for #class. Sets an error if trying to set after\n * initialization.\n * @param {string} clazz\n */\n set class(clazz) {\n !this.initialized ?\n this.#class = clazz :\n throwReadOnlyError();\n }\n\n /**\n * Getter for company\n * @return {string}\n */\n get company() {\n return this.#company;\n }\n\n /**\n * Setter for #company. Sets an error if trying to set after\n * initialization.\n * @param {string} company\n */\n set company(company) {\n !this.initialized ?\n this.#company = company :\n throwReadOnlyError();\n }\n\n /**\n * Getter for country\n * @return {string}\n */\n get country() {\n return this.#country;\n }\n\n /**\n * Setter for #country. Sets an error if trying to set after\n * initialization.\n * @param {string} country\n */\n set country(country) {\n !this.initialized ?\n this.#country = country :\n throwReadOnlyError();\n }\n\n /**\n * Getter for experience\n * @return {string}\n */\n get experience() {\n return this.#experience;\n }\n\n /**\n * Setter for #experience. Sets an error if trying to set after\n * initialization.\n * @param {string} experience\n */\n set experience(experience) {\n !this.initialized ?\n this.#experience = experience :\n throwReadOnlyError();\n }\n\n /**\n * Getter for familiar_name\n * @return {string}\n */\n get familiar_name() {\n return this.#familiar_name;\n }\n\n /**\n * Setter for #familiar_name. Sets an error if trying to set after\n * initialization.\n * @param {string} familiar_name\n */\n set familiar_name(familiar_name) {\n !this.initialized ?\n this.#familiar_name = familiar_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for instructor_name\n * @return {string}\n */\n get instructor_name() {\n return this.#instructor_name;\n }\n\n /**\n * Setter for #instructor_name. Sets an error if trying to set after\n * initialization.\n * @param {string} instructor_name\n */\n set instructor_name(instructor_name) {\n !this.initialized ?\n this.#instructor_name = instructor_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for title\n * @return {string}\n */\n get title() {\n return this.#title;\n }\n\n /**\n * Setter for #title. Sets an error if trying to set after\n * initialization.\n * @param {string} title\n */\n set title(title) {\n !this.initialized ?\n this.#title = title :\n throwReadOnlyError();\n }\n\n /**\n * Getter for native_language\n * @return {string}\n */\n get native_language() {\n return this.#native_language;\n }\n\n /**\n * Setter for #native_language. Sets an error if trying to set after\n * initialization.\n * @param {string} native_language\n */\n set native_language(native_language) {\n !this.initialized ?\n this.#native_language = native_language :\n throwReadOnlyError();\n }\n\n /**\n * Getter for state\n * @return {string}\n */\n get state() {\n return this.#state;\n }\n\n /**\n * Setter for #state. Sets an error if trying to set after\n * initialization.\n * @param {string} state\n */\n set state(state) {\n !this.initialized ?\n this.#state = state :\n throwReadOnlyError();\n }\n\n /**\n * Getter for street_address\n * @return {string}\n */\n get street_address() {\n return this.#street_address;\n }\n\n /**\n * Setter for #street_address. Sets an error if trying to set after\n * initialization.\n * @param {string} street_address\n */\n set street_address(street_address) {\n !this.initialized ?\n this.#street_address = street_address :\n throwReadOnlyError();\n }\n\n /**\n * Getter for telephone\n * @return {string}\n */\n get telephone() {\n return this.#telephone;\n }\n\n /**\n * Setter for #telephone. Sets an error if trying to set after\n * initialization.\n * @param {string} telephone\n */\n set telephone(telephone) {\n !this.initialized ?\n this.#telephone = telephone :\n throwReadOnlyError();\n }\n\n /**\n * Getter for years_experience\n * @return {string}\n */\n get years_experience() {\n return this.#years_experience;\n }\n\n /**\n * Setter for #years_experience. Sets an error if trying to set after\n * initialization.\n * @param {string} years_experience\n */\n set years_experience(years_experience) {\n !this.initialized ?\n this.#years_experience = years_experience :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_demographics object\n * @return {\n * {\n * city: string,\n * class: string,\n * company: string,\n * country: string,\n * experience: string,\n * familiar_name: string,\n * instructor_name: string,\n * title: string,\n * native_language: string,\n * state: string,\n * street_address: string,\n * telephone: string,\n * years_experience: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'city': this.city,\n 'class': this.class,\n 'company': this.company,\n 'country': this.country,\n 'experience': this.experience,\n 'familiar_name': this.familiar_name,\n 'instructor_name': this.instructor_name,\n 'title': this.title,\n 'native_language': this.native_language,\n 'state': this.state,\n 'street_address': this.street_address,\n 'telephone': this.telephone,\n 'years_experience': this.years_experience,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.paths object\n */\nexport class CMIPaths extends CMIArray {\n /**\n * Constructor for inline Paths Array class\n */\n constructor() {\n super({children: aicc_constants.paths_children});\n }\n}\n\n/**\n * Class for AICC Paths\n */\nexport class CMIPathsObject extends BaseCMI {\n /**\n * Constructor for AICC Paths objects\n */\n constructor() {\n super();\n }\n\n #location_id = '';\n #date = '';\n #time = '';\n #status = '';\n #why_left = '';\n #time_in_element = '';\n\n /**\n * Getter for #location_id\n * @return {string}\n */\n get location_id() {\n return this.#location_id;\n }\n\n /**\n * Setter for #location_id\n * @param {string} location_id\n */\n set location_id(location_id) {\n if (checkAICCValidFormat(location_id, aicc_regex.CMIString256)) {\n this.#location_id = location_id;\n }\n }\n\n /**\n * Getter for #date\n * @return {string}\n */\n get date() {\n return this.#date;\n }\n\n /**\n * Setter for #date\n * @param {string} date\n */\n set date(date) {\n if (checkAICCValidFormat(date, aicc_regex.CMIString256)) {\n this.#date = date;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #why_left\n * @return {string}\n */\n get why_left() {\n return this.#why_left;\n }\n\n /**\n * Setter for #why_left\n * @param {string} why_left\n */\n set why_left(why_left) {\n if (checkAICCValidFormat(why_left, aicc_regex.CMIString256)) {\n this.#why_left = why_left;\n }\n }\n\n /**\n * Getter for #time_in_element\n * @return {string}\n */\n get time_in_element() {\n return this.#time_in_element;\n }\n\n /**\n * Setter for #time_in_element\n * @param {string} time_in_element\n */\n set time_in_element(time_in_element) {\n if (checkAICCValidFormat(time_in_element, aicc_regex.CMITime)) {\n this.#time_in_element = time_in_element;\n }\n }\n\n /**\n * toJSON for cmi.paths.n object\n * @return {\n * {\n * location_id: string,\n * date: string,\n * time: string,\n * status: string,\n * why_left: string,\n * time_in_element: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'location_id': this.location_id,\n 'date': this.date,\n 'time': this.time,\n 'status': this.status,\n 'why_left': this.why_left,\n 'time_in_element': this.time_in_element,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing the AICC cmi.student_data.tries object\n */\nexport class CMITries extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.tries_children});\n }\n}\n\n/**\n * Class for AICC Tries\n */\nexport class CMITriesObject extends BaseCMI {\n /**\n * Constructor for AICC Tries object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #status = '';\n #time = '';\n\n /**\n * Getter for #status\n * @return {string}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (checkAICCValidFormat(status, aicc_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.student_data.tries.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'status': this.status,\n 'time': this.time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for cmi.student_data.attempt_records array\n */\nexport class CMIAttemptRecords extends CMIArray {\n /**\n * Constructor for inline Tries Array class\n */\n constructor() {\n super({children: aicc_constants.attempt_records_children});\n }\n}\n\n/**\n * Class for AICC Attempt Records\n */\nexport class CMIAttemptRecordsObject extends BaseCMI {\n /**\n * Constructor for AICC Attempt Records object\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: aicc_constants.score_children,\n score_range: aicc_regex.score_range,\n invalidErrorCode: aicc_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: aicc_error_codes.TYPE_MISMATCH,\n invalidRangeCode: aicc_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: AICCValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #lesson_status = '';\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (checkAICCValidFormat(lesson_status, aicc_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n\n /**\n * toJSON for cmi.student_data.attempt_records.n object\n * @return {\n * {\n * status: string,\n * time: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'lesson_status': this.lesson_status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Evaluation Comments\n */\nexport class CMIEvaluationCommentsObject extends BaseCMI {\n /**\n * Constructor for Evaluation Comments\n */\n constructor() {\n super();\n }\n\n #content = '';\n #location = '';\n #time = '';\n\n /**\n * Getter for #content\n * @return {string}\n */\n get content() {\n return this.#content;\n }\n\n /**\n * Setter for #content\n * @param {string} content\n */\n set content(content) {\n if (checkAICCValidFormat(content, aicc_regex.CMIString256)) {\n this.#content = content;\n }\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (checkAICCValidFormat(location, aicc_regex.CMIString256)) {\n this.#location = location;\n }\n }\n\n /**\n * Getter for #time\n * @return {string}\n */\n get time() {\n return this.#time;\n }\n\n /**\n * Setting for #time\n * @param {string} time\n */\n set time(time) {\n if (checkAICCValidFormat(time, aicc_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * toJSON for cmi.evaulation.comments.n object\n * @return {\n * {\n * content: string,\n * location: string,\n * time: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'content': this.content,\n 'location': this.location,\n 'time': this.time,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Check if the value matches the proper format. If not, throw proper error code.\n *\n * @param {string} value\n * @param {string} regexPattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function checkValidFormat(\n value: String,\n regexPattern: String,\n errorCode: number,\n errorClass: function,\n allowEmptyString?: boolean) {\n const formatRegex = new RegExp(regexPattern);\n const matches = value.match(formatRegex);\n if (allowEmptyString && value === '') {\n return true;\n }\n if (value === undefined || !matches || matches[0] === '') {\n throw new errorClass.prototype.constructor(errorCode);\n }\n return true;\n}\n\n/**\n * Check if the value matches the proper range. If not, throw proper error code.\n *\n * @param {*} value\n * @param {string} rangePattern\n * @param {number} errorCode\n * @param {class} errorClass\n * @return {boolean}\n */\nexport function checkValidRange(\n value: any,\n rangePattern: String,\n errorCode: number,\n errorClass: function) {\n const ranges = rangePattern.split('#');\n value = value * 1.0;\n if (value >= ranges[0]) {\n if ((ranges[1] === '*') || (value <= ranges[1])) {\n return true;\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n } else {\n throw new errorClass.prototype.constructor(errorCode);\n }\n}\n\n/**\n * Base class for API cmi objects\n */\nexport class BaseCMI {\n jsonString = false;\n #initialized = false;\n #start_time;\n\n /**\n * Constructor for BaseCMI, just marks the class as abstract\n */\n constructor() {\n if (new.target === BaseCMI) {\n throw new TypeError('Cannot construct BaseCMI instances directly');\n }\n }\n\n /**\n * Getter for #initialized\n * @return {boolean}\n */\n get initialized() {\n return this.#initialized;\n }\n\n /**\n * Getter for #start_time\n * @return {Number}\n */\n get start_time() {\n return this.#start_time;\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n this.#initialized = true;\n }\n\n /**\n * Called when the player should override the 'session_time' provided by\n * the module\n */\n setStartTime() {\n this.#start_time = new Date().getTime();\n }\n}\n\n/**\n * Base class for cmi *.score objects\n */\nexport class CMIScore extends BaseCMI {\n /**\n * Constructor for *.score\n * @param {string} score_children\n * @param {string} score_range\n * @param {string} max\n * @param {number} invalidErrorCode\n * @param {number} invalidTypeCode\n * @param {number} invalidRangeCode\n * @param {string} decimalRegex\n * @param {class} errorClass\n */\n constructor(\n {\n score_children,\n score_range,\n max,\n invalidErrorCode,\n invalidTypeCode,\n invalidRangeCode,\n decimalRegex,\n errorClass,\n }) {\n super();\n\n this.#_children = score_children ||\n scorm12_constants.score_children;\n this.#_score_range = !score_range ? false : scorm12_regex.score_range;\n this.#max = (max || max === '') ? max : '100';\n this.#_invalid_error_code = invalidErrorCode ||\n scorm12_error_codes.INVALID_SET_VALUE;\n this.#_invalid_type_code = invalidTypeCode ||\n scorm12_error_codes.TYPE_MISMATCH;\n this.#_invalid_range_code = invalidRangeCode ||\n scorm12_error_codes.VALUE_OUT_OF_RANGE;\n this.#_decimal_regex = decimalRegex ||\n scorm12_regex.CMIDecimal;\n this.#_error_class = errorClass;\n }\n\n #_children;\n #_score_range;\n #_invalid_error_code;\n #_invalid_type_code;\n #_invalid_range_code;\n #_decimal_regex;\n #_error_class;\n #raw = '';\n #min = '';\n #max;\n\n /**\n * Getter for _children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throw new this.#_error_class.prototype.constructor(this.#_invalid_error_code);\n }\n\n /**\n * Getter for #raw\n * @return {string}\n */\n get raw() {\n return this.#raw;\n }\n\n /**\n * Setter for #raw\n * @param {string} raw\n */\n set raw(raw) {\n if (checkValidFormat(raw, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(raw, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#raw = raw;\n }\n }\n\n /**\n * Getter for #min\n * @return {string}\n */\n get min() {\n return this.#min;\n }\n\n /**\n * Setter for #min\n * @param {string} min\n */\n set min(min) {\n if (checkValidFormat(min, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(min, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#min = min;\n }\n }\n\n /**\n * Getter for #max\n * @return {string}\n */\n get max() {\n return this.#max;\n }\n\n /**\n * Setter for #max\n * @param {string} max\n */\n set max(max) {\n if (checkValidFormat(max, this.#_decimal_regex, this.#_invalid_type_code, this.#_error_class) &&\n (!this.#_score_range ||\n checkValidRange(max, this.#_score_range, this.#_invalid_range_code, this.#_error_class))) {\n this.#max = max;\n }\n }\n\n /**\n * toJSON for *.score\n * @return {{min: string, max: string, raw: string}}\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'raw': this.raw,\n 'min': this.min,\n 'max': this.max,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Base class for cmi *.n objects\n */\nexport class CMIArray extends BaseCMI {\n /**\n * Constructor cmi *.n arrays\n * @param {string} children\n * @param {number} errorCode\n * @param {class} errorClass\n */\n constructor({children, errorCode, errorClass}) {\n super();\n this.#_children = children;\n this.#errorCode = errorCode;\n this.#errorClass = errorClass;\n this.childArray = [];\n }\n\n #errorCode;\n #errorClass;\n #_children;\n\n /**\n * Getter for _children\n * @return {*}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for _children. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * Getter for _count\n * @return {number}\n */\n get _count() {\n return this.childArray.length;\n }\n\n /**\n * Setter for _count. Just throws an error.\n * @param {number} _count\n */\n set _count(_count) {\n throw new this.#errorClass.prototype.constructor(this.#errorCode);\n }\n\n /**\n * toJSON for *.n arrays\n * @return {object}\n */\n toJSON() {\n this.jsonString = true;\n const result = {};\n for (let i = 0; i < this.childArray.length; i++) {\n result[i + ''] = this.childArray[i];\n }\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport {\n BaseCMI,\n checkValidFormat,\n checkValidRange,\n CMIArray,\n CMIScore,\n} from './common';\nimport APIConstants from '../constants/api_constants';\nimport ErrorCodes from '../constants/error_codes';\nimport Regex from '../constants/regex';\nimport {Scorm12ValidationError} from '../exceptions';\nimport * as Utilities from '../utilities';\nimport * as Util from '../utilities';\n\nconst scorm12_constants = APIConstants.scorm12;\nconst scorm12_regex = Regex.scorm12;\nconst scorm12_error_codes = ErrorCodes.scorm12;\n\n/**\n * Helper method for throwing Read Only error\n */\nexport function throwReadOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Write Only error\n */\nexport function throwWriteOnlyError() {\n throw new Scorm12ValidationError(scorm12_error_codes.WRITE_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Invalid Set error\n */\nfunction throwInvalidValueError() {\n throw new Scorm12ValidationError(scorm12_error_codes.INVALID_SET_VALUE);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n scorm12_error_codes.TYPE_MISMATCH,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} rangePattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nexport function check12ValidRange(\n value: any,\n rangePattern: String,\n allowEmptyString?: boolean) {\n return checkValidRange(\n value,\n rangePattern,\n scorm12_error_codes.VALUE_OUT_OF_RANGE,\n Scorm12ValidationError,\n allowEmptyString\n );\n}\n\n/**\n * Class representing the cmi object for SCORM 1.2\n */\nexport class CMI extends BaseCMI {\n #_children = '';\n #_version = '3.4';\n #launch_data = '';\n #comments = '';\n #comments_from_lms = '';\n\n student_data = null;\n\n /**\n * Constructor for the SCORM 1.2 cmi object\n * @param {string} cmi_children\n * @param {(CMIStudentData|AICCCMIStudentData)} student_data\n * @param {boolean} initialized\n */\n constructor(cmi_children, student_data, initialized: boolean) {\n super();\n\n if (initialized) this.initialize();\n\n this.#_children = cmi_children ?\n cmi_children :\n scorm12_constants.cmi_children;\n this.core = new CMICore();\n this.objectives = new CMIObjectives();\n this.student_data = student_data ? student_data : new CMIStudentData();\n this.student_preference = new CMIStudentPreference();\n this.interactions = new CMIInteractions();\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.core?.initialize();\n this.objectives?.initialize();\n this.student_data?.initialize();\n this.student_preference?.initialize();\n this.interactions?.initialize();\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * suspend_data: string,\n * launch_data: string,\n * comments: string,\n * comments_from_lms: string,\n * core: CMICore,\n * objectives: CMIObjectives,\n * student_data: CMIStudentData,\n * student_preference: CMIStudentPreference,\n * interactions: CMIInteractions\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'suspend_data': this.suspend_data,\n 'launch_data': this.launch_data,\n 'comments': this.comments,\n 'comments_from_lms': this.comments_from_lms,\n 'core': this.core,\n 'objectives': this.objectives,\n 'student_data': this.student_data,\n 'student_preference': this.student_preference,\n 'interactions': this.interactions,\n };\n delete this.jsonString;\n return result;\n }\n\n /**\n * Getter for #_version\n * @return {string}\n */\n get _version() {\n return this.#_version;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _version\n */\n set _version(_version) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #_children\n * @return {string}\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _children\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.core?.suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (this.core) {\n this.core.suspend_data = suspend_data;\n }\n }\n\n /**\n * Getter for #launch_data\n * @return {string}\n */\n get launch_data() {\n return this.#launch_data;\n }\n\n /**\n * Setter for #launch_data. Can only be called before initialization.\n * @param {string} launch_data\n */\n set launch_data(launch_data) {\n !this.initialized ? this.#launch_data = launch_data : throwReadOnlyError();\n }\n\n /**\n * Getter for #comments\n * @return {string}\n */\n get comments() {\n return this.#comments;\n }\n\n /**\n * Setter for #comments\n * @param {string} comments\n */\n set comments(comments) {\n if (check12ValidFormat(comments, scorm12_regex.CMIString4096, true)) {\n this.#comments = comments;\n }\n }\n\n /**\n * Getter for #comments_from_lms\n * @return {string}\n */\n get comments_from_lms() {\n return this.#comments_from_lms;\n }\n\n /**\n * Setter for #comments_from_lms. Can only be called before initialization.\n * @param {string} comments_from_lms\n */\n set comments_from_lms(comments_from_lms) {\n !this.initialized ?\n this.#comments_from_lms = comments_from_lms :\n throwReadOnlyError();\n }\n\n /**\n * Adds the current session time to the existing total time.\n *\n * @return {string}\n */\n getCurrentTotalTime() {\n return this.core.getCurrentTotalTime(this.start_time);\n }\n}\n\n/**\n * Class representing the cmi.core object\n * @extends BaseCMI\n */\nclass CMICore extends BaseCMI {\n /**\n * Constructor for cmi.core\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.score?.initialize();\n }\n\n #_children = scorm12_constants.core_children;\n #student_id = '';\n #student_name = '';\n #lesson_location = '';\n #credit = '';\n #lesson_status = 'not attempted';\n #entry = '';\n #total_time = '';\n #lesson_mode = 'normal';\n #exit = '';\n #session_time = '00:00:00';\n #suspend_data = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #student_id\n * @return {string}\n */\n get student_id() {\n return this.#student_id;\n }\n\n /**\n * Setter for #student_id. Can only be called before initialization.\n * @param {string} student_id\n */\n set student_id(student_id) {\n !this.initialized ? this.#student_id = student_id : throwReadOnlyError();\n }\n\n /**\n * Getter for #student_name\n * @return {string}\n */\n get student_name() {\n return this.#student_name;\n }\n\n /**\n * Setter for #student_name. Can only be called before initialization.\n * @param {string} student_name\n */\n set student_name(student_name) {\n !this.initialized ?\n this.#student_name = student_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_location\n * @return {string}\n */\n get lesson_location() {\n return this.#lesson_location;\n }\n\n /**\n * Setter for #lesson_location\n * @param {string} lesson_location\n */\n set lesson_location(lesson_location) {\n if (check12ValidFormat(lesson_location, scorm12_regex.CMIString256, true)) {\n this.#lesson_location = lesson_location;\n }\n }\n\n /**\n * Getter for #credit\n * @return {string}\n */\n get credit() {\n return this.#credit;\n }\n\n /**\n * Setter for #credit. Can only be called before initialization.\n * @param {string} credit\n */\n set credit(credit) {\n !this.initialized ? this.#credit = credit : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_status\n * @return {string}\n */\n get lesson_status() {\n return this.#lesson_status;\n }\n\n /**\n * Setter for #lesson_status\n * @param {string} lesson_status\n */\n set lesson_status(lesson_status) {\n if (this.initialized) {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus)) {\n this.#lesson_status = lesson_status;\n }\n } else {\n if (check12ValidFormat(lesson_status, scorm12_regex.CMIStatus2)) {\n this.#lesson_status = lesson_status;\n }\n }\n }\n\n /**\n * Getter for #entry\n * @return {string}\n */\n get entry() {\n return this.#entry;\n }\n\n /**\n * Setter for #entry. Can only be called before initialization.\n * @param {string} entry\n */\n set entry(entry) {\n !this.initialized ? this.#entry = entry : throwReadOnlyError();\n }\n\n /**\n * Getter for #total_time\n * @return {string}\n */\n get total_time() {\n return this.#total_time;\n }\n\n /**\n * Setter for #total_time. Can only be called before initialization.\n * @param {string} total_time\n */\n set total_time(total_time) {\n !this.initialized ? this.#total_time = total_time : throwReadOnlyError();\n }\n\n /**\n * Getter for #lesson_mode\n * @return {string}\n */\n get lesson_mode() {\n return this.#lesson_mode;\n }\n\n /**\n * Setter for #lesson_mode. Can only be called before initialization.\n * @param {string} lesson_mode\n */\n set lesson_mode(lesson_mode) {\n !this.initialized ? this.#lesson_mode = lesson_mode : throwReadOnlyError();\n }\n\n /**\n * Getter for #exit. Should only be called during JSON export.\n * @return {*}\n */\n get exit() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#exit;\n }\n\n /**\n * Setter for #exit\n * @param {string} exit\n */\n set exit(exit) {\n if (check12ValidFormat(exit, scorm12_regex.CMIExit, true)) {\n this.#exit = exit;\n }\n }\n\n /**\n * Getter for #session_time. Should only be called during JSON export.\n * @return {*}\n */\n get session_time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#session_time;\n }\n\n /**\n * Setter for #session_time\n * @param {string} session_time\n */\n set session_time(session_time) {\n if (check12ValidFormat(session_time, scorm12_regex.CMITimespan)) {\n this.#session_time = session_time;\n }\n }\n\n /**\n * Getter for #suspend_data\n * @return {string}\n */\n get suspend_data() {\n return this.#suspend_data;\n }\n\n /**\n * Setter for #suspend_data\n * @param {string} suspend_data\n */\n set suspend_data(suspend_data) {\n if (check12ValidFormat(suspend_data, scorm12_regex.CMIString4096, true)) {\n this.#suspend_data = suspend_data;\n }\n }\n\n /**\n * Adds the current session time to the existing total time.\n * @param {Number} start_time\n * @return {string}\n */\n getCurrentTotalTime(start_time: Number) {\n let sessionTime = this.#session_time;\n const startTime = start_time;\n\n if (typeof startTime !== 'undefined' && startTime !== null) {\n const seconds = new Date().getTime() - startTime;\n sessionTime = Util.getSecondsAsHHMMSS(seconds / 1000);\n }\n\n return Utilities.addHHMMSSTimeStrings(\n this.#total_time,\n sessionTime,\n new RegExp(scorm12_regex.CMITimespan),\n );\n }\n\n /**\n * toJSON for cmi.core\n *\n * @return {\n * {\n * student_name: string,\n * entry: string,\n * exit: string,\n * score: CMIScore,\n * student_id: string,\n * lesson_mode: string,\n * lesson_location: string,\n * lesson_status: string,\n * credit: string,\n * session_time: *\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'student_id': this.student_id,\n 'student_name': this.student_name,\n 'lesson_location': this.lesson_location,\n 'credit': this.credit,\n 'lesson_status': this.lesson_status,\n 'entry': this.entry,\n 'lesson_mode': this.lesson_mode,\n 'exit': this.exit,\n 'session_time': this.session_time,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives object\n * @extends CMIArray\n */\nclass CMIObjectives extends CMIArray {\n /**\n * Constructor for cmi.objectives\n */\n constructor() {\n super({\n children: scorm12_constants.objectives_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_data object\n * @extends BaseCMI\n */\nexport class CMIStudentData extends BaseCMI {\n #_children;\n #mastery_score = '';\n #max_time_allowed = '';\n #time_limit_action = '';\n\n /**\n * Constructor for cmi.student_data\n * @param {string} student_data_children\n */\n constructor(student_data_children) {\n super();\n\n this.#_children = student_data_children ?\n student_data_children :\n scorm12_constants.student_data_children;\n }\n\n /**\n * Getter for #_children\n * @return {*}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #master_score\n * @return {string}\n */\n get mastery_score() {\n return this.#mastery_score;\n }\n\n /**\n * Setter for #master_score. Can only be called before initialization.\n * @param {string} mastery_score\n */\n set mastery_score(mastery_score) {\n !this.initialized ?\n this.#mastery_score = mastery_score :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #max_time_allowed\n * @return {string}\n */\n get max_time_allowed() {\n return this.#max_time_allowed;\n }\n\n /**\n * Setter for #max_time_allowed. Can only be called before initialization.\n * @param {string} max_time_allowed\n */\n set max_time_allowed(max_time_allowed) {\n !this.initialized ?\n this.#max_time_allowed = max_time_allowed :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #time_limit_action\n * @return {string}\n */\n get time_limit_action() {\n return this.#time_limit_action;\n }\n\n /**\n * Setter for #time_limit_action. Can only be called before initialization.\n * @param {string} time_limit_action\n */\n set time_limit_action(time_limit_action) {\n !this.initialized ?\n this.#time_limit_action = time_limit_action :\n throwReadOnlyError();\n }\n\n /**\n * toJSON for cmi.student_data\n *\n * @return {\n * {\n * max_time_allowed: string,\n * time_limit_action: string,\n * mastery_score: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'mastery_score': this.mastery_score,\n 'max_time_allowed': this.max_time_allowed,\n 'time_limit_action': this.time_limit_action,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.student_preference object\n * @extends BaseCMI\n */\nexport class CMIStudentPreference extends BaseCMI {\n #_children;\n\n /**\n * Constructor for cmi.student_preference\n * @param {string} student_preference_children\n */\n constructor(student_preference_children) {\n super();\n\n this.#_children = student_preference_children ?\n student_preference_children :\n scorm12_constants.student_preference_children;\n }\n\n #audio = '';\n #language = '';\n #speed = '';\n #text = '';\n\n /**\n * Getter for #_children\n * @return {string}\n * @private\n */\n get _children() {\n return this.#_children;\n }\n\n /**\n * Setter for #_children. Just throws an error.\n * @param {string} _children\n * @private\n */\n set _children(_children) {\n throwInvalidValueError();\n }\n\n /**\n * Getter for #audio\n * @return {string}\n */\n get audio() {\n return this.#audio;\n }\n\n /**\n * Setter for #audio\n * @param {string} audio\n */\n set audio(audio) {\n if (check12ValidFormat(audio, scorm12_regex.CMISInteger) &&\n check12ValidRange(audio, scorm12_regex.audio_range)) {\n this.#audio = audio;\n }\n }\n\n /**\n * Getter for #language\n * @return {string}\n */\n get language() {\n return this.#language;\n }\n\n /**\n * Setter for #language\n * @param {string} language\n */\n set language(language) {\n if (check12ValidFormat(language, scorm12_regex.CMIString256)) {\n this.#language = language;\n }\n }\n\n /**\n * Getter for #speed\n * @return {string}\n */\n get speed() {\n return this.#speed;\n }\n\n /**\n * Setter for #speed\n * @param {string} speed\n */\n set speed(speed) {\n if (check12ValidFormat(speed, scorm12_regex.CMISInteger) &&\n check12ValidRange(speed, scorm12_regex.speed_range)) {\n this.#speed = speed;\n }\n }\n\n /**\n * Getter for #text\n * @return {string}\n */\n get text() {\n return this.#text;\n }\n\n /**\n * Setter for #text\n * @param {string} text\n */\n set text(text) {\n if (check12ValidFormat(text, scorm12_regex.CMISInteger) &&\n check12ValidRange(text, scorm12_regex.text_range)) {\n this.#text = text;\n }\n }\n\n /**\n * toJSON for cmi.student_preference\n *\n * @return {\n * {\n * audio: string,\n * language: string,\n * speed: string,\n * text: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio': this.audio,\n 'language': this.language,\n 'speed': this.speed,\n 'text': this.text,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions object\n * @extends BaseCMI\n */\nclass CMIInteractions extends CMIArray {\n /**\n * Constructor for cmi.interactions\n */\n constructor() {\n super({\n children: scorm12_constants.interactions_children,\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n object\n */\n constructor() {\n super();\n\n this.objectives = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.objectives_children,\n });\n this.correct_responses = new CMIArray({\n errorCode: scorm12_error_codes.INVALID_SET_VALUE,\n errorClass: Scorm12ValidationError,\n children: scorm12_constants.correct_responses_children,\n });\n }\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.objectives?.initialize();\n this.correct_responses?.initialize();\n }\n\n #id = '';\n #time = '';\n #type = '';\n #weighting = '';\n #student_response = '';\n #result = '';\n #latency = '';\n\n /**\n * Getter for #id. Should only be called during JSON export.\n * @return {*}\n */\n get id() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #time. Should only be called during JSON export.\n * @return {*}\n */\n get time() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#time;\n }\n\n /**\n * Setter for #time\n * @param {string} time\n */\n set time(time) {\n if (check12ValidFormat(time, scorm12_regex.CMITime)) {\n this.#time = time;\n }\n }\n\n /**\n * Getter for #type. Should only be called during JSON export.\n * @return {*}\n */\n get type() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#type;\n }\n\n /**\n * Setter for #type\n * @param {string} type\n */\n set type(type) {\n if (check12ValidFormat(type, scorm12_regex.CMIType)) {\n this.#type = type;\n }\n }\n\n /**\n * Getter for #weighting. Should only be called during JSON export.\n * @return {*}\n */\n get weighting() {\n return (!this.jsonString) ?\n throwWriteOnlyError() :\n this.#weighting;\n }\n\n /**\n * Setter for #weighting\n * @param {string} weighting\n */\n set weighting(weighting) {\n if (check12ValidFormat(weighting, scorm12_regex.CMIDecimal) &&\n check12ValidRange(weighting, scorm12_regex.weighting_range)) {\n this.#weighting = weighting;\n }\n }\n\n /**\n * Getter for #student_response. Should only be called during JSON export.\n * @return {*}\n */\n get student_response() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#student_response;\n }\n\n /**\n * Setter for #student_response\n * @param {string} student_response\n */\n set student_response(student_response) {\n if (check12ValidFormat(student_response, scorm12_regex.CMIFeedback, true)) {\n this.#student_response = student_response;\n }\n }\n\n /**\n * Getter for #result. Should only be called during JSON export.\n * @return {*}\n */\n get result() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#result;\n }\n\n /**\n * Setter for #result\n * @param {string} result\n */\n set result(result) {\n if (check12ValidFormat(result, scorm12_regex.CMIResult)) {\n this.#result = result;\n }\n }\n\n /**\n * Getter for #latency. Should only be called during JSON export.\n * @return {*}\n */\n get latency() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#latency;\n }\n\n /**\n * Setter for #latency\n * @param {string} latency\n */\n set latency(latency) {\n if (check12ValidFormat(latency, scorm12_regex.CMITimespan)) {\n this.#latency = latency;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n\n *\n * @return {\n * {\n * id: string,\n * time: string,\n * type: string,\n * weighting: string,\n * student_response: string,\n * result: string,\n * latency: string,\n * objectives: CMIArray,\n * correct_responses: CMIArray\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'time': this.time,\n 'type': this.type,\n 'weighting': this.weighting,\n 'student_response': this.student_response,\n 'result': this.result,\n 'latency': this.latency,\n 'objectives': this.objectives,\n 'correct_responses': this.correct_responses,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.objectives.n\n */\n constructor() {\n super();\n\n this.score = new CMIScore(\n {\n score_children: scorm12_constants.score_children,\n score_range: scorm12_regex.score_range,\n invalidErrorCode: scorm12_error_codes.INVALID_SET_VALUE,\n invalidTypeCode: scorm12_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm12_error_codes.VALUE_OUT_OF_RANGE,\n errorClass: Scorm12ValidationError,\n });\n }\n\n #id = '';\n #status = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #status\n * @return {\"\"}\n */\n get status() {\n return this.#status;\n }\n\n /**\n * Setter for #status\n * @param {string} status\n */\n set status(status) {\n if (check12ValidFormat(status, scorm12_regex.CMIStatus2)) {\n this.#status = status;\n }\n }\n\n /**\n * toJSON for cmi.objectives.n\n * @return {\n * {\n * id: string,\n * status: string,\n * score: CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'status': this.status,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.n.objectives.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsObjectivesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.n.objectives.n\n */\n constructor() {\n super();\n }\n\n #id = '';\n\n /**\n * Getter for #id\n * @return {\"\"}\n */\n get id() {\n return this.#id;\n }\n\n /**\n * Setter for #id\n * @param {string} id\n */\n set id(id) {\n if (check12ValidFormat(id, scorm12_regex.CMIIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * toJSON for cmi.interactions.n.objectives.n\n * @return {\n * {\n * id: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 1.2's cmi.interactions.correct_responses.n object\n * @extends BaseCMI\n */\nexport class CMIInteractionsCorrectResponsesObject extends BaseCMI {\n /**\n * Constructor for cmi.interactions.correct_responses.n\n */\n constructor() {\n super();\n }\n\n #pattern = '';\n\n /**\n * Getter for #pattern\n * @return {string}\n */\n get pattern() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#pattern;\n }\n\n /**\n * Setter for #pattern\n * @param {string} pattern\n */\n set pattern(pattern) {\n if (check12ValidFormat(pattern, scorm12_regex.CMIFeedback, true)) {\n this.#pattern = pattern;\n }\n }\n\n /**\n * toJSON for cmi.interactions.correct_responses.n\n * @return {\n * {\n * pattern: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'pattern': this.pattern,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for AICC Navigation object\n */\nexport class NAV extends BaseCMI {\n /**\n * Constructor for NAV object\n */\n constructor() {\n super();\n }\n\n #event = '';\n\n /**\n * Getter for #event\n * @return {string}\n */\n get event() {\n return this.#event;\n }\n\n /**\n * Setter for #event\n * @param {string} event\n */\n set event(event) {\n if (check12ValidFormat(event, scorm12_regex.NAVEvent)) {\n this.#event = event;\n }\n }\n\n /**\n * toJSON for nav object\n * @return {\n * {\n * event: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'event': this.event,\n };\n delete this.jsonString;\n return result;\n }\n}\n","// @flow\nimport {\n BaseCMI,\n checkValidFormat,\n checkValidRange,\n CMIArray,\n CMIScore,\n} from './common';\nimport APIConstants from '../constants/api_constants';\nimport Regex from '../constants/regex';\nimport ErrorCodes from '../constants/error_codes';\nimport Responses from '../constants/response_constants';\nimport {Scorm2004ValidationError} from '../exceptions';\nimport * as Util from '../utilities';\n\nconst scorm2004_constants = APIConstants.scorm2004;\nconst scorm2004_error_codes = ErrorCodes.scorm2004;\nconst learner_responses = Responses.learner;\n\nconst scorm2004_regex = Regex.scorm2004;\n\n/**\n * Helper method for throwing Read Only error\n */\nfunction throwReadOnlyError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Write Only error\n */\nfunction throwWriteOnlyError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.WRITE_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Type Mismatch error\n */\nfunction throwTypeMismatchError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.TYPE_MISMATCH);\n}\n\n/**\n * Helper method for throwing Dependency Not Established error\n */\nfunction throwDependencyNotEstablishedError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.DEPENDENCY_NOT_ESTABLISHED);\n}\n\n/**\n * Helper method for throwing Dependency Not Established error\n */\nfunction throwGeneralSetError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.GENERAL_SET_FAILURE);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nfunction check2004ValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n scorm2004_error_codes.TYPE_MISMATCH,\n Scorm2004ValidationError,\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 * @return {boolean}\n */\nfunction check2004ValidRange(value: any, rangePattern: String) {\n return checkValidRange(\n value,\n rangePattern,\n scorm2004_error_codes.VALUE_OUT_OF_RANGE,\n Scorm2004ValidationError,\n );\n}\n\n/**\n * Class representing cmi object for SCORM 2004\n */\nexport class CMI extends BaseCMI {\n /**\n * Constructor for the SCORM 2004 cmi object\n * @param {boolean} initialized\n */\n constructor(initialized: boolean) {\n super();\n\n this.learner_preference = new CMILearnerPreference();\n this.score = new Scorm2004CMIScore();\n this.comments_from_learner = new CMICommentsFromLearner();\n this.comments_from_lms = new CMICommentsFromLMS();\n this.interactions = new CMIInteractions();\n this.objectives = new CMIObjectives();\n\n if (initialized) this.initialize();\n }\n\n #_version = '1.0';\n #_children = scorm2004_constants.cmi_children;\n #completion_status = 'unknown';\n #completion_threshold = '';\n #credit = 'credit';\n #entry = '';\n #exit = '';\n #launch_data = '';\n #learner_id = '';\n #learner_name = '';\n #location = '';\n #max_time_allowed = '';\n #mode = 'normal';\n #progress_measure = '';\n #scaled_passing_score = '';\n #session_time = 'PT0H0M0S';\n #success_status = 'unknown';\n #suspend_data = '';\n #time_limit_action = 'continue,no message';\n #total_time = '';\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.learner_preference?.initialize();\n this.score?.initialize();\n this.comments_from_learner?.initialize();\n this.comments_from_lms?.initialize();\n this.interactions?.initialize();\n this.objectives?.initialize();\n }\n\n /**\n * Getter for #_version\n * @return {string}\n * @private\n */\n get _version() {\n return this.#_version;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _version\n * @private\n */\n set _version(_version) {\n throwReadOnlyError();\n }\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 {number} _children\n * @private\n */\n set _children(_children) {\n throwReadOnlyError();\n }\n\n /**\n * Getter for #completion_status\n * @return {string}\n */\n get completion_status() {\n return this.#completion_status;\n }\n\n /**\n * Setter for #completion_status\n * @param {string} completion_status\n */\n set completion_status(completion_status) {\n if (check2004ValidFormat(completion_status, scorm2004_regex.CMICStatus)) {\n this.#completion_status = completion_status;\n }\n }\n\n /**\n * Getter for #completion_threshold\n * @return {string}\n */\n get completion_threshold() {\n return this.#completion_threshold;\n }\n\n /**\n * Setter for #completion_threshold. Can only be called before initialization.\n * @param {string} completion_threshold\n */\n set completion_threshold(completion_threshold) {\n !this.initialized ?\n this.#completion_threshold = completion_threshold :\n throwReadOnlyError();\n }\n\n /**\n * Setter 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 #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 #exit. Should only be called during JSON export.\n * @return {string}\n */\n get exit() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#exit;\n }\n\n /**\n * Getter for #exit\n * @param {string} exit\n */\n set exit(exit) {\n if (check2004ValidFormat(exit, scorm2004_regex.CMIExit, true)) {\n this.#exit = exit;\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 #learner_id\n * @return {string}\n */\n get learner_id() {\n return this.#learner_id;\n }\n\n /**\n * Setter for #learner_id. Can only be called before initialization.\n * @param {string} learner_id\n */\n set learner_id(learner_id) {\n !this.initialized ? this.#learner_id = learner_id : throwReadOnlyError();\n }\n\n /**\n * Getter for #learner_name\n * @return {string}\n */\n get learner_name() {\n return this.#learner_name;\n }\n\n /**\n * Setter for #learner_name. Can only be called before initialization.\n * @param {string} learner_name\n */\n set learner_name(learner_name) {\n !this.initialized ?\n this.#learner_name = learner_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (check2004ValidFormat(location, scorm2004_regex.CMIString1000)) {\n this.#location = location;\n }\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 #mode\n * @return {string}\n */\n get mode() {\n return this.#mode;\n }\n\n /**\n * Setter for #mode. Can only be called before initialization.\n * @param {string} mode\n */\n set mode(mode) {\n !this.initialized ? this.#mode = mode : throwReadOnlyError();\n }\n\n /**\n * Getter for #progress_measure\n * @return {string}\n */\n get progress_measure() {\n return this.#progress_measure;\n }\n\n /**\n * Setter for #progress_measure\n * @param {string} progress_measure\n */\n set progress_measure(progress_measure) {\n if (check2004ValidFormat(progress_measure, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(progress_measure, scorm2004_regex.progress_range)) {\n this.#progress_measure = progress_measure;\n }\n }\n\n /**\n * Getter for #scaled_passing_score\n * @return {string}\n */\n get scaled_passing_score() {\n return this.#scaled_passing_score;\n }\n\n /**\n * Setter for #scaled_passing_score. Can only be called before initialization.\n * @param {string} scaled_passing_score\n */\n set scaled_passing_score(scaled_passing_score) {\n !this.initialized ?\n this.#scaled_passing_score = scaled_passing_score :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #session_time. Should only be called during JSON export.\n * @return {string}\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 (check2004ValidFormat(session_time, scorm2004_regex.CMITimespan)) {\n this.#session_time = session_time;\n }\n }\n\n /**\n * Getter for #success_status\n * @return {string}\n */\n get success_status() {\n return this.#success_status;\n }\n\n /**\n * Setter for #success_status\n * @param {string} success_status\n */\n set success_status(success_status) {\n if (check2004ValidFormat(success_status, scorm2004_regex.CMISStatus)) {\n this.#success_status = success_status;\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 (check2004ValidFormat(suspend_data, scorm2004_regex.CMIString64000,\n true)) {\n this.#suspend_data = suspend_data;\n }\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 * 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 * Adds the current session time to the existing total time.\n *\n * @return {string} ISO8601 Duration\n */\n getCurrentTotalTime() {\n let sessionTime = this.#session_time;\n const startTime = this.start_time;\n\n if (typeof startTime !== 'undefined' && startTime !== null) {\n const seconds = new Date().getTime() - startTime;\n sessionTime = Util.getSecondsAsISODuration(seconds / 1000);\n }\n\n return Util.addTwoDurations(\n this.#total_time,\n sessionTime,\n scorm2004_regex.CMITimespan,\n );\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * comments_from_learner: CMICommentsFromLearner,\n * comments_from_lms: CMICommentsFromLMS,\n * completion_status: string,\n * completion_threshold: string,\n * credit: string,\n * entry: string,\n * exit: string,\n * interactions: CMIInteractions,\n * launch_data: string,\n * learner_id: string,\n * learner_name: string,\n * learner_preference: CMILearnerPreference,\n * location: string,\n * max_time_allowed: string,\n * mode: string,\n * objectives: CMIObjectives,\n * progress_measure: string,\n * scaled_passing_score: string,\n * score: Scorm2004CMIScore,\n * session_time: string,\n * success_status: string,\n * suspend_data: string,\n * time_limit_action: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comments_from_learner': this.comments_from_learner,\n 'comments_from_lms': this.comments_from_lms,\n 'completion_status': this.completion_status,\n 'completion_threshold': this.completion_threshold,\n 'credit': this.credit,\n 'entry': this.entry,\n 'exit': this.exit,\n 'interactions': this.interactions,\n 'launch_data': this.launch_data,\n 'learner_id': this.learner_id,\n 'learner_name': this.learner_name,\n 'learner_preference': this.learner_preference,\n 'location': this.location,\n 'max_time_allowed': this.max_time_allowed,\n 'mode': this.mode,\n 'objectives': this.objectives,\n 'progress_measure': this.progress_measure,\n 'scaled_passing_score': this.scaled_passing_score,\n 'score': this.score,\n 'session_time': this.session_time,\n 'success_status': this.success_status,\n 'suspend_data': this.suspend_data,\n 'time_limit_action': this.time_limit_action,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.learner_preference object\n */\nclass CMILearnerPreference extends BaseCMI {\n #_children = scorm2004_constants.student_preference_children;\n #audio_level = '1';\n #language = '';\n #delivery_speed = '1';\n #audio_captioning = '0';\n\n /**\n * Constructor for cmi.learner_preference\n */\n constructor() {\n super();\n }\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 throwReadOnlyError();\n }\n\n /**\n * Getter for #audio_level\n * @return {string}\n */\n get audio_level() {\n return this.#audio_level;\n }\n\n /**\n * Setter for #audio_level\n * @param {string} audio_level\n */\n set audio_level(audio_level) {\n if (check2004ValidFormat(audio_level, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(audio_level, scorm2004_regex.audio_range)) {\n this.#audio_level = audio_level;\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 (check2004ValidFormat(language, scorm2004_regex.CMILang)) {\n this.#language = language;\n }\n }\n\n /**\n * Getter for #delivery_speed\n * @return {string}\n */\n get delivery_speed() {\n return this.#delivery_speed;\n }\n\n /**\n * Setter for #delivery_speed\n * @param {string} delivery_speed\n */\n set delivery_speed(delivery_speed) {\n if (check2004ValidFormat(delivery_speed, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(delivery_speed, scorm2004_regex.speed_range)) {\n this.#delivery_speed = delivery_speed;\n }\n }\n\n /**\n * Getter for #audio_captioning\n * @return {string}\n */\n get audio_captioning() {\n return this.#audio_captioning;\n }\n\n /**\n * Setter for #audio_captioning\n * @param {string} audio_captioning\n */\n set audio_captioning(audio_captioning) {\n if (check2004ValidFormat(audio_captioning, scorm2004_regex.CMISInteger) &&\n check2004ValidRange(audio_captioning, scorm2004_regex.text_range)) {\n this.#audio_captioning = audio_captioning;\n }\n }\n\n /**\n * toJSON for cmi.learner_preference\n *\n * @return {\n * {\n * audio_level: string,\n * language: string,\n * delivery_speed: string,\n * audio_captioning: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio_level': this.audio_level,\n 'language': this.language,\n 'delivery_speed': this.delivery_speed,\n 'audio_captioning': this.audio_captioning,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.interactions object\n */\nclass CMIInteractions extends CMIArray {\n /**\n * Constructor for cmi.objectives Array\n */\n constructor() {\n super({\n children: scorm2004_constants.interactions_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.objectives object\n */\nclass CMIObjectives extends CMIArray {\n /**\n * Constructor for cmi.objectives Array\n */\n constructor() {\n super({\n children: scorm2004_constants.objectives_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_lms object\n */\nclass CMICommentsFromLMS extends CMIArray {\n /**\n * Constructor for cmi.comments_from_lms Array\n */\n constructor() {\n super({\n children: scorm2004_constants.comments_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_learner object\n */\nclass CMICommentsFromLearner extends CMIArray {\n /**\n * Constructor for cmi.comments_from_learner Array\n */\n constructor() {\n super({\n children: scorm2004_constants.comments_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.interaction.n object\n */\nexport class CMIInteractionsObject extends BaseCMI {\n #id = '';\n #type = '';\n #timestamp = '';\n #weighting = '';\n #learner_response = '';\n #result = '';\n #latency = '';\n #description = '';\n\n /**\n * Constructor for cmi.interaction.n\n */\n constructor() {\n super();\n\n this.objectives = new CMIArray({\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n children: scorm2004_constants.objectives_children,\n });\n this.correct_responses = new CMIArray({\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n children: scorm2004_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 /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #type\n * @return {string}\n */\n get type() {\n return this.#type;\n }\n\n /**\n * Setter for #type\n * @param {string} type\n */\n set type(type) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(type, scorm2004_regex.CMIType)) {\n this.#type = type;\n }\n }\n }\n\n /**\n * Getter for #timestamp\n * @return {string}\n */\n get timestamp() {\n return this.#timestamp;\n }\n\n /**\n * Setter for #timestamp\n * @param {string} timestamp\n */\n set timestamp(timestamp) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(timestamp, scorm2004_regex.CMITime)) {\n this.#timestamp = timestamp;\n }\n }\n }\n\n /**\n * Getter for #weighting\n * @return {string}\n */\n get weighting() {\n return this.#weighting;\n }\n\n /**\n * Setter for #weighting\n * @param {string} weighting\n */\n set weighting(weighting) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(weighting, scorm2004_regex.CMIDecimal)) {\n this.#weighting = weighting;\n }\n }\n }\n\n /**\n * Getter for #learner_response\n * @return {string}\n */\n get learner_response() {\n return this.#learner_response;\n }\n\n /**\n * Setter for #learner_response. Does type validation to make sure response\n * matches SCORM 2004's spec\n * @param {string} learner_response\n */\n set learner_response(learner_response) {\n if (this.initialized && (this.#type === '' || this.#id === '')) {\n throwDependencyNotEstablishedError();\n } else {\n let nodes = [];\n const response_type = learner_responses[this.type];\n if (response_type) {\n if (response_type?.delimiter) {\n nodes = learner_response.split(response_type.delimiter);\n } else {\n nodes[0] = learner_response;\n }\n\n if ((nodes.length > 0) && (nodes.length <= response_type.max)) {\n const formatRegex = new RegExp(response_type.format);\n for (let i = 0; i < nodes.length; i++) {\n if (response_type?.delimiter2) {\n const values = nodes[i].split(response_type.delimiter2);\n if (values.length === 2) {\n if (!values[0].match(formatRegex)) {\n throwTypeMismatchError();\n } else {\n if (!values[1].match(new RegExp(response_type.format2))) {\n throwTypeMismatchError();\n }\n }\n } else {\n throwTypeMismatchError();\n }\n } else {\n if (!nodes[i].match(formatRegex)) {\n throwTypeMismatchError();\n } else {\n if (nodes[i] !== '' && response_type.unique) {\n for (let j = 0; j < i; j++) {\n if (nodes[i] === nodes[j]) {\n throwTypeMismatchError();\n }\n }\n }\n }\n }\n }\n } else {\n throwGeneralSetError();\n }\n\n this.#learner_response = learner_response;\n } else {\n throwTypeMismatchError();\n }\n }\n }\n\n /**\n * Getter for #result\n * @return {string}\n */\n get result() {\n return this.#result;\n }\n\n /**\n * Setter for #result\n * @param {string} result\n */\n set result(result) {\n if (check2004ValidFormat(result, scorm2004_regex.CMIResult)) {\n this.#result = result;\n }\n }\n\n /**\n * Getter for #latency\n * @return {string}\n */\n get latency() {\n return this.#latency;\n }\n\n /**\n * Setter for #latency\n * @param {string} latency\n */\n set latency(latency) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(latency, scorm2004_regex.CMITimespan)) {\n this.#latency = latency;\n }\n }\n }\n\n /**\n * Getter for #description\n * @return {string}\n */\n get description() {\n return this.#description;\n }\n\n /**\n * Setter for #description\n * @param {string} description\n */\n set description(description) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(description, scorm2004_regex.CMILangString250,\n true)) {\n this.#description = description;\n }\n }\n }\n\n /**\n * toJSON for cmi.interactions.n\n *\n * @return {\n * {\n * id: string,\n * type: string,\n * objectives: CMIArray,\n * timestamp: string,\n * correct_responses: CMIArray,\n * weighting: string,\n * learner_response: string,\n * result: string,\n * latency: string,\n * description: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'type': this.type,\n 'objectives': this.objectives,\n 'timestamp': this.timestamp,\n 'weighting': this.weighting,\n 'learner_response': this.learner_response,\n 'result': this.result,\n 'latency': this.latency,\n 'description': this.description,\n 'correct_responses': this.correct_responses,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.objectives.n object\n */\nexport class CMIObjectivesObject extends BaseCMI {\n #id = '';\n #success_status = 'unknown';\n #completion_status = 'unknown';\n #progress_measure = '';\n #description = '';\n\n /**\n * Constructor for cmi.objectives.n\n */\n constructor() {\n super();\n\n this.score = new Scorm2004CMIScore();\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 /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #success_status\n * @return {string}\n */\n get success_status() {\n return this.#success_status;\n }\n\n /**\n * Setter for #success_status\n * @param {string} success_status\n */\n set success_status(success_status) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(success_status, scorm2004_regex.CMISStatus)) {\n this.#success_status = success_status;\n }\n }\n }\n\n /**\n * Getter for #completion_status\n * @return {string}\n */\n get completion_status() {\n return this.#completion_status;\n }\n\n /**\n * Setter for #completion_status\n * @param {string} completion_status\n */\n set completion_status(completion_status) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(completion_status, scorm2004_regex.CMICStatus)) {\n this.#completion_status = completion_status;\n }\n }\n }\n\n /**\n * Getter for #progress_measure\n * @return {string}\n */\n get progress_measure() {\n return this.#progress_measure;\n }\n\n /**\n * Setter for #progress_measure\n * @param {string} progress_measure\n */\n set progress_measure(progress_measure) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(progress_measure, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(progress_measure,\n scorm2004_regex.progress_range)) {\n this.#progress_measure = progress_measure;\n }\n }\n }\n\n /**\n * Getter for #description\n * @return {string}\n */\n get description() {\n return this.#description;\n }\n\n /**\n * Setter for #description\n * @param {string} description\n */\n set description(description) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(description, scorm2004_regex.CMILangString250,\n true)) {\n this.#description = description;\n }\n }\n }\n\n /**\n * toJSON for cmi.objectives.n\n *\n * @return {\n * {\n * id: string,\n * success_status: string,\n * completion_status: string,\n * progress_measure: string,\n * description: string,\n * score: Scorm2004CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'success_status': this.success_status,\n 'completion_status': this.completion_status,\n 'progress_measure': this.progress_measure,\n 'description': this.description,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi *.score object\n */\nclass Scorm2004CMIScore extends CMIScore {\n #scaled = '';\n\n /**\n * Constructor for cmi *.score\n */\n constructor() {\n super(\n {\n score_children: scorm2004_constants.score_children,\n max: '',\n invalidErrorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n invalidTypeCode: scorm2004_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm2004_error_codes.VALUE_OUT_OF_RANGE,\n decimalRegex: scorm2004_regex.CMIDecimal,\n errorClass: Scorm2004ValidationError,\n });\n }\n\n /**\n * Getter for #scaled\n * @return {string}\n */\n get scaled() {\n return this.#scaled;\n }\n\n /**\n * Setter for #scaled\n * @param {string} scaled\n */\n set scaled(scaled) {\n if (check2004ValidFormat(scaled, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(scaled, scorm2004_regex.scaled_range)) {\n this.#scaled = scaled;\n }\n }\n\n /**\n * toJSON for cmi *.score\n *\n * @return {\n * {\n * scaled: string,\n * raw: string,\n * min: string,\n * max: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'scaled': this.scaled,\n 'raw': super.raw,\n 'min': super.min,\n 'max': super.max,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_learner.n and cmi.comments_from_lms.n object\n */\nexport class CMICommentsObject extends BaseCMI {\n #comment = '';\n #location = '';\n #timestamp = '';\n #readOnlyAfterInit;\n\n /**\n * Constructor for cmi.comments_from_learner.n and cmi.comments_from_lms.n\n * @param {boolean} readOnlyAfterInit\n */\n constructor(readOnlyAfterInit = false) {\n super();\n this.#comment = '';\n this.#location = '';\n this.#timestamp = '';\n this.#readOnlyAfterInit = readOnlyAfterInit;\n }\n\n /**\n * Getter for #comment\n * @return {string}\n */\n get comment() {\n return this.#comment;\n }\n\n /**\n * Setter for #comment\n * @param {string} comment\n */\n set comment(comment) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(comment, scorm2004_regex.CMILangString4000,\n true)) {\n this.#comment = comment;\n }\n }\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(location, scorm2004_regex.CMIString250)) {\n this.#location = location;\n }\n }\n }\n\n /**\n * Getter for #timestamp\n * @return {string}\n */\n get timestamp() {\n return this.#timestamp;\n }\n\n /**\n * Setter for #timestamp\n * @param {string} timestamp\n */\n set timestamp(timestamp) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(timestamp, scorm2004_regex.CMITime)) {\n this.#timestamp = timestamp;\n }\n }\n }\n\n /**\n * toJSON for cmi.comments_from_learner.n object\n * @return {\n * {\n * comment: string,\n * location: string,\n * timestamp: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comment': this.comment,\n 'location': this.location,\n 'timestamp': this.timestamp,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.interactions.n.objectives.n object\n */\nexport class CMIInteractionsObjectivesObject extends BaseCMI {\n #id = '';\n\n /**\n * Constructor for cmi.interactions.n.objectives.n\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\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 2004's cmi.interactions.n.correct_responses.n object\n */\nexport class CMIInteractionsCorrectResponsesObject extends BaseCMI {\n #pattern = '';\n\n /**\n * Constructor for cmi.interactions.n.correct_responses.n\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #pattern\n * @return {string}\n */\n get pattern() {\n return this.#pattern;\n }\n\n /**\n * Setter for #pattern\n * @param {string} pattern\n */\n set pattern(pattern) {\n if (check2004ValidFormat(pattern, scorm2004_regex.CMIFeedback)) {\n this.#pattern = pattern;\n }\n }\n\n /**\n * toJSON cmi.interactions.n.correct_responses.n object\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 representing SCORM 2004's adl object\n */\nexport class ADL extends BaseCMI {\n /**\n * Constructor for adl\n */\n constructor() {\n super();\n\n this.nav = new ADLNav();\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.nav?.initialize();\n }\n\n /**\n * toJSON for adl\n * @return {\n * {\n * nav: {\n * request: string\n * }\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'nav': this.nav,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's adl.nav object\n */\nclass ADLNav extends BaseCMI {\n #request = '_none_';\n\n /**\n * Constructor for adl.nav\n */\n constructor() {\n super();\n\n this.request_valid = new ADLNavRequestValid();\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.request_valid?.initialize();\n }\n\n /**\n * Getter for #request\n * @return {string}\n */\n get request() {\n return this.#request;\n }\n\n /**\n * Setter for #request\n * @param {string} request\n */\n set request(request) {\n if (check2004ValidFormat(request, scorm2004_regex.NAVEvent)) {\n this.#request = request;\n }\n }\n\n /**\n * toJSON for adl.nav\n *\n * @return {\n * {\n * request: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'request': this.request,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's adl.nav.request_valid object\n */\nclass ADLNavRequestValid extends BaseCMI {\n #continue = 'unknown';\n #previous = 'unknown';\n choice = class {\n /**\n * Check if target is valid\n * @param {*} _target\n * @return {string}\n */\n _isTargetValid = (_target) => 'unknown';\n };\n jump = class {\n /**\n * Check if target is valid\n * @param {*} _target\n * @return {string}\n */\n _isTargetValid = (_target) => 'unknown';\n };\n\n /**\n * Constructor for adl.nav.request_valid\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #continue\n * @return {string}\n */\n get continue() {\n return this.#continue;\n }\n\n /**\n * Setter for #continue. Just throws an error.\n * @param {*} _\n */\n set continue(_) {\n throwReadOnlyError();\n }\n\n /**\n * Getter for #previous\n * @return {string}\n */\n get previous() {\n return this.#previous;\n }\n\n /**\n * Setter for #previous. Just throws an error.\n * @param {*} _\n */\n set previous(_) {\n throwReadOnlyError();\n }\n\n /**\n * toJSON for adl.nav.request_valid\n *\n * @return {\n * {\n * previous: string,\n * continue: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'previous': this.previous,\n 'continue': this.continue,\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","const ValidLanguages = {\n 'aa': 'aa', 'ab': 'ab', 'ae': 'ae', 'af': 'af', 'ak': 'ak', 'am': 'am',\n 'an': 'an', 'ar': 'ar', 'as': 'as', 'av': 'av', 'ay': 'ay', 'az': 'az',\n 'ba': 'ba', 'be': 'be', 'bg': 'bg', 'bh': 'bh', 'bi': 'bi', 'bm': 'bm',\n 'bn': 'bn', 'bo': 'bo', 'br': 'br', 'bs': 'bs', 'ca': 'ca', 'ce': 'ce',\n 'ch': 'ch', 'co': 'co', 'cr': 'cr', 'cs': 'cs', 'cu': 'cu', 'cv': 'cv',\n 'cy': 'cy', 'da': 'da', 'de': 'de', 'dv': 'dv', 'dz': 'dz', 'ee': 'ee',\n 'el': 'el', 'en': 'en', 'eo': 'eo', 'es': 'es', 'et': 'et', 'eu': 'eu',\n 'fa': 'fa', 'ff': 'ff', 'fi': 'fi', 'fj': 'fj', 'fo': 'fo', 'fr': 'fr',\n 'fy': 'fy', 'ga': 'ga', 'gd': 'gd', 'gl': 'gl', 'gn': 'gn', 'gu': 'gu',\n 'gv': 'gv', 'ha': 'ha', 'he': 'he', 'hi': 'hi', 'ho': 'ho', 'hr': 'hr',\n 'ht': 'ht', 'hu': 'hu', 'hy': 'hy', 'hz': 'hz', 'ia': 'ia', 'id': 'id',\n 'ie': 'ie', 'ig': 'ig', 'ii': 'ii', 'ik': 'ik', 'io': 'io', 'is': 'is',\n 'it': 'it', 'iu': 'iu', 'ja': 'ja', 'jv': 'jv', 'ka': 'ka', 'kg': 'kg',\n 'ki': 'ki', 'kj': 'kj', 'kk': 'kk', 'kl': 'kl', 'km': 'km', 'kn': 'kn',\n 'ko': 'ko', 'kr': 'kr', 'ks': 'ks', 'ku': 'ku', 'kv': 'kv', 'kw': 'kw',\n 'ky': 'ky', 'la': 'la', 'lb': 'lb', 'lg': 'lg', 'li': 'li', 'ln': 'ln',\n 'lo': 'lo', 'lt': 'lt', 'lu': 'lu', 'lv': 'lv', 'mg': 'mg', 'mh': 'mh',\n 'mi': 'mi', 'mk': 'mk', 'ml': 'ml', 'mn': 'mn', 'mo': 'mo', 'mr': 'mr',\n 'ms': 'ms', 'mt': 'mt', 'my': 'my', 'na': 'na', 'nb': 'nb', 'nd': 'nd',\n 'ne': 'ne', 'ng': 'ng', 'nl': 'nl', 'nn': 'nn', 'no': 'no', 'nr': 'nr',\n 'nv': 'nv', 'ny': 'ny', 'oc': 'oc', 'oj': 'oj', 'om': 'om', 'or': 'or',\n 'os': 'os', 'pa': 'pa', 'pi': 'pi', 'pl': 'pl', 'ps': 'ps', 'pt': 'pt',\n 'qu': 'qu', 'rm': 'rm', 'rn': 'rn', 'ro': 'ro', 'ru': 'ru', 'rw': 'rw',\n 'sa': 'sa', 'sc': 'sc', 'sd': 'sd', 'se': 'se', 'sg': 'sg', 'sh': 'sh',\n 'si': 'si', 'sk': 'sk', 'sl': 'sl', 'sm': 'sm', 'sn': 'sn', 'so': 'so',\n 'sq': 'sq', 'sr': 'sr', 'ss': 'ss', 'st': 'st', 'su': 'su', 'sv': 'sv',\n 'sw': 'sw', 'ta': 'ta', 'te': 'te', 'tg': 'tg', 'th': 'th', 'ti': 'ti',\n 'tk': 'tk', 'tl': 'tl', 'tn': 'tn', 'to': 'to', 'tr': 'tr', 'ts': 'ts',\n 'tt': 'tt', 'tw': 'tw', 'ty': 'ty', 'ug': 'ug', 'uk': 'uk', 'ur': 'ur',\n 'uz': 'uz', 've': 've', 'vi': 'vi', 'vo': 'vo', 'wa': 'wa', 'wo': 'wo',\n 'xh': 'xh', 'yi': 'yi', 'yo': 'yo', 'za': 'za', 'zh': 'zh', 'zu': 'zu',\n 'aar': 'aar', 'abk': 'abk', 'ave': 'ave', 'afr': 'afr', 'aka': 'aka',\n 'amh': 'amh', 'arg': 'arg', 'ara': 'ara', 'asm': 'asm', 'ava': 'ava',\n 'aym': 'aym', 'aze': 'aze', 'bak': 'bak', 'bel': 'bel', 'bul': 'bul',\n 'bih': 'bih', 'bis': 'bis', 'bam': 'bam', 'ben': 'ben', 'tib': 'tib',\n 'bod': 'bod', 'bre': 'bre', 'bos': 'bos', 'cat': 'cat', 'che': 'che',\n 'cha': 'cha', 'cos': 'cos', 'cre': 'cre', 'cze': 'cze', 'ces': 'ces',\n 'chu': 'chu', 'chv': 'chv', 'wel': 'wel', 'cym': 'cym', 'dan': 'dan',\n 'ger': 'ger', 'deu': 'deu', 'div': 'div', 'dzo': 'dzo', 'ewe': 'ewe',\n 'gre': 'gre', 'ell': 'ell', 'eng': 'eng', 'epo': 'epo', 'spa': 'spa',\n 'est': 'est', 'baq': 'baq', 'eus': 'eus', 'per': 'per', 'fas': 'fas',\n 'ful': 'ful', 'fin': 'fin', 'fij': 'fij', 'fao': 'fao', 'fre': 'fre',\n 'fra': 'fra', 'fry': 'fry', 'gle': 'gle', 'gla': 'gla', 'glg': 'glg',\n 'grn': 'grn', 'guj': 'guj', 'glv': 'glv', 'hau': 'hau', 'heb': 'heb',\n 'hin': 'hin', 'hmo': 'hmo', 'hrv': 'hrv', 'hat': 'hat', 'hun': 'hun',\n 'arm': 'arm', 'hye': 'hye', 'her': 'her', 'ina': 'ina', 'ind': 'ind',\n 'ile': 'ile', 'ibo': 'ibo', 'iii': 'iii', 'ipk': 'ipk', 'ido': 'ido',\n 'ice': 'ice', 'isl': 'isl', 'ita': 'ita', 'iku': 'iku', 'jpn': 'jpn',\n 'jav': 'jav', 'geo': 'geo', 'kat': 'kat', 'kon': 'kon', 'kik': 'kik',\n 'kua': 'kua', 'kaz': 'kaz', 'kal': 'kal', 'khm': 'khm', 'kan': 'kan',\n 'kor': 'kor', 'kau': 'kau', 'kas': 'kas', 'kur': 'kur', 'kom': 'kom',\n 'cor': 'cor', 'kir': 'kir', 'lat': 'lat', 'ltz': 'ltz', 'lug': 'lug',\n 'lim': 'lim', 'lin': 'lin', 'lao': 'lao', 'lit': 'lit', 'lub': 'lub',\n 'lav': 'lav', 'mlg': 'mlg', 'mah': 'mah', 'mao': 'mao', 'mri': 'mri',\n 'mac': 'mac', 'mkd': 'mkd', 'mal': 'mal', 'mon': 'mon', 'mol': 'mol',\n 'mar': 'mar', 'may': 'may', 'msa': 'msa', 'mlt': 'mlt', 'bur': 'bur',\n 'mya': 'mya', 'nau': 'nau', 'nob': 'nob', 'nde': 'nde', 'nep': 'nep',\n 'ndo': 'ndo', 'dut': 'dut', 'nld': 'nld', 'nno': 'nno', 'nor': 'nor',\n 'nbl': 'nbl', 'nav': 'nav', 'nya': 'nya', 'oci': 'oci', 'oji': 'oji',\n 'orm': 'orm', 'ori': 'ori', 'oss': 'oss', 'pan': 'pan', 'pli': 'pli',\n 'pol': 'pol', 'pus': 'pus', 'por': 'por', 'que': 'que', 'roh': 'roh',\n 'run': 'run', 'rum': 'rum', 'ron': 'ron', 'rus': 'rus', 'kin': 'kin',\n 'san': 'san', 'srd': 'srd', 'snd': 'snd', 'sme': 'sme', 'sag': 'sag',\n 'slo': 'slo', 'sin': 'sin', 'slk': 'slk', 'slv': 'slv', 'smo': 'smo',\n 'sna': 'sna', 'som': 'som', 'alb': 'alb', 'sqi': 'sqi', 'srp': 'srp',\n 'ssw': 'ssw', 'sot': 'sot', 'sun': 'sun', 'swe': 'swe', 'swa': 'swa',\n 'tam': 'tam', 'tel': 'tel', 'tgk': 'tgk', 'tha': 'tha', 'tir': 'tir',\n 'tuk': 'tuk', 'tgl': 'tgl', 'tsn': 'tsn', 'ton': 'ton', 'tur': 'tur',\n 'tso': 'tso', 'tat': 'tat', 'twi': 'twi', 'tah': 'tah', 'uig': 'uig',\n 'ukr': 'ukr', 'urd': 'urd', 'uzb': 'uzb', 'ven': 'ven', 'vie': 'vie',\n 'vol': 'vol', 'wln': 'wln', 'wol': 'wol', 'xho': 'xho', 'yid': 'yid',\n 'yor': 'yor', 'zha': 'zha', 'chi': 'chi', 'zho': 'zho', 'zul': 'zul',\n};\n\nexport default ValidLanguages;\n","// @flow\n\nconst scorm12 = {\n CMIString256: '^.*$',\n CMIString4096: '^.*$',\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: '^.*$',\n CMIFeedback: '^.*$', // 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\nimport Regex from './regex';\n\nconst scorm2004_regex = Regex.scorm2004;\n\nconst learner = {\n 'true-false': {\n format: '^true$|^false$',\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'choice': {\n format: scorm2004_regex.CMILongIdentifier,\n max: 36,\n delimiter: '[,]',\n unique: true,\n },\n 'fill-in': {\n format: scorm2004_regex.CMILangString250,\n max: 10,\n delimiter: '[,]',\n unique: false,\n },\n 'long-fill-in': {\n format: scorm2004_regex.CMILangString4000,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'matching': {\n format: scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIShortIdentifier,\n max: 36,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n },\n 'performance': {\n format: '^$|' + scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIDecimal + '|^$|' +\n scorm2004_regex.CMIShortIdentifier,\n max: 250,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n },\n 'sequencing': {\n format: scorm2004_regex.CMIShortIdentifier,\n max: 36,\n delimiter: '[,]',\n unique: false,\n },\n 'likert': {\n format: scorm2004_regex.CMIShortIdentifier,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'numeric': {\n format: scorm2004_regex.CMIDecimal,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'other': {\n format: scorm2004_regex.CMIString4000,\n max: 1,\n delimiter: '',\n unique: false,\n },\n};\n\nconst correct = {\n 'true-false': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: '^true$|^false$',\n limit: 1,\n },\n 'choice': {\n max: 36,\n delimiter: '[,]',\n unique: true,\n duplicate: false,\n format: scorm2004_regex.CMILongIdentifier,\n },\n 'fill-in': {\n max: 10,\n delimiter: '[,]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMILangString250cr,\n },\n 'long-fill-in': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: true,\n format: scorm2004_regex.CMILangString4000,\n },\n 'matching': {\n max: 36,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIShortIdentifier,\n },\n 'performance': {\n max: 250,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n duplicate: false,\n format: '^$|' + scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIDecimal + '|^$|' +\n scorm2004_regex.CMIShortIdentifier,\n },\n 'sequencing': {\n max: 36,\n delimiter: '[,]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n },\n 'likert': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n limit: 1,\n },\n 'numeric': {\n max: 2,\n delimiter: '[:]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIDecimal,\n limit: 1,\n },\n 'other': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIString4000,\n limit: 1,\n },\n};\n\nconst Responses = {\n learner: learner,\n correct: correct,\n};\n\nexport default Responses;\n","// @flow\n\nimport APIConstants from './constants/api_constants';\n\nconst scorm12_errors = APIConstants.scorm12.error_descriptions;\nconst aicc_errors = APIConstants.aicc.error_descriptions;\nconst scorm2004_errors = APIConstants.scorm2004.error_descriptions;\n\n/**\n * Base Validation Exception\n */\nexport class ValidationError extends Error {\n /**\n * Constructor to take in an error message and code\n * @param {number} errorCode\n * @param {string} errorMessage\n * @param {string} detailedMessage\n */\n constructor(errorCode: number, errorMessage: String, detailedMessage: String) {\n super(errorMessage);\n this.#errorCode = errorCode;\n this.#errorMessage = errorMessage;\n this.#detailedMessage = detailedMessage;\n }\n\n #errorCode;\n #errorMessage;\n #detailedMessage;\n\n /**\n * Getter for #errorCode\n * @return {number}\n */\n get errorCode() {\n return this.#errorCode;\n }\n\n /**\n * Getter for #errorMessage\n * @return {string}\n */\n get errorMessage() {\n return this.#errorMessage;\n }\n\n /**\n * Getter for #detailedMessage\n * @return {string}\n */\n get detailedMessage() {\n return this.#detailedMessage;\n }\n}\n\n/**\n * SCORM 1.2 Validation Error\n */\nexport class Scorm12ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm12_errors, String(errorCode))) {\n super(errorCode, scorm12_errors[String(errorCode)].basicMessage, scorm12_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm12_errors['101'].basicMessage, scorm12_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * AICC Validation Error\n */\nexport class AICCValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(aicc_errors, String(errorCode))) {\n super(errorCode, aicc_errors[String(errorCode)].basicMessage, aicc_errors[String(errorCode)].detailMessage);\n } else {\n super(101, aicc_errors['101'].basicMessage, aicc_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * SCORM 2004 Validation Error\n */\nexport class Scorm2004ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {\n super(errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm2004_errors['101'].basicMessage, scorm2004_errors['101'].detailMessage);\n }\n }\n}\n","// @flow\nexport const SECONDS_PER_SECOND = 1.0;\nexport const SECONDS_PER_MINUTE = 60;\nexport const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE;\nexport const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;\n\nconst designations = [\n ['D', SECONDS_PER_DAY],\n ['H', SECONDS_PER_HOUR],\n ['M', SECONDS_PER_MINUTE],\n ['S', SECONDS_PER_SECOND],\n];\n\n/**\n * Converts a Number to a String of HH:MM:SS\n *\n * @param {Number} totalSeconds\n * @return {string}\n */\nexport function getSecondsAsHHMMSS(totalSeconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!totalSeconds || totalSeconds <= 0) {\n return '00:00:00';\n }\n\n const hours = Math.floor(totalSeconds / SECONDS_PER_HOUR);\n\n const dateObj = new Date(totalSeconds * 1000);\n const minutes = dateObj.getUTCMinutes();\n // make sure we add any possible decimal value\n const seconds = dateObj.getSeconds();\n const ms = totalSeconds % 1.0;\n let msStr = '';\n if (countDecimals(ms) > 0) {\n if (countDecimals(ms) > 2) {\n msStr = ms.toFixed(2);\n } else {\n msStr = String(ms);\n }\n msStr = '.' + msStr.split('.')[1];\n }\n\n return (hours + ':' + minutes + ':' + seconds).replace(/\\b\\d\\b/g,\n '0$&') + msStr;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {Number} seconds\n * @return {String}\n */\nexport function getSecondsAsISODuration(seconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!seconds || seconds <= 0) {\n return 'PT0S';\n }\n\n let duration = 'P';\n let remainder = seconds;\n\n designations.forEach(([sign, current_seconds]) => {\n let value = Math.floor(remainder / current_seconds);\n\n remainder = remainder % current_seconds;\n if (countDecimals(remainder) > 2) {\n remainder = Number(Number(remainder).toFixed(2));\n }\n // If we have anything left in the remainder, and we're currently adding\n // seconds to the duration, go ahead and add the decimal to the seconds\n if (sign === 'S' && remainder > 0) {\n value += remainder;\n }\n\n if (value) {\n if ((duration.indexOf('D') > 0 ||\n sign === 'H' || sign === 'M' || sign === 'S') &&\n duration.indexOf('T') === -1) {\n duration += 'T';\n }\n duration += `${value}${sign}`;\n }\n });\n\n return duration;\n}\n\n/**\n * Calculate the number of seconds from HH:MM:SS.DDDDDD\n *\n * @param {string} timeString\n * @param {RegExp} timeRegex\n * @return {number}\n */\nexport function getTimeAsSeconds(timeString: String, timeRegex: RegExp) {\n if (!timeString || typeof timeString !== 'string' ||\n !timeString.match(timeRegex)) {\n return 0;\n }\n const parts = timeString.split(':');\n const hours = Number(parts[0]);\n const minutes = Number(parts[1]);\n const seconds = Number(parts[2]);\n return (hours * 3600) + (minutes * 60) + seconds;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {string} duration\n * @param {RegExp} durationRegex\n * @return {number}\n */\nexport function getDurationAsSeconds(duration: String, durationRegex: RegExp) {\n if (!duration || !duration.match(durationRegex)) {\n return 0;\n }\n\n const [, years, months, , days, hours, minutes, seconds] = new RegExp(\n durationRegex).exec(duration) || [];\n\n let result = 0.0;\n\n result += (Number(seconds) * 1.0 || 0.0);\n result += (Number(minutes) * 60.0 || 0.0);\n result += (Number(hours) * 3600.0 || 0.0);\n result += (Number(days) * (60 * 60 * 24.0) || 0.0);\n result += (Number(years) * (60 * 60 * 24 * 365.0) || 0.0);\n\n return result;\n}\n\n/**\n * Adds together two ISO8601 Duration strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} durationRegex\n * @return {string}\n */\nexport function addTwoDurations(\n first: String,\n second: String,\n durationRegex: RegExp) {\n return getSecondsAsISODuration(\n getDurationAsSeconds(first, durationRegex) +\n getDurationAsSeconds(second, durationRegex),\n );\n}\n\n/**\n * Add together two HH:MM:SS.DD strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} timeRegex\n * @return {string}\n */\nexport function addHHMMSSTimeStrings(\n first: String,\n second: String,\n timeRegex: RegExp) {\n return getSecondsAsHHMMSS(\n getTimeAsSeconds(first, timeRegex) +\n getTimeAsSeconds(\n second, timeRegex),\n );\n}\n\n/**\n * Flatten a JSON object down to string paths for each values\n * @param {object} data\n * @return {object}\n */\nexport function flatten(data) {\n const result = {};\n\n /**\n * Recurse through the object\n * @param {*} cur\n * @param {*} prop\n */\n function recurse(cur, prop) {\n if (Object(cur) !== cur) {\n result[prop] = cur;\n } else if (Array.isArray(cur)) {\n for (let i = 0, l = cur.length; i < l; i++) {\n recurse(cur[i], prop + '[' + i + ']');\n if (l === 0) result[prop] = [];\n }\n } else {\n let isEmpty = true;\n for (const p in cur) {\n if ({}.hasOwnProperty.call(cur, p)) {\n isEmpty = false;\n recurse(cur[p], prop ? prop + '.' + p : p);\n }\n }\n if (isEmpty && prop) result[prop] = {};\n }\n }\n\n recurse(data, '');\n return result;\n}\n\n/**\n * Un-flatten a flat JSON object\n * @param {object} data\n * @return {object}\n */\nexport function unflatten(data) {\n 'use strict';\n if (Object(data) !== data || Array.isArray(data)) return data;\n const regex = /\\.?([^.[\\]]+)|\\[(\\d+)]/g;\n const result = {};\n for (const p in data) {\n if ({}.hasOwnProperty.call(data, p)) {\n let cur = result;\n let prop = '';\n let m = regex.exec(p);\n while (m) {\n cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));\n prop = m[2] || m[1];\n m = regex.exec(p);\n }\n cur[prop] = data[p];\n }\n }\n return result[''] || result;\n}\n\n/**\n * Counts the number of decimal places\n * @param {number} num\n * @return {number}\n */\nexport function countDecimals(num: number) {\n if (Math.floor(num) === num || String(num).indexOf('.') < 0) return 0;\n const parts = num.toString().split('.')[1];\n return parts.length || 0;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Scorm2004API from '../Scorm2004API';\nimport Scorm12API from '../Scorm12API';\nimport AICC from '../AICC';\n\nwindow.Scorm12API = Scorm12API;\nwindow.Scorm2004API = Scorm2004API;\nwindow.AICC = AICC;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectProto","prototype","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","value","type","isObjectLike","isSymbol","call","other","valueOf","replace","isBinary","test","slice","module","exports","Scorm12API","CMI","CMIAttemptRecordsObject","CMIEvaluationCommentsObject","CMITriesObject","NAV","AICC","settings","finalSettings","mastery_override","cmi","nav","CMIElement","foundFirstIndex","newChild","stringMatches","newAPI","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","BaseAPI","error_codes","autocommit","autocommitSeconds","asyncCommit","sendBeaconCommit","lmsCommitUrl","dataCommitFormat","commitRequestDataType","autoProgress","logLevel","LOG_LEVEL_ERROR","selfReportSessionTime","alwaysSendTotalTime","strict_errors","xhrHeaders","xhrWithCredentials","responseHandler","xhr","JSON","parse","responseText","hasOwnProperty","status","SCORM_TRUE","errorCode","SCORM_FALSE","requestHandler","commitObject","onLogMessage","messageLevel","logMessage","console","error","LOG_LEVEL_WARNING","warn","LOG_LEVEL_INFO","info","LOG_LEVEL_DEBUG","debug","log","fetchKeepalive","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","apiLogLevel","callbackName","initializeMessage","terminationMessage","returnValue","isTerminated","throwSCORMError","TERMINATED","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","CMIErrorCode","getLmsErrorMessageDetails","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","str","tester","match","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","methodName","scorm2004","structure","split","invalidErrorMessage","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","_checkObjectHasProperty","isInitialized","validateCorrectResponse","index","isNaN","item","childArray","getChildElement","initialized","initialize","push","_foundFirstIndex","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","listenerName","callback","listenerFunctions","listenerSplit","removeIndex","findIndex","obj","splice","filter","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","json","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","key","sort","b","d","forEach","element","loadFromJSON","startingData","currentCMIElement","constructor","stringify","renderCMIToJSONString","_terminateCommit","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","fetch","method","body","headers","credentials","keepalive","when","ScheduledCommit","API","wrapper","bind","commit","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","Utilities","scorm12_constants","LMSInitialize","lmsInitialize","LMSFinish","lmsFinish","LMSGetValue","lmsGetValue","LMSSetValue","lmsSetValue","LMSCommit","lmsCommit","LMSGetLastError","lmsGetLastError","LMSGetErrorString","lmsGetErrorString","LMSGetDiagnostic","lmsGetDiagnostic","terminate","event","getValue","setValue","getLastError","getErrorString","getDiagnostic","_commonSetCMIValue","_commonGetCMIValue","detail","basicMessage","detailMessage","error_descriptions","terminateCommit","cmiExport","renderCMIToJSONObject","core","total_time","getCurrentTotalTime","flattened","flatten","originalStatus","lesson_status","lesson_mode","credit","student_data","mastery_score","score","raw","parseFloat","renderCommitCMI","processHttpRequest","ADL","CMICommentsObject","Responses","ValidLanguages","Regex","scorm2004_constants","scorm2004_error_codes","correct_responses","correct","scorm2004_regex","Scorm2004API","correct_response","current_index","found","count","_count","adl","Initialize","Terminate","lmsTerminate","GetValue","SetValue","Commit","GetLastError","GetErrorString","GetDiagnostic","request","parts","interaction","interactions","DEPENDENCY_NOT_ESTABLISHED","checkDuplicateChoiceResponse","response_type","checkValidResponseType","GENERAL_SET_FAILURE","interaction_type","nodes","delimiter","checkCorrectResponseValue","interaction_count","response","pattern","pattern_index","limit","duplicate","checkDuplicatedPattern","formatRegex","RegExp","format","removeCorrectResponsePrefixes","delimiter2","values","matches","TYPE_MISMATCH","format2","unique","node","seenOrder","seenCase","seenLang","prefixRegex","langMatches","CMILangcr","lang","toLowerCase","mode","completion_threshold","progress_measure","completion_status","scaled_passing_score","scaled","success_status","navRequest","encodeURIComponent","Scorm12CMI","BaseCMI","checkValidFormat","CMIScore","AICCValidationError","aicc_constants","aicc","aicc_regex","aicc_error_codes","throwReadOnlyError","checkAICCValidFormat","regexPattern","allowEmptyString","cmi_children","student_preference","AICCStudentPreferences","AICCCMIStudentData","student_demographics","CMIStudentDemographics","evaluation","CMIEvaluation","paths","CMIPaths","jsonString","suspend_data","launch_data","comments","comments_from_lms","objectives","CMIEvaluationComments","children","comments_children","INVALID_SET_VALUE","errorClass","student_preference_children","windows","lesson_type","CMIString256","text_color","text_location","text_size","video","audio","language","speed","text","CMIStudentPreference","student_data_children","tries","CMITries","tries_during_lesson","max_time_allowed","time_limit_action","CMIStudentData","student_demographics_children","city","clazz","company","country","experience","familiar_name","instructor_name","title","native_language","state","street_address","telephone","years_experience","class","paths_children","CMIPathsObject","location_id","date","CMITime","CMIStatus2","why_left","time_in_element","tries_children","score_children","score_range","invalidTypeCode","invalidRangeCode","VALUE_OUT_OF_RANGE","CMIAttemptRecords","attempt_records_children","content","location","scorm12_regex","checkValidRange","rangePattern","ranges","getTime","decimalRegex","CMIDecimal","_children","Scorm12ValidationError","Util","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwInvalidValueError","check12ValidFormat","check12ValidRange","CMICore","CMIObjectives","CMIInteractions","_version","CMIString4096","start_time","core_children","student_id","student_name","lesson_location","CMIStatus","entry","exit","CMIExit","session_time","CMITimespan","sessionTime","startTime","seconds","getSecondsAsHHMMSS","addHHMMSSTimeStrings","objectives_children","CMISInteger","audio_range","speed_range","text_range","interactions_children","correct_responses_children","id","CMIIdentifier","CMIType","weighting","weighting_range","student_response","CMIFeedback","CMIResult","latency","NAVEvent","Scorm2004ValidationError","learner_responses","learner","throwTypeMismatchError","throwDependencyNotEstablishedError","throwGeneralSetError","check2004ValidFormat","check2004ValidRange","learner_preference","CMILearnerPreference","Scorm2004CMIScore","comments_from_learner","CMICommentsFromLearner","CMICommentsFromLMS","CMICStatus","learner_id","learner_name","CMIString1000","progress_range","CMISStatus","CMIString64000","getSecondsAsISODuration","addTwoDurations","audio_level","CMILang","delivery_speed","audio_captioning","CMILongIdentifier","timestamp","learner_response","description","CMILangString250","scaled_range","readOnlyAfterInit","comment","CMILangString4000","CMIString250","ADLNav","request_valid","ADLNavRequestValid","_target","_","previous","continue","LOG_LEVEL_NONE","INITIALIZATION_FAILED","INITIALIZED","TERMINATION_FAILURE","ARGUMENT_ERROR","GENERAL_GET_FAILURE","GENERAL_COMMIT_FAILURE","UNIMPLEMENTED_ELEMENT","MULTIPLE_TERMINATIONS","CMIInteger","CMIIndex","CMIString200","CMIString4000","CMILangString250cr","CMIShortIdentifier","CMIIndexStore","NAVBoolean","NAVTarget","scorm12_errors","aicc_errors","scorm2004_errors","errorMessage","detailedMessage","SECONDS_PER_SECOND","SECONDS_PER_MINUTE","SECONDS_PER_HOUR","SECONDS_PER_DAY","designations","totalSeconds","hours","floor","dateObj","minutes","getUTCMinutes","getSeconds","ms","msStr","countDecimals","toFixed","duration","remainder","sign","current_seconds","getTimeAsSeconds","timeString","timeRegex","getDurationAsSeconds","durationRegex","exec","years","months","days","first","second","data","recurse","cur","prop","isArray","l","isEmpty","p","regex","m","num","window"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/scorm-again.min.js b/dist/scorm-again.min.js index 45af289..fc759c8 100644 --- a/dist/scorm-again.min.js +++ b/dist/scorm-again.min.js @@ -7,7 +7,7 @@ \*********************/function(r,e,t){"use strict";t.r(e),t.d(e,{default:function(){return d}});var e=t(/*! ./Scorm12API */"./src/Scorm12API.js"),o=t(/*! ./cmi/aicc_cmi */"./src/cmi/aicc_cmi.js"),h=t(/*! ./cmi/scorm12_cmi */"./src/cmi/scorm12_cmi.js");function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}function a(r){for(var e=1;ee.length)&&(t=e.length);for(var n=0,r=new Array(t);n=this.apiLogLevel&&this.settings.onLogMessage(r,n)}},{key:"formatMessage",value:function(e,t,n){for(var r="",i=20-(r+=e).length,o=0;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=this.apiLogLevel&&this.settings.onLogMessage(r,n)}},{key:"formatMessage",value:function(e,t,n){for(var r="",i=20-(r+=e).length,o=0;o=parseFloat(this.cmi.student_data.mastery_score)?this.cmi.core.lesson_status="passed":this.cmi.core.lesson_status="failed"):"browse"===this.cmi.core.lesson_mode&&""===((null===(i=this.startingData)||void 0===i||null===(n=i.cmi)||void 0===n||null===(r=n.core)||void 0===r?void 0:r.lesson_status)||"")&&"not attempted"===t&&(this.cmi.core.lesson_status="browsed"));var t,n,r,i=this.renderCommitCMI(e||this.settings.alwaysSendTotalTime);return this.apiLogLevel===u.LOG_LEVEL_DEBUG&&(console.debug("Commit (terminated: "+(e?"yes":"no")+"): "),console.debug(i)),this.settings.lmsCommitUrl?this.processHttpRequest(this.settings.lmsCommitUrl,i,e):u.SCORM_TRUE}}])&&f(t.prototype,e),n&&f(t,n),Object.defineProperty(t,"prototype",{writable:!1}),i}(e.default)},"./src/Scorm2004API.js": diff --git a/dist/scorm12.js b/dist/scorm12.js index 5ba77a2..eab15f0 100644 --- a/dist/scorm12.js +++ b/dist/scorm12.js @@ -603,9 +603,7 @@ var BaseAPI = /*#__PURE__*/function () { value: function initialize(callbackName, initializeMessage, terminationMessage) { var returnValue = global_constants.SCORM_FALSE; - if (this.isInitialized()) { - this.throwSCORMError(_classPrivateFieldGet(this, _error_codes).INITIALIZED, initializeMessage); - } else if (this.isTerminated()) { + if (this.isTerminated()) { this.throwSCORMError(_classPrivateFieldGet(this, _error_codes).TERMINATED, terminationMessage); } else { if (this.selfReportSessionTime) { diff --git a/dist/scorm12.js.map b/dist/scorm12.js.map index 9d7eead..8d01590 100644 --- a/dist/scorm12.js.map +++ b/dist/scorm12.js.map @@ -1 +1 @@ -{"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 fetchKeepalive: function() {\n return true;\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: settings.fetchKeepalive(),\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: '^.*$',\n CMIString4096: '^.*$',\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: '^.*$',\n CMIFeedback: '^.*$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMIStatus: '^(passed|completed|failed|incomplete|browsed)$',\n CMIStatus2: '^(passed|completed|failed|incomplete|browsed|not attempted)$',\n CMIExit: '^(time-out|suspend|logout|)$',\n CMIType: '^(true-false|choice|fill-in|matching|performance|sequencing|likert|numeric)$',\n CMIResult: '^(correct|wrong|unanticipated|neutral|([0-9]{0,3})?(\\\\.[0-9]*)?)$', // eslint-disable-line\n NAVEvent: '^(previous|continue)$',\n\n // Data ranges\n score_range: '0#100',\n audio_range: '-1#100',\n speed_range: '-100#100',\n weighting_range: '-100#100',\n text_range: '-1#1',\n};\n\nconst aicc = {\n ...scorm12, ...{\n CMIIdentifier: '^\\\\w{1,255}$',\n },\n};\n\nconst scorm2004 = {\n CMIString200: '^[\\\\u0000-\\\\uFFFF]{0,200}$',\n CMIString250: '^[\\\\u0000-\\\\uFFFF]{0,250}$',\n CMIString1000: '^[\\\\u0000-\\\\uFFFF]{0,1000}$',\n CMIString4000: '^[\\\\u0000-\\\\uFFFF]{0,4000}$',\n CMIString64000: '^[\\\\u0000-\\\\uFFFF]{0,64000}$',\n CMILang: '^([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?$|^$', // eslint-disable-line\n CMILangString250: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,250}$)?$', // eslint-disable-line\n CMILangcr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\}))(.*?)$', // eslint-disable-line\n CMILangString250cr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\})?(.{0,250})?)?$', // eslint-disable-line\n CMILangString4000: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,4000}$)?$', // eslint-disable-line\n CMITime: '^(19[7-9]{1}[0-9]{1}|20[0-2]{1}[0-9]{1}|203[0-8]{1})((-(0[1-9]{1}|1[0-2]{1}))((-(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1}))(T([0-1]{1}[0-9]{1}|2[0-3]{1})((:[0-5]{1}[0-9]{1})((:[0-5]{1}[0-9]{1})((\\\\.[0-9]{1,2})((Z|([+|-]([0-1]{1}[0-9]{1}|2[0-3]{1})))(:[0-5]{1}[0-9]{1})?)?)?)?)?)?)?)?$',\n CMITimespan: '^P(?:([.,\\\\d]+)Y)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)W)?(?:([.,\\\\d]+)D)?(?:T?(?:([.,\\\\d]+)H)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)S)?)?$',\n CMIInteger: '^\\\\d+$',\n CMISInteger: '^-?([0-9]+)$',\n CMIDecimal: '^-?([0-9]{1,5})(\\\\.[0-9]{1,18})?$',\n CMIIdentifier: '^\\\\S{1,250}[a-zA-Z0-9]$',\n CMIShortIdentifier: '^[\\\\w\\\\.\\\\-\\\\_]{1,250}$', // eslint-disable-line\n CMILongIdentifier: '^(?:(?!urn:)\\\\S{1,4000}|urn:[A-Za-z0-9-]{1,31}:\\\\S{1,4000}|.{1,4000})$', // need to re-examine this\n CMIFeedback: '^.*$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n CMIIndexStore: '.N(\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMICStatus: '^(completed|incomplete|not attempted|unknown)$',\n CMISStatus: '^(passed|failed|unknown)$',\n CMIExit: '^(time-out|suspend|logout|normal)$',\n CMIType: '^(true-false|choice|fill-in|long-fill-in|matching|performance|sequencing|likert|numeric|other)$',\n CMIResult: '^(correct|incorrect|unanticipated|neutral|-?([0-9]{1,4})(\\\\.[0-9]{1,18})?)$',\n NAVEvent: '^(previous|continue|exit|exitAll|abandon|abandonAll|suspendAll|\\{target=\\\\S{0,200}[a-zA-Z0-9]\\}choice|jump)$', // eslint-disable-line\n NAVBoolean: '^(unknown|true|false$)',\n NAVTarget: '^(previous|continue|choice.{target=\\\\S{0,200}[a-zA-Z0-9]})$',\n\n // Data ranges\n scaled_range: '-1#1',\n audio_range: '0#*',\n speed_range: '0#*',\n text_range: '-1#1',\n progress_range: '0#1',\n};\n\nconst Regex = {\n aicc: aicc,\n scorm12: scorm12,\n scorm2004: scorm2004,\n};\n\nexport default Regex;\n","// @flow\n\nimport APIConstants from './constants/api_constants';\n\nconst scorm12_errors = APIConstants.scorm12.error_descriptions;\nconst aicc_errors = APIConstants.aicc.error_descriptions;\nconst scorm2004_errors = APIConstants.scorm2004.error_descriptions;\n\n/**\n * Base Validation Exception\n */\nexport class ValidationError extends Error {\n /**\n * Constructor to take in an error message and code\n * @param {number} errorCode\n * @param {string} errorMessage\n * @param {string} detailedMessage\n */\n constructor(errorCode: number, errorMessage: String, detailedMessage: String) {\n super(errorMessage);\n this.#errorCode = errorCode;\n this.#errorMessage = errorMessage;\n this.#detailedMessage = detailedMessage;\n }\n\n #errorCode;\n #errorMessage;\n #detailedMessage;\n\n /**\n * Getter for #errorCode\n * @return {number}\n */\n get errorCode() {\n return this.#errorCode;\n }\n\n /**\n * Getter for #errorMessage\n * @return {string}\n */\n get errorMessage() {\n return this.#errorMessage;\n }\n\n /**\n * Getter for #detailedMessage\n * @return {string}\n */\n get detailedMessage() {\n return this.#detailedMessage;\n }\n}\n\n/**\n * SCORM 1.2 Validation Error\n */\nexport class Scorm12ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm12_errors, String(errorCode))) {\n super(errorCode, scorm12_errors[String(errorCode)].basicMessage, scorm12_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm12_errors['101'].basicMessage, scorm12_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * AICC Validation Error\n */\nexport class AICCValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(aicc_errors, String(errorCode))) {\n super(errorCode, aicc_errors[String(errorCode)].basicMessage, aicc_errors[String(errorCode)].detailMessage);\n } else {\n super(101, aicc_errors['101'].basicMessage, aicc_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * SCORM 2004 Validation Error\n */\nexport class Scorm2004ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {\n super(errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm2004_errors['101'].basicMessage, scorm2004_errors['101'].detailMessage);\n }\n }\n}\n","// @flow\nexport const SECONDS_PER_SECOND = 1.0;\nexport const SECONDS_PER_MINUTE = 60;\nexport const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE;\nexport const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;\n\nconst designations = [\n ['D', SECONDS_PER_DAY],\n ['H', SECONDS_PER_HOUR],\n ['M', SECONDS_PER_MINUTE],\n ['S', SECONDS_PER_SECOND],\n];\n\n/**\n * Converts a Number to a String of HH:MM:SS\n *\n * @param {Number} totalSeconds\n * @return {string}\n */\nexport function getSecondsAsHHMMSS(totalSeconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!totalSeconds || totalSeconds <= 0) {\n return '00:00:00';\n }\n\n const hours = Math.floor(totalSeconds / SECONDS_PER_HOUR);\n\n const dateObj = new Date(totalSeconds * 1000);\n const minutes = dateObj.getUTCMinutes();\n // make sure we add any possible decimal value\n const seconds = dateObj.getSeconds();\n const ms = totalSeconds % 1.0;\n let msStr = '';\n if (countDecimals(ms) > 0) {\n if (countDecimals(ms) > 2) {\n msStr = ms.toFixed(2);\n } else {\n msStr = String(ms);\n }\n msStr = '.' + msStr.split('.')[1];\n }\n\n return (hours + ':' + minutes + ':' + seconds).replace(/\\b\\d\\b/g,\n '0$&') + msStr;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {Number} seconds\n * @return {String}\n */\nexport function getSecondsAsISODuration(seconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!seconds || seconds <= 0) {\n return 'PT0S';\n }\n\n let duration = 'P';\n let remainder = seconds;\n\n designations.forEach(([sign, current_seconds]) => {\n let value = Math.floor(remainder / current_seconds);\n\n remainder = remainder % current_seconds;\n if (countDecimals(remainder) > 2) {\n remainder = Number(Number(remainder).toFixed(2));\n }\n // If we have anything left in the remainder, and we're currently adding\n // seconds to the duration, go ahead and add the decimal to the seconds\n if (sign === 'S' && remainder > 0) {\n value += remainder;\n }\n\n if (value) {\n if ((duration.indexOf('D') > 0 ||\n sign === 'H' || sign === 'M' || sign === 'S') &&\n duration.indexOf('T') === -1) {\n duration += 'T';\n }\n duration += `${value}${sign}`;\n }\n });\n\n return duration;\n}\n\n/**\n * Calculate the number of seconds from HH:MM:SS.DDDDDD\n *\n * @param {string} timeString\n * @param {RegExp} timeRegex\n * @return {number}\n */\nexport function getTimeAsSeconds(timeString: String, timeRegex: RegExp) {\n if (!timeString || typeof timeString !== 'string' ||\n !timeString.match(timeRegex)) {\n return 0;\n }\n const parts = timeString.split(':');\n const hours = Number(parts[0]);\n const minutes = Number(parts[1]);\n const seconds = Number(parts[2]);\n return (hours * 3600) + (minutes * 60) + seconds;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {string} duration\n * @param {RegExp} durationRegex\n * @return {number}\n */\nexport function getDurationAsSeconds(duration: String, durationRegex: RegExp) {\n if (!duration || !duration.match(durationRegex)) {\n return 0;\n }\n\n const [, years, months, , days, hours, minutes, seconds] = new RegExp(\n durationRegex).exec(duration) || [];\n\n let result = 0.0;\n\n result += (Number(seconds) * 1.0 || 0.0);\n result += (Number(minutes) * 60.0 || 0.0);\n result += (Number(hours) * 3600.0 || 0.0);\n result += (Number(days) * (60 * 60 * 24.0) || 0.0);\n result += (Number(years) * (60 * 60 * 24 * 365.0) || 0.0);\n\n return result;\n}\n\n/**\n * Adds together two ISO8601 Duration strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} durationRegex\n * @return {string}\n */\nexport function addTwoDurations(\n first: String,\n second: String,\n durationRegex: RegExp) {\n return getSecondsAsISODuration(\n getDurationAsSeconds(first, durationRegex) +\n getDurationAsSeconds(second, durationRegex),\n );\n}\n\n/**\n * Add together two HH:MM:SS.DD strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} timeRegex\n * @return {string}\n */\nexport function addHHMMSSTimeStrings(\n first: String,\n second: String,\n timeRegex: RegExp) {\n return getSecondsAsHHMMSS(\n getTimeAsSeconds(first, timeRegex) +\n getTimeAsSeconds(\n second, timeRegex),\n );\n}\n\n/**\n * Flatten a JSON object down to string paths for each values\n * @param {object} data\n * @return {object}\n */\nexport function flatten(data) {\n const result = {};\n\n /**\n * Recurse through the object\n * @param {*} cur\n * @param {*} prop\n */\n function recurse(cur, prop) {\n if (Object(cur) !== cur) {\n result[prop] = cur;\n } else if (Array.isArray(cur)) {\n for (let i = 0, l = cur.length; i < l; i++) {\n recurse(cur[i], prop + '[' + i + ']');\n if (l === 0) result[prop] = [];\n }\n } else {\n let isEmpty = true;\n for (const p in cur) {\n if ({}.hasOwnProperty.call(cur, p)) {\n isEmpty = false;\n recurse(cur[p], prop ? prop + '.' + p : p);\n }\n }\n if (isEmpty && prop) result[prop] = {};\n }\n }\n\n recurse(data, '');\n return result;\n}\n\n/**\n * Un-flatten a flat JSON object\n * @param {object} data\n * @return {object}\n */\nexport function unflatten(data) {\n 'use strict';\n if (Object(data) !== data || Array.isArray(data)) return data;\n const regex = /\\.?([^.[\\]]+)|\\[(\\d+)]/g;\n const result = {};\n for (const p in data) {\n if ({}.hasOwnProperty.call(data, p)) {\n let cur = result;\n let prop = '';\n let m = regex.exec(p);\n while (m) {\n cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));\n prop = m[2] || m[1];\n m = regex.exec(p);\n }\n cur[prop] = data[p];\n }\n }\n return result[''] || result;\n}\n\n/**\n * Counts the number of decimal places\n * @param {number} num\n * @return {number}\n */\nexport function countDecimals(num: number) {\n if (Math.floor(num) === num || String(num).indexOf('.') < 0) return 0;\n const parts = num.toString().split('.')[1];\n return parts.length || 0;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Scorm12API from '../Scorm12API';\n\nwindow.Scorm12API = Scorm12API;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectProto","prototype","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","value","type","isObjectLike","isSymbol","call","other","valueOf","replace","isBinary","test","slice","module","exports","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","BaseAPI","error_codes","settings","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","fetchKeepalive","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","apiLogLevel","callbackName","initializeMessage","terminationMessage","returnValue","isInitialized","throwSCORMError","INITIALIZED","isTerminated","TERMINATED","cmi","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","CMIElement","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","CMIErrorCode","getLmsErrorMessageDetails","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","str","tester","match","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","methodName","scorm2004","structure","split","foundFirstIndex","invalidErrorMessage","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","_checkObjectHasProperty","stringMatches","validateCorrectResponse","index","isNaN","item","childArray","newChild","getChildElement","initialized","initialize","push","_foundFirstIndex","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","listenerName","callback","listenerFunctions","listenerSplit","removeIndex","findIndex","obj","splice","filter","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","json","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","key","sort","b","d","forEach","element","loadFromJSON","startingData","currentCMIElement","constructor","stringify","renderCMIToJSONString","_terminateCommit","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","fetch","method","body","headers","credentials","keepalive","when","ScheduledCommit","API","wrapper","bind","commit","CMI","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","NAV","Utilities","scorm12_constants","Scorm12API","finalSettings","mastery_override","nav","LMSInitialize","lmsInitialize","LMSFinish","lmsFinish","LMSGetValue","lmsGetValue","LMSSetValue","lmsSetValue","LMSCommit","lmsCommit","LMSGetLastError","lmsGetLastError","LMSGetErrorString","lmsGetErrorString","LMSGetDiagnostic","lmsGetDiagnostic","terminate","event","getValue","setValue","getLastError","getErrorString","getDiagnostic","_commonSetCMIValue","_commonGetCMIValue","detail","basicMessage","detailMessage","error_descriptions","newAPI","terminateCommit","cmiExport","renderCMIToJSONObject","core","total_time","getCurrentTotalTime","flattened","flatten","originalStatus","lesson_status","lesson_mode","credit","student_data","mastery_score","score","raw","parseFloat","renderCommitCMI","processHttpRequest","Regex","scorm12_regex","checkValidFormat","regexPattern","errorClass","allowEmptyString","formatRegex","RegExp","matches","checkValidRange","rangePattern","ranges","BaseCMI","getTime","CMIScore","score_children","score_range","invalidTypeCode","invalidRangeCode","decimalRegex","INVALID_SET_VALUE","TYPE_MISMATCH","VALUE_OUT_OF_RANGE","CMIDecimal","_children","jsonString","children","_count","Scorm12ValidationError","Util","throwReadOnlyError","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwInvalidValueError","check12ValidFormat","check12ValidRange","cmi_children","CMICore","objectives","CMIObjectives","CMIStudentData","student_preference","CMIStudentPreference","interactions","CMIInteractions","suspend_data","launch_data","comments","comments_from_lms","_version","CMIString4096","start_time","core_children","student_id","student_name","lesson_location","CMIString256","CMIStatus","CMIStatus2","entry","exit","CMIExit","session_time","CMITimespan","sessionTime","startTime","seconds","getSecondsAsHHMMSS","addHHMMSSTimeStrings","objectives_children","student_data_children","max_time_allowed","time_limit_action","student_preference_children","audio","CMISInteger","audio_range","language","speed","speed_range","text","text_range","interactions_children","correct_responses","correct_responses_children","id","CMIIdentifier","CMITime","CMIType","weighting","weighting_range","student_response","CMIFeedback","CMIResult","latency","pattern","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","AICCValidationError","Scorm2004ValidationError","SECONDS_PER_SECOND","SECONDS_PER_MINUTE","SECONDS_PER_HOUR","SECONDS_PER_DAY","designations","totalSeconds","hours","floor","dateObj","minutes","getUTCMinutes","getSeconds","ms","msStr","countDecimals","toFixed","getSecondsAsISODuration","duration","remainder","sign","current_seconds","getTimeAsSeconds","timeString","timeRegex","parts","getDurationAsSeconds","durationRegex","exec","years","months","days","addTwoDurations","first","second","data","recurse","cur","prop","isArray","l","isEmpty","p","regex","m","num","window"],"sourceRoot":""} \ No newline at end of file +{"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 fetchKeepalive: function() {\n return true;\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.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: settings.fetchKeepalive(),\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: '^.*$',\n CMIString4096: '^.*$',\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: '^.*$',\n CMIFeedback: '^.*$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMIStatus: '^(passed|completed|failed|incomplete|browsed)$',\n CMIStatus2: '^(passed|completed|failed|incomplete|browsed|not attempted)$',\n CMIExit: '^(time-out|suspend|logout|)$',\n CMIType: '^(true-false|choice|fill-in|matching|performance|sequencing|likert|numeric)$',\n CMIResult: '^(correct|wrong|unanticipated|neutral|([0-9]{0,3})?(\\\\.[0-9]*)?)$', // eslint-disable-line\n NAVEvent: '^(previous|continue)$',\n\n // Data ranges\n score_range: '0#100',\n audio_range: '-1#100',\n speed_range: '-100#100',\n weighting_range: '-100#100',\n text_range: '-1#1',\n};\n\nconst aicc = {\n ...scorm12, ...{\n CMIIdentifier: '^\\\\w{1,255}$',\n },\n};\n\nconst scorm2004 = {\n CMIString200: '^[\\\\u0000-\\\\uFFFF]{0,200}$',\n CMIString250: '^[\\\\u0000-\\\\uFFFF]{0,250}$',\n CMIString1000: '^[\\\\u0000-\\\\uFFFF]{0,1000}$',\n CMIString4000: '^[\\\\u0000-\\\\uFFFF]{0,4000}$',\n CMIString64000: '^[\\\\u0000-\\\\uFFFF]{0,64000}$',\n CMILang: '^([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?$|^$', // eslint-disable-line\n CMILangString250: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,250}$)?$', // eslint-disable-line\n CMILangcr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\}))(.*?)$', // eslint-disable-line\n CMILangString250cr: '^((\\{lang=([a-zA-Z]{2,3}|i|x)?(\\-[a-zA-Z0-9\\-]{2,8})?\\})?(.{0,250})?)?$', // eslint-disable-line\n CMILangString4000: '^(\\{lang=([a-zA-Z]{2,3}|i|x)(\\-[a-zA-Z0-9\\-]{2,8})?\\})?((?!\\{.*$).{0,4000}$)?$', // eslint-disable-line\n CMITime: '^(19[7-9]{1}[0-9]{1}|20[0-2]{1}[0-9]{1}|203[0-8]{1})((-(0[1-9]{1}|1[0-2]{1}))((-(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]{1}))(T([0-1]{1}[0-9]{1}|2[0-3]{1})((:[0-5]{1}[0-9]{1})((:[0-5]{1}[0-9]{1})((\\\\.[0-9]{1,2})((Z|([+|-]([0-1]{1}[0-9]{1}|2[0-3]{1})))(:[0-5]{1}[0-9]{1})?)?)?)?)?)?)?)?$',\n CMITimespan: '^P(?:([.,\\\\d]+)Y)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)W)?(?:([.,\\\\d]+)D)?(?:T?(?:([.,\\\\d]+)H)?(?:([.,\\\\d]+)M)?(?:([.,\\\\d]+)S)?)?$',\n CMIInteger: '^\\\\d+$',\n CMISInteger: '^-?([0-9]+)$',\n CMIDecimal: '^-?([0-9]{1,5})(\\\\.[0-9]{1,18})?$',\n CMIIdentifier: '^\\\\S{1,250}[a-zA-Z0-9]$',\n CMIShortIdentifier: '^[\\\\w\\\\.\\\\-\\\\_]{1,250}$', // eslint-disable-line\n CMILongIdentifier: '^(?:(?!urn:)\\\\S{1,4000}|urn:[A-Za-z0-9-]{1,31}:\\\\S{1,4000}|.{1,4000})$', // need to re-examine this\n CMIFeedback: '^.*$', // This must be redefined\n CMIIndex: '[._](\\\\d+).',\n CMIIndexStore: '.N(\\\\d+).',\n\n // Vocabulary Data Type Definition\n CMICStatus: '^(completed|incomplete|not attempted|unknown)$',\n CMISStatus: '^(passed|failed|unknown)$',\n CMIExit: '^(time-out|suspend|logout|normal)$',\n CMIType: '^(true-false|choice|fill-in|long-fill-in|matching|performance|sequencing|likert|numeric|other)$',\n CMIResult: '^(correct|incorrect|unanticipated|neutral|-?([0-9]{1,4})(\\\\.[0-9]{1,18})?)$',\n NAVEvent: '^(previous|continue|exit|exitAll|abandon|abandonAll|suspendAll|\\{target=\\\\S{0,200}[a-zA-Z0-9]\\}choice|jump)$', // eslint-disable-line\n NAVBoolean: '^(unknown|true|false$)',\n NAVTarget: '^(previous|continue|choice.{target=\\\\S{0,200}[a-zA-Z0-9]})$',\n\n // Data ranges\n scaled_range: '-1#1',\n audio_range: '0#*',\n speed_range: '0#*',\n text_range: '-1#1',\n progress_range: '0#1',\n};\n\nconst Regex = {\n aicc: aicc,\n scorm12: scorm12,\n scorm2004: scorm2004,\n};\n\nexport default Regex;\n","// @flow\n\nimport APIConstants from './constants/api_constants';\n\nconst scorm12_errors = APIConstants.scorm12.error_descriptions;\nconst aicc_errors = APIConstants.aicc.error_descriptions;\nconst scorm2004_errors = APIConstants.scorm2004.error_descriptions;\n\n/**\n * Base Validation Exception\n */\nexport class ValidationError extends Error {\n /**\n * Constructor to take in an error message and code\n * @param {number} errorCode\n * @param {string} errorMessage\n * @param {string} detailedMessage\n */\n constructor(errorCode: number, errorMessage: String, detailedMessage: String) {\n super(errorMessage);\n this.#errorCode = errorCode;\n this.#errorMessage = errorMessage;\n this.#detailedMessage = detailedMessage;\n }\n\n #errorCode;\n #errorMessage;\n #detailedMessage;\n\n /**\n * Getter for #errorCode\n * @return {number}\n */\n get errorCode() {\n return this.#errorCode;\n }\n\n /**\n * Getter for #errorMessage\n * @return {string}\n */\n get errorMessage() {\n return this.#errorMessage;\n }\n\n /**\n * Getter for #detailedMessage\n * @return {string}\n */\n get detailedMessage() {\n return this.#detailedMessage;\n }\n}\n\n/**\n * SCORM 1.2 Validation Error\n */\nexport class Scorm12ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm12_errors, String(errorCode))) {\n super(errorCode, scorm12_errors[String(errorCode)].basicMessage, scorm12_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm12_errors['101'].basicMessage, scorm12_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * AICC Validation Error\n */\nexport class AICCValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(aicc_errors, String(errorCode))) {\n super(errorCode, aicc_errors[String(errorCode)].basicMessage, aicc_errors[String(errorCode)].detailMessage);\n } else {\n super(101, aicc_errors['101'].basicMessage, aicc_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * SCORM 2004 Validation Error\n */\nexport class Scorm2004ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {\n super(errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm2004_errors['101'].basicMessage, scorm2004_errors['101'].detailMessage);\n }\n }\n}\n","// @flow\nexport const SECONDS_PER_SECOND = 1.0;\nexport const SECONDS_PER_MINUTE = 60;\nexport const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE;\nexport const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;\n\nconst designations = [\n ['D', SECONDS_PER_DAY],\n ['H', SECONDS_PER_HOUR],\n ['M', SECONDS_PER_MINUTE],\n ['S', SECONDS_PER_SECOND],\n];\n\n/**\n * Converts a Number to a String of HH:MM:SS\n *\n * @param {Number} totalSeconds\n * @return {string}\n */\nexport function getSecondsAsHHMMSS(totalSeconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!totalSeconds || totalSeconds <= 0) {\n return '00:00:00';\n }\n\n const hours = Math.floor(totalSeconds / SECONDS_PER_HOUR);\n\n const dateObj = new Date(totalSeconds * 1000);\n const minutes = dateObj.getUTCMinutes();\n // make sure we add any possible decimal value\n const seconds = dateObj.getSeconds();\n const ms = totalSeconds % 1.0;\n let msStr = '';\n if (countDecimals(ms) > 0) {\n if (countDecimals(ms) > 2) {\n msStr = ms.toFixed(2);\n } else {\n msStr = String(ms);\n }\n msStr = '.' + msStr.split('.')[1];\n }\n\n return (hours + ':' + minutes + ':' + seconds).replace(/\\b\\d\\b/g,\n '0$&') + msStr;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {Number} seconds\n * @return {String}\n */\nexport function getSecondsAsISODuration(seconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!seconds || seconds <= 0) {\n return 'PT0S';\n }\n\n let duration = 'P';\n let remainder = seconds;\n\n designations.forEach(([sign, current_seconds]) => {\n let value = Math.floor(remainder / current_seconds);\n\n remainder = remainder % current_seconds;\n if (countDecimals(remainder) > 2) {\n remainder = Number(Number(remainder).toFixed(2));\n }\n // If we have anything left in the remainder, and we're currently adding\n // seconds to the duration, go ahead and add the decimal to the seconds\n if (sign === 'S' && remainder > 0) {\n value += remainder;\n }\n\n if (value) {\n if ((duration.indexOf('D') > 0 ||\n sign === 'H' || sign === 'M' || sign === 'S') &&\n duration.indexOf('T') === -1) {\n duration += 'T';\n }\n duration += `${value}${sign}`;\n }\n });\n\n return duration;\n}\n\n/**\n * Calculate the number of seconds from HH:MM:SS.DDDDDD\n *\n * @param {string} timeString\n * @param {RegExp} timeRegex\n * @return {number}\n */\nexport function getTimeAsSeconds(timeString: String, timeRegex: RegExp) {\n if (!timeString || typeof timeString !== 'string' ||\n !timeString.match(timeRegex)) {\n return 0;\n }\n const parts = timeString.split(':');\n const hours = Number(parts[0]);\n const minutes = Number(parts[1]);\n const seconds = Number(parts[2]);\n return (hours * 3600) + (minutes * 60) + seconds;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {string} duration\n * @param {RegExp} durationRegex\n * @return {number}\n */\nexport function getDurationAsSeconds(duration: String, durationRegex: RegExp) {\n if (!duration || !duration.match(durationRegex)) {\n return 0;\n }\n\n const [, years, months, , days, hours, minutes, seconds] = new RegExp(\n durationRegex).exec(duration) || [];\n\n let result = 0.0;\n\n result += (Number(seconds) * 1.0 || 0.0);\n result += (Number(minutes) * 60.0 || 0.0);\n result += (Number(hours) * 3600.0 || 0.0);\n result += (Number(days) * (60 * 60 * 24.0) || 0.0);\n result += (Number(years) * (60 * 60 * 24 * 365.0) || 0.0);\n\n return result;\n}\n\n/**\n * Adds together two ISO8601 Duration strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} durationRegex\n * @return {string}\n */\nexport function addTwoDurations(\n first: String,\n second: String,\n durationRegex: RegExp) {\n return getSecondsAsISODuration(\n getDurationAsSeconds(first, durationRegex) +\n getDurationAsSeconds(second, durationRegex),\n );\n}\n\n/**\n * Add together two HH:MM:SS.DD strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} timeRegex\n * @return {string}\n */\nexport function addHHMMSSTimeStrings(\n first: String,\n second: String,\n timeRegex: RegExp) {\n return getSecondsAsHHMMSS(\n getTimeAsSeconds(first, timeRegex) +\n getTimeAsSeconds(\n second, timeRegex),\n );\n}\n\n/**\n * Flatten a JSON object down to string paths for each values\n * @param {object} data\n * @return {object}\n */\nexport function flatten(data) {\n const result = {};\n\n /**\n * Recurse through the object\n * @param {*} cur\n * @param {*} prop\n */\n function recurse(cur, prop) {\n if (Object(cur) !== cur) {\n result[prop] = cur;\n } else if (Array.isArray(cur)) {\n for (let i = 0, l = cur.length; i < l; i++) {\n recurse(cur[i], prop + '[' + i + ']');\n if (l === 0) result[prop] = [];\n }\n } else {\n let isEmpty = true;\n for (const p in cur) {\n if ({}.hasOwnProperty.call(cur, p)) {\n isEmpty = false;\n recurse(cur[p], prop ? prop + '.' + p : p);\n }\n }\n if (isEmpty && prop) result[prop] = {};\n }\n }\n\n recurse(data, '');\n return result;\n}\n\n/**\n * Un-flatten a flat JSON object\n * @param {object} data\n * @return {object}\n */\nexport function unflatten(data) {\n 'use strict';\n if (Object(data) !== data || Array.isArray(data)) return data;\n const regex = /\\.?([^.[\\]]+)|\\[(\\d+)]/g;\n const result = {};\n for (const p in data) {\n if ({}.hasOwnProperty.call(data, p)) {\n let cur = result;\n let prop = '';\n let m = regex.exec(p);\n while (m) {\n cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));\n prop = m[2] || m[1];\n m = regex.exec(p);\n }\n cur[prop] = data[p];\n }\n }\n return result[''] || result;\n}\n\n/**\n * Counts the number of decimal places\n * @param {number} num\n * @return {number}\n */\nexport function countDecimals(num: number) {\n if (Math.floor(num) === num || String(num).indexOf('.') < 0) return 0;\n const parts = num.toString().split('.')[1];\n return parts.length || 0;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Scorm12API from '../Scorm12API';\n\nwindow.Scorm12API = Scorm12API;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectProto","prototype","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","value","type","isObjectLike","isSymbol","call","other","valueOf","replace","isBinary","test","slice","module","exports","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","BaseAPI","error_codes","settings","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","fetchKeepalive","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","apiLogLevel","callbackName","initializeMessage","terminationMessage","returnValue","isTerminated","throwSCORMError","TERMINATED","cmi","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","CMIElement","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","CMIErrorCode","getLmsErrorMessageDetails","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","str","tester","match","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","methodName","scorm2004","structure","split","foundFirstIndex","invalidErrorMessage","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","_checkObjectHasProperty","isInitialized","stringMatches","validateCorrectResponse","index","isNaN","item","childArray","newChild","getChildElement","initialized","initialize","push","_foundFirstIndex","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","listenerName","callback","listenerFunctions","listenerSplit","removeIndex","findIndex","obj","splice","filter","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","json","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","key","sort","b","d","forEach","element","loadFromJSON","startingData","currentCMIElement","constructor","stringify","renderCMIToJSONString","_terminateCommit","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","fetch","method","body","headers","credentials","keepalive","when","ScheduledCommit","API","wrapper","bind","commit","CMI","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","NAV","Utilities","scorm12_constants","Scorm12API","finalSettings","mastery_override","nav","LMSInitialize","lmsInitialize","LMSFinish","lmsFinish","LMSGetValue","lmsGetValue","LMSSetValue","lmsSetValue","LMSCommit","lmsCommit","LMSGetLastError","lmsGetLastError","LMSGetErrorString","lmsGetErrorString","LMSGetDiagnostic","lmsGetDiagnostic","terminate","event","getValue","setValue","getLastError","getErrorString","getDiagnostic","_commonSetCMIValue","_commonGetCMIValue","detail","basicMessage","detailMessage","error_descriptions","newAPI","terminateCommit","cmiExport","renderCMIToJSONObject","core","total_time","getCurrentTotalTime","flattened","flatten","originalStatus","lesson_status","lesson_mode","credit","student_data","mastery_score","score","raw","parseFloat","renderCommitCMI","processHttpRequest","Regex","scorm12_regex","checkValidFormat","regexPattern","errorClass","allowEmptyString","formatRegex","RegExp","matches","checkValidRange","rangePattern","ranges","BaseCMI","getTime","CMIScore","score_children","score_range","invalidTypeCode","invalidRangeCode","decimalRegex","INVALID_SET_VALUE","TYPE_MISMATCH","VALUE_OUT_OF_RANGE","CMIDecimal","_children","jsonString","children","_count","Scorm12ValidationError","Util","throwReadOnlyError","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwInvalidValueError","check12ValidFormat","check12ValidRange","cmi_children","CMICore","objectives","CMIObjectives","CMIStudentData","student_preference","CMIStudentPreference","interactions","CMIInteractions","suspend_data","launch_data","comments","comments_from_lms","_version","CMIString4096","start_time","core_children","student_id","student_name","lesson_location","CMIString256","CMIStatus","CMIStatus2","entry","exit","CMIExit","session_time","CMITimespan","sessionTime","startTime","seconds","getSecondsAsHHMMSS","addHHMMSSTimeStrings","objectives_children","student_data_children","max_time_allowed","time_limit_action","student_preference_children","audio","CMISInteger","audio_range","language","speed","speed_range","text","text_range","interactions_children","correct_responses","correct_responses_children","id","CMIIdentifier","CMITime","CMIType","weighting","weighting_range","student_response","CMIFeedback","CMIResult","latency","pattern","NAVEvent","LOG_LEVEL_NONE","comments_children","aicc","student_demographics_children","tries_children","attempt_records_children","paths_children","INITIALIZATION_FAILED","INITIALIZED","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","AICCValidationError","Scorm2004ValidationError","SECONDS_PER_SECOND","SECONDS_PER_MINUTE","SECONDS_PER_HOUR","SECONDS_PER_DAY","designations","totalSeconds","hours","floor","dateObj","minutes","getUTCMinutes","getSeconds","ms","msStr","countDecimals","toFixed","getSecondsAsISODuration","duration","remainder","sign","current_seconds","getTimeAsSeconds","timeString","timeRegex","parts","getDurationAsSeconds","durationRegex","exec","years","months","days","addTwoDurations","first","second","data","recurse","cur","prop","isArray","l","isEmpty","p","regex","m","num","window"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/scorm12.min.js b/dist/scorm12.min.js index 218922b..b702932 100644 --- a/dist/scorm12.min.js +++ b/dist/scorm12.min.js @@ -4,7 +4,7 @@ \***********************************************/function(e,s,t){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _(){return d.Date.now()}var n=NaN,i="[object Symbol]",o=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt,t="object"==(void 0===t.g?"undefined":r(t.g))&&t.g&&t.g.Object===Object&&t.g,f="object"==("undefined"==typeof self?"undefined":r(self))&&self&&self.Object===Object&&self,d=t||f||Function("return this")(),h=Object.prototype.toString,v=Math.max,M=Math.min;function E(e){var t=r(e);return e&&("object"==t||"function"==t)}function m(e){return"symbol"==r(e)||!!(t=e)&&"object"==r(t)&&h.call(e)==i;var t}function b(e){if("number"==typeof e)return e;if(m(e))return n;if("string"!=typeof(e=E(e)?E(t="function"==typeof e.valueOf?e.valueOf():e)?t+"":t:e))return 0===e?e:+e;e=e.replace(o,"");var t=c.test(e);return t||l.test(e)?u(e.slice(2),t?2:8):a.test(e)?n:+e}e.exports=function(f,r,e){var n,i,o,a,s,c,l=0,d=!1,u=!1,t=!0;if("function"!=typeof f)throw new TypeError("Expected a function");function h(e){var t=n,r=i;return n=i=void 0,l=e,a=f.apply(r,t)}function m(e){var t=e-c;return void 0===c||r<=t||t<0||u&&o<=e-l}function p(){var e,t=_();if(m(t))return y(t);s=setTimeout(p,(e=r-((t=t)-c),u?M(e,o-(t-l)):e))}function y(e){return s=void 0,t&&n?h(e):(n=i=void 0,a)}function g(){var e=_(),t=m(e);if(n=arguments,i=this,c=e,t){if(void 0===s)return l=e=c,s=setTimeout(p,r),d?h(e):a;if(u)return s=setTimeout(p,r),h(c)}return void 0===s&&(s=setTimeout(p,r)),a}return r=b(r)||0,E(e)&&(d=!!e.leading,u="maxWait"in e,o=u?v(b(e.maxWait)||0,r):o,t="trailing"in e?!!e.trailing:t),g.cancel=function(){void 0!==s&&clearTimeout(s),n=c=i=s=void(l=0)},g.flush=function(){return void 0===s?a:y(_())},g}},"./src/BaseAPI.js": /*!************************!*\ !*** ./src/BaseAPI.js ***! - \************************/function(t,r,e){"use strict";e.r(r),e.d(r,{default:function(){return T}});var p=e(/*! ./cmi/common */"./src/cmi/common.js"),l=e(/*! ./exceptions */"./src/exceptions.js"),r=e(/*! ./constants/error_codes */"./src/constants/error_codes.js"),u=e(/*! ./constants/api_constants */"./src/constants/api_constants.js"),f=e(/*! ./utilities */"./src/utilities.js"),y=e(/*! lodash.debounce */"./node_modules/lodash.debounce/index.js"),g=e.n(y);function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return E(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(r="Object"===r&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?E(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=this.apiLogLevel&&this.settings.onLogMessage(n,r)}},{key:"formatMessage",value:function(e,t,r){for(var n="",i=20-(n+=e).length,o=0;oe.length)&&(t=e.length);for(var r=0,n=new Array(t);r=this.apiLogLevel&&this.settings.onLogMessage(n,r)}},{key:"formatMessage",value:function(e,t,r){for(var n="",i=20-(n+=e).length,o=0;o=parseFloat(this.cmi.student_data.mastery_score)?this.cmi.core.lesson_status="passed":this.cmi.core.lesson_status="failed"):"browse"===this.cmi.core.lesson_mode&&""===((null===(i=this.startingData)||void 0===i||null===(r=i.cmi)||void 0===r||null===(n=r.core)||void 0===n?void 0:n.lesson_status)||"")&&"not attempted"===t&&(this.cmi.core.lesson_status="browsed"));var t,r,n,i=this.renderCommitCMI(e||this.settings.alwaysSendTotalTime);return this.apiLogLevel===u.LOG_LEVEL_DEBUG&&(console.debug("Commit (terminated: "+(e?"yes":"no")+"): "),console.debug(i)),this.settings.lmsCommitUrl?this.processHttpRequest(this.settings.lmsCommitUrl,i,e):u.SCORM_TRUE}}])&&d(t.prototype,e),r&&d(t,r),Object.defineProperty(t,"prototype",{writable:!1}),i}(e.default)},"./src/cmi/common.js": @@ -13,7 +13,7 @@ \***************************/function(r,n,e){"use strict";e.r(n),e.d(n,{BaseCMI:function(){return L},CMIArray:function(){return x},CMIScore:function(){return D},checkValidFormat:function(){return S},checkValidRange:function(){return I}});var n=e(/*! ../constants/api_constants */"./src/constants/api_constants.js"),i=e(/*! ../constants/error_codes */"./src/constants/error_codes.js"),e=e(/*! ../constants/regex */"./src/constants/regex.js");function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&s(e,t)}function s(e,t){return(s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function c(r){var n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=l(r),t=(e=n?(e=l(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments),this);if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return f(t)}}function f(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function E(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){for(var r=0;r=t[0]){if("*"===t[1]||e<=t[1])return!0;throw new n.prototype.constructor(r)}throw new n.prototype.constructor(r)}var C=new WeakMap,T=new WeakMap,L=function(){function n(){var e,t,r;if(E(this,n),r=!(t="jsonString"),t in(e=this)?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,d(this,C,{writable:!0,value:!1}),d(this,T,{writable:!0,value:void 0}),(this instanceof n?this.constructor:void 0)===n)throw new TypeError("Cannot construct BaseCMI instances directly")}return b(n,[{key:"initialized",get:function(){return t(this,C)}},{key:"start_time",get:function(){return t(this,T)}},{key:"initialize",value:function(){h(this,C,!0)}},{key:"setStartTime",value:function(){h(this,T,(new Date).getTime())}}]),n}(),R=new WeakMap,m=new WeakMap,j=new WeakMap,p=new WeakMap,y=new WeakMap,g=new WeakMap,_=new WeakMap,A=new WeakMap,N=new WeakMap,k=new WeakMap,D=function(){a(u,L);var l=c(u);function u(e){var t,r=e.score_children,n=e.score_range,i=e.max,o=e.invalidErrorCode,a=e.invalidTypeCode,s=e.invalidRangeCode,c=e.decimalRegex,e=e.errorClass;return E(this,u),d(f(t=l.call(this)),R,{writable:!0,value:void 0}),d(f(t),m,{writable:!0,value:void 0}),d(f(t),j,{writable:!0,value:void 0}),d(f(t),p,{writable:!0,value:void 0}),d(f(t),y,{writable:!0,value:void 0}),d(f(t),g,{writable:!0,value:void 0}),d(f(t),_,{writable:!0,value:void 0}),d(f(t),A,{writable:!0,value:""}),d(f(t),N,{writable:!0,value:""}),d(f(t),k,{writable:!0,value:void 0}),h(f(t),R,r||M.score_children),h(f(t),m,!!n&&w.score_range),h(f(t),k,i||""===i?i:"100"),h(f(t),j,o||O.INVALID_SET_VALUE),h(f(t),p,a||O.TYPE_MISMATCH),h(f(t),y,s||O.VALUE_OUT_OF_RANGE),h(f(t),g,c||w.CMIDecimal),h(f(t),_,e),t}return b(u,[{key:"_children",get:function(){return t(this,R)},set:function(e){throw new(t(this,_).prototype.constructor)(t(this,j))}},{key:"raw",get:function(){return t(this,A)},set:function(e){!S(e,t(this,g),t(this,p),t(this,_))||t(this,m)&&!I(e,t(this,m),t(this,y),t(this,_))||h(this,A,e)}},{key:"min",get:function(){return t(this,N)},set:function(e){!S(e,t(this,g),t(this,p),t(this,_))||t(this,m)&&!I(e,t(this,m),t(this,y),t(this,_))||h(this,N,e)}},{key:"max",get:function(){return t(this,k)},set:function(e){!S(e,t(this,g),t(this,p),t(this,_))||t(this,m)&&!I(e,t(this,m),t(this,y),t(this,_))||h(this,k,e)}},{key:"toJSON",value:function(){this.jsonString=!0;var e={raw:this.raw,min:this.min,max:this.max};return delete this.jsonString,e}}]),u}(),V=new WeakMap,P=new WeakMap,F=new WeakMap,x=function(){a(o,L);var i=c(o);function o(e){var t,r=e.children,n=e.errorCode,e=e.errorClass;return E(this,o),d(f(t=i.call(this)),V,{writable:!0,value:void 0}),d(f(t),P,{writable:!0,value:void 0}),d(f(t),F,{writable:!0,value:void 0}),h(f(t),F,r),h(f(t),V,n),h(f(t),P,e),t.childArray=[],t}return b(o,[{key:"_children",get:function(){return t(this,F)},set:function(e){throw new(t(this,P).prototype.constructor)(t(this,V))}},{key:"_count",get:function(){return this.childArray.length},set:function(e){throw new(t(this,P).prototype.constructor)(t(this,V))}},{key:"toJSON",value:function(){this.jsonString=!0;for(var e={},t=0;t\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 fetchKeepalive: function() {\n return true;\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: settings.fetchKeepalive(),\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 ADL,\n CMI,\n CMICommentsObject,\n CMIInteractionsCorrectResponsesObject,\n CMIInteractionsObject,\n CMIInteractionsObjectivesObject,\n CMIObjectivesObject,\n} from './cmi/scorm2004_cmi';\nimport * as Utilities from './utilities';\nimport APIConstants from './constants/api_constants';\nimport ErrorCodes from './constants/error_codes';\nimport Responses from './constants/response_constants';\nimport ValidLanguages from './constants/language_constants';\nimport Regex from './constants/regex';\n\nconst scorm2004_constants = APIConstants.scorm2004;\nconst global_constants = APIConstants.global;\nconst scorm2004_error_codes = ErrorCodes.scorm2004;\nconst correct_responses = Responses.correct;\nconst scorm2004_regex = Regex.scorm2004;\n\n/**\n * API class for SCORM 2004\n */\nexport default class Scorm2004API extends BaseAPI {\n #version: '1.0';\n\n /**\n * Constructor for SCORM 2004 API\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(scorm2004_error_codes, finalSettings);\n\n this.cmi = new CMI();\n this.adl = new ADL();\n\n // Rename functions to match 2004 Spec and expose to modules\n this.Initialize = this.lmsInitialize;\n this.Terminate = this.lmsTerminate;\n this.GetValue = this.lmsGetValue;\n this.SetValue = this.lmsSetValue;\n this.Commit = this.lmsCommit;\n this.GetLastError = this.lmsGetLastError;\n this.GetErrorString = this.lmsGetErrorString;\n this.GetDiagnostic = this.lmsGetDiagnostic;\n }\n\n /**\n * Getter for #version\n * @return {string}\n */\n get version() {\n return this.#version;\n }\n\n /**\n * @return {string} bool\n */\n lmsInitialize() {\n this.cmi.initialize();\n return this.initialize('Initialize');\n }\n\n /**\n * @return {string} bool\n */\n lmsTerminate() {\n const result = this.terminate('Terminate', true);\n\n if (result === global_constants.SCORM_TRUE) {\n if (this.adl.nav.request !== '_none_') {\n switch (this.adl.nav.request) {\n case 'continue':\n this.processListeners('SequenceNext');\n break;\n case 'previous':\n this.processListeners('SequencePrevious');\n break;\n case 'choice':\n this.processListeners('SequenceChoice');\n break;\n case 'exit':\n this.processListeners('SequenceExit');\n break;\n case 'exitAll':\n this.processListeners('SequenceExitAll');\n break;\n case 'abandon':\n this.processListeners('SequenceAbandon');\n break;\n case 'abandonAll':\n this.processListeners('SequenceAbandonAll');\n break;\n }\n } else if (this.settings.autoProgress) {\n this.processListeners('SequenceNext');\n }\n }\n\n return result;\n }\n\n /**\n * @param {string} CMIElement\n * @return {string}\n */\n lmsGetValue(CMIElement) {\n return this.getValue('GetValue', true, CMIElement);\n }\n\n /**\n * @param {string} CMIElement\n * @param {any} value\n * @return {string}\n */\n lmsSetValue(CMIElement, value) {\n return this.setValue('SetValue', 'Commit', true, CMIElement, value);\n }\n\n /**\n * Orders LMS to store all content parameters\n *\n * @return {string} bool\n */\n lmsCommit() {\n return this.commit('Commit');\n }\n\n /**\n * Returns last error code\n *\n * @return {string}\n */\n lmsGetLastError() {\n return this.getLastError('GetLastError');\n }\n\n /**\n * Returns the errorNumber error description\n *\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n lmsGetErrorString(CMIErrorCode) {\n return this.getErrorString('GetErrorString', CMIErrorCode);\n }\n\n /**\n * Returns a comprehensive description of the errorNumber error.\n *\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n lmsGetDiagnostic(CMIErrorCode) {\n return this.getDiagnostic('GetDiagnostic', CMIErrorCode);\n }\n\n /**\n * Sets a value on the CMI Object\n *\n * @param {string} CMIElement\n * @param {any} value\n * @return {string}\n */\n setCMIValue(CMIElement, value) {\n return this._commonSetCMIValue('SetValue', true, CMIElement, value);\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {any} value\n * @param {boolean} foundFirstIndex\n * @return {any}\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 const parts = CMIElement.split('.');\n const index = Number(parts[2]);\n const interaction = this.cmi.interactions.childArray[index];\n if (this.isInitialized()) {\n if (!interaction.type) {\n this.throwSCORMError(\n scorm2004_error_codes.DEPENDENCY_NOT_ESTABLISHED);\n } else {\n this.checkDuplicateChoiceResponse(interaction, value);\n\n const response_type = correct_responses[interaction.type];\n if (response_type) {\n this.checkValidResponseType(response_type, value, interaction.type);\n } else {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Incorrect Response Type: ' + interaction.type);\n }\n }\n }\n if (this.lastErrorCode === 0) {\n newChild = new CMIInteractionsCorrectResponsesObject();\n }\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 } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.comments_from_learner\\\\.\\\\d+')) {\n newChild = new CMICommentsObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.comments_from_lms\\\\.\\\\d+')) {\n newChild = new CMICommentsObject(true);\n }\n\n return newChild;\n }\n\n /**\n * Checks for valid response types\n * @param {object} response_type\n * @param {any} value\n * @param {string} interaction_type\n */\n checkValidResponseType(response_type, value, interaction_type) {\n let nodes = [];\n if (response_type?.delimiter) {\n nodes = String(value).split(response_type.delimiter);\n } else {\n nodes[0] = value;\n }\n\n if (nodes.length > 0 && nodes.length <= response_type.max) {\n this.checkCorrectResponseValue(interaction_type, nodes, value);\n } else if (nodes.length > response_type.max) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Pattern Too Long');\n }\n }\n\n /**\n * Checks for duplicate 'choice' responses.\n * @param {CMIInteractionsObject} interaction\n * @param {any} value\n */\n checkDuplicateChoiceResponse(interaction, value) {\n const interaction_count = interaction.correct_responses._count;\n if (interaction.type === 'choice') {\n for (let i = 0; i < interaction_count && this.lastErrorCode ===\n 0; i++) {\n const response = interaction.correct_responses.childArray[i];\n if (response.pattern === value) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE);\n }\n }\n }\n }\n\n /**\n * Validate correct response.\n * @param {string} CMIElement\n * @param {*} value\n */\n validateCorrectResponse(CMIElement, value) {\n const parts = CMIElement.split('.');\n const index = Number(parts[2]);\n const pattern_index = Number(parts[4]);\n const interaction = this.cmi.interactions.childArray[index];\n\n const interaction_count = interaction.correct_responses._count;\n this.checkDuplicateChoiceResponse(interaction, value);\n\n const response_type = correct_responses[interaction.type];\n if (typeof response_type.limit === 'undefined' || interaction_count <=\n response_type.limit) {\n this.checkValidResponseType(response_type, value, interaction.type);\n\n if (this.lastErrorCode === 0 &&\n (!response_type.duplicate ||\n !this.checkDuplicatedPattern(interaction.correct_responses,\n pattern_index, value)) ||\n (this.lastErrorCode === 0 && value === '')) {\n // do nothing, we want the inverse\n } else {\n if (this.lastErrorCode === 0) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Pattern Already Exists');\n }\n }\n } else {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Collection Limit Reached');\n }\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('GetValue', true, CMIElement);\n }\n\n /**\n * Returns the message that corresponds to errorNumber.\n *\n * @param {(string|number)} errorNumber\n * @param {boolean} detail\n * @return {string}\n */\n getLmsErrorMessageDetails(errorNumber, detail) {\n let basicMessage = '';\n let detailMessage = '';\n\n // Set error number to string since inconsistent from modules if string or number\n errorNumber = String(errorNumber);\n if (scorm2004_constants.error_descriptions[errorNumber]) {\n basicMessage = scorm2004_constants.error_descriptions[errorNumber].basicMessage;\n detailMessage = scorm2004_constants.error_descriptions[errorNumber].detailMessage;\n }\n\n return detail ? detailMessage : basicMessage;\n }\n\n /**\n * Check to see if a correct_response value has been duplicated\n * @param {CMIArray} correct_response\n * @param {number} current_index\n * @param {*} value\n * @return {boolean}\n */\n checkDuplicatedPattern = (correct_response, current_index, value) => {\n let found = false;\n const count = correct_response._count;\n for (let i = 0; i < count && !found; i++) {\n if (i !== current_index && correct_response.childArray[i] === value) {\n found = true;\n }\n }\n return found;\n };\n\n /**\n * Checks for a valid correct_response value\n * @param {string} interaction_type\n * @param {Array} nodes\n * @param {*} value\n */\n checkCorrectResponseValue(interaction_type, nodes, value) {\n const response = correct_responses[interaction_type];\n const formatRegex = new RegExp(response.format);\n for (let i = 0; i < nodes.length && this.lastErrorCode === 0; i++) {\n if (interaction_type.match(\n '^(fill-in|long-fill-in|matching|performance|sequencing)$')) {\n nodes[i] = this.removeCorrectResponsePrefixes(nodes[i]);\n }\n\n if (response?.delimiter2) {\n const values = nodes[i].split(response.delimiter2);\n if (values.length === 2) {\n const matches = values[0].match(formatRegex);\n if (!matches) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n } else {\n if (!values[1].match(new RegExp(response.format2))) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n } else {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n } else {\n const matches = nodes[i].match(formatRegex);\n if ((!matches && value !== '') ||\n (!matches && interaction_type === 'true-false')) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n } else {\n if (interaction_type === 'numeric' && nodes.length > 1) {\n if (Number(nodes[0]) > Number(nodes[1])) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n } else {\n if (nodes[i] !== '' && response.unique) {\n for (let j = 0; j < i && this.lastErrorCode === 0; j++) {\n if (nodes[i] === nodes[j]) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Remove prefixes from correct_response\n * @param {string} node\n * @return {*}\n */\n removeCorrectResponsePrefixes(node) {\n let seenOrder = false;\n let seenCase = false;\n let seenLang = false;\n\n const prefixRegex = new RegExp(\n '^({(lang|case_matters|order_matters)=([^}]+)})');\n let matches = node.match(prefixRegex);\n let langMatches = null;\n while (matches) {\n switch (matches[2]) {\n case 'lang':\n langMatches = node.match(scorm2004_regex.CMILangcr);\n if (langMatches) {\n const lang = langMatches[3];\n if (lang !== undefined && lang.length > 0) {\n if (ValidLanguages[lang.toLowerCase()] === undefined) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n }\n seenLang = true;\n break;\n case 'case_matters':\n if (!seenLang && !seenOrder && !seenCase) {\n if (matches[3] !== 'true' && matches[3] !== 'false') {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n\n seenCase = true;\n break;\n case 'order_matters':\n if (!seenCase && !seenLang && !seenOrder) {\n if (matches[3] !== 'true' && matches[3] !== 'false') {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n\n seenOrder = true;\n break;\n default:\n break;\n }\n node = node.substr(matches[1].length);\n matches = node.match(prefixRegex);\n }\n\n return node;\n }\n\n /**\n * Replace the whole API with another\n * @param {Scorm2004API} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n this.adl = newAPI.adl;\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.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 if (this.cmi.mode === 'normal') {\n if (this.cmi.credit === 'credit') {\n if (this.cmi.completion_threshold && this.cmi.progress_measure) {\n if (this.cmi.progress_measure >= this.cmi.completion_threshold) {\n console.debug('Setting Completion Status: Completed');\n this.cmi.completion_status = 'completed';\n } else {\n console.debug('Setting Completion Status: Incomplete');\n this.cmi.completion_status = 'incomplete';\n }\n }\n if (this.cmi.scaled_passing_score && this.cmi.score.scaled) {\n if (this.cmi.score.scaled >= this.cmi.scaled_passing_score) {\n console.debug('Setting Success Status: Passed');\n this.cmi.success_status = 'passed';\n } else {\n console.debug('Setting Success Status: Failed');\n this.cmi.success_status = 'failed';\n }\n }\n }\n }\n }\n\n let navRequest = false;\n if (this.adl.nav.request !== (this.startingData?.adl?.nav?.request) &&\n this.adl.nav.request !== '_none_') {\n this.adl.nav.request = encodeURIComponent(this.adl.nav.request);\n navRequest = true;\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: ' +\n (terminateCommit ? 'yes' : 'no') + '): ');\n console.debug(commitObject);\n }\n if (this.settings.lmsCommitUrl) {\n const result = this.processHttpRequest(this.settings.lmsCommitUrl,\n commitObject, terminateCommit);\n\n // check if this is a sequencing call, and then call the necessary JS\n {\n if (navRequest && result.navRequest !== undefined &&\n result.navRequest !== '') {\n Function(`\"use strict\";(() => { ${result.navRequest} })()`)();\n }\n }\n return result;\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 Regex from '../constants/regex';\nimport ErrorCodes from '../constants/error_codes';\nimport Responses from '../constants/response_constants';\nimport {Scorm2004ValidationError} from '../exceptions';\nimport * as Util from '../utilities';\n\nconst scorm2004_constants = APIConstants.scorm2004;\nconst scorm2004_error_codes = ErrorCodes.scorm2004;\nconst learner_responses = Responses.learner;\n\nconst scorm2004_regex = Regex.scorm2004;\n\n/**\n * Helper method for throwing Read Only error\n */\nfunction throwReadOnlyError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Write Only error\n */\nfunction throwWriteOnlyError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.WRITE_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Type Mismatch error\n */\nfunction throwTypeMismatchError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.TYPE_MISMATCH);\n}\n\n/**\n * Helper method for throwing Dependency Not Established error\n */\nfunction throwDependencyNotEstablishedError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.DEPENDENCY_NOT_ESTABLISHED);\n}\n\n/**\n * Helper method for throwing Dependency Not Established error\n */\nfunction throwGeneralSetError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.GENERAL_SET_FAILURE);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nfunction check2004ValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n scorm2004_error_codes.TYPE_MISMATCH,\n Scorm2004ValidationError,\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 * @return {boolean}\n */\nfunction check2004ValidRange(value: any, rangePattern: String) {\n return checkValidRange(\n value,\n rangePattern,\n scorm2004_error_codes.VALUE_OUT_OF_RANGE,\n Scorm2004ValidationError,\n );\n}\n\n/**\n * Class representing cmi object for SCORM 2004\n */\nexport class CMI extends BaseCMI {\n /**\n * Constructor for the SCORM 2004 cmi object\n * @param {boolean} initialized\n */\n constructor(initialized: boolean) {\n super();\n\n this.learner_preference = new CMILearnerPreference();\n this.score = new Scorm2004CMIScore();\n this.comments_from_learner = new CMICommentsFromLearner();\n this.comments_from_lms = new CMICommentsFromLMS();\n this.interactions = new CMIInteractions();\n this.objectives = new CMIObjectives();\n\n if (initialized) this.initialize();\n }\n\n #_version = '1.0';\n #_children = scorm2004_constants.cmi_children;\n #completion_status = 'unknown';\n #completion_threshold = '';\n #credit = 'credit';\n #entry = '';\n #exit = '';\n #launch_data = '';\n #learner_id = '';\n #learner_name = '';\n #location = '';\n #max_time_allowed = '';\n #mode = 'normal';\n #progress_measure = '';\n #scaled_passing_score = '';\n #session_time = 'PT0H0M0S';\n #success_status = 'unknown';\n #suspend_data = '';\n #time_limit_action = 'continue,no message';\n #total_time = '';\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.learner_preference?.initialize();\n this.score?.initialize();\n this.comments_from_learner?.initialize();\n this.comments_from_lms?.initialize();\n this.interactions?.initialize();\n this.objectives?.initialize();\n }\n\n /**\n * Getter for #_version\n * @return {string}\n * @private\n */\n get _version() {\n return this.#_version;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _version\n * @private\n */\n set _version(_version) {\n throwReadOnlyError();\n }\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 {number} _children\n * @private\n */\n set _children(_children) {\n throwReadOnlyError();\n }\n\n /**\n * Getter for #completion_status\n * @return {string}\n */\n get completion_status() {\n return this.#completion_status;\n }\n\n /**\n * Setter for #completion_status\n * @param {string} completion_status\n */\n set completion_status(completion_status) {\n if (check2004ValidFormat(completion_status, scorm2004_regex.CMICStatus)) {\n this.#completion_status = completion_status;\n }\n }\n\n /**\n * Getter for #completion_threshold\n * @return {string}\n */\n get completion_threshold() {\n return this.#completion_threshold;\n }\n\n /**\n * Setter for #completion_threshold. Can only be called before initialization.\n * @param {string} completion_threshold\n */\n set completion_threshold(completion_threshold) {\n !this.initialized ?\n this.#completion_threshold = completion_threshold :\n throwReadOnlyError();\n }\n\n /**\n * Setter 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 #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 #exit. Should only be called during JSON export.\n * @return {string}\n */\n get exit() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#exit;\n }\n\n /**\n * Getter for #exit\n * @param {string} exit\n */\n set exit(exit) {\n if (check2004ValidFormat(exit, scorm2004_regex.CMIExit, true)) {\n this.#exit = exit;\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 #learner_id\n * @return {string}\n */\n get learner_id() {\n return this.#learner_id;\n }\n\n /**\n * Setter for #learner_id. Can only be called before initialization.\n * @param {string} learner_id\n */\n set learner_id(learner_id) {\n !this.initialized ? this.#learner_id = learner_id : throwReadOnlyError();\n }\n\n /**\n * Getter for #learner_name\n * @return {string}\n */\n get learner_name() {\n return this.#learner_name;\n }\n\n /**\n * Setter for #learner_name. Can only be called before initialization.\n * @param {string} learner_name\n */\n set learner_name(learner_name) {\n !this.initialized ?\n this.#learner_name = learner_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (check2004ValidFormat(location, scorm2004_regex.CMIString1000)) {\n this.#location = location;\n }\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 #mode\n * @return {string}\n */\n get mode() {\n return this.#mode;\n }\n\n /**\n * Setter for #mode. Can only be called before initialization.\n * @param {string} mode\n */\n set mode(mode) {\n !this.initialized ? this.#mode = mode : throwReadOnlyError();\n }\n\n /**\n * Getter for #progress_measure\n * @return {string}\n */\n get progress_measure() {\n return this.#progress_measure;\n }\n\n /**\n * Setter for #progress_measure\n * @param {string} progress_measure\n */\n set progress_measure(progress_measure) {\n if (check2004ValidFormat(progress_measure, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(progress_measure, scorm2004_regex.progress_range)) {\n this.#progress_measure = progress_measure;\n }\n }\n\n /**\n * Getter for #scaled_passing_score\n * @return {string}\n */\n get scaled_passing_score() {\n return this.#scaled_passing_score;\n }\n\n /**\n * Setter for #scaled_passing_score. Can only be called before initialization.\n * @param {string} scaled_passing_score\n */\n set scaled_passing_score(scaled_passing_score) {\n !this.initialized ?\n this.#scaled_passing_score = scaled_passing_score :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #session_time. Should only be called during JSON export.\n * @return {string}\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 (check2004ValidFormat(session_time, scorm2004_regex.CMITimespan)) {\n this.#session_time = session_time;\n }\n }\n\n /**\n * Getter for #success_status\n * @return {string}\n */\n get success_status() {\n return this.#success_status;\n }\n\n /**\n * Setter for #success_status\n * @param {string} success_status\n */\n set success_status(success_status) {\n if (check2004ValidFormat(success_status, scorm2004_regex.CMISStatus)) {\n this.#success_status = success_status;\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 (check2004ValidFormat(suspend_data, scorm2004_regex.CMIString64000,\n true)) {\n this.#suspend_data = suspend_data;\n }\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 * 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 * Adds the current session time to the existing total time.\n *\n * @return {string} ISO8601 Duration\n */\n getCurrentTotalTime() {\n let sessionTime = this.#session_time;\n const startTime = this.start_time;\n\n if (typeof startTime !== 'undefined' && startTime !== null) {\n const seconds = new Date().getTime() - startTime;\n sessionTime = Util.getSecondsAsISODuration(seconds / 1000);\n }\n\n return Util.addTwoDurations(\n this.#total_time,\n sessionTime,\n scorm2004_regex.CMITimespan,\n );\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * comments_from_learner: CMICommentsFromLearner,\n * comments_from_lms: CMICommentsFromLMS,\n * completion_status: string,\n * completion_threshold: string,\n * credit: string,\n * entry: string,\n * exit: string,\n * interactions: CMIInteractions,\n * launch_data: string,\n * learner_id: string,\n * learner_name: string,\n * learner_preference: CMILearnerPreference,\n * location: string,\n * max_time_allowed: string,\n * mode: string,\n * objectives: CMIObjectives,\n * progress_measure: string,\n * scaled_passing_score: string,\n * score: Scorm2004CMIScore,\n * session_time: string,\n * success_status: string,\n * suspend_data: string,\n * time_limit_action: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comments_from_learner': this.comments_from_learner,\n 'comments_from_lms': this.comments_from_lms,\n 'completion_status': this.completion_status,\n 'completion_threshold': this.completion_threshold,\n 'credit': this.credit,\n 'entry': this.entry,\n 'exit': this.exit,\n 'interactions': this.interactions,\n 'launch_data': this.launch_data,\n 'learner_id': this.learner_id,\n 'learner_name': this.learner_name,\n 'learner_preference': this.learner_preference,\n 'location': this.location,\n 'max_time_allowed': this.max_time_allowed,\n 'mode': this.mode,\n 'objectives': this.objectives,\n 'progress_measure': this.progress_measure,\n 'scaled_passing_score': this.scaled_passing_score,\n 'score': this.score,\n 'session_time': this.session_time,\n 'success_status': this.success_status,\n 'suspend_data': this.suspend_data,\n 'time_limit_action': this.time_limit_action,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.learner_preference object\n */\nclass CMILearnerPreference extends BaseCMI {\n #_children = scorm2004_constants.student_preference_children;\n #audio_level = '1';\n #language = '';\n #delivery_speed = '1';\n #audio_captioning = '0';\n\n /**\n * Constructor for cmi.learner_preference\n */\n constructor() {\n super();\n }\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 throwReadOnlyError();\n }\n\n /**\n * Getter for #audio_level\n * @return {string}\n */\n get audio_level() {\n return this.#audio_level;\n }\n\n /**\n * Setter for #audio_level\n * @param {string} audio_level\n */\n set audio_level(audio_level) {\n if (check2004ValidFormat(audio_level, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(audio_level, scorm2004_regex.audio_range)) {\n this.#audio_level = audio_level;\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 (check2004ValidFormat(language, scorm2004_regex.CMILang)) {\n this.#language = language;\n }\n }\n\n /**\n * Getter for #delivery_speed\n * @return {string}\n */\n get delivery_speed() {\n return this.#delivery_speed;\n }\n\n /**\n * Setter for #delivery_speed\n * @param {string} delivery_speed\n */\n set delivery_speed(delivery_speed) {\n if (check2004ValidFormat(delivery_speed, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(delivery_speed, scorm2004_regex.speed_range)) {\n this.#delivery_speed = delivery_speed;\n }\n }\n\n /**\n * Getter for #audio_captioning\n * @return {string}\n */\n get audio_captioning() {\n return this.#audio_captioning;\n }\n\n /**\n * Setter for #audio_captioning\n * @param {string} audio_captioning\n */\n set audio_captioning(audio_captioning) {\n if (check2004ValidFormat(audio_captioning, scorm2004_regex.CMISInteger) &&\n check2004ValidRange(audio_captioning, scorm2004_regex.text_range)) {\n this.#audio_captioning = audio_captioning;\n }\n }\n\n /**\n * toJSON for cmi.learner_preference\n *\n * @return {\n * {\n * audio_level: string,\n * language: string,\n * delivery_speed: string,\n * audio_captioning: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio_level': this.audio_level,\n 'language': this.language,\n 'delivery_speed': this.delivery_speed,\n 'audio_captioning': this.audio_captioning,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.interactions object\n */\nclass CMIInteractions extends CMIArray {\n /**\n * Constructor for cmi.objectives Array\n */\n constructor() {\n super({\n children: scorm2004_constants.interactions_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.objectives object\n */\nclass CMIObjectives extends CMIArray {\n /**\n * Constructor for cmi.objectives Array\n */\n constructor() {\n super({\n children: scorm2004_constants.objectives_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_lms object\n */\nclass CMICommentsFromLMS extends CMIArray {\n /**\n * Constructor for cmi.comments_from_lms Array\n */\n constructor() {\n super({\n children: scorm2004_constants.comments_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_learner object\n */\nclass CMICommentsFromLearner extends CMIArray {\n /**\n * Constructor for cmi.comments_from_learner Array\n */\n constructor() {\n super({\n children: scorm2004_constants.comments_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.interaction.n object\n */\nexport class CMIInteractionsObject extends BaseCMI {\n #id = '';\n #type = '';\n #timestamp = '';\n #weighting = '';\n #learner_response = '';\n #result = '';\n #latency = '';\n #description = '';\n\n /**\n * Constructor for cmi.interaction.n\n */\n constructor() {\n super();\n\n this.objectives = new CMIArray({\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n children: scorm2004_constants.objectives_children,\n });\n this.correct_responses = new CMIArray({\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n children: scorm2004_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 /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #type\n * @return {string}\n */\n get type() {\n return this.#type;\n }\n\n /**\n * Setter for #type\n * @param {string} type\n */\n set type(type) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(type, scorm2004_regex.CMIType)) {\n this.#type = type;\n }\n }\n }\n\n /**\n * Getter for #timestamp\n * @return {string}\n */\n get timestamp() {\n return this.#timestamp;\n }\n\n /**\n * Setter for #timestamp\n * @param {string} timestamp\n */\n set timestamp(timestamp) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(timestamp, scorm2004_regex.CMITime)) {\n this.#timestamp = timestamp;\n }\n }\n }\n\n /**\n * Getter for #weighting\n * @return {string}\n */\n get weighting() {\n return this.#weighting;\n }\n\n /**\n * Setter for #weighting\n * @param {string} weighting\n */\n set weighting(weighting) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(weighting, scorm2004_regex.CMIDecimal)) {\n this.#weighting = weighting;\n }\n }\n }\n\n /**\n * Getter for #learner_response\n * @return {string}\n */\n get learner_response() {\n return this.#learner_response;\n }\n\n /**\n * Setter for #learner_response. Does type validation to make sure response\n * matches SCORM 2004's spec\n * @param {string} learner_response\n */\n set learner_response(learner_response) {\n if (this.initialized && (this.#type === '' || this.#id === '')) {\n throwDependencyNotEstablishedError();\n } else {\n let nodes = [];\n const response_type = learner_responses[this.type];\n if (response_type) {\n if (response_type?.delimiter) {\n nodes = learner_response.split(response_type.delimiter);\n } else {\n nodes[0] = learner_response;\n }\n\n if ((nodes.length > 0) && (nodes.length <= response_type.max)) {\n const formatRegex = new RegExp(response_type.format);\n for (let i = 0; i < nodes.length; i++) {\n if (response_type?.delimiter2) {\n const values = nodes[i].split(response_type.delimiter2);\n if (values.length === 2) {\n if (!values[0].match(formatRegex)) {\n throwTypeMismatchError();\n } else {\n if (!values[1].match(new RegExp(response_type.format2))) {\n throwTypeMismatchError();\n }\n }\n } else {\n throwTypeMismatchError();\n }\n } else {\n if (!nodes[i].match(formatRegex)) {\n throwTypeMismatchError();\n } else {\n if (nodes[i] !== '' && response_type.unique) {\n for (let j = 0; j < i; j++) {\n if (nodes[i] === nodes[j]) {\n throwTypeMismatchError();\n }\n }\n }\n }\n }\n }\n } else {\n throwGeneralSetError();\n }\n\n this.#learner_response = learner_response;\n } else {\n throwTypeMismatchError();\n }\n }\n }\n\n /**\n * Getter for #result\n * @return {string}\n */\n get result() {\n return this.#result;\n }\n\n /**\n * Setter for #result\n * @param {string} result\n */\n set result(result) {\n if (check2004ValidFormat(result, scorm2004_regex.CMIResult)) {\n this.#result = result;\n }\n }\n\n /**\n * Getter for #latency\n * @return {string}\n */\n get latency() {\n return this.#latency;\n }\n\n /**\n * Setter for #latency\n * @param {string} latency\n */\n set latency(latency) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(latency, scorm2004_regex.CMITimespan)) {\n this.#latency = latency;\n }\n }\n }\n\n /**\n * Getter for #description\n * @return {string}\n */\n get description() {\n return this.#description;\n }\n\n /**\n * Setter for #description\n * @param {string} description\n */\n set description(description) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(description, scorm2004_regex.CMILangString250,\n true)) {\n this.#description = description;\n }\n }\n }\n\n /**\n * toJSON for cmi.interactions.n\n *\n * @return {\n * {\n * id: string,\n * type: string,\n * objectives: CMIArray,\n * timestamp: string,\n * correct_responses: CMIArray,\n * weighting: string,\n * learner_response: string,\n * result: string,\n * latency: string,\n * description: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'type': this.type,\n 'objectives': this.objectives,\n 'timestamp': this.timestamp,\n 'weighting': this.weighting,\n 'learner_response': this.learner_response,\n 'result': this.result,\n 'latency': this.latency,\n 'description': this.description,\n 'correct_responses': this.correct_responses,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.objectives.n object\n */\nexport class CMIObjectivesObject extends BaseCMI {\n #id = '';\n #success_status = 'unknown';\n #completion_status = 'unknown';\n #progress_measure = '';\n #description = '';\n\n /**\n * Constructor for cmi.objectives.n\n */\n constructor() {\n super();\n\n this.score = new Scorm2004CMIScore();\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 /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #success_status\n * @return {string}\n */\n get success_status() {\n return this.#success_status;\n }\n\n /**\n * Setter for #success_status\n * @param {string} success_status\n */\n set success_status(success_status) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(success_status, scorm2004_regex.CMISStatus)) {\n this.#success_status = success_status;\n }\n }\n }\n\n /**\n * Getter for #completion_status\n * @return {string}\n */\n get completion_status() {\n return this.#completion_status;\n }\n\n /**\n * Setter for #completion_status\n * @param {string} completion_status\n */\n set completion_status(completion_status) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(completion_status, scorm2004_regex.CMICStatus)) {\n this.#completion_status = completion_status;\n }\n }\n }\n\n /**\n * Getter for #progress_measure\n * @return {string}\n */\n get progress_measure() {\n return this.#progress_measure;\n }\n\n /**\n * Setter for #progress_measure\n * @param {string} progress_measure\n */\n set progress_measure(progress_measure) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(progress_measure, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(progress_measure,\n scorm2004_regex.progress_range)) {\n this.#progress_measure = progress_measure;\n }\n }\n }\n\n /**\n * Getter for #description\n * @return {string}\n */\n get description() {\n return this.#description;\n }\n\n /**\n * Setter for #description\n * @param {string} description\n */\n set description(description) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(description, scorm2004_regex.CMILangString250,\n true)) {\n this.#description = description;\n }\n }\n }\n\n /**\n * toJSON for cmi.objectives.n\n *\n * @return {\n * {\n * id: string,\n * success_status: string,\n * completion_status: string,\n * progress_measure: string,\n * description: string,\n * score: Scorm2004CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'success_status': this.success_status,\n 'completion_status': this.completion_status,\n 'progress_measure': this.progress_measure,\n 'description': this.description,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi *.score object\n */\nclass Scorm2004CMIScore extends CMIScore {\n #scaled = '';\n\n /**\n * Constructor for cmi *.score\n */\n constructor() {\n super(\n {\n score_children: scorm2004_constants.score_children,\n max: '',\n invalidErrorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n invalidTypeCode: scorm2004_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm2004_error_codes.VALUE_OUT_OF_RANGE,\n decimalRegex: scorm2004_regex.CMIDecimal,\n errorClass: Scorm2004ValidationError,\n });\n }\n\n /**\n * Getter for #scaled\n * @return {string}\n */\n get scaled() {\n return this.#scaled;\n }\n\n /**\n * Setter for #scaled\n * @param {string} scaled\n */\n set scaled(scaled) {\n if (check2004ValidFormat(scaled, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(scaled, scorm2004_regex.scaled_range)) {\n this.#scaled = scaled;\n }\n }\n\n /**\n * toJSON for cmi *.score\n *\n * @return {\n * {\n * scaled: string,\n * raw: string,\n * min: string,\n * max: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'scaled': this.scaled,\n 'raw': super.raw,\n 'min': super.min,\n 'max': super.max,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_learner.n and cmi.comments_from_lms.n object\n */\nexport class CMICommentsObject extends BaseCMI {\n #comment = '';\n #location = '';\n #timestamp = '';\n #readOnlyAfterInit;\n\n /**\n * Constructor for cmi.comments_from_learner.n and cmi.comments_from_lms.n\n * @param {boolean} readOnlyAfterInit\n */\n constructor(readOnlyAfterInit = false) {\n super();\n this.#comment = '';\n this.#location = '';\n this.#timestamp = '';\n this.#readOnlyAfterInit = readOnlyAfterInit;\n }\n\n /**\n * Getter for #comment\n * @return {string}\n */\n get comment() {\n return this.#comment;\n }\n\n /**\n * Setter for #comment\n * @param {string} comment\n */\n set comment(comment) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(comment, scorm2004_regex.CMILangString4000,\n true)) {\n this.#comment = comment;\n }\n }\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(location, scorm2004_regex.CMIString250)) {\n this.#location = location;\n }\n }\n }\n\n /**\n * Getter for #timestamp\n * @return {string}\n */\n get timestamp() {\n return this.#timestamp;\n }\n\n /**\n * Setter for #timestamp\n * @param {string} timestamp\n */\n set timestamp(timestamp) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(timestamp, scorm2004_regex.CMITime)) {\n this.#timestamp = timestamp;\n }\n }\n }\n\n /**\n * toJSON for cmi.comments_from_learner.n object\n * @return {\n * {\n * comment: string,\n * location: string,\n * timestamp: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comment': this.comment,\n 'location': this.location,\n 'timestamp': this.timestamp,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.interactions.n.objectives.n object\n */\nexport class CMIInteractionsObjectivesObject extends BaseCMI {\n #id = '';\n\n /**\n * Constructor for cmi.interactions.n.objectives.n\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\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 2004's cmi.interactions.n.correct_responses.n object\n */\nexport class CMIInteractionsCorrectResponsesObject extends BaseCMI {\n #pattern = '';\n\n /**\n * Constructor for cmi.interactions.n.correct_responses.n\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #pattern\n * @return {string}\n */\n get pattern() {\n return this.#pattern;\n }\n\n /**\n * Setter for #pattern\n * @param {string} pattern\n */\n set pattern(pattern) {\n if (check2004ValidFormat(pattern, scorm2004_regex.CMIFeedback)) {\n this.#pattern = pattern;\n }\n }\n\n /**\n * toJSON cmi.interactions.n.correct_responses.n object\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 representing SCORM 2004's adl object\n */\nexport class ADL extends BaseCMI {\n /**\n * Constructor for adl\n */\n constructor() {\n super();\n\n this.nav = new ADLNav();\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.nav?.initialize();\n }\n\n /**\n * toJSON for adl\n * @return {\n * {\n * nav: {\n * request: string\n * }\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'nav': this.nav,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's adl.nav object\n */\nclass ADLNav extends BaseCMI {\n #request = '_none_';\n\n /**\n * Constructor for adl.nav\n */\n constructor() {\n super();\n\n this.request_valid = new ADLNavRequestValid();\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.request_valid?.initialize();\n }\n\n /**\n * Getter for #request\n * @return {string}\n */\n get request() {\n return this.#request;\n }\n\n /**\n * Setter for #request\n * @param {string} request\n */\n set request(request) {\n if (check2004ValidFormat(request, scorm2004_regex.NAVEvent)) {\n this.#request = request;\n }\n }\n\n /**\n * toJSON for adl.nav\n *\n * @return {\n * {\n * request: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'request': this.request,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's adl.nav.request_valid object\n */\nclass ADLNavRequestValid extends BaseCMI {\n #continue = 'unknown';\n #previous = 'unknown';\n choice = class {\n /**\n * Check if target is valid\n * @param {*} _target\n * @return {string}\n */\n _isTargetValid = (_target) => 'unknown';\n };\n jump = class {\n /**\n * Check if target is valid\n * @param {*} _target\n * @return {string}\n */\n _isTargetValid = (_target) => 'unknown';\n };\n\n /**\n * Constructor for adl.nav.request_valid\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #continue\n * @return {string}\n */\n get continue() {\n return this.#continue;\n }\n\n /**\n * Setter for #continue. Just throws an error.\n * @param {*} _\n */\n set continue(_) {\n throwReadOnlyError();\n }\n\n /**\n * Getter for #previous\n * @return {string}\n */\n get previous() {\n return this.#previous;\n }\n\n /**\n * Setter for #previous. Just throws an error.\n * @param {*} _\n */\n set previous(_) {\n throwReadOnlyError();\n }\n\n /**\n * toJSON for adl.nav.request_valid\n *\n * @return {\n * {\n * previous: string,\n * continue: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'previous': this.previous,\n 'continue': this.continue,\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","const ValidLanguages = {\n 'aa': 'aa', 'ab': 'ab', 'ae': 'ae', 'af': 'af', 'ak': 'ak', 'am': 'am',\n 'an': 'an', 'ar': 'ar', 'as': 'as', 'av': 'av', 'ay': 'ay', 'az': 'az',\n 'ba': 'ba', 'be': 'be', 'bg': 'bg', 'bh': 'bh', 'bi': 'bi', 'bm': 'bm',\n 'bn': 'bn', 'bo': 'bo', 'br': 'br', 'bs': 'bs', 'ca': 'ca', 'ce': 'ce',\n 'ch': 'ch', 'co': 'co', 'cr': 'cr', 'cs': 'cs', 'cu': 'cu', 'cv': 'cv',\n 'cy': 'cy', 'da': 'da', 'de': 'de', 'dv': 'dv', 'dz': 'dz', 'ee': 'ee',\n 'el': 'el', 'en': 'en', 'eo': 'eo', 'es': 'es', 'et': 'et', 'eu': 'eu',\n 'fa': 'fa', 'ff': 'ff', 'fi': 'fi', 'fj': 'fj', 'fo': 'fo', 'fr': 'fr',\n 'fy': 'fy', 'ga': 'ga', 'gd': 'gd', 'gl': 'gl', 'gn': 'gn', 'gu': 'gu',\n 'gv': 'gv', 'ha': 'ha', 'he': 'he', 'hi': 'hi', 'ho': 'ho', 'hr': 'hr',\n 'ht': 'ht', 'hu': 'hu', 'hy': 'hy', 'hz': 'hz', 'ia': 'ia', 'id': 'id',\n 'ie': 'ie', 'ig': 'ig', 'ii': 'ii', 'ik': 'ik', 'io': 'io', 'is': 'is',\n 'it': 'it', 'iu': 'iu', 'ja': 'ja', 'jv': 'jv', 'ka': 'ka', 'kg': 'kg',\n 'ki': 'ki', 'kj': 'kj', 'kk': 'kk', 'kl': 'kl', 'km': 'km', 'kn': 'kn',\n 'ko': 'ko', 'kr': 'kr', 'ks': 'ks', 'ku': 'ku', 'kv': 'kv', 'kw': 'kw',\n 'ky': 'ky', 'la': 'la', 'lb': 'lb', 'lg': 'lg', 'li': 'li', 'ln': 'ln',\n 'lo': 'lo', 'lt': 'lt', 'lu': 'lu', 'lv': 'lv', 'mg': 'mg', 'mh': 'mh',\n 'mi': 'mi', 'mk': 'mk', 'ml': 'ml', 'mn': 'mn', 'mo': 'mo', 'mr': 'mr',\n 'ms': 'ms', 'mt': 'mt', 'my': 'my', 'na': 'na', 'nb': 'nb', 'nd': 'nd',\n 'ne': 'ne', 'ng': 'ng', 'nl': 'nl', 'nn': 'nn', 'no': 'no', 'nr': 'nr',\n 'nv': 'nv', 'ny': 'ny', 'oc': 'oc', 'oj': 'oj', 'om': 'om', 'or': 'or',\n 'os': 'os', 'pa': 'pa', 'pi': 'pi', 'pl': 'pl', 'ps': 'ps', 'pt': 'pt',\n 'qu': 'qu', 'rm': 'rm', 'rn': 'rn', 'ro': 'ro', 'ru': 'ru', 'rw': 'rw',\n 'sa': 'sa', 'sc': 'sc', 'sd': 'sd', 'se': 'se', 'sg': 'sg', 'sh': 'sh',\n 'si': 'si', 'sk': 'sk', 'sl': 'sl', 'sm': 'sm', 'sn': 'sn', 'so': 'so',\n 'sq': 'sq', 'sr': 'sr', 'ss': 'ss', 'st': 'st', 'su': 'su', 'sv': 'sv',\n 'sw': 'sw', 'ta': 'ta', 'te': 'te', 'tg': 'tg', 'th': 'th', 'ti': 'ti',\n 'tk': 'tk', 'tl': 'tl', 'tn': 'tn', 'to': 'to', 'tr': 'tr', 'ts': 'ts',\n 'tt': 'tt', 'tw': 'tw', 'ty': 'ty', 'ug': 'ug', 'uk': 'uk', 'ur': 'ur',\n 'uz': 'uz', 've': 've', 'vi': 'vi', 'vo': 'vo', 'wa': 'wa', 'wo': 'wo',\n 'xh': 'xh', 'yi': 'yi', 'yo': 'yo', 'za': 'za', 'zh': 'zh', 'zu': 'zu',\n 'aar': 'aar', 'abk': 'abk', 'ave': 'ave', 'afr': 'afr', 'aka': 'aka',\n 'amh': 'amh', 'arg': 'arg', 'ara': 'ara', 'asm': 'asm', 'ava': 'ava',\n 'aym': 'aym', 'aze': 'aze', 'bak': 'bak', 'bel': 'bel', 'bul': 'bul',\n 'bih': 'bih', 'bis': 'bis', 'bam': 'bam', 'ben': 'ben', 'tib': 'tib',\n 'bod': 'bod', 'bre': 'bre', 'bos': 'bos', 'cat': 'cat', 'che': 'che',\n 'cha': 'cha', 'cos': 'cos', 'cre': 'cre', 'cze': 'cze', 'ces': 'ces',\n 'chu': 'chu', 'chv': 'chv', 'wel': 'wel', 'cym': 'cym', 'dan': 'dan',\n 'ger': 'ger', 'deu': 'deu', 'div': 'div', 'dzo': 'dzo', 'ewe': 'ewe',\n 'gre': 'gre', 'ell': 'ell', 'eng': 'eng', 'epo': 'epo', 'spa': 'spa',\n 'est': 'est', 'baq': 'baq', 'eus': 'eus', 'per': 'per', 'fas': 'fas',\n 'ful': 'ful', 'fin': 'fin', 'fij': 'fij', 'fao': 'fao', 'fre': 'fre',\n 'fra': 'fra', 'fry': 'fry', 'gle': 'gle', 'gla': 'gla', 'glg': 'glg',\n 'grn': 'grn', 'guj': 'guj', 'glv': 'glv', 'hau': 'hau', 'heb': 'heb',\n 'hin': 'hin', 'hmo': 'hmo', 'hrv': 'hrv', 'hat': 'hat', 'hun': 'hun',\n 'arm': 'arm', 'hye': 'hye', 'her': 'her', 'ina': 'ina', 'ind': 'ind',\n 'ile': 'ile', 'ibo': 'ibo', 'iii': 'iii', 'ipk': 'ipk', 'ido': 'ido',\n 'ice': 'ice', 'isl': 'isl', 'ita': 'ita', 'iku': 'iku', 'jpn': 'jpn',\n 'jav': 'jav', 'geo': 'geo', 'kat': 'kat', 'kon': 'kon', 'kik': 'kik',\n 'kua': 'kua', 'kaz': 'kaz', 'kal': 'kal', 'khm': 'khm', 'kan': 'kan',\n 'kor': 'kor', 'kau': 'kau', 'kas': 'kas', 'kur': 'kur', 'kom': 'kom',\n 'cor': 'cor', 'kir': 'kir', 'lat': 'lat', 'ltz': 'ltz', 'lug': 'lug',\n 'lim': 'lim', 'lin': 'lin', 'lao': 'lao', 'lit': 'lit', 'lub': 'lub',\n 'lav': 'lav', 'mlg': 'mlg', 'mah': 'mah', 'mao': 'mao', 'mri': 'mri',\n 'mac': 'mac', 'mkd': 'mkd', 'mal': 'mal', 'mon': 'mon', 'mol': 'mol',\n 'mar': 'mar', 'may': 'may', 'msa': 'msa', 'mlt': 'mlt', 'bur': 'bur',\n 'mya': 'mya', 'nau': 'nau', 'nob': 'nob', 'nde': 'nde', 'nep': 'nep',\n 'ndo': 'ndo', 'dut': 'dut', 'nld': 'nld', 'nno': 'nno', 'nor': 'nor',\n 'nbl': 'nbl', 'nav': 'nav', 'nya': 'nya', 'oci': 'oci', 'oji': 'oji',\n 'orm': 'orm', 'ori': 'ori', 'oss': 'oss', 'pan': 'pan', 'pli': 'pli',\n 'pol': 'pol', 'pus': 'pus', 'por': 'por', 'que': 'que', 'roh': 'roh',\n 'run': 'run', 'rum': 'rum', 'ron': 'ron', 'rus': 'rus', 'kin': 'kin',\n 'san': 'san', 'srd': 'srd', 'snd': 'snd', 'sme': 'sme', 'sag': 'sag',\n 'slo': 'slo', 'sin': 'sin', 'slk': 'slk', 'slv': 'slv', 'smo': 'smo',\n 'sna': 'sna', 'som': 'som', 'alb': 'alb', 'sqi': 'sqi', 'srp': 'srp',\n 'ssw': 'ssw', 'sot': 'sot', 'sun': 'sun', 'swe': 'swe', 'swa': 'swa',\n 'tam': 'tam', 'tel': 'tel', 'tgk': 'tgk', 'tha': 'tha', 'tir': 'tir',\n 'tuk': 'tuk', 'tgl': 'tgl', 'tsn': 'tsn', 'ton': 'ton', 'tur': 'tur',\n 'tso': 'tso', 'tat': 'tat', 'twi': 'twi', 'tah': 'tah', 'uig': 'uig',\n 'ukr': 'ukr', 'urd': 'urd', 'uzb': 'uzb', 'ven': 'ven', 'vie': 'vie',\n 'vol': 'vol', 'wln': 'wln', 'wol': 'wol', 'xho': 'xho', 'yid': 'yid',\n 'yor': 'yor', 'zha': 'zha', 'chi': 'chi', 'zho': 'zho', 'zul': 'zul',\n};\n\nexport default ValidLanguages;\n","// @flow\n\nconst scorm12 = {\n CMIString256: '^.*$',\n CMIString4096: '^.*$',\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: '^.*$',\n CMIFeedback: '^.*$', // 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\nimport Regex from './regex';\n\nconst scorm2004_regex = Regex.scorm2004;\n\nconst learner = {\n 'true-false': {\n format: '^true$|^false$',\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'choice': {\n format: scorm2004_regex.CMILongIdentifier,\n max: 36,\n delimiter: '[,]',\n unique: true,\n },\n 'fill-in': {\n format: scorm2004_regex.CMILangString250,\n max: 10,\n delimiter: '[,]',\n unique: false,\n },\n 'long-fill-in': {\n format: scorm2004_regex.CMILangString4000,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'matching': {\n format: scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIShortIdentifier,\n max: 36,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n },\n 'performance': {\n format: '^$|' + scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIDecimal + '|^$|' +\n scorm2004_regex.CMIShortIdentifier,\n max: 250,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n },\n 'sequencing': {\n format: scorm2004_regex.CMIShortIdentifier,\n max: 36,\n delimiter: '[,]',\n unique: false,\n },\n 'likert': {\n format: scorm2004_regex.CMIShortIdentifier,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'numeric': {\n format: scorm2004_regex.CMIDecimal,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'other': {\n format: scorm2004_regex.CMIString4000,\n max: 1,\n delimiter: '',\n unique: false,\n },\n};\n\nconst correct = {\n 'true-false': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: '^true$|^false$',\n limit: 1,\n },\n 'choice': {\n max: 36,\n delimiter: '[,]',\n unique: true,\n duplicate: false,\n format: scorm2004_regex.CMILongIdentifier,\n },\n 'fill-in': {\n max: 10,\n delimiter: '[,]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMILangString250cr,\n },\n 'long-fill-in': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: true,\n format: scorm2004_regex.CMILangString4000,\n },\n 'matching': {\n max: 36,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIShortIdentifier,\n },\n 'performance': {\n max: 250,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n duplicate: false,\n format: '^$|' + scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIDecimal + '|^$|' +\n scorm2004_regex.CMIShortIdentifier,\n },\n 'sequencing': {\n max: 36,\n delimiter: '[,]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n },\n 'likert': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n limit: 1,\n },\n 'numeric': {\n max: 2,\n delimiter: '[:]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIDecimal,\n limit: 1,\n },\n 'other': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIString4000,\n limit: 1,\n },\n};\n\nconst Responses = {\n learner: learner,\n correct: correct,\n};\n\nexport default Responses;\n","// @flow\n\nimport APIConstants from './constants/api_constants';\n\nconst scorm12_errors = APIConstants.scorm12.error_descriptions;\nconst aicc_errors = APIConstants.aicc.error_descriptions;\nconst scorm2004_errors = APIConstants.scorm2004.error_descriptions;\n\n/**\n * Base Validation Exception\n */\nexport class ValidationError extends Error {\n /**\n * Constructor to take in an error message and code\n * @param {number} errorCode\n * @param {string} errorMessage\n * @param {string} detailedMessage\n */\n constructor(errorCode: number, errorMessage: String, detailedMessage: String) {\n super(errorMessage);\n this.#errorCode = errorCode;\n this.#errorMessage = errorMessage;\n this.#detailedMessage = detailedMessage;\n }\n\n #errorCode;\n #errorMessage;\n #detailedMessage;\n\n /**\n * Getter for #errorCode\n * @return {number}\n */\n get errorCode() {\n return this.#errorCode;\n }\n\n /**\n * Getter for #errorMessage\n * @return {string}\n */\n get errorMessage() {\n return this.#errorMessage;\n }\n\n /**\n * Getter for #detailedMessage\n * @return {string}\n */\n get detailedMessage() {\n return this.#detailedMessage;\n }\n}\n\n/**\n * SCORM 1.2 Validation Error\n */\nexport class Scorm12ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm12_errors, String(errorCode))) {\n super(errorCode, scorm12_errors[String(errorCode)].basicMessage, scorm12_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm12_errors['101'].basicMessage, scorm12_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * AICC Validation Error\n */\nexport class AICCValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(aicc_errors, String(errorCode))) {\n super(errorCode, aicc_errors[String(errorCode)].basicMessage, aicc_errors[String(errorCode)].detailMessage);\n } else {\n super(101, aicc_errors['101'].basicMessage, aicc_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * SCORM 2004 Validation Error\n */\nexport class Scorm2004ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {\n super(errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm2004_errors['101'].basicMessage, scorm2004_errors['101'].detailMessage);\n }\n }\n}\n","// @flow\nexport const SECONDS_PER_SECOND = 1.0;\nexport const SECONDS_PER_MINUTE = 60;\nexport const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE;\nexport const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;\n\nconst designations = [\n ['D', SECONDS_PER_DAY],\n ['H', SECONDS_PER_HOUR],\n ['M', SECONDS_PER_MINUTE],\n ['S', SECONDS_PER_SECOND],\n];\n\n/**\n * Converts a Number to a String of HH:MM:SS\n *\n * @param {Number} totalSeconds\n * @return {string}\n */\nexport function getSecondsAsHHMMSS(totalSeconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!totalSeconds || totalSeconds <= 0) {\n return '00:00:00';\n }\n\n const hours = Math.floor(totalSeconds / SECONDS_PER_HOUR);\n\n const dateObj = new Date(totalSeconds * 1000);\n const minutes = dateObj.getUTCMinutes();\n // make sure we add any possible decimal value\n const seconds = dateObj.getSeconds();\n const ms = totalSeconds % 1.0;\n let msStr = '';\n if (countDecimals(ms) > 0) {\n if (countDecimals(ms) > 2) {\n msStr = ms.toFixed(2);\n } else {\n msStr = String(ms);\n }\n msStr = '.' + msStr.split('.')[1];\n }\n\n return (hours + ':' + minutes + ':' + seconds).replace(/\\b\\d\\b/g,\n '0$&') + msStr;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {Number} seconds\n * @return {String}\n */\nexport function getSecondsAsISODuration(seconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!seconds || seconds <= 0) {\n return 'PT0S';\n }\n\n let duration = 'P';\n let remainder = seconds;\n\n designations.forEach(([sign, current_seconds]) => {\n let value = Math.floor(remainder / current_seconds);\n\n remainder = remainder % current_seconds;\n if (countDecimals(remainder) > 2) {\n remainder = Number(Number(remainder).toFixed(2));\n }\n // If we have anything left in the remainder, and we're currently adding\n // seconds to the duration, go ahead and add the decimal to the seconds\n if (sign === 'S' && remainder > 0) {\n value += remainder;\n }\n\n if (value) {\n if ((duration.indexOf('D') > 0 ||\n sign === 'H' || sign === 'M' || sign === 'S') &&\n duration.indexOf('T') === -1) {\n duration += 'T';\n }\n duration += `${value}${sign}`;\n }\n });\n\n return duration;\n}\n\n/**\n * Calculate the number of seconds from HH:MM:SS.DDDDDD\n *\n * @param {string} timeString\n * @param {RegExp} timeRegex\n * @return {number}\n */\nexport function getTimeAsSeconds(timeString: String, timeRegex: RegExp) {\n if (!timeString || typeof timeString !== 'string' ||\n !timeString.match(timeRegex)) {\n return 0;\n }\n const parts = timeString.split(':');\n const hours = Number(parts[0]);\n const minutes = Number(parts[1]);\n const seconds = Number(parts[2]);\n return (hours * 3600) + (minutes * 60) + seconds;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {string} duration\n * @param {RegExp} durationRegex\n * @return {number}\n */\nexport function getDurationAsSeconds(duration: String, durationRegex: RegExp) {\n if (!duration || !duration.match(durationRegex)) {\n return 0;\n }\n\n const [, years, months, , days, hours, minutes, seconds] = new RegExp(\n durationRegex).exec(duration) || [];\n\n let result = 0.0;\n\n result += (Number(seconds) * 1.0 || 0.0);\n result += (Number(minutes) * 60.0 || 0.0);\n result += (Number(hours) * 3600.0 || 0.0);\n result += (Number(days) * (60 * 60 * 24.0) || 0.0);\n result += (Number(years) * (60 * 60 * 24 * 365.0) || 0.0);\n\n return result;\n}\n\n/**\n * Adds together two ISO8601 Duration strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} durationRegex\n * @return {string}\n */\nexport function addTwoDurations(\n first: String,\n second: String,\n durationRegex: RegExp) {\n return getSecondsAsISODuration(\n getDurationAsSeconds(first, durationRegex) +\n getDurationAsSeconds(second, durationRegex),\n );\n}\n\n/**\n * Add together two HH:MM:SS.DD strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} timeRegex\n * @return {string}\n */\nexport function addHHMMSSTimeStrings(\n first: String,\n second: String,\n timeRegex: RegExp) {\n return getSecondsAsHHMMSS(\n getTimeAsSeconds(first, timeRegex) +\n getTimeAsSeconds(\n second, timeRegex),\n );\n}\n\n/**\n * Flatten a JSON object down to string paths for each values\n * @param {object} data\n * @return {object}\n */\nexport function flatten(data) {\n const result = {};\n\n /**\n * Recurse through the object\n * @param {*} cur\n * @param {*} prop\n */\n function recurse(cur, prop) {\n if (Object(cur) !== cur) {\n result[prop] = cur;\n } else if (Array.isArray(cur)) {\n for (let i = 0, l = cur.length; i < l; i++) {\n recurse(cur[i], prop + '[' + i + ']');\n if (l === 0) result[prop] = [];\n }\n } else {\n let isEmpty = true;\n for (const p in cur) {\n if ({}.hasOwnProperty.call(cur, p)) {\n isEmpty = false;\n recurse(cur[p], prop ? prop + '.' + p : p);\n }\n }\n if (isEmpty && prop) result[prop] = {};\n }\n }\n\n recurse(data, '');\n return result;\n}\n\n/**\n * Un-flatten a flat JSON object\n * @param {object} data\n * @return {object}\n */\nexport function unflatten(data) {\n 'use strict';\n if (Object(data) !== data || Array.isArray(data)) return data;\n const regex = /\\.?([^.[\\]]+)|\\[(\\d+)]/g;\n const result = {};\n for (const p in data) {\n if ({}.hasOwnProperty.call(data, p)) {\n let cur = result;\n let prop = '';\n let m = regex.exec(p);\n while (m) {\n cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));\n prop = m[2] || m[1];\n m = regex.exec(p);\n }\n cur[prop] = data[p];\n }\n }\n return result[''] || result;\n}\n\n/**\n * Counts the number of decimal places\n * @param {number} num\n * @return {number}\n */\nexport function countDecimals(num: number) {\n if (Math.floor(num) === num || String(num).indexOf('.') < 0) return 0;\n const parts = num.toString().split('.')[1];\n return parts.length || 0;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Scorm2004API from '../Scorm2004API';\n\nwindow.Scorm2004API = Scorm2004API;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectProto","prototype","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","value","type","isObjectLike","isSymbol","call","other","valueOf","replace","isBinary","test","slice","module","exports","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","BaseAPI","error_codes","settings","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","fetchKeepalive","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","apiLogLevel","callbackName","initializeMessage","terminationMessage","returnValue","isInitialized","throwSCORMError","INITIALIZED","isTerminated","TERMINATED","cmi","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","CMIElement","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","CMIErrorCode","getLmsErrorMessageDetails","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","str","tester","match","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","methodName","scorm2004","structure","split","foundFirstIndex","invalidErrorMessage","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","_checkObjectHasProperty","stringMatches","validateCorrectResponse","index","isNaN","item","childArray","newChild","getChildElement","initialized","initialize","push","_foundFirstIndex","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","listenerName","callback","listenerFunctions","listenerSplit","removeIndex","findIndex","obj","splice","filter","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","json","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","key","sort","b","d","forEach","element","loadFromJSON","startingData","currentCMIElement","constructor","stringify","renderCMIToJSONString","_terminateCommit","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","fetch","method","body","headers","credentials","keepalive","when","ScheduledCommit","API","wrapper","bind","commit","ADL","CMI","CMICommentsObject","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","Utilities","Responses","ValidLanguages","Regex","scorm2004_constants","scorm2004_error_codes","correct_responses","correct","scorm2004_regex","Scorm2004API","finalSettings","mastery_override","correct_response","current_index","found","count","_count","adl","Initialize","lmsInitialize","Terminate","lmsTerminate","GetValue","lmsGetValue","SetValue","lmsSetValue","Commit","lmsCommit","GetLastError","lmsGetLastError","GetErrorString","lmsGetErrorString","GetDiagnostic","lmsGetDiagnostic","terminate","nav","request","getValue","setValue","getLastError","getErrorString","getDiagnostic","_commonSetCMIValue","parts","interaction","interactions","DEPENDENCY_NOT_ESTABLISHED","checkDuplicateChoiceResponse","response_type","checkValidResponseType","GENERAL_SET_FAILURE","interaction_type","nodes","delimiter","checkCorrectResponseValue","interaction_count","response","pattern","pattern_index","limit","duplicate","checkDuplicatedPattern","_commonGetCMIValue","detail","basicMessage","detailMessage","error_descriptions","formatRegex","RegExp","format","removeCorrectResponsePrefixes","delimiter2","values","matches","TYPE_MISMATCH","format2","unique","node","seenOrder","seenCase","seenLang","prefixRegex","langMatches","CMILangcr","lang","toLowerCase","newAPI","terminateCommit","cmiExport","renderCMIToJSONObject","total_time","getCurrentTotalTime","flattened","flatten","mode","credit","completion_threshold","progress_measure","completion_status","scaled_passing_score","score","scaled","success_status","navRequest","encodeURIComponent","renderCommitCMI","processHttpRequest","scorm12_constants","scorm12_regex","checkValidFormat","regexPattern","errorClass","allowEmptyString","checkValidRange","rangePattern","ranges","BaseCMI","getTime","CMIScore","score_children","score_range","invalidTypeCode","invalidRangeCode","decimalRegex","INVALID_SET_VALUE","VALUE_OUT_OF_RANGE","CMIDecimal","_children","raw","jsonString","children","Scorm2004ValidationError","Util","learner_responses","learner","throwReadOnlyError","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwTypeMismatchError","throwDependencyNotEstablishedError","throwGeneralSetError","check2004ValidFormat","check2004ValidRange","cmi_children","learner_preference","CMILearnerPreference","Scorm2004CMIScore","comments_from_learner","CMICommentsFromLearner","comments_from_lms","CMICommentsFromLMS","CMIInteractions","objectives","CMIObjectives","_version","CMICStatus","entry","exit","CMIExit","launch_data","learner_id","learner_name","location","CMIString1000","max_time_allowed","progress_range","session_time","CMITimespan","CMISStatus","suspend_data","CMIString64000","time_limit_action","sessionTime","startTime","start_time","seconds","getSecondsAsISODuration","addTwoDurations","student_preference_children","audio_level","audio_range","language","CMILang","delivery_speed","speed_range","audio_captioning","CMISInteger","text_range","interactions_children","objectives_children","comments_children","correct_responses_children","id","CMILongIdentifier","CMIType","timestamp","CMITime","weighting","learner_response","CMIResult","latency","description","CMILangString250","scaled_range","readOnlyAfterInit","comment","CMILangString4000","CMIString250","CMIFeedback","ADLNav","request_valid","ADLNavRequestValid","NAVEvent","_target","_","previous","continue","LOG_LEVEL_NONE","core_children","student_data_children","aicc","student_demographics_children","tries_children","attempt_records_children","paths_children","INITIALIZATION_FAILED","TERMINATION_FAILURE","ARGUMENT_ERROR","GENERAL_GET_FAILURE","GENERAL_COMMIT_FAILURE","UNIMPLEMENTED_ELEMENT","MULTIPLE_TERMINATIONS","CMIString256","CMIString4096","CMIInteger","CMIIdentifier","CMIIndex","CMIStatus","CMIStatus2","weighting_range","CMIString200","CMIString4000","CMILangString250cr","CMIShortIdentifier","CMIIndexStore","NAVBoolean","NAVTarget","scorm12_errors","aicc_errors","scorm2004_errors","errorMessage","detailedMessage","Scorm12ValidationError","AICCValidationError","SECONDS_PER_SECOND","SECONDS_PER_MINUTE","SECONDS_PER_HOUR","SECONDS_PER_DAY","designations","getSecondsAsHHMMSS","totalSeconds","hours","floor","dateObj","minutes","getUTCMinutes","getSeconds","ms","msStr","countDecimals","toFixed","duration","remainder","sign","current_seconds","getTimeAsSeconds","timeString","timeRegex","getDurationAsSeconds","durationRegex","exec","years","months","days","first","second","addHHMMSSTimeStrings","data","recurse","cur","prop","isArray","l","isEmpty","p","regex","m","num","window"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"scorm2004.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/Scorm2004API.js","webpack://scorm-again/./src/cmi/common.js","webpack://scorm-again/./src/cmi/scorm2004_cmi.js","webpack://scorm-again/./src/constants/api_constants.js","webpack://scorm-again/./src/constants/error_codes.js","webpack://scorm-again/./src/constants/language_constants.js","webpack://scorm-again/./src/constants/regex.js","webpack://scorm-again/./src/constants/response_constants.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/scorm2004.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 fetchKeepalive: function() {\n return true;\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.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: settings.fetchKeepalive(),\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 ADL,\n CMI,\n CMICommentsObject,\n CMIInteractionsCorrectResponsesObject,\n CMIInteractionsObject,\n CMIInteractionsObjectivesObject,\n CMIObjectivesObject,\n} from './cmi/scorm2004_cmi';\nimport * as Utilities from './utilities';\nimport APIConstants from './constants/api_constants';\nimport ErrorCodes from './constants/error_codes';\nimport Responses from './constants/response_constants';\nimport ValidLanguages from './constants/language_constants';\nimport Regex from './constants/regex';\n\nconst scorm2004_constants = APIConstants.scorm2004;\nconst global_constants = APIConstants.global;\nconst scorm2004_error_codes = ErrorCodes.scorm2004;\nconst correct_responses = Responses.correct;\nconst scorm2004_regex = Regex.scorm2004;\n\n/**\n * API class for SCORM 2004\n */\nexport default class Scorm2004API extends BaseAPI {\n #version: '1.0';\n\n /**\n * Constructor for SCORM 2004 API\n * @param {object} settings\n */\n constructor(settings: {}) {\n const finalSettings = {\n ...{\n mastery_override: false,\n }, ...settings,\n };\n\n super(scorm2004_error_codes, finalSettings);\n\n this.cmi = new CMI();\n this.adl = new ADL();\n\n // Rename functions to match 2004 Spec and expose to modules\n this.Initialize = this.lmsInitialize;\n this.Terminate = this.lmsTerminate;\n this.GetValue = this.lmsGetValue;\n this.SetValue = this.lmsSetValue;\n this.Commit = this.lmsCommit;\n this.GetLastError = this.lmsGetLastError;\n this.GetErrorString = this.lmsGetErrorString;\n this.GetDiagnostic = this.lmsGetDiagnostic;\n }\n\n /**\n * Getter for #version\n * @return {string}\n */\n get version() {\n return this.#version;\n }\n\n /**\n * @return {string} bool\n */\n lmsInitialize() {\n this.cmi.initialize();\n return this.initialize('Initialize');\n }\n\n /**\n * @return {string} bool\n */\n lmsTerminate() {\n const result = this.terminate('Terminate', true);\n\n if (result === global_constants.SCORM_TRUE) {\n if (this.adl.nav.request !== '_none_') {\n switch (this.adl.nav.request) {\n case 'continue':\n this.processListeners('SequenceNext');\n break;\n case 'previous':\n this.processListeners('SequencePrevious');\n break;\n case 'choice':\n this.processListeners('SequenceChoice');\n break;\n case 'exit':\n this.processListeners('SequenceExit');\n break;\n case 'exitAll':\n this.processListeners('SequenceExitAll');\n break;\n case 'abandon':\n this.processListeners('SequenceAbandon');\n break;\n case 'abandonAll':\n this.processListeners('SequenceAbandonAll');\n break;\n }\n } else if (this.settings.autoProgress) {\n this.processListeners('SequenceNext');\n }\n }\n\n return result;\n }\n\n /**\n * @param {string} CMIElement\n * @return {string}\n */\n lmsGetValue(CMIElement) {\n return this.getValue('GetValue', true, CMIElement);\n }\n\n /**\n * @param {string} CMIElement\n * @param {any} value\n * @return {string}\n */\n lmsSetValue(CMIElement, value) {\n return this.setValue('SetValue', 'Commit', true, CMIElement, value);\n }\n\n /**\n * Orders LMS to store all content parameters\n *\n * @return {string} bool\n */\n lmsCommit() {\n return this.commit('Commit');\n }\n\n /**\n * Returns last error code\n *\n * @return {string}\n */\n lmsGetLastError() {\n return this.getLastError('GetLastError');\n }\n\n /**\n * Returns the errorNumber error description\n *\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n lmsGetErrorString(CMIErrorCode) {\n return this.getErrorString('GetErrorString', CMIErrorCode);\n }\n\n /**\n * Returns a comprehensive description of the errorNumber error.\n *\n * @param {(string|number)} CMIErrorCode\n * @return {string}\n */\n lmsGetDiagnostic(CMIErrorCode) {\n return this.getDiagnostic('GetDiagnostic', CMIErrorCode);\n }\n\n /**\n * Sets a value on the CMI Object\n *\n * @param {string} CMIElement\n * @param {any} value\n * @return {string}\n */\n setCMIValue(CMIElement, value) {\n return this._commonSetCMIValue('SetValue', true, CMIElement, value);\n }\n\n /**\n * Gets or builds a new child element to add to the array.\n *\n * @param {string} CMIElement\n * @param {any} value\n * @param {boolean} foundFirstIndex\n * @return {any}\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 const parts = CMIElement.split('.');\n const index = Number(parts[2]);\n const interaction = this.cmi.interactions.childArray[index];\n if (this.isInitialized()) {\n if (!interaction.type) {\n this.throwSCORMError(\n scorm2004_error_codes.DEPENDENCY_NOT_ESTABLISHED);\n } else {\n this.checkDuplicateChoiceResponse(interaction, value);\n\n const response_type = correct_responses[interaction.type];\n if (response_type) {\n this.checkValidResponseType(response_type, value, interaction.type);\n } else {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Incorrect Response Type: ' + interaction.type);\n }\n }\n }\n if (this.lastErrorCode === 0) {\n newChild = new CMIInteractionsCorrectResponsesObject();\n }\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 } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.comments_from_learner\\\\.\\\\d+')) {\n newChild = new CMICommentsObject();\n } else if (this.stringMatches(CMIElement,\n 'cmi\\\\.comments_from_lms\\\\.\\\\d+')) {\n newChild = new CMICommentsObject(true);\n }\n\n return newChild;\n }\n\n /**\n * Checks for valid response types\n * @param {object} response_type\n * @param {any} value\n * @param {string} interaction_type\n */\n checkValidResponseType(response_type, value, interaction_type) {\n let nodes = [];\n if (response_type?.delimiter) {\n nodes = String(value).split(response_type.delimiter);\n } else {\n nodes[0] = value;\n }\n\n if (nodes.length > 0 && nodes.length <= response_type.max) {\n this.checkCorrectResponseValue(interaction_type, nodes, value);\n } else if (nodes.length > response_type.max) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Pattern Too Long');\n }\n }\n\n /**\n * Checks for duplicate 'choice' responses.\n * @param {CMIInteractionsObject} interaction\n * @param {any} value\n */\n checkDuplicateChoiceResponse(interaction, value) {\n const interaction_count = interaction.correct_responses._count;\n if (interaction.type === 'choice') {\n for (let i = 0; i < interaction_count && this.lastErrorCode ===\n 0; i++) {\n const response = interaction.correct_responses.childArray[i];\n if (response.pattern === value) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE);\n }\n }\n }\n }\n\n /**\n * Validate correct response.\n * @param {string} CMIElement\n * @param {*} value\n */\n validateCorrectResponse(CMIElement, value) {\n const parts = CMIElement.split('.');\n const index = Number(parts[2]);\n const pattern_index = Number(parts[4]);\n const interaction = this.cmi.interactions.childArray[index];\n\n const interaction_count = interaction.correct_responses._count;\n this.checkDuplicateChoiceResponse(interaction, value);\n\n const response_type = correct_responses[interaction.type];\n if (typeof response_type.limit === 'undefined' || interaction_count <=\n response_type.limit) {\n this.checkValidResponseType(response_type, value, interaction.type);\n\n if (this.lastErrorCode === 0 &&\n (!response_type.duplicate ||\n !this.checkDuplicatedPattern(interaction.correct_responses,\n pattern_index, value)) ||\n (this.lastErrorCode === 0 && value === '')) {\n // do nothing, we want the inverse\n } else {\n if (this.lastErrorCode === 0) {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Pattern Already Exists');\n }\n }\n } else {\n this.throwSCORMError(scorm2004_error_codes.GENERAL_SET_FAILURE,\n 'Data Model Element Collection Limit Reached');\n }\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('GetValue', true, CMIElement);\n }\n\n /**\n * Returns the message that corresponds to errorNumber.\n *\n * @param {(string|number)} errorNumber\n * @param {boolean} detail\n * @return {string}\n */\n getLmsErrorMessageDetails(errorNumber, detail) {\n let basicMessage = '';\n let detailMessage = '';\n\n // Set error number to string since inconsistent from modules if string or number\n errorNumber = String(errorNumber);\n if (scorm2004_constants.error_descriptions[errorNumber]) {\n basicMessage = scorm2004_constants.error_descriptions[errorNumber].basicMessage;\n detailMessage = scorm2004_constants.error_descriptions[errorNumber].detailMessage;\n }\n\n return detail ? detailMessage : basicMessage;\n }\n\n /**\n * Check to see if a correct_response value has been duplicated\n * @param {CMIArray} correct_response\n * @param {number} current_index\n * @param {*} value\n * @return {boolean}\n */\n checkDuplicatedPattern = (correct_response, current_index, value) => {\n let found = false;\n const count = correct_response._count;\n for (let i = 0; i < count && !found; i++) {\n if (i !== current_index && correct_response.childArray[i] === value) {\n found = true;\n }\n }\n return found;\n };\n\n /**\n * Checks for a valid correct_response value\n * @param {string} interaction_type\n * @param {Array} nodes\n * @param {*} value\n */\n checkCorrectResponseValue(interaction_type, nodes, value) {\n const response = correct_responses[interaction_type];\n const formatRegex = new RegExp(response.format);\n for (let i = 0; i < nodes.length && this.lastErrorCode === 0; i++) {\n if (interaction_type.match(\n '^(fill-in|long-fill-in|matching|performance|sequencing)$')) {\n nodes[i] = this.removeCorrectResponsePrefixes(nodes[i]);\n }\n\n if (response?.delimiter2) {\n const values = nodes[i].split(response.delimiter2);\n if (values.length === 2) {\n const matches = values[0].match(formatRegex);\n if (!matches) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n } else {\n if (!values[1].match(new RegExp(response.format2))) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n } else {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n } else {\n const matches = nodes[i].match(formatRegex);\n if ((!matches && value !== '') ||\n (!matches && interaction_type === 'true-false')) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n } else {\n if (interaction_type === 'numeric' && nodes.length > 1) {\n if (Number(nodes[0]) > Number(nodes[1])) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n } else {\n if (nodes[i] !== '' && response.unique) {\n for (let j = 0; j < i && this.lastErrorCode === 0; j++) {\n if (nodes[i] === nodes[j]) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n }\n }\n }\n }\n }\n }\n\n /**\n * Remove prefixes from correct_response\n * @param {string} node\n * @return {*}\n */\n removeCorrectResponsePrefixes(node) {\n let seenOrder = false;\n let seenCase = false;\n let seenLang = false;\n\n const prefixRegex = new RegExp(\n '^({(lang|case_matters|order_matters)=([^}]+)})');\n let matches = node.match(prefixRegex);\n let langMatches = null;\n while (matches) {\n switch (matches[2]) {\n case 'lang':\n langMatches = node.match(scorm2004_regex.CMILangcr);\n if (langMatches) {\n const lang = langMatches[3];\n if (lang !== undefined && lang.length > 0) {\n if (ValidLanguages[lang.toLowerCase()] === undefined) {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n }\n seenLang = true;\n break;\n case 'case_matters':\n if (!seenLang && !seenOrder && !seenCase) {\n if (matches[3] !== 'true' && matches[3] !== 'false') {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n\n seenCase = true;\n break;\n case 'order_matters':\n if (!seenCase && !seenLang && !seenOrder) {\n if (matches[3] !== 'true' && matches[3] !== 'false') {\n this.throwSCORMError(scorm2004_error_codes.TYPE_MISMATCH);\n }\n }\n\n seenOrder = true;\n break;\n default:\n break;\n }\n node = node.substr(matches[1].length);\n matches = node.match(prefixRegex);\n }\n\n return node;\n }\n\n /**\n * Replace the whole API with another\n * @param {Scorm2004API} newAPI\n */\n replaceWithAnotherScormAPI(newAPI) {\n // Data Model\n this.cmi = newAPI.cmi;\n this.adl = newAPI.adl;\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.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 if (this.cmi.mode === 'normal') {\n if (this.cmi.credit === 'credit') {\n if (this.cmi.completion_threshold && this.cmi.progress_measure) {\n if (this.cmi.progress_measure >= this.cmi.completion_threshold) {\n console.debug('Setting Completion Status: Completed');\n this.cmi.completion_status = 'completed';\n } else {\n console.debug('Setting Completion Status: Incomplete');\n this.cmi.completion_status = 'incomplete';\n }\n }\n if (this.cmi.scaled_passing_score && this.cmi.score.scaled) {\n if (this.cmi.score.scaled >= this.cmi.scaled_passing_score) {\n console.debug('Setting Success Status: Passed');\n this.cmi.success_status = 'passed';\n } else {\n console.debug('Setting Success Status: Failed');\n this.cmi.success_status = 'failed';\n }\n }\n }\n }\n }\n\n let navRequest = false;\n if (this.adl.nav.request !== (this.startingData?.adl?.nav?.request) &&\n this.adl.nav.request !== '_none_') {\n this.adl.nav.request = encodeURIComponent(this.adl.nav.request);\n navRequest = true;\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: ' +\n (terminateCommit ? 'yes' : 'no') + '): ');\n console.debug(commitObject);\n }\n if (this.settings.lmsCommitUrl) {\n const result = this.processHttpRequest(this.settings.lmsCommitUrl,\n commitObject, terminateCommit);\n\n // check if this is a sequencing call, and then call the necessary JS\n {\n if (navRequest && result.navRequest !== undefined &&\n result.navRequest !== '') {\n Function(`\"use strict\";(() => { ${result.navRequest} })()`)();\n }\n }\n return result;\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 Regex from '../constants/regex';\nimport ErrorCodes from '../constants/error_codes';\nimport Responses from '../constants/response_constants';\nimport {Scorm2004ValidationError} from '../exceptions';\nimport * as Util from '../utilities';\n\nconst scorm2004_constants = APIConstants.scorm2004;\nconst scorm2004_error_codes = ErrorCodes.scorm2004;\nconst learner_responses = Responses.learner;\n\nconst scorm2004_regex = Regex.scorm2004;\n\n/**\n * Helper method for throwing Read Only error\n */\nfunction throwReadOnlyError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.READ_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Write Only error\n */\nfunction throwWriteOnlyError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.WRITE_ONLY_ELEMENT);\n}\n\n/**\n * Helper method for throwing Type Mismatch error\n */\nfunction throwTypeMismatchError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.TYPE_MISMATCH);\n}\n\n/**\n * Helper method for throwing Dependency Not Established error\n */\nfunction throwDependencyNotEstablishedError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.DEPENDENCY_NOT_ESTABLISHED);\n}\n\n/**\n * Helper method for throwing Dependency Not Established error\n */\nfunction throwGeneralSetError() {\n throw new Scorm2004ValidationError(scorm2004_error_codes.GENERAL_SET_FAILURE);\n}\n\n/**\n * Helper method, no reason to have to pass the same error codes every time\n * @param {*} value\n * @param {string} regexPattern\n * @param {boolean} allowEmptyString\n * @return {boolean}\n */\nfunction check2004ValidFormat(\n value: String,\n regexPattern: String,\n allowEmptyString?: boolean) {\n return checkValidFormat(\n value,\n regexPattern,\n scorm2004_error_codes.TYPE_MISMATCH,\n Scorm2004ValidationError,\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 * @return {boolean}\n */\nfunction check2004ValidRange(value: any, rangePattern: String) {\n return checkValidRange(\n value,\n rangePattern,\n scorm2004_error_codes.VALUE_OUT_OF_RANGE,\n Scorm2004ValidationError,\n );\n}\n\n/**\n * Class representing cmi object for SCORM 2004\n */\nexport class CMI extends BaseCMI {\n /**\n * Constructor for the SCORM 2004 cmi object\n * @param {boolean} initialized\n */\n constructor(initialized: boolean) {\n super();\n\n this.learner_preference = new CMILearnerPreference();\n this.score = new Scorm2004CMIScore();\n this.comments_from_learner = new CMICommentsFromLearner();\n this.comments_from_lms = new CMICommentsFromLMS();\n this.interactions = new CMIInteractions();\n this.objectives = new CMIObjectives();\n\n if (initialized) this.initialize();\n }\n\n #_version = '1.0';\n #_children = scorm2004_constants.cmi_children;\n #completion_status = 'unknown';\n #completion_threshold = '';\n #credit = 'credit';\n #entry = '';\n #exit = '';\n #launch_data = '';\n #learner_id = '';\n #learner_name = '';\n #location = '';\n #max_time_allowed = '';\n #mode = 'normal';\n #progress_measure = '';\n #scaled_passing_score = '';\n #session_time = 'PT0H0M0S';\n #success_status = 'unknown';\n #suspend_data = '';\n #time_limit_action = 'continue,no message';\n #total_time = '';\n\n /**\n * Called when the API has been initialized after the CMI has been created\n */\n initialize() {\n super.initialize();\n this.learner_preference?.initialize();\n this.score?.initialize();\n this.comments_from_learner?.initialize();\n this.comments_from_lms?.initialize();\n this.interactions?.initialize();\n this.objectives?.initialize();\n }\n\n /**\n * Getter for #_version\n * @return {string}\n * @private\n */\n get _version() {\n return this.#_version;\n }\n\n /**\n * Setter for #_version. Just throws an error.\n * @param {string} _version\n * @private\n */\n set _version(_version) {\n throwReadOnlyError();\n }\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 {number} _children\n * @private\n */\n set _children(_children) {\n throwReadOnlyError();\n }\n\n /**\n * Getter for #completion_status\n * @return {string}\n */\n get completion_status() {\n return this.#completion_status;\n }\n\n /**\n * Setter for #completion_status\n * @param {string} completion_status\n */\n set completion_status(completion_status) {\n if (check2004ValidFormat(completion_status, scorm2004_regex.CMICStatus)) {\n this.#completion_status = completion_status;\n }\n }\n\n /**\n * Getter for #completion_threshold\n * @return {string}\n */\n get completion_threshold() {\n return this.#completion_threshold;\n }\n\n /**\n * Setter for #completion_threshold. Can only be called before initialization.\n * @param {string} completion_threshold\n */\n set completion_threshold(completion_threshold) {\n !this.initialized ?\n this.#completion_threshold = completion_threshold :\n throwReadOnlyError();\n }\n\n /**\n * Setter 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 #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 #exit. Should only be called during JSON export.\n * @return {string}\n */\n get exit() {\n return (!this.jsonString) ? throwWriteOnlyError() : this.#exit;\n }\n\n /**\n * Getter for #exit\n * @param {string} exit\n */\n set exit(exit) {\n if (check2004ValidFormat(exit, scorm2004_regex.CMIExit, true)) {\n this.#exit = exit;\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 #learner_id\n * @return {string}\n */\n get learner_id() {\n return this.#learner_id;\n }\n\n /**\n * Setter for #learner_id. Can only be called before initialization.\n * @param {string} learner_id\n */\n set learner_id(learner_id) {\n !this.initialized ? this.#learner_id = learner_id : throwReadOnlyError();\n }\n\n /**\n * Getter for #learner_name\n * @return {string}\n */\n get learner_name() {\n return this.#learner_name;\n }\n\n /**\n * Setter for #learner_name. Can only be called before initialization.\n * @param {string} learner_name\n */\n set learner_name(learner_name) {\n !this.initialized ?\n this.#learner_name = learner_name :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (check2004ValidFormat(location, scorm2004_regex.CMIString1000)) {\n this.#location = location;\n }\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 #mode\n * @return {string}\n */\n get mode() {\n return this.#mode;\n }\n\n /**\n * Setter for #mode. Can only be called before initialization.\n * @param {string} mode\n */\n set mode(mode) {\n !this.initialized ? this.#mode = mode : throwReadOnlyError();\n }\n\n /**\n * Getter for #progress_measure\n * @return {string}\n */\n get progress_measure() {\n return this.#progress_measure;\n }\n\n /**\n * Setter for #progress_measure\n * @param {string} progress_measure\n */\n set progress_measure(progress_measure) {\n if (check2004ValidFormat(progress_measure, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(progress_measure, scorm2004_regex.progress_range)) {\n this.#progress_measure = progress_measure;\n }\n }\n\n /**\n * Getter for #scaled_passing_score\n * @return {string}\n */\n get scaled_passing_score() {\n return this.#scaled_passing_score;\n }\n\n /**\n * Setter for #scaled_passing_score. Can only be called before initialization.\n * @param {string} scaled_passing_score\n */\n set scaled_passing_score(scaled_passing_score) {\n !this.initialized ?\n this.#scaled_passing_score = scaled_passing_score :\n throwReadOnlyError();\n }\n\n /**\n * Getter for #session_time. Should only be called during JSON export.\n * @return {string}\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 (check2004ValidFormat(session_time, scorm2004_regex.CMITimespan)) {\n this.#session_time = session_time;\n }\n }\n\n /**\n * Getter for #success_status\n * @return {string}\n */\n get success_status() {\n return this.#success_status;\n }\n\n /**\n * Setter for #success_status\n * @param {string} success_status\n */\n set success_status(success_status) {\n if (check2004ValidFormat(success_status, scorm2004_regex.CMISStatus)) {\n this.#success_status = success_status;\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 (check2004ValidFormat(suspend_data, scorm2004_regex.CMIString64000,\n true)) {\n this.#suspend_data = suspend_data;\n }\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 * 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 * Adds the current session time to the existing total time.\n *\n * @return {string} ISO8601 Duration\n */\n getCurrentTotalTime() {\n let sessionTime = this.#session_time;\n const startTime = this.start_time;\n\n if (typeof startTime !== 'undefined' && startTime !== null) {\n const seconds = new Date().getTime() - startTime;\n sessionTime = Util.getSecondsAsISODuration(seconds / 1000);\n }\n\n return Util.addTwoDurations(\n this.#total_time,\n sessionTime,\n scorm2004_regex.CMITimespan,\n );\n }\n\n /**\n * toJSON for cmi\n *\n * @return {\n * {\n * comments_from_learner: CMICommentsFromLearner,\n * comments_from_lms: CMICommentsFromLMS,\n * completion_status: string,\n * completion_threshold: string,\n * credit: string,\n * entry: string,\n * exit: string,\n * interactions: CMIInteractions,\n * launch_data: string,\n * learner_id: string,\n * learner_name: string,\n * learner_preference: CMILearnerPreference,\n * location: string,\n * max_time_allowed: string,\n * mode: string,\n * objectives: CMIObjectives,\n * progress_measure: string,\n * scaled_passing_score: string,\n * score: Scorm2004CMIScore,\n * session_time: string,\n * success_status: string,\n * suspend_data: string,\n * time_limit_action: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comments_from_learner': this.comments_from_learner,\n 'comments_from_lms': this.comments_from_lms,\n 'completion_status': this.completion_status,\n 'completion_threshold': this.completion_threshold,\n 'credit': this.credit,\n 'entry': this.entry,\n 'exit': this.exit,\n 'interactions': this.interactions,\n 'launch_data': this.launch_data,\n 'learner_id': this.learner_id,\n 'learner_name': this.learner_name,\n 'learner_preference': this.learner_preference,\n 'location': this.location,\n 'max_time_allowed': this.max_time_allowed,\n 'mode': this.mode,\n 'objectives': this.objectives,\n 'progress_measure': this.progress_measure,\n 'scaled_passing_score': this.scaled_passing_score,\n 'score': this.score,\n 'session_time': this.session_time,\n 'success_status': this.success_status,\n 'suspend_data': this.suspend_data,\n 'time_limit_action': this.time_limit_action,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.learner_preference object\n */\nclass CMILearnerPreference extends BaseCMI {\n #_children = scorm2004_constants.student_preference_children;\n #audio_level = '1';\n #language = '';\n #delivery_speed = '1';\n #audio_captioning = '0';\n\n /**\n * Constructor for cmi.learner_preference\n */\n constructor() {\n super();\n }\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 throwReadOnlyError();\n }\n\n /**\n * Getter for #audio_level\n * @return {string}\n */\n get audio_level() {\n return this.#audio_level;\n }\n\n /**\n * Setter for #audio_level\n * @param {string} audio_level\n */\n set audio_level(audio_level) {\n if (check2004ValidFormat(audio_level, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(audio_level, scorm2004_regex.audio_range)) {\n this.#audio_level = audio_level;\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 (check2004ValidFormat(language, scorm2004_regex.CMILang)) {\n this.#language = language;\n }\n }\n\n /**\n * Getter for #delivery_speed\n * @return {string}\n */\n get delivery_speed() {\n return this.#delivery_speed;\n }\n\n /**\n * Setter for #delivery_speed\n * @param {string} delivery_speed\n */\n set delivery_speed(delivery_speed) {\n if (check2004ValidFormat(delivery_speed, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(delivery_speed, scorm2004_regex.speed_range)) {\n this.#delivery_speed = delivery_speed;\n }\n }\n\n /**\n * Getter for #audio_captioning\n * @return {string}\n */\n get audio_captioning() {\n return this.#audio_captioning;\n }\n\n /**\n * Setter for #audio_captioning\n * @param {string} audio_captioning\n */\n set audio_captioning(audio_captioning) {\n if (check2004ValidFormat(audio_captioning, scorm2004_regex.CMISInteger) &&\n check2004ValidRange(audio_captioning, scorm2004_regex.text_range)) {\n this.#audio_captioning = audio_captioning;\n }\n }\n\n /**\n * toJSON for cmi.learner_preference\n *\n * @return {\n * {\n * audio_level: string,\n * language: string,\n * delivery_speed: string,\n * audio_captioning: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'audio_level': this.audio_level,\n 'language': this.language,\n 'delivery_speed': this.delivery_speed,\n 'audio_captioning': this.audio_captioning,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.interactions object\n */\nclass CMIInteractions extends CMIArray {\n /**\n * Constructor for cmi.objectives Array\n */\n constructor() {\n super({\n children: scorm2004_constants.interactions_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.objectives object\n */\nclass CMIObjectives extends CMIArray {\n /**\n * Constructor for cmi.objectives Array\n */\n constructor() {\n super({\n children: scorm2004_constants.objectives_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_lms object\n */\nclass CMICommentsFromLMS extends CMIArray {\n /**\n * Constructor for cmi.comments_from_lms Array\n */\n constructor() {\n super({\n children: scorm2004_constants.comments_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_learner object\n */\nclass CMICommentsFromLearner extends CMIArray {\n /**\n * Constructor for cmi.comments_from_learner Array\n */\n constructor() {\n super({\n children: scorm2004_constants.comments_children,\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n });\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.interaction.n object\n */\nexport class CMIInteractionsObject extends BaseCMI {\n #id = '';\n #type = '';\n #timestamp = '';\n #weighting = '';\n #learner_response = '';\n #result = '';\n #latency = '';\n #description = '';\n\n /**\n * Constructor for cmi.interaction.n\n */\n constructor() {\n super();\n\n this.objectives = new CMIArray({\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n children: scorm2004_constants.objectives_children,\n });\n this.correct_responses = new CMIArray({\n errorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n errorClass: Scorm2004ValidationError,\n children: scorm2004_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 /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #type\n * @return {string}\n */\n get type() {\n return this.#type;\n }\n\n /**\n * Setter for #type\n * @param {string} type\n */\n set type(type) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(type, scorm2004_regex.CMIType)) {\n this.#type = type;\n }\n }\n }\n\n /**\n * Getter for #timestamp\n * @return {string}\n */\n get timestamp() {\n return this.#timestamp;\n }\n\n /**\n * Setter for #timestamp\n * @param {string} timestamp\n */\n set timestamp(timestamp) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(timestamp, scorm2004_regex.CMITime)) {\n this.#timestamp = timestamp;\n }\n }\n }\n\n /**\n * Getter for #weighting\n * @return {string}\n */\n get weighting() {\n return this.#weighting;\n }\n\n /**\n * Setter for #weighting\n * @param {string} weighting\n */\n set weighting(weighting) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(weighting, scorm2004_regex.CMIDecimal)) {\n this.#weighting = weighting;\n }\n }\n }\n\n /**\n * Getter for #learner_response\n * @return {string}\n */\n get learner_response() {\n return this.#learner_response;\n }\n\n /**\n * Setter for #learner_response. Does type validation to make sure response\n * matches SCORM 2004's spec\n * @param {string} learner_response\n */\n set learner_response(learner_response) {\n if (this.initialized && (this.#type === '' || this.#id === '')) {\n throwDependencyNotEstablishedError();\n } else {\n let nodes = [];\n const response_type = learner_responses[this.type];\n if (response_type) {\n if (response_type?.delimiter) {\n nodes = learner_response.split(response_type.delimiter);\n } else {\n nodes[0] = learner_response;\n }\n\n if ((nodes.length > 0) && (nodes.length <= response_type.max)) {\n const formatRegex = new RegExp(response_type.format);\n for (let i = 0; i < nodes.length; i++) {\n if (response_type?.delimiter2) {\n const values = nodes[i].split(response_type.delimiter2);\n if (values.length === 2) {\n if (!values[0].match(formatRegex)) {\n throwTypeMismatchError();\n } else {\n if (!values[1].match(new RegExp(response_type.format2))) {\n throwTypeMismatchError();\n }\n }\n } else {\n throwTypeMismatchError();\n }\n } else {\n if (!nodes[i].match(formatRegex)) {\n throwTypeMismatchError();\n } else {\n if (nodes[i] !== '' && response_type.unique) {\n for (let j = 0; j < i; j++) {\n if (nodes[i] === nodes[j]) {\n throwTypeMismatchError();\n }\n }\n }\n }\n }\n }\n } else {\n throwGeneralSetError();\n }\n\n this.#learner_response = learner_response;\n } else {\n throwTypeMismatchError();\n }\n }\n }\n\n /**\n * Getter for #result\n * @return {string}\n */\n get result() {\n return this.#result;\n }\n\n /**\n * Setter for #result\n * @param {string} result\n */\n set result(result) {\n if (check2004ValidFormat(result, scorm2004_regex.CMIResult)) {\n this.#result = result;\n }\n }\n\n /**\n * Getter for #latency\n * @return {string}\n */\n get latency() {\n return this.#latency;\n }\n\n /**\n * Setter for #latency\n * @param {string} latency\n */\n set latency(latency) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(latency, scorm2004_regex.CMITimespan)) {\n this.#latency = latency;\n }\n }\n }\n\n /**\n * Getter for #description\n * @return {string}\n */\n get description() {\n return this.#description;\n }\n\n /**\n * Setter for #description\n * @param {string} description\n */\n set description(description) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(description, scorm2004_regex.CMILangString250,\n true)) {\n this.#description = description;\n }\n }\n }\n\n /**\n * toJSON for cmi.interactions.n\n *\n * @return {\n * {\n * id: string,\n * type: string,\n * objectives: CMIArray,\n * timestamp: string,\n * correct_responses: CMIArray,\n * weighting: string,\n * learner_response: string,\n * result: string,\n * latency: string,\n * description: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'type': this.type,\n 'objectives': this.objectives,\n 'timestamp': this.timestamp,\n 'weighting': this.weighting,\n 'learner_response': this.learner_response,\n 'result': this.result,\n 'latency': this.latency,\n 'description': this.description,\n 'correct_responses': this.correct_responses,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi.objectives.n object\n */\nexport class CMIObjectivesObject extends BaseCMI {\n #id = '';\n #success_status = 'unknown';\n #completion_status = 'unknown';\n #progress_measure = '';\n #description = '';\n\n /**\n * Constructor for cmi.objectives.n\n */\n constructor() {\n super();\n\n this.score = new Scorm2004CMIScore();\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 /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\n this.#id = id;\n }\n }\n\n /**\n * Getter for #success_status\n * @return {string}\n */\n get success_status() {\n return this.#success_status;\n }\n\n /**\n * Setter for #success_status\n * @param {string} success_status\n */\n set success_status(success_status) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(success_status, scorm2004_regex.CMISStatus)) {\n this.#success_status = success_status;\n }\n }\n }\n\n /**\n * Getter for #completion_status\n * @return {string}\n */\n get completion_status() {\n return this.#completion_status;\n }\n\n /**\n * Setter for #completion_status\n * @param {string} completion_status\n */\n set completion_status(completion_status) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(completion_status, scorm2004_regex.CMICStatus)) {\n this.#completion_status = completion_status;\n }\n }\n }\n\n /**\n * Getter for #progress_measure\n * @return {string}\n */\n get progress_measure() {\n return this.#progress_measure;\n }\n\n /**\n * Setter for #progress_measure\n * @param {string} progress_measure\n */\n set progress_measure(progress_measure) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(progress_measure, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(progress_measure,\n scorm2004_regex.progress_range)) {\n this.#progress_measure = progress_measure;\n }\n }\n }\n\n /**\n * Getter for #description\n * @return {string}\n */\n get description() {\n return this.#description;\n }\n\n /**\n * Setter for #description\n * @param {string} description\n */\n set description(description) {\n if (this.initialized && this.#id === '') {\n throwDependencyNotEstablishedError();\n } else {\n if (check2004ValidFormat(description, scorm2004_regex.CMILangString250,\n true)) {\n this.#description = description;\n }\n }\n }\n\n /**\n * toJSON for cmi.objectives.n\n *\n * @return {\n * {\n * id: string,\n * success_status: string,\n * completion_status: string,\n * progress_measure: string,\n * description: string,\n * score: Scorm2004CMIScore\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'id': this.id,\n 'success_status': this.success_status,\n 'completion_status': this.completion_status,\n 'progress_measure': this.progress_measure,\n 'description': this.description,\n 'score': this.score,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class for SCORM 2004's cmi *.score object\n */\nclass Scorm2004CMIScore extends CMIScore {\n #scaled = '';\n\n /**\n * Constructor for cmi *.score\n */\n constructor() {\n super(\n {\n score_children: scorm2004_constants.score_children,\n max: '',\n invalidErrorCode: scorm2004_error_codes.READ_ONLY_ELEMENT,\n invalidTypeCode: scorm2004_error_codes.TYPE_MISMATCH,\n invalidRangeCode: scorm2004_error_codes.VALUE_OUT_OF_RANGE,\n decimalRegex: scorm2004_regex.CMIDecimal,\n errorClass: Scorm2004ValidationError,\n });\n }\n\n /**\n * Getter for #scaled\n * @return {string}\n */\n get scaled() {\n return this.#scaled;\n }\n\n /**\n * Setter for #scaled\n * @param {string} scaled\n */\n set scaled(scaled) {\n if (check2004ValidFormat(scaled, scorm2004_regex.CMIDecimal) &&\n check2004ValidRange(scaled, scorm2004_regex.scaled_range)) {\n this.#scaled = scaled;\n }\n }\n\n /**\n * toJSON for cmi *.score\n *\n * @return {\n * {\n * scaled: string,\n * raw: string,\n * min: string,\n * max: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'scaled': this.scaled,\n 'raw': super.raw,\n 'min': super.min,\n 'max': super.max,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.comments_from_learner.n and cmi.comments_from_lms.n object\n */\nexport class CMICommentsObject extends BaseCMI {\n #comment = '';\n #location = '';\n #timestamp = '';\n #readOnlyAfterInit;\n\n /**\n * Constructor for cmi.comments_from_learner.n and cmi.comments_from_lms.n\n * @param {boolean} readOnlyAfterInit\n */\n constructor(readOnlyAfterInit = false) {\n super();\n this.#comment = '';\n this.#location = '';\n this.#timestamp = '';\n this.#readOnlyAfterInit = readOnlyAfterInit;\n }\n\n /**\n * Getter for #comment\n * @return {string}\n */\n get comment() {\n return this.#comment;\n }\n\n /**\n * Setter for #comment\n * @param {string} comment\n */\n set comment(comment) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(comment, scorm2004_regex.CMILangString4000,\n true)) {\n this.#comment = comment;\n }\n }\n }\n\n /**\n * Getter for #location\n * @return {string}\n */\n get location() {\n return this.#location;\n }\n\n /**\n * Setter for #location\n * @param {string} location\n */\n set location(location) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(location, scorm2004_regex.CMIString250)) {\n this.#location = location;\n }\n }\n }\n\n /**\n * Getter for #timestamp\n * @return {string}\n */\n get timestamp() {\n return this.#timestamp;\n }\n\n /**\n * Setter for #timestamp\n * @param {string} timestamp\n */\n set timestamp(timestamp) {\n if (this.initialized && this.#readOnlyAfterInit) {\n throwReadOnlyError();\n } else {\n if (check2004ValidFormat(timestamp, scorm2004_regex.CMITime)) {\n this.#timestamp = timestamp;\n }\n }\n }\n\n /**\n * toJSON for cmi.comments_from_learner.n object\n * @return {\n * {\n * comment: string,\n * location: string,\n * timestamp: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'comment': this.comment,\n 'location': this.location,\n 'timestamp': this.timestamp,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's cmi.interactions.n.objectives.n object\n */\nexport class CMIInteractionsObjectivesObject extends BaseCMI {\n #id = '';\n\n /**\n * Constructor for cmi.interactions.n.objectives.n\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #id\n * @return {string}\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 (check2004ValidFormat(id, scorm2004_regex.CMILongIdentifier)) {\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 2004's cmi.interactions.n.correct_responses.n object\n */\nexport class CMIInteractionsCorrectResponsesObject extends BaseCMI {\n #pattern = '';\n\n /**\n * Constructor for cmi.interactions.n.correct_responses.n\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #pattern\n * @return {string}\n */\n get pattern() {\n return this.#pattern;\n }\n\n /**\n * Setter for #pattern\n * @param {string} pattern\n */\n set pattern(pattern) {\n if (check2004ValidFormat(pattern, scorm2004_regex.CMIFeedback)) {\n this.#pattern = pattern;\n }\n }\n\n /**\n * toJSON cmi.interactions.n.correct_responses.n object\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 representing SCORM 2004's adl object\n */\nexport class ADL extends BaseCMI {\n /**\n * Constructor for adl\n */\n constructor() {\n super();\n\n this.nav = new ADLNav();\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.nav?.initialize();\n }\n\n /**\n * toJSON for adl\n * @return {\n * {\n * nav: {\n * request: string\n * }\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'nav': this.nav,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's adl.nav object\n */\nclass ADLNav extends BaseCMI {\n #request = '_none_';\n\n /**\n * Constructor for adl.nav\n */\n constructor() {\n super();\n\n this.request_valid = new ADLNavRequestValid();\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.request_valid?.initialize();\n }\n\n /**\n * Getter for #request\n * @return {string}\n */\n get request() {\n return this.#request;\n }\n\n /**\n * Setter for #request\n * @param {string} request\n */\n set request(request) {\n if (check2004ValidFormat(request, scorm2004_regex.NAVEvent)) {\n this.#request = request;\n }\n }\n\n /**\n * toJSON for adl.nav\n *\n * @return {\n * {\n * request: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'request': this.request,\n };\n delete this.jsonString;\n return result;\n }\n}\n\n/**\n * Class representing SCORM 2004's adl.nav.request_valid object\n */\nclass ADLNavRequestValid extends BaseCMI {\n #continue = 'unknown';\n #previous = 'unknown';\n choice = class {\n /**\n * Check if target is valid\n * @param {*} _target\n * @return {string}\n */\n _isTargetValid = (_target) => 'unknown';\n };\n jump = class {\n /**\n * Check if target is valid\n * @param {*} _target\n * @return {string}\n */\n _isTargetValid = (_target) => 'unknown';\n };\n\n /**\n * Constructor for adl.nav.request_valid\n */\n constructor() {\n super();\n }\n\n /**\n * Getter for #continue\n * @return {string}\n */\n get continue() {\n return this.#continue;\n }\n\n /**\n * Setter for #continue. Just throws an error.\n * @param {*} _\n */\n set continue(_) {\n throwReadOnlyError();\n }\n\n /**\n * Getter for #previous\n * @return {string}\n */\n get previous() {\n return this.#previous;\n }\n\n /**\n * Setter for #previous. Just throws an error.\n * @param {*} _\n */\n set previous(_) {\n throwReadOnlyError();\n }\n\n /**\n * toJSON for adl.nav.request_valid\n *\n * @return {\n * {\n * previous: string,\n * continue: string\n * }\n * }\n */\n toJSON() {\n this.jsonString = true;\n const result = {\n 'previous': this.previous,\n 'continue': this.continue,\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","const ValidLanguages = {\n 'aa': 'aa', 'ab': 'ab', 'ae': 'ae', 'af': 'af', 'ak': 'ak', 'am': 'am',\n 'an': 'an', 'ar': 'ar', 'as': 'as', 'av': 'av', 'ay': 'ay', 'az': 'az',\n 'ba': 'ba', 'be': 'be', 'bg': 'bg', 'bh': 'bh', 'bi': 'bi', 'bm': 'bm',\n 'bn': 'bn', 'bo': 'bo', 'br': 'br', 'bs': 'bs', 'ca': 'ca', 'ce': 'ce',\n 'ch': 'ch', 'co': 'co', 'cr': 'cr', 'cs': 'cs', 'cu': 'cu', 'cv': 'cv',\n 'cy': 'cy', 'da': 'da', 'de': 'de', 'dv': 'dv', 'dz': 'dz', 'ee': 'ee',\n 'el': 'el', 'en': 'en', 'eo': 'eo', 'es': 'es', 'et': 'et', 'eu': 'eu',\n 'fa': 'fa', 'ff': 'ff', 'fi': 'fi', 'fj': 'fj', 'fo': 'fo', 'fr': 'fr',\n 'fy': 'fy', 'ga': 'ga', 'gd': 'gd', 'gl': 'gl', 'gn': 'gn', 'gu': 'gu',\n 'gv': 'gv', 'ha': 'ha', 'he': 'he', 'hi': 'hi', 'ho': 'ho', 'hr': 'hr',\n 'ht': 'ht', 'hu': 'hu', 'hy': 'hy', 'hz': 'hz', 'ia': 'ia', 'id': 'id',\n 'ie': 'ie', 'ig': 'ig', 'ii': 'ii', 'ik': 'ik', 'io': 'io', 'is': 'is',\n 'it': 'it', 'iu': 'iu', 'ja': 'ja', 'jv': 'jv', 'ka': 'ka', 'kg': 'kg',\n 'ki': 'ki', 'kj': 'kj', 'kk': 'kk', 'kl': 'kl', 'km': 'km', 'kn': 'kn',\n 'ko': 'ko', 'kr': 'kr', 'ks': 'ks', 'ku': 'ku', 'kv': 'kv', 'kw': 'kw',\n 'ky': 'ky', 'la': 'la', 'lb': 'lb', 'lg': 'lg', 'li': 'li', 'ln': 'ln',\n 'lo': 'lo', 'lt': 'lt', 'lu': 'lu', 'lv': 'lv', 'mg': 'mg', 'mh': 'mh',\n 'mi': 'mi', 'mk': 'mk', 'ml': 'ml', 'mn': 'mn', 'mo': 'mo', 'mr': 'mr',\n 'ms': 'ms', 'mt': 'mt', 'my': 'my', 'na': 'na', 'nb': 'nb', 'nd': 'nd',\n 'ne': 'ne', 'ng': 'ng', 'nl': 'nl', 'nn': 'nn', 'no': 'no', 'nr': 'nr',\n 'nv': 'nv', 'ny': 'ny', 'oc': 'oc', 'oj': 'oj', 'om': 'om', 'or': 'or',\n 'os': 'os', 'pa': 'pa', 'pi': 'pi', 'pl': 'pl', 'ps': 'ps', 'pt': 'pt',\n 'qu': 'qu', 'rm': 'rm', 'rn': 'rn', 'ro': 'ro', 'ru': 'ru', 'rw': 'rw',\n 'sa': 'sa', 'sc': 'sc', 'sd': 'sd', 'se': 'se', 'sg': 'sg', 'sh': 'sh',\n 'si': 'si', 'sk': 'sk', 'sl': 'sl', 'sm': 'sm', 'sn': 'sn', 'so': 'so',\n 'sq': 'sq', 'sr': 'sr', 'ss': 'ss', 'st': 'st', 'su': 'su', 'sv': 'sv',\n 'sw': 'sw', 'ta': 'ta', 'te': 'te', 'tg': 'tg', 'th': 'th', 'ti': 'ti',\n 'tk': 'tk', 'tl': 'tl', 'tn': 'tn', 'to': 'to', 'tr': 'tr', 'ts': 'ts',\n 'tt': 'tt', 'tw': 'tw', 'ty': 'ty', 'ug': 'ug', 'uk': 'uk', 'ur': 'ur',\n 'uz': 'uz', 've': 've', 'vi': 'vi', 'vo': 'vo', 'wa': 'wa', 'wo': 'wo',\n 'xh': 'xh', 'yi': 'yi', 'yo': 'yo', 'za': 'za', 'zh': 'zh', 'zu': 'zu',\n 'aar': 'aar', 'abk': 'abk', 'ave': 'ave', 'afr': 'afr', 'aka': 'aka',\n 'amh': 'amh', 'arg': 'arg', 'ara': 'ara', 'asm': 'asm', 'ava': 'ava',\n 'aym': 'aym', 'aze': 'aze', 'bak': 'bak', 'bel': 'bel', 'bul': 'bul',\n 'bih': 'bih', 'bis': 'bis', 'bam': 'bam', 'ben': 'ben', 'tib': 'tib',\n 'bod': 'bod', 'bre': 'bre', 'bos': 'bos', 'cat': 'cat', 'che': 'che',\n 'cha': 'cha', 'cos': 'cos', 'cre': 'cre', 'cze': 'cze', 'ces': 'ces',\n 'chu': 'chu', 'chv': 'chv', 'wel': 'wel', 'cym': 'cym', 'dan': 'dan',\n 'ger': 'ger', 'deu': 'deu', 'div': 'div', 'dzo': 'dzo', 'ewe': 'ewe',\n 'gre': 'gre', 'ell': 'ell', 'eng': 'eng', 'epo': 'epo', 'spa': 'spa',\n 'est': 'est', 'baq': 'baq', 'eus': 'eus', 'per': 'per', 'fas': 'fas',\n 'ful': 'ful', 'fin': 'fin', 'fij': 'fij', 'fao': 'fao', 'fre': 'fre',\n 'fra': 'fra', 'fry': 'fry', 'gle': 'gle', 'gla': 'gla', 'glg': 'glg',\n 'grn': 'grn', 'guj': 'guj', 'glv': 'glv', 'hau': 'hau', 'heb': 'heb',\n 'hin': 'hin', 'hmo': 'hmo', 'hrv': 'hrv', 'hat': 'hat', 'hun': 'hun',\n 'arm': 'arm', 'hye': 'hye', 'her': 'her', 'ina': 'ina', 'ind': 'ind',\n 'ile': 'ile', 'ibo': 'ibo', 'iii': 'iii', 'ipk': 'ipk', 'ido': 'ido',\n 'ice': 'ice', 'isl': 'isl', 'ita': 'ita', 'iku': 'iku', 'jpn': 'jpn',\n 'jav': 'jav', 'geo': 'geo', 'kat': 'kat', 'kon': 'kon', 'kik': 'kik',\n 'kua': 'kua', 'kaz': 'kaz', 'kal': 'kal', 'khm': 'khm', 'kan': 'kan',\n 'kor': 'kor', 'kau': 'kau', 'kas': 'kas', 'kur': 'kur', 'kom': 'kom',\n 'cor': 'cor', 'kir': 'kir', 'lat': 'lat', 'ltz': 'ltz', 'lug': 'lug',\n 'lim': 'lim', 'lin': 'lin', 'lao': 'lao', 'lit': 'lit', 'lub': 'lub',\n 'lav': 'lav', 'mlg': 'mlg', 'mah': 'mah', 'mao': 'mao', 'mri': 'mri',\n 'mac': 'mac', 'mkd': 'mkd', 'mal': 'mal', 'mon': 'mon', 'mol': 'mol',\n 'mar': 'mar', 'may': 'may', 'msa': 'msa', 'mlt': 'mlt', 'bur': 'bur',\n 'mya': 'mya', 'nau': 'nau', 'nob': 'nob', 'nde': 'nde', 'nep': 'nep',\n 'ndo': 'ndo', 'dut': 'dut', 'nld': 'nld', 'nno': 'nno', 'nor': 'nor',\n 'nbl': 'nbl', 'nav': 'nav', 'nya': 'nya', 'oci': 'oci', 'oji': 'oji',\n 'orm': 'orm', 'ori': 'ori', 'oss': 'oss', 'pan': 'pan', 'pli': 'pli',\n 'pol': 'pol', 'pus': 'pus', 'por': 'por', 'que': 'que', 'roh': 'roh',\n 'run': 'run', 'rum': 'rum', 'ron': 'ron', 'rus': 'rus', 'kin': 'kin',\n 'san': 'san', 'srd': 'srd', 'snd': 'snd', 'sme': 'sme', 'sag': 'sag',\n 'slo': 'slo', 'sin': 'sin', 'slk': 'slk', 'slv': 'slv', 'smo': 'smo',\n 'sna': 'sna', 'som': 'som', 'alb': 'alb', 'sqi': 'sqi', 'srp': 'srp',\n 'ssw': 'ssw', 'sot': 'sot', 'sun': 'sun', 'swe': 'swe', 'swa': 'swa',\n 'tam': 'tam', 'tel': 'tel', 'tgk': 'tgk', 'tha': 'tha', 'tir': 'tir',\n 'tuk': 'tuk', 'tgl': 'tgl', 'tsn': 'tsn', 'ton': 'ton', 'tur': 'tur',\n 'tso': 'tso', 'tat': 'tat', 'twi': 'twi', 'tah': 'tah', 'uig': 'uig',\n 'ukr': 'ukr', 'urd': 'urd', 'uzb': 'uzb', 'ven': 'ven', 'vie': 'vie',\n 'vol': 'vol', 'wln': 'wln', 'wol': 'wol', 'xho': 'xho', 'yid': 'yid',\n 'yor': 'yor', 'zha': 'zha', 'chi': 'chi', 'zho': 'zho', 'zul': 'zul',\n};\n\nexport default ValidLanguages;\n","// @flow\n\nconst scorm12 = {\n CMIString256: '^.*$',\n CMIString4096: '^.*$',\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: '^.*$',\n CMIFeedback: '^.*$', // 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\nimport Regex from './regex';\n\nconst scorm2004_regex = Regex.scorm2004;\n\nconst learner = {\n 'true-false': {\n format: '^true$|^false$',\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'choice': {\n format: scorm2004_regex.CMILongIdentifier,\n max: 36,\n delimiter: '[,]',\n unique: true,\n },\n 'fill-in': {\n format: scorm2004_regex.CMILangString250,\n max: 10,\n delimiter: '[,]',\n unique: false,\n },\n 'long-fill-in': {\n format: scorm2004_regex.CMILangString4000,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'matching': {\n format: scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIShortIdentifier,\n max: 36,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n },\n 'performance': {\n format: '^$|' + scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIDecimal + '|^$|' +\n scorm2004_regex.CMIShortIdentifier,\n max: 250,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n },\n 'sequencing': {\n format: scorm2004_regex.CMIShortIdentifier,\n max: 36,\n delimiter: '[,]',\n unique: false,\n },\n 'likert': {\n format: scorm2004_regex.CMIShortIdentifier,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'numeric': {\n format: scorm2004_regex.CMIDecimal,\n max: 1,\n delimiter: '',\n unique: false,\n },\n 'other': {\n format: scorm2004_regex.CMIString4000,\n max: 1,\n delimiter: '',\n unique: false,\n },\n};\n\nconst correct = {\n 'true-false': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: '^true$|^false$',\n limit: 1,\n },\n 'choice': {\n max: 36,\n delimiter: '[,]',\n unique: true,\n duplicate: false,\n format: scorm2004_regex.CMILongIdentifier,\n },\n 'fill-in': {\n max: 10,\n delimiter: '[,]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMILangString250cr,\n },\n 'long-fill-in': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: true,\n format: scorm2004_regex.CMILangString4000,\n },\n 'matching': {\n max: 36,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIShortIdentifier,\n },\n 'performance': {\n max: 250,\n delimiter: '[,]',\n delimiter2: '[.]',\n unique: false,\n duplicate: false,\n format: '^$|' + scorm2004_regex.CMIShortIdentifier,\n format2: scorm2004_regex.CMIDecimal + '|^$|' +\n scorm2004_regex.CMIShortIdentifier,\n },\n 'sequencing': {\n max: 36,\n delimiter: '[,]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n },\n 'likert': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIShortIdentifier,\n limit: 1,\n },\n 'numeric': {\n max: 2,\n delimiter: '[:]',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIDecimal,\n limit: 1,\n },\n 'other': {\n max: 1,\n delimiter: '',\n unique: false,\n duplicate: false,\n format: scorm2004_regex.CMIString4000,\n limit: 1,\n },\n};\n\nconst Responses = {\n learner: learner,\n correct: correct,\n};\n\nexport default Responses;\n","// @flow\n\nimport APIConstants from './constants/api_constants';\n\nconst scorm12_errors = APIConstants.scorm12.error_descriptions;\nconst aicc_errors = APIConstants.aicc.error_descriptions;\nconst scorm2004_errors = APIConstants.scorm2004.error_descriptions;\n\n/**\n * Base Validation Exception\n */\nexport class ValidationError extends Error {\n /**\n * Constructor to take in an error message and code\n * @param {number} errorCode\n * @param {string} errorMessage\n * @param {string} detailedMessage\n */\n constructor(errorCode: number, errorMessage: String, detailedMessage: String) {\n super(errorMessage);\n this.#errorCode = errorCode;\n this.#errorMessage = errorMessage;\n this.#detailedMessage = detailedMessage;\n }\n\n #errorCode;\n #errorMessage;\n #detailedMessage;\n\n /**\n * Getter for #errorCode\n * @return {number}\n */\n get errorCode() {\n return this.#errorCode;\n }\n\n /**\n * Getter for #errorMessage\n * @return {string}\n */\n get errorMessage() {\n return this.#errorMessage;\n }\n\n /**\n * Getter for #detailedMessage\n * @return {string}\n */\n get detailedMessage() {\n return this.#detailedMessage;\n }\n}\n\n/**\n * SCORM 1.2 Validation Error\n */\nexport class Scorm12ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm12_errors, String(errorCode))) {\n super(errorCode, scorm12_errors[String(errorCode)].basicMessage, scorm12_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm12_errors['101'].basicMessage, scorm12_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * AICC Validation Error\n */\nexport class AICCValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(aicc_errors, String(errorCode))) {\n super(errorCode, aicc_errors[String(errorCode)].basicMessage, aicc_errors[String(errorCode)].detailMessage);\n } else {\n super(101, aicc_errors['101'].basicMessage, aicc_errors['101'].detailMessage);\n }\n }\n}\n\n/**\n * SCORM 2004 Validation Error\n */\nexport class Scorm2004ValidationError extends ValidationError {\n /**\n * Constructor to take in an error code\n * @param {number} errorCode\n */\n constructor(errorCode: number) {\n if ({}.hasOwnProperty.call(scorm2004_errors, String(errorCode))) {\n super(errorCode, scorm2004_errors[String(errorCode)].basicMessage, scorm2004_errors[String(errorCode)].detailMessage);\n } else {\n super(101, scorm2004_errors['101'].basicMessage, scorm2004_errors['101'].detailMessage);\n }\n }\n}\n","// @flow\nexport const SECONDS_PER_SECOND = 1.0;\nexport const SECONDS_PER_MINUTE = 60;\nexport const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE;\nexport const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR;\n\nconst designations = [\n ['D', SECONDS_PER_DAY],\n ['H', SECONDS_PER_HOUR],\n ['M', SECONDS_PER_MINUTE],\n ['S', SECONDS_PER_SECOND],\n];\n\n/**\n * Converts a Number to a String of HH:MM:SS\n *\n * @param {Number} totalSeconds\n * @return {string}\n */\nexport function getSecondsAsHHMMSS(totalSeconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!totalSeconds || totalSeconds <= 0) {\n return '00:00:00';\n }\n\n const hours = Math.floor(totalSeconds / SECONDS_PER_HOUR);\n\n const dateObj = new Date(totalSeconds * 1000);\n const minutes = dateObj.getUTCMinutes();\n // make sure we add any possible decimal value\n const seconds = dateObj.getSeconds();\n const ms = totalSeconds % 1.0;\n let msStr = '';\n if (countDecimals(ms) > 0) {\n if (countDecimals(ms) > 2) {\n msStr = ms.toFixed(2);\n } else {\n msStr = String(ms);\n }\n msStr = '.' + msStr.split('.')[1];\n }\n\n return (hours + ':' + minutes + ':' + seconds).replace(/\\b\\d\\b/g,\n '0$&') + msStr;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {Number} seconds\n * @return {String}\n */\nexport function getSecondsAsISODuration(seconds: Number) {\n // SCORM spec does not deal with negative durations, give zero back\n if (!seconds || seconds <= 0) {\n return 'PT0S';\n }\n\n let duration = 'P';\n let remainder = seconds;\n\n designations.forEach(([sign, current_seconds]) => {\n let value = Math.floor(remainder / current_seconds);\n\n remainder = remainder % current_seconds;\n if (countDecimals(remainder) > 2) {\n remainder = Number(Number(remainder).toFixed(2));\n }\n // If we have anything left in the remainder, and we're currently adding\n // seconds to the duration, go ahead and add the decimal to the seconds\n if (sign === 'S' && remainder > 0) {\n value += remainder;\n }\n\n if (value) {\n if ((duration.indexOf('D') > 0 ||\n sign === 'H' || sign === 'M' || sign === 'S') &&\n duration.indexOf('T') === -1) {\n duration += 'T';\n }\n duration += `${value}${sign}`;\n }\n });\n\n return duration;\n}\n\n/**\n * Calculate the number of seconds from HH:MM:SS.DDDDDD\n *\n * @param {string} timeString\n * @param {RegExp} timeRegex\n * @return {number}\n */\nexport function getTimeAsSeconds(timeString: String, timeRegex: RegExp) {\n if (!timeString || typeof timeString !== 'string' ||\n !timeString.match(timeRegex)) {\n return 0;\n }\n const parts = timeString.split(':');\n const hours = Number(parts[0]);\n const minutes = Number(parts[1]);\n const seconds = Number(parts[2]);\n return (hours * 3600) + (minutes * 60) + seconds;\n}\n\n/**\n * Calculate the number of seconds from ISO 8601 Duration\n *\n * @param {string} duration\n * @param {RegExp} durationRegex\n * @return {number}\n */\nexport function getDurationAsSeconds(duration: String, durationRegex: RegExp) {\n if (!duration || !duration.match(durationRegex)) {\n return 0;\n }\n\n const [, years, months, , days, hours, minutes, seconds] = new RegExp(\n durationRegex).exec(duration) || [];\n\n let result = 0.0;\n\n result += (Number(seconds) * 1.0 || 0.0);\n result += (Number(minutes) * 60.0 || 0.0);\n result += (Number(hours) * 3600.0 || 0.0);\n result += (Number(days) * (60 * 60 * 24.0) || 0.0);\n result += (Number(years) * (60 * 60 * 24 * 365.0) || 0.0);\n\n return result;\n}\n\n/**\n * Adds together two ISO8601 Duration strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} durationRegex\n * @return {string}\n */\nexport function addTwoDurations(\n first: String,\n second: String,\n durationRegex: RegExp) {\n return getSecondsAsISODuration(\n getDurationAsSeconds(first, durationRegex) +\n getDurationAsSeconds(second, durationRegex),\n );\n}\n\n/**\n * Add together two HH:MM:SS.DD strings\n *\n * @param {string} first\n * @param {string} second\n * @param {RegExp} timeRegex\n * @return {string}\n */\nexport function addHHMMSSTimeStrings(\n first: String,\n second: String,\n timeRegex: RegExp) {\n return getSecondsAsHHMMSS(\n getTimeAsSeconds(first, timeRegex) +\n getTimeAsSeconds(\n second, timeRegex),\n );\n}\n\n/**\n * Flatten a JSON object down to string paths for each values\n * @param {object} data\n * @return {object}\n */\nexport function flatten(data) {\n const result = {};\n\n /**\n * Recurse through the object\n * @param {*} cur\n * @param {*} prop\n */\n function recurse(cur, prop) {\n if (Object(cur) !== cur) {\n result[prop] = cur;\n } else if (Array.isArray(cur)) {\n for (let i = 0, l = cur.length; i < l; i++) {\n recurse(cur[i], prop + '[' + i + ']');\n if (l === 0) result[prop] = [];\n }\n } else {\n let isEmpty = true;\n for (const p in cur) {\n if ({}.hasOwnProperty.call(cur, p)) {\n isEmpty = false;\n recurse(cur[p], prop ? prop + '.' + p : p);\n }\n }\n if (isEmpty && prop) result[prop] = {};\n }\n }\n\n recurse(data, '');\n return result;\n}\n\n/**\n * Un-flatten a flat JSON object\n * @param {object} data\n * @return {object}\n */\nexport function unflatten(data) {\n 'use strict';\n if (Object(data) !== data || Array.isArray(data)) return data;\n const regex = /\\.?([^.[\\]]+)|\\[(\\d+)]/g;\n const result = {};\n for (const p in data) {\n if ({}.hasOwnProperty.call(data, p)) {\n let cur = result;\n let prop = '';\n let m = regex.exec(p);\n while (m) {\n cur = cur[prop] || (cur[prop] = (m[2] ? [] : {}));\n prop = m[2] || m[1];\n m = regex.exec(p);\n }\n cur[prop] = data[p];\n }\n }\n return result[''] || result;\n}\n\n/**\n * Counts the number of decimal places\n * @param {number} num\n * @return {number}\n */\nexport function countDecimals(num: number) {\n if (Math.floor(num) === num || String(num).indexOf('.') < 0) return 0;\n const parts = num.toString().split('.')[1];\n return parts.length || 0;\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import Scorm2004API from '../Scorm2004API';\n\nwindow.Scorm2004API = Scorm2004API;\n"],"names":["FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","Object","freeSelf","self","root","Function","objectProto","prototype","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","value","type","isObjectLike","isSymbol","call","other","valueOf","replace","isBinary","test","slice","module","exports","CMIArray","ValidationError","ErrorCodes","APIConstants","unflatten","global_constants","scorm12_error_codes","scorm12","BaseAPI","error_codes","settings","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","fetchKeepalive","currentState","STATE_NOT_INITIALIZED","lastErrorCode","listenerArray","apiLogLevel","callbackName","initializeMessage","terminationMessage","returnValue","isTerminated","throwSCORMError","TERMINATED","cmi","setStartTime","STATE_INITIALIZED","processListeners","apiLog","clearSCORMError","checkTerminated","checkState","TERMINATION_BEFORE_INIT","MULTIPLE_TERMINATION","STATE_TERMINATED","storeData","CMIElement","RETRIEVE_BEFORE_INIT","RETRIEVE_AFTER_TERM","getCMIValue","e","message","GENERAL","commitCallback","String","STORE_BEFORE_INIT","STORE_AFTER_TERM","setCMIValue","scheduleCommit","clearScheduledCommit","COMMIT_BEFORE_INIT","COMMIT_AFTER_TERM","CMIErrorCode","getLmsErrorMessageDetails","beforeInitError","afterTermError","isNotInitialized","functionName","formatMessage","baseLength","messageString","fillChars","length","i","CMIElementBaseLength","j","str","tester","match","refObject","attribute","getOwnPropertyDescriptor","getPrototypeOf","_errorNumber","_detail","Error","_CMIElement","_value","methodName","scorm2004","structure","split","foundFirstIndex","invalidErrorMessage","invalidErrorCode","UNDEFINED_DATA_MODEL","substr","_isTargetValid","READ_ONLY_ELEMENT","_checkObjectHasProperty","isInitialized","stringMatches","validateCorrectResponse","index","isNaN","item","childArray","newChild","getChildElement","initialized","initialize","push","_foundFirstIndex","uninitializedErrorMessage","target","VALUE_NOT_INITIALIZED","CHILDREN_ERROR","COUNT_ERROR","listenerName","callback","listenerFunctions","listenerSplit","removeIndex","findIndex","obj","splice","filter","listener","functionsMatch","listenerHasCMIElement","CMIElementsMatch","substring","indexOf","errorNumber","success","_calculateTotalTime","json","testPattern","a","c","a_pattern","a_match","c_match","a_num","Number","c_num","int_pattern","obj_pattern","keys","map","key","sort","b","d","forEach","element","loadFromJSON","startingData","currentCMIElement","constructor","stringify","renderCMIToJSONString","_terminateCommit","url","params","immediate","api","process","genericError","httpReq","XMLHttpRequest","open","header","setRequestHeader","withCredentials","onload","Array","send","join","fetch","method","body","headers","credentials","keepalive","when","ScheduledCommit","API","wrapper","bind","commit","ADL","CMI","CMICommentsObject","CMIInteractionsCorrectResponsesObject","CMIInteractionsObject","CMIInteractionsObjectivesObject","CMIObjectivesObject","Utilities","Responses","ValidLanguages","Regex","scorm2004_constants","scorm2004_error_codes","correct_responses","correct","scorm2004_regex","Scorm2004API","finalSettings","mastery_override","correct_response","current_index","found","count","_count","adl","Initialize","lmsInitialize","Terminate","lmsTerminate","GetValue","lmsGetValue","SetValue","lmsSetValue","Commit","lmsCommit","GetLastError","lmsGetLastError","GetErrorString","lmsGetErrorString","GetDiagnostic","lmsGetDiagnostic","terminate","nav","request","getValue","setValue","getLastError","getErrorString","getDiagnostic","_commonSetCMIValue","parts","interaction","interactions","DEPENDENCY_NOT_ESTABLISHED","checkDuplicateChoiceResponse","response_type","checkValidResponseType","GENERAL_SET_FAILURE","interaction_type","nodes","delimiter","checkCorrectResponseValue","interaction_count","response","pattern","pattern_index","limit","duplicate","checkDuplicatedPattern","_commonGetCMIValue","detail","basicMessage","detailMessage","error_descriptions","formatRegex","RegExp","format","removeCorrectResponsePrefixes","delimiter2","values","matches","TYPE_MISMATCH","format2","unique","node","seenOrder","seenCase","seenLang","prefixRegex","langMatches","CMILangcr","lang","toLowerCase","newAPI","terminateCommit","cmiExport","renderCMIToJSONObject","total_time","getCurrentTotalTime","flattened","flatten","mode","credit","completion_threshold","progress_measure","completion_status","scaled_passing_score","score","scaled","success_status","navRequest","encodeURIComponent","renderCommitCMI","processHttpRequest","scorm12_constants","scorm12_regex","checkValidFormat","regexPattern","errorClass","allowEmptyString","checkValidRange","rangePattern","ranges","BaseCMI","getTime","CMIScore","score_children","score_range","invalidTypeCode","invalidRangeCode","decimalRegex","INVALID_SET_VALUE","VALUE_OUT_OF_RANGE","CMIDecimal","_children","raw","jsonString","children","Scorm2004ValidationError","Util","learner_responses","learner","throwReadOnlyError","throwWriteOnlyError","WRITE_ONLY_ELEMENT","throwTypeMismatchError","throwDependencyNotEstablishedError","throwGeneralSetError","check2004ValidFormat","check2004ValidRange","cmi_children","learner_preference","CMILearnerPreference","Scorm2004CMIScore","comments_from_learner","CMICommentsFromLearner","comments_from_lms","CMICommentsFromLMS","CMIInteractions","objectives","CMIObjectives","_version","CMICStatus","entry","exit","CMIExit","launch_data","learner_id","learner_name","location","CMIString1000","max_time_allowed","progress_range","session_time","CMITimespan","CMISStatus","suspend_data","CMIString64000","time_limit_action","sessionTime","startTime","start_time","seconds","getSecondsAsISODuration","addTwoDurations","student_preference_children","audio_level","audio_range","language","CMILang","delivery_speed","speed_range","audio_captioning","CMISInteger","text_range","interactions_children","objectives_children","comments_children","correct_responses_children","id","CMILongIdentifier","CMIType","timestamp","CMITime","weighting","learner_response","CMIResult","latency","description","CMILangString250","scaled_range","readOnlyAfterInit","comment","CMILangString4000","CMIString250","CMIFeedback","ADLNav","request_valid","ADLNavRequestValid","NAVEvent","_target","_","previous","continue","LOG_LEVEL_NONE","core_children","student_data_children","aicc","student_demographics_children","tries_children","attempt_records_children","paths_children","INITIALIZATION_FAILED","INITIALIZED","TERMINATION_FAILURE","ARGUMENT_ERROR","GENERAL_GET_FAILURE","GENERAL_COMMIT_FAILURE","UNIMPLEMENTED_ELEMENT","MULTIPLE_TERMINATIONS","CMIString256","CMIString4096","CMIInteger","CMIIdentifier","CMIIndex","CMIStatus","CMIStatus2","weighting_range","CMIString200","CMIString4000","CMILangString250cr","CMIShortIdentifier","CMIIndexStore","NAVBoolean","NAVTarget","scorm12_errors","aicc_errors","scorm2004_errors","errorMessage","detailedMessage","Scorm12ValidationError","AICCValidationError","SECONDS_PER_SECOND","SECONDS_PER_MINUTE","SECONDS_PER_HOUR","SECONDS_PER_DAY","designations","getSecondsAsHHMMSS","totalSeconds","hours","floor","dateObj","minutes","getUTCMinutes","getSeconds","ms","msStr","countDecimals","toFixed","duration","remainder","sign","current_seconds","getTimeAsSeconds","timeString","timeRegex","getDurationAsSeconds","durationRegex","exec","years","months","days","first","second","addHHMMSSTimeStrings","data","recurse","cur","prop","isArray","l","isEmpty","p","regex","m","num","window"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/scorm2004.min.js b/dist/scorm2004.min.js index f25a71f..7649fbe 100644 --- a/dist/scorm2004.min.js +++ b/dist/scorm2004.min.js @@ -4,7 +4,7 @@ \***********************************************/function(e,s,t){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(){return f.Date.now()}var n=NaN,i="[object Symbol]",o=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt,t="object"==(void 0===t.g?"undefined":r(t.g))&&t.g&&t.g.Object===Object&&t.g,h="object"==("undefined"==typeof self?"undefined":r(self))&&self&&self.Object===Object&&self,f=t||h||Function("return this")(),d=Object.prototype.toString,_=Math.max,M=Math.min;function E(e){var t=r(e);return e&&("object"==t||"function"==t)}function m(e){return"symbol"==r(e)||!!(t=e)&&"object"==r(t)&&d.call(e)==i;var t}function b(e){if("number"==typeof e)return e;if(m(e))return n;if("string"!=typeof(e=E(e)?E(t="function"==typeof e.valueOf?e.valueOf():e)?t+"":t:e))return 0===e?e:+e;e=e.replace(o,"");var t=l.test(e);return t||c.test(e)?u(e.slice(2),t?2:8):a.test(e)?n:+e}e.exports=function(h,r,e){var n,i,o,a,s,l,c=0,f=!1,u=!1,t=!0;if("function"!=typeof h)throw new TypeError("Expected a function");function d(e){var t=n,r=i;return n=i=void 0,c=e,a=h.apply(r,t)}function m(e){var t=e-l;return void 0===l||r<=t||t<0||u&&o<=e-c}function p(){var e,t=v();if(m(t))return g(t);s=setTimeout(p,(e=r-((t=t)-l),u?M(e,o-(t-c)):e))}function g(e){return s=void 0,t&&n?d(e):(n=i=void 0,a)}function y(){var e=v(),t=m(e);if(n=arguments,i=this,l=e,t){if(void 0===s)return c=e=l,s=setTimeout(p,r),f?d(e):a;if(u)return s=setTimeout(p,r),d(l)}return void 0===s&&(s=setTimeout(p,r)),a}return r=b(r)||0,E(e)&&(f=!!e.leading,u="maxWait"in e,o=u?_(b(e.maxWait)||0,r):o,t="trailing"in e?!!e.trailing:t),y.cancel=function(){void 0!==s&&clearTimeout(s),n=l=i=s=void(c=0)},y.flush=function(){return void 0===s?a:g(v())},y}},"./src/BaseAPI.js": /*!************************!*\ !*** ./src/BaseAPI.js ***! - \************************/function(t,r,e){"use strict";e.r(r),e.d(r,{default:function(){return T}});var p=e(/*! ./cmi/common */"./src/cmi/common.js"),c=e(/*! ./exceptions */"./src/exceptions.js"),r=e(/*! ./constants/error_codes */"./src/constants/error_codes.js"),u=e(/*! ./constants/api_constants */"./src/constants/api_constants.js"),h=e(/*! ./utilities */"./src/utilities.js"),g=e(/*! lodash.debounce */"./node_modules/lodash.debounce/index.js"),y=e.n(g);function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return E(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Map"===(r="Object"===r&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?E(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=this.apiLogLevel&&this.settings.onLogMessage(n,r)}},{key:"formatMessage",value:function(e,t,r){for(var n="",i=20-(n+=e).length,o=0;oe.length)&&(t=e.length);for(var r=0,n=new Array(t);r=this.apiLogLevel&&this.settings.onLogMessage(n,r)}},{key:"formatMessage",value:function(e,t,r){for(var n="",i=20-(n+=e).length,o=0;oe.max&&this.throwSCORMError(u.GENERAL_SET_FAILURE,"Data Model Element Pattern Too Long")}},{key:"checkDuplicateChoiceResponse",value:function(e,t){var r=e.correct_responses._count;if("choice"===e.type)for(var n=0;nNumber(t[1])&&this.throwSCORMError(u.TYPE_MISMATCH);else if(""!==t[o]&&n.unique)for(var s=0;s=this.cmi.completion_threshold?(console.debug("Setting Completion Status: Completed"),this.cmi.completion_status="completed"):(console.debug("Setting Completion Status: Incomplete"),this.cmi.completion_status="incomplete")),this.cmi.scaled_passing_score&&this.cmi.score.scaled&&(this.cmi.score.scaled>=this.cmi.scaled_passing_score?(console.debug("Setting Success Status: Passed"),this.cmi.success_status="passed"):(console.debug("Setting Success Status: Failed"),this.cmi.success_status="failed")));var t,r,n=!1,i=(this.adl.nav.request!==(null===(i=this.startingData)||void 0===i||null===(r=i.adl)||void 0===r||null===(t=r.nav)||void 0===t?void 0:t.request)&&"_none_"!==this.adl.nav.request&&(this.adl.nav.request=encodeURIComponent(this.adl.nav.request),n=!0),this.renderCommitCMI(e||this.settings.alwaysSendTotalTime));return this.apiLogLevel===c.LOG_LEVEL_DEBUG&&(console.debug("Commit (terminated: "+(e?"yes":"no")+"): "),console.debug(i)),this.settings.lmsCommitUrl?(r=this.processHttpRequest(this.settings.lmsCommitUrl,i,e),n&&void 0!==r.navRequest&&""!==r.navRequest&&Function('"use strict";(() => { '.concat(r.navRequest," })()"))(),r):c.SCORM_TRUE}}])&&v(t.prototype,e),r&&v(t,r),Object.defineProperty(t,"prototype",{writable:!1}),i}(e.default)},"./src/cmi/common.js": diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1de9f76 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,10252 @@ +{ + "name": "scorm-again", + "version": "2.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "scorm-again", + "version": "2.0.0", + "devDependencies": { + "@babel/cli": "^7.18.10", + "@babel/core": "^7.18.10", + "@babel/node": "^7.18.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/preset-env": "^7.18.10", + "@babel/preset-flow": "^7.18.6", + "@babel/register": "^7.18.9", + "@types/chai": "^4.3.3", + "@types/mocha": "^9.1.1", + "babel-eslint": "^11.0.0-beta.2", + "babel-loader": "^8.2.5", + "babelify": "^10.0.0", + "browserify": "^17.0.0", + "chai": "^4.3.6", + "eslint": "^8.21.0", + "eslint-config-google": "^0.14.0", + "eslint-plugin-import": "^2.26.0", + "eslint-webpack-plugin": "^3.2.0", + "fetch-pretender": "^1.5.0", + "jsdoc": "^3.6.11", + "jsdoc-babel": "^0.5.0", + "lodash.debounce": "^4.0.8", + "minimist": "^1.2.5", + "mocha": "^10.0.0", + "mocha-junit-reporter": "^2.0.2", + "mochawesome": "^7.1.3", + "nyc": "^15.1.0", + "sinon": "^14.0.0", + "uglifyjs-webpack-plugin": "^2.2.0", + "webpack": "^5.74.0", + "webpack-cli": "^4.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", + "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.18.10.tgz", + "integrity": "sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.8", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", + "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.10", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", + "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", + "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", + "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", + "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", + "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.18.9", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.11", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/node": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/node/-/node-7.18.10.tgz", + "integrity": "sha512-VbqzK6QXfQVi4Bpk6J7XqHXKFNbG2j3rdIdx68+/14GDU7jXDOSyUU/cwqCM1fDwCdxp37pNV/ToSCXsNChcyA==", + "dev": true, + "dependencies": { + "@babel/register": "^7.18.9", + "commander": "^4.0.1", + "core-js": "^3.22.1", + "node-environment-flags": "^1.0.5", + "regenerator-runtime": "^0.13.4", + "v8flags": "^3.1.1" + }, + "bin": { + "babel-node": "bin/babel-node.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", + "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", + "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.18.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", + "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", + "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", + "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", + "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", + "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.18.9.tgz", + "integrity": "sha512-+G6rp2zRuOAInY5wcggsx4+QVao1qPM0osC9fTUVlAV3zOrzTCnrMAFVnR6+a3T8wz1wFIH7KhYMcMB3u1n80A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-flow": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", + "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", + "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", + "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-identifier": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", + "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", + "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", + "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-flow": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz", + "integrity": "sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-flow-strip-types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz", + "integrity": "sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.5", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.12.18", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.18.tgz", + "integrity": "sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", + "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.10", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.11", + "@babel/types": "^7.18.10", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", + "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.11", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", + "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "dev": true, + "optional": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@sinonjs/samsam": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz", + "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, + "node_modules/@types/chai": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz", + "integrity": "sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", + "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4= sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/linkify-it": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", + "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "dev": true + }, + "node_modules/@types/markdown-it": { + "version": "12.2.3", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", + "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" + } + }, + "node_modules/@types/mdurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", + "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz", + "integrity": "sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw==", + "dev": true + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= sha512-Ene1hbrinPZ1qPoZp7NSx4jQnh4nr7MtY78pHNb+yr8yHbxmTS7ChGW0a55JKA7TkRDeoQxK4GcJaCvBYplSKA==", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk= sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", + "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "dev": true, + "dependencies": { + "array-filter": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-eslint": { + "version": "11.0.0-beta.2", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-11.0.0-beta.2.tgz", + "integrity": "sha512-D2tunrOu04XloEdU2XVUminUu25FILlGruZmffqH5OSnLDhCheKNvUoM1ihrexdUvhizlix8bjqRnsss4V/UIQ==", + "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", + "dev": true, + "dependencies": { + "eslint-scope": "5.0.0", + "eslint-visitor-keys": "^1.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "@babel/core": ">=7.2.0", + "eslint": ">= 6.0.0" + } + }, + "node_modules/babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/babel-loader/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-loader/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", + "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.2", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", + "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babelify": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", + "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c= sha512-9Y0g0Q8rmSt+H33DfKv7FOc3v+iRI+o1lbzt8jGcIosYW37IIW/2XVYq5NPdmaD5NQ59Nk26Kl/vZbwW9Fr8vg==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "dependencies": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" + } + }, + "node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/browserify": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", + "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", + "dev": true, + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.1", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^3.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "^1.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum-object": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^3.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.12.0", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz", + "integrity": "sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001358", + "electron-to-chromium": "^1.4.164", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/cacache/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/cached-path-relative": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", + "dev": true + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/caching-transform/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001358", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001358.tgz", + "integrity": "sha512-hvp8PSRymk85R20bsDra7ZTCpSVGN/PAz9pSAjPSjKC+rNmnUk5vCRgJwiTT/O4feQ/yu/drvZYpKxxhbFuChw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/catharsis": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz", + "integrity": "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", + "dev": true, + "dependencies": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + } + }, + "node_modules/combine-source-map/node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "deprecated": "This package is no longer supported.", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-concurrently/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/core-js": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.23.2.tgz", + "integrity": "sha512-ELJOWxNrJfOH/WK4VJ3Qd+fOqZuOuDNDJz0xG6Bt4mGg2eO/UT9CljCrbqDGovjLKUrGajEEBcoTOc0w+yBYeQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz", + "integrity": "sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.4", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A==", + "dev": true + }, + "node_modules/dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= sha512-GtxAN4HvBachZzm4OnWqc45ESpUCMwkYcsjnsPs23FwJbsO+k4t0k9bQCgOmzIlpHO28+WPK/KRbRk0DDHuuDw==", + "dev": true + }, + "node_modules/default-require-extensions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", + "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==", + "dev": true, + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", + "dev": true + }, + "node_modules/deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "dependencies": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.166", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.166.tgz", + "integrity": "sha512-ZPLdq3kcATkD6dwne5M4SgJBHw21t90BqTGzf3AceJwj3cE/ICv6jyDwHYyJoF4JNuXM3pzRxlaRmpO7pdwmcg==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz", + "integrity": "sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.3", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-google": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz", + "integrity": "sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", + "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c= sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dev": true, + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fetch-pretender": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/fetch-pretender/-/fetch-pretender-1.5.0.tgz", + "integrity": "sha1-twkYOmL3hYzbdzdx2TkXiiCQQZQ= sha512-sJtox46kqCh7DKUyethZBLqR8vt8EywnLOlWiYwbh9cGB57bmMUACh6/pauEFxYlgip2jMVlHRROJzA9i87/dQ==", + "dev": true, + "dependencies": { + "fetchme": "^2.0.0", + "route-recognizer": "^0.1.9", + "xhr-pretender": "^1.4.0" + } + }, + "node_modules/fetchme": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fetchme/-/fetchme-2.1.0.tgz", + "integrity": "sha1-w7ZjIlcuIFRPbCxHWZFVH6qFrl8= sha512-kwWWHC1yMXCE7Hm5Vkd2gZNYkogJcjALhLhC69E5akm4azr4ZBUzOcSzZZhFd3Z+j6kWeaQMGA5qaGtfWpRtHw==", + "dev": true + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "deprecated": "This module is no longer supported.", + "dev": true + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k= sha512-ZBbtRiapkZYLsqoPyZOR+uPfto0GRMNQN1GwzZtZt7iZvPPbDDQV0JF5Hx4o/QFQ5c0vyuoZ98T8RSBbopzWtA==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "deprecated": "This package is no longer supported.", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/fsu": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fsu/-/fsu-1.1.1.tgz", + "integrity": "sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0= sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE= sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", + "dev": true, + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/insert-module-globals": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", + "dev": true, + "dependencies": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz", + "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", + "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8= sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz", + "integrity": "sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==", + "dev": true, + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.0", + "istanbul-lib-coverage": "^3.0.0-alpha.1", + "make-dir": "^3.0.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^3.3.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "dev": true, + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsdoc": { + "version": "3.6.11", + "resolved": "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.11.tgz", + "integrity": "sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.9.4", + "@types/markdown-it": "^12.2.3", + "bluebird": "^3.7.2", + "catharsis": "^0.9.0", + "escape-string-regexp": "^2.0.0", + "js2xmlparser": "^4.0.2", + "klaw": "^3.0.0", + "markdown-it": "^12.3.2", + "markdown-it-anchor": "^8.4.1", + "marked": "^4.0.10", + "mkdirp": "^1.0.4", + "requizzle": "^0.2.3", + "strip-json-comments": "^3.1.0", + "taffydb": "2.6.2", + "underscore": "~1.13.2" + }, + "bin": { + "jsdoc": "jsdoc.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jsdoc-babel": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsdoc-babel/-/jsdoc-babel-0.5.0.tgz", + "integrity": "sha512-PYfTbc3LNTeR8TpZs2M94NLDWqARq0r9gx3SvuziJfmJS7/AeMKvtj0xjzOX0R/4MOVA7/FqQQK7d6U0iEoztQ==", + "dev": true, + "dependencies": { + "jsdoc-regex": "^1.0.1", + "lodash": "^4.17.10" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/jsdoc-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jsdoc-regex/-/jsdoc-regex-1.0.1.tgz", + "integrity": "sha1-hCRCjVtWOtjFx/vsB5uaiwnI3Po= sha512-CMFgT3K8GbmChWEfLWe6jlv9x33E8wLPzBjxIlh/eHLMcnDF+TF3CL265ZGBe029o1QdFepwVrQu0WuqqNPncg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jsdoc/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/just-extend": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.1.1.tgz", + "integrity": "sha512-aWgeGFW67BP3e5181Ep1Fv2v8z//iBJfrvyTnq8wG86vEESwmonn1zPBJ0VfmT9CJq2FIT0VsETtrNFm2a+SHA==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klaw": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", + "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168= sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", + "dev": true + }, + "node_modules/lodash.isempty": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz", + "integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==", + "dev": true + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true + }, + "node_modules/lodash.isobject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", + "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0= sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==", + "dev": true + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.1.tgz", + "integrity": "sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA==", + "deprecated": "Please upgrade to 2.3.7 which fixes GHSA-4q6p-r6v2-jvc5", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-anchor": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz", + "integrity": "sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA==", + "dev": true, + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/marked": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", + "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "dependencies": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz", + "integrity": "sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha-junit-reporter": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.0.2.tgz", + "integrity": "sha512-vYwWq5hh3v1lG0gdQCBxwNipBfvDiAM1PHroQRNp96+2l72e9wEUTw+mzoK+O0SudgfQ7WvTQZ9Nh3qkAYAjfg==", + "dev": true, + "dependencies": { + "debug": "^2.2.0", + "md5": "^2.1.0", + "mkdirp": "~0.5.1", + "strip-ansi": "^6.0.1", + "xml": "^1.0.0" + }, + "peerDependencies": { + "mocha": ">=2.2.5" + } + }, + "node_modules/mocha-junit-reporter/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/mocha-junit-reporter/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha-junit-reporter/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mochawesome": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/mochawesome/-/mochawesome-7.1.3.tgz", + "integrity": "sha512-Vkb3jR5GZ1cXohMQQ73H3cZz7RoxGjjUo0G5hu0jLaW+0FdUxUwg3Cj29bqQdh0rFcnyV06pWmqmi5eBPnEuNQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "diff": "^5.0.0", + "json-stringify-safe": "^5.0.1", + "lodash.isempty": "^4.4.0", + "lodash.isfunction": "^3.0.9", + "lodash.isobject": "^3.0.2", + "lodash.isstring": "^4.0.1", + "mochawesome-report-generator": "^6.2.0", + "strip-ansi": "^6.0.1", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "mocha": ">=7" + } + }, + "node_modules/mochawesome-report-generator": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/mochawesome-report-generator/-/mochawesome-report-generator-6.2.0.tgz", + "integrity": "sha512-Ghw8JhQFizF0Vjbtp9B0i//+BOkV5OWcQCPpbO0NGOoxV33o+gKDYU0Pr2pGxkIHnqZ+g5mYiXF7GMNgAcDpSg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "dateformat": "^4.5.1", + "escape-html": "^1.0.3", + "fs-extra": "^10.0.0", + "fsu": "^1.1.1", + "lodash.isfunction": "^3.0.9", + "opener": "^1.5.2", + "prop-types": "^15.7.2", + "tcomb": "^3.2.17", + "tcomb-validation": "^3.3.0", + "validator": "^13.6.0", + "yargs": "^17.2.1" + }, + "bin": { + "marge": "bin/cli.js" + } + }, + "node_modules/mochawesome-report-generator/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/mochawesome-report-generator/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/mochawesome-report-generator/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/mochawesome-report-generator/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/mochawesome-report-generator/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mochawesome-report-generator/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mochawesome-report-generator/node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/mochawesome-report-generator/node_modules/yargs": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/mochawesome-report-generator/node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mochawesome/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/mochawesome/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/mochawesome/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/mochawesome/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/mochawesome/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mochawesome/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "dev": true, + "dependencies": { + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "deprecated": "This package is no longer supported.", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nise": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz", + "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": ">=5", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "node_modules/node-environment-flags": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", + "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" + } + }, + "node_modules/node-environment-flags/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/nyc/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nyc/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/nyc/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", + "dev": true, + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dev": true, + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-to-regexp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI= sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM= sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY= sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4= sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", + "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I= sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requizzle": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", + "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/route-recognizer": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/route-recognizer/-/route-recognizer-0.1.11.tgz", + "integrity": "sha1-gQ2OVwKrtAVtbcuOhlxWhefBTrc= sha512-7JNu5mXQVa39zxmUKyk/bfpeF2WyEC5JKVTJO5HATcoUQpcQsI3eLzhwGU69xeOagQxfOQ+yr2sSv0G8xy+vQA==", + "dev": true + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc= sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/sinon": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz", + "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==", + "deprecated": "16.1.1", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.8.3", + "@sinonjs/fake-timers": "^9.1.2", + "@sinonjs/samsam": "^6.1.1", + "diff": "^5.0.0", + "nise": "^5.1.1", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "node_modules/sinon/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sinon/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spawn-wrap/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4= sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", + "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI= sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", + "dev": true, + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "dependencies": { + "acorn-node": "^1.2.0" + } + }, + "node_modules/taffydb": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", + "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg= sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tcomb": { + "version": "3.2.29", + "resolved": "https://registry.npmjs.org/tcomb/-/tcomb-3.2.29.tgz", + "integrity": "sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==", + "dev": true + }, + "node_modules/tcomb-validation": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tcomb-validation/-/tcomb-validation-3.4.1.tgz", + "integrity": "sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA==", + "dev": true, + "dependencies": { + "tcomb": "^3.0.0" + } + }, + "node_modules/terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "dev": true, + "dependencies": { + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", + "dev": true, + "dependencies": { + "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/uglify-js": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz", + "integrity": "sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==", + "dev": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglifyjs-webpack-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.2.0.tgz", + "integrity": "sha512-mHSkufBmBuJ+KHQhv5H0MXijtsoA1lynJt1lXOaotja8/I0pR4L9oGaPIZw+bQBOFittXZg9OC1sXSGO9D9ZYg==", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "source-map": "^0.6.1", + "uglify-js": "^3.6.0", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "dev": true + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true, + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" + } + }, + "node_modules/underscore": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz", + "integrity": "sha512-ufSazemeh9Gty0qiWtoRpJ9F5Q5W3xdIPm1UZQqYQv/q0Nyb9EMHUB2lu+O9x1re9WsorpMAUu4Y6Lxcs5n+XQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", + "dev": true + }, + "node_modules/util": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", + "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack/node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", + "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xhr-pretender": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/xhr-pretender/-/xhr-pretender-1.4.0.tgz", + "integrity": "sha1-/piK8nzFoaiMeKaq68OzMwtRplA= sha512-qrvvKWadlbx0uDAp3KXRejb8PQJ9FGBOq0EIeNrg7YWjdg3Nswj2ukhb5JtvHn+aE10q4o6xWYcQUji41m3VPg==", + "dev": true + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true + }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/yarn.lock b/yarn.lock index 272e549..5901b5d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,14 +4,14 @@ "@ampproject/remapping@^2.1.0": version "2.1.2" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz" integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== dependencies: "@jridgewell/trace-mapping" "^0.3.0" "@babel/cli@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.18.10.tgz#4211adfc45ffa7d4f3cee6b60bb92e9fe68fe56a" + resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.18.10.tgz" integrity sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw== dependencies: "@jridgewell/trace-mapping" "^0.3.8" @@ -25,28 +25,21 @@ "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3" chokidar "^3.4.0" -"@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - "@babel/code-frame@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== dependencies: "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8": version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz" integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== -"@babel/core@^7.18.10": +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.18.10", "@babel/core@^7.4.0-0", "@babel/core@^7.7.5", "@babel/core@>=7.2.0": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.10.tgz#39ad504991d77f1f3da91be0b8b949a5bc466fb8" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz" integrity sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw== dependencies: "@ampproject/remapping" "^2.1.0" @@ -65,62 +58,25 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/core@^7.7.5": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.17.tgz#993c5e893333107a2815d8e0d73a2c3755e280b2" - integrity sha512-V3CuX1aBywbJvV2yzJScRxeiiw0v2KZZYYE3giywxzFJL13RiyPjaaDwhDnxmgFTTS7FgvM2ijr4QmKNIu0AtQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.12.17" - "@babel/helper-module-transforms" "^7.12.17" - "@babel/helpers" "^7.12.17" - "@babel/parser" "^7.12.17" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.12.17" - "@babel/types" "^7.12.17" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.19" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.17.tgz#9ef1dd792d778b32284411df63f4f668a9957287" - integrity sha512-DSA7ruZrY4WI8VxuS1jWSRezFnghEoYEFrZcw9BizQRmOZiUsiHl59+qEARGPqPikwA/GPTyRCi7isuCK/oyqg== - dependencies: - "@babel/types" "^7.12.17" - jsesc "^2.5.1" - source-map "^0.5.0" - "@babel/generator@^7.18.10": version "7.18.12" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.12.tgz#fa58daa303757bd6f5e4bbca91b342040463d9f4" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz" integrity sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg== dependencies: "@babel/types" "^7.18.10" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== dependencies: "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz" integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw== dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" @@ -128,7 +84,7 @@ "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz#69e64f57b524cde3e5ff6cc5a9f4a387ee5563bf" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz" integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== dependencies: "@babel/compat-data" "^7.18.8" @@ -138,7 +94,7 @@ "@babel/helper-create-class-features-plugin@^7.18.6": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz" integrity sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -149,17 +105,9 @@ "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" - integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - regexpu-core "^4.7.1" - "@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz" integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -167,7 +115,7 @@ "@babel/helper-define-polyfill-provider@^0.3.2": version "0.3.2" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz#bd10d0aca18e8ce012755395b05a79f45eca5073" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz" integrity sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg== dependencies: "@babel/helper-compilation-targets" "^7.17.7" @@ -179,93 +127,48 @@ "@babel/helper-environment-visitor@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" - "@babel/helper-function-name@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz" integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== dependencies: "@babel/template" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-member-expression-to-functions@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.17.tgz#f82838eb06e1235307b6d71457b6670ff71ee5ac" - integrity sha512-Bzv4p3ODgS/qpBE0DiJ9qf5WxSmrQ8gVTe8ClMfwwsY2x/rhykxxy3bXzG7AGTnPB2ij37zGJ/Q/6FruxHxsxg== - dependencies: - "@babel/types" "^7.12.17" - "@babel/helper-member-expression-to-functions@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== dependencies: "@babel/types" "^7.18.9" -"@babel/helper-module-imports@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" - integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-module-imports@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.17.tgz#7c75b987d6dfd5b48e575648f81eaac891539509" - integrity sha512-sFL+p6zOCQMm9vilo06M4VHuTxUAwa6IxgL56Tq1DVtA0ziAGTH1ThmJq7xwPqdQlgAbKX3fb0oZNbtRIyA5KQ== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" - "@babel/helper-simple-access" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.12.17" - "@babel/types" "^7.12.17" - lodash "^4.17.19" - "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz#5a1079c005135ed627442df31a42887e80fcb712" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz" integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== dependencies: "@babel/helper-environment-visitor" "^7.18.9" @@ -277,43 +180,21 @@ "@babel/traverse" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== dependencies: "@babel/types" "^7.18.6" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz#174254d0f2424d8aefb4dd48057511247b0a9eeb" - integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== - -"@babel/helper-plugin-utils@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== - -"@babel/helper-plugin-utils@^7.16.7": - version "7.16.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" - integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== - -"@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz" integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== "@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz" integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -321,19 +202,9 @@ "@babel/helper-wrap-function" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz#00ec4fb6862546bd3d0aff9aac56074277173121" - integrity sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.12.13" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.12.13" - "@babel/types" "^7.12.13" - "@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz#1092e002feca980fbbb0bd4d51b74a65c6a500e6" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz" integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" @@ -342,64 +213,45 @@ "@babel/traverse" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-simple-access@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" - integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-simple-access@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz" integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== dependencies: "@babel/types" "^7.18.6" "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz" integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== dependencies: "@babel/types" "^7.18.9" -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-split-export-declaration@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== dependencies: "@babel/types" "^7.18.6" "@babel/helper-string-parser@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz" integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - "@babel/helper-validator-identifier@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz" integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== "@babel/helper-validator-option@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== "@babel/helper-wrap-function@^7.18.9": version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz#bff23ace436e3f6aefb61f85ffae2291c80ed1fb" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz" integrity sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w== dependencies: "@babel/helper-function-name" "^7.18.9" @@ -407,36 +259,18 @@ "@babel/traverse" "^7.18.11" "@babel/types" "^7.18.10" -"@babel/helpers@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.17.tgz#71e03d2981a6b5ee16899964f4101dc8471d60bc" - integrity sha512-tEpjqSBGt/SFEsFikKds1sLNChKKGGR17flIgQKXH4fG6m9gTgl3gnOC1giHNyaBCSKuTfxaSzHi7UnvqiVKxg== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.12.17" - "@babel/types" "^7.12.17" - "@babel/helpers@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.9.tgz#4bef3b893f253a1eced04516824ede94dcfe7ff9" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz" integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== dependencies: "@babel/template" "^7.18.6" "@babel/traverse" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/highlight@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" - integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - chalk "^2.0.0" - js-tokens "^4.0.0" - "@babel/highlight@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== dependencies: "@babel/helper-validator-identifier" "^7.18.6" @@ -445,7 +279,7 @@ "@babel/node@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.18.10.tgz#ab2be57785346b5bf0721c3d17572402419d9d8a" + resolved "https://registry.npmjs.org/@babel/node/-/node-7.18.10.tgz" integrity sha512-VbqzK6QXfQVi4Bpk6J7XqHXKFNbG2j3rdIdx68+/14GDU7jXDOSyUU/cwqCM1fDwCdxp37pNV/ToSCXsNChcyA== dependencies: "@babel/register" "^7.18.9" @@ -455,26 +289,21 @@ regenerator-runtime "^0.13.4" v8flags "^3.1.1" -"@babel/parser@^7.12.13", "@babel/parser@^7.12.17", "@babel/parser@^7.9.4": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.17.tgz#bc85d2d47db38094e5bb268fc761716e7d693848" - integrity sha512-r1yKkiUTYMQ8LiEI0UcQx5ETw5dpTLn9wijn9hk6KkTtOK95FndDN10M+8/s6k/Ymlbivw0Av9q4SlgF80PtHg== - -"@babel/parser@^7.18.10", "@babel/parser@^7.18.11": +"@babel/parser@^7.18.10", "@babel/parser@^7.18.11", "@babel/parser@^7.9.4": version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz" integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz" integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -483,7 +312,7 @@ "@babel/plugin-proposal-async-generator-functions@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz#85ea478c98b0095c3e4102bff3b67d306ed24952" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz" integrity sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew== dependencies: "@babel/helper-environment-visitor" "^7.18.9" @@ -493,7 +322,7 @@ "@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -501,7 +330,7 @@ "@babel/plugin-proposal-class-static-block@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz" integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -510,7 +339,7 @@ "@babel/plugin-proposal-dynamic-import@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -518,7 +347,7 @@ "@babel/plugin-proposal-export-namespace-from@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -526,7 +355,7 @@ "@babel/plugin-proposal-json-strings@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -534,7 +363,7 @@ "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz" integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -542,7 +371,7 @@ "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -550,7 +379,7 @@ "@babel/plugin-proposal-numeric-separator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -558,7 +387,7 @@ "@babel/plugin-proposal-object-rest-spread@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz" integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== dependencies: "@babel/compat-data" "^7.18.8" @@ -569,7 +398,7 @@ "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -577,7 +406,7 @@ "@babel/plugin-proposal-optional-chaining@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz" integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -586,7 +415,7 @@ "@babel/plugin-proposal-private-methods@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -594,7 +423,7 @@ "@babel/plugin-proposal-private-property-in-object@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz" integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -602,144 +431,136 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.18.6": +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" - integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-flow@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz" integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-import-assertions@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz" integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5": version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-arrow-functions@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz" integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-async-to-generator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz" integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== dependencies: "@babel/helper-module-imports" "^7.18.6" @@ -748,21 +569,21 @@ "@babel/plugin-transform-block-scoped-functions@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz" integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-classes@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz#90818efc5b9746879b869d5ce83eb2aa48bbc3da" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz" integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" @@ -776,44 +597,36 @@ "@babel/plugin-transform-computed-properties@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz" integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-destructuring@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz#68906549c021cb231bee1db21d3b5b095f8ee292" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz" integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-dotall-regex@^7.18.6": +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" - integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-transform-duplicate-keys@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-exponentiation-operator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" @@ -821,7 +634,7 @@ "@babel/plugin-transform-flow-strip-types@^7.18.6": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.18.9.tgz#5b4cc521426263b5ce08893a2db41097ceba35bf" + resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.18.9.tgz" integrity sha512-+G6rp2zRuOAInY5wcggsx4+QVao1qPM0osC9fTUVlAV3zOrzTCnrMAFVnR6+a3T8wz1wFIH7KhYMcMB3u1n80A== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -829,14 +642,14 @@ "@babel/plugin-transform-for-of@^7.18.8": version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz" integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-function-name@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== dependencies: "@babel/helper-compilation-targets" "^7.18.9" @@ -845,21 +658,21 @@ "@babel/plugin-transform-literals@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-member-expression-literals@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-modules-amd@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz" integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== dependencies: "@babel/helper-module-transforms" "^7.18.6" @@ -868,7 +681,7 @@ "@babel/plugin-transform-modules-commonjs@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz" integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== dependencies: "@babel/helper-module-transforms" "^7.18.6" @@ -878,7 +691,7 @@ "@babel/plugin-transform-modules-systemjs@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz#545df284a7ac6a05125e3e405e536c5853099a06" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz" integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== dependencies: "@babel/helper-hoist-variables" "^7.18.6" @@ -889,7 +702,7 @@ "@babel/plugin-transform-modules-umd@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== dependencies: "@babel/helper-module-transforms" "^7.18.6" @@ -897,7 +710,7 @@ "@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz#c89bfbc7cc6805d692f3a49bc5fc1b630007246d" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz" integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -905,14 +718,14 @@ "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-object-super@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -920,21 +733,21 @@ "@babel/plugin-transform-parameters@^7.18.8": version "7.18.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz" integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-regenerator@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz" integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -942,21 +755,21 @@ "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-shorthand-properties@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-spread@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz#6ea7a6297740f381c540ac56caf75b05b74fb664" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz" integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" @@ -964,35 +777,35 @@ "@babel/plugin-transform-sticky-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-template-literals@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typeof-symbol@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-unicode-escapes@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz" integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ== dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-unicode-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -1000,7 +813,7 @@ "@babel/preset-env@^7.18.10": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.10.tgz#83b8dfe70d7eea1aae5a10635ab0a5fe60dfc0f4" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz" integrity sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA== dependencies: "@babel/compat-data" "^7.18.8" @@ -1081,7 +894,7 @@ "@babel/preset-flow@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.18.6.tgz#83f7602ba566e72a9918beefafef8ef16d2810cb" + resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.18.6.tgz" integrity sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ== dependencies: "@babel/helper-plugin-utils" "^7.18.6" @@ -1090,7 +903,7 @@ "@babel/preset-modules@^0.1.5": version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -1101,7 +914,7 @@ "@babel/register@^7.18.9": version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c" + resolved "https://registry.npmjs.org/@babel/register/-/register-7.18.9.tgz" integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw== dependencies: clone-deep "^4.0.1" @@ -1112,47 +925,23 @@ "@babel/runtime@^7.8.4": version "7.12.18" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.18.tgz" integrity sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - "@babel/template@^7.18.10", "@babel/template@^7.18.6": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz" integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== dependencies: "@babel/code-frame" "^7.18.6" "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.12.13", "@babel/traverse@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.17.tgz#40ec8c7ffb502c4e54c7f95492dc11b88d718619" - integrity sha512-LGkTqDqdiwC6Q7fWSwQoas/oyiEYw6Hqjve5KOSykXkmFJFqzvGMb9niaUEag3Rlve492Mkye3gLw9FTv94fdQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.12.17" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.12.17" - "@babel/types" "^7.12.17" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - "@babel/traverse@^7.18.10", "@babel/traverse@^7.18.11", "@babel/traverse@^7.18.9": version "7.18.11" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.11.tgz#3d51f2afbd83ecf9912bcbb5c4d94e3d2ddaa16f" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz" integrity sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ== dependencies: "@babel/code-frame" "^7.18.6" @@ -1166,18 +955,9 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.4.4": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.17.tgz#9d711eb807e0934c90b8b1ca0eb1f7230d150963" - integrity sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9": +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.4.4": version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.10.tgz#4908e81b6b339ca7c6b7a555a5fc29446f26dde6" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz" integrity sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ== dependencies: "@babel/helper-string-parser" "^7.18.10" @@ -1186,12 +966,12 @@ "@discoveryjs/json-ext@^0.5.0": version "0.5.6" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" + resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz" integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== "@eslint/eslintrc@^1.3.0": version "1.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz" integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw== dependencies: ajv "^6.12.4" @@ -1206,7 +986,7 @@ "@humanwhocodes/config-array@^0.10.4": version "0.10.4" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.10.4.tgz#01e7366e57d2ad104feea63e72248f22015c520c" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz" integrity sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw== dependencies: "@humanwhocodes/object-schema" "^1.2.1" @@ -1215,17 +995,17 @@ "@humanwhocodes/gitignore-to-minimatch@^1.0.2": version "1.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz#316b0a63b91c10e53f242efb4ace5c3b34e8728d" + resolved "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz" integrity sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA== "@humanwhocodes/object-schema@^1.2.1": version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: camelcase "^5.3.1" @@ -1236,21 +1016,12 @@ "@istanbuljs/schema@^0.1.2": version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jridgewell/gen-mapping@^0.3.0": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" - integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/gen-mapping@^0.3.2": +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== dependencies: "@jridgewell/set-array" "^1.0.1" @@ -1259,22 +1030,17 @@ "@jridgewell/resolve-uri@^3.0.3": version "3.0.5" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz" integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== -"@jridgewell/set-array@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" - integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== - "@jridgewell/set-array@^1.0.1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/source-map@^0.3.2": version "0.3.2" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz" integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== dependencies: "@jridgewell/gen-mapping" "^0.3.0" @@ -1282,20 +1048,12 @@ "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.11" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz" integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== -"@jridgewell/trace-mapping@^0.3.0": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" - integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== - dependencies: - "@jridgewell/resolve-uri" "^3.0.3" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9": version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz" integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== dependencies: "@jridgewell/resolve-uri" "^3.0.3" @@ -1303,61 +1061,47 @@ "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" + resolved "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz" integrity sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ== "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b" - integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== - dependencies: - type-detect "4.0.8" - -"@sinonjs/commons@^1.8.3": +"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3": version "1.8.3" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@>=5": - version "9.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.0.tgz#8c92c56f195e0bed4c893ba59c8e3d55831ca0df" - integrity sha512-M8vapsv9qQupMdzrVzkn5rb9jG7aUTEPAZdMtME2PuBaefksFZVE2C1g4LBRTkF/k3nRDNbDc5tp5NFC1PEYxA== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@sinonjs/fake-timers@^9.1.2": +"@sinonjs/fake-timers@^9.1.2", "@sinonjs/fake-timers@>=5": version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== dependencies: "@sinonjs/commons" "^1.7.0" "@sinonjs/samsam@^6.1.1": version "6.1.1" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-6.1.1.tgz#627f7f4cbdb56e6419fa2c1a3e4751ce4f6a00b1" + resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz" integrity sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA== dependencies: "@sinonjs/commons" "^1.6.0" @@ -1366,33 +1110,25 @@ "@sinonjs/text-encoding@^0.7.1": version "0.7.1" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" + resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== "@types/chai@^4.3.3": version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz" integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== "@types/eslint-scope@^3.7.3": version "3.7.3" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" + resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz" integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== dependencies: "@types/eslint" "*" "@types/estree" "*" -"@types/eslint@*": - version "8.4.1" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" - integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/eslint@^7.29.0 || ^8.4.1": +"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": version "8.4.5" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.5.tgz#acdfb7dd36b91cc5d812d7c093811a8f3d9b31e4" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz" integrity sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ== dependencies: "@types/estree" "*" @@ -1400,32 +1136,27 @@ "@types/estree@*", "@types/estree@^0.0.51": version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.9" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz" integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== -"@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/linkify-it@*": version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9" + resolved "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz" integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== -"@types/markdown-it@^12.2.3": +"@types/markdown-it@*", "@types/markdown-it@^12.2.3": version "12.2.3" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" + resolved "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz" integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== dependencies: "@types/linkify-it" "*" @@ -1433,27 +1164,27 @@ "@types/mdurl@*": version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" + resolved "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz" integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== "@types/mocha@^9.1.1": version "9.1.1" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.1.1.tgz#e7c4f1001eefa4b8afbd1eee27a237fee3bf29c4" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz" integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw== "@types/node@*": version "17.0.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.17.tgz#a8ddf6e0c2341718d74ee3dc413a13a042c45a0c" + resolved "https://registry.npmjs.org/@types/node/-/node-17.0.17.tgz" integrity sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw== "@ungap/promise-all-settled@1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== "@webassemblyjs/ast@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz" integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== dependencies: "@webassemblyjs/helper-numbers" "1.11.1" @@ -1461,22 +1192,22 @@ "@webassemblyjs/floating-point-hex-parser@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz" integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== "@webassemblyjs/helper-api-error@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz" integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== "@webassemblyjs/helper-buffer@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz" integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== "@webassemblyjs/helper-numbers@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz" integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== dependencies: "@webassemblyjs/floating-point-hex-parser" "1.11.1" @@ -1485,12 +1216,12 @@ "@webassemblyjs/helper-wasm-bytecode@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz" integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== "@webassemblyjs/helper-wasm-section@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz" integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1500,26 +1231,26 @@ "@webassemblyjs/ieee754@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz" integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz" integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz" integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== "@webassemblyjs/wasm-edit@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz" integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1533,7 +1264,7 @@ "@webassemblyjs/wasm-gen@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz" integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1544,7 +1275,7 @@ "@webassemblyjs/wasm-opt@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz" integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1554,7 +1285,7 @@ "@webassemblyjs/wasm-parser@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz" integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1566,7 +1297,7 @@ "@webassemblyjs/wast-printer@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz" integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== dependencies: "@webassemblyjs/ast" "1.11.1" @@ -1574,52 +1305,44 @@ "@webpack-cli/configtest@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" + resolved "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz" integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== "@webpack-cli/info@^1.5.0": version "1.5.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" + resolved "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz" integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== dependencies: envinfo "^7.7.3" "@webpack-cli/serve@^1.7.0": version "1.7.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" + resolved "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz" integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -JSONStream@^1.0.3: - version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" - integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - acorn-import-assertions@^1.7.6: version "1.8.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz" integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz" integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== dependencies: acorn "^7.0.0" @@ -1628,27 +1351,22 @@ acorn-node@^1.2.0, acorn-node@^1.3.0, acorn-node@^1.5.2, acorn-node@^1.6.1: acorn-walk@^7.0.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: + version "8.8.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz" + integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== + acorn@^7.0.0: version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.5.0, acorn@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" - integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== - -acorn@^8.7.1: - version "8.7.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -1656,31 +1374,31 @@ aggregate-error@^3.0.0: ajv-errors@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== ajv-formats@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: ajv "^8.0.0" ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv-keywords@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== dependencies: fast-deep-equal "^3.1.3" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1, ajv@>=5.0.0: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -1688,9 +1406,19 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.8.0: +ajv@^8.0.0: version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ajv@^8.8.0, ajv@^8.8.2: + version "8.11.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz" integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== dependencies: fast-deep-equal "^3.1.1" @@ -1700,39 +1428,38 @@ ajv@^8.0.0, ajv@^8.8.0: ansi-colors@4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-regex@^5.0.0, ansi-regex@^5.0.1: +ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.0.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" + color-convert "^2.0.1" anymatch@~3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" @@ -1740,41 +1467,41 @@ anymatch@~3.1.2: append-transform@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" + resolved "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz" integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== dependencies: default-require-extensions "^3.0.0" aproba@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== archy@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" - integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-filter@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= + resolved "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= sha512-Ene1hbrinPZ1qPoZp7NSx4jQnh4nr7MtY78pHNb+yr8yHbxmTS7ChGW0a55JKA7TkRDeoQxK4GcJaCvBYplSKA== array-includes@^3.1.4: version "3.1.4" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz" integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== dependencies: call-bind "^1.0.2" @@ -1785,12 +1512,12 @@ array-includes@^3.1.4: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.flat@^1.2.5: version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz" integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== dependencies: call-bind "^1.0.2" @@ -1799,7 +1526,7 @@ array.prototype.flat@^1.2.5: asn1.js@^5.2.0: version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz" integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" @@ -1809,7 +1536,7 @@ asn1.js@^5.2.0: assert@^1.4.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz" integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: object-assign "^4.1.1" @@ -1817,19 +1544,19 @@ assert@^1.4.0: assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== available-typed-arrays@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz" integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== dependencies: array-filter "^1.0.0" babel-eslint@^11.0.0-beta.2: version "11.0.0-beta.2" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-11.0.0-beta.2.tgz#de1f06795aa0d8cedcf6ac943e63056f5b4a7048" + resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-11.0.0-beta.2.tgz" integrity sha512-D2tunrOu04XloEdU2XVUminUu25FILlGruZmffqH5OSnLDhCheKNvUoM1ihrexdUvhizlix8bjqRnsss4V/UIQ== dependencies: eslint-scope "5.0.0" @@ -1838,7 +1565,7 @@ babel-eslint@^11.0.0-beta.2: babel-loader@^8.2.5: version "8.2.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz" integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== dependencies: find-cache-dir "^3.3.1" @@ -1848,14 +1575,14 @@ babel-loader@^8.2.5: babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" babel-plugin-polyfill-corejs2@^0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz#e4c31d4c89b56f3cf85b92558954c66b54bd972d" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz" integrity sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q== dependencies: "@babel/compat-data" "^7.17.7" @@ -1864,7 +1591,7 @@ babel-plugin-polyfill-corejs2@^0.3.2: babel-plugin-polyfill-corejs3@^0.5.3: version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz#d7e09c9a899079d71a8b670c6181af56ec19c5c7" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz" integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.2" @@ -1872,54 +1599,64 @@ babel-plugin-polyfill-corejs3@^0.5.3: babel-plugin-polyfill-regenerator@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz#8f51809b6d5883e07e71548d75966ff7635527fe" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz" integrity sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw== dependencies: "@babel/helper-define-polyfill-provider" "^0.3.2" babelify@^10.0.0: version "10.0.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" + resolved "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz" integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg== balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= sha512-9Y0g0Q8rmSt+H33DfKv7FOc3v+iRI+o1lbzt8jGcIosYW37IIW/2XVYq5NPdmaD5NQ59Nk26Kl/vZbwW9Fr8vg== base64-js@^1.0.2: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== big.js@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bluebird@^3.5.5, bluebird@^3.7.2: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: +bn.js@^4.0.0: version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^4.1.0: + version "4.11.9" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^4.11.9: + version "4.11.9" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz" integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== bn.js@^5.0.0, bn.js@^5.1.1: version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -1927,50 +1664,50 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" -braces@^3.0.1, braces@^3.0.2, braces@~3.0.2: +braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browser-pack@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.1.0.tgz#c34ba10d0b9ce162b5af227c7131c92c2ecd5774" + resolved "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz" integrity sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA== dependencies: - JSONStream "^1.0.3" combine-source-map "~0.8.0" defined "^1.0.0" + JSONStream "^1.0.3" safe-buffer "^5.1.1" through2 "^2.0.0" umd "^3.0.0" browser-resolve@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" + resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz" integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== dependencies: resolve "^1.17.0" browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" @@ -1982,7 +1719,7 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" @@ -1991,7 +1728,7 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" @@ -2001,7 +1738,7 @@ browserify-des@^1.0.0: browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz" integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: bn.js "^5.0.0" @@ -2009,7 +1746,7 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: browserify-sign@^4.0.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz" integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: bn.js "^5.1.1" @@ -2024,17 +1761,16 @@ browserify-sign@^4.0.0: browserify-zlib@~0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz" integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" browserify@^17.0.0: version "17.0.0" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-17.0.0.tgz#4c48fed6c02bfa2b51fd3b670fddb805723cdc22" + resolved "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz" integrity sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w== dependencies: - JSONStream "^1.0.3" assert "^1.4.0" browser-pack "^6.0.1" browser-resolve "^2.0.0" @@ -2056,6 +1792,7 @@ browserify@^17.0.0: https-browserify "^1.0.0" inherits "~2.0.1" insert-module-globals "^7.2.1" + JSONStream "^1.0.3" labeled-stream-splicer "^2.0.0" mkdirp-classic "^0.5.2" module-deps "^6.2.3" @@ -2083,20 +1820,9 @@ browserify@^17.0.0: vm-browserify "^1.0.0" xtend "^4.0.0" -browserslist@^4.14.5: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== - dependencies: - caniuse-lite "^1.0.30001219" - colorette "^1.2.2" - electron-to-chromium "^1.3.723" - escalade "^3.1.1" - node-releases "^1.1.71" - -browserslist@^4.20.2, browserslist@^4.20.4: +browserslist@^4.14.5, browserslist@^4.20.2, browserslist@^4.20.4, "browserslist@>= 4.21.0": version "4.21.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.0.tgz#7ab19572361a140ecd1e023e2c1ed95edda0cefe" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.0.tgz" integrity sha512-UQxE0DIhRB5z/zDz9iA03BOfxaN2+GQdBYH/2WrSIWEUrnpzTPJbhqt+umq6r3acaPRTW1FNTkrcp0PXgtFkvA== dependencies: caniuse-lite "^1.0.30001358" @@ -2104,29 +1830,19 @@ browserslist@^4.20.2, browserslist@^4.20.4: node-releases "^2.0.5" update-browserslist-db "^1.0.0" -browserslist@^4.21.3: - version "4.21.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a" - integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ== - dependencies: - caniuse-lite "^1.0.30001370" - electron-to-chromium "^1.4.202" - node-releases "^2.0.6" - update-browserslist-db "^1.0.5" - buffer-from@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== buffer@~5.2.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.2.1.tgz#dd57fa0f109ac59c602479044dca7b8b3d0b71d6" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz" integrity sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg== dependencies: base64-js "^1.0.2" @@ -2134,12 +1850,12 @@ buffer@~5.2.1: builtin-status-codes@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== cacache@^12.0.2: version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz" integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== dependencies: bluebird "^3.5.5" @@ -2160,12 +1876,12 @@ cacache@^12.0.2: cached-path-relative@^1.0.0, cached-path-relative@^1.0.2: version "1.1.0" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.1.0.tgz#865576dfef39c0d6a7defde794d078f5308e3ef3" + resolved "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz" integrity sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA== caching-transform@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" + resolved "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz" integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== dependencies: hasha "^5.0.0" @@ -2175,7 +1891,7 @@ caching-transform@^4.0.0: call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -2183,39 +1899,34 @@ call-bind@^1.0.0, call-bind@^1.0.2: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.0.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001358: +caniuse-lite@^1.0.30001358: version "1.0.30001358" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001358.tgz#473d35dabf5e448b463095cab7924e96ccfb8c00" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001358.tgz" integrity sha512-hvp8PSRymk85R20bsDra7ZTCpSVGN/PAz9pSAjPSjKC+rNmnUk5vCRgJwiTT/O4feQ/yu/drvZYpKxxhbFuChw== -caniuse-lite@^1.0.30001370: - version "1.0.30001374" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz#3dab138e3f5485ba2e74bd13eca7fe1037ce6f57" - integrity sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw== - catharsis@^0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" + resolved "https://registry.npmjs.org/catharsis/-/catharsis-0.9.0.tgz" integrity sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A== dependencies: lodash "^4.17.15" chai@^4.3.6: version "4.3.6" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" + resolved "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz" integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== dependencies: assertion-error "^1.1.0" @@ -2228,16 +1939,24 @@ chai@^4.3.6: chalk@^2.0.0: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz" integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: ansi-styles "^4.1.0" @@ -2245,7 +1964,7 @@ chalk@^4.0.0, chalk@^4.1.0: chalk@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -2253,17 +1972,17 @@ chalk@^4.1.2: charenc@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" + integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== check-error@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== -chokidar@3.5.3: +chokidar@^3.4.0, chokidar@3.5.3: version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -2276,34 +1995,19 @@ chokidar@3.5.3: optionalDependencies: fsevents "~2.3.2" -chokidar@^3.4.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.5.0" - optionalDependencies: - fsevents "~2.3.1" - chownr@^1.1.1: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chrome-trace-event@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz" integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" @@ -2311,12 +2015,12 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cliui@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz" integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: string-width "^4.2.0" @@ -2325,7 +2029,7 @@ cliui@^6.0.0: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -2334,7 +2038,7 @@ cliui@^7.0.2: clone-deep@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: is-plain-object "^2.0.4" @@ -2343,42 +2047,37 @@ clone-deep@^4.0.1: color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== colorette@^2.0.14: version "2.0.16" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz" integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== combine-source-map@^0.8.0, combine-source-map@~0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" - integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= + resolved "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz" + integrity sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos= sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg== dependencies: convert-source-map "~1.1.0" inline-source-map "~0.6.0" @@ -2387,32 +2086,32 @@ combine-source-map@^0.8.0, combine-source-map@~0.8.0: commander@^2.20.0: version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^4.0.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== commander@^7.0.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@~1.6.0: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" @@ -2422,29 +2121,29 @@ concat-stream@^1.5.0, concat-stream@^1.6.0, concat-stream@^1.6.1, concat-stream@ console-browserify@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz" integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== constants-browserify@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== convert-source-map@^1.1.0, convert-source-map@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz" integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" convert-source-map@~1.1.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" - integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz" + integrity sha1-SCnId+n+SbMWHzvzZziI4gRpmGA= sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg== copy-concurrently@^1.0.0: version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz" integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" @@ -2454,17 +2153,9 @@ copy-concurrently@^1.0.0: rimraf "^2.5.4" run-queue "^1.0.0" -core-js-compat@^3.21.0: - version "3.24.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.24.1.tgz#d1af84a17e18dfdd401ee39da9996f9a7ba887de" - integrity sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw== - dependencies: - browserslist "^4.21.3" - semver "7.0.0" - -core-js-compat@^3.22.1: +core-js-compat@^3.21.0, core-js-compat@^3.22.1: version "3.23.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.23.2.tgz#5cbf8a9c8812d665392845b85ae91b5bcc7b615c" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.2.tgz" integrity sha512-lrgZvxFwbQp9v7E8mX0rJ+JX7Bvh4eGULZXA1IAyjlsnWvCdw6TF8Tg6xtaSUSJMrSrMaLdpmk+V54LM1dvfOA== dependencies: browserslist "^4.20.4" @@ -2472,17 +2163,17 @@ core-js-compat@^3.22.1: core-js@^3.22.1: version "3.23.2" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.23.2.tgz#e07a60ca8b14dd129cabdc3d2551baf5a01c76f0" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.23.2.tgz" integrity sha512-ELJOWxNrJfOH/WK4VJ3Qd+fOqZuOuDNDJz0xG6Bt4mGg2eO/UT9CljCrbqDGovjLKUrGajEEBcoTOc0w+yBYeQ== core-util-is@~1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== create-ecdh@^4.0.0: version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" @@ -2490,7 +2181,7 @@ create-ecdh@^4.0.0: create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" @@ -2501,7 +2192,7 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" @@ -2513,7 +2204,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -2522,12 +2213,12 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: crypt@0.0.2: version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" + integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== crypto-browserify@^3.0.0: version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz" integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" @@ -2544,98 +2235,105 @@ crypto-browserify@^3.0.0: cyclist@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" - integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= sha512-NJGVKPS81XejHcLhaLJS7plab0fK3slPh11mESeeDq2W4ZI5kUKK/LRRdVDvjJseojbPB7ZwjnyOybg3Igea/A== dash-ast@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + resolved "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz" integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== dateformat@^4.5.1: version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== -debug@4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^2.2.0, debug@^2.6.9: +debug@^2.2.0: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" debug@^4.1.0, debug@^4.1.1: version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" debug@^4.3.2: version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" +debug@4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== deep-eql@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== dependencies: type-detect "^4.0.0" deep-is@^0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= sha512-GtxAN4HvBachZzm4OnWqc45ESpUCMwkYcsjnsPs23FwJbsO+k4t0k9bQCgOmzIlpHO28+WPK/KRbRk0DDHuuDw== default-require-extensions@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz#e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96" + resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz" integrity sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg== dependencies: strip-bom "^4.0.0" define-properties@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" defined@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== deps-sort@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.1.tgz#9dfdc876d2bcec3386b6829ac52162cda9fa208d" + resolved "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz" integrity sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw== dependencies: JSONStream "^1.0.3" @@ -2645,7 +2343,7 @@ deps-sort@^2.0.1: des.js@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz" integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" @@ -2653,21 +2351,21 @@ des.js@^1.0.0: detective@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" + resolved "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz" integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== dependencies: acorn-node "^1.6.1" defined "^1.0.0" minimist "^1.1.1" -diff@5.0.0, diff@^5.0.0: +diff@^5.0.0, diff@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== diffie-hellman@^5.0.0: version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" @@ -2676,40 +2374,40 @@ diffie-hellman@^5.0.0: dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" domain-browser@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= + resolved "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz" + integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA== dependencies: readable-stream "^2.0.2" duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" @@ -2717,24 +2415,14 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -electron-to-chromium@^1.3.723: - version "1.3.740" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.740.tgz#e38b7d2b848f632191b643e6dabca51be2162922" - integrity sha512-Mi2m55JrX2BFbNZGKYR+2ItcGnR4O5HhrvgoRRyZQlaMGQULqDhoGkLWHzJoshSzi7k1PUofxcDbNhlFrDZNhg== - electron-to-chromium@^1.4.164: version "1.4.166" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.166.tgz#83cd596e59c1a192425b99e6ecc64d9ffff50aff" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.166.tgz" integrity sha512-ZPLdq3kcATkD6dwne5M4SgJBHw21t90BqTGzf3AceJwj3cE/ICv6jyDwHYyJoF4JNuXM3pzRxlaRmpO7pdwmcg== -electron-to-chromium@^1.4.202: - version "1.4.212" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.212.tgz#20cd48e88288fd2428138c108804edb1961bf559" - integrity sha512-LjQUg1SpLj2GfyaPDVBUHdhmlDU1vDB4f0mJWSGkISoXQrn5/lH3ECPCuo2Bkvf6Y30wO+b69te+rZK/llZmjg== - elliptic@^6.5.3: version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: bn.js "^4.11.9" @@ -2747,24 +2435,24 @@ elliptic@^6.5.3: emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enhanced-resolve@^5.10.0: version "5.10.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz" integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== dependencies: graceful-fs "^4.2.4" @@ -2772,44 +2460,24 @@ enhanced-resolve@^5.10.0: entities@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + resolved "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz" integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== envinfo@^7.7.3: version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== errno@~0.1.7: version "0.1.8" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.0-next.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" - integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.1" - is-regex "^1.1.1" - object-inspect "^1.9.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.3" - string.prototype.trimstart "^1.0.3" - -es-abstract@^1.19.0, es-abstract@^1.19.1: +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.19.0, es-abstract@^1.19.1: version "1.19.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz" integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== dependencies: call-bind "^1.0.2" @@ -2835,12 +2503,12 @@ es-abstract@^1.19.0, es-abstract@^1.19.1: es-module-lexer@^0.9.0: version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -2849,42 +2517,47 @@ es-to-primitive@^1.2.1: es6-error@^4.0.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + eslint-config-google@^0.14.0: version "0.14.0" - resolved "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz#4f5f8759ba6e11b424294a219dbfa18c508bcc1a" + resolved "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz" integrity sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw== eslint-import-resolver-node@^0.3.6: version "0.3.6" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz" integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== dependencies: debug "^3.2.7" @@ -2892,7 +2565,7 @@ eslint-import-resolver-node@^0.3.6: eslint-module-utils@^2.7.3: version "2.7.3" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz" integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== dependencies: debug "^3.2.7" @@ -2900,7 +2573,7 @@ eslint-module-utils@^2.7.3: eslint-plugin-import@^2.26.0: version "2.26.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz#f812dc47be4f2b72b478a021605a59fc6fe8b88b" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz" integrity sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA== dependencies: array-includes "^3.1.4" @@ -2917,9 +2590,17 @@ eslint-plugin-import@^2.26.0: resolve "^1.22.0" tsconfig-paths "^3.14.1" +eslint-scope@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + eslint-scope@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz" integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== dependencies: esrecurse "^4.1.0" @@ -2927,45 +2608,37 @@ eslint-scope@5.0.0: eslint-scope@5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" - integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - eslint-utils@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== dependencies: eslint-visitor-keys "^2.0.0" eslint-visitor-keys@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== eslint-visitor-keys@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint-webpack-plugin@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c" + resolved "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz" integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w== dependencies: "@types/eslint" "^7.29.0 || ^8.4.1" @@ -2974,9 +2647,9 @@ eslint-webpack-plugin@^3.2.0: normalize-path "^3.0.0" schema-utils "^4.0.0" -eslint@^8.21.0: +"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^7.0.0 || ^8.0.0", eslint@^8.21.0, "eslint@>= 6.0.0", eslint@>=5, eslint@>=5.16.0: version "8.21.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.21.0.tgz#1940a68d7e0573cef6f50037addee295ff9be9ef" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz" integrity sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA== dependencies: "@eslint/eslintrc" "^1.3.0" @@ -3019,18 +2692,9 @@ eslint@^8.21.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596" - integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA== - dependencies: - acorn "^8.7.1" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -espree@^9.3.3: +espree@^9.3.2, espree@^9.3.3: version "9.3.3" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.3.tgz#2dd37c4162bb05f433ad3c1a52ddf8a49dc08e9d" + resolved "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz" integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng== dependencies: acorn "^8.8.0" @@ -3039,51 +2703,51 @@ espree@^9.3.3: esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: estraverse "^5.1.0" esrecurse@^4.1.0, esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -events@^3.0.0: +events@^3.0.0, events@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + resolved "https://registry.npmjs.org/events/-/events-3.2.0.tgz" integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== -events@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" @@ -3091,12 +2755,12 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.9: version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz" integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -3107,35 +2771,35 @@ fast-glob@^3.2.9: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-safe-stringify@^2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz" integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== fastest-levenshtein@^1.0.12: version "1.0.12" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" + resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz" integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== fastq@^1.6.0: version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== dependencies: reusify "^1.0.4" fetch-pretender@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/fetch-pretender/-/fetch-pretender-1.5.0.tgz#b709183a62f7858cdb773771d939178a20904194" - integrity sha1-twkYOmL3hYzbdzdx2TkXiiCQQZQ= + resolved "https://registry.npmjs.org/fetch-pretender/-/fetch-pretender-1.5.0.tgz" + integrity sha1-twkYOmL3hYzbdzdx2TkXiiCQQZQ= sha512-sJtox46kqCh7DKUyethZBLqR8vt8EywnLOlWiYwbh9cGB57bmMUACh6/pauEFxYlgip2jMVlHRROJzA9i87/dQ== dependencies: fetchme "^2.0.0" route-recognizer "^0.1.9" @@ -3143,31 +2807,31 @@ fetch-pretender@^1.5.0: fetchme@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fetchme/-/fetchme-2.1.0.tgz#c3b66322572e20544f6c2c475991551faa85ae5f" - integrity sha1-w7ZjIlcuIFRPbCxHWZFVH6qFrl8= + resolved "https://registry.npmjs.org/fetchme/-/fetchme-2.1.0.tgz" + integrity sha1-w7ZjIlcuIFRPbCxHWZFVH6qFrl8= sha512-kwWWHC1yMXCE7Hm5Vkd2gZNYkogJcjALhLhC69E5akm4azr4ZBUzOcSzZZhFd3Z+j6kWeaQMGA5qaGtfWpRtHw== figgy-pudding@^3.5.1: version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" @@ -3176,7 +2840,7 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: find-cache-dir@^3.2.0: version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz" integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== dependencies: commondir "^1.0.1" @@ -3185,46 +2849,46 @@ find-cache-dir@^3.2.0: find-cache-dir@^3.3.1: version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@5.0.0, find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== dependencies: locate-path "^2.0.0" find-up@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0, find-up@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + flat-cache@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: flatted "^3.1.0" @@ -3232,17 +2896,17 @@ flat-cache@^3.0.4: flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz" integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== flush-write-stream@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" @@ -3250,12 +2914,12 @@ flush-write-stream@^1.0.0: foreach@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= + resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" + integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= sha512-ZBbtRiapkZYLsqoPyZOR+uPfto0GRMNQN1GwzZtZt7iZvPPbDDQV0JF5Hx4o/QFQ5c0vyuoZ98T8RSBbopzWtA== foreground-child@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz" integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== dependencies: cross-spawn "^7.0.0" @@ -3263,20 +2927,20 @@ foreground-child@^2.0.0: from2@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g== dependencies: inherits "^2.0.1" readable-stream "^2.0.0" fromentries@^1.2.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" + resolved "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz" integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== fs-extra@^10.0.0: version "10.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz" integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== dependencies: graceful-fs "^4.2.0" @@ -3285,13 +2949,13 @@ fs-extra@^10.0.0: fs-readdir-recursive@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" + resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== fs-write-stream-atomic@^1.0.8: version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -3300,52 +2964,52 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.1, fsevents@~2.3.2: +fsevents@~2.3.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== fsu@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/fsu/-/fsu-1.1.1.tgz#bd36d3579907c59d85b257a75b836aa9e0c31834" + resolved "https://registry.npmjs.org/fsu/-/fsu-1.1.1.tgz" integrity sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== functional-red-black-tree@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== -gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: +gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-assigned-identifiers@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + resolved "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz" integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== dependencies: function-bind "^1.1.1" @@ -3354,63 +3018,39 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: get-package-type@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" get-intrinsic "^1.1.1" -glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.1: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob-to-regexp@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.2.0: +glob@^7.1.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -3420,21 +3060,33 @@ glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" +glob@7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + globals@^11.1.0: version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.15.0: version "13.15.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac" + resolved "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz" integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog== dependencies: type-fest "^0.20.2" globby@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -3444,68 +3096,53 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -graceful-fs@^4.1.15, graceful-fs@^4.1.6: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -graceful-fs@^4.1.2, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -graceful-fs@^4.1.9: +graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.10" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== grapheme-splitter@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== has-bigints@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-symbols@^1.0.2: +has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has@^1.0.0, has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz" integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" @@ -3514,7 +3151,7 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" @@ -3522,7 +3159,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: hasha@^5.0.0: version "5.2.2" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + resolved "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz" integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== dependencies: is-stream "^2.0.0" @@ -3530,13 +3167,13 @@ hasha@^5.0.0: he@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" @@ -3544,44 +3181,44 @@ hmac-drbg@^1.0.1: homedir-polyfill@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz" integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" html-escaper@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== htmlescape@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" - integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= + resolved "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz" + integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg== https-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== ieee754@^1.1.4: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== ignore@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -3589,7 +3226,7 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: import-local@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== dependencies: pkg-dir "^4.2.0" @@ -3597,54 +3234,54 @@ import-local@^3.0.2: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== infer-owner@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4, inherits@2: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== inline-source-map@~0.6.0: version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= + resolved "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz" + integrity sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU= sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA== dependencies: source-map "~0.5.3" insert-module-globals@^7.2.1: version "7.2.1" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.2.1.tgz#d5e33185181a4e1f33b15f7bf100ee91890d5cb3" + resolved "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz" integrity sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg== dependencies: - JSONStream "^1.0.3" acorn-node "^1.5.2" combine-source-map "^0.8.0" concat-stream "^1.6.1" is-buffer "^1.1.0" + JSONStream "^1.0.3" path-is-absolute "^1.0.1" process "~0.11.0" through2 "^2.0.0" @@ -3653,7 +3290,7 @@ insert-module-globals@^7.2.1: internal-slot@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: get-intrinsic "^1.1.0" @@ -3662,136 +3299,109 @@ internal-slot@^1.0.3: interpret@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== is-arguments@^1.0.4: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz" integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== dependencies: call-bind "^1.0.0" is-bigint@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz" integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz" integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== dependencies: call-bind "^1.0.2" is-buffer@^1.1.0, is-buffer@~1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== - -is-callable@^1.2.4: +is-callable@^1.1.4, is-callable@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - is-core-module@^2.8.1: version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== dependencies: has "^1.0.3" is-date-object@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-function@^1.0.7: version "1.0.8" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz" integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.3: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-negative-zero@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz" integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-number-object@^1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz" integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" -is-regex@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.1" - is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -3799,43 +3409,31 @@ is-regex@^1.1.4: is-shared-array-buffer@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz" integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== is-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== - -is-string@^1.0.7: +is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" -is-symbol@^1.0.2: +is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz" integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== dependencies: has-symbols "^1.0.1" -is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - is-typed-array@^1.1.3: version "1.1.5" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz" integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== dependencies: available-typed-arrays "^1.0.2" @@ -3846,66 +3444,66 @@ is-typed-array@^1.1.3: is-typedarray@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-weakref@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz" integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== dependencies: call-bind "^1.0.0" is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.0-alpha.1: version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz" integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== istanbul-lib-hook@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" + resolved "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz" integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== dependencies: append-transform "^2.0.0" istanbul-lib-instrument@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz" integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== dependencies: "@babel/core" "^7.7.5" @@ -3915,7 +3513,7 @@ istanbul-lib-instrument@^4.0.0: istanbul-lib-processinfo@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz#e1426514662244b2f25df728e8fd1ba35fe53b9c" + resolved "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz" integrity sha512-kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw== dependencies: archy "^1.0.0" @@ -3928,7 +3526,7 @@ istanbul-lib-processinfo@^2.0.2: istanbul-lib-report@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== dependencies: istanbul-lib-coverage "^3.0.0" @@ -3937,7 +3535,7 @@ istanbul-lib-report@^3.0.0: istanbul-lib-source-maps@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz" integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== dependencies: debug "^4.1.1" @@ -3946,7 +3544,7 @@ istanbul-lib-source-maps@^4.0.0: istanbul-reports@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz" integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== dependencies: html-escaper "^2.0.0" @@ -3954,7 +3552,7 @@ istanbul-reports@^3.0.2: jest-worker@^27.4.5: version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" @@ -3963,7 +3561,7 @@ jest-worker@^27.4.5: jest-worker@^28.0.2: version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz" integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== dependencies: "@types/node" "*" @@ -3972,34 +3570,34 @@ jest-worker@^28.0.2: "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0, js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - js-yaml@^3.13.1: version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0, js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + js2xmlparser@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.2.tgz#2a1fdf01e90585ef2ae872a01bc169c6a8d5e60a" + resolved "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz" integrity sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA== dependencies: xmlcreate "^2.0.4" jsdoc-babel@^0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/jsdoc-babel/-/jsdoc-babel-0.5.0.tgz#7217b8820469fe600dccfdee895648c6a0dd4a2e" + resolved "https://registry.npmjs.org/jsdoc-babel/-/jsdoc-babel-0.5.0.tgz" integrity sha512-PYfTbc3LNTeR8TpZs2M94NLDWqARq0r9gx3SvuziJfmJS7/AeMKvtj0xjzOX0R/4MOVA7/FqQQK7d6U0iEoztQ== dependencies: jsdoc-regex "^1.0.1" @@ -4007,12 +3605,12 @@ jsdoc-babel@^0.5.0: jsdoc-regex@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/jsdoc-regex/-/jsdoc-regex-1.0.1.tgz#8424428d5b563ad8c5c7fbec079b9a8b09c8dcfa" - integrity sha1-hCRCjVtWOtjFx/vsB5uaiwnI3Po= + resolved "https://registry.npmjs.org/jsdoc-regex/-/jsdoc-regex-1.0.1.tgz" + integrity sha1-hCRCjVtWOtjFx/vsB5uaiwnI3Po= sha512-CMFgT3K8GbmChWEfLWe6jlv9x33E8wLPzBjxIlh/eHLMcnDF+TF3CL265ZGBe029o1QdFepwVrQu0WuqqNPncg== jsdoc@^3.6.11: version "3.6.11" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.11.tgz#8bbb5747e6f579f141a5238cbad4e95e004458ce" + resolved "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.11.tgz" integrity sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg== dependencies: "@babel/parser" "^7.9.4" @@ -4033,61 +3631,54 @@ jsdoc@^3.6.11: jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-parse-even-better-errors@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json5@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -json5@^2.2.1: +json5@^2.1.2, json5@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -4096,29 +3687,37 @@ jsonfile@^6.0.1: jsonparse@^1.2.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +JSONStream@^1.0.3: + version "1.3.5" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" just-extend@^4.0.2: version "4.1.1" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.1.1.tgz#158f1fdb01f128c411dc8b286a7b4837b3545282" + resolved "https://registry.npmjs.org/just-extend/-/just-extend-4.1.1.tgz" integrity sha512-aWgeGFW67BP3e5181Ep1Fv2v8z//iBJfrvyTnq8wG86vEESwmonn1zPBJ0VfmT9CJq2FIT0VsETtrNFm2a+SHA== kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== klaw@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" + resolved "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz" integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== dependencies: graceful-fs "^4.1.9" labeled-stream-splicer@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz#42a41a16abcd46fd046306cf4f2c3576fffb1c21" + resolved "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz" integrity sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw== dependencies: inherits "^2.0.1" @@ -4126,7 +3725,7 @@ labeled-stream-splicer@^2.0.0: levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -4134,19 +3733,19 @@ levn@^0.4.1: linkify-it@^3.0.1: version "3.0.3" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz" integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== dependencies: uc.micro "^1.0.1" loader-runner@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== loader-utils@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz" integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== dependencies: big.js "^5.2.2" @@ -4155,15 +3754,15 @@ loader-utils@^2.0.0: locate-path@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== dependencies: p-locate "^2.0.0" path-exists "^3.0.0" locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -4171,71 +3770,71 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.flattendeep@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= + resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== lodash.get@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.isempty@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" - integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= + resolved "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz" + integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg== lodash.isfunction@^3.0.9: version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + resolved "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz" integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== lodash.isobject@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" - integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0= + resolved "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz" + integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0= sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA== lodash.isstring@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" - integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== lodash.memoize@~3.0.3: version "3.0.4" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" - integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz" + integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8= sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: +lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -4243,48 +3842,55 @@ log-symbols@4.1.0: loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" loupe@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.1.tgz#a2e1192c9f452e4e85089766da10ac8288383947" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.1.tgz" integrity sha512-EN1D3jyVmaX4tnajVlfbREU4axL647hLec1h/PXAb8CPDMJiYitcWF2UeLVNttRqaIqQs4x+mRvXf+d+TlDrCA== dependencies: get-func-name "^2.0.0" lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz" integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" markdown-it-anchor@^8.4.1: version "8.4.1" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz#29e560593f5edb80b25fdab8b23f93ef8a91b31e" + resolved "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.4.1.tgz" integrity sha512-sLODeRetZ/61KkKLJElaU3NuU2z7MhXf12Ml1WJMSdwpngeofneCRF+JBbat8HiSqhniOMuTemXMrsI7hA6XyA== -markdown-it@^12.3.2: +markdown-it@*, markdown-it@^12.3.2: version "12.3.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz" integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== dependencies: argparse "^2.0.1" @@ -4295,12 +3901,12 @@ markdown-it@^12.3.2: marked@^4.0.10: version "4.0.12" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d" + resolved "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz" integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ== md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" @@ -4309,7 +3915,7 @@ md5.js@^1.3.4: md5@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== dependencies: charenc "0.0.2" @@ -4318,30 +3924,22 @@ md5@^2.1.0: mdurl@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -micromatch@^4.0.5: +micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -4349,7 +3947,7 @@ micromatch@^4.0.5: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" @@ -4357,55 +3955,48 @@ miller-rabin@^4.0.0: mime-db@1.51.0: version "1.51.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz" integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== mime-types@^2.1.27: version "2.1.34" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz" integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== dependencies: mime-db "1.51.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.1.0, minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== mississippi@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz" integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== dependencies: concat-stream "^1.5.0" @@ -4421,24 +4012,31 @@ mississippi@^3.0.0: mkdirp-classic@^0.5.2: version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.1, mkdirp@~0.5.1: +mkdirp@^0.5.1: version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + mocha-junit-reporter@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-2.0.2.tgz#d521689b651dc52f52044739f8ffb368be415731" + resolved "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-2.0.2.tgz" integrity sha512-vYwWq5hh3v1lG0gdQCBxwNipBfvDiAM1PHroQRNp96+2l72e9wEUTw+mzoK+O0SudgfQ7WvTQZ9Nh3qkAYAjfg== dependencies: debug "^2.2.0" @@ -4447,9 +4045,9 @@ mocha-junit-reporter@^2.0.2: strip-ansi "^6.0.1" xml "^1.0.0" -mocha@^10.0.0: +mocha@^10.0.0, mocha@>=2.2.5, mocha@>=7: version "10.0.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.0.0.tgz#205447d8993ec755335c4b13deba3d3a13c4def9" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.0.0.tgz" integrity sha512-0Wl+elVUD43Y0BqPZBzZt8Tnkw9CMUdNYnUsTfOM1vuhJVZL+kiesFYsqwBkEEuEixaiPe5ZQdqDgX2jddhmoA== dependencies: "@ungap/promise-all-settled" "1.1.2" @@ -4477,7 +4075,7 @@ mocha@^10.0.0: mochawesome-report-generator@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/mochawesome-report-generator/-/mochawesome-report-generator-6.2.0.tgz#65a30a11235ba7a68e1cf0ca1df80d764b93ae78" + resolved "https://registry.npmjs.org/mochawesome-report-generator/-/mochawesome-report-generator-6.2.0.tgz" integrity sha512-Ghw8JhQFizF0Vjbtp9B0i//+BOkV5OWcQCPpbO0NGOoxV33o+gKDYU0Pr2pGxkIHnqZ+g5mYiXF7GMNgAcDpSg== dependencies: chalk "^4.1.2" @@ -4495,7 +4093,7 @@ mochawesome-report-generator@^6.2.0: mochawesome@^7.1.3: version "7.1.3" - resolved "https://registry.yarnpkg.com/mochawesome/-/mochawesome-7.1.3.tgz#07b358138f37f5b07b51a1b255d84babfa36fa83" + resolved "https://registry.npmjs.org/mochawesome/-/mochawesome-7.1.3.tgz" integrity sha512-Vkb3jR5GZ1cXohMQQ73H3cZz7RoxGjjUo0G5hu0jLaW+0FdUxUwg3Cj29bqQdh0rFcnyV06pWmqmi5eBPnEuNQ== dependencies: chalk "^4.1.2" @@ -4511,10 +4109,9 @@ mochawesome@^7.1.3: module-deps@^6.2.3: version "6.2.3" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-6.2.3.tgz#15490bc02af4b56cf62299c7c17cba32d71a96ee" + resolved "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz" integrity sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA== dependencies: - JSONStream "^1.0.3" browser-resolve "^2.0.0" cached-path-relative "^1.0.2" concat-stream "~1.6.0" @@ -4522,6 +4119,7 @@ module-deps@^6.2.3: detective "^5.2.0" duplexer2 "^0.1.2" inherits "^2.0.1" + JSONStream "^1.0.3" parents "^1.0.0" readable-stream "^2.0.2" resolve "^1.4.0" @@ -4532,8 +4130,8 @@ module-deps@^6.2.3: move-concurrently@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -4542,39 +4140,39 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.2: +ms@^2.1.1, ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.1.1: +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nanoid@3.3.3: version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nise@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.1.tgz#ac4237e0d785ecfcb83e20f389185975da5c31f3" + resolved "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz" integrity sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A== dependencies: "@sinonjs/commons" "^1.8.3" @@ -4585,7 +4183,7 @@ nise@^5.1.1: node-environment-flags@^1.0.5: version "1.0.6" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" + resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz" integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== dependencies: object.getownpropertydescriptors "^2.0.3" @@ -4593,34 +4191,24 @@ node-environment-flags@^1.0.5: node-preload@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" + resolved "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz" integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== dependencies: process-on-spawn "^1.0.0" -node-releases@^1.1.71: - version "1.1.72" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" - integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== - node-releases@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz" integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== nyc@^15.1.0: version "15.1.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" + resolved "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz" integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== dependencies: "@istanbuljs/load-nyc-config" "^1.0.0" @@ -4653,27 +4241,22 @@ nyc@^15.1.0: object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.11.0: +object-inspect@^1.11.0, object-inspect@^1.9.0: version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz" integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== -object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== - object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.0, object.assign@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: call-bind "^1.0.0" @@ -4683,7 +4266,7 @@ object.assign@^4.1.0, object.assign@^4.1.2: object.getownpropertydescriptors@^2.0.3: version "2.1.1" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz#0dfda8d108074d9c563e80490c883b6661091544" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz" integrity sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng== dependencies: call-bind "^1.0.0" @@ -4692,7 +4275,7 @@ object.getownpropertydescriptors@^2.0.3: object.values@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz" integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== dependencies: call-bind "^1.0.2" @@ -4701,19 +4284,19 @@ object.values@^1.1.5: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" opener@^1.5.2: version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== optionator@^0.9.1: version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: deep-is "^0.1.3" @@ -4725,78 +4308,85 @@ optionator@^0.9.1: os-browserify@~0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== p-limit@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== dependencies: p-limit "^1.1.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-map@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz" integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== dependencies: aggregate-error "^3.0.0" p-try@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== package-hash@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" + resolved "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz" integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== dependencies: graceful-fs "^4.1.15" @@ -4806,12 +4396,12 @@ package-hash@^4.0.0: pako@~1.0.5: version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parallel-transform@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz" integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== dependencies: cyclist "^1.0.1" @@ -4820,21 +4410,21 @@ parallel-transform@^1.1.0: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parents@^1.0.0, parents@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= + resolved "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz" + integrity sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E= sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg== dependencies: path-platform "~0.11.15" parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz" integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: asn1.js "^5.2.0" @@ -4845,64 +4435,64 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== path-browserify@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6, path-parse@^1.0.7: +path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-platform@~0.11.15: version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" - integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= + resolved "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz" + integrity sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I= sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== path-to-regexp@^1.7.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== dependencies: isarray "0.0.1" path-type@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pathval@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== pbkdf2@^3.0.3: version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz" integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== dependencies: create-hash "^1.1.2" @@ -4913,78 +4503,75 @@ pbkdf2@^3.0.3: picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -picomatch@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== - -picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pirates@^4.0.5: version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== pkg-dir@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz" integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.1.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process-on-spawn@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" + resolved "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz" integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== dependencies: fromentries "^1.2.0" process@~0.11.0: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== prop-types@^15.7.2: version "15.7.2" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== dependencies: loose-envify "^1.4.0" @@ -4993,12 +4580,12 @@ prop-types@^15.7.2: prr@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== public-encrypt@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" @@ -5010,7 +4597,7 @@ public-encrypt@^4.0.0: pump@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" @@ -5018,7 +4605,7 @@ pump@^2.0.0: pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -5026,53 +4613,53 @@ pump@^3.0.0: pumpify@^1.3.3: version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - punycode@^1.3.2: version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== punycode@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== + querystring-es3@~0.2.0: version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== querystring@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" @@ -5080,19 +4667,19 @@ randomfill@^1.0.3: react-is@^16.8.1: version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== read-only-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= + resolved "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz" + integrity sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A= sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w== dependencies: readable-stream "^2.0.2" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.6, readable-stream@~2.3.6, "readable-stream@1 || 2": version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" @@ -5103,87 +4690,70 @@ read-only-stream@^2.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.5.0, readable-stream@^3.6.0: +readable-stream@^3.5.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: - picomatch "^2.2.1" + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" rechoir@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz" integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== dependencies: resolve "^1.9.0" regenerate-unicode-properties@^10.0.1: version "10.0.1" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== dependencies: regenerate "^1.4.2" -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0, regenerate@^1.4.2: +regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.13.4: version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz" integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regenerator-transform@^0.15.0: version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== dependencies: "@babel/runtime" "^7.8.4" regexpp@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - regexpu-core@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz" integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== dependencies: regenerate "^1.4.2" @@ -5193,87 +4763,67 @@ regexpu-core@^5.1.0: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - regjsgen@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== -regjsparser@^0.6.4: - version "0.6.7" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" - integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== - dependencies: - jsesc "~0.5.0" - regjsparser@^0.8.2: version "0.8.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== dependencies: jsesc "~0.5.0" release-zalgo@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" - integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= + resolved "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz" + integrity sha1-CXALflB0Mpc5Mw5TXFqQ+2eFFzA= sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA== dependencies: es6-error "^4.0.1" require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== requizzle@^0.2.3: version "0.2.3" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.3.tgz#4675c90aacafb2c036bd39ba2daa4a1cb777fded" + resolved "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz" integrity sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ== dependencies: lodash "^4.17.14" resolve-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: resolve-from "^5.0.0" resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.1.4, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.4.0, resolve@^1.9.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -resolve@^1.22.0: +resolve@^1.1.4, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.4.0, resolve@^1.9.0: version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== dependencies: is-core-module "^2.8.1" @@ -5282,26 +4832,33 @@ resolve@^1.22.0: reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@^2.5.4, rimraf@^2.6.3: +rimraf@^2.5.4: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" @@ -5309,41 +4866,41 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: route-recognizer@^0.1.9: version "0.1.11" - resolved "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.1.11.tgz#810d8e5702abb4056d6dcb8e865c5685e7c14eb7" - integrity sha1-gQ2OVwKrtAVtbcuOhlxWhefBTrc= + resolved "https://registry.npmjs.org/route-recognizer/-/route-recognizer-0.1.11.tgz" + integrity sha1-gQ2OVwKrtAVtbcuOhlxWhefBTrc= sha512-7JNu5mXQVa39zxmUKyk/bfpeF2WyEC5JKVTJO5HATcoUQpcQsI3eLzhwGU69xeOagQxfOQ+yr2sSv0G8xy+vQA== run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== dependencies: aproba "^1.1.1" safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safer-buffer@^2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz" integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== dependencies: ajv "^6.1.0" @@ -5352,16 +4909,25 @@ schema-utils@^1.0.0: schema-utils@^2.6.5: version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: "@types/json-schema" "^7.0.5" ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.1.0, schema-utils@^3.1.1: +schema-utils@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz" integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== dependencies: "@types/json-schema" "^7.0.8" @@ -5370,7 +4936,7 @@ schema-utils@^3.1.0, schema-utils@^3.1.1: schema-utils@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz" integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== dependencies: "@types/json-schema" "^7.0.9" @@ -5378,41 +4944,46 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.0.0" -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^5.4.1, semver@^5.6.0, semver@^5.7.0: +semver@^5.6.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^5.7.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -serialize-javascript@6.0.0, serialize-javascript@^6.0.0: +semver@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +serialize-javascript@^1.7.0: + version "1.9.1" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz" + integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== + +serialize-javascript@^6.0.0, serialize-javascript@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" -serialize-javascript@^1.7.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" - integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== - set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" @@ -5420,38 +4991,38 @@ sha.js@^2.4.0, sha.js@^2.4.8: shallow-clone@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: kind-of "^6.0.2" shasum-object@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/shasum-object/-/shasum-object-1.0.0.tgz#0b7b74ff5b66ecf9035475522fa05090ac47e29e" + resolved "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz" integrity sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg== dependencies: fast-safe-stringify "^2.0.7" shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.6.1: version "1.7.3" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz" integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -5460,17 +5031,17 @@ side-channel@^1.0.4: signal-exit@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== simple-concat@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== sinon@^14.0.0: version "14.0.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-14.0.0.tgz#203731c116d3a2d58dc4e3cbe1f443ba9382a031" + resolved "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz" integrity sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw== dependencies: "@sinonjs/commons" "^1.8.3" @@ -5482,48 +5053,50 @@ sinon@^14.0.0: slash@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== slash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== source-list-map@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== -source-map-support@^0.5.16: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@~0.5.20: +source-map-support@^0.5.16, source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.5.0, source-map@~0.5.3: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== spawn-wrap@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" + resolved "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz" integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== dependencies: foreground-child "^2.0.0" @@ -5535,19 +5108,19 @@ spawn-wrap@^2.0.0: sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== ssri@^6.0.1: version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz" integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== dependencies: figgy-pudding "^3.5.1" stream-browserify@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz" integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== dependencies: inherits "~2.0.4" @@ -5555,15 +5128,15 @@ stream-browserify@^3.0.0: stream-combiner2@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= + resolved "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz" + integrity sha1-+02KFCDqNidk4hrUeAOXvry0HL4= sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw== dependencies: duplexer2 "~0.1.0" readable-stream "^2.0.2" stream-each@^1.1.0: version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz" integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" @@ -5571,7 +5144,7 @@ stream-each@^1.1.0: stream-http@^3.0.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.1.1.tgz#0370a8017cf8d050b9a8554afe608f043eaff564" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz" integrity sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg== dependencies: builtin-status-codes "^3.0.0" @@ -5581,175 +5154,157 @@ stream-http@^3.0.0: stream-shift@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== stream-splicer@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.1.tgz#0b13b7ee2b5ac7e0609a7463d83899589a363fcd" + resolved "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz" integrity sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg== dependencies: inherits "^2.0.1" readable-stream "^2.0.2" -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.trimend@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" - integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" - integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: - ansi-regex "^5.0.0" + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" -strip-ansi@^6.0.1: +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-bom@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== subarg@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" - integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= + resolved "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz" + integrity sha1-9izxdYHplrSPyWVpn1TAauJouNI= sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg== dependencies: minimist "^1.1.0" -supports-color@8.1.1, supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" -supports-color@^7.1.0, supports-color@^7.2.0: +supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" +supports-color@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== syntax-error@^1.1.1: version "1.4.0" - resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.4.0.tgz#2d9d4ff5c064acb711594a3e3b95054ad51d907c" + resolved "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz" integrity sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w== dependencies: acorn-node "^1.2.0" taffydb@2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" - integrity sha1-fLy2S1oUG2ou/CxdLGe04VCyomg= + resolved "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz" + integrity sha1-fLy2S1oUG2ou/CxdLGe04VCyomg= sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== tcomb-validation@^3.3.0: version "3.4.1" - resolved "https://registry.yarnpkg.com/tcomb-validation/-/tcomb-validation-3.4.1.tgz#a7696ec176ce56a081d9e019f8b732a5a8894b65" + resolved "https://registry.npmjs.org/tcomb-validation/-/tcomb-validation-3.4.1.tgz" integrity sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA== dependencies: tcomb "^3.0.0" tcomb@^3.0.0, tcomb@^3.2.17: version "3.2.29" - resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-3.2.29.tgz#32404fe9456d90c2cf4798682d37439f1ccc386c" + resolved "https://registry.npmjs.org/tcomb/-/tcomb-3.2.29.tgz" integrity sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ== terser-webpack-plugin@^5.1.3: version "5.3.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz" integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== dependencies: jest-worker "^27.4.5" @@ -5760,7 +5315,7 @@ terser-webpack-plugin@^5.1.3: terser@^5.7.2: version "5.14.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" + resolved "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz" integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== dependencies: "@jridgewell/source-map" "^0.3.2" @@ -5770,7 +5325,7 @@ terser@^5.7.2: test-exclude@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: "@istanbuljs/schema" "^0.1.2" @@ -5779,44 +5334,44 @@ test-exclude@^6.0.0: text-table@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== through2@^2.0.0: version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" xtend "~4.0.1" -"through@>=2.2.7 <3": - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - timers-browserify@^1.0.1: version "1.4.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" - integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz" + integrity sha1-ycWLV1voQHN1y14kYtrO50NZ9B0= sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q== dependencies: process "~0.11.0" to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" tsconfig-paths@^3.14.1: version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz" integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== dependencies: "@types/json5" "^0.0.29" @@ -5826,56 +5381,56 @@ tsconfig-paths@^3.14.1: tty-browserify@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz" integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: +type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8, type-detect@4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.8.0: version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== uglify-js@^3.6.0: version "3.15.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.1.tgz#9403dc6fa5695a6172a91bc983ea39f0f7c9086d" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.1.tgz" integrity sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ== uglifyjs-webpack-plugin@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.2.0.tgz#e75bc80e7f1937f725954c9b4c5a1e967ea9d0d7" + resolved "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.2.0.tgz" integrity sha512-mHSkufBmBuJ+KHQhv5H0MXijtsoA1lynJt1lXOaotja8/I0pR4L9oGaPIZw+bQBOFittXZg9OC1sXSGO9D9ZYg== dependencies: cacache "^12.0.2" @@ -5890,12 +5445,12 @@ uglifyjs-webpack-plugin@^2.2.0: umd@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.3.tgz#aa9fe653c42b9097678489c01000acb69f0b26cf" + resolved "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz" integrity sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow== unbox-primitive@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== dependencies: function-bind "^1.1.1" @@ -5905,7 +5460,7 @@ unbox-primitive@^1.0.1: undeclared-identifiers@^1.1.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz#9254c1d37bdac0ac2b52de4b6722792d2a91e30f" + resolved "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz" integrity sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw== dependencies: acorn-node "^1.3.0" @@ -5916,120 +5471,82 @@ undeclared-identifiers@^1.1.2: underscore@~1.13.2: version "1.13.2" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.2.tgz#276cea1e8b9722a8dbed0100a407dda572125881" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz" integrity sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g== -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - unicode-match-property-value-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - unicode-property-aliases-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" universalify@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== update-browserslist-db@^1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz#6c47cb996f34afb363e924748e2f6e4d983c6fc1" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.3.tgz" integrity sha512-ufSazemeh9Gty0qiWtoRpJ9F5Q5W3xdIPm1UZQqYQv/q0Nyb9EMHUB2lu+O9x1re9WsorpMAUu4Y6Lxcs5n+XQ== dependencies: escalade "^3.1.1" picocolors "^1.0.0" -update-browserslist-db@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38" - integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" url@~0.11.0: version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== dependencies: punycode "1.3.2" querystring "0.2.0" util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== util@~0.12.0: version "0.12.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" + resolved "https://registry.npmjs.org/util/-/util-0.12.3.tgz" integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== dependencies: inherits "^2.0.3" @@ -6039,49 +5556,56 @@ util@~0.12.0: safe-buffer "^5.1.2" which-typed-array "^1.1.2" +util@0.10.3: + version "0.10.3" + resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ== + dependencies: + inherits "2.0.1" + uuid@^3.3.3: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8-compile-cache@^2.0.3: version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz" integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== v8flags@^3.1.1: version "3.2.0" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== dependencies: homedir-polyfill "^1.0.1" validator@^13.6.0: version "13.7.0" - resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" + resolved "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz" integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== vm-browserify@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== watchpack@^2.4.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -webpack-cli@^4.10.0: +webpack-cli@^4.10.0, webpack-cli@4.x.x: version "4.10.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" + resolved "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz" integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== dependencies: "@discoveryjs/json-ext" "^0.5.0" @@ -6099,7 +5623,7 @@ webpack-cli@^4.10.0: webpack-merge@^5.7.3: version "5.8.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz" integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== dependencies: clone-deep "^4.0.1" @@ -6107,7 +5631,7 @@ webpack-merge@^5.7.3: webpack-sources@^1.4.0: version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: source-list-map "^2.0.0" @@ -6115,12 +5639,12 @@ webpack-sources@^1.4.0: webpack-sources@^3.2.3: version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.74.0: +webpack@^4.0.0, webpack@^5.0.0, webpack@^5.1.0, webpack@^5.74.0, webpack@>=2, "webpack@4.x.x || 5.x.x": version "5.74.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz" integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== dependencies: "@types/eslint-scope" "^3.7.3" @@ -6150,7 +5674,7 @@ webpack@^5.74.0: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -6161,12 +5685,12 @@ which-boxed-primitive@^1.0.2: which-module@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== which-typed-array@^1.1.2: version "1.1.4" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz" integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== dependencies: available-typed-arrays "^1.0.2" @@ -6179,36 +5703,36 @@ which-typed-array@^1.1.2: which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" wildcard@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== word-wrap@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== worker-farm@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz" integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" workerpool@6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -6217,7 +5741,7 @@ wrap-ansi@^6.2.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -6226,12 +5750,12 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -6241,65 +5765,60 @@ write-file-atomic@^3.0.0: xhr-pretender@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/xhr-pretender/-/xhr-pretender-1.4.0.tgz#fe988af27cc5a1a88c78a6aaebc3b3330b51a650" - integrity sha1-/piK8nzFoaiMeKaq68OzMwtRplA= + resolved "https://registry.npmjs.org/xhr-pretender/-/xhr-pretender-1.4.0.tgz" + integrity sha1-/piK8nzFoaiMeKaq68OzMwtRplA= sha512-qrvvKWadlbx0uDAp3KXRejb8PQJ9FGBOq0EIeNrg7YWjdg3Nswj2ukhb5JtvHn+aE10q4o6xWYcQUji41m3VPg== xml@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" - integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= + resolved "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz" + integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw== xmlcreate@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" + resolved "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz" integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz" integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== y18n@^5.0.5: version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz" integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - yargs-parser@^18.1.2: version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^20.2.2: - version "20.2.5" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.5.tgz#5d37729146d3f894f39fc94b6796f5b239513186" - integrity sha512-jYRGS3zWy20NtDtK2kBgo/TlAoy5YUuhD9/LZ7z7W4j1Fdw2cqD0xEEclf8fxc8xjD6X5Qr+qQQwCEsP8iRiYg== +yargs-parser@^20.2.2, yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs-parser@^21.0.0: version "21.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.0.tgz#a485d3966be4317426dd56bdb6a30131b281dc55" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz" integrity sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA== yargs-unparser@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -6307,22 +5826,9 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yargs@^15.0.2: version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" @@ -6339,7 +5845,7 @@ yargs@^15.0.2: yargs@^17.2.1: version "17.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.3.1.tgz#da56b28f32e2fd45aefb402ed9c26f42be4c07b9" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz" integrity sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA== dependencies: cliui "^7.0.2" @@ -6350,7 +5856,20 @@ yargs@^17.2.1: y18n "^5.0.5" yargs-parser "^21.0.0" +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==