@descope/web-js-sdk 0.1.0-alpha.5 → 0.1.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/jwt-decode/build/jwt-decode.esm.js","../node_modules/lodash.get/index.js","../node_modules/@descope/core-js-sdk/dist/index.esm.js","../src/constants.ts","../node_modules/@fingerprintjs/fingerprintjs-pro/dist/fp.esm.min.js","../src/helpers.ts","../src/fp.ts","../src/state.ts","../node_modules/js-cookie/dist/js.cookie.mjs","../src/tokens.ts","../src/webauthn.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import e from\"jwt-decode\";import t from\"lodash.get\";var n={exchange:\"/v1/auth/accesskey/exchange\"},s={verify:\"/v1/auth/otp/verify\",signIn:\"/v1/auth/otp/signin\",signUp:\"/v1/auth/otp/signup\",update:{email:\"/v1/auth/otp/update/email\",phone:\"/v1/auth/otp/update/phone\"},signUpOrIn:\"/v1/auth/otp/signup-in\"},a={verify:\"/v1/auth/magiclink/verify\",signIn:\"/v1/auth/magiclink/signin\",signUp:\"/v1/auth/magiclink/signup\",session:\"/v1/auth/magiclink/pending-session\",update:{email:\"/v1/auth/magiclink/update/email\",phone:\"/v1/auth/magiclink/update/phone\"},signUpOrIn:\"/v1/auth/magiclink/signup-in\"},i={start:\"/v1/auth/oauth/authorize\",exchange:\"/v1/auth/oauth/exchange\"},o={start:\"/v1/auth/saml/authorize\",exchange:\"/v1/auth/saml/exchange\"},r={verify:\"/v1/auth/totp/verify\",signUp:\"/v1/auth/totp/signup\",update:\"/v1/user/totp/update\"},c={signUp:{start:\"/v1/auth/webauthn/signup/start\",finish:\"/v1/auth/webauthn/signup/finish\"},signIn:{start:\"/v1/auth/webauthn/signin/start\",finish:\"/v1/auth/webauthn/signin/finish\"},update:{start:\"v1/auth/webauthn/update/start\",finish:\"/v1/auth/webauthn/update/finish\"}},u=\"/v1/auth/refresh\",p=\"/v1/auth/logoutall\",d=\"/v1/auth/deletecookies\",l=\"/v1/auth/me\",g={start:\"/v1/flow/start\",next:\"/v1/flow/next\"};var h;!function(e){e.get=\"GET\",e.delete=\"DELETE\",e.post=\"POST\",e.put=\"PUT\"}(h||(h={}));const m=()=>{const e={};return{headers(t){const n=\"function\"==typeof t.entries?Object.fromEntries(t.entries()):t;return e.Headers=JSON.stringify(n),this},body(t){return e.Body=t,this},url(t){return e.Url=t.toString(),this},method(t){return e.Method=t,this},title(t){return e.Title=t,this},status(t){return e.Status=t,this},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${\"Title\"!==t?`${t}: `:\"\"}${e[t]}`]:[])).join(\"\\n\")}},v=(e,t)=>{const n=t||fetch;if(!n)throw new Error(\"fetch is not defined\");return e?async(...t)=>{e.log((e=>m().title(\"Request\").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const s=await n(...t);return e[s.ok?\"log\":\"error\"](await(async e=>{const t=await e.text();return e.text=()=>Promise.resolve(t),e.json=()=>Promise.resolve(JSON.parse(t)),m().title(\"Response\").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(s)),s}:n},f=(...e)=>new Headers(e.reduce(((e,t)=>{const n=(e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t);return n.reduce(((t,[n,s])=>(e[n]=s,e)),e),e}),{})),b=e=>void 0===e?void 0:JSON.stringify(e),y=(e,t=\"\")=>{let n=e;return\"\"!==t&&(n=n+\":\"+t),{Authorization:`Bearer ${n}`}},I=({baseUrl:e,projectId:t,baseConfig:n,logger:s,hooks:a,cookiePolicy:i})=>{const o=v(s),r=async s=>{const r=(null==a?void 0:a.beforeRequest)?a.beforeRequest(s):s,{path:c,body:u,headers:p,queryParams:d,method:l,token:g}=r,h=await o((({path:e,baseUrl:t,queryParams:n})=>{const s=new URL(e,t);return n&&(s.search=new URLSearchParams(n).toString()),s})({path:c,baseUrl:e,queryParams:d}),{headers:f(y(t,g),{\"x-descope-sdk-name\":\"core-js\",\"x-descope-sdk-version\":\"0.0.41-alpha.24\"},(null==n?void 0:n.baseHeaders)||{},p),method:l,body:b(u),credentials:i||\"include\"});return(null==a?void 0:a.afterRequest)&&a.afterRequest(s,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:s}={})=>r({path:e,headers:t,queryParams:n,body:void 0,method:h.get,token:s}),post:(e,t,{headers:n,queryParams:s,token:a}={})=>r({path:e,headers:n,queryParams:s,body:t,method:h.post,token:a}),put:(e,t,{headers:n,queryParams:s,token:a}={})=>r({path:e,headers:n,queryParams:s,body:t,method:h.put,token:a}),delete:(e,t,{headers:n,queryParams:s,token:a}={})=>r({path:e,headers:n,queryParams:s,body:t,method:h.delete,token:a})}};function k(e,t,n){var s;let a=O(e);t&&(a=null===(s=a.tenants)||void 0===s?void 0:s[t]);const i=a[n];return Array.isArray(i)?i:[]}function O(t){if(\"string\"!=typeof t||!t)throw new Error(\"Invalid token provided\");return e(t)}function j(e){const{exp:t}=O(e);return(new Date).getTime()/1e3>t}function x(e,t){return k(e,t,\"permissions\")}function w(e,t){return k(e,t,\"roles\")}const U=(...e)=>e.join(\"/\").replace(/\\/{2,}/g,\"/\");async function P(e){const t=await e,n={code:t.status,ok:t.ok,response:t},s=await t.json();return t.ok?n.data=s:n.error=s,n}const R=(e,t)=>(n=t)=>t=>!e(t)&&n.replace(\"{val}\",t),q=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),$=e=>t=>e.test(t),M=$(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/),E=$(/^\\+[1-9]{1}[0-9]{3,14}$/),S=R(M,'\"{val}\" is not a valid email'),T=R(E,'\"{val}\" is not a valid phone number'),A=R((D=1,e=>e.length>=D),\"Minimum length is 1\");var D;const z=R((e=>\"string\"==typeof e),\"Input is not a string\"),J=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>q(...e).validate(n[t]))),t(...n)),L=e=>[z(`\"${e}\" must be a string`),A(`\"${e}\" must not be empty`)],H=e=>[z(`\"${e}\" must be a string`),S()],C=e=>[z(`\"${e}\" must be a string`),T()],N=J(L(\"accessKey\")),Z=e=>({exchange:N((t=>P(e.post(n.exchange,{},{token:t}))))});var B,K,F,G,_;!function(e){e.sms=\"sms\",e.whatsapp=\"whatsapp\"}(B||(B={})),function(e){e.email=\"email\",e.sms=\"sms\",e.whatsapp=\"whatsapp\"}(K||(K={})),function(e){e.waiting=\"waiting\",e.running=\"running\",e.completed=\"completed\",e.failed=\"failed\"}(F||(F={})),function(e){e.signUp=\"signup\",e.signIn=\"signin\",e.verify=\"verify\"}(G||(G={})),function(e){e.signUp=\"signup\",e.signIn=\"signin\",e.verify=\"verify\",e.updatePhone=\"updatePhone\"}(_||(_={}));const Q=L(\"identifier\"),V=J(Q,L(\"code\")),W=J(Q),X=J(Q,C(\"phone\")),Y=J(Q,H(\"email\")),ee=e=>({verify:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:V(((t,a,i,o)=>P(e.post(U(s.verify,n),{code:a,externalId:t,loginOptions:i},{token:o}))))})),{}),signIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:W((t=>P(e.post(U(s.signIn,n),{externalId:t}))))})),{}),signUp:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:W(((t,a)=>P(e.post(U(s.signUp,n),{externalId:t,user:a}))))})),{}),signUpOrIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:W((t=>P(e.post(U(s.signUpOrIn,n),{externalId:t}))))})),{}),update:{email:Y(((t,n,a)=>P(e.post(s.update.email,{externalId:t,email:n},{token:a})))),phone:Object.keys(B).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:X(((t,a,i)=>P(e.post(U(s.update.phone,n),{externalId:t,phone:a},{token:i}))))})),{})}}),te=L(\"identifier\"),ne=L(\"uri\"),se=J(L(\"token\")),ae=J(te,ne),ie=J(L(\"pendingRef\")),oe=J(te,C(\"phone\"),ne),re=J(te,H(\"email\"),ne),ce=e=>({verify:se((t=>P(e.post(a.verify,{token:t})))),signIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s)=>P(e.post(U(a.signIn,n),{externalId:t,URI:s,crossDevice:!0}))))})),{}),signUpOrIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s)=>P(e.post(U(a.signUpOrIn,n),{externalId:t,URI:s,crossDevice:!0}))))})),{}),signUp:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s,i)=>P(e.post(U(a.signUp,n),{externalId:t,URI:s,user:i,crossDevice:!0}))))})),{}),waitForSession:ie(((t,n)=>new Promise((s=>{const{pollingIntervalMs:i,timeoutMs:o}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||1e3,1e3),timeoutMs:Math.min(t||6e5,6e5)}))(n);let r;const c=setInterval((async()=>{const n=await e.post(a.session,{pendingRef:t});n.ok&&(clearInterval(c),r&&clearTimeout(r),s(P(Promise.resolve(n))))}),i);r=setTimeout((()=>{s({error:{message:`Session polling timeout exceeded: ${o}ms`,code:\"0\"},ok:!1}),clearInterval(c)}),o)})))),update:{email:re(((t,n,s,i)=>P(e.post(a.update.email,{externalId:t,email:n,URI:s,crossDevice:!0},{token:i})))),phone:Object.keys(B).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:oe(((t,s,i,o)=>P(e.post(U(a.update.phone,n),{externalId:t,phone:s,URI:i,crossDevice:!0},{token:o}))))})),{})}}),ue=e=>({verify:se((t=>P(e.post(a.verify,{token:t})))),signIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s)=>P(e.post(U(a.signIn,n),{externalId:t,URI:s}))))})),{}),signUp:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s,i)=>P(e.post(U(a.signUp,n),{externalId:t,URI:s,user:i}))))})),{}),signUpOrIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s)=>P(e.post(U(a.signUpOrIn,n),{externalId:t,URI:s}))))})),{}),update:{email:re(((t,n,s,i)=>P(e.post(a.update.email,{externalId:t,email:n,URI:s},{token:i})))),phone:Object.keys(B).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:oe(((t,s,i,o)=>P(e.post(U(a.update.phone,n),{externalId:t,phone:s,URI:i},{token:o}))))})),{})},crossDevice:ce(e)});var pe;!function(e){e.facebook=\"facebook\",e.github=\"github\",e.google=\"google\",e.microsoft=\"microsoft\",e.gitlab=\"gitlab\",e.apple=\"apple\"}(pe||(pe={}));const de=J(L(\"code\")),le=e=>({start:Object.keys(pe).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:async(t,{redirect:s=!1}={})=>{const a=await e.post(i.start,{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t})});if(!s||!a.ok)return P(Promise.resolve(a));const{url:o}=await a.json();window.location.href=o}})),{}),exchange:de(((t,n,s)=>P(e.post(i.exchange,{code:t,loginOptions:n},{token:s}))))}),ge=J(L(\"flowId\")),he=J(L(\"executionId\"),L(\"stepId\"),L(\"interactionId\")),me=e=>({start:ge((t=>P(e.post(g.start,{flowId:t})))),next:he(((t,n,s,a)=>P(e.post(g.next,{executionId:t,stepId:n,interactionId:s,input:a}))))}),ve=J(L(\"tenant\")),fe=J(L(\"code\")),be=e=>({start:ve((async(t,n,{redirect:s=!1}={})=>{const a=await e.post(o.start,{},{queryParams:{tenant:t,redirectURL:n}});if(!s||!a.ok)return P(Promise.resolve(a));const{url:i}=await a.json();window.location.href=i})),exchange:fe(((t,n,s)=>P(e.post(o.exchange,{code:t,loginOptions:n},{token:s}))))}),ye=L(\"identifier\"),Ie=J(ye,L(\"code\")),ke=J(ye),Oe=J(ye),je=e=>({signUp:ke(((t,n)=>P(e.post(r.signUp,{externalId:t,user:n})))),verify:Ie(((t,n,s,a)=>P(e.post(r.verify,{externalId:t,code:n,loginOptions:s},{token:a})))),update:Oe(((t,n)=>P(e.post(r.update,{externalId:t},{token:n}))))}),xe=L(\"identifier\"),we=L(\"origin\"),Ue=J(xe,we,L(\"name\")),Pe=J(xe,we),Re=J(xe,we,L(\"token\")),qe=J(L(\"transactionId\"),L(\"response\")),$e=e=>({signUp:{start:Ue(((t,n,s)=>P(e.post(c.signUp.start,{user:{externalId:t,name:s},origin:n})))),finish:qe(((t,n,s,a)=>P(e.post(c.signUp.finish,{transactionId:t,response:n,loginOptions:s},{token:a}))))},signIn:{start:Pe(((t,n)=>P(e.post(c.signIn.start,{externalId:t,origin:n})))),finish:qe(((t,n,s,a)=>P(e.post(c.signIn.finish,{transactionId:t,response:n,loginOptions:s},{token:a}))))},update:{start:Re(((t,n,s)=>P(e.post(c.update.start,{externalId:t,origin:n},{token:s})))),finish:qe(((t,n)=>P(e.post(c.update.finish,{transactionId:t,response:n}))))}}),Me=J(L(\"token\"));var Ee,Se;const Te=J([(Ee=\"projectId\",Se=L(\"projectId\"),R(((e,n)=>s=>q(...n).validate(t(s,e)))(Ee,Se))())])((({projectId:e,logger:t,baseUrl:n,hooks:s,cookiePolicy:a})=>{return i=I({baseUrl:n||\"https://api.descope.com\",projectId:e,logger:t,hooks:s,cookiePolicy:a}),{accessKey:Z(i),otp:ee(i),magicLink:ue(i),oauth:le(i),saml:be(i),totp:je(i),webauthn:$e(i),flow:me(i),refresh:e=>P(i.post(u,{},{token:e})),logout:e=>P(i.post(p,{},{token:e})),deleteCookies:e=>P(i.post(d,{},{token:e})),me:e=>P(i.get(l,{token:e})),isJwtExpired:Me(j),getJwtPermissions:Me(x),getJwtRoles:Me(w),httpClient:i};var i}));Te.DeliveryMethods=K;export{Te as default};\n//# sourceMappingURL=index.esm.js.map\n","/** Fingerprint.js identity key */\nexport const FP_KEY = 'A9aCLRHzKCv3uL69oqDr';\n/** Session ID for visitor */\nexport const VISITOR_SESSION_ID_PARAM = 'vsid';\n/** Request ID for visitor */\nexport const VISITOR_REQUEST_ID_PARAM = 'vrid';\n","/**\n * FingerprintJS Pro v3.7.1 - Copyright (c) FingerprintJS, Inc, 2022 (https://fingerprint.com)\n *\n * This software contains code from open-source projects:\n * MurmurHash3 by Karan Lyons (https://github.com/karanlyons/murmurHash3.js)\n */\n\nimport{__rest as e,__assign as t}from\"tslib\";function r(e){for(var t=\"\",r=0;r<e.length;++r)if(r>0){var n=e[r].toLowerCase();n!==e[r]?t+=\" \"+n:t+=e[r]}else t+=e[r].toUpperCase();return t}var n=\"Client timeout\",o=\"Network connection error\",i=\"Network request aborted\",R=\"Response cannot be parsed\",a=\"Blocked by CSP\",u=/*#__PURE__*/r(\"WrongRegion\"),s=/*#__PURE__*/r(\"SubscriptionNotActive\"),c=/*#__PURE__*/r(\"UnsupportedVersion\"),d=/*#__PURE__*/r(\"InstallationMethodRestricted\"),l=/*#__PURE__*/r(\"HostnameRestricted\"),E=\"API key required\",_=\"API key not found\",f=\"API key expired\",O=\"Request cannot be parsed\",I=\"Request failed\",p=\"Request failed to process\",v=\"Too many requests, rate limit exceeded\",N=\"Not available for this origin\",h=\"Not available with restricted header\",y=\"API key required\",P=\"API key not found\",m=\"API key expired\";function A(e,t,r){return void 0===r&&(r=0),t(r).catch((function(n){if(r>=e.maxRetries||!e.shouldRetry(n))throw n;var o,i,R,a,u=(o=e.baseDelay,i=e.maxDelay,R=e.baseDelay*Math.pow(2,r),Math.max(o,Math.min(i,R)));return(a=u,new Promise((function(e){return setTimeout(e,a)}))).then((function(){return A(e,t,r+1)}))}))}var T=\"Failed to load the JS script of the agent\",w=\"https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js\";function b(r){var n,o,i=r.scriptUrlPattern,R=r.token,a=r.apiKey,u=void 0===a?R:a,s=e(r,[\"scriptUrlPattern\",\"token\",\"apiKey\"]),c=(n=r,o=\"scriptUrlPattern\",Object.prototype.hasOwnProperty.call(n,o)?i:void 0),d=[];return Promise.resolve().then((function(){if(!u||\"string\"!=typeof u)throw new Error(\"API key required\");return A({maxRetries:5,baseDelay:100,maxDelay:3e3,shouldRetry:function(e){return!(e instanceof Error&&\"Blocked by CSP\"===e.message)}},(function(){var e,t=new Date,r=function(){return d.push({startedAt:t,finishedAt:new Date})},n=function(e,t,r,n){var o,i=document,R=\"securitypolicyviolation\",a=function(t){var r=new URL(e,location.href),n=t.blockedURI;n!==r.href&&n!==r.protocol.slice(0,-1)&&n!==r.origin||(o=t,u())};i.addEventListener(R,a);var u=function(){return i.removeEventListener(R,a)};return null==n||n.then(u,u),Promise.resolve().then(t).then((function(e){return u(),e}),(function(e){return new Promise((function(e){return setTimeout(e)})).then((function(){if(u(),o)return r(o);throw e}))}))}(e=function(e,t){void 0===t&&(t=w);var r=encodeURIComponent;return t.replace(/<[^<>]+>/g,(function(t){return\"<version>\"===t?\"3\":\"<apiKey>\"===t?r(e):\"<loaderVersion>\"===t?r(\"3.7.1\"):t}))}(u,c),(function(){return function(e){return new Promise((function(t,r){var n=document.createElement(\"script\"),o=function(){var e;return null===(e=n.parentNode)||void 0===e?void 0:e.removeChild(n)},i=document.head||document.getElementsByTagName(\"head\")[0];n.onload=function(){o(),t()},n.onerror=function(){o(),r(new Error(T))},n.async=!0,n.src=e,i.appendChild(n)}))}(e)}),(function(){throw new Error(\"Blocked by CSP\")}));return n.then(r,r),n}))})).then((function(){var e=window,r=\"__fpjs_p_l_b\",n=e[r];if(function(e,t){var r,n=null===(r=Object.getOwnPropertyDescriptor)||void 0===r?void 0:r.call(Object,e,t);(null==n?void 0:n.configurable)?delete e[t]:n&&!n.writable||(e[t]=void 0)}(e,r),\"function\"!=typeof(null==n?void 0:n.load))throw new Error(T);return n.load(t(t({},s),{ldi:{attempts:d}}))}))}var D={load:b,ERROR_SCRIPT_LOAD_FAIL:T,ERROR_API_KEY_EXPIRED:\"API key expired\",ERROR_API_KEY_INVALID:\"API key not found\",ERROR_API_KEY_MISSING:\"API key required\",ERROR_BAD_REQUEST_FORMAT:\"Request cannot be parsed\",ERROR_BAD_RESPONSE_FORMAT:\"Response cannot be parsed\",ERROR_CLIENT_TIMEOUT:\"Client timeout\",ERROR_CSP_BLOCK:\"Blocked by CSP\",ERROR_FORBIDDEN_ENDPOINT:l,ERROR_FORBIDDEN_HEADER:\"Not available with restricted header\",ERROR_FORBIDDEN_ORIGIN:\"Not available for this origin\",ERROR_GENERAL_SERVER_FAILURE:\"Request failed\",ERROR_INSTALLATION_METHOD_RESTRICTED:d,ERROR_NETWORK_ABORT:\"Network request aborted\",ERROR_NETWORK_CONNECTION:\"Network connection error\",ERROR_RATE_LIMIT:\"Too many requests, rate limit exceeded\",ERROR_SERVER_TIMEOUT:\"Request failed to process\",ERROR_SUBSCRIPTION_NOT_ACTIVE:s,ERROR_TOKEN_EXPIRED:\"API key expired\",ERROR_TOKEN_INVALID:\"API key not found\",ERROR_TOKEN_MISSING:\"API key required\",ERROR_UNSUPPORTED_VERSION:c,ERROR_WRONG_REGION:u};export{f as ERROR_API_KEY_EXPIRED,_ as ERROR_API_KEY_INVALID,E as ERROR_API_KEY_MISSING,O as ERROR_BAD_REQUEST_FORMAT,R as ERROR_BAD_RESPONSE_FORMAT,n as ERROR_CLIENT_TIMEOUT,a as ERROR_CSP_BLOCK,l as ERROR_FORBIDDEN_ENDPOINT,h as ERROR_FORBIDDEN_HEADER,N as ERROR_FORBIDDEN_ORIGIN,I as ERROR_GENERAL_SERVER_FAILURE,d as ERROR_INSTALLATION_METHOD_RESTRICTED,i as ERROR_NETWORK_ABORT,o as ERROR_NETWORK_CONNECTION,v as ERROR_RATE_LIMIT,T as ERROR_SCRIPT_LOAD_FAIL,p as ERROR_SERVER_TIMEOUT,s as ERROR_SUBSCRIPTION_NOT_ACTIVE,m as ERROR_TOKEN_EXPIRED,P as ERROR_TOKEN_INVALID,y as ERROR_TOKEN_MISSING,c as ERROR_UNSUPPORTED_VERSION,u as ERROR_WRONG_REGION,D as default,b as load};\n","/** Wrapper around URLSearchParams that receives prop name as string */\nexport const getQueryParams = () => {\n\tconst params = new Proxy(new URLSearchParams(window.location.search), {\n\t\tget: (searchParams, prop) => searchParams.get(prop.toString())\n\t});\n\n\treturn params;\n};\n\n/** Returns specific URL query param */\nexport const getQueryParam = (param: string) => {\n\tconst params = getQueryParams();\n\n\treturn params[param];\n};\n\n/** Generate UUID based on current time and some randomness */\nexport const generateUUID = () => {\n\t// return alphanumeric, sortable uuid of 27 characters\n\treturn (\n\t\tDate.now().toString(36) +\n\t\tMath.random().toString(36).substring(2) + // removing '0.' prefix\n\t\tMath.random().toString(36).substring(2)\n\t).substring(0, 27);\n};\n","import { load } from '@fingerprintjs/fingerprintjs-pro';\nimport { FP_KEY, VISITOR_REQUEST_ID_PARAM, VISITOR_SESSION_ID_PARAM } from './constants';\nimport { getQueryParam, generateUUID } from './helpers';\n\n/** Fingerprint.js API wrapper */\nconst fp = (fpKey?: string) => {\n\tconst agentP = load({ apiKey: fpKey || FP_KEY });\n\n\treturn {\n\t\tget: async () => {\n\t\t\ttry {\n\t\t\t\tlet sessionId = sessionStorage.getItem(VISITOR_SESSION_ID_PARAM);\n\t\t\t\tif (!sessionId) {\n\t\t\t\t\tsessionId = getQueryParam(VISITOR_SESSION_ID_PARAM);\n\t\t\t\t}\n\n\t\t\t\tif (!sessionId) {\n\t\t\t\t\tsessionId = generateUUID();\n\t\t\t\t}\n\n\t\t\t\tsessionStorage.setItem(VISITOR_SESSION_ID_PARAM, sessionId);\n\n\t\t\t\tconst agent = await agentP;\n\t\t\t\tconst res = await agent.get({ linkedId: sessionId });\n\t\t\t\tsessionStorage.setItem(VISITOR_REQUEST_ID_PARAM, res.requestId);\n\t\t\t} catch (ex) {\n\t\t\t\t// istanbul ignore next\n\t\t\t\tif (global.FB_DEBUG) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.error(ex);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n};\n\nexport default fp;\n","// supported state types are string and object\ntype StateObject = Record<string, any>;\n\ntype Subscribers<T> = Record<string, SubscribeCb<T>>;\n\nconst compare = <T extends StateObject>(a: T, b: T) => {\n\tconst aProperties = (a && Object.getOwnPropertyNames(a)) || [];\n\tconst bProperties = (b && Object.getOwnPropertyNames(b)) || [];\n\n\tif (aProperties.length !== bProperties.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < aProperties.length; i += 1) {\n\t\tconst propName = aProperties[i];\n\n\t\tif (a[propName] !== b[propName]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\nconst clone = (state: StateObject): StateObject => {\n\treturn { ...state };\n};\n\nclass State<T extends StateObject> {\n\t#state: T;\n\n\t#subscribers: Subscribers<T> = {};\n\n\t#token = 0;\n\n\tconstructor(init: T) {\n\t\tthis.#state = init;\n\t}\n\n\tget current() {\n\t\treturn clone(this.#state) as T;\n\t}\n\n\tupdate(newState: T) {\n\t\tconst nextState: T = newState;\n\t\tif (!compare(this.#state, nextState)) {\n\t\t\tconst prevState = this.#state;\n\t\t\tthis.#state = nextState as T;\n\t\t\tObject.freeze(this.#state);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tObject.values(this.#subscribers).forEach((cb) => cb(clone(nextState) as T, prevState));\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\tsubscribe(cb: SubscribeCb<T>) {\n\t\tthis.#token += 1;\n\t\tthis.#subscribers[this.#token] = cb;\n\n\t\t// return unsubscribe function\n\t\tconst currentToken = this.#token;\n\t\treturn () => this.#unsubscribe(currentToken.toString());\n\t}\n\n\t#unsubscribe(token: string) {\n\t\tconst isFound = !!this.#subscribers[token];\n\n\t\tif (isFound) {\n\t\t\tdelete this.#subscribers[token];\n\t\t}\n\t}\n\n\tunsubscribeAll() {\n\t\tthis.#subscribers = {};\n\t}\n}\nexport type SubscribeCb<T> = (state: T, prevState?: T) => void;\nexport default State;\n","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","import { JWTResponse } from '@descope/core-js-sdk';\nimport Cookies from 'js-cookie';\nimport { RefreshFn, SdkState, TokensOptions } from './types';\n\n/** Default name for the session cookie */\nconst sessionCookieName = 'DS';\n/** Default name for the refresh cookie */\nconst refreshStorageKey = 'DSR';\n/** Holds the list of timer IDs for auto-refresh of the session token timers so we can clean them later */\nlet refreshTimeoutIds: NodeJS.Timeout[] = [];\n\n/**\n * Store refresh token in localStorage.\n * This is only relevant for development where the refresh token is returned in the response body.\n * For production, it is recommended to configure Descope project to return refresh token as httpOnly cookie as it is more secure this way.\n * @param refreshJwt The refresh JWT to store\n */\nfunction setRefreshToken(refreshJwt: string) {\n\tif (localStorage && refreshJwt) {\n\t\tlocalStorage.setItem(refreshStorageKey, refreshJwt);\n\t}\n}\n\n/**\n * Store the session JWT as a cookie on the given domain and path with the given expiration.\n * This is useful so that the application backend will automatically get the cookie for the session\n * @param sessionJwt The session JWT to store as a cookie\n * @param cookieParams configuration that is usually returned from the JWT\n */\nfunction setSessionToken(\n\tsessionJwt: string,\n\t{ cookiePath, cookieDomain, cookieExpiration }: Partial<JWTResponse>\n) {\n\tif (sessionJwt) {\n\t\tCookies.set(sessionCookieName, sessionJwt, {\n\t\t\tpath: cookiePath,\n\t\t\tdomain: cookieDomain,\n\t\t\texpires: cookieExpiration,\n\t\t\tsameSite: 'None',\n\t\t\tsecure: true\n\t\t});\n\t}\n}\n\n/**\n * Get the JWT expiration WITHOUT VALIDATING the JWT\n * @param token The JWT to extract expiration from\n * @returns The Date for when the JWT expires or null if there is an issue\n */\nfunction getSessionExpiration(token: string) {\n\tconst parts = token.split('.');\n\ttry {\n\t\tif (parts.length === 3) {\n\t\t\tconst claims = JSON.parse(window.atob(token.split('.')[1]));\n\t\t\tif (claims.exp) {\n\t\t\t\treturn new Date(claims.exp * 1000);\n\t\t\t}\n\t\t}\n\t} catch (ex) {\n\t\t// fallback to null\n\t}\n\t// istanbul ignore next\n\treturn null;\n}\n\n/**\n * Start a timer to auto-refresh the session JWT based on the expiry of the session\n * @param refreshFn The function to actually perform the refresh\n * @param sessionJwt The current session JWT to extract timeout from\n * @param refreshJWT The current refresh JWT to be used for refresh function\n */\nfunction setRefreshSessionTimeout(refreshFn: RefreshFn, sessionJwt: string, refreshJWT: string) {\n\tconst sessionExpiration = getSessionExpiration(sessionJwt);\n\tif (sessionExpiration) {\n\t\tlet previousTimeout: NodeJS.Timeout;\n\t\twhile ((previousTimeout = refreshTimeoutIds.pop())) {\n\t\t\tclearTimeout(previousTimeout);\n\t\t}\n\t\t// set refresh to happen 20 (magic number) seconds before session token is expired\n\t\tconst refreshTimeout = sessionExpiration.getTime() - 20 * 1000 - new Date().getTime();\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\t// token can also be empty if the refresh JWT is returned as httpOnly cookie\n\t\t\trefreshFn(refreshJWT);\n\t\t}, refreshTimeout);\n\t\trefreshTimeoutIds.push(timeoutId);\n\t}\n}\n\n/**\n * Store the Descope session cookie and the refresh localStorage.\n * For production if configured correctly (returning refresh JWT as httpOnly cookie), it will not store the refresh JWT\n * @param sessionJwt The session JWT to store\n * @param refreshJwt The refresh JWT to store\n * @param cookieParams cookie configuration for setting session JWT cookie\n */\nfunction setDescopeTokens(\n\tsessionJwt: string,\n\trefreshJwt: string,\n\tcookieParams: Partial<JWTResponse>\n) {\n\tsetSessionToken(sessionJwt, cookieParams);\n\tsetRefreshToken(refreshJwt);\n}\n\n/**\n * Extracts JWT response from request body.\n * @param body The response body\n */\nfunction extractJWTResponse(body: any): JWTResponse {\n\t// auth info can be in body authInfo attribute, or the body itself, depending on the core-sdk function\n\treturn body?.authInfo || body || ({} as JWTResponse);\n}\n\n/**\n * Hook function to wrap around Descope SDK and handle tokens\n * @param refreshFn The function to use for refreshing token\n * @param res The raw HTTP response\n * @param state The callbacks that are used to update session token\n * @param options token options that are used for tokens management purposes\n */\nexport async function handleDescopeTokens(\n\trefreshFn: RefreshFn,\n\tres: Response,\n\tstate: SdkState,\n\toptions: TokensOptions\n) {\n\ttry {\n\t\tif (res.status === 401) {\n\t\t\t// reset state if got unauthorized status code\n\t\t\tstate.sessionToken.update({ sessionToken: '' });\n\t\t\tstate.user.update({});\n\t\t\treturn;\n\t\t}\n\t\tconst body = await res?.json();\n\t\tif (body) {\n\t\t\tconst { sessionJwt, refreshJwt, user, ...cookieParams } = extractJWTResponse(body);\n\t\t\t// Persist token\n\t\t\tif (options.persistTokens) {\n\t\t\t\tsetDescopeTokens(sessionJwt, refreshJwt, cookieParams);\n\t\t\t}\n\n\t\t\t// Update state\n\t\t\tif (sessionJwt) {\n\t\t\t\tstate.sessionToken.update({ sessionToken: sessionJwt });\n\t\t\t}\n\t\t\tif (user) {\n\t\t\t\tstate.user.update(user);\n\t\t\t}\n\n\t\t\t// Auto refresh\n\t\t\tif (sessionJwt && refreshJwt && options.autoRefresh) {\n\t\t\t\tsetRefreshSessionTimeout(refreshFn, sessionJwt, refreshJwt);\n\t\t\t}\n\t\t}\n\t} catch (ex) {\n\t\t// istanbul ignore next\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error('Could not set tokens from body', ex);\n\t}\n}\n\n/** Return the refresh token from the localStorage. Not for production usage because refresh token will not be saved in localStorage. */\nexport function getRefreshToken() {\n\treturn localStorage ? localStorage?.getItem(refreshStorageKey) : '';\n}\n\n/** Remove both the localStorage refresh JWT and the session cookie */\nexport function clearTokens() {\n\tif (localStorage) {\n\t\tlocalStorage.removeItem(refreshStorageKey);\n\t}\n\tCookies.remove(sessionCookieName);\n}\n","import { CoreSdk } from './types';\n\n/** Constructs a higher level WebAuthn API that wraps the functions from code-js-sdk */\nconst createWebAuthn = (sdk: CoreSdk) => ({\n\tasync signUp(identifier: string, name: string) {\n\t\tconst startResponse = await sdk.webauthn.signUp.start(identifier, window.location.origin, name);\n\t\tconst createResponse = await create(startResponse.data.options);\n\t\tconst finishResponse = await sdk.webauthn.signUp.finish(\n\t\t\tstartResponse.data.transactionId,\n\t\t\tcreateResponse\n\t\t);\n\t\treturn finishResponse;\n\t},\n\n\tasync signIn(identifier: string) {\n\t\tconst startResponse = await sdk.webauthn.signIn.start(identifier, window.location.origin);\n\t\tconst getResponse = await get(startResponse.data.options);\n\t\tconst finishResponse = await sdk.webauthn.signIn.finish(\n\t\t\tstartResponse.data.transactionId,\n\t\t\tgetResponse\n\t\t);\n\t\treturn finishResponse;\n\t},\n\n\tasync update(identifier: string, token: string) {\n\t\tconst startResponse = await sdk.webauthn.update.start(\n\t\t\tidentifier,\n\t\t\twindow.location.origin,\n\t\t\ttoken\n\t\t);\n\t\tconst createResponse = await create(startResponse.data.options);\n\t\tconst finishResponse = await sdk.webauthn.update.finish(\n\t\t\tstartResponse.data.transactionId,\n\t\t\tcreateResponse\n\t\t);\n\t\treturn finishResponse;\n\t},\n\n\t/** Helper functions for working with WebAuthn browser APIs using JSON data */\n\thelpers: {\n\t\t/** Wraps the navigation.credentials.create call to translate JSON inputs and outputs */\n\t\tcreate,\n\t\t/** Wraps the navigation.credentials.get call to translate JSON inputs and outputs */\n\t\tget\n\t}\n});\n\n// Helpers functions\n\nasync function create(options: string): Promise<string> {\n\tconst createOptions = decodeCreateOptions(options);\n\tconst createResponse = (await navigator.credentials.create(\n\t\tcreateOptions\n\t)) as AttestationPublicKeyCredential;\n\treturn encodeCreateResponse(createResponse);\n}\n\nasync function get(options: string): Promise<string> {\n\tconst getOptions = decodeGetOptions(options);\n\tconst getResponse = (await navigator.credentials.get(getOptions)) as AssertionPublicKeyCredential;\n\treturn encodeGetResponse(getResponse);\n}\n\n// Conversion of data structures for Create/Attestation/Register ceremony\n\ntype AttestationPublicKeyCredential = PublicKeyCredential & {\n\tresponse: AuthenticatorAttestationResponse;\n};\n\nfunction decodeCreateOptions(value: string): CredentialCreationOptions {\n\tconst options = JSON.parse(value);\n\toptions.publicKey.challenge = decodeBase64Url(options.publicKey.challenge);\n\toptions.publicKey.user.id = decodeBase64Url(options.publicKey.user.id);\n\toptions.publicKey.excludeCredentials?.forEach((item: any) => {\n\t\titem.id = decodeBase64Url(item.id);\n\t});\n\treturn options;\n}\n\nfunction encodeCreateResponse(credential: AttestationPublicKeyCredential): string {\n\treturn JSON.stringify({\n\t\t...credential,\n\t\trawId: encodeBase64Url(credential.rawId),\n\t\tresponse: {\n\t\t\t...credential.response,\n\t\t\tattestationObject: encodeBase64Url(credential.response.attestationObject),\n\t\t\tclientDataJSON: encodeBase64Url(credential.response.clientDataJSON)\n\t\t}\n\t});\n}\n\n// Conversion of data structures for Get/Assertion/Login ceremony\n\ntype AssertionPublicKeyCredential = PublicKeyCredential & {\n\tresponse: AuthenticatorAssertionResponse;\n};\n\nfunction decodeGetOptions(value: string): CredentialRequestOptions {\n\tconst options = JSON.parse(value);\n\toptions.publicKey.challenge = decodeBase64Url(options.publicKey.challenge);\n\toptions.publicKey.allowCredentials?.forEach((item: any) => {\n\t\titem.id = decodeBase64Url(item.id);\n\t});\n\treturn options;\n}\n\nfunction encodeGetResponse(credential: AssertionPublicKeyCredential): string {\n\treturn JSON.stringify({\n\t\t...credential,\n\t\trawId: encodeBase64Url(credential.rawId),\n\t\tresponse: {\n\t\t\t...credential.response,\n\t\t\tauthenticatorData: encodeBase64Url(credential.response.authenticatorData),\n\t\t\tclientDataJSON: encodeBase64Url(credential.response.clientDataJSON),\n\t\t\tsignature: encodeBase64Url(credential.response.signature),\n\t\t\tuserHandle: credential.response.userHandle\n\t\t\t\t? encodeBase64Url(credential.response.userHandle)\n\t\t\t\t: undefined\n\t\t}\n\t});\n}\n\n// Conversion between ArrayBuffers and Base64Url strings\n\nfunction decodeBase64Url(value: string): ArrayBufferLike {\n\tconst base64 = value.replace(/_/g, '/').replace(/-/g, '+');\n\treturn Uint8Array.from(atob(base64), (c) => c.charCodeAt(0)).buffer;\n}\n\nfunction encodeBase64Url(value: ArrayBufferLike): string {\n\tconst base64 = btoa(String.fromCharCode.apply(null, new Uint8Array(value)));\n\treturn base64.replace(/\\//g, '_').replace(/\\+/g, '-').replace(/=/g, '');\n}\n\n// Exports\n\nexport default createWebAuthn;\n","import createSdk, { UserResponse } from '@descope/core-js-sdk';\nimport { VISITOR_REQUEST_ID_PARAM, VISITOR_SESSION_ID_PARAM } from './constants';\nimport fp from './fp';\nimport State from './state';\nimport { clearTokens, getRefreshToken, handleDescopeTokens } from './tokens';\nimport { CoreSdk, TokensOptions } from './types';\nimport createWebAuthn from './webauthn';\n\ndeclare const BUILD_VERSION: string;\n\n// this sdk can be used in SSR apps\nconst isBrowser = typeof window !== 'undefined';\n\nconst prepareQueryParams = (\n\tqueryParams\n): {\n\t[key: string]: string;\n} => ({\n\t...queryParams,\n\t[VISITOR_SESSION_ID_PARAM]: sessionStorage.getItem(VISITOR_SESSION_ID_PARAM) || '',\n\t[VISITOR_REQUEST_ID_PARAM]: sessionStorage.getItem(VISITOR_REQUEST_ID_PARAM) || ''\n});\n\n/** Configuration arguments which include the Descope core SDK args and fingerprint configuration.\n * Also specifies token options - if we should persist tokens from responses automatically and auto-refresh.\n */\nexport type WebJSSDKArgs = Parameters<typeof createSdk>[0] &\n\tTokensOptions & {\n\t\t// FingerprintJS API key\n\t\tfpKey?: string;\n\t};\n\n/**\n * Wrapper around DescopeSDK to handle fingerprint.js and storage of JWT tokens in cookies and localStorage,\n * It also sets a timer to refresh session JWT automatically.\n */\nexport default ({ autoRefresh = true, persistTokens = true, ...args }: WebJSSDKArgs) => {\n\t// istanbul ignore next\n\tif (!isBrowser) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t'Fingerprint is a client side only capability and will not work when running in the server'\n\t\t);\n\t} else {\n\t\tfp(args.fpKey)\n\t\t\t.get()\n\t\t\t.catch(() => null);\n\t}\n\n\tconst sdkConfig = args;\n\n\t// we defer defining the hook implementations themselves until the webSdk is created later, so that the hooks\n\t// call the actual webSdk functions rather than those from coreSdk, and so that the sdk functions used by\n\t// the hooks can be mocked\n\tlet beforeRequestHook: typeof sdkConfig.hooks.beforeRequest;\n\tlet afterRequestHook: typeof sdkConfig.hooks.afterRequest;\n\n\tconst sessionToken = new State<{ sessionToken: string }>({ sessionToken: '' });\n\tconst user = new State<UserResponse>({} as UserResponse);\n\n\tsdkConfig.hooks = {\n\t\tbeforeRequest: (config) => {\n\t\t\treturn beforeRequestHook?.(config);\n\t\t},\n\t\tafterRequest: (req, res) => {\n\t\t\treturn afterRequestHook?.(req, res);\n\t\t}\n\t};\n\n\tconst coreSdk = createSdk(sdkConfig);\n\n\tconst webSdk = {\n\t\t...coreSdk,\n\t\twebauthn: createWebAuthn(coreSdk),\n\t\tonSessionTokenChange: (cb: (sessionToken: string) => void) => {\n\t\t\t// wrapper callback converts from the state object to sessionToken string\n\t\t\tconst bcWrapper = ({ sessionToken }) => {\n\t\t\t\tcb(sessionToken);\n\t\t\t};\n\n\t\t\t// run callback with current state for a case that the state's consumer calls 'subscribe' after state was already updated\n\t\t\tconst currentSessionToken = sessionToken.current?.sessionToken;\n\t\t\tif (currentSessionToken) {\n\t\t\t\tcb(currentSessionToken);\n\t\t\t}\n\t\t\treturn sessionToken.subscribe(bcWrapper);\n\t\t},\n\t\tonUserChange: (cb: (user: UserResponse) => void) => {\n\t\t\tconst bcWrapper = (user: UserResponse) => {\n\t\t\t\tcb(user);\n\t\t\t};\n\t\t\tconst currUser = user.current;\n\t\t\t// run callback with current state for a case that the state's consumer calls 'subscribe' after state was already updated\n\t\t\tif (currUser && Object.entries(currUser).length > 0) {\n\t\t\t\tcb(currUser);\n\t\t\t}\n\n\t\t\treturn user.subscribe(bcWrapper);\n\t\t}\n\t};\n\n\tif (autoRefresh) {\n\t\twebSdk.logout = (...args: Parameters<CoreSdk['logout']>) => {\n\t\t\tconst refreshToken = getRefreshToken();\n\t\t\t// Make it easier for Descoper to just call logout without parameters if this is dev env and refresh is stored in localStorage\n\t\t\tconst token = args?.shift();\n\t\t\tconst logoutArgs = [token || refreshToken, ...args];\n\t\t\tconst res = coreSdk.logout(...logoutArgs);\n\t\t\tclearTokens();\n\t\t\treturn res;\n\t\t};\n\t}\n\n\tbeforeRequestHook = (config) => {\n\t\tconfig.queryParams = prepareQueryParams(config.queryParams);\n\t\tif (!config.token && persistTokens) {\n\t\t\tconfig.token = getRefreshToken();\n\t\t}\n\t\tconfig.headers = {\n\t\t\t...config.headers,\n\t\t\t'x-descope-sdk-name': 'web-js',\n\t\t\t'x-descope-sdk-version': BUILD_VERSION\n\t\t};\n\t\treturn config;\n\t};\n\n\tif (autoRefresh || persistTokens) {\n\t\tafterRequestHook = (req, res) => {\n\t\t\thandleDescopeTokens(\n\t\t\t\twebSdk.refresh,\n\t\t\t\tres,\n\t\t\t\t{ sessionToken, user },\n\t\t\t\t{ autoRefresh, persistTokens }\n\t\t\t);\n\t\t};\n\t}\n\n\tif (autoRefresh) {\n\t\t// refresh on init is done after afterRequestHook is configured\n\t\twebSdk.refresh();\n\t}\n\n\treturn webSdk;\n};\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","value","get","__classPrivateFieldSet","set","message","Error","name","r","window","atob","bind","String","replace","o","a","c","charAt","fromCharCode","header","JSON","parse","decodeURIComponent","charCodeAt","toString","toUpperCase","split","HASH_UNDEFINED","funcTag","genTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","freeGlobal","global","freeSelf","self","root","Function","uid","arrayProto","Array","funcProto","objectProto","coreJsData","maskSrcKey","exec","keys","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","Symbol","splice","Map","getNative","nativeCreate","symbolProto","undefined","symbolToString","Hash","entries","index","clear","entry","ListCache","MapCache","assocIndexOf","array","key","other","baseGet","object","path","isArray","type","isSymbol","test","isKey","stringToPath","toKey","baseIsNative","isObject","func","pattern","tag","isFunction","result","isHostObject","toSource","getMapData","map","data","__data__","getValue","pop","push","hash","string","memoize","baseToString","match","number","quote","resolver","memoized","args","cache","Cache","isObjectLike","h","lodash_get","defaultValue","email","phone","start","finish","g","delete","post","put","m","headers","fromEntries","Headers","stringify","body","Body","url","Url","method","Method","title","Title","status","Status","build","flatMap","join","reduce","from","b","y","Authorization","I","baseUrl","projectId","baseConfig","logger","hooks","cookiePolicy","fetch","async","log","ok","text","Promise","resolve","json","statusText","v","beforeRequest","u","queryParams","d","l","token","URL","search","URLSearchParams","baseHeaders","credentials","afterRequest","clone","k","O","tenants","j","exp","Date","getTime","x","w","U","P","code","response","error","R","q","validate","forEach","$","M","E","S","T","A","z","J","L","H","C","N","Z","exchange","B","K","F","G","_","sms","whatsapp","waiting","running","completed","failed","signUp","signIn","verify","updatePhone","Q","V","W","X","Y","ee","externalId","loginOptions","user","signUpOrIn","update","te","ne","se","ae","ie","oe","re","ce","URI","crossDevice","waitForSession","pollingIntervalMs","timeoutMs","Math","max","min","setInterval","pendingRef","clearInterval","clearTimeout","setTimeout","ue","pe","facebook","github","google","microsoft","gitlab","apple","de","le","redirect","provider","redirectURL","location","href","ge","he","me","flowId","next","executionId","stepId","interactionId","input","ve","fe","be","tenant","ye","Ie","ke","Oe","je","xe","we","Ue","Pe","Re","qe","$e","origin","transactionId","Me","Se","Te","Ee","accessKey","otp","magicLink","oauth","saml","totp","webauthn","flow","refresh","logout","deleteCookies","isJwtExpired","getJwtPermissions","getJwtRoles","httpClient","DeliveryMethods","VISITOR_SESSION_ID_PARAM","VISITOR_REQUEST_ID_PARAM","catch","maxRetries","shouldRetry","baseDelay","maxDelay","pow","then","scriptUrlPattern","apiKey","startedAt","finishedAt","document","blockedURI","protocol","slice","addEventListener","removeEventListener","encodeURIComponent","createElement","parentNode","removeChild","head","getElementsByTagName","onload","onerror","src","appendChild","getOwnPropertyDescriptor","configurable","writable","load","ldi","attempts","getQueryParam","param","Proxy","searchParams","prop","fp","fpKey","agentP","sessionId","sessionStorage","getItem","now","random","substring","setItem","agent","res","linkedId","requestId","ex","FB_DEBUG","console","State","constructor","init","_State_state","_State_subscribers","_State_token","current","newState","nextState","aProperties","getOwnPropertyNames","bProperties","propName","compare","prevState","freeze","values","cb","subscribe","currentToken","_State_instances","_State_unsubscribe","unsubscribeAll","target","source","api","converter","defaultAttributes","attributes","expires","toUTCString","escape","stringifiedAttributes","attributeName","cookie","write","create","cookies","jar","parts","foundKey","read","remove","withAttributes","withConverter","refreshStorageKey","refreshTimeoutIds","setRefreshSessionTimeout","refreshFn","sessionJwt","refreshJWT","sessionExpiration","claims","getSessionExpiration","previousTimeout","refreshTimeout","timeoutId","setDescopeTokens","refreshJwt","cookieParams","cookiePath","cookieDomain","cookieExpiration","Cookies","domain","sameSite","secure","setSessionToken","localStorage","setRefreshToken","getRefreshToken","options","createOptions","publicKey","challenge","decodeBase64Url","id","_a","excludeCredentials","item","decodeCreateOptions","createResponse","navigator","credential","rawId","encodeBase64Url","attestationObject","clientDataJSON","getOptions","allowCredentials","decodeGetOptions","getResponse","authenticatorData","signature","userHandle","base64","Uint8Array","buffer","btoa","isBrowser","autoRefresh","persistTokens","warn","sdkConfig","beforeRequestHook","afterRequestHook","sessionToken","config","req","coreSdk","createSdk","webSdk","sdk","identifier","startResponse","helpers","onSessionTokenChange","currentSessionToken","onUserChange","currUser","refreshToken","logoutArgs","shift","removeItem","authInfo","extractJWTResponse","handleDescopeTokens"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/jwt-decode/build/jwt-decode.esm.js","../node_modules/lodash.get/index.js","../node_modules/@descope/core-js-sdk/dist/index.esm.js","../src/constants.ts","../node_modules/@fingerprintjs/fingerprintjs-pro/dist/fp.esm.min.js","../src/helpers.ts","../src/fp.ts","../src/state.ts","../node_modules/js-cookie/dist/js.cookie.mjs","../src/tokens.ts","../src/webauthn.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","function e(e){this.message=e}e.prototype=new Error,e.prototype.name=\"InvalidCharacterError\";var r=\"undefined\"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,\"\");if(t.length%4==1)throw new e(\"'atob' failed: The string to be decoded is not correctly encoded.\");for(var n,o,a=0,i=0,c=\"\";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(o);return c};function t(e){var t=e.replace(/-/g,\"+\").replace(/_/g,\"/\");switch(t.length%4){case 0:break;case 2:t+=\"==\";break;case 3:t+=\"=\";break;default:throw\"Illegal base64url string!\"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t=\"0\"+t),\"%\"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if(\"string\"!=typeof e)throw new n(\"Invalid token specified\");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(\".\")[o]))}catch(e){throw new n(\"Invalid token specified: \"+e.message)}}n.prototype=new Error,n.prototype.name=\"InvalidTokenError\";export default o;export{n as InvalidTokenError};\n//# sourceMappingURL=jwt-decode.esm.js.map\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import e from\"jwt-decode\";import t from\"lodash.get\";var n={exchange:\"/v1/auth/accesskey/exchange\"},s={verify:\"/v1/auth/otp/verify\",signIn:\"/v1/auth/otp/signin\",signUp:\"/v1/auth/otp/signup\",update:{email:\"/v1/auth/otp/update/email\",phone:\"/v1/auth/otp/update/phone\"},signUpOrIn:\"/v1/auth/otp/signup-in\"},a={verify:\"/v1/auth/magiclink/verify\",signIn:\"/v1/auth/magiclink/signin\",signUp:\"/v1/auth/magiclink/signup\",session:\"/v1/auth/magiclink/pending-session\",update:{email:\"/v1/auth/magiclink/update/email\",phone:\"/v1/auth/magiclink/update/phone\"},signUpOrIn:\"/v1/auth/magiclink/signup-in\"},i={start:\"/v1/auth/oauth/authorize\",exchange:\"/v1/auth/oauth/exchange\"},o={start:\"/v1/auth/saml/authorize\",exchange:\"/v1/auth/saml/exchange\"},r={verify:\"/v1/auth/totp/verify\",signUp:\"/v1/auth/totp/signup\",update:\"/v1/user/totp/update\"},c={signUp:{start:\"/v1/auth/webauthn/signup/start\",finish:\"/v1/auth/webauthn/signup/finish\"},signIn:{start:\"/v1/auth/webauthn/signin/start\",finish:\"/v1/auth/webauthn/signin/finish\"},signUpOrIn:{start:\"/v1/auth/webauthn/signup-in/start\"},update:{start:\"v1/auth/webauthn/update/start\",finish:\"/v1/auth/webauthn/update/finish\"}},p=\"/v1/auth/refresh\",u=\"/v1/auth/logoutall\",d=\"/v1/auth/deletecookies\",g=\"/v1/auth/me\",l={start:\"/v1/flow/start\",next:\"/v1/flow/next\"};var h;!function(e){e.get=\"GET\",e.delete=\"DELETE\",e.post=\"POST\",e.put=\"PUT\"}(h||(h={}));const m=()=>{const e={};return{headers(t){const n=\"function\"==typeof t.entries?Object.fromEntries(t.entries()):t;return e.Headers=JSON.stringify(n),this},body(t){return e.Body=t,this},url(t){return e.Url=t.toString(),this},method(t){return e.Method=t,this},title(t){return e.Title=t,this},status(t){return e.Status=t,this},build:()=>Object.keys(e).flatMap((t=>e[t]?[`${\"Title\"!==t?`${t}: `:\"\"}${e[t]}`]:[])).join(\"\\n\")}},v=(e,t)=>{const n=t||fetch;if(!n)throw new Error(\"fetch is not defined\");return e?async(...t)=>{e.log((e=>m().title(\"Request\").url(e[0]).method(e[1].method).headers(e[1].headers).body(e[1].body).build())(t));const s=await n(...t);return e[s.ok?\"log\":\"error\"](await(async e=>{const t=await e.text();return e.text=()=>Promise.resolve(t),e.json=()=>Promise.resolve(JSON.parse(t)),m().title(\"Response\").url(e.url.toString()).status(`${e.status} ${e.statusText}`).headers(e.headers).body(t).build()})(s)),s}:n},f=(...e)=>new Headers(e.reduce(((e,t)=>{const n=(e=>Array.isArray(e)?e:e instanceof Headers?Array.from(e.entries()):e?Object.entries(e):[])(t);return n.reduce(((t,[n,s])=>(e[n]=s,e)),e),e}),{})),b=e=>void 0===e?void 0:JSON.stringify(e),I=(e,t=\"\")=>{let n=e;return\"\"!==t&&(n=n+\":\"+t),{Authorization:`Bearer ${n}`}},y=({baseUrl:e,projectId:t,baseConfig:n,logger:s,hooks:a,cookiePolicy:i})=>{const o=v(s),r=async s=>{const r=(null==a?void 0:a.beforeRequest)?a.beforeRequest(s):s,{path:c,body:p,headers:u,queryParams:d,method:g,token:l}=r,h=await o((({path:e,baseUrl:t,queryParams:n})=>{const s=new URL(e,t);return n&&(s.search=new URLSearchParams(n).toString()),s})({path:c,baseUrl:e,queryParams:d}),{headers:f(I(t,l),{\"x-descope-sdk-name\":\"core-js\",\"x-descope-sdk-version\":\"0.0.41-alpha.26\"},(null==n?void 0:n.baseHeaders)||{},u),method:g,body:b(p),credentials:i||\"include\"});return(null==a?void 0:a.afterRequest)&&a.afterRequest(s,null==h?void 0:h.clone()),h};return{get:(e,{headers:t,queryParams:n,token:s}={})=>r({path:e,headers:t,queryParams:n,body:void 0,method:h.get,token:s}),post:(e,t,{headers:n,queryParams:s,token:a}={})=>r({path:e,headers:n,queryParams:s,body:t,method:h.post,token:a}),put:(e,t,{headers:n,queryParams:s,token:a}={})=>r({path:e,headers:n,queryParams:s,body:t,method:h.put,token:a}),delete:(e,t,{headers:n,queryParams:s,token:a}={})=>r({path:e,headers:n,queryParams:s,body:t,method:h.delete,token:a})}};function k(e,t,n){var s;let a=O(e);t&&(a=null===(s=a.tenants)||void 0===s?void 0:s[t]);const i=a[n];return Array.isArray(i)?i:[]}function O(t){if(\"string\"!=typeof t||!t)throw new Error(\"Invalid token provided\");return e(t)}function j(e){const{exp:t}=O(e);return(new Date).getTime()/1e3>t}function x(e,t){return k(e,t,\"permissions\")}function w(e,t){return k(e,t,\"roles\")}const U=(...e)=>e.join(\"/\").replace(/\\/{2,}/g,\"/\");async function P(e){const t=await e,n={code:t.status,ok:t.ok,response:t},s=await t.clone().json();return t.ok?n.data=s:n.error=s,n}const R=(e,t)=>(n=t)=>t=>!e(t)&&n.replace(\"{val}\",t),q=(...e)=>({validate:t=>(e.forEach((e=>{const n=e(t);if(n)throw new Error(n)})),!0)}),$=e=>t=>e.test(t),M=$(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/),E=$(/^\\+[1-9]{1}[0-9]{3,14}$/),S=R(M,'\"{val}\" is not a valid email'),T=R(E,'\"{val}\" is not a valid phone number'),A=R((D=1,e=>e.length>=D),\"Minimum length is 1\");var D;const z=R((e=>\"string\"==typeof e),\"Input is not a string\"),J=(...e)=>t=>(...n)=>(e.forEach(((e,t)=>q(...e).validate(n[t]))),t(...n)),L=e=>[z(`\"${e}\" must be a string`),A(`\"${e}\" must not be empty`)],H=e=>[z(`\"${e}\" must be a string`),S()],C=e=>[z(`\"${e}\" must be a string`),T()],N=J(L(\"accessKey\")),Z=e=>({exchange:N((t=>P(e.post(n.exchange,{},{token:t}))))});var B,K,F,G,_;!function(e){e.sms=\"sms\",e.whatsapp=\"whatsapp\"}(B||(B={})),function(e){e.email=\"email\",e.sms=\"sms\",e.whatsapp=\"whatsapp\"}(K||(K={})),function(e){e.waiting=\"waiting\",e.running=\"running\",e.completed=\"completed\",e.failed=\"failed\"}(F||(F={})),function(e){e.signUp=\"signup\",e.signIn=\"signin\",e.verify=\"verify\"}(G||(G={})),function(e){e.signUp=\"signup\",e.signIn=\"signin\",e.verify=\"verify\",e.updatePhone=\"updatePhone\"}(_||(_={}));const Q=L(\"identifier\"),V=J(Q,L(\"code\")),W=J(Q),X=J(Q,C(\"phone\")),Y=J(Q,H(\"email\")),ee=e=>({verify:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:V(((t,a)=>P(e.post(U(s.verify,n),{code:a,externalId:t}))))})),{}),signIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:W(((t,a,i)=>P(e.post(U(s.signIn,n),{externalId:t,loginOptions:a},{token:i}))))})),{}),signUp:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:W(((t,a)=>P(e.post(U(s.signUp,n),{externalId:t,user:a}))))})),{}),signUpOrIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:W((t=>P(e.post(U(s.signUpOrIn,n),{externalId:t}))))})),{}),update:{email:Y(((t,n,a)=>P(e.post(s.update.email,{externalId:t,email:n},{token:a})))),phone:Object.keys(B).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:X(((t,a,i)=>P(e.post(U(s.update.phone,n),{externalId:t,phone:a},{token:i}))))})),{})}}),te=L(\"identifier\"),ne=L(\"uri\"),se=J(L(\"token\")),ae=J(te,ne),ie=J(L(\"pendingRef\")),oe=J(te,C(\"phone\"),ne),re=J(te,H(\"email\"),ne),ce=e=>({verify:se((t=>P(e.post(a.verify,{token:t})))),signIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s,i,o)=>P(e.post(U(a.signIn,n),{externalId:t,URI:s,crossDevice:!0,loginOptions:i},{token:o}))))})),{}),signUpOrIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s)=>P(e.post(U(a.signUpOrIn,n),{externalId:t,URI:s,crossDevice:!0}))))})),{}),signUp:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s,i)=>P(e.post(U(a.signUp,n),{externalId:t,URI:s,user:i,crossDevice:!0}))))})),{}),waitForSession:ie(((t,n)=>new Promise((s=>{const{pollingIntervalMs:i,timeoutMs:o}=(({pollingIntervalMs:e=1e3,timeoutMs:t=6e5}={})=>({pollingIntervalMs:Math.max(e||1e3,1e3),timeoutMs:Math.min(t||6e5,6e5)}))(n);let r;const c=setInterval((async()=>{const n=await e.post(a.session,{pendingRef:t});n.ok&&(clearInterval(c),r&&clearTimeout(r),s(P(Promise.resolve(n))))}),i);r=setTimeout((()=>{s({error:{message:`Session polling timeout exceeded: ${o}ms`,code:\"0\"},ok:!1}),clearInterval(c)}),o)})))),update:{email:re(((t,n,s,i)=>P(e.post(a.update.email,{externalId:t,email:n,URI:s,crossDevice:!0},{token:i})))),phone:Object.keys(B).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:oe(((t,s,i,o)=>P(e.post(U(a.update.phone,n),{externalId:t,phone:s,URI:i,crossDevice:!0},{token:o}))))})),{})}}),pe=e=>({verify:se((t=>P(e.post(a.verify,{token:t})))),signIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s,i,o)=>P(e.post(U(a.signIn,n),{externalId:t,URI:s,loginOptions:i},{token:o}))))})),{}),signUp:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s,i)=>P(e.post(U(a.signUp,n),{externalId:t,URI:s,user:i}))))})),{}),signUpOrIn:Object.keys(K).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:ae(((t,s)=>P(e.post(U(a.signUpOrIn,n),{externalId:t,URI:s}))))})),{}),update:{email:re(((t,n,s,i)=>P(e.post(a.update.email,{externalId:t,email:n,URI:s},{token:i})))),phone:Object.keys(B).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:oe(((t,s,i,o)=>P(e.post(U(a.update.phone,n),{externalId:t,phone:s,URI:i},{token:o}))))})),{})},crossDevice:ce(e)});var ue;!function(e){e.facebook=\"facebook\",e.github=\"github\",e.google=\"google\",e.microsoft=\"microsoft\",e.gitlab=\"gitlab\",e.apple=\"apple\"}(ue||(ue={}));const de=J(L(\"code\")),ge=e=>({start:Object.keys(ue).reduce(((t,n)=>Object.assign(Object.assign({},t),{[n]:async(t,{redirect:s=!1}={},a,o)=>{const r=await e.post(i.start,a||{},{queryParams:Object.assign({provider:n},t&&{redirectURL:t}),token:o});if(!s||!r.ok)return P(Promise.resolve(r));const{url:c}=await r.json();window.location.href=c}})),{}),exchange:de((t=>P(e.post(i.exchange,{code:t}))))}),le=J(L(\"flowId\")),he=J(L(\"executionId\"),L(\"stepId\"),L(\"interactionId\")),me=e=>({start:le(((t,n)=>P(e.post(l.start,{flowId:t,options:n})))),next:he(((t,n,s,a)=>P(e.post(l.next,{executionId:t,stepId:n,interactionId:s,input:a}))))}),ve=J(L(\"tenant\")),fe=J(L(\"code\")),be=e=>({start:ve((async(t,n,{redirect:s=!1}={},a,i)=>{const r=await e.post(o.start,a||{},{queryParams:{tenant:t,redirectURL:n},token:i});if(!s||!r.ok)return P(Promise.resolve(r));const{url:c}=await r.json();window.location.href=c})),exchange:fe((t=>P(e.post(o.exchange,{code:t}))))}),Ie=L(\"identifier\"),ye=J(Ie,L(\"code\")),ke=J(Ie),Oe=J(Ie),je=e=>({signUp:ke(((t,n)=>P(e.post(r.signUp,{externalId:t,user:n})))),verify:ye(((t,n,s,a)=>P(e.post(r.verify,{externalId:t,code:n,loginOptions:s},{token:a})))),update:Oe(((t,n)=>P(e.post(r.update,{externalId:t},{token:n}))))}),xe=L(\"identifier\"),we=L(\"origin\"),Ue=J(xe,we,L(\"name\")),Pe=J(xe,we),Re=J(xe,we,L(\"token\")),qe=J(L(\"transactionId\"),L(\"response\")),$e=e=>({signUp:{start:Ue(((t,n,s)=>P(e.post(c.signUp.start,{user:{externalId:t,name:s},origin:n})))),finish:qe(((t,n)=>P(e.post(c.signUp.finish,{transactionId:t,response:n}))))},signIn:{start:Pe(((t,n,s,a)=>P(e.post(c.signIn.start,{externalId:t,origin:n,loginOptions:s},{token:a})))),finish:qe(((t,n)=>P(e.post(c.signIn.finish,{transactionId:t,response:n}))))},signUpOrIn:{start:Pe(((t,n)=>P(e.post(c.signUpOrIn.start,{externalId:t,origin:n}))))},update:{start:Re(((t,n,s)=>P(e.post(c.update.start,{externalId:t,origin:n},{token:s})))),finish:qe(((t,n)=>P(e.post(c.update.finish,{transactionId:t,response:n}))))}}),Me=J(L(\"token\"));var Ee,Se;const Te=J([(Ee=\"projectId\",Se=L(\"projectId\"),R(((e,n)=>s=>q(...n).validate(t(s,e)))(Ee,Se))())])((({projectId:e,logger:t,baseUrl:n,hooks:s,cookiePolicy:a})=>{return i=y({baseUrl:n||\"https://api.descope.com\",projectId:e,logger:t,hooks:s,cookiePolicy:a}),{accessKey:Z(i),otp:ee(i),magicLink:pe(i),oauth:ge(i),saml:be(i),totp:je(i),webauthn:$e(i),flow:me(i),refresh:e=>P(i.post(p,{},{token:e})),logout:e=>P(i.post(u,{},{token:e})),deleteCookies:e=>P(i.post(d,{},{token:e})),me:e=>P(i.get(g,{token:e})),isJwtExpired:Me(j),getJwtPermissions:Me(x),getJwtRoles:Me(w),httpClient:i};var i}));Te.DeliveryMethods=K;export{Te as default};\n//# sourceMappingURL=index.esm.js.map\n","/** Fingerprint.js identity key */\nexport const FP_KEY = 'A9aCLRHzKCv3uL69oqDr';\n/** Session ID for visitor */\nexport const VISITOR_SESSION_ID_PARAM = 'vsid';\n/** Request ID for visitor */\nexport const VISITOR_REQUEST_ID_PARAM = 'vrid';\n","/**\n * FingerprintJS Pro v3.7.1 - Copyright (c) FingerprintJS, Inc, 2022 (https://fingerprint.com)\n *\n * This software contains code from open-source projects:\n * MurmurHash3 by Karan Lyons (https://github.com/karanlyons/murmurHash3.js)\n */\n\nimport{__rest as e,__assign as t}from\"tslib\";function r(e){for(var t=\"\",r=0;r<e.length;++r)if(r>0){var n=e[r].toLowerCase();n!==e[r]?t+=\" \"+n:t+=e[r]}else t+=e[r].toUpperCase();return t}var n=\"Client timeout\",o=\"Network connection error\",i=\"Network request aborted\",R=\"Response cannot be parsed\",a=\"Blocked by CSP\",u=/*#__PURE__*/r(\"WrongRegion\"),s=/*#__PURE__*/r(\"SubscriptionNotActive\"),c=/*#__PURE__*/r(\"UnsupportedVersion\"),d=/*#__PURE__*/r(\"InstallationMethodRestricted\"),l=/*#__PURE__*/r(\"HostnameRestricted\"),E=\"API key required\",_=\"API key not found\",f=\"API key expired\",O=\"Request cannot be parsed\",I=\"Request failed\",p=\"Request failed to process\",v=\"Too many requests, rate limit exceeded\",N=\"Not available for this origin\",h=\"Not available with restricted header\",y=\"API key required\",P=\"API key not found\",m=\"API key expired\";function A(e,t,r){return void 0===r&&(r=0),t(r).catch((function(n){if(r>=e.maxRetries||!e.shouldRetry(n))throw n;var o,i,R,a,u=(o=e.baseDelay,i=e.maxDelay,R=e.baseDelay*Math.pow(2,r),Math.max(o,Math.min(i,R)));return(a=u,new Promise((function(e){return setTimeout(e,a)}))).then((function(){return A(e,t,r+1)}))}))}var T=\"Failed to load the JS script of the agent\",w=\"https://fpnpmcdn.net/v<version>/<apiKey>/loader_v<loaderVersion>.js\";function b(r){var n,o,i=r.scriptUrlPattern,R=r.token,a=r.apiKey,u=void 0===a?R:a,s=e(r,[\"scriptUrlPattern\",\"token\",\"apiKey\"]),c=(n=r,o=\"scriptUrlPattern\",Object.prototype.hasOwnProperty.call(n,o)?i:void 0),d=[];return Promise.resolve().then((function(){if(!u||\"string\"!=typeof u)throw new Error(\"API key required\");return A({maxRetries:5,baseDelay:100,maxDelay:3e3,shouldRetry:function(e){return!(e instanceof Error&&\"Blocked by CSP\"===e.message)}},(function(){var e,t=new Date,r=function(){return d.push({startedAt:t,finishedAt:new Date})},n=function(e,t,r,n){var o,i=document,R=\"securitypolicyviolation\",a=function(t){var r=new URL(e,location.href),n=t.blockedURI;n!==r.href&&n!==r.protocol.slice(0,-1)&&n!==r.origin||(o=t,u())};i.addEventListener(R,a);var u=function(){return i.removeEventListener(R,a)};return null==n||n.then(u,u),Promise.resolve().then(t).then((function(e){return u(),e}),(function(e){return new Promise((function(e){return setTimeout(e)})).then((function(){if(u(),o)return r(o);throw e}))}))}(e=function(e,t){void 0===t&&(t=w);var r=encodeURIComponent;return t.replace(/<[^<>]+>/g,(function(t){return\"<version>\"===t?\"3\":\"<apiKey>\"===t?r(e):\"<loaderVersion>\"===t?r(\"3.7.1\"):t}))}(u,c),(function(){return function(e){return new Promise((function(t,r){var n=document.createElement(\"script\"),o=function(){var e;return null===(e=n.parentNode)||void 0===e?void 0:e.removeChild(n)},i=document.head||document.getElementsByTagName(\"head\")[0];n.onload=function(){o(),t()},n.onerror=function(){o(),r(new Error(T))},n.async=!0,n.src=e,i.appendChild(n)}))}(e)}),(function(){throw new Error(\"Blocked by CSP\")}));return n.then(r,r),n}))})).then((function(){var e=window,r=\"__fpjs_p_l_b\",n=e[r];if(function(e,t){var r,n=null===(r=Object.getOwnPropertyDescriptor)||void 0===r?void 0:r.call(Object,e,t);(null==n?void 0:n.configurable)?delete e[t]:n&&!n.writable||(e[t]=void 0)}(e,r),\"function\"!=typeof(null==n?void 0:n.load))throw new Error(T);return n.load(t(t({},s),{ldi:{attempts:d}}))}))}var D={load:b,ERROR_SCRIPT_LOAD_FAIL:T,ERROR_API_KEY_EXPIRED:\"API key expired\",ERROR_API_KEY_INVALID:\"API key not found\",ERROR_API_KEY_MISSING:\"API key required\",ERROR_BAD_REQUEST_FORMAT:\"Request cannot be parsed\",ERROR_BAD_RESPONSE_FORMAT:\"Response cannot be parsed\",ERROR_CLIENT_TIMEOUT:\"Client timeout\",ERROR_CSP_BLOCK:\"Blocked by CSP\",ERROR_FORBIDDEN_ENDPOINT:l,ERROR_FORBIDDEN_HEADER:\"Not available with restricted header\",ERROR_FORBIDDEN_ORIGIN:\"Not available for this origin\",ERROR_GENERAL_SERVER_FAILURE:\"Request failed\",ERROR_INSTALLATION_METHOD_RESTRICTED:d,ERROR_NETWORK_ABORT:\"Network request aborted\",ERROR_NETWORK_CONNECTION:\"Network connection error\",ERROR_RATE_LIMIT:\"Too many requests, rate limit exceeded\",ERROR_SERVER_TIMEOUT:\"Request failed to process\",ERROR_SUBSCRIPTION_NOT_ACTIVE:s,ERROR_TOKEN_EXPIRED:\"API key expired\",ERROR_TOKEN_INVALID:\"API key not found\",ERROR_TOKEN_MISSING:\"API key required\",ERROR_UNSUPPORTED_VERSION:c,ERROR_WRONG_REGION:u};export{f as ERROR_API_KEY_EXPIRED,_ as ERROR_API_KEY_INVALID,E as ERROR_API_KEY_MISSING,O as ERROR_BAD_REQUEST_FORMAT,R as ERROR_BAD_RESPONSE_FORMAT,n as ERROR_CLIENT_TIMEOUT,a as ERROR_CSP_BLOCK,l as ERROR_FORBIDDEN_ENDPOINT,h as ERROR_FORBIDDEN_HEADER,N as ERROR_FORBIDDEN_ORIGIN,I as ERROR_GENERAL_SERVER_FAILURE,d as ERROR_INSTALLATION_METHOD_RESTRICTED,i as ERROR_NETWORK_ABORT,o as ERROR_NETWORK_CONNECTION,v as ERROR_RATE_LIMIT,T as ERROR_SCRIPT_LOAD_FAIL,p as ERROR_SERVER_TIMEOUT,s as ERROR_SUBSCRIPTION_NOT_ACTIVE,m as ERROR_TOKEN_EXPIRED,P as ERROR_TOKEN_INVALID,y as ERROR_TOKEN_MISSING,c as ERROR_UNSUPPORTED_VERSION,u as ERROR_WRONG_REGION,D as default,b as load};\n","/** Wrapper around URLSearchParams that receives prop name as string */\nexport const getQueryParams = () => {\n\tconst params = new Proxy(new URLSearchParams(window.location.search), {\n\t\tget: (searchParams, prop) => searchParams.get(prop.toString())\n\t});\n\n\treturn params;\n};\n\n/** Returns specific URL query param */\nexport const getQueryParam = (param: string) => {\n\tconst params = getQueryParams();\n\n\treturn params[param];\n};\n\n/** Generate UUID based on current time and some randomness */\nexport const generateUUID = () => {\n\t// return alphanumeric, sortable uuid of 27 characters\n\treturn (\n\t\tDate.now().toString(36) +\n\t\tMath.random().toString(36).substring(2) + // removing '0.' prefix\n\t\tMath.random().toString(36).substring(2)\n\t).substring(0, 27);\n};\n","import { load } from '@fingerprintjs/fingerprintjs-pro';\nimport { FP_KEY, VISITOR_REQUEST_ID_PARAM, VISITOR_SESSION_ID_PARAM } from './constants';\nimport { getQueryParam, generateUUID } from './helpers';\n\n/** Fingerprint.js API wrapper */\nconst fp = (fpKey?: string) => {\n\tconst agentP = load({ apiKey: fpKey || FP_KEY });\n\n\treturn {\n\t\tget: async () => {\n\t\t\ttry {\n\t\t\t\tlet sessionId = sessionStorage.getItem(VISITOR_SESSION_ID_PARAM);\n\t\t\t\tif (!sessionId) {\n\t\t\t\t\tsessionId = getQueryParam(VISITOR_SESSION_ID_PARAM);\n\t\t\t\t}\n\n\t\t\t\tif (!sessionId) {\n\t\t\t\t\tsessionId = generateUUID();\n\t\t\t\t}\n\n\t\t\t\tsessionStorage.setItem(VISITOR_SESSION_ID_PARAM, sessionId);\n\n\t\t\t\tconst agent = await agentP;\n\t\t\t\tconst res = await agent.get({ linkedId: sessionId });\n\t\t\t\tsessionStorage.setItem(VISITOR_REQUEST_ID_PARAM, res.requestId);\n\t\t\t} catch (ex) {\n\t\t\t\t// istanbul ignore next\n\t\t\t\tif (global.FB_DEBUG) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.error(ex);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n};\n\nexport default fp;\n","// supported state types are string and object\ntype StateObject = Record<string, any>;\n\ntype Subscribers<T> = Record<string, SubscribeCb<T>>;\n\nconst compare = <T extends StateObject>(a: T, b: T) => {\n\tconst aProperties = (a && Object.getOwnPropertyNames(a)) || [];\n\tconst bProperties = (b && Object.getOwnPropertyNames(b)) || [];\n\n\tif (aProperties.length !== bProperties.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < aProperties.length; i += 1) {\n\t\tconst propName = aProperties[i];\n\n\t\tif (a[propName] !== b[propName]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\nconst clone = (state: StateObject): StateObject => {\n\treturn { ...state };\n};\n\nclass State<T extends StateObject> {\n\t#state: T;\n\n\t#subscribers: Subscribers<T> = {};\n\n\t#token = 0;\n\n\tconstructor(init: T) {\n\t\tthis.#state = init;\n\t}\n\n\tget current() {\n\t\treturn clone(this.#state) as T;\n\t}\n\n\tupdate(newState: T) {\n\t\tconst nextState: T = newState;\n\t\tif (!compare(this.#state, nextState)) {\n\t\t\tconst prevState = this.#state;\n\t\t\tthis.#state = nextState as T;\n\t\t\tObject.freeze(this.#state);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tObject.values(this.#subscribers).forEach((cb) => cb(clone(nextState) as T, prevState));\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\tsubscribe(cb: SubscribeCb<T>) {\n\t\tthis.#token += 1;\n\t\tthis.#subscribers[this.#token] = cb;\n\n\t\t// return unsubscribe function\n\t\tconst currentToken = this.#token;\n\t\treturn () => this.#unsubscribe(currentToken.toString());\n\t}\n\n\t#unsubscribe(token: string) {\n\t\tconst isFound = !!this.#subscribers[token];\n\n\t\tif (isFound) {\n\t\t\tdelete this.#subscribers[token];\n\t\t}\n\t}\n\n\tunsubscribeAll() {\n\t\tthis.#subscribers = {};\n\t}\n}\nexport type SubscribeCb<T> = (state: T, prevState?: T) => void;\nexport default State;\n","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n","import { JWTResponse } from '@descope/core-js-sdk';\nimport Cookies from 'js-cookie';\nimport { RefreshFn, SdkState, TokensOptions } from './types';\n\n/** Default name for the session cookie */\nconst sessionCookieName = 'DS';\n/** Default name for the refresh cookie */\nconst refreshStorageKey = 'DSR';\n/** Holds the list of timer IDs for auto-refresh of the session token timers so we can clean them later */\nlet refreshTimeoutIds: NodeJS.Timeout[] = [];\n\n/**\n * Store refresh token in localStorage.\n * This is only relevant for development where the refresh token is returned in the response body.\n * For production, it is recommended to configure Descope project to return refresh token as httpOnly cookie as it is more secure this way.\n * @param refreshJwt The refresh JWT to store\n */\nfunction setRefreshToken(refreshJwt: string) {\n\tif (localStorage && refreshJwt) {\n\t\tlocalStorage.setItem(refreshStorageKey, refreshJwt);\n\t}\n}\n\n/**\n * Store the session JWT as a cookie on the given domain and path with the given expiration.\n * This is useful so that the application backend will automatically get the cookie for the session\n * @param sessionJwt The session JWT to store as a cookie\n * @param cookieParams configuration that is usually returned from the JWT\n */\nfunction setSessionToken(\n\tsessionJwt: string,\n\t{ cookiePath, cookieDomain, cookieExpiration }: Partial<JWTResponse>\n) {\n\tif (sessionJwt) {\n\t\tCookies.set(sessionCookieName, sessionJwt, {\n\t\t\tpath: cookiePath,\n\t\t\tdomain: cookieDomain,\n\t\t\texpires: cookieExpiration,\n\t\t\tsameSite: 'None',\n\t\t\tsecure: true\n\t\t});\n\t}\n}\n\n/**\n * Get the JWT expiration WITHOUT VALIDATING the JWT\n * @param token The JWT to extract expiration from\n * @returns The Date for when the JWT expires or null if there is an issue\n */\nfunction getSessionExpiration(token: string) {\n\tconst parts = token.split('.');\n\ttry {\n\t\tif (parts.length === 3) {\n\t\t\tconst claims = JSON.parse(window.atob(token.split('.')[1]));\n\t\t\tif (claims.exp) {\n\t\t\t\treturn new Date(claims.exp * 1000);\n\t\t\t}\n\t\t}\n\t} catch (ex) {\n\t\t// fallback to null\n\t}\n\t// istanbul ignore next\n\treturn null;\n}\n\n/**\n * Start a timer to auto-refresh the session JWT based on the expiry of the session\n * @param refreshFn The function to actually perform the refresh\n * @param sessionJwt The current session JWT to extract timeout from\n * @param refreshJWT The current refresh JWT to be used for refresh function\n */\nfunction setRefreshSessionTimeout(refreshFn: RefreshFn, sessionJwt: string, refreshJWT: string) {\n\tconst sessionExpiration = getSessionExpiration(sessionJwt);\n\tif (sessionExpiration) {\n\t\tlet previousTimeout: NodeJS.Timeout;\n\t\twhile ((previousTimeout = refreshTimeoutIds.pop())) {\n\t\t\tclearTimeout(previousTimeout);\n\t\t}\n\t\t// set refresh to happen 20 (magic number) seconds before session token is expired\n\t\tconst refreshTimeout = sessionExpiration.getTime() - 20 * 1000 - new Date().getTime();\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\t// token can also be empty if the refresh JWT is returned as httpOnly cookie\n\t\t\trefreshFn(refreshJWT);\n\t\t}, refreshTimeout);\n\t\trefreshTimeoutIds.push(timeoutId);\n\t}\n}\n\n/**\n * Store the Descope session cookie and the refresh localStorage.\n * For production if configured correctly (returning refresh JWT as httpOnly cookie), it will not store the refresh JWT\n * @param sessionJwt The session JWT to store\n * @param refreshJwt The refresh JWT to store\n * @param cookieParams cookie configuration for setting session JWT cookie\n */\nfunction setDescopeTokens(\n\tsessionJwt: string,\n\trefreshJwt: string,\n\tcookieParams: Partial<JWTResponse>\n) {\n\tsetSessionToken(sessionJwt, cookieParams);\n\tsetRefreshToken(refreshJwt);\n}\n\n/**\n * Extracts JWT response from request body.\n * @param body The response body\n */\nfunction extractJWTResponse(body: any): JWTResponse {\n\t// auth info can be in body authInfo attribute, or the body itself, depending on the core-sdk function\n\treturn body?.authInfo || body || ({} as JWTResponse);\n}\n\n/**\n * Hook function to wrap around Descope SDK and handle tokens\n * @param refreshFn The function to use for refreshing token\n * @param res The raw HTTP response\n * @param state The callbacks that are used to update session token\n * @param options token options that are used for tokens management purposes\n */\nexport async function handleDescopeTokens(\n\trefreshFn: RefreshFn,\n\tres: Response,\n\tstate: SdkState,\n\toptions: TokensOptions\n) {\n\ttry {\n\t\tif (res.status === 401) {\n\t\t\t// reset state if got unauthorized status code\n\t\t\tstate.sessionToken.update({ sessionToken: '' });\n\t\t\tstate.user.update({});\n\t\t\treturn;\n\t\t}\n\t\tconst body = await res?.json();\n\t\tif (body) {\n\t\t\tconst { sessionJwt, refreshJwt, user, ...cookieParams } = extractJWTResponse(body);\n\t\t\t// Persist token\n\t\t\tif (options.persistTokens) {\n\t\t\t\tsetDescopeTokens(sessionJwt, refreshJwt, cookieParams);\n\t\t\t}\n\n\t\t\t// Update state\n\t\t\tif (sessionJwt) {\n\t\t\t\tstate.sessionToken.update({ sessionToken: sessionJwt });\n\t\t\t}\n\t\t\tif (user) {\n\t\t\t\tstate.user.update(user);\n\t\t\t}\n\n\t\t\t// Auto refresh\n\t\t\tif (sessionJwt && refreshJwt && options.autoRefresh) {\n\t\t\t\tsetRefreshSessionTimeout(refreshFn, sessionJwt, refreshJwt);\n\t\t\t}\n\t\t}\n\t} catch (ex) {\n\t\t// istanbul ignore next\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error('Could not set tokens from body', ex);\n\t}\n}\n\n/** Return the refresh token from the localStorage. Not for production usage because refresh token will not be saved in localStorage. */\nexport function getRefreshToken() {\n\treturn localStorage ? localStorage?.getItem(refreshStorageKey) : '';\n}\n\n/** Remove both the localStorage refresh JWT and the session cookie */\nexport function clearTokens() {\n\tif (localStorage) {\n\t\tlocalStorage.removeItem(refreshStorageKey);\n\t}\n\tCookies.remove(sessionCookieName);\n}\n","import { CoreSdk } from './types';\n\n/** Constructs a higher level WebAuthn API that wraps the functions from code-js-sdk */\nconst createWebAuthn = (sdk: CoreSdk) => ({\n\tasync signUp(identifier: string, name: string) {\n\t\tconst startResponse = await sdk.webauthn.signUp.start(identifier, window.location.origin, name);\n\t\tconst createResponse = await create(startResponse.data.options);\n\t\tconst finishResponse = await sdk.webauthn.signUp.finish(\n\t\t\tstartResponse.data.transactionId,\n\t\t\tcreateResponse\n\t\t);\n\t\treturn finishResponse;\n\t},\n\n\tasync signIn(identifier: string) {\n\t\tconst startResponse = await sdk.webauthn.signIn.start(identifier, window.location.origin);\n\t\tconst getResponse = await get(startResponse.data.options);\n\t\tconst finishResponse = await sdk.webauthn.signIn.finish(\n\t\t\tstartResponse.data.transactionId,\n\t\t\tgetResponse\n\t\t);\n\t\treturn finishResponse;\n\t},\n\n\tasync signUpOrIn(identifier: string) {\n\t\tconst startResponse = await sdk.webauthn.signUpOrIn.start(identifier, window.location.origin);\n\t\tif (startResponse.data?.create) {\n\t\t\tconst createResponse = await create(startResponse.data.options);\n\t\t\tconst finishResponse = await sdk.webauthn.signUp.finish(\n\t\t\t\tstartResponse.data.transactionId,\n\t\t\t\tcreateResponse\n\t\t\t);\n\t\t\treturn finishResponse;\n\t\t} else {\n\t\t\tconst getResponse = await get(startResponse.data.options);\n\t\t\tconst finishResponse = await sdk.webauthn.signIn.finish(\n\t\t\t\tstartResponse.data.transactionId,\n\t\t\t\tgetResponse\n\t\t\t);\n\t\t\treturn finishResponse;\n\t\t}\n\t},\n\n\tasync update(identifier: string, token: string) {\n\t\tconst startResponse = await sdk.webauthn.update.start(\n\t\t\tidentifier,\n\t\t\twindow.location.origin,\n\t\t\ttoken\n\t\t);\n\t\tconst createResponse = await create(startResponse.data.options);\n\t\tconst finishResponse = await sdk.webauthn.update.finish(\n\t\t\tstartResponse.data.transactionId,\n\t\t\tcreateResponse\n\t\t);\n\t\treturn finishResponse;\n\t},\n\n\t/** Helper functions for working with WebAuthn browser APIs using JSON data */\n\thelpers: {\n\t\t/** Wraps the navigation.credentials.create call to translate JSON inputs and outputs */\n\t\tcreate,\n\t\t/** Wraps the navigation.credentials.get call to translate JSON inputs and outputs */\n\t\tget\n\t}\n});\n\n// Helpers functions\n\nasync function create(options: string): Promise<string> {\n\tconst createOptions = decodeCreateOptions(options);\n\tconst createResponse = (await navigator.credentials.create(\n\t\tcreateOptions\n\t)) as AttestationPublicKeyCredential;\n\treturn encodeCreateResponse(createResponse);\n}\n\nasync function get(options: string): Promise<string> {\n\tconst getOptions = decodeGetOptions(options);\n\tconst getResponse = (await navigator.credentials.get(getOptions)) as AssertionPublicKeyCredential;\n\treturn encodeGetResponse(getResponse);\n}\n\n// Conversion of data structures for Create/Attestation/Register ceremony\n\ntype AttestationPublicKeyCredential = PublicKeyCredential & {\n\tresponse: AuthenticatorAttestationResponse;\n};\n\nfunction decodeCreateOptions(value: string): CredentialCreationOptions {\n\tconst options = JSON.parse(value);\n\toptions.publicKey.challenge = decodeBase64Url(options.publicKey.challenge);\n\toptions.publicKey.user.id = decodeBase64Url(options.publicKey.user.id);\n\toptions.publicKey.excludeCredentials?.forEach((item: any) => {\n\t\titem.id = decodeBase64Url(item.id);\n\t});\n\treturn options;\n}\n\nfunction encodeCreateResponse(credential: AttestationPublicKeyCredential): string {\n\treturn JSON.stringify({\n\t\t...credential,\n\t\trawId: encodeBase64Url(credential.rawId),\n\t\tresponse: {\n\t\t\t...credential.response,\n\t\t\tattestationObject: encodeBase64Url(credential.response.attestationObject),\n\t\t\tclientDataJSON: encodeBase64Url(credential.response.clientDataJSON)\n\t\t}\n\t});\n}\n\n// Conversion of data structures for Get/Assertion/Login ceremony\n\ntype AssertionPublicKeyCredential = PublicKeyCredential & {\n\tresponse: AuthenticatorAssertionResponse;\n};\n\nfunction decodeGetOptions(value: string): CredentialRequestOptions {\n\tconst options = JSON.parse(value);\n\toptions.publicKey.challenge = decodeBase64Url(options.publicKey.challenge);\n\toptions.publicKey.allowCredentials?.forEach((item: any) => {\n\t\titem.id = decodeBase64Url(item.id);\n\t});\n\treturn options;\n}\n\nfunction encodeGetResponse(credential: AssertionPublicKeyCredential): string {\n\treturn JSON.stringify({\n\t\t...credential,\n\t\trawId: encodeBase64Url(credential.rawId),\n\t\tresponse: {\n\t\t\t...credential.response,\n\t\t\tauthenticatorData: encodeBase64Url(credential.response.authenticatorData),\n\t\t\tclientDataJSON: encodeBase64Url(credential.response.clientDataJSON),\n\t\t\tsignature: encodeBase64Url(credential.response.signature),\n\t\t\tuserHandle: credential.response.userHandle\n\t\t\t\t? encodeBase64Url(credential.response.userHandle)\n\t\t\t\t: undefined\n\t\t}\n\t});\n}\n\n// Conversion between ArrayBuffers and Base64Url strings\n\nfunction decodeBase64Url(value: string): ArrayBufferLike {\n\tconst base64 = value.replace(/_/g, '/').replace(/-/g, '+');\n\treturn Uint8Array.from(atob(base64), (c) => c.charCodeAt(0)).buffer;\n}\n\nfunction encodeBase64Url(value: ArrayBufferLike): string {\n\tconst base64 = btoa(String.fromCharCode.apply(null, new Uint8Array(value)));\n\treturn base64.replace(/\\//g, '_').replace(/\\+/g, '-').replace(/=/g, '');\n}\n\n// Exports\n\nexport default createWebAuthn;\n","import createSdk, { UserResponse } from '@descope/core-js-sdk';\nimport { VISITOR_REQUEST_ID_PARAM, VISITOR_SESSION_ID_PARAM } from './constants';\nimport fp from './fp';\nimport State from './state';\nimport { clearTokens, getRefreshToken, handleDescopeTokens } from './tokens';\nimport { CoreSdk, TokensOptions } from './types';\nimport createWebAuthn from './webauthn';\n\ndeclare const BUILD_VERSION: string;\n\n// this sdk can be used in SSR apps\nconst isBrowser = typeof window !== 'undefined';\n\nconst prepareQueryParams = (\n\tqueryParams\n): {\n\t[key: string]: string;\n} => ({\n\t...queryParams,\n\t[VISITOR_SESSION_ID_PARAM]: sessionStorage.getItem(VISITOR_SESSION_ID_PARAM) || '',\n\t[VISITOR_REQUEST_ID_PARAM]: sessionStorage.getItem(VISITOR_REQUEST_ID_PARAM) || ''\n});\n\n/** Configuration arguments which include the Descope core SDK args and fingerprint configuration.\n * Also specifies token options - if we should persist tokens from responses automatically and auto-refresh.\n */\nexport type WebJSSDKArgs = Parameters<typeof createSdk>[0] &\n\tTokensOptions & {\n\t\t// FingerprintJS API key\n\t\tfpKey?: string;\n\t};\n\n/**\n * Wrapper around DescopeSDK to handle fingerprint.js and storage of JWT tokens in cookies and localStorage,\n * It also sets a timer to refresh session JWT automatically.\n */\nexport default ({ autoRefresh = true, persistTokens = true, ...args }: WebJSSDKArgs) => {\n\t// istanbul ignore next\n\tif (!isBrowser) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t'Fingerprint is a client side only capability and will not work when running in the server'\n\t\t);\n\t} else {\n\t\tfp(args.fpKey)\n\t\t\t.get()\n\t\t\t.catch(() => null);\n\t}\n\n\tconst sdkConfig = args;\n\n\t// we defer defining the hook implementations themselves until the webSdk is created later, so that the hooks\n\t// call the actual webSdk functions rather than those from coreSdk, and so that the sdk functions used by\n\t// the hooks can be mocked\n\tlet beforeRequestHook: typeof sdkConfig.hooks.beforeRequest;\n\tlet afterRequestHook: typeof sdkConfig.hooks.afterRequest;\n\n\tconst sessionToken = new State<{ sessionToken: string }>({ sessionToken: '' });\n\tconst user = new State<UserResponse>({} as UserResponse);\n\n\tsdkConfig.hooks = {\n\t\tbeforeRequest: (config) => {\n\t\t\treturn beforeRequestHook?.(config);\n\t\t},\n\t\tafterRequest: (req, res) => {\n\t\t\treturn afterRequestHook?.(req, res);\n\t\t}\n\t};\n\n\tconst coreSdk = createSdk(sdkConfig);\n\n\tconst webSdk = {\n\t\t...coreSdk,\n\t\twebauthn: createWebAuthn(coreSdk),\n\t\tonSessionTokenChange: (cb: (sessionToken: string) => void) => {\n\t\t\t// wrapper callback converts from the state object to sessionToken string\n\t\t\tconst bcWrapper = ({ sessionToken }) => {\n\t\t\t\tcb(sessionToken);\n\t\t\t};\n\n\t\t\t// run callback with current state for a case that the state's consumer calls 'subscribe' after state was already updated\n\t\t\tconst currentSessionToken = sessionToken.current?.sessionToken;\n\t\t\tif (currentSessionToken) {\n\t\t\t\tcb(currentSessionToken);\n\t\t\t}\n\t\t\treturn sessionToken.subscribe(bcWrapper);\n\t\t},\n\t\tonUserChange: (cb: (user: UserResponse) => void) => {\n\t\t\tconst bcWrapper = (user: UserResponse) => {\n\t\t\t\tcb(user);\n\t\t\t};\n\t\t\tconst currUser = user.current;\n\t\t\t// run callback with current state for a case that the state's consumer calls 'subscribe' after state was already updated\n\t\t\tif (currUser && Object.entries(currUser).length > 0) {\n\t\t\t\tcb(currUser);\n\t\t\t}\n\n\t\t\treturn user.subscribe(bcWrapper);\n\t\t}\n\t};\n\n\tif (autoRefresh) {\n\t\twebSdk.logout = (...args: Parameters<CoreSdk['logout']>) => {\n\t\t\tconst refreshToken = getRefreshToken();\n\t\t\t// Make it easier for Descoper to just call logout without parameters if this is dev env and refresh is stored in localStorage\n\t\t\tconst token = args?.shift();\n\t\t\tconst logoutArgs = [token || refreshToken, ...args];\n\t\t\tconst res = coreSdk.logout(...logoutArgs);\n\t\t\tclearTokens();\n\t\t\treturn res;\n\t\t};\n\t}\n\n\tbeforeRequestHook = (config) => {\n\t\tconfig.queryParams = prepareQueryParams(config.queryParams);\n\t\tif (!config.token && persistTokens) {\n\t\t\tconfig.token = getRefreshToken();\n\t\t}\n\t\tconfig.headers = {\n\t\t\t...config.headers,\n\t\t\t'x-descope-sdk-name': 'web-js',\n\t\t\t'x-descope-sdk-version': BUILD_VERSION\n\t\t};\n\t\treturn config;\n\t};\n\n\tif (autoRefresh || persistTokens) {\n\t\tafterRequestHook = (req, res) => {\n\t\t\thandleDescopeTokens(\n\t\t\t\twebSdk.refresh,\n\t\t\t\tres,\n\t\t\t\t{ sessionToken, user },\n\t\t\t\t{ autoRefresh, persistTokens }\n\t\t\t);\n\t\t};\n\t}\n\n\tif (autoRefresh) {\n\t\t// refresh on init is done after afterRequestHook is configured\n\t\twebSdk.refresh();\n\t}\n\n\treturn webSdk;\n};\n"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","value","get","__classPrivateFieldSet","set","message","Error","name","r","window","atob","bind","String","replace","o","a","c","charAt","fromCharCode","header","JSON","parse","decodeURIComponent","charCodeAt","toString","toUpperCase","split","HASH_UNDEFINED","funcTag","genTag","reIsDeepProp","reIsPlainProp","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","freeGlobal","global","freeSelf","self","root","Function","uid","arrayProto","Array","funcProto","objectProto","coreJsData","maskSrcKey","exec","keys","IE_PROTO","funcToString","objectToString","reIsNative","RegExp","Symbol","splice","Map","getNative","nativeCreate","symbolProto","undefined","symbolToString","Hash","entries","index","clear","entry","ListCache","MapCache","assocIndexOf","array","key","other","baseGet","object","path","isArray","type","isSymbol","test","isKey","stringToPath","toKey","baseIsNative","isObject","func","pattern","tag","isFunction","result","isHostObject","toSource","getMapData","map","data","__data__","getValue","pop","push","hash","string","memoize","baseToString","match","number","quote","resolver","memoized","args","cache","Cache","isObjectLike","h","lodash_get","defaultValue","email","phone","start","finish","l","delete","post","put","m","headers","fromEntries","Headers","stringify","body","Body","url","Url","method","Method","title","Title","status","Status","build","flatMap","join","reduce","from","b","I","Authorization","y","baseUrl","projectId","baseConfig","logger","hooks","cookiePolicy","fetch","async","log","ok","text","Promise","resolve","json","statusText","v","beforeRequest","u","queryParams","d","g","token","URL","search","URLSearchParams","baseHeaders","credentials","afterRequest","clone","k","O","tenants","j","exp","Date","getTime","x","w","U","P","code","response","error","R","q","validate","forEach","$","M","E","S","T","A","z","J","L","H","C","N","Z","exchange","B","K","F","G","_","sms","whatsapp","waiting","running","completed","failed","signUp","signIn","verify","updatePhone","Q","V","W","X","Y","ee","externalId","loginOptions","user","signUpOrIn","update","te","ne","se","ae","ie","oe","re","ce","URI","crossDevice","waitForSession","pollingIntervalMs","timeoutMs","Math","max","min","setInterval","pendingRef","clearInterval","clearTimeout","setTimeout","pe","ue","facebook","github","google","microsoft","gitlab","apple","de","ge","redirect","provider","redirectURL","location","href","le","he","me","flowId","options","next","executionId","stepId","interactionId","input","ve","fe","be","tenant","Ie","ye","ke","Oe","je","xe","we","Ue","Pe","Re","qe","$e","origin","transactionId","Me","Se","Te","Ee","accessKey","otp","magicLink","oauth","saml","totp","webauthn","flow","refresh","logout","deleteCookies","isJwtExpired","getJwtPermissions","getJwtRoles","httpClient","DeliveryMethods","VISITOR_SESSION_ID_PARAM","VISITOR_REQUEST_ID_PARAM","catch","maxRetries","shouldRetry","baseDelay","maxDelay","pow","then","scriptUrlPattern","apiKey","startedAt","finishedAt","document","blockedURI","protocol","slice","addEventListener","removeEventListener","encodeURIComponent","createElement","parentNode","removeChild","head","getElementsByTagName","onload","onerror","src","appendChild","getOwnPropertyDescriptor","configurable","writable","load","ldi","attempts","getQueryParam","param","Proxy","searchParams","prop","fp","fpKey","agentP","sessionId","sessionStorage","getItem","now","random","substring","setItem","agent","res","linkedId","requestId","ex","FB_DEBUG","console","State","constructor","init","_State_state","_State_subscribers","_State_token","current","newState","nextState","aProperties","getOwnPropertyNames","bProperties","propName","compare","prevState","freeze","values","cb","subscribe","currentToken","_State_instances","_State_unsubscribe","unsubscribeAll","target","source","api","converter","defaultAttributes","attributes","expires","toUTCString","escape","stringifiedAttributes","attributeName","cookie","write","create","cookies","jar","parts","foundKey","read","remove","withAttributes","withConverter","refreshStorageKey","refreshTimeoutIds","setRefreshSessionTimeout","refreshFn","sessionJwt","refreshJWT","sessionExpiration","claims","getSessionExpiration","previousTimeout","refreshTimeout","timeoutId","setDescopeTokens","refreshJwt","cookieParams","cookiePath","cookieDomain","cookieExpiration","Cookies","domain","sameSite","secure","setSessionToken","localStorage","setRefreshToken","getRefreshToken","createOptions","publicKey","challenge","decodeBase64Url","id","_a","excludeCredentials","item","decodeCreateOptions","createResponse","navigator","credential","rawId","encodeBase64Url","attestationObject","clientDataJSON","getOptions","allowCredentials","decodeGetOptions","getResponse","authenticatorData","signature","userHandle","base64","Uint8Array","buffer","btoa","isBrowser","autoRefresh","persistTokens","warn","sdkConfig","beforeRequestHook","afterRequestHook","sessionToken","config","req","coreSdk","createSdk","webSdk","sdk","identifier","startResponse","helpers","onSessionTokenChange","currentSessionToken","onUserChange","currUser","refreshToken","logoutArgs","shift","removeItem","authInfo","extractJWTResponse","handleDescopeTokens"],"mappings":"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"}