{"version":3,"file":"static/js/main.4a802aa7.js","mappings":"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","sources":["Blueprint/Components/Loading.jsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","Config/axios.jsx","../node_modules/i18next/dist/esm/i18next.js","../node_modules/i18next-http-backend/esm/utils.js","../node_modules/i18next-http-backend/esm/request.js","../node_modules/i18next-http-backend/esm/index.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","Config/i18n.jsx","Config/variables.jsx","Services/AuthService.jsx","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/object-assign/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/void-elements/index.js","../node_modules/html-parse-stringify/src/parse-tag.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/html-parse-stringify/src/stringify.js","../node_modules/html-parse-stringify/src/index.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/TransWithoutContext.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/Trans.js","../node_modules/react-i18next/dist/es/useTranslation.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","Blueprint/Components/Unauthorized.jsx","Contexts/EmbeddedContext.jsx","RefreshToken.tsx","TokenRefresher.jsx","EmbeddedGuard.jsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["const Loading = () => (\n
\n Loading\n
\n);\n\nexport default Loading;","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal &&\n (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = unsubscribe;\n\n return [signal, () => {\n timer && clearTimeout(timer);\n timer = null;\n }];\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n const iterator = readBytes(stream, chunkSize, encode);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n composeSignals([signal, cancelToken], timeout) : [];\n\n let finished, request;\n\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n\n finished = true;\n }\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush, encodeText);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype; \n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n isStreamResponse && onFinish();\n }, encodeText),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && onFinish();\n\n stopTimeout && stopTimeout();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n onFinish();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.5\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from 'axios';\nimport { bpRemoteData } from './variables';\n\nimport { refreshToken, setAccessToken, redirectLogin, setWorkspace } from '../Services/AuthService';\nimport i18n from './i18n';\n\nconst instance = axios.create({\n baseURL: `${bpRemoteData}/`,\n});\n\nasync function tryRefreshToken() {\n try {\n\n const newToken = await refreshToken();\n\n if (newToken) {\n setAccessToken(newToken);\n return newToken;\n }\n\n } catch (refreshError) {\n redirectLogin();\n }\n return null;\n}\n\nasync function tryRefreshTokenAndRetryRequest(error) {\n\n const token = await tryRefreshToken();\n \n if (token) {\n const access_token = token.access_token;\n error.config.headers['Authorization'] = `Bearer ${access_token}`;\n return instance(error.config);\n }\n \n return Promise.reject(error);\n}\n\ninstance.interceptors.request.use(async config => {\n\n if (config.url === '/refresh/token') {\n return config;\n }\n\n let access_token = localStorage.getItem('access_token');\n\n const embedded = sessionStorage.getItem('isEmbedded') === 'true';\n\n const embedded_id = sessionStorage.getItem('embedded_id')\n\n const tokenExpiry = localStorage.getItem('expires_in');\n\n if (!embedded && access_token && isTokenExpired(tokenExpiry)) { \n const token = await tryRefreshToken();\n access_token = token.access_token;\n }\n\n if (access_token) {\n config.headers['Authorization'] = `Bearer ${access_token}`;\n }\n\n if (embedded_id && config.url !== '/api/embedded') {\n config.headers['X-Embedded-ID'] = embedded_id;\n }\n\n config.headers['Accept-Language'] = i18n.language || 'en';\n\n return config;\n \n}, (error) => {\n return Promise.reject(error);\n});\n\ninstance.interceptors.response.use(response => response, async error => {\n \n if (error.code === 'ERR_NETWORK') {\n return;\n }\n\n if (error.response && error.status === 401) {\n return tryRefreshTokenAndRetryRequest(error);\n }\n \n if (error.response && error.status !== 409 && error.status !== 404) {\n console.log(error);\n redirectLogin();\n }\n\n return Promise.reject(error);\n\n});\n\ninstance.interceptors.response.use((response) => {\n\n const refreshTokenPath = '/refresh/token';\n\n if (response.config.url.includes(refreshTokenPath)) {\n return response;\n }\n\n const language = response.headers['x-locale'] === 'pt-BR' ? 'pt' : response.headers['x-locale']; \n i18n.changeLanguage(language);\n localStorage.setItem('language', language);\n setWorkspace(response.headers['x-workspace-id'], response.headers['x-workspace-name']);\n\n return response;\n});\n\nfunction isTokenExpired(expiry) {\n if (!expiry) return true;\n const currentTime = Date.now() / 1000;\n return currentTime > expiry;\n}\n\nexport default instance;\n","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || typeof object === 'string';\nconst getLastOfPath = (object, path, Empty) => {\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nconst escape = data => {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = function (obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n};\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && Array.isArray(res))) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(res);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language || resolved.usedLng, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = this.language || resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nconst capitalize = string => string.charAt(0).toUpperCase() + string.slice(1);\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: n => Number(n > 1),\n 2: n => Number(n != 1),\n 3: n => 0,\n 4: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 5: n => Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5),\n 6: n => Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2),\n 7: n => Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 8: n => Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3),\n 9: n => Number(n >= 2),\n 10: n => Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4),\n 11: n => Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3),\n 12: n => Number(n % 10 != 1 || n % 100 == 11),\n 13: n => Number(n !== 0),\n 14: n => Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3),\n 15: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 16: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2),\n 17: n => Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1),\n 18: n => Number(n == 0 ? 0 : n == 1 ? 1 : 2),\n 19: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3),\n 20: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2),\n 21: n => Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0),\n 22: n => Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3)\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst createRules = () => {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n};\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n this.pluralRulesCache = {};\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n const rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nconst deepFindWithDefaults = function (data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (val, lng, options) => {\n let optForCache = options;\n if (options && options.interpolationkey && options.formatParams && options.formatParams[options.interpolationkey] && options[options.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [options.interpolationkey]: undefined\n };\n }\n const key = lng + JSON.stringify(optForCache);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n};\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n});\nconst transformOptions = options => {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n if (options.keyPrefix !== '') options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n return Promise.resolve(maybePromise);\n}","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n } else {\n fetchApi = fetch;\n }\n}\nvar XmlHttpRequestApi;\nif (hasXMLHttpRequest()) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n return url;\n};\nvar fetchIt = function fetchIt(url, fetchOptions, callback, altFetch) {\n var resolver = function resolver(response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n };\n if (altFetch) {\n var altResponse = altFetch(url, fetchOptions);\n if (altResponse instanceof Promise) {\n altResponse.then(resolver).catch(callback);\n return;\n }\n }\n if (typeof fetch === 'function') {\n fetch(url, fetchOptions).then(resolver).catch(callback);\n } else {\n fetchApi(url, fetchOptions).then(resolver).catch(callback);\n }\n};\nvar omitFetchOptions = false;\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n var headers = _objectSpread({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (typeof window === 'undefined' && typeof global !== 'undefined' && typeof global.process !== 'undefined' && global.process.versions && global.process.versions.node) {\n headers['User-Agent'] = \"i18next-http-backend (node/\".concat(global.process.version, \"; \").concat(global.process.platform, \" \").concat(global.process.arch, \")\");\n }\n if (payload) headers['Content-Type'] = 'application/json';\n var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;\n var fetchOptions = _objectSpread({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, omitFetchOptions ? {} : reqOptions);\n var altFetch = typeof options.alternateFetch === 'function' && options.alternateFetch.length >= 1 ? options.alternateFetch : undefined;\n try {\n fetchIt(url, fetchOptions, callback, altFetch);\n } catch (e) {\n if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {\n return callback(e);\n }\n try {\n Object.keys(reqOptions).forEach(function (opt) {\n delete fetchOptions[opt];\n });\n fetchIt(url, fetchOptions, callback, altFetch);\n omitFetchOptions = true;\n } catch (err) {\n callback(err);\n }\n }\n};\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n try {\n var x;\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.withCredentials = !!options.withCredentials;\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi && url.indexOf('file:') !== 0) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (hasXMLHttpRequest() || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { makePromise } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n parseLoadPayload: function parseLoadPayload(languages, namespaces) {\n return undefined;\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n return _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), this.options || {}), options);\n this.allOptions = allOptions;\n if (this.services && this.options.reloadInterval) {\n var timer = setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n if (_typeof(timer) === 'object' && typeof timer.unref === 'function') timer.unref();\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n var lng = typeof languages === 'string' ? [languages] : languages;\n var ns = typeof namespaces === 'string' ? [namespaces] : namespaces;\n var payload = this.options.parseLoadPayload(lng, ns);\n this.options.request(this.options, url, payload, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.toLowerCase().indexOf('failed') > -1 && (err.message.indexOf('fetch') > -1 || err.message.toLowerCase().indexOf('network') > -1)) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n if (finished === languages.length) {\n if (typeof callback === 'function') callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n}();\nBackend.type = 'backend';\nexport default Backend;","const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = (name, val, options) => {\n const opt = options || {};\n opt.path = opt.path || '/';\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n };\n}\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services || {\n languageUtils: {}\n }; // this way the language detector can be used without i18next\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect(detectionOrder) {\n if (!detectionOrder) detectionOrder = this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.map(d => this.options.convertDetectedLanguage(d));\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n\n cacheUserLanguage(lng, caches) {\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport HttpBackend from 'i18next-http-backend';\nimport LanguageDetector from 'i18next-browser-languagedetector';\n\nconst language = localStorage.getItem('language') || 'en';\n\ni18n\n .use(HttpBackend)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n fallbackLng: 'en',\n lng: language,\n debug: false,\n interpolation: {\n escapeValue: false,\n },\n backend: {\n loadPath: '/lang/{{lng}}/{{ns}}.json',\n }\n });\n\nexport default i18n;\n","export const bpRemoteData = process.env.REACT_APP_BP_REMOTE_DATA;\nexport const bplocalData = process.env.REACT_APP_BP_LOCAL_DATA;\nexport const bpRedirectUri = process.env.REACT_APP_REDIRECT_URI;\nexport const bpClientId = process.env.REACT_APP_CLIENT_ID;\nexport const bpAuthEndpoint = process.env.REACT_APP_BP_AUTH_ENDPOINT;","import axios from '../Config/axios';\n\nimport { bpClientId, bpRedirectUri, bpAuthEndpoint } from '../Config/variables';\n\nexport async function getOAuthToken(code) {\n \n try {\n\n const payload = { code };\n \n const response = await axios.post('/oauth2/token', payload);\n\n return response.data;\n \n } catch (error) {\n \n console.error('Erro ao obter o token OAuth', error);\n \n throw error;\n \n }\n}\n\nexport async function refreshToken() {\n \n try {\n\n console.log('Setting up token refresh interval');\n\n const refresh_token = localStorage.getItem('refresh_token');\n\n if (!refresh_token) {\n redirectLogin();\n return;\n }\n\n const payload = { code: refresh_token };\n \n const response = await axios.post('/refresh/token', payload);\n\n return response.data;\n \n } catch (error) {\n console.error('Erro ao atualizar o token OAuth', error);\n }\n}\n\nexport const setAccessToken = (token) => {\n\n const { access_token, refresh_token, expires_in } = token;\n\n localStorage.setItem('access_token', access_token);\n\n if (refresh_token) {\n localStorage.setItem('refresh_token', refresh_token);\n }\n\n const expiresIn = expires_in;\n const expiryTimestamp = Date.now() + (expiresIn * 1000);\n localStorage.setItem('expires_in', expiryTimestamp.toString());\n\n};\n\nexport const setWorkspace = (workspaceId, workspaceName) => { \n if(workspaceId || workspaceName) {\n localStorage.setItem('workspace_id', workspaceId);\n localStorage.setItem('workspace_name', workspaceName);\n }\n};\n\nexport const handleResponseError = (error) => {\n redirectLogin();\n};\n\nexport const redirectLogin = () => {\n\n localStorage.removeItem('access_token');\n localStorage.removeItem('expires_in');\n localStorage.removeItem('refresh_token');\n localStorage.removeItem('lastPath');\n\n const link = `${bpAuthEndpoint}?client_id=${bpClientId}&redirect_uri=${bpRedirectUri}&response_type=code`;\n\n window.location.href = link;\n};\n\nexport const updateAuthOptions = (node, options) => {\n\n const authIndex = node.data.params.findIndex(p => p.name === 'auth');\n\n if (authIndex === -1) return node;\n\n const authParam = node.data.params[authIndex];\n const isValueInOptions = options.some(option => option.value === authParam.value);\n\n if (!isValueInOptions) {\n\n node.data.params[authIndex].value = '';\n }\n\n node.data.params[authIndex].options = options;\n\n return node;\n};","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(index)];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(\n branches[i],\n decoded,\n allowPartial\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string,\n allowPartial = false\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nexport function decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\n );\n}\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n matchRoutesImpl,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE DO NOT USE\n *\n * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n v7_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n v7_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!initialMatches.some((m) => m.route.loader)) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: Set = new Set();\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n return new Map(state.fetchers);\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n fogOfWar.active,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n isFogOfWar: boolean,\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.add(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\n };\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\n }\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n patchRoutes,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n//#endregion\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\n/**\n * Submit options shared by both navigations and fetchers\n */\ninterface SharedSubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this submission's state updates\n */\n unstable_flushSync?: boolean;\n}\n\n/**\n * Submit options available to fetchers\n */\nexport interface FetcherSubmitOptions extends SharedSubmitOptions {}\n\n/**\n * Submit options available to navigations\n */\nexport interface SubmitOptions extends FetcherSubmitOptions {\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a