@auth0/auth0-spa-js 1.22.3 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -41
- package/dist/auth0-spa-js.development.js +996 -4901
- package/dist/auth0-spa-js.development.js.map +1 -1
- package/dist/auth0-spa-js.production.esm.js +1 -1
- package/dist/auth0-spa-js.production.esm.js.map +1 -1
- package/dist/auth0-spa-js.production.js +1 -1
- package/dist/auth0-spa-js.production.js.map +1 -1
- package/dist/lib/auth0-spa-js.cjs.js +1768 -5532
- package/dist/lib/auth0-spa-js.cjs.js.map +1 -1
- package/dist/typings/Auth0Client.d.ts +21 -41
- package/dist/typings/Auth0Client.utils.d.ts +26 -0
- package/dist/typings/cache/cache-manager.d.ts +11 -7
- package/dist/typings/cache/shared.d.ts +16 -11
- package/dist/typings/constants.d.ts +0 -7
- package/dist/typings/errors.d.ts +0 -4
- package/dist/typings/global.d.ts +125 -167
- package/dist/typings/index.d.ts +3 -13
- package/dist/typings/transaction-manager.d.ts +1 -1
- package/dist/typings/utils.d.ts +8 -7
- package/dist/typings/version.d.ts +1 -1
- package/package.json +35 -36
- package/src/Auth0Client.ts +407 -562
- package/src/Auth0Client.utils.ts +73 -0
- package/src/cache/cache-localstorage.ts +1 -1
- package/src/cache/cache-manager.ts +58 -29
- package/src/cache/shared.ts +29 -17
- package/src/constants.ts +0 -17
- package/src/errors.ts +10 -14
- package/src/global.ts +132 -183
- package/src/http.ts +0 -5
- package/src/index.ts +15 -14
- package/src/jwt.ts +3 -3
- package/src/storage.ts +1 -1
- package/src/transaction-manager.ts +1 -1
- package/src/utils.ts +37 -42
- package/src/version.ts +1 -1
- package/src/worker/token.worker.ts +4 -3
- package/dist/typings/index.cjs.d.ts +0 -5
- package/dist/typings/user-agent.d.ts +0 -1
- package/src/index.cjs.ts +0 -23
- package/src/user-agent.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth0-spa-js.cjs.js","sources":["../../node_modules/tslib/tslib.es6.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/native-symbol.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/native-weak-map.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/to-string-tag-support.js","../../node_modules/core-js/internals/classof.js","../../node_modules/core-js/internals/to-string.js","../../node_modules/core-js/internals/is-regexp.js","../../node_modules/core-js/internals/not-a-regexp.js","../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../node_modules/core-js/modules/es.string.starts-with.js","../../node_modules/core-js/internals/entry-unbind.js","../../node_modules/core-js/es/string/starts-with.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/does-not-exceed-safe-integer.js","../../node_modules/core-js/internals/create-property.js","../../node_modules/core-js/internals/is-constructor.js","../../node_modules/core-js/internals/array-species-constructor.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-method-has-species-support.js","../../node_modules/core-js/modules/es.array.concat.js","../../node_modules/core-js/internals/object-to-string.js","../../node_modules/core-js/modules/es.object.to-string.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/array-slice-simple.js","../../node_modules/core-js/internals/object-get-own-property-names-external.js","../../node_modules/core-js/internals/well-known-symbol-wrapped.js","../../node_modules/core-js/internals/path.js","../../node_modules/core-js/internals/define-well-known-symbol.js","../../node_modules/core-js/internals/symbol-define-to-primitive.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/modules/es.symbol.constructor.js","../../node_modules/core-js/internals/native-symbol-registry.js","../../node_modules/core-js/modules/es.symbol.for.js","../../node_modules/core-js/modules/es.symbol.key-for.js","../../node_modules/core-js/internals/function-apply.js","../../node_modules/core-js/internals/array-slice.js","../../node_modules/core-js/modules/es.json.stringify.js","../../node_modules/core-js/modules/es.object.get-own-property-symbols.js","../../node_modules/core-js/modules/es.symbol.async-iterator.js","../../node_modules/core-js/modules/es.symbol.description.js","../../node_modules/core-js/modules/es.symbol.has-instance.js","../../node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","../../node_modules/core-js/modules/es.symbol.iterator.js","../../node_modules/core-js/modules/es.symbol.match.js","../../node_modules/core-js/modules/es.symbol.match-all.js","../../node_modules/core-js/modules/es.symbol.replace.js","../../node_modules/core-js/modules/es.symbol.search.js","../../node_modules/core-js/modules/es.symbol.species.js","../../node_modules/core-js/modules/es.symbol.split.js","../../node_modules/core-js/modules/es.symbol.to-primitive.js","../../node_modules/core-js/modules/es.symbol.to-string-tag.js","../../node_modules/core-js/modules/es.symbol.unscopables.js","../../node_modules/core-js/modules/es.json.to-string-tag.js","../../node_modules/core-js/modules/es.math.to-string-tag.js","../../node_modules/core-js/modules/es.reflect.to-string-tag.js","../../node_modules/core-js/es/symbol/index.js","../../node_modules/core-js/internals/string-multibyte.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/create-iterator-constructor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/define-iterator.js","../../node_modules/core-js/modules/es.string.iterator.js","../../node_modules/core-js/internals/iterator-close.js","../../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../../node_modules/core-js/internals/is-array-iterator-method.js","../../node_modules/core-js/internals/get-iterator-method.js","../../node_modules/core-js/internals/get-iterator.js","../../node_modules/core-js/internals/array-from.js","../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../node_modules/core-js/modules/es.array.from.js","../../node_modules/core-js/es/array/from.js","../../node_modules/core-js/internals/array-buffer-native.js","../../node_modules/core-js/internals/array-buffer-view-core.js","../../node_modules/core-js/internals/a-constructor.js","../../node_modules/core-js/internals/species-constructor.js","../../node_modules/core-js/internals/typed-array-species-constructor.js","../../node_modules/core-js/modules/es.typed-array.slice.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/modules/es.array.includes.js","../../node_modules/core-js/es/array/includes.js","../../node_modules/core-js/modules/es.string.includes.js","../../node_modules/core-js/es/string/includes.js","../../node_modules/core-js/modules/es.array.iterator.js","../../node_modules/core-js/internals/array-buffer-non-extensible.js","../../node_modules/core-js/internals/object-is-extensible.js","../../node_modules/core-js/internals/freezing.js","../../node_modules/core-js/internals/internal-metadata.js","../../node_modules/core-js/internals/iterate.js","../../node_modules/core-js/internals/an-instance.js","../../node_modules/core-js/internals/inherit-if-required.js","../../node_modules/core-js/internals/collection.js","../../node_modules/core-js/internals/define-built-ins.js","../../node_modules/core-js/internals/set-species.js","../../node_modules/core-js/internals/collection-strong.js","../../node_modules/core-js/modules/es.set.constructor.js","../../node_modules/core-js/es/set/index.js","../../node_modules/promise-polyfill/src/finally.js","../../node_modules/promise-polyfill/src/allSettled.js","../../node_modules/promise-polyfill/src/index.js","../../node_modules/promise-polyfill/src/polyfill.js","../../node_modules/abortcontroller-polyfill/dist/abortcontroller-polyfill-only.js","../../src/version.ts","../../src/constants.ts","../../src/errors.ts","../../src/utils.ts","../../src/worker/worker.utils.ts","../../src/http.ts","../../src/api.ts","../../src/scope.ts","../../src/cache/shared.ts","../../src/cache/cache-localstorage.ts","../../src/cache/cache-memory.ts","../../src/cache/cache-manager.ts","../../src/transaction-manager.ts","../../src/jwt.ts","../../src/storage.ts","../../src/user-agent.ts","../../src/promise-utils.ts","../../src/cache/key-manifest.ts","../../src/Auth0Client.ts","../../src/index.ts","../../src/index.cjs.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","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es-x/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es-x/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.24.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.24.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es-x/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es-x/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es-x/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es-x/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es-x/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es-x/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n","require('../../modules/es.string.starts-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'startsWith');\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es-x/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es-x/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es-x/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es-x/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","/* eslint-disable es-x/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\n/* eslint-disable es-x/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/native-symbol-registry');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es-x/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","var $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","var getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","require('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es-x/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es-x/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es-x/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es-x/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es-x/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es-x/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es-x/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","require('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","// eslint-disable-next-line es-x/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray)));\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es-x/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","require('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","require('../../modules/es.string.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/define-iterator');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es-x/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es-x/no-object-isextensible, es-x/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","require('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.set');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","/**\n * @this {Promise}\n */\nfunction finallyConstructor(callback) {\n var constructor = this.constructor;\n return this.then(\n function(value) {\n // @ts-ignore\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n // @ts-ignore\n return constructor.resolve(callback()).then(function() {\n // @ts-ignore\n return constructor.reject(reason);\n });\n }\n );\n}\n\nexport default finallyConstructor;\n","function allSettled(arr) {\n var P = this;\n return new P(function(resolve, reject) {\n if (!(arr && typeof arr.length !== 'undefined')) {\n return reject(\n new TypeError(\n typeof arr +\n ' ' +\n arr +\n ' is not iterable(cannot read property Symbol(Symbol.iterator))'\n )\n );\n }\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n function(e) {\n args[i] = { status: 'rejected', reason: e };\n if (--remaining === 0) {\n resolve(args);\n }\n }\n );\n return;\n }\n }\n args[i] = { status: 'fulfilled', value: val };\n if (--remaining === 0) {\n resolve(args);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n}\n\nexport default allSettled;\n","import promiseFinally from './finally';\nimport allSettled from './allSettled';\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction isArray(x) {\n return Boolean(x && typeof x.length !== 'undefined');\n}\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n return function() {\n fn.apply(thisArg, arguments);\n };\n}\n\n/**\n * @constructor\n * @param {Function} fn\n */\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n /** @type {!number} */\n this._state = 0;\n /** @type {!boolean} */\n this._handled = false;\n /** @type {Promise|undefined} */\n this._value = undefined;\n /** @type {!Array<!Function>} */\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\n/**\n * @constructor\n */\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n // @ts-ignore\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = promiseFinally;\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.all accepts an array'));\n }\n\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.allSettled = allSettled;\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.race accepts an array'));\n }\n\n for (var i = 0, len = arr.length; i < len; i++) {\n Promise.resolve(arr[i]).then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n // @ts-ignore\n (typeof setImmediate === 'function' &&\n function(fn) {\n // @ts-ignore\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\nexport default Promise;\n","import Promise from './index';\nimport promiseFinally from './finally';\nimport allSettled from './allSettled';\n\n/** @suppress {undefinedVars} */\nvar globalNS = (function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n})();\n\n// Expose the polyfill if Promise is undefined or set to a\n// non-function value. The latter can be due to a named HTMLElement\n// being exposed by browsers for legacy reasons.\n// https://github.com/taylorhakes/promise-polyfill/issues/114\nif (typeof globalNS['Promise'] !== 'function') {\n globalNS['Promise'] = Promise;\n} else {\n if (!globalNS.Promise.prototype['finally']) {\n globalNS.Promise.prototype['finally'] = promiseFinally;\n } \n if (!globalNS.Promise.allSettled) {\n globalNS.Promise.allSettled = allSettled;\n }\n}\n","(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n}((function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n var Emitter = /*#__PURE__*/function () {\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n Object.defineProperty(this, 'listeners', {\n value: {},\n writable: true,\n configurable: true\n });\n }\n\n _createClass(Emitter, [{\n key: \"addEventListener\",\n value: function addEventListener(type, callback, options) {\n if (!(type in this.listeners)) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push({\n callback: callback,\n options: options\n });\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, callback) {\n if (!(type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[type];\n\n for (var i = 0, l = stack.length; i < l; i++) {\n if (stack[i].callback === callback) {\n stack.splice(i, 1);\n return;\n }\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (!(event.type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[event.type];\n var stackToCall = stack.slice();\n\n for (var i = 0, l = stackToCall.length; i < l; i++) {\n var listener = stackToCall[i];\n\n try {\n listener.callback.call(this, event);\n } catch (e) {\n Promise.resolve().then(function () {\n throw e;\n });\n }\n\n if (listener.options && listener.options.once) {\n this.removeEventListener(event.type, listener.callback);\n }\n }\n\n return !event.defaultPrevented;\n }\n }]);\n\n return Emitter;\n }();\n\n var AbortSignal = /*#__PURE__*/function (_Emitter) {\n _inherits(AbortSignal, _Emitter);\n\n var _super = _createSuper(AbortSignal);\n\n function AbortSignal() {\n var _this;\n\n _classCallCheck(this, AbortSignal);\n\n _this = _super.call(this); // Some versions of babel does not transpile super() correctly for IE <= 10, if the parent\n // constructor has failed to run, then \"this.listeners\" will still be undefined and then we call\n // the parent constructor directly instead as a workaround. For general details, see babel bug:\n // https://github.com/babel/babel/issues/3041\n // This hack was added as a fix for the issue described here:\n // https://github.com/Financial-Times/polyfill-library/pull/59#issuecomment-477558042\n\n if (!_this.listeners) {\n Emitter.call(_assertThisInitialized(_this));\n } // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController().signal) to be [] for compat with the native impl\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'aborted', {\n value: false,\n writable: true,\n configurable: true\n });\n Object.defineProperty(_assertThisInitialized(_this), 'onabort', {\n value: null,\n writable: true,\n configurable: true\n });\n return _this;\n }\n\n _createClass(AbortSignal, [{\n key: \"toString\",\n value: function toString() {\n return '[object AbortSignal]';\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (event.type === 'abort') {\n this.aborted = true;\n\n if (typeof this.onabort === 'function') {\n this.onabort.call(this, event);\n }\n }\n\n _get(_getPrototypeOf(AbortSignal.prototype), \"dispatchEvent\", this).call(this, event);\n }\n }]);\n\n return AbortSignal;\n }(Emitter);\n var AbortController = /*#__PURE__*/function () {\n function AbortController() {\n _classCallCheck(this, AbortController);\n\n // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController()) to be [] for compat with the native impl\n Object.defineProperty(this, 'signal', {\n value: new AbortSignal(),\n writable: true,\n configurable: true\n });\n }\n\n _createClass(AbortController, [{\n key: \"abort\",\n value: function abort() {\n var event;\n\n try {\n event = new Event('abort');\n } catch (e) {\n if (typeof document !== 'undefined') {\n if (!document.createEvent) {\n // For Internet Explorer 8:\n event = document.createEventObject();\n event.type = 'abort';\n } else {\n // For Internet Explorer 11:\n event = document.createEvent('Event');\n event.initEvent('abort', false, false);\n }\n } else {\n // Fallback where document isn't available:\n event = {\n type: 'abort',\n bubbles: false,\n cancelable: false\n };\n }\n }\n\n this.signal.dispatchEvent(event);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return '[object AbortController]';\n }\n }]);\n\n return AbortController;\n }();\n\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n // These are necessary to make sure that we get correct output for:\n // Object.prototype.toString.call(new AbortController())\n AbortController.prototype[Symbol.toStringTag] = 'AbortController';\n AbortSignal.prototype[Symbol.toStringTag] = 'AbortSignal';\n }\n\n function polyfillNeeded(self) {\n if (self.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n console.log('__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill');\n return true;\n } // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // so the below feature detection needs the !self.AbortController part.\n // The Request.prototype check is also needed because Safari versions 11.1.2\n // up to and including 12.1.x has a window.AbortController present but still\n // does NOT correctly implement abortable fetch:\n // https://bugs.webkit.org/show_bug.cgi?id=174980#c2\n\n\n return typeof self.Request === 'function' && !self.Request.prototype.hasOwnProperty('signal') || !self.AbortController;\n }\n\n (function (self) {\n\n if (!polyfillNeeded(self)) {\n return;\n }\n\n self.AbortController = AbortController;\n self.AbortSignal = AbortSignal;\n })(typeof self !== 'undefined' ? self : global);\n\n})));\n","export default '1.22.3';\n","import { PopupConfigOptions } from './global';\nimport version from './version';\n\n/**\n * @ignore\n */\nexport const DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS = 60;\n\n/**\n * @ignore\n */\nexport const DEFAULT_POPUP_CONFIG_OPTIONS: PopupConfigOptions = {\n timeoutInSeconds: DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS\n};\n\n/**\n * @ignore\n */\nexport const DEFAULT_SILENT_TOKEN_RETRY_COUNT = 3;\n\n/**\n * @ignore\n */\nexport const CLEANUP_IFRAME_TIMEOUT_IN_SECONDS = 2;\n\n/**\n * @ignore\n */\nexport const DEFAULT_FETCH_TIMEOUT_MS = 10000;\n\nexport const CACHE_LOCATION_MEMORY = 'memory';\nexport const CACHE_LOCATION_LOCAL_STORAGE = 'localstorage';\n\n/**\n * @ignore\n */\nexport const MISSING_REFRESH_TOKEN_ERROR_MESSAGE = 'Missing Refresh Token';\n\n/**\n * @ignore\n */\nexport const INVALID_REFRESH_TOKEN_ERROR_MESSAGE = 'invalid refresh token';\n\n/**\n * @ignore\n */\nexport const DEFAULT_SCOPE = 'openid profile email';\n\n/**\n * A list of errors that can be issued by the authorization server which the\n * user can recover from by signing in interactively.\n * https://openid.net/specs/openid-connect-core-1_0.html#AuthError\n * @ignore\n */\nexport const RECOVERABLE_ERRORS = [\n 'login_required',\n 'consent_required',\n 'interaction_required',\n 'account_selection_required',\n // Strictly speaking the user can't recover from `access_denied` - but they\n // can get more information about their access being denied by logging in\n // interactively.\n 'access_denied'\n];\n\n/**\n * @ignore\n */\nexport const DEFAULT_SESSION_CHECK_EXPIRY_DAYS = 1;\n\n/**\n * @ignore\n */\nexport const DEFAULT_AUTH0_CLIENT = {\n name: 'auth0-spa-js',\n version: version\n};\n\nexport const DEFAULT_NOW_PROVIDER = () => Date.now();\n","/**\n * For context on the istanbul ignore statements below, see:\n * https://github.com/gotwarlost/istanbul/issues/690\n */\n\nimport { valueOrEmptyString } from './utils';\n\n/**\n * Thrown when network requests to the Auth server fail.\n */\nexport class GenericError extends Error {\n /* istanbul ignore next */\n constructor(public error: string, public error_description: string) {\n super(error_description);\n Object.setPrototypeOf(this, GenericError.prototype);\n }\n\n static fromPayload({\n error,\n error_description\n }: {\n error: string;\n error_description: string;\n }) {\n return new GenericError(error, error_description);\n }\n}\n\n/**\n * Thrown when handling the redirect callback fails, will be one of Auth0's\n * Authentication API's Standard Error Responses: https://auth0.com/docs/api/authentication?javascript#standard-error-responses\n */\nexport class AuthenticationError extends GenericError {\n /* istanbul ignore next */\n constructor(\n error: string,\n error_description: string,\n public state: string,\n public appState: any = null\n ) {\n super(error, error_description);\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n }\n}\n\n/**\n * Thrown when silent auth times out (usually due to a configuration issue) or\n * when network requests to the Auth server timeout.\n */\nexport class TimeoutError extends GenericError {\n /* istanbul ignore next */\n constructor() {\n super('timeout', 'Timeout');\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, TimeoutError.prototype);\n }\n}\n\n/**\n * Error thrown when the login popup times out (if the user does not complete auth)\n */\nexport class PopupTimeoutError extends TimeoutError {\n /* istanbul ignore next */\n constructor(public popup: Window) {\n super();\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PopupTimeoutError.prototype);\n }\n}\n\nexport class PopupCancelledError extends GenericError {\n /* istanbul ignore next */\n constructor(public popup: Window) {\n super('cancelled', 'Popup closed');\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PopupCancelledError.prototype);\n }\n}\n\n/**\n * Error thrown when the token exchange results in a `mfa_required` error\n */\nexport class MfaRequiredError extends GenericError {\n /* istanbul ignore next */\n constructor(\n error: string,\n error_description: string,\n public mfa_token: string\n ) {\n super(error, error_description);\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, MfaRequiredError.prototype);\n }\n}\n\nexport class MissingRefreshTokenError extends GenericError {\n /* istanbul ignore next */\n constructor(public audience: string, public scope: string) {\n super(\n 'missing_refresh_token',\n `Missing Refresh Token (audience: '${valueOrEmptyString(audience, [\n 'default'\n ])}', scope: '${valueOrEmptyString(scope)}')`\n );\n Object.setPrototypeOf(this, MissingRefreshTokenError.prototype);\n }\n}\n","import { AuthenticationResult, PopupConfigOptions } from './global';\n\nimport {\n DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS,\n CLEANUP_IFRAME_TIMEOUT_IN_SECONDS\n} from './constants';\n\nimport {\n PopupTimeoutError,\n TimeoutError,\n GenericError,\n PopupCancelledError\n} from './errors';\n\nexport const parseQueryResult = (queryString: string): AuthenticationResult => {\n if (queryString.indexOf('#') > -1) {\n queryString = queryString.substr(0, queryString.indexOf('#'));\n }\n\n const queryParams = queryString.split('&');\n const parsedQuery: Record<string, any> = {};\n\n queryParams.forEach(qp => {\n const [key, val] = qp.split('=');\n parsedQuery[key] = decodeURIComponent(val);\n });\n\n if (parsedQuery.expires_in) {\n parsedQuery.expires_in = parseInt(parsedQuery.expires_in);\n }\n\n return parsedQuery as AuthenticationResult;\n};\n\nexport const runIframe = (\n authorizeUrl: string,\n eventOrigin: string,\n timeoutInSeconds: number = DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS\n) => {\n return new Promise<AuthenticationResult>((res, rej) => {\n const iframe = window.document.createElement('iframe');\n\n iframe.setAttribute('width', '0');\n iframe.setAttribute('height', '0');\n iframe.style.display = 'none';\n\n const removeIframe = () => {\n if (window.document.body.contains(iframe)) {\n window.document.body.removeChild(iframe);\n window.removeEventListener('message', iframeEventHandler, false);\n }\n };\n\n let iframeEventHandler: (e: MessageEvent) => void;\n\n const timeoutSetTimeoutId = setTimeout(() => {\n rej(new TimeoutError());\n removeIframe();\n }, timeoutInSeconds * 1000);\n\n iframeEventHandler = function (e: MessageEvent) {\n if (e.origin != eventOrigin) return;\n if (!e.data || e.data.type !== 'authorization_response') return;\n\n const eventSource = e.source;\n\n if (eventSource) {\n (eventSource as any).close();\n }\n\n e.data.response.error\n ? rej(GenericError.fromPayload(e.data.response))\n : res(e.data.response);\n\n clearTimeout(timeoutSetTimeoutId);\n window.removeEventListener('message', iframeEventHandler, false);\n\n // Delay the removal of the iframe to prevent hanging loading status\n // in Chrome: https://github.com/auth0/auth0-spa-js/issues/240\n setTimeout(removeIframe, CLEANUP_IFRAME_TIMEOUT_IN_SECONDS * 1000);\n };\n\n window.addEventListener('message', iframeEventHandler, false);\n window.document.body.appendChild(iframe);\n iframe.setAttribute('src', authorizeUrl);\n });\n};\n\nexport const openPopup = (url: string) => {\n const width = 400;\n const height = 600;\n const left = window.screenX + (window.innerWidth - width) / 2;\n const top = window.screenY + (window.innerHeight - height) / 2;\n\n return window.open(\n url,\n 'auth0:authorize:popup',\n `left=${left},top=${top},width=${width},height=${height},resizable,scrollbars=yes,status=1`\n );\n};\n\nexport const runPopup = (config: PopupConfigOptions) => {\n return new Promise<AuthenticationResult>((resolve, reject) => {\n let popupEventListener: EventListenerOrEventListenerObject;\n\n // Check each second if the popup is closed triggering a PopupCancelledError\n const popupTimer = setInterval(() => {\n if (config.popup && config.popup.closed) {\n clearInterval(popupTimer);\n clearTimeout(timeoutId);\n window.removeEventListener('message', popupEventListener, false);\n reject(new PopupCancelledError(config.popup));\n }\n }, 1000);\n\n const timeoutId = setTimeout(() => {\n clearInterval(popupTimer);\n reject(new PopupTimeoutError(config.popup));\n window.removeEventListener('message', popupEventListener, false);\n }, (config.timeoutInSeconds || DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS) * 1000);\n\n popupEventListener = function (e: MessageEvent) {\n if (!e.data || e.data.type !== 'authorization_response') {\n return;\n }\n\n clearTimeout(timeoutId);\n clearInterval(popupTimer);\n window.removeEventListener('message', popupEventListener, false);\n config.popup.close();\n\n if (e.data.response.error) {\n return reject(GenericError.fromPayload(e.data.response));\n }\n\n resolve(e.data.response);\n };\n\n window.addEventListener('message', popupEventListener);\n });\n};\n\nexport const getCrypto = () => {\n //ie 11.x uses msCrypto\n return (window.crypto || (window as any).msCrypto) as Crypto;\n};\n\nexport const getCryptoSubtle = () => {\n const crypto = getCrypto();\n //safari 10.x uses webkitSubtle\n return crypto.subtle || (crypto as any).webkitSubtle;\n};\nexport const createRandomString = () => {\n const charset =\n '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.';\n let random = '';\n const randomValues = Array.from(\n getCrypto().getRandomValues(new Uint8Array(43))\n );\n randomValues.forEach(v => (random += charset[v % charset.length]));\n return random;\n};\n\nexport const encode = (value: string) => btoa(value);\nexport const decode = (value: string) => atob(value);\n\nexport const createQueryParams = (params: any) => {\n return Object.keys(params)\n .filter(k => typeof params[k] !== 'undefined')\n .map(k => encodeURIComponent(k) + '=' + encodeURIComponent(params[k]))\n .join('&');\n};\n\nexport const sha256 = async (s: string) => {\n const digestOp: any = getCryptoSubtle().digest(\n { name: 'SHA-256' },\n new TextEncoder().encode(s)\n );\n\n // msCrypto (IE11) uses the old spec, which is not Promise based\n // https://msdn.microsoft.com/en-us/expression/dn904640(v=vs.71)\n // Instead of returning a promise, it returns a CryptoOperation\n // with a result property in it.\n // As a result, the various events need to be handled in the event that we're\n // working in IE11 (hence the msCrypto check). These events just call resolve\n // or reject depending on their intention.\n if ((window as any).msCrypto) {\n return new Promise((res, rej) => {\n digestOp.oncomplete = (e: any) => {\n res(e.target.result);\n };\n\n digestOp.onerror = (e: ErrorEvent) => {\n rej(e.error);\n };\n\n digestOp.onabort = () => {\n rej('The digest operation was aborted');\n };\n });\n }\n\n return await digestOp;\n};\n\nconst urlEncodeB64 = (input: string) => {\n const b64Chars: { [index: string]: string } = { '+': '-', '/': '_', '=': '' };\n return input.replace(/[+/=]/g, (m: string) => b64Chars[m]);\n};\n\n// https://stackoverflow.com/questions/30106476/\nconst decodeB64 = (input: string) =>\n decodeURIComponent(\n atob(input)\n .split('')\n .map(c => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join('')\n );\n\nexport const urlDecodeB64 = (input: string) =>\n decodeB64(input.replace(/_/g, '/').replace(/-/g, '+'));\n\nexport const bufferToBase64UrlEncoded = (input: number[] | Uint8Array) => {\n const ie11SafeInput = new Uint8Array(input);\n return urlEncodeB64(\n window.btoa(String.fromCharCode(...Array.from(ie11SafeInput)))\n );\n};\n\nexport const validateCrypto = () => {\n if (!getCrypto()) {\n throw new Error(\n 'For security reasons, `window.crypto` is required to run `auth0-spa-js`.'\n );\n }\n if (typeof getCryptoSubtle() === 'undefined') {\n throw new Error(`\n auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/master/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.\n `);\n }\n};\n\n/**\n * Returns an empty string when value is falsy, or when it's value is included in the exclude argument.\n * @param value The value to check\n * @param exclude An array of values that should result in an empty string.\n * @returns The value, or an empty string when falsy or included in the exclude argument.\n */\nexport function valueOrEmptyString(value: string, exclude: string[] = []) {\n return value && !exclude.includes(value) ? value : '';\n}\n","import { WorkerRefreshTokenMessage } from './worker.types';\n\n/**\n * Sends the specified message to the web worker\n * @param message The message to send\n * @param to The worker to send the message to\n */\nexport const sendMessage = (message: WorkerRefreshTokenMessage, to: Worker) =>\n new Promise(function (resolve, reject) {\n const messageChannel = new MessageChannel();\n\n messageChannel.port1.onmessage = function (event) {\n // Only for fetch errors, as these get retried\n if (event.data.error) {\n reject(new Error(event.data.error));\n } else {\n resolve(event.data);\n }\n };\n\n to.postMessage(message, [messageChannel.port2]);\n });\n","import fetch from 'unfetch';\n\nimport {\n DEFAULT_FETCH_TIMEOUT_MS,\n DEFAULT_SILENT_TOKEN_RETRY_COUNT\n} from './constants';\n\nimport { sendMessage } from './worker/worker.utils';\nimport { FetchOptions } from './global';\nimport { GenericError, MfaRequiredError } from './errors';\n\nexport const createAbortController = () => new AbortController();\n\nconst dofetch = async (fetchUrl: string, fetchOptions: FetchOptions) => {\n const response = await fetch(fetchUrl, fetchOptions);\n\n return {\n ok: response.ok,\n json: await response.json()\n };\n};\n\nconst fetchWithoutWorker = async (\n fetchUrl: string,\n fetchOptions: FetchOptions,\n timeout: number\n) => {\n const controller = createAbortController();\n fetchOptions.signal = controller.signal;\n\n let timeoutId: NodeJS.Timeout;\n\n // The promise will resolve with one of these two promises (the fetch or the timeout), whichever completes first.\n return Promise.race([\n dofetch(fetchUrl, fetchOptions),\n\n new Promise((_, reject) => {\n timeoutId = setTimeout(() => {\n controller.abort();\n reject(new Error(\"Timeout when executing 'fetch'\"));\n }, timeout);\n })\n ]).finally(() => {\n clearTimeout(timeoutId);\n });\n};\n\nconst fetchWithWorker = async (\n fetchUrl: string,\n audience: string,\n scope: string,\n fetchOptions: FetchOptions,\n timeout: number,\n worker?: Worker,\n useFormData?: boolean\n) => {\n return sendMessage(\n {\n auth: {\n audience,\n scope\n },\n timeout,\n fetchUrl,\n fetchOptions,\n useFormData\n },\n worker\n );\n};\n\nexport const switchFetch = async (\n fetchUrl: string,\n audience: string,\n scope: string,\n fetchOptions: FetchOptions,\n worker?: Worker,\n useFormData?: boolean,\n timeout = DEFAULT_FETCH_TIMEOUT_MS\n): Promise<any> => {\n if (worker) {\n return fetchWithWorker(\n fetchUrl,\n audience,\n scope,\n fetchOptions,\n timeout,\n worker,\n useFormData\n );\n } else {\n return fetchWithoutWorker(fetchUrl, fetchOptions, timeout);\n }\n};\n\nexport async function getJSON<T>(\n url: string,\n timeout: number,\n audience: string,\n scope: string,\n options: FetchOptions,\n worker?: Worker,\n useFormData?: boolean\n): Promise<T> {\n let fetchError: null | Error = null;\n let response: any;\n\n for (let i = 0; i < DEFAULT_SILENT_TOKEN_RETRY_COUNT; i++) {\n try {\n response = await switchFetch(\n url,\n audience,\n scope,\n options,\n worker,\n useFormData,\n timeout\n );\n fetchError = null;\n break;\n } catch (e) {\n // Fetch only fails in the case of a network issue, so should be\n // retried here. Failure status (4xx, 5xx, etc) return a resolved Promise\n // with the failure in the body.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\n fetchError = e;\n }\n }\n\n if (fetchError) {\n // unfetch uses XMLHttpRequest under the hood which throws\n // ProgressEvents on error, which don't have message properties\n fetchError.message = fetchError.message || 'Failed to fetch';\n throw fetchError;\n }\n\n const {\n json: { error, error_description, ...data },\n ok\n } = response;\n\n if (!ok) {\n const errorMessage =\n error_description || `HTTP error. Unable to fetch ${url}`;\n\n if (error === 'mfa_required') {\n throw new MfaRequiredError(error, errorMessage, data.mfa_token);\n }\n\n throw new GenericError(error || 'request_error', errorMessage);\n }\n\n return data;\n}\n","import { TokenEndpointOptions, TokenEndpointResponse } from './global';\nimport { DEFAULT_AUTH0_CLIENT } from './constants';\nimport { getJSON } from './http';\nimport { createQueryParams } from './utils';\n\nexport async function oauthToken(\n {\n baseUrl,\n timeout,\n audience,\n scope,\n auth0Client,\n useFormData,\n ...options\n }: TokenEndpointOptions,\n worker?: Worker\n) {\n const body = useFormData\n ? createQueryParams(options)\n : JSON.stringify(options);\n\n return await getJSON<TokenEndpointResponse>(\n `${baseUrl}/oauth/token`,\n timeout,\n audience || 'default',\n scope,\n {\n method: 'POST',\n body,\n headers: {\n 'Content-Type': useFormData\n ? 'application/x-www-form-urlencoded'\n : 'application/json',\n 'Auth0-Client': btoa(\n JSON.stringify(auth0Client || DEFAULT_AUTH0_CLIENT)\n )\n }\n },\n worker,\n useFormData\n );\n}\n","/**\n * @ignore\n */\nconst dedupe = (arr: string[]) => Array.from(new Set(arr));\n\n/**\n * @ignore\n */\nexport const getUniqueScopes = (...scopes: string[]) => {\n return dedupe(scopes.join(' ').trim().split(/\\s+/)).join(' ');\n};\n","import { IdToken, User } from '../global';\n\nexport const CACHE_KEY_PREFIX = '@@auth0spajs@@';\n\nexport type CacheKeyData = {\n audience: string;\n scope: string;\n client_id: string;\n};\n\nexport class CacheKey {\n public client_id: string;\n public scope: string;\n public audience: string;\n\n constructor(data: CacheKeyData, public prefix: string = CACHE_KEY_PREFIX) {\n this.client_id = data.client_id;\n this.scope = data.scope;\n this.audience = data.audience;\n }\n\n /**\n * Converts this `CacheKey` instance into a string for use in a cache\n * @returns A string representation of the key\n */\n toKey(): string {\n return `${this.prefix}::${this.client_id}::${this.audience}::${this.scope}`;\n }\n\n /**\n * Converts a cache key string into a `CacheKey` instance.\n * @param key The key to convert\n * @returns An instance of `CacheKey`\n */\n static fromKey(key: string): CacheKey {\n const [prefix, client_id, audience, scope] = key.split('::');\n\n return new CacheKey({ client_id, scope, audience }, prefix);\n }\n\n /**\n * Utility function to build a `CacheKey` instance from a cache entry\n * @param entry The entry\n * @returns An instance of `CacheKey`\n */\n static fromCacheEntry(entry: CacheEntry): CacheKey {\n const { scope, audience, client_id } = entry;\n\n return new CacheKey({\n scope,\n audience,\n client_id\n });\n }\n}\n\ninterface DecodedToken {\n claims: IdToken;\n user: User;\n}\n\nexport type CacheEntry = {\n id_token: string;\n access_token: string;\n expires_in: number;\n decodedToken: DecodedToken;\n audience: string;\n scope: string;\n client_id: string;\n refresh_token?: string;\n oauthTokenScope?: string;\n};\n\nexport type WrappedCacheEntry = {\n body: Partial<CacheEntry>;\n expiresAt: number;\n};\n\nexport type KeyManifestEntry = {\n keys: string[];\n};\n\nexport type Cacheable = WrappedCacheEntry | KeyManifestEntry;\n\nexport type MaybePromise<T> = Promise<T> | T;\n\nexport interface ICache {\n set<T = Cacheable>(key: string, entry: T): MaybePromise<void>;\n get<T = Cacheable>(key: string): MaybePromise<T | null>;\n remove(key: string): MaybePromise<void>;\n allKeys?(): MaybePromise<string[]>;\n}\n","import { ICache, Cacheable, CACHE_KEY_PREFIX } from './shared';\n\nexport class LocalStorageCache implements ICache {\n public set<T = Cacheable>(key: string, entry: T) {\n localStorage.setItem(key, JSON.stringify(entry));\n }\n\n public get<T = Cacheable>(key: string) {\n const json = window.localStorage.getItem(key);\n\n if (!json) return;\n\n try {\n const payload = JSON.parse(json) as T;\n return payload;\n } catch (e) {\n /* istanbul ignore next */\n return;\n }\n }\n\n public remove(key: string) {\n localStorage.removeItem(key);\n }\n\n public allKeys() {\n return Object.keys(window.localStorage).filter(key =>\n key.startsWith(CACHE_KEY_PREFIX)\n );\n }\n}\n","import { Cacheable, ICache } from './shared';\n\nexport class InMemoryCache {\n public enclosedCache: ICache = (function () {\n let cache: Record<string, unknown> = {};\n\n return {\n set<T = Cacheable>(key: string, entry: T) {\n cache[key] = entry;\n },\n\n get<T = Cacheable>(key: string) {\n const cacheEntry = cache[key] as T;\n\n if (!cacheEntry) {\n return;\n }\n\n return cacheEntry;\n },\n\n remove(key: string) {\n delete cache[key];\n },\n\n allKeys(): string[] {\n return Object.keys(cache);\n }\n };\n })();\n}\n","import { DEFAULT_NOW_PROVIDER } from '../constants';\nimport { CacheKeyManifest } from './key-manifest';\n\nimport {\n CacheEntry,\n ICache,\n CacheKey,\n CACHE_KEY_PREFIX,\n WrappedCacheEntry\n} from './shared';\n\nconst DEFAULT_EXPIRY_ADJUSTMENT_SECONDS = 0;\n\nexport class CacheManager {\n constructor(\n private cache: ICache,\n private keyManifest?: CacheKeyManifest,\n private nowProvider?: () => number | Promise<number>\n ) {\n this.nowProvider = this.nowProvider || DEFAULT_NOW_PROVIDER;\n }\n\n async get(\n cacheKey: CacheKey,\n expiryAdjustmentSeconds = DEFAULT_EXPIRY_ADJUSTMENT_SECONDS\n ): Promise<Partial<CacheEntry> | undefined> {\n let wrappedEntry = await this.cache.get<WrappedCacheEntry>(\n cacheKey.toKey()\n );\n\n if (!wrappedEntry) {\n const keys = await this.getCacheKeys();\n\n if (!keys) return;\n\n const matchedKey = this.matchExistingCacheKey(cacheKey, keys);\n\n if (matchedKey) {\n wrappedEntry = await this.cache.get<WrappedCacheEntry>(matchedKey);\n }\n }\n\n // If we still don't have an entry, exit.\n if (!wrappedEntry) {\n return;\n }\n\n const now = await this.nowProvider();\n const nowSeconds = Math.floor(now / 1000);\n\n if (wrappedEntry.expiresAt - expiryAdjustmentSeconds < nowSeconds) {\n if (wrappedEntry.body.refresh_token) {\n wrappedEntry.body = {\n refresh_token: wrappedEntry.body.refresh_token\n };\n\n await this.cache.set(cacheKey.toKey(), wrappedEntry);\n return wrappedEntry.body;\n }\n\n await this.cache.remove(cacheKey.toKey());\n await this.keyManifest?.remove(cacheKey.toKey());\n\n return;\n }\n\n return wrappedEntry.body;\n }\n\n async set(entry: CacheEntry): Promise<void> {\n const cacheKey = new CacheKey({\n client_id: entry.client_id,\n scope: entry.scope,\n audience: entry.audience\n });\n\n const wrappedEntry = await this.wrapCacheEntry(entry);\n\n await this.cache.set(cacheKey.toKey(), wrappedEntry);\n await this.keyManifest?.add(cacheKey.toKey());\n }\n\n async clear(clientId?: string): Promise<void> {\n const keys = await this.getCacheKeys();\n\n /* istanbul ignore next */\n if (!keys) return;\n\n await keys\n .filter(key => (clientId ? key.includes(clientId) : true))\n .reduce(async (memo, key) => {\n await memo;\n await this.cache.remove(key);\n }, Promise.resolve());\n\n await this.keyManifest?.clear();\n }\n\n /**\n * Note: only call this if you're sure one of our internal (synchronous) caches are being used.\n */\n clearSync(clientId?: string): void {\n const keys = this.cache.allKeys() as string[];\n\n /* istanbul ignore next */\n if (!keys) return;\n\n keys\n .filter(key => (clientId ? key.includes(clientId) : true))\n .forEach(key => {\n this.cache.remove(key);\n });\n }\n\n private async wrapCacheEntry(entry: CacheEntry): Promise<WrappedCacheEntry> {\n const now = await this.nowProvider();\n const expiresInTime = Math.floor(now / 1000) + entry.expires_in;\n\n const expirySeconds = Math.min(\n expiresInTime,\n entry.decodedToken.claims.exp\n );\n\n return {\n body: entry,\n expiresAt: expirySeconds\n };\n }\n\n private async getCacheKeys(): Promise<string[]> {\n return this.keyManifest\n ? (await this.keyManifest.get())?.keys\n : await this.cache.allKeys();\n }\n\n /**\n * Finds the corresponding key in the cache based on the provided cache key.\n * The keys inside the cache are in the format {prefix}::{client_id}::{audience}::{scope}.\n * The first key in the cache that satisfies the following conditions is returned\n * - `prefix` is strict equal to Auth0's internally configured `keyPrefix`\n * - `client_id` is strict equal to the `cacheKey.client_id`\n * - `audience` is strict equal to the `cacheKey.audience`\n * - `scope` contains at least all the `cacheKey.scope` values\n * *\n * @param keyToMatch The provided cache key\n * @param allKeys A list of existing cache keys\n */\n private matchExistingCacheKey(keyToMatch: CacheKey, allKeys: Array<string>) {\n return allKeys.filter(key => {\n const cacheKey = CacheKey.fromKey(key);\n const scopeSet = new Set(cacheKey.scope && cacheKey.scope.split(' '));\n const scopesToMatch = keyToMatch.scope.split(' ');\n\n const hasAllScopes =\n cacheKey.scope &&\n scopesToMatch.reduce(\n (acc, current) => acc && scopeSet.has(current),\n true\n );\n\n return (\n cacheKey.prefix === CACHE_KEY_PREFIX &&\n cacheKey.client_id === keyToMatch.client_id &&\n cacheKey.audience === keyToMatch.audience &&\n hasAllScopes\n );\n })[0];\n }\n}\n","import { ClientStorage } from './storage';\n\nconst TRANSACTION_STORAGE_KEY_PREFIX = 'a0.spajs.txs';\n\ninterface Transaction {\n nonce: string;\n scope: string;\n audience: string;\n appState?: any;\n code_verifier: string;\n redirect_uri: string;\n organizationId?: string;\n state?: string;\n}\n\nexport default class TransactionManager {\n private transaction: Transaction | undefined;\n private storageKey: string;\n\n constructor(private storage: ClientStorage, private clientId: string) {\n this.storageKey = `${TRANSACTION_STORAGE_KEY_PREFIX}.${this.clientId}`;\n this.transaction = this.storage.get(this.storageKey);\n }\n\n public create(transaction: Transaction) {\n this.transaction = transaction;\n\n this.storage.save(this.storageKey, transaction, {\n daysUntilExpire: 1\n });\n }\n\n public get(): Transaction | undefined {\n return this.transaction;\n }\n\n public remove() {\n delete this.transaction;\n this.storage.remove(this.storageKey);\n }\n}\n","import { urlDecodeB64 } from './utils';\nimport { IdToken, JWTVerifyOptions } from './global';\n\nconst isNumber = (n: any) => typeof n === 'number';\n\nconst idTokendecoded = [\n 'iss',\n 'aud',\n 'exp',\n 'nbf',\n 'iat',\n 'jti',\n 'azp',\n 'nonce',\n 'auth_time',\n 'at_hash',\n 'c_hash',\n 'acr',\n 'amr',\n 'sub_jwk',\n 'cnf',\n 'sip_from_tag',\n 'sip_date',\n 'sip_callid',\n 'sip_cseq_num',\n 'sip_via_branch',\n 'orig',\n 'dest',\n 'mky',\n 'events',\n 'toe',\n 'txn',\n 'rph',\n 'sid',\n 'vot',\n 'vtm'\n];\n\nexport const decode = (token: string) => {\n const parts = token.split('.');\n const [header, payload, signature] = parts;\n\n if (parts.length !== 3 || !header || !payload || !signature) {\n throw new Error('ID token could not be decoded');\n }\n const payloadJSON = JSON.parse(urlDecodeB64(payload));\n const claims: IdToken = { __raw: token };\n const user: any = {};\n Object.keys(payloadJSON).forEach(k => {\n claims[k] = payloadJSON[k];\n if (!idTokendecoded.includes(k)) {\n user[k] = payloadJSON[k];\n }\n });\n return {\n encoded: { header, payload, signature },\n header: JSON.parse(urlDecodeB64(header)),\n claims,\n user\n };\n};\n\nexport const verify = (options: JWTVerifyOptions) => {\n if (!options.id_token) {\n throw new Error('ID token is required but missing');\n }\n\n const decoded = decode(options.id_token);\n\n if (!decoded.claims.iss) {\n throw new Error(\n 'Issuer (iss) claim must be a string present in the ID token'\n );\n }\n\n if (decoded.claims.iss !== options.iss) {\n throw new Error(\n `Issuer (iss) claim mismatch in the ID token; expected \"${options.iss}\", found \"${decoded.claims.iss}\"`\n );\n }\n\n if (!decoded.user.sub) {\n throw new Error(\n 'Subject (sub) claim must be a string present in the ID token'\n );\n }\n\n if (decoded.header.alg !== 'RS256') {\n throw new Error(\n `Signature algorithm of \"${decoded.header.alg}\" is not supported. Expected the ID token to be signed with \"RS256\".`\n );\n }\n\n if (\n !decoded.claims.aud ||\n !(\n typeof decoded.claims.aud === 'string' ||\n Array.isArray(decoded.claims.aud)\n )\n ) {\n throw new Error(\n 'Audience (aud) claim must be a string or array of strings present in the ID token'\n );\n }\n if (Array.isArray(decoded.claims.aud)) {\n if (!decoded.claims.aud.includes(options.aud)) {\n throw new Error(\n `Audience (aud) claim mismatch in the ID token; expected \"${\n options.aud\n }\" but was not one of \"${decoded.claims.aud.join(', ')}\"`\n );\n }\n if (decoded.claims.aud.length > 1) {\n if (!decoded.claims.azp) {\n throw new Error(\n 'Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values'\n );\n }\n if (decoded.claims.azp !== options.aud) {\n throw new Error(\n `Authorized Party (azp) claim mismatch in the ID token; expected \"${options.aud}\", found \"${decoded.claims.azp}\"`\n );\n }\n }\n } else if (decoded.claims.aud !== options.aud) {\n throw new Error(\n `Audience (aud) claim mismatch in the ID token; expected \"${options.aud}\" but found \"${decoded.claims.aud}\"`\n );\n }\n if (options.nonce) {\n if (!decoded.claims.nonce) {\n throw new Error(\n 'Nonce (nonce) claim must be a string present in the ID token'\n );\n }\n if (decoded.claims.nonce !== options.nonce) {\n throw new Error(\n `Nonce (nonce) claim mismatch in the ID token; expected \"${options.nonce}\", found \"${decoded.claims.nonce}\"`\n );\n }\n }\n\n if (options.max_age && !isNumber(decoded.claims.auth_time)) {\n throw new Error(\n 'Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified'\n );\n }\n\n /* istanbul ignore next */\n if (!isNumber(decoded.claims.exp)) {\n throw new Error(\n 'Expiration Time (exp) claim must be a number present in the ID token'\n );\n }\n if (!isNumber(decoded.claims.iat)) {\n throw new Error(\n 'Issued At (iat) claim must be a number present in the ID token'\n );\n }\n\n const leeway = options.leeway || 60;\n const now = new Date(options.now || Date.now());\n const expDate = new Date(0);\n const nbfDate = new Date(0);\n const authTimeDate = new Date(0);\n\n authTimeDate.setUTCSeconds(\n parseInt(decoded.claims.auth_time) + options.max_age + leeway\n );\n\n expDate.setUTCSeconds(decoded.claims.exp + leeway);\n nbfDate.setUTCSeconds(decoded.claims.nbf - leeway);\n\n if (now > expDate) {\n throw new Error(\n `Expiration Time (exp) claim error in the ID token; current time (${now}) is after expiration time (${expDate})`\n );\n }\n\n if (isNumber(decoded.claims.nbf) && now < nbfDate) {\n throw new Error(\n `Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Currrent time (${now}) is before ${nbfDate}`\n );\n }\n\n if (isNumber(decoded.claims.auth_time) && now > authTimeDate) {\n throw new Error(\n `Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Currrent time (${now}) is after last auth at ${authTimeDate}`\n );\n }\n\n if (options.organizationId) {\n if (!decoded.claims.org_id) {\n throw new Error(\n 'Organization ID (org_id) claim must be a string present in the ID token'\n );\n } else if (options.organizationId !== decoded.claims.org_id) {\n throw new Error(\n `Organization ID (org_id) claim mismatch in the ID token; expected \"${options.organizationId}\", found \"${decoded.claims.org_id}\"`\n );\n }\n }\n\n return decoded;\n};\n","import * as Cookies from 'es-cookie';\n\ninterface ClientStorageOptions {\n daysUntilExpire?: number;\n cookieDomain?: string;\n}\n\n/**\n * Defines a type that handles storage to/from a storage location\n */\nexport type ClientStorage = {\n get<T extends Object>(key: string): T | undefined;\n save(key: string, value: any, options?: ClientStorageOptions): void;\n remove(key: string, options?: ClientStorageOptions): void;\n};\n\n/**\n * A storage protocol for marshalling data to/from cookies\n */\nexport const CookieStorage = {\n get<T extends Object>(key: string) {\n const value = Cookies.get(key);\n\n if (typeof value === 'undefined') {\n return;\n }\n\n return <T>JSON.parse(value);\n },\n\n save(key: string, value: any, options?: ClientStorageOptions): void {\n let cookieAttributes: Cookies.CookieAttributes = {};\n\n if ('https:' === window.location.protocol) {\n cookieAttributes = {\n secure: true,\n sameSite: 'none'\n };\n }\n\n if (options?.daysUntilExpire) {\n cookieAttributes.expires = options.daysUntilExpire;\n }\n\n if (options?.cookieDomain) {\n cookieAttributes.domain = options.cookieDomain;\n }\n\n Cookies.set(key, JSON.stringify(value), cookieAttributes);\n },\n\n remove(key: string, options?: ClientStorageOptions) {\n let cookieAttributes: Cookies.CookieAttributes = {};\n\n if (options?.cookieDomain) {\n cookieAttributes.domain = options.cookieDomain;\n }\n\n Cookies.remove(key ,cookieAttributes);\n }\n} as ClientStorage;\n\n/**\n * @ignore\n */\nconst LEGACY_PREFIX = '_legacy_';\n\n/**\n * Cookie storage that creates a cookie for modern and legacy browsers.\n * See: https://web.dev/samesite-cookie-recipes/#handling-incompatible-clients\n */\nexport const CookieStorageWithLegacySameSite = {\n get<T extends Object>(key: string) {\n const value = CookieStorage.get<T>(key);\n\n if (value) {\n return value;\n }\n\n return CookieStorage.get<T>(`${LEGACY_PREFIX}${key}`);\n },\n\n save(key: string, value: any, options?: ClientStorageOptions): void {\n let cookieAttributes: Cookies.CookieAttributes = {};\n\n if ('https:' === window.location.protocol) {\n cookieAttributes = { secure: true };\n }\n\n if (options?.daysUntilExpire) {\n cookieAttributes.expires = options.daysUntilExpire;\n }\n\n Cookies.set(\n `${LEGACY_PREFIX}${key}`,\n JSON.stringify(value),\n cookieAttributes\n );\n CookieStorage.save(key, value, options);\n },\n\n remove(key: string, options?: ClientStorageOptions) {\n let cookieAttributes: Cookies.CookieAttributes = {};\n\n if (options?.cookieDomain) {\n cookieAttributes.domain = options.cookieDomain;\n }\n\n Cookies.remove(key ,cookieAttributes);\n CookieStorage.remove(key, options);\n CookieStorage.remove(`${LEGACY_PREFIX}${key}`, options);\n }\n} as ClientStorage;\n\n/**\n * A storage protocol for marshalling data to/from session storage\n */\nexport const SessionStorage = {\n get<T extends Object>(key: string) {\n /* istanbul ignore next */\n if (typeof sessionStorage === 'undefined') {\n return;\n }\n\n const value = sessionStorage.getItem(key);\n\n if (typeof value === 'undefined') {\n return;\n }\n\n return <T>JSON.parse(value);\n },\n\n save(key: string, value: any): void {\n sessionStorage.setItem(key, JSON.stringify(value));\n },\n\n remove(key: string) {\n sessionStorage.removeItem(key);\n }\n} as ClientStorage;\n","export const isIE11 = () => /Trident.*rv:11\\.0/.test(navigator.userAgent);\n","const singlePromiseMap: Record<string, Promise<any>> = {};\n\nexport const singlePromise = <T>(cb: () => Promise<T>, key: string) => {\n let promise = singlePromiseMap[key];\n if (!promise) {\n promise = cb().finally(() => {\n delete singlePromiseMap[key];\n promise = null;\n });\n singlePromiseMap[key] = promise;\n }\n return promise;\n};\n\nexport const retryPromise = async (\n cb: () => Promise<boolean>,\n maxNumberOfRetries = 3\n) => {\n for (let i = 0; i < maxNumberOfRetries; i++) {\n if (await cb()) {\n return true;\n }\n }\n\n return false;\n};\n","import {\n CACHE_KEY_PREFIX,\n ICache,\n KeyManifestEntry,\n MaybePromise\n} from './shared';\n\nexport class CacheKeyManifest {\n private readonly manifestKey: string;\n\n constructor(private cache: ICache, private clientId: string) {\n this.manifestKey = this.createManifestKeyFrom(this.clientId);\n }\n\n async add(key: string): Promise<void> {\n const keys = new Set(\n (await this.cache.get<KeyManifestEntry>(this.manifestKey))?.keys || []\n );\n\n keys.add(key);\n\n await this.cache.set<KeyManifestEntry>(this.manifestKey, {\n keys: [...keys]\n });\n }\n\n async remove(key: string): Promise<void> {\n const entry = await this.cache.get<KeyManifestEntry>(this.manifestKey);\n\n if (entry) {\n const keys = new Set(entry.keys);\n keys.delete(key);\n\n if (keys.size > 0) {\n return await this.cache.set(this.manifestKey, { keys: [...keys] });\n }\n\n return await this.cache.remove(this.manifestKey);\n }\n }\n\n get(): MaybePromise<KeyManifestEntry> {\n return this.cache.get<KeyManifestEntry>(this.manifestKey);\n }\n\n clear(): MaybePromise<void> {\n return this.cache.remove(this.manifestKey);\n }\n\n private createManifestKeyFrom(clientId: string): string {\n return `${CACHE_KEY_PREFIX}::${clientId}`;\n }\n}\n","import Lock from 'browser-tabs-lock';\n\nimport {\n createQueryParams,\n runPopup,\n parseQueryResult,\n encode,\n createRandomString,\n runIframe,\n sha256,\n bufferToBase64UrlEncoded,\n validateCrypto,\n openPopup\n} from './utils';\n\nimport { oauthToken } from './api';\n\nimport { getUniqueScopes } from './scope';\n\nimport {\n InMemoryCache,\n ICache,\n LocalStorageCache,\n CacheKey,\n CacheManager\n} from './cache';\n\nimport TransactionManager from './transaction-manager';\nimport { verify as verifyIdToken } from './jwt';\nimport {\n AuthenticationError,\n GenericError,\n MissingRefreshTokenError,\n TimeoutError\n} from './errors';\n\nimport {\n ClientStorage,\n CookieStorage,\n CookieStorageWithLegacySameSite,\n SessionStorage\n} from './storage';\n\nimport {\n CACHE_LOCATION_MEMORY,\n DEFAULT_POPUP_CONFIG_OPTIONS,\n DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS,\n MISSING_REFRESH_TOKEN_ERROR_MESSAGE,\n DEFAULT_SCOPE,\n RECOVERABLE_ERRORS,\n DEFAULT_SESSION_CHECK_EXPIRY_DAYS,\n DEFAULT_AUTH0_CLIENT,\n INVALID_REFRESH_TOKEN_ERROR_MESSAGE,\n DEFAULT_NOW_PROVIDER,\n DEFAULT_FETCH_TIMEOUT_MS\n} from './constants';\n\nimport {\n Auth0ClientOptions,\n BaseLoginOptions,\n AuthorizeOptions,\n RedirectLoginOptions,\n PopupLoginOptions,\n PopupConfigOptions,\n GetUserOptions,\n GetIdTokenClaimsOptions,\n RedirectLoginResult,\n GetTokenSilentlyOptions,\n GetTokenWithPopupOptions,\n LogoutOptions,\n RefreshTokenOptions,\n OAuthTokenOptions,\n CacheLocation,\n LogoutUrlOptions,\n User,\n IdToken,\n GetTokenSilentlyVerboseResponse,\n TokenEndpointResponse\n} from './global';\n\n// @ts-ignore\nimport TokenWorker from './worker/token.worker.ts';\nimport { isIE11 } from './user-agent';\nimport { singlePromise, retryPromise } from './promise-utils';\nimport { CacheKeyManifest } from './cache/key-manifest';\n\n/**\n * @ignore\n */\ntype GetTokenSilentlyResult = TokenEndpointResponse & {\n decodedToken: ReturnType<typeof verifyIdToken>;\n scope: string;\n oauthTokenScope?: string;\n audience: string;\n};\n\n/**\n * @ignore\n */\nconst lock = new Lock();\n\n/**\n * @ignore\n */\nconst GET_TOKEN_SILENTLY_LOCK_KEY = 'auth0.lock.getTokenSilently';\n\n/**\n * @ignore\n */\nconst buildOrganizationHintCookieName = (clientId: string) =>\n `auth0.${clientId}.organization_hint`;\n\n/**\n * @ignore\n */\nconst OLD_IS_AUTHENTICATED_COOKIE_NAME = 'auth0.is.authenticated';\n\n/**\n * @ignore\n */\nconst buildIsAuthenticatedCookieName = (clientId: string) =>\n `auth0.${clientId}.is.authenticated`;\n\n/**\n * @ignore\n */\nconst cacheLocationBuilders: Record<string, () => ICache> = {\n memory: () => new InMemoryCache().enclosedCache,\n localstorage: () => new LocalStorageCache()\n};\n\n/**\n * @ignore\n */\nconst cacheFactory = (location: string) => {\n return cacheLocationBuilders[location];\n};\n\n/**\n * @ignore\n */\nconst supportWebWorker = () => !isIE11();\n\n/**\n * @ignore\n */\nconst getTokenIssuer = (issuer: string, domainUrl: string) => {\n if (issuer) {\n return issuer.startsWith('https://') ? issuer : `https://${issuer}/`;\n }\n\n return `${domainUrl}/`;\n};\n\n/**\n * @ignore\n */\nconst getDomain = (domainUrl: string) => {\n if (!/^https?:\\/\\//.test(domainUrl)) {\n return `https://${domainUrl}`;\n }\n\n return domainUrl;\n};\n\n/**\n * @ignore\n */\nconst getCustomInitialOptions = (\n options: Auth0ClientOptions\n): BaseLoginOptions => {\n const {\n advancedOptions,\n audience,\n auth0Client,\n authorizeTimeoutInSeconds,\n cacheLocation,\n cache,\n client_id,\n domain,\n issuer,\n leeway,\n max_age,\n nowProvider,\n redirect_uri,\n scope,\n useRefreshTokens,\n useRefreshTokensFallback,\n useCookiesForTransactions,\n useFormData,\n ...customParams\n } = options;\n return customParams;\n};\n\n/**\n * Auth0 SDK for Single Page Applications using [Authorization Code Grant Flow with PKCE](https://auth0.com/docs/api-auth/tutorials/authorization-code-grant-pkce).\n */\nexport default class Auth0Client {\n private readonly transactionManager: TransactionManager;\n private readonly cacheManager: CacheManager;\n private readonly customOptions: BaseLoginOptions;\n private readonly domainUrl: string;\n private readonly tokenIssuer: string;\n private readonly defaultScope: string;\n private readonly scope: string;\n private readonly cookieStorage: ClientStorage;\n private readonly sessionCheckExpiryDays: number;\n private readonly orgHintCookieName: string;\n private readonly isAuthenticatedCookieName: string;\n private readonly nowProvider: () => number | Promise<number>;\n private readonly httpTimeoutMs: number;\n private readonly useRefreshTokensFallback: boolean;\n\n cacheLocation: CacheLocation;\n private worker: Worker;\n\n constructor(private options: Auth0ClientOptions) {\n typeof window !== 'undefined' && validateCrypto();\n\n if (options.cache && options.cacheLocation) {\n console.warn(\n 'Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`.'\n );\n }\n\n let cache: ICache;\n\n if (options.cache) {\n cache = options.cache;\n } else {\n this.cacheLocation = options.cacheLocation || CACHE_LOCATION_MEMORY;\n\n if (!cacheFactory(this.cacheLocation)) {\n throw new Error(`Invalid cache location \"${this.cacheLocation}\"`);\n }\n\n cache = cacheFactory(this.cacheLocation)();\n }\n\n this.httpTimeoutMs = options.httpTimeoutInSeconds\n ? options.httpTimeoutInSeconds * 1000\n : DEFAULT_FETCH_TIMEOUT_MS;\n\n this.cookieStorage =\n options.legacySameSiteCookie === false\n ? CookieStorage\n : CookieStorageWithLegacySameSite;\n\n this.orgHintCookieName = buildOrganizationHintCookieName(\n this.options.client_id\n );\n\n this.isAuthenticatedCookieName = buildIsAuthenticatedCookieName(\n this.options.client_id\n );\n\n this.sessionCheckExpiryDays =\n options.sessionCheckExpiryDays || DEFAULT_SESSION_CHECK_EXPIRY_DAYS;\n\n const transactionStorage = options.useCookiesForTransactions\n ? this.cookieStorage\n : SessionStorage;\n\n this.scope = this.options.scope;\n\n this.transactionManager = new TransactionManager(\n transactionStorage,\n this.options.client_id\n );\n\n this.nowProvider = this.options.nowProvider || DEFAULT_NOW_PROVIDER;\n\n this.cacheManager = new CacheManager(\n cache,\n !cache.allKeys\n ? new CacheKeyManifest(cache, this.options.client_id)\n : null,\n this.nowProvider\n );\n\n this.domainUrl = getDomain(this.options.domain);\n this.tokenIssuer = getTokenIssuer(this.options.issuer, this.domainUrl);\n\n this.defaultScope = getUniqueScopes(\n 'openid',\n this.options?.advancedOptions?.defaultScope !== undefined\n ? this.options.advancedOptions.defaultScope\n : DEFAULT_SCOPE\n );\n\n // If using refresh tokens, automatically specify the `offline_access` scope.\n // Note we cannot add this to 'defaultScope' above as the scopes are used in the\n // cache keys - changing the order could invalidate the keys\n if (this.options.useRefreshTokens) {\n this.scope = getUniqueScopes(this.scope, 'offline_access');\n }\n\n // Don't use web workers unless using refresh tokens in memory and not IE11\n if (\n typeof window !== 'undefined' &&\n window.Worker &&\n this.options.useRefreshTokens &&\n this.cacheLocation === CACHE_LOCATION_MEMORY &&\n supportWebWorker()\n ) {\n this.worker = new TokenWorker();\n }\n\n this.customOptions = getCustomInitialOptions(options);\n\n this.useRefreshTokensFallback =\n this.options.useRefreshTokensFallback !== false;\n }\n\n private _url(path: string) {\n const auth0Client = encodeURIComponent(\n btoa(JSON.stringify(this.options.auth0Client || DEFAULT_AUTH0_CLIENT))\n );\n return `${this.domainUrl}${path}&auth0Client=${auth0Client}`;\n }\n\n private _getParams(\n authorizeOptions: BaseLoginOptions,\n state: string,\n nonce: string,\n code_challenge: string,\n redirect_uri: string\n ): AuthorizeOptions {\n // These options should be excluded from the authorize URL,\n // as they're options for the client and not for the IdP.\n // ** IMPORTANT ** If adding a new client option, include it in this destructure list.\n const {\n useRefreshTokens,\n useCookiesForTransactions,\n useFormData,\n auth0Client,\n cacheLocation,\n advancedOptions,\n detailedResponse,\n nowProvider,\n authorizeTimeoutInSeconds,\n legacySameSiteCookie,\n sessionCheckExpiryDays,\n domain,\n leeway,\n httpTimeoutInSeconds,\n ...loginOptions\n } = this.options;\n\n return {\n ...loginOptions,\n ...authorizeOptions,\n scope: getUniqueScopes(\n this.defaultScope,\n this.scope,\n authorizeOptions.scope\n ),\n response_type: 'code',\n response_mode: 'query',\n state,\n nonce,\n redirect_uri: redirect_uri || this.options.redirect_uri,\n code_challenge,\n code_challenge_method: 'S256'\n };\n }\n\n private _authorizeUrl(authorizeOptions: AuthorizeOptions) {\n return this._url(`/authorize?${createQueryParams(authorizeOptions)}`);\n }\n\n private async _verifyIdToken(\n id_token: string,\n nonce?: string,\n organizationId?: string\n ) {\n const now = await this.nowProvider();\n\n return verifyIdToken({\n iss: this.tokenIssuer,\n aud: this.options.client_id,\n id_token,\n nonce,\n organizationId,\n leeway: this.options.leeway,\n max_age: this._parseNumber(this.options.max_age),\n now\n });\n }\n\n private _parseNumber(value: any): number {\n if (typeof value !== 'string') {\n return value;\n }\n return parseInt(value, 10) || undefined;\n }\n\n private _processOrgIdHint(organizationId?: string) {\n if (organizationId) {\n this.cookieStorage.save(this.orgHintCookieName, organizationId, {\n daysUntilExpire: this.sessionCheckExpiryDays,\n cookieDomain: this.options.cookieDomain\n });\n } else {\n this.cookieStorage.remove(this.orgHintCookieName, { cookieDomain: this.options.cookieDomain });\n }\n }\n\n /**\n * ```js\n * await auth0.buildAuthorizeUrl(options);\n * ```\n *\n * Builds an `/authorize` URL for loginWithRedirect using the parameters\n * provided as arguments. Random and secure `state` and `nonce`\n * parameters will be auto-generated.\n *\n * @param options\n */\n public async buildAuthorizeUrl(\n options: RedirectLoginOptions = {}\n ): Promise<string> {\n const { redirect_uri, appState, ...authorizeOptions } = options;\n\n const stateIn = encode(createRandomString());\n const nonceIn = encode(createRandomString());\n const code_verifier = createRandomString();\n const code_challengeBuffer = await sha256(code_verifier);\n const code_challenge = bufferToBase64UrlEncoded(code_challengeBuffer);\n const fragment = options.fragment ? `#${options.fragment}` : '';\n\n const params = this._getParams(\n authorizeOptions,\n stateIn,\n nonceIn,\n code_challenge,\n redirect_uri\n );\n\n const url = this._authorizeUrl(params);\n const organizationId = options.organization || this.options.organization;\n\n this.transactionManager.create({\n nonce: nonceIn,\n code_verifier,\n appState,\n scope: params.scope,\n audience: params.audience || 'default',\n redirect_uri: params.redirect_uri,\n state: stateIn,\n ...(organizationId && { organizationId })\n });\n\n return url + fragment;\n }\n\n /**\n * ```js\n * try {\n * await auth0.loginWithPopup(options);\n * } catch(e) {\n * if (e instanceof PopupCancelledError) {\n * // Popup was closed before login completed\n * }\n * }\n * ```\n *\n * Opens a popup with the `/authorize` URL using the parameters\n * provided as arguments. Random and secure `state` and `nonce`\n * parameters will be auto-generated. If the response is successful,\n * results will be valid according to their expiration times.\n *\n * IMPORTANT: This method has to be called from an event handler\n * that was started by the user like a button click, for example,\n * otherwise the popup will be blocked in most browsers.\n *\n * @param options\n * @param config\n */\n public async loginWithPopup(\n options?: PopupLoginOptions,\n config?: PopupConfigOptions\n ) {\n options = options || {};\n config = config || {};\n\n if (!config.popup) {\n config.popup = openPopup('');\n\n if (!config.popup) {\n throw new Error(\n 'Unable to open a popup for loginWithPopup - window.open returned `null`'\n );\n }\n }\n\n const { ...authorizeOptions } = options;\n const stateIn = encode(createRandomString());\n const nonceIn = encode(createRandomString());\n const code_verifier = createRandomString();\n const code_challengeBuffer = await sha256(code_verifier);\n const code_challenge = bufferToBase64UrlEncoded(code_challengeBuffer);\n\n const params = this._getParams(\n authorizeOptions,\n stateIn,\n nonceIn,\n code_challenge,\n this.options.redirect_uri || window.location.origin\n );\n\n const url = this._authorizeUrl({\n ...params,\n response_mode: 'web_message'\n });\n\n config.popup.location.href = url;\n\n const codeResult = await runPopup({\n ...config,\n timeoutInSeconds:\n config.timeoutInSeconds ||\n this.options.authorizeTimeoutInSeconds ||\n DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS\n });\n\n if (stateIn !== codeResult.state) {\n throw new Error('Invalid state');\n }\n\n const authResult = await oauthToken(\n {\n audience: params.audience,\n scope: params.scope,\n baseUrl: this.domainUrl,\n client_id: this.options.client_id,\n code_verifier,\n code: codeResult.code,\n grant_type: 'authorization_code',\n redirect_uri: params.redirect_uri,\n auth0Client: this.options.auth0Client,\n useFormData: this.options.useFormData,\n timeout: this.httpTimeoutMs\n } as OAuthTokenOptions,\n this.worker\n );\n\n const organizationId = options.organization || this.options.organization;\n\n const decodedToken = await this._verifyIdToken(\n authResult.id_token,\n nonceIn,\n organizationId\n );\n\n const cacheEntry = {\n ...authResult,\n decodedToken,\n scope: params.scope,\n audience: params.audience || 'default',\n client_id: this.options.client_id\n };\n\n await this.cacheManager.set(cacheEntry);\n\n this.cookieStorage.save(this.isAuthenticatedCookieName, true, {\n daysUntilExpire: this.sessionCheckExpiryDays,\n cookieDomain: this.options.cookieDomain\n });\n\n this._processOrgIdHint(decodedToken.claims.org_id);\n }\n\n /**\n * ```js\n * const user = await auth0.getUser();\n * ```\n *\n * Returns the user information if available (decoded\n * from the `id_token`).\n *\n * If you provide an audience or scope, they should match an existing Access Token\n * (the SDK stores a corresponding ID Token with every Access Token, and uses the\n * scope and audience to look up the ID Token)\n *\n * @typeparam TUser The type to return, has to extend {@link User}.\n * @param options\n */\n public async getUser<TUser extends User>(\n options: GetUserOptions = {}\n ): Promise<TUser | undefined> {\n const audience = options.audience || this.options.audience || 'default';\n const scope = getUniqueScopes(this.defaultScope, this.scope, options.scope);\n\n const cache = await this.cacheManager.get(\n new CacheKey({\n client_id: this.options.client_id,\n audience,\n scope\n })\n );\n\n return cache && cache.decodedToken && (cache.decodedToken.user as TUser);\n }\n\n /**\n * ```js\n * const claims = await auth0.getIdTokenClaims();\n * ```\n *\n * Returns all claims from the id_token if available.\n *\n * If you provide an audience or scope, they should match an existing Access Token\n * (the SDK stores a corresponding ID Token with every Access Token, and uses the\n * scope and audience to look up the ID Token)\n *\n * @param options\n */\n public async getIdTokenClaims(\n options: GetIdTokenClaimsOptions = {}\n ): Promise<IdToken | undefined> {\n const audience = options.audience || this.options.audience || 'default';\n const scope = getUniqueScopes(this.defaultScope, this.scope, options.scope);\n\n const cache = await this.cacheManager.get(\n new CacheKey({\n client_id: this.options.client_id,\n audience,\n scope\n })\n );\n\n return cache && cache.decodedToken && cache.decodedToken.claims;\n }\n\n /**\n * ```js\n * await auth0.loginWithRedirect(options);\n * ```\n *\n * Performs a redirect to `/authorize` using the parameters\n * provided as arguments. Random and secure `state` and `nonce`\n * parameters will be auto-generated.\n *\n * @param options\n */\n public async loginWithRedirect<TAppState = any>(\n options: RedirectLoginOptions<TAppState> = {}\n ) {\n const { redirectMethod, ...urlOptions } = options;\n const url = await this.buildAuthorizeUrl(urlOptions);\n window.location[redirectMethod || 'assign'](url);\n }\n\n /**\n * After the browser redirects back to the callback page,\n * call `handleRedirectCallback` to handle success and error\n * responses from Auth0. If the response is successful, results\n * will be valid according to their expiration times.\n */\n public async handleRedirectCallback<TAppState = any>(\n url: string = window.location.href\n ): Promise<RedirectLoginResult<TAppState>> {\n const queryStringFragments = url.split('?').slice(1);\n\n if (queryStringFragments.length === 0) {\n throw new Error('There are no query params available for parsing.');\n }\n\n const { state, code, error, error_description } = parseQueryResult(\n queryStringFragments.join('')\n );\n\n const transaction = this.transactionManager.get();\n\n if (!transaction) {\n throw new Error('Invalid state');\n }\n\n this.transactionManager.remove();\n\n if (error) {\n throw new AuthenticationError(\n error,\n error_description,\n state,\n transaction.appState\n );\n }\n\n // Transaction should have a `code_verifier` to do PKCE for CSRF protection\n if (\n !transaction.code_verifier ||\n (transaction.state && transaction.state !== state)\n ) {\n throw new Error('Invalid state');\n }\n\n const tokenOptions = {\n audience: transaction.audience,\n scope: transaction.scope,\n baseUrl: this.domainUrl,\n client_id: this.options.client_id,\n code_verifier: transaction.code_verifier,\n grant_type: 'authorization_code',\n code,\n auth0Client: this.options.auth0Client,\n useFormData: this.options.useFormData,\n timeout: this.httpTimeoutMs\n } as OAuthTokenOptions;\n // some old versions of the SDK might not have added redirect_uri to the\n // transaction, we dont want the key to be set to undefined.\n if (undefined !== transaction.redirect_uri) {\n tokenOptions.redirect_uri = transaction.redirect_uri;\n }\n\n const authResult = await oauthToken(tokenOptions, this.worker);\n\n const decodedToken = await this._verifyIdToken(\n authResult.id_token,\n transaction.nonce,\n transaction.organizationId\n );\n\n await this.cacheManager.set({\n ...authResult,\n decodedToken,\n audience: transaction.audience,\n scope: transaction.scope,\n ...(authResult.scope ? { oauthTokenScope: authResult.scope } : null),\n client_id: this.options.client_id\n });\n\n this.cookieStorage.save(this.isAuthenticatedCookieName, true, {\n daysUntilExpire: this.sessionCheckExpiryDays,\n cookieDomain: this.options.cookieDomain\n });\n\n this._processOrgIdHint(decodedToken.claims.org_id);\n\n return {\n appState: transaction.appState\n };\n }\n\n /**\n * ```js\n * await auth0.checkSession();\n * ```\n *\n * Check if the user is logged in using `getTokenSilently`. The difference\n * with `getTokenSilently` is that this doesn't return a token, but it will\n * pre-fill the token cache.\n *\n * This method also heeds the `auth0.{clientId}.is.authenticated` cookie, as an optimization\n * to prevent calling Auth0 unnecessarily. If the cookie is not present because\n * there was no previous login (or it has expired) then tokens will not be refreshed.\n *\n * It should be used for silently logging in the user when you instantiate the\n * `Auth0Client` constructor. You should not need this if you are using the\n * `createAuth0Client` factory.\n *\n * **Note:** the cookie **may not** be present if running an app using a private tab, as some\n * browsers clear JS cookie data and local storage when the tab or page is closed, or on page reload. This effectively\n * means that `checkSession` could silently return without authenticating the user on page refresh when\n * using a private tab, despite having previously logged in. As a workaround, use `getTokenSilently` instead\n * and handle the possible `login_required` error [as shown in the readme](https://github.com/auth0/auth0-spa-js#creating-the-client).\n *\n * @param options\n */\n public async checkSession(options?: GetTokenSilentlyOptions) {\n if (!this.cookieStorage.get(this.isAuthenticatedCookieName)) {\n if (!this.cookieStorage.get(OLD_IS_AUTHENTICATED_COOKIE_NAME)) {\n return;\n } else {\n // Migrate the existing cookie to the new name scoped by client ID\n this.cookieStorage.save(this.isAuthenticatedCookieName, true, {\n daysUntilExpire: this.sessionCheckExpiryDays,\n cookieDomain: this.options.cookieDomain\n });\n\n this.cookieStorage.remove(OLD_IS_AUTHENTICATED_COOKIE_NAME);\n }\n }\n\n try {\n await this.getTokenSilently(options);\n } catch (error) {\n if (!RECOVERABLE_ERRORS.includes(error.error)) {\n throw error;\n }\n }\n }\n\n /**\n * Fetches a new access token and returns the response from the /oauth/token endpoint, omitting the refresh token.\n *\n * @param options\n */\n public async getTokenSilently(\n options: GetTokenSilentlyOptions & { detailedResponse: true }\n ): Promise<GetTokenSilentlyVerboseResponse>;\n\n /**\n * Fetches a new access token and returns it.\n *\n * @param options\n */\n public async getTokenSilently(\n options?: GetTokenSilentlyOptions\n ): Promise<string>;\n\n /**\n * Fetches a new access token, and either returns just the access token (the default) or the response from the /oauth/token endpoint, depending on the `detailedResponse` option.\n *\n * ```js\n * const token = await auth0.getTokenSilently(options);\n * ```\n *\n * If there's a valid token stored and it has more than 60 seconds\n * remaining before expiration, return the token. Otherwise, attempt\n * to obtain a new token.\n *\n * A new token will be obtained either by opening an iframe or a\n * refresh token (if `useRefreshTokens` is `true`)\n\n * If iframes are used, opens an iframe with the `/authorize` URL\n * using the parameters provided as arguments. Random and secure `state`\n * and `nonce` parameters will be auto-generated. If the response is successful,\n * results will be validated according to their expiration times.\n *\n * If refresh tokens are used, the token endpoint is called directly with the\n * 'refresh_token' grant. If no refresh token is available to make this call,\n * the SDK falls back to using an iframe to the '/authorize' URL.\n *\n * This method may use a web worker to perform the token call if the in-memory\n * cache is used.\n *\n * If an `audience` value is given to this function, the SDK always falls\n * back to using an iframe to make the token exchange.\n *\n * Note that in all cases, falling back to an iframe requires access to\n * the `auth0` cookie.\n *\n * @param options\n */\n public async getTokenSilently(\n options: GetTokenSilentlyOptions = {}\n ): Promise<string | GetTokenSilentlyVerboseResponse> {\n const { ignoreCache, ...getTokenOptions } = {\n audience: this.options.audience,\n ignoreCache: false,\n ...options,\n scope: getUniqueScopes(this.defaultScope, this.scope, options.scope)\n };\n\n return singlePromise(\n () =>\n this._getTokenSilently({\n ignoreCache,\n ...getTokenOptions\n }),\n `${this.options.client_id}::${getTokenOptions.audience}::${getTokenOptions.scope}`\n );\n }\n\n private async _getTokenSilently(\n options: GetTokenSilentlyOptions = {}\n ): Promise<string | GetTokenSilentlyVerboseResponse> {\n const { ignoreCache, ...getTokenOptions } = options;\n\n // Check the cache before acquiring the lock to avoid the latency of\n // `lock.acquireLock` when the cache is populated.\n if (!ignoreCache) {\n const entry = await this._getEntryFromCache({\n scope: getTokenOptions.scope,\n audience: getTokenOptions.audience || 'default',\n client_id: this.options.client_id,\n getDetailedEntry: options.detailedResponse\n });\n\n if (entry) {\n return entry;\n }\n }\n\n if (\n await retryPromise(\n () => lock.acquireLock(GET_TOKEN_SILENTLY_LOCK_KEY, 5000),\n 10\n )\n ) {\n try {\n // Check the cache a second time, because it may have been populated\n // by a previous call while this call was waiting to acquire the lock.\n if (!ignoreCache) {\n const entry = await this._getEntryFromCache({\n scope: getTokenOptions.scope,\n audience: getTokenOptions.audience || 'default',\n client_id: this.options.client_id,\n getDetailedEntry: options.detailedResponse\n });\n\n if (entry) {\n return entry;\n }\n }\n\n const authResult = this.options.useRefreshTokens\n ? await this._getTokenUsingRefreshToken(getTokenOptions)\n : await this._getTokenFromIFrame(getTokenOptions);\n\n await this.cacheManager.set({\n client_id: this.options.client_id,\n ...authResult\n });\n\n this.cookieStorage.save(this.isAuthenticatedCookieName, true, {\n daysUntilExpire: this.sessionCheckExpiryDays,\n cookieDomain: this.options.cookieDomain\n });\n\n if (options.detailedResponse) {\n const { id_token, access_token, oauthTokenScope, expires_in } =\n authResult;\n\n return {\n id_token,\n access_token,\n ...(oauthTokenScope ? { scope: oauthTokenScope } : null),\n expires_in\n };\n }\n\n return authResult.access_token;\n } finally {\n await lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY);\n }\n } else {\n throw new TimeoutError();\n }\n }\n\n /**\n * ```js\n * const token = await auth0.getTokenWithPopup(options);\n * ```\n * Opens a popup with the `/authorize` URL using the parameters\n * provided as arguments. Random and secure `state` and `nonce`\n * parameters will be auto-generated. If the response is successful,\n * results will be valid according to their expiration times.\n *\n * @param options\n * @param config\n */\n public async getTokenWithPopup(\n options: GetTokenWithPopupOptions = {},\n config: PopupConfigOptions = {}\n ) {\n options.audience = options.audience || this.options.audience;\n\n options.scope = getUniqueScopes(\n this.defaultScope,\n this.scope,\n options.scope\n );\n\n config = {\n ...DEFAULT_POPUP_CONFIG_OPTIONS,\n ...config\n };\n\n await this.loginWithPopup(options, config);\n\n const cache = await this.cacheManager.get(\n new CacheKey({\n scope: options.scope,\n audience: options.audience || 'default',\n client_id: this.options.client_id\n })\n );\n\n return cache.access_token;\n }\n\n /**\n * ```js\n * const isAuthenticated = await auth0.isAuthenticated();\n * ```\n *\n * Returns `true` if there's valid information stored,\n * otherwise returns `false`.\n *\n */\n public async isAuthenticated() {\n const user = await this.getUser();\n return !!user;\n }\n\n /**\n * ```js\n * await auth0.buildLogoutUrl(options);\n * ```\n *\n * Builds a URL to the logout endpoint using the parameters provided as arguments.\n * @param options\n */\n public buildLogoutUrl(options: LogoutUrlOptions = {}): string {\n if (options.client_id !== null) {\n options.client_id = options.client_id || this.options.client_id;\n } else {\n delete options.client_id;\n }\n\n const { federated, ...logoutOptions } = options;\n const federatedQuery = federated ? `&federated` : '';\n const url = this._url(`/v2/logout?${createQueryParams(logoutOptions)}`);\n\n return url + federatedQuery;\n }\n\n /**\n * ```js\n * auth0.logout();\n * ```\n *\n * Clears the application session and performs a redirect to `/v2/logout`, using\n * the parameters provided as arguments, to clear the Auth0 session.\n *\n * **Note:** If you are using a custom cache, and specifying `localOnly: true`, and you want to perform actions or read state from the SDK immediately after logout, you should `await` the result of calling `logout`.\n *\n * If the `federated` option is specified it also clears the Identity Provider session.\n * If the `localOnly` option is specified, it only clears the application session.\n * It is invalid to set both the `federated` and `localOnly` options to `true`,\n * and an error will be thrown if you do.\n * [Read more about how Logout works at Auth0](https://auth0.com/docs/logout).\n *\n * @param options\n */\n public logout(options: LogoutOptions = {}): Promise<void> | void {\n const { localOnly, ...logoutOptions } = options;\n\n if (localOnly && logoutOptions.federated) {\n throw new Error(\n 'It is invalid to set both the `federated` and `localOnly` options to `true`'\n );\n }\n\n const postCacheClear = () => {\n this.cookieStorage.remove(this.orgHintCookieName, { cookieDomain: this.options.cookieDomain });\n this.cookieStorage.remove(this.isAuthenticatedCookieName, { cookieDomain: this.options.cookieDomain });\n\n if (localOnly) {\n return;\n }\n\n const url = this.buildLogoutUrl(logoutOptions);\n\n window.location.assign(url);\n };\n\n if (this.options.cache) {\n return this.cacheManager.clear().then(() => postCacheClear());\n } else {\n this.cacheManager.clearSync();\n postCacheClear();\n }\n }\n\n private async _getTokenFromIFrame(\n options: GetTokenSilentlyOptions\n ): Promise<GetTokenSilentlyResult> {\n const stateIn = encode(createRandomString());\n const nonceIn = encode(createRandomString());\n const code_verifier = createRandomString();\n const code_challengeBuffer = await sha256(code_verifier);\n const code_challenge = bufferToBase64UrlEncoded(code_challengeBuffer);\n\n const { detailedResponse, ...withoutClientOptions } = options;\n\n const params = this._getParams(\n withoutClientOptions,\n stateIn,\n nonceIn,\n code_challenge,\n options.redirect_uri ||\n this.options.redirect_uri ||\n window.location.origin\n );\n\n const orgIdHint = this.cookieStorage.get<string>(this.orgHintCookieName);\n\n if (orgIdHint && !params.organization) {\n params.organization = orgIdHint;\n }\n\n const url = this._authorizeUrl({\n ...params,\n prompt: 'none',\n response_mode: 'web_message'\n });\n\n try {\n // When a browser is running in a Cross-Origin Isolated context, using iframes is not possible.\n // It doesn't throw an error but times out instead, so we should exit early and inform the user about the reason.\n // https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated\n if ((window as any).crossOriginIsolated) {\n throw new GenericError(\n 'login_required',\n 'The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.'\n );\n }\n\n const authorizeTimeout =\n options.timeoutInSeconds || this.options.authorizeTimeoutInSeconds;\n\n const codeResult = await runIframe(url, this.domainUrl, authorizeTimeout);\n\n if (stateIn !== codeResult.state) {\n throw new Error('Invalid state');\n }\n\n const {\n scope,\n audience,\n redirect_uri,\n ignoreCache,\n timeoutInSeconds,\n detailedResponse,\n ...customOptions\n } = options;\n\n const tokenResult = await oauthToken(\n {\n ...this.customOptions,\n ...customOptions,\n scope,\n audience,\n baseUrl: this.domainUrl,\n client_id: this.options.client_id,\n code_verifier,\n code: codeResult.code,\n grant_type: 'authorization_code',\n redirect_uri: params.redirect_uri,\n auth0Client: this.options.auth0Client,\n useFormData: this.options.useFormData,\n timeout: customOptions.timeout || this.httpTimeoutMs\n } as OAuthTokenOptions,\n this.worker\n );\n\n const decodedToken = await this._verifyIdToken(\n tokenResult.id_token,\n nonceIn\n );\n\n this._processOrgIdHint(decodedToken.claims.org_id);\n\n return {\n ...tokenResult,\n decodedToken,\n scope: params.scope,\n oauthTokenScope: tokenResult.scope,\n audience: params.audience || 'default'\n };\n } catch (e) {\n if (e.error === 'login_required') {\n this.logout({\n localOnly: true\n });\n }\n throw e;\n }\n }\n\n private async _getTokenUsingRefreshToken(\n options: GetTokenSilentlyOptions\n ): Promise<GetTokenSilentlyResult> {\n options.scope = getUniqueScopes(\n this.defaultScope,\n this.options.scope,\n options.scope\n );\n\n const cache = await this.cacheManager.get(\n new CacheKey({\n scope: options.scope,\n audience: options.audience || 'default',\n client_id: this.options.client_id\n })\n );\n\n // If you don't have a refresh token in memory\n // and you don't have a refresh token in web worker memory\n // fallback to an iframe.\n if ((!cache || !cache.refresh_token) && !this.worker) {\n if (this.useRefreshTokensFallback) {\n return await this._getTokenFromIFrame(options);\n }\n\n throw new MissingRefreshTokenError(\n options.audience || 'default',\n options.scope\n );\n }\n\n const redirect_uri =\n options.redirect_uri ||\n this.options.redirect_uri ||\n window.location.origin;\n\n let tokenResult: TokenEndpointResponse;\n\n const {\n scope,\n audience,\n ignoreCache,\n timeoutInSeconds,\n detailedResponse,\n ...customOptions\n } = options;\n\n const timeout =\n typeof options.timeoutInSeconds === 'number'\n ? options.timeoutInSeconds * 1000\n : null;\n\n try {\n tokenResult = await oauthToken(\n {\n ...this.customOptions,\n ...customOptions,\n audience,\n scope,\n baseUrl: this.domainUrl,\n client_id: this.options.client_id,\n grant_type: 'refresh_token',\n refresh_token: cache && cache.refresh_token,\n redirect_uri,\n ...(timeout && { timeout }),\n auth0Client: this.options.auth0Client,\n useFormData: this.options.useFormData,\n timeout: this.httpTimeoutMs\n } as RefreshTokenOptions,\n this.worker\n );\n } catch (e) {\n if (\n // The web worker didn't have a refresh token in memory so\n // fallback to an iframe.\n (e.message.indexOf(MISSING_REFRESH_TOKEN_ERROR_MESSAGE) > -1 ||\n // A refresh token was found, but is it no longer valid.\n // Fallback to an iframe.\n (e.message &&\n e.message.indexOf(INVALID_REFRESH_TOKEN_ERROR_MESSAGE) > -1)) &&\n this.useRefreshTokensFallback\n ) {\n return await this._getTokenFromIFrame(options);\n }\n\n throw e;\n }\n\n const decodedToken = await this._verifyIdToken(tokenResult.id_token);\n\n return {\n ...tokenResult,\n decodedToken,\n scope: options.scope,\n oauthTokenScope: tokenResult.scope,\n audience: options.audience || 'default'\n };\n }\n\n private async _getEntryFromCache({\n scope,\n audience,\n client_id,\n getDetailedEntry = false\n }: {\n scope: string;\n audience: string;\n client_id: string;\n getDetailedEntry?: boolean;\n }) {\n const entry = await this.cacheManager.get(\n new CacheKey({\n scope,\n audience,\n client_id\n }),\n 60 // get a new token if within 60 seconds of expiring\n );\n\n if (entry && entry.access_token) {\n if (getDetailedEntry) {\n const { id_token, access_token, oauthTokenScope, expires_in } = entry;\n\n return {\n id_token,\n access_token,\n ...(oauthTokenScope ? { scope: oauthTokenScope } : null),\n expires_in\n };\n }\n\n return entry.access_token;\n }\n }\n}\n","import 'core-js/es/string/starts-with';\nimport 'core-js/es/symbol';\nimport 'core-js/es/array/from';\nimport 'core-js/es/typed-array/slice';\nimport 'core-js/es/array/includes';\nimport 'core-js/es/string/includes';\nimport 'core-js/es/set';\nimport 'promise-polyfill/src/polyfill';\nimport 'fast-text-encoding';\nimport 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only';\n\nimport Auth0Client from './Auth0Client';\nimport { Auth0ClientOptions } from './global';\n\nimport './global';\n\nexport * from './global';\n\n/**\n * Asynchronously creates the Auth0Client instance and calls `checkSession`.\n *\n * **Note:** There are caveats to using this in a private browser tab, which may not silently authenticae\n * a user on page refresh. Please see [the checkSession docs](https://auth0.github.io/auth0-spa-js/classes/auth0client.html#checksession) for more info.\n *\n * @param options The client options\n * @returns An instance of Auth0Client\n */\nexport default async function createAuth0Client(options: Auth0ClientOptions) {\n const auth0 = new Auth0Client(options);\n await auth0.checkSession();\n return auth0;\n}\n\nexport { Auth0Client };\n\nexport {\n GenericError,\n AuthenticationError,\n TimeoutError,\n PopupTimeoutError,\n PopupCancelledError,\n MfaRequiredError\n} from './errors';\n\nexport { ICache, LocalStorageCache, InMemoryCache, Cacheable } from './cache';\n","import createAuth0Client, {\n Auth0Client,\n GenericError,\n AuthenticationError,\n TimeoutError,\n PopupTimeoutError,\n MfaRequiredError\n} from './index';\n\n/**\n * @ignore\n */\nconst wrapper = createAuth0Client as any;\n\nwrapper.Auth0Client = Auth0Client;\nwrapper.createAuth0Client = createAuth0Client;\nwrapper.GenericError = GenericError;\nwrapper.AuthenticationError = AuthenticationError;\nwrapper.TimeoutError = TimeoutError;\nwrapper.PopupTimeoutError = PopupTimeoutError;\nwrapper.MfaRequiredError = MfaRequiredError;\n\nexport default wrapper;\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","_","label","sent","trys","ops","f","y","g","verb","throw","return","Symbol","iterator","v","op","pop","push","__read","o","m","r","ar","error","__spreadArray","to","from","pack","l","slice","concat","check","it","Math","global_1","globalThis","window","self","global","Function","fails","exec","descriptors","defineProperty","get","functionBindNative","test","bind","functionCall","NATIVE_BIND","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","V","descriptor","enumerable","createPropertyDescriptor","bitmap","configurable","writable","FunctionPrototype","uncurryThis","functionUncurryThis","fn","toString","stringSlice","classofRaw","$Object","split","indexedObject","classof","$TypeError","requireObjectCoercible","undefined","toIndexedObject","IndexedObject","isCallable","argument","isObject","aFunction","getBuiltIn","namespace","method","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","process","Deno","versions","version","v8","match","userAgent","engineV8Version","nativeSymbol","symbol","sham","V8_VERSION","useSymbolAsUid","NATIVE_SYMBOL","isSymbol","USE_SYMBOL_AS_UID","$Symbol","$String","tryToString","aCallable","getMethod","func","ordinaryToPrimitive","input","pref","val","valueOf","defineGlobalProperty","key","SHARED","store","sharedStore","module","mode","copyright","license","source","toObject","hasOwnProperty_1","hasOwn","id","postfix","random","uid","WellKnownSymbolsStore","shared","symbolFor","createWellKnownSymbol","withoutSetter","wellKnownSymbol","name","description","TO_PRIMITIVE","toPrimitive","exoticToPrim","toPropertyKey","document","EXISTS","createElement","documentCreateElement","ie8DomDefine","DESCRIPTORS","a","$getOwnPropertyDescriptor","O","IE8_DOM_DEFINE","propertyIsEnumerableModule","v8PrototypeDefineBug","anObject","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","V8_PROTOTYPE_DEFINE_BUG","Attributes","current","createNonEnumerableProperty","object","definePropertyModule","getDescriptor","PROPER","something","functionName","functionToString","inspectSource","WeakMap","nativeWeakMap","keys","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","set","has","enforce","getterFor","TYPE","state","type","NATIVE_WEAK_MAP","wmget","wmhas","wmset","metadata","facade","STATE","internalState","CONFIGURABLE_FUNCTION_NAME","require$$0","enforceInternalState","InternalStateModule","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","exports","options","replace","getter","setter","arity","join","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","ceil","floor","mathTrunc","trunc","x","toIntegerOrInfinity","number","max","min","toAbsoluteIndex","index","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","arrayIncludes","includes","objectKeysInternal","names","enumBugKeys","getOwnPropertyNames","internalObjectKeys","ownKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","copyConstructorProperties","target","exceptions","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","toLowerCase","isForced_1","_export","TARGET","GLOBAL","STATIC","stat","FORCED","targetProperty","sourceProperty","dontCallGetSet","forced","TO_STRING_TAG","toStringTagSupport","CORRECT_ARGUMENTS","tryGet","TO_STRING_TAG_SUPPORT","tag","callee","toString_1","MATCH","isRegexp","isRegExp","notARegexp","correctIsRegexpLogic","METHOD_NAME","regexp","error1","error2","un$StartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","correctIsRegExpLogic","MDN_POLYFILL_BUG","$","proto","searchString","that","notARegExp","search","entryUnbind","CONSTRUCTOR","METHOD","isArray","MAX_SAFE_INTEGER","doesNotExceedSafeInteger","createProperty","propertyKey","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructor","isConstructorLegacy","called","SPECIES","$Array","arraySpeciesConstructor","originalArray","C","arraySpeciesCreate","arrayMethodHasSpeciesSupport","array","foo","Boolean","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","A","k","len","E","objectToString","objectKeys","defineProperties","Properties","props","html","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","NullProtoObjectViaActiveX","activeXDocument","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframe","JS","iframeDocument","style","display","appendChild","src","contentWindow","open","F","NullProtoObject","ActiveXObject","domain","objectCreate","definePropertiesModule","arraySliceSimple","start","end","fin","$getOwnPropertyNames","windowNames","getWindowNames","arraySlice","path","defineWellKnownSymbol","NAME","wrappedWellKnownSymbolModule","symbolDefineToPrimitive","SymbolPrototype","hint","setToStringTag","TAG","functionBindContext","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","boundFunction","arrayIteration","forEach","map","filter","some","every","find","findIndex","filterReject","$forEach","HIDDEN","SYMBOL","setInternalState","ObjectPrototype","QObject","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","getOwnPropertyNamesExternal","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","nativeObjectCreate","ObjectPrototypeDescriptor","wrap","$defineProperties","properties","$getOwnPropertySymbols","$create","IS_OBJECT_PROTOTYPE","$toString","useSetter","useSimple","defineSymbolToPrimitive","nativeSymbolRegistry","keyFor","StringToSymbolRegistry","SymbolToStringRegistry","NATIVE_SYMBOL_REGISTRY","for","sym","functionApply","Reflect","$stringify","charAt","charCodeAt","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","replacer","args","$replacer","fixIllFormed","offset","prev","stringify","space","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","desc","JSON","CONVERT_TO_STRING","pos","S","position","size","first","second","stringMultibyte","codeAt","correctPrototypeGetter","getPrototypeOf","objectGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","ITERATOR","BUGGY_SAFARI_ITERATORS","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","iteratorsCore","iterators","returnThis","createIteratorConstructor","IteratorConstructor","ENUMERABLE_NEXT","Iterators","aPossiblePrototype","objectSetPrototypeOf","CORRECT_SETTER","PROPER_FUNCTION_NAME","FunctionName","IteratorsCore","KEYS","VALUES","ENTRIES","defineIterator","Iterable","DEFAULT","IS_SET","getIterationMethod","KIND","defaultIterator","IterablePrototype","values","entries","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","methods","KEY","STRING_ITERATOR","iterated","point","iteratorClose","kind","innerResult","innerError","callWithSafeIterationClosing","ArrayPrototype","isArrayIteratorMethod","getIteratorMethod","getIterator","usingIterator","iteratorMethod","arrayFrom","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","SAFE_CLOSING","iteratorWithReturn","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","INCORRECT_ITERATION","iterable","arrayBufferNative","ArrayBuffer","DataView","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","NATIVE_ARRAY_BUFFER","opera","TYPED_ARRAY_TAG_REQUIRED","Constructor","Prototype","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","klass","getTypedArrayConstructor","isTypedArray","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","property","ARRAY","TypedArrayConstructor","exportTypedArrayStaticMethod","arrayBufferViewCore","aConstructor","speciesConstructor","defaultConstructor","ArrayBufferViewCore","typedArraySpeciesConstructor","list","UNSCOPABLES","addToUnscopables","$includes","BROKEN_ON_SPARSE","stringIndexOf","ARRAY_ITERATOR","Arguments","arrayBufferNonExtensible","buffer","isExtensible","$isExtensible","FAILS_ON_PRIMITIVES","objectIsExtensible","ARRAY_BUFFER_NON_EXTENSIBLE","freezing","preventExtensions","REQUIRED","METADATA","setMetadata","objectID","weakData","fastKey","getWeakData","onFreeze","FREEZING","enable","meta","splice","getOwnPropertyNamesExternalModule","Result","stopped","ResultPrototype","iterate","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","stop","condition","callFn","anInstance","inheritIfRequired","dummy","Wrapper","NewTarget","NewTargetPrototype","collection","CONSTRUCTOR_NAME","wrapper","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","add","REPLACE","getConstructor","InternalMetadataModule","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","clear","setStrong","defineBuiltIns","setSpecies","require$$1","internalStateGetterFor","collectionStrong","last","define","entry","getEntry","previous","removed","delete","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","init","Set","finallyConstructor","callback","reason","allSettled","arr","remaining","res","status","setTimeoutFunc","setTimeout","_state","_handled","_value","_deferreds","doResolve","handle","deferred","_immediateFn","cb","onFulfilled","onRejected","promise","ret","newValue","finale","_unhandledRejectionFn","Handler","ex","prom","promiseFinally","all","race","setImmediate","err","console","warn","globalNS","Error","factory","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","_isNativeReflectConstruct","Proxy","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","_createSuperInternal","Super","_superPropBase","_get","receiver","base","Emitter","addEventListener","listeners","removeEventListener","stack","dispatchEvent","event","stackToCall","listener","once","defaultPrevented","AbortSignal","_Emitter","_super","_this","aborted","onabort","AbortController","abort","Event","createEvent","createEventObject","initEvent","bubbles","cancelable","signal","toStringTag","polyfillNeeded","__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL","log","Request","DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS","DEFAULT_POPUP_CONFIG_OPTIONS","timeoutInSeconds","DEFAULT_SILENT_TOKEN_RETRY_COUNT","CLEANUP_IFRAME_TIMEOUT_IN_SECONDS","DEFAULT_FETCH_TIMEOUT_MS","CACHE_LOCATION_MEMORY","MISSING_REFRESH_TOKEN_ERROR_MESSAGE","INVALID_REFRESH_TOKEN_ERROR_MESSAGE","DEFAULT_SCOPE","RECOVERABLE_ERRORS","DEFAULT_SESSION_CHECK_EXPIRY_DAYS","DEFAULT_AUTH0_CLIENT","DEFAULT_NOW_PROVIDER","Date","now","GenericError","error_description","fromPayload","_a","AuthenticationError","appState","TimeoutError","PopupTimeoutError","popup","PopupCancelledError","MfaRequiredError","mfa_token","MissingRefreshTokenError","audience","scope","valueOrEmptyString","parseQueryResult","queryString","substr","queryParams","parsedQuery","qp","decodeURIComponent","expires_in","parseInt","runIframe","authorizeUrl","eventOrigin","rej","setAttribute","removeIframe","contains","removeChild","iframeEventHandler","timeoutSetTimeoutId","origin","eventSource","response","clearTimeout","openPopup","url","width","height","left","screenX","innerWidth","top","screenY","innerHeight","runPopup","config","popupEventListener","popupTimer","setInterval","closed","clearInterval","timeoutId","getCrypto","crypto","msCrypto","getCryptoSubtle","subtle","webkitSubtle","createRandomString","charset","randomValues","getRandomValues","encode","btoa","createQueryParams","params","encodeURIComponent","sha256","digestOp","digest","TextEncoder","oncomplete","onerror","urlEncodeB64","b64Chars","decodeB64","atob","c","urlDecodeB64","bufferToBase64UrlEncoded","ie11SafeInput","fromCharCode","validateCrypto","exclude","sendMessage","message","messageChannel","MessageChannel","port1","onmessage","postMessage","port2","createAbortController","dofetch","fetchUrl","fetchOptions","fetch","_b","ok","json","fetchWithoutWorker","timeout","controller","finally","fetchWithWorker","worker","useFormData","auth","switchFetch","getJSON","fetchError","e_1","errorMessage","oauthToken","baseUrl","auth0Client","headers","dedupe","getUniqueScopes","scopes","_i","trim","CACHE_KEY_PREFIX","CacheKey","prefix","client_id","toKey","fromKey","fromCacheEntry","LocalStorageCache","localStorage","setItem","getItem","payload","parse","remove","removeItem","allKeys","InMemoryCache","enclosedCache","cache","cacheEntry","DEFAULT_EXPIRY_ADJUSTMENT_SECONDS","CacheManager","keyManifest","nowProvider","cacheKey","expiryAdjustmentSeconds","wrappedEntry","getCacheKeys","matchedKey","matchExistingCacheKey","nowSeconds","expiresAt","refresh_token","wrapCacheEntry","clientId","reduce","memo","clearSync","expiresInTime","expirySeconds","decodedToken","claims","exp","_c","keyToMatch","scopeSet","scopesToMatch","hasAllScopes","acc","TRANSACTION_STORAGE_KEY_PREFIX","TransactionManager","storage","storageKey","transaction","save","daysUntilExpire","isNumber","idTokendecoded","decode","token","parts","header","signature","payloadJSON","__raw","user","encoded","verify","id_token","decoded","iss","sub","alg","aud","azp","nonce","max_age","auth_time","iat","leeway","expDate","nbfDate","authTimeDate","setUTCSeconds","nbf","organizationId","org_id","CookieStorage","Cookies","cookieAttributes","location","protocol","secure","sameSite","expires","cookieDomain","LEGACY_PREFIX","CookieStorageWithLegacySameSite","SessionStorage","sessionStorage","isIE11","navigator","singlePromiseMap","singlePromise","retryPromise","maxNumberOfRetries","CacheKeyManifest","manifestKey","createManifestKeyFrom","lock","Lock","GET_TOKEN_SILENTLY_LOCK_KEY","buildOrganizationHintCookieName","OLD_IS_AUTHENTICATED_COOKIE_NAME","buildIsAuthenticatedCookieName","cacheLocationBuilders","memory","localstorage","cacheFactory","supportWebWorker","getTokenIssuer","issuer","domainUrl","getDomain","getCustomInitialOptions","advancedOptions","authorizeTimeoutInSeconds","useRefreshTokensFallback","useCookiesForTransactions","customParams","Auth0Client","cacheLocation","httpTimeoutMs","httpTimeoutInSeconds","cookieStorage","legacySameSiteCookie","orgHintCookieName","isAuthenticatedCookieName","sessionCheckExpiryDays","transactionStorage","transactionManager","cacheManager","tokenIssuer","defaultScope","useRefreshTokens","Worker","TokenWorker","customOptions","_url","_getParams","authorizeOptions","code_challenge","redirect_uri","detailedResponse","loginOptions","response_type","response_mode","code_challenge_method","_authorizeUrl","_verifyIdToken","verifyIdToken","_parseNumber","_processOrgIdHint","buildAuthorizeUrl","stateIn","nonceIn","code_verifier","code_challengeBuffer","fragment","organization","loginWithPopup","href","codeResult","code","grant_type","authResult","getUser","getIdTokenClaims","loginWithRedirect","redirectMethod","urlOptions","handleRedirectCallback","queryStringFragments","tokenOptions","oauthTokenScope","checkSession","getTokenSilently","error_1","ignoreCache","getTokenOptions","_getTokenSilently","_getEntryFromCache","getDetailedEntry","acquireLock","_getTokenUsingRefreshToken","_getTokenFromIFrame","access_token","releaseLock","getTokenWithPopup","isAuthenticated","buildLogoutUrl","federated","logoutOptions","federatedQuery","logout","localOnly","postCacheClear","withoutClientOptions","orgIdHint","prompt","crossOriginIsolated","authorizeTimeout","tokenResult","e_2","createAuth0Client","auth0"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth0-spa-js.cjs.js","sources":["../../node_modules/tslib/tslib.es6.js","../../node_modules/browser-tabs-lock/processLock.js","../../node_modules/browser-tabs-lock/index.js","../../src/version.ts","../../src/constants.ts","../../src/errors.ts","../../src/utils.ts","../../src/worker/worker.utils.ts","../../src/http.ts","../../src/api.ts","../../src/scope.ts","../../src/cache/shared.ts","../../src/cache/cache-localstorage.ts","../../src/cache/cache-memory.ts","../../src/cache/cache-manager.ts","../../src/transaction-manager.ts","../../src/jwt.ts","../../node_modules/es-cookie/src/es-cookie.js","../../src/storage.ts","../../src/promise-utils.ts","../../src/cache/key-manifest.ts","../../src/Auth0Client.utils.ts","../../src/Auth0Client.ts","../../src/global.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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ProcessLocking = /** @class */ (function () {\n function ProcessLocking() {\n var _this = this;\n this.locked = new Map();\n this.addToLocked = function (key, toAdd) {\n var callbacks = _this.locked.get(key);\n if (callbacks === undefined) {\n if (toAdd === undefined) {\n _this.locked.set(key, []);\n }\n else {\n _this.locked.set(key, [toAdd]);\n }\n }\n else {\n if (toAdd !== undefined) {\n callbacks.unshift(toAdd);\n _this.locked.set(key, callbacks);\n }\n }\n };\n this.isLocked = function (key) {\n return _this.locked.has(key);\n };\n this.lock = function (key) {\n return new Promise(function (resolve, reject) {\n if (_this.isLocked(key)) {\n _this.addToLocked(key, resolve);\n }\n else {\n _this.addToLocked(key);\n resolve();\n }\n });\n };\n this.unlock = function (key) {\n var callbacks = _this.locked.get(key);\n if (callbacks === undefined || callbacks.length === 0) {\n _this.locked.delete(key);\n return;\n }\n var toCall = callbacks.pop();\n _this.locked.set(key, callbacks);\n if (toCall !== undefined) {\n setTimeout(toCall, 0);\n }\n };\n }\n ProcessLocking.getInstance = function () {\n if (ProcessLocking.instance === undefined) {\n ProcessLocking.instance = new ProcessLocking();\n }\n return ProcessLocking.instance;\n };\n return ProcessLocking;\n}());\nfunction getLock() {\n return ProcessLocking.getInstance();\n}\nexports.default = getLock;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar processLock_1 = require(\"./processLock\");\n/**\n * @author: SuperTokens (https://github.com/supertokens)\n * This library was created as a part of a larger project, SuperTokens(https://supertokens.io) - the best session management solution.\n * You can also check out our other projects on https://github.com/supertokens\n *\n * To contribute to this package visit https://github.com/supertokens/browser-tabs-lock\n * If you face any problems you can file an issue on https://github.com/supertokens/browser-tabs-lock/issues\n *\n * If you have any questions or if you just want to say hi visit https://supertokens.io/discord\n */\n/**\n * @constant\n * @type {string}\n * @default\n * @description All the locks taken by this package will have this as prefix\n*/\nvar LOCK_STORAGE_KEY = 'browser-tabs-lock-key';\n/**\n * @function delay\n * @param {number} milliseconds - How long the delay should be in terms of milliseconds\n * @returns {Promise<void>}\n */\nfunction delay(milliseconds) {\n return new Promise(function (resolve) { return setTimeout(resolve, milliseconds); });\n}\n/**\n * @function generateRandomString\n * @params {number} length - How long the random string should be\n * @returns {string}\n * @description returns random string whose length is equal to the length passed as parameter\n */\nfunction generateRandomString(length) {\n var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';\n var randomstring = '';\n for (var i = 0; i < length; i++) {\n var INDEX = Math.floor(Math.random() * CHARS.length);\n randomstring += CHARS[INDEX];\n }\n return randomstring;\n}\n/**\n * @function getLockId\n * @returns {string}\n * @description Generates an id which will be unique for the browser tab\n */\nfunction getLockId() {\n return Date.now().toString() + generateRandomString(15);\n}\nvar SuperTokensLock = /** @class */ (function () {\n function SuperTokensLock() {\n this.acquiredIatSet = new Set();\n this.id = getLockId();\n this.acquireLock = this.acquireLock.bind(this);\n this.releaseLock = this.releaseLock.bind(this);\n this.releaseLock__private__ = this.releaseLock__private__.bind(this);\n this.waitForSomethingToChange = this.waitForSomethingToChange.bind(this);\n this.refreshLockWhileAcquired = this.refreshLockWhileAcquired.bind(this);\n if (SuperTokensLock.waiters === undefined) {\n SuperTokensLock.waiters = [];\n }\n }\n /**\n * @async\n * @memberOf Lock\n * @function acquireLock\n * @param {string} lockKey - Key for which the lock is being acquired\n * @param {number} [timeout=5000] - Maximum time for which the function will wait to acquire the lock\n * @returns {Promise<boolean>}\n * @description Will return true if lock is being acquired, else false.\n * Also the lock can be acquired for maximum 10 secs\n */\n SuperTokensLock.prototype.acquireLock = function (lockKey, timeout) {\n if (timeout === void 0) { timeout = 5000; }\n return __awaiter(this, void 0, void 0, function () {\n var iat, MAX_TIME, STORAGE_KEY, STORAGE, lockObj, TIMEOUT_KEY, lockObjPostDelay;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n iat = Date.now() + generateRandomString(4);\n MAX_TIME = Date.now() + timeout;\n STORAGE_KEY = LOCK_STORAGE_KEY + \"-\" + lockKey;\n STORAGE = window.localStorage;\n _a.label = 1;\n case 1:\n if (!(Date.now() < MAX_TIME)) return [3 /*break*/, 8];\n return [4 /*yield*/, delay(30)];\n case 2:\n _a.sent();\n lockObj = STORAGE.getItem(STORAGE_KEY);\n if (!(lockObj === null)) return [3 /*break*/, 5];\n TIMEOUT_KEY = this.id + \"-\" + lockKey + \"-\" + iat;\n // there is a problem if setItem happens at the exact same time for 2 different processes.. so we add some random delay here.\n return [4 /*yield*/, delay(Math.floor(Math.random() * 25))];\n case 3:\n // there is a problem if setItem happens at the exact same time for 2 different processes.. so we add some random delay here.\n _a.sent();\n STORAGE.setItem(STORAGE_KEY, JSON.stringify({\n id: this.id,\n iat: iat,\n timeoutKey: TIMEOUT_KEY,\n timeAcquired: Date.now(),\n timeRefreshed: Date.now()\n }));\n return [4 /*yield*/, delay(30)];\n case 4:\n _a.sent(); // this is to prevent race conditions. This time must be more than the time it takes for storage.setItem\n lockObjPostDelay = STORAGE.getItem(STORAGE_KEY);\n if (lockObjPostDelay !== null) {\n lockObjPostDelay = JSON.parse(lockObjPostDelay);\n if (lockObjPostDelay.id === this.id && lockObjPostDelay.iat === iat) {\n this.acquiredIatSet.add(iat);\n this.refreshLockWhileAcquired(STORAGE_KEY, iat);\n return [2 /*return*/, true];\n }\n }\n return [3 /*break*/, 7];\n case 5:\n SuperTokensLock.lockCorrector();\n return [4 /*yield*/, this.waitForSomethingToChange(MAX_TIME)];\n case 6:\n _a.sent();\n _a.label = 7;\n case 7:\n iat = Date.now() + generateRandomString(4);\n return [3 /*break*/, 1];\n case 8: return [2 /*return*/, false];\n }\n });\n });\n };\n SuperTokensLock.prototype.refreshLockWhileAcquired = function (storageKey, iat) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\n var STORAGE, lockObj;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, processLock_1.default().lock(iat)];\n case 1:\n _a.sent();\n if (!this.acquiredIatSet.has(iat)) {\n processLock_1.default().unlock(iat);\n return [2 /*return*/];\n }\n STORAGE = window.localStorage;\n lockObj = STORAGE.getItem(storageKey);\n if (lockObj !== null) {\n lockObj = JSON.parse(lockObj);\n lockObj.timeRefreshed = Date.now();\n STORAGE.setItem(storageKey, JSON.stringify(lockObj));\n processLock_1.default().unlock(iat);\n }\n else {\n processLock_1.default().unlock(iat);\n return [2 /*return*/];\n }\n this.refreshLockWhileAcquired(storageKey, iat);\n return [2 /*return*/];\n }\n });\n }); }, 1000);\n return [2 /*return*/];\n });\n });\n };\n SuperTokensLock.prototype.waitForSomethingToChange = function (MAX_TIME) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, new Promise(function (resolve) {\n var resolvedCalled = false;\n var startedAt = Date.now();\n var MIN_TIME_TO_WAIT = 50; // ms\n var removedListeners = false;\n function stopWaiting() {\n if (!removedListeners) {\n window.removeEventListener('storage', stopWaiting);\n SuperTokensLock.removeFromWaiting(stopWaiting);\n clearTimeout(timeOutId);\n removedListeners = true;\n }\n if (!resolvedCalled) {\n resolvedCalled = true;\n var timeToWait = MIN_TIME_TO_WAIT - (Date.now() - startedAt);\n if (timeToWait > 0) {\n setTimeout(resolve, timeToWait);\n }\n else {\n resolve();\n }\n }\n }\n window.addEventListener('storage', stopWaiting);\n SuperTokensLock.addToWaiting(stopWaiting);\n var timeOutId = setTimeout(stopWaiting, Math.max(0, MAX_TIME - Date.now()));\n })];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n SuperTokensLock.addToWaiting = function (func) {\n this.removeFromWaiting(func);\n if (SuperTokensLock.waiters === undefined) {\n return;\n }\n SuperTokensLock.waiters.push(func);\n };\n SuperTokensLock.removeFromWaiting = function (func) {\n if (SuperTokensLock.waiters === undefined) {\n return;\n }\n SuperTokensLock.waiters = SuperTokensLock.waiters.filter(function (i) { return i !== func; });\n };\n SuperTokensLock.notifyWaiters = function () {\n if (SuperTokensLock.waiters === undefined) {\n return;\n }\n var waiters = SuperTokensLock.waiters.slice(); // so that if Lock.waiters is changed it's ok.\n waiters.forEach(function (i) { return i(); });\n };\n /**\n * @function releaseLock\n * @memberOf Lock\n * @param {string} lockKey - Key for which lock is being released\n * @returns {void}\n * @description Release a lock.\n */\n SuperTokensLock.prototype.releaseLock = function (lockKey) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.releaseLock__private__(lockKey)];\n case 1: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n /**\n * @function releaseLock\n * @memberOf Lock\n * @param {string} lockKey - Key for which lock is being released\n * @returns {void}\n * @description Release a lock.\n */\n SuperTokensLock.prototype.releaseLock__private__ = function (lockKey) {\n return __awaiter(this, void 0, void 0, function () {\n var STORAGE, STORAGE_KEY, lockObj;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n STORAGE = window.localStorage;\n STORAGE_KEY = LOCK_STORAGE_KEY + \"-\" + lockKey;\n lockObj = STORAGE.getItem(STORAGE_KEY);\n if (lockObj === null) {\n return [2 /*return*/];\n }\n lockObj = JSON.parse(lockObj);\n if (!(lockObj.id === this.id)) return [3 /*break*/, 2];\n return [4 /*yield*/, processLock_1.default().lock(lockObj.iat)];\n case 1:\n _a.sent();\n this.acquiredIatSet.delete(lockObj.iat);\n STORAGE.removeItem(STORAGE_KEY);\n processLock_1.default().unlock(lockObj.iat);\n SuperTokensLock.notifyWaiters();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n /**\n * @function lockCorrector\n * @returns {void}\n * @description If a lock is acquired by a tab and the tab is closed before the lock is\n * released, this function will release those locks\n */\n SuperTokensLock.lockCorrector = function () {\n var MIN_ALLOWED_TIME = Date.now() - 5000;\n var STORAGE = window.localStorage;\n var KEYS = Object.keys(STORAGE);\n var notifyWaiters = false;\n for (var i = 0; i < KEYS.length; i++) {\n var LOCK_KEY = KEYS[i];\n if (LOCK_KEY.includes(LOCK_STORAGE_KEY)) {\n var lockObj = STORAGE.getItem(LOCK_KEY);\n if (lockObj !== null) {\n lockObj = JSON.parse(lockObj);\n if ((lockObj.timeRefreshed === undefined && lockObj.timeAcquired < MIN_ALLOWED_TIME) ||\n (lockObj.timeRefreshed !== undefined && lockObj.timeRefreshed < MIN_ALLOWED_TIME)) {\n STORAGE.removeItem(LOCK_KEY);\n notifyWaiters = true;\n }\n }\n }\n }\n if (notifyWaiters) {\n SuperTokensLock.notifyWaiters();\n }\n };\n SuperTokensLock.waiters = undefined;\n return SuperTokensLock;\n}());\nexports.default = SuperTokensLock;\n","export default '2.0.0-beta.0';\n","import { PopupConfigOptions } from './global';\nimport version from './version';\n\n/**\n * @ignore\n */\nexport const DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS = 60;\n\n/**\n * @ignore\n */\nexport const DEFAULT_POPUP_CONFIG_OPTIONS: PopupConfigOptions = {\n timeoutInSeconds: DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS\n};\n\n/**\n * @ignore\n */\nexport const DEFAULT_SILENT_TOKEN_RETRY_COUNT = 3;\n\n/**\n * @ignore\n */\nexport const CLEANUP_IFRAME_TIMEOUT_IN_SECONDS = 2;\n\n/**\n * @ignore\n */\nexport const DEFAULT_FETCH_TIMEOUT_MS = 10000;\n\nexport const CACHE_LOCATION_MEMORY = 'memory';\nexport const CACHE_LOCATION_LOCAL_STORAGE = 'localstorage';\n\n/**\n * @ignore\n */\nexport const MISSING_REFRESH_TOKEN_ERROR_MESSAGE = 'Missing Refresh Token';\n\n/**\n * @ignore\n */\nexport const INVALID_REFRESH_TOKEN_ERROR_MESSAGE = 'invalid refresh token';\n\n/**\n * @ignore\n */\nexport const DEFAULT_SCOPE = 'openid profile email';\n\n/**\n * @ignore\n */\nexport const DEFAULT_SESSION_CHECK_EXPIRY_DAYS = 1;\n\n/**\n * @ignore\n */\nexport const DEFAULT_AUTH0_CLIENT = {\n name: 'auth0-spa-js',\n version: version\n};\n\nexport const DEFAULT_NOW_PROVIDER = () => Date.now();\n","/**\n * Thrown when network requests to the Auth server fail.\n */\nexport class GenericError extends Error {\n constructor(public error: string, public error_description: string) {\n super(error_description);\n Object.setPrototypeOf(this, GenericError.prototype);\n }\n\n static fromPayload({\n error,\n error_description\n }: {\n error: string;\n error_description: string;\n }) {\n return new GenericError(error, error_description);\n }\n}\n\n/**\n * Thrown when handling the redirect callback fails, will be one of Auth0's\n * Authentication API's Standard Error Responses: https://auth0.com/docs/api/authentication?javascript#standard-error-responses\n */\nexport class AuthenticationError extends GenericError {\n constructor(\n error: string,\n error_description: string,\n public state: string,\n public appState: any = null\n ) {\n super(error, error_description);\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n }\n}\n\n/**\n * Thrown when silent auth times out (usually due to a configuration issue) or\n * when network requests to the Auth server timeout.\n */\nexport class TimeoutError extends GenericError {\n constructor() {\n super('timeout', 'Timeout');\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, TimeoutError.prototype);\n }\n}\n\n/**\n * Error thrown when the login popup times out (if the user does not complete auth)\n */\nexport class PopupTimeoutError extends TimeoutError {\n constructor(public popup: Window) {\n super();\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PopupTimeoutError.prototype);\n }\n}\n\nexport class PopupCancelledError extends GenericError {\n constructor(public popup: Window) {\n super('cancelled', 'Popup closed');\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, PopupCancelledError.prototype);\n }\n}\n\n/**\n * Error thrown when the token exchange results in a `mfa_required` error\n */\nexport class MfaRequiredError extends GenericError {\n constructor(\n error: string,\n error_description: string,\n public mfa_token: string\n ) {\n super(error, error_description);\n //https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, MfaRequiredError.prototype);\n }\n}\n\nexport class MissingRefreshTokenError extends GenericError {\n constructor(public audience: string, public scope: string) {\n super(\n 'missing_refresh_token',\n `Missing Refresh Token (audience: '${valueOrEmptyString(audience, [\n 'default'\n ])}', scope: '${valueOrEmptyString(scope)}')`\n );\n Object.setPrototypeOf(this, MissingRefreshTokenError.prototype);\n }\n}\n\n/**\n * Returns an empty string when value is falsy, or when it's value is included in the exclude argument.\n * @param value The value to check\n * @param exclude An array of values that should result in an empty string.\n * @returns The value, or an empty string when falsy or included in the exclude argument.\n */\nfunction valueOrEmptyString(value: string, exclude: string[] = []) {\n return value && !exclude.includes(value) ? value : '';\n}\n","import { AuthenticationResult, PopupConfigOptions } from './global';\n\nimport {\n DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS,\n CLEANUP_IFRAME_TIMEOUT_IN_SECONDS\n} from './constants';\n\nimport {\n PopupTimeoutError,\n TimeoutError,\n GenericError,\n PopupCancelledError\n} from './errors';\n\nexport const parseQueryResult = (queryString: string): AuthenticationResult => {\n if (queryString.indexOf('#') > -1) {\n queryString = queryString.substr(0, queryString.indexOf('#'));\n }\n\n const queryParams = queryString.split('&');\n const parsedQuery: Record<string, any> = {};\n\n queryParams.forEach(qp => {\n const [key, val] = qp.split('=');\n parsedQuery[key] = decodeURIComponent(val);\n });\n\n if (parsedQuery.expires_in) {\n parsedQuery.expires_in = parseInt(parsedQuery.expires_in);\n }\n\n return parsedQuery as AuthenticationResult;\n};\n\nexport const runIframe = (\n authorizeUrl: string,\n eventOrigin: string,\n timeoutInSeconds: number = DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS\n) => {\n return new Promise<AuthenticationResult>((res, rej) => {\n const iframe = window.document.createElement('iframe');\n\n iframe.setAttribute('width', '0');\n iframe.setAttribute('height', '0');\n iframe.style.display = 'none';\n\n const removeIframe = () => {\n if (window.document.body.contains(iframe)) {\n window.document.body.removeChild(iframe);\n window.removeEventListener('message', iframeEventHandler, false);\n }\n };\n\n let iframeEventHandler: (e: MessageEvent) => void;\n\n const timeoutSetTimeoutId = setTimeout(() => {\n rej(new TimeoutError());\n removeIframe();\n }, timeoutInSeconds * 1000);\n\n iframeEventHandler = function (e: MessageEvent) {\n if (e.origin != eventOrigin) return;\n if (!e.data || e.data.type !== 'authorization_response') return;\n\n const eventSource = e.source;\n\n if (eventSource) {\n (eventSource as any).close();\n }\n\n e.data.response.error\n ? rej(GenericError.fromPayload(e.data.response))\n : res(e.data.response);\n\n clearTimeout(timeoutSetTimeoutId);\n window.removeEventListener('message', iframeEventHandler, false);\n\n // Delay the removal of the iframe to prevent hanging loading status\n // in Chrome: https://github.com/auth0/auth0-spa-js/issues/240\n setTimeout(removeIframe, CLEANUP_IFRAME_TIMEOUT_IN_SECONDS * 1000);\n };\n\n window.addEventListener('message', iframeEventHandler, false);\n window.document.body.appendChild(iframe);\n iframe.setAttribute('src', authorizeUrl);\n });\n};\n\nexport const openPopup = (url: string) => {\n const width = 400;\n const height = 600;\n const left = window.screenX + (window.innerWidth - width) / 2;\n const top = window.screenY + (window.innerHeight - height) / 2;\n\n return window.open(\n url,\n 'auth0:authorize:popup',\n `left=${left},top=${top},width=${width},height=${height},resizable,scrollbars=yes,status=1`\n );\n};\n\nexport const runPopup = (config: PopupConfigOptions) => {\n return new Promise<AuthenticationResult>((resolve, reject) => {\n let popupEventListener: EventListenerOrEventListenerObject;\n\n // Check each second if the popup is closed triggering a PopupCancelledError\n const popupTimer = setInterval(() => {\n if (config.popup && config.popup.closed) {\n clearInterval(popupTimer);\n clearTimeout(timeoutId);\n window.removeEventListener('message', popupEventListener, false);\n reject(new PopupCancelledError(config.popup));\n }\n }, 1000);\n\n const timeoutId = setTimeout(() => {\n clearInterval(popupTimer);\n reject(new PopupTimeoutError(config.popup));\n window.removeEventListener('message', popupEventListener, false);\n }, (config.timeoutInSeconds || DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS) * 1000);\n\n popupEventListener = function (e: MessageEvent) {\n if (!e.data || e.data.type !== 'authorization_response') {\n return;\n }\n\n clearTimeout(timeoutId);\n clearInterval(popupTimer);\n window.removeEventListener('message', popupEventListener, false);\n config.popup.close();\n\n if (e.data.response.error) {\n return reject(GenericError.fromPayload(e.data.response));\n }\n\n resolve(e.data.response);\n };\n\n window.addEventListener('message', popupEventListener);\n });\n};\n\nexport const getCrypto = () => {\n return window.crypto;\n};\n\nexport const createRandomString = () => {\n const charset =\n '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.';\n let random = '';\n const randomValues = Array.from(\n getCrypto().getRandomValues(new Uint8Array(43))\n );\n randomValues.forEach(v => (random += charset[v % charset.length]));\n return random;\n};\n\nexport const encode = (value: string) => btoa(value);\nexport const decode = (value: string) => atob(value);\n\nconst stripUndefined = (params: any) => {\n return Object.keys(params)\n .filter(k => typeof params[k] !== 'undefined')\n .reduce((acc, key) => ({ ...acc, [key]: params[key] }), {});\n};\n\nexport const createQueryParams = ({ clientId: client_id, ...params }: any) => {\n return new URLSearchParams(\n stripUndefined({ client_id, ...params })\n ).toString();\n};\n\nexport const sha256 = async (s: string) => {\n const digestOp: any = getCrypto().subtle.digest(\n { name: 'SHA-256' },\n new TextEncoder().encode(s)\n );\n\n return await digestOp;\n};\n\nconst urlEncodeB64 = (input: string) => {\n const b64Chars: { [index: string]: string } = { '+': '-', '/': '_', '=': '' };\n return input.replace(/[+/=]/g, (m: string) => b64Chars[m]);\n};\n\n// https://stackoverflow.com/questions/30106476/\nconst decodeB64 = (input: string) =>\n decodeURIComponent(\n atob(input)\n .split('')\n .map(c => {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join('')\n );\n\nexport const urlDecodeB64 = (input: string) =>\n decodeB64(input.replace(/_/g, '/').replace(/-/g, '+'));\n\nexport const bufferToBase64UrlEncoded = (input: number[] | Uint8Array) => {\n const ie11SafeInput = new Uint8Array(input);\n return urlEncodeB64(\n window.btoa(String.fromCharCode(...Array.from(ie11SafeInput)))\n );\n};\n\nexport const validateCrypto = () => {\n if (!getCrypto()) {\n throw new Error(\n 'For security reasons, `window.crypto` is required to run `auth0-spa-js`.'\n );\n }\n if (typeof getCrypto().subtle === 'undefined') {\n throw new Error(`\n auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/master/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.\n `);\n }\n};\n\n/**\n * @ignore\n */\nexport const getDomain = (domainUrl: string) => {\n if (!/^https?:\\/\\//.test(domainUrl)) {\n return `https://${domainUrl}`;\n }\n\n return domainUrl;\n};\n\n/**\n * @ignore\n */\nexport const getTokenIssuer = (issuer: string, domainUrl: string) => {\n if (issuer) {\n return issuer.startsWith('https://') ? issuer : `https://${issuer}/`;\n }\n\n return `${domainUrl}/`;\n};\n\nexport const parseNumber = (value: any): number => {\n if (typeof value !== 'string') {\n return value;\n }\n return parseInt(value, 10) || undefined;\n};\n","import { WorkerRefreshTokenMessage } from './worker.types';\n\n/**\n * Sends the specified message to the web worker\n * @param message The message to send\n * @param to The worker to send the message to\n */\nexport const sendMessage = (message: WorkerRefreshTokenMessage, to: Worker) =>\n new Promise(function (resolve, reject) {\n const messageChannel = new MessageChannel();\n\n messageChannel.port1.onmessage = function (event) {\n // Only for fetch errors, as these get retried\n if (event.data.error) {\n reject(new Error(event.data.error));\n } else {\n resolve(event.data);\n }\n };\n\n to.postMessage(message, [messageChannel.port2]);\n });\n","import {\n DEFAULT_FETCH_TIMEOUT_MS,\n DEFAULT_SILENT_TOKEN_RETRY_COUNT\n} from './constants';\n\nimport { sendMessage } from './worker/worker.utils';\nimport { FetchOptions } from './global';\nimport { GenericError, MfaRequiredError } from './errors';\n\nexport const createAbortController = () => new AbortController();\n\nconst dofetch = async (fetchUrl: string, fetchOptions: FetchOptions) => {\n const response = await fetch(fetchUrl, fetchOptions);\n\n return {\n ok: response.ok,\n json: await response.json()\n };\n};\n\nconst fetchWithoutWorker = async (\n fetchUrl: string,\n fetchOptions: FetchOptions,\n timeout: number\n) => {\n const controller = createAbortController();\n fetchOptions.signal = controller.signal;\n\n let timeoutId: NodeJS.Timeout;\n\n // The promise will resolve with one of these two promises (the fetch or the timeout), whichever completes first.\n return Promise.race([\n dofetch(fetchUrl, fetchOptions),\n\n new Promise((_, reject) => {\n timeoutId = setTimeout(() => {\n controller.abort();\n reject(new Error(\"Timeout when executing 'fetch'\"));\n }, timeout);\n })\n ]).finally(() => {\n clearTimeout(timeoutId);\n });\n};\n\nconst fetchWithWorker = async (\n fetchUrl: string,\n audience: string,\n scope: string,\n fetchOptions: FetchOptions,\n timeout: number,\n worker?: Worker,\n useFormData?: boolean\n) => {\n return sendMessage(\n {\n auth: {\n audience,\n scope\n },\n timeout,\n fetchUrl,\n fetchOptions,\n useFormData\n },\n worker\n );\n};\n\nexport const switchFetch = async (\n fetchUrl: string,\n audience: string,\n scope: string,\n fetchOptions: FetchOptions,\n worker?: Worker,\n useFormData?: boolean,\n timeout = DEFAULT_FETCH_TIMEOUT_MS\n): Promise<any> => {\n if (worker) {\n return fetchWithWorker(\n fetchUrl,\n audience,\n scope,\n fetchOptions,\n timeout,\n worker,\n useFormData\n );\n } else {\n return fetchWithoutWorker(fetchUrl, fetchOptions, timeout);\n }\n};\n\nexport async function getJSON<T>(\n url: string,\n timeout: number,\n audience: string,\n scope: string,\n options: FetchOptions,\n worker?: Worker,\n useFormData?: boolean\n): Promise<T> {\n let fetchError: null | Error = null;\n let response: any;\n\n for (let i = 0; i < DEFAULT_SILENT_TOKEN_RETRY_COUNT; i++) {\n try {\n response = await switchFetch(\n url,\n audience,\n scope,\n options,\n worker,\n useFormData,\n timeout\n );\n fetchError = null;\n break;\n } catch (e) {\n // Fetch only fails in the case of a network issue, so should be\n // retried here. Failure status (4xx, 5xx, etc) return a resolved Promise\n // with the failure in the body.\n // https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\n fetchError = e;\n }\n }\n\n if (fetchError) {\n throw fetchError;\n }\n\n const {\n json: { error, error_description, ...data },\n ok\n } = response;\n\n if (!ok) {\n const errorMessage =\n error_description || `HTTP error. Unable to fetch ${url}`;\n\n if (error === 'mfa_required') {\n throw new MfaRequiredError(error, errorMessage, data.mfa_token);\n }\n\n throw new GenericError(error || 'request_error', errorMessage);\n }\n\n return data;\n}\n","import { TokenEndpointOptions, TokenEndpointResponse } from './global';\nimport { DEFAULT_AUTH0_CLIENT } from './constants';\nimport { getJSON } from './http';\nimport { createQueryParams } from './utils';\n\nexport async function oauthToken(\n {\n baseUrl,\n timeout,\n audience,\n scope,\n auth0Client,\n useFormData,\n ...options\n }: TokenEndpointOptions,\n worker?: Worker\n) {\n const body = useFormData\n ? createQueryParams(options)\n : JSON.stringify(options);\n\n return await getJSON<TokenEndpointResponse>(\n `${baseUrl}/oauth/token`,\n timeout,\n audience || 'default',\n scope,\n {\n method: 'POST',\n body,\n headers: {\n 'Content-Type': useFormData\n ? 'application/x-www-form-urlencoded'\n : 'application/json',\n 'Auth0-Client': btoa(\n JSON.stringify(auth0Client || DEFAULT_AUTH0_CLIENT)\n )\n }\n },\n worker,\n useFormData\n );\n}\n","/**\n * @ignore\n */\nconst dedupe = (arr: string[]) => Array.from(new Set(arr));\n\n/**\n * @ignore\n */\nexport const getUniqueScopes = (...scopes: string[]) => {\n return dedupe(scopes.join(' ').trim().split(/\\s+/)).join(' ');\n};\n","import { IdToken, User } from '../global';\n\nexport const CACHE_KEY_PREFIX = '@@auth0spajs@@';\nexport const CACHE_KEY_ID_TOKEN_SUFFIX = '@@user@@';\n\nexport type CacheKeyData = {\n audience?: string;\n scope?: string;\n clientId: string;\n};\n\nexport class CacheKey {\n public clientId: string;\n public scope?: string;\n public audience?: string;\n\n constructor(\n data: CacheKeyData,\n public prefix: string = CACHE_KEY_PREFIX,\n public suffix: string = null\n ) {\n this.clientId = data.clientId;\n this.scope = data.scope;\n this.audience = data.audience;\n }\n\n /**\n * Converts this `CacheKey` instance into a string for use in a cache\n * @returns A string representation of the key\n */\n toKey(): string {\n return [this.prefix, this.clientId, this.audience, this.scope, this.suffix]\n .filter(Boolean)\n .join('::');\n }\n\n /**\n * Converts a cache key string into a `CacheKey` instance.\n * @param key The key to convert\n * @returns An instance of `CacheKey`\n */\n static fromKey(key: string): CacheKey {\n const [prefix, clientId, audience, scope] = key.split('::');\n\n return new CacheKey({ clientId, scope, audience }, prefix);\n }\n\n /**\n * Utility function to build a `CacheKey` instance from a cache entry\n * @param entry The entry\n * @returns An instance of `CacheKey`\n */\n static fromCacheEntry(entry: CacheEntry): CacheKey {\n const { scope, audience, client_id: clientId } = entry;\n\n return new CacheKey({\n scope,\n audience,\n clientId\n });\n }\n}\n\nexport interface DecodedToken {\n claims: IdToken;\n user: User;\n}\n\nexport interface IdTokenEntry {\n id_token: string;\n decodedToken: DecodedToken;\n}\n\nexport type CacheEntry = {\n id_token?: string;\n access_token: string;\n expires_in: number;\n decodedToken?: DecodedToken;\n audience: string;\n scope: string;\n client_id: string;\n refresh_token?: string;\n oauthTokenScope?: string;\n};\n\nexport type WrappedCacheEntry = {\n body: Partial<CacheEntry>;\n expiresAt: number;\n};\n\nexport type KeyManifestEntry = {\n keys: string[];\n};\n\nexport type Cacheable = WrappedCacheEntry | KeyManifestEntry;\n\nexport type MaybePromise<T> = Promise<T> | T;\n\nexport interface ICache {\n set<T = Cacheable>(key: string, entry: T): MaybePromise<void>;\n get<T = Cacheable>(key: string): MaybePromise<T | null>;\n remove(key: string): MaybePromise<void>;\n allKeys?(): MaybePromise<string[]>;\n}\n","import { ICache, Cacheable, CACHE_KEY_PREFIX } from './shared';\n\nexport class LocalStorageCache implements ICache {\n public set<T = Cacheable>(key: string, entry: T) {\n localStorage.setItem(key, JSON.stringify(entry));\n }\n\n public get<T = Cacheable>(key: string) {\n const json = window.localStorage.getItem(key);\n\n if (!json) return;\n\n try {\n const payload = JSON.parse(json) as T;\n return payload;\n /* c8 ignore next 3 */\n } catch (e) {\n return;\n }\n }\n\n public remove(key: string) {\n localStorage.removeItem(key);\n }\n\n public allKeys() {\n return Object.keys(window.localStorage).filter(key =>\n key.startsWith(CACHE_KEY_PREFIX)\n );\n }\n}\n","import { Cacheable, ICache } from './shared';\n\nexport class InMemoryCache {\n public enclosedCache: ICache = (function () {\n let cache: Record<string, unknown> = {};\n\n return {\n set<T = Cacheable>(key: string, entry: T) {\n cache[key] = entry;\n },\n\n get<T = Cacheable>(key: string) {\n const cacheEntry = cache[key] as T;\n\n if (!cacheEntry) {\n return;\n }\n\n return cacheEntry;\n },\n\n remove(key: string) {\n delete cache[key];\n },\n\n allKeys(): string[] {\n return Object.keys(cache);\n }\n };\n })();\n}\n","import { DEFAULT_NOW_PROVIDER } from '../constants';\nimport { CacheKeyManifest } from './key-manifest';\n\nimport {\n CacheEntry,\n ICache,\n CacheKey,\n CACHE_KEY_PREFIX,\n WrappedCacheEntry,\n DecodedToken,\n CACHE_KEY_ID_TOKEN_SUFFIX,\n IdTokenEntry\n} from './shared';\n\nconst DEFAULT_EXPIRY_ADJUSTMENT_SECONDS = 0;\n\nexport class CacheManager {\n constructor(\n private cache: ICache,\n private keyManifest?: CacheKeyManifest,\n private nowProvider?: () => number | Promise<number>\n ) {\n this.nowProvider = this.nowProvider || DEFAULT_NOW_PROVIDER;\n }\n\n async setIdToken(\n clientId: string,\n idToken: string,\n decodedToken: DecodedToken\n ): Promise<void> {\n const cacheKey = this.getIdTokenCacheKey(clientId);\n await this.cache.set(cacheKey, {\n id_token: idToken,\n decodedToken\n });\n await this.keyManifest?.add(cacheKey);\n }\n\n async getIdToken(cacheKey: CacheKey): Promise<IdTokenEntry | undefined> {\n const entry = await this.cache.get<IdTokenEntry>(\n this.getIdTokenCacheKey(cacheKey.clientId)\n );\n\n if (!entry && cacheKey.scope && cacheKey.audience) {\n const entryByScope = await this.get(cacheKey);\n\n if (!entryByScope) {\n return;\n }\n\n return {\n id_token: entryByScope.id_token,\n decodedToken: entryByScope.decodedToken\n };\n }\n\n return { id_token: entry.id_token, decodedToken: entry.decodedToken };\n }\n\n async get(\n cacheKey: CacheKey,\n expiryAdjustmentSeconds = DEFAULT_EXPIRY_ADJUSTMENT_SECONDS\n ): Promise<Partial<CacheEntry> | undefined> {\n let wrappedEntry = await this.cache.get<WrappedCacheEntry>(\n cacheKey.toKey()\n );\n\n if (!wrappedEntry) {\n const keys = await this.getCacheKeys();\n\n if (!keys) return;\n\n const matchedKey = this.matchExistingCacheKey(cacheKey, keys);\n\n if (matchedKey) {\n wrappedEntry = await this.cache.get<WrappedCacheEntry>(matchedKey);\n }\n }\n\n // If we still don't have an entry, exit.\n if (!wrappedEntry) {\n return;\n }\n\n const now = await this.nowProvider();\n const nowSeconds = Math.floor(now / 1000);\n\n if (wrappedEntry.expiresAt - expiryAdjustmentSeconds < nowSeconds) {\n if (wrappedEntry.body.refresh_token) {\n wrappedEntry.body = {\n refresh_token: wrappedEntry.body.refresh_token\n };\n\n await this.cache.set(cacheKey.toKey(), wrappedEntry);\n return wrappedEntry.body;\n }\n\n await this.cache.remove(cacheKey.toKey());\n await this.keyManifest?.remove(cacheKey.toKey());\n\n return;\n }\n\n return wrappedEntry.body;\n }\n\n async set(entry: CacheEntry): Promise<void> {\n const cacheKey = new CacheKey({\n clientId: entry.client_id,\n scope: entry.scope,\n audience: entry.audience\n });\n\n const wrappedEntry = await this.wrapCacheEntry(entry);\n\n await this.cache.set(cacheKey.toKey(), wrappedEntry);\n await this.keyManifest?.add(cacheKey.toKey());\n }\n\n async clear(clientId?: string): Promise<void> {\n const keys = await this.getCacheKeys();\n\n /* c8 ignore next */\n if (!keys) return;\n\n await keys\n .filter(key => (clientId ? key.includes(clientId) : true))\n .reduce(async (memo, key) => {\n await memo;\n await this.cache.remove(key);\n }, Promise.resolve());\n\n await this.keyManifest?.clear();\n }\n\n private async wrapCacheEntry(entry: CacheEntry): Promise<WrappedCacheEntry> {\n const now = await this.nowProvider();\n const expiresInTime = Math.floor(now / 1000) + entry.expires_in;\n\n return {\n body: entry,\n expiresAt: expiresInTime\n };\n }\n\n private async getCacheKeys(): Promise<string[]> {\n return this.keyManifest\n ? (await this.keyManifest.get())?.keys\n : await this.cache.allKeys();\n }\n\n /**\n * Returns the cache key to be used to store the id token\n * @param clientId The client id used to link to the id token\n * @returns The constructed cache key, as a string, to store the id token\n */\n private getIdTokenCacheKey(clientId: string) {\n return new CacheKey(\n { clientId },\n CACHE_KEY_PREFIX,\n CACHE_KEY_ID_TOKEN_SUFFIX\n ).toKey();\n }\n\n /**\n * Finds the corresponding key in the cache based on the provided cache key.\n * The keys inside the cache are in the format {prefix}::{clientId}::{audience}::{scope}.\n * The first key in the cache that satisfies the following conditions is returned\n * - `prefix` is strict equal to Auth0's internally configured `keyPrefix`\n * - `clientId` is strict equal to the `cacheKey.clientId`\n * - `audience` is strict equal to the `cacheKey.audience`\n * - `scope` contains at least all the `cacheKey.scope` values\n * *\n * @param keyToMatch The provided cache key\n * @param allKeys A list of existing cache keys\n */\n private matchExistingCacheKey(keyToMatch: CacheKey, allKeys: Array<string>) {\n return allKeys.filter(key => {\n const cacheKey = CacheKey.fromKey(key);\n const scopeSet = new Set(cacheKey.scope && cacheKey.scope.split(' '));\n const scopesToMatch = keyToMatch.scope?.split(' ') || [];\n\n const hasAllScopes =\n cacheKey.scope &&\n scopesToMatch.reduce(\n (acc, current) => acc && scopeSet.has(current),\n true\n );\n\n return (\n cacheKey.prefix === CACHE_KEY_PREFIX &&\n cacheKey.clientId === keyToMatch.clientId &&\n cacheKey.audience === keyToMatch.audience &&\n hasAllScopes\n );\n })[0];\n }\n}\n","import { ClientStorage } from './storage';\n\nconst TRANSACTION_STORAGE_KEY_PREFIX = 'a0.spajs.txs';\n\ninterface Transaction {\n nonce: string;\n scope: string;\n audience: string;\n appState?: any;\n code_verifier: string;\n redirect_uri: string;\n organizationId?: string;\n state?: string;\n}\n\nexport class TransactionManager {\n private transaction: Transaction | undefined;\n private storageKey: string;\n\n constructor(private storage: ClientStorage, private clientId: string) {\n this.storageKey = `${TRANSACTION_STORAGE_KEY_PREFIX}.${this.clientId}`;\n this.transaction = this.storage.get(this.storageKey);\n }\n\n public create(transaction: Transaction) {\n this.transaction = transaction;\n\n this.storage.save(this.storageKey, transaction, {\n daysUntilExpire: 1\n });\n }\n\n public get(): Transaction | undefined {\n return this.transaction;\n }\n\n public remove() {\n delete this.transaction;\n this.storage.remove(this.storageKey);\n }\n}\n","import { urlDecodeB64 } from './utils';\nimport { IdToken, JWTVerifyOptions } from './global';\n\nconst isNumber = (n: any) => typeof n === 'number';\n\nconst idTokendecoded = [\n 'iss',\n 'aud',\n 'exp',\n 'nbf',\n 'iat',\n 'jti',\n 'azp',\n 'nonce',\n 'auth_time',\n 'at_hash',\n 'c_hash',\n 'acr',\n 'amr',\n 'sub_jwk',\n 'cnf',\n 'sip_from_tag',\n 'sip_date',\n 'sip_callid',\n 'sip_cseq_num',\n 'sip_via_branch',\n 'orig',\n 'dest',\n 'mky',\n 'events',\n 'toe',\n 'txn',\n 'rph',\n 'sid',\n 'vot',\n 'vtm'\n];\n\nexport const decode = (token: string) => {\n const parts = token.split('.');\n const [header, payload, signature] = parts;\n\n if (parts.length !== 3 || !header || !payload || !signature) {\n throw new Error('ID token could not be decoded');\n }\n const payloadJSON = JSON.parse(urlDecodeB64(payload));\n const claims: IdToken = { __raw: token };\n const user: any = {};\n Object.keys(payloadJSON).forEach(k => {\n claims[k] = payloadJSON[k];\n if (!idTokendecoded.includes(k)) {\n user[k] = payloadJSON[k];\n }\n });\n return {\n encoded: { header, payload, signature },\n header: JSON.parse(urlDecodeB64(header)),\n claims,\n user\n };\n};\n\nexport const verify = (options: JWTVerifyOptions) => {\n if (!options.id_token) {\n throw new Error('ID token is required but missing');\n }\n\n const decoded = decode(options.id_token);\n\n if (!decoded.claims.iss) {\n throw new Error(\n 'Issuer (iss) claim must be a string present in the ID token'\n );\n }\n\n if (decoded.claims.iss !== options.iss) {\n throw new Error(\n `Issuer (iss) claim mismatch in the ID token; expected \"${options.iss}\", found \"${decoded.claims.iss}\"`\n );\n }\n\n if (!decoded.user.sub) {\n throw new Error(\n 'Subject (sub) claim must be a string present in the ID token'\n );\n }\n\n if (decoded.header.alg !== 'RS256') {\n throw new Error(\n `Signature algorithm of \"${decoded.header.alg}\" is not supported. Expected the ID token to be signed with \"RS256\".`\n );\n }\n\n if (\n !decoded.claims.aud ||\n !(\n typeof decoded.claims.aud === 'string' ||\n Array.isArray(decoded.claims.aud)\n )\n ) {\n throw new Error(\n 'Audience (aud) claim must be a string or array of strings present in the ID token'\n );\n }\n if (Array.isArray(decoded.claims.aud)) {\n if (!decoded.claims.aud.includes(options.aud)) {\n throw new Error(\n `Audience (aud) claim mismatch in the ID token; expected \"${\n options.aud\n }\" but was not one of \"${decoded.claims.aud.join(', ')}\"`\n );\n }\n if (decoded.claims.aud.length > 1) {\n if (!decoded.claims.azp) {\n throw new Error(\n 'Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values'\n );\n }\n if (decoded.claims.azp !== options.aud) {\n throw new Error(\n `Authorized Party (azp) claim mismatch in the ID token; expected \"${options.aud}\", found \"${decoded.claims.azp}\"`\n );\n }\n }\n } else if (decoded.claims.aud !== options.aud) {\n throw new Error(\n `Audience (aud) claim mismatch in the ID token; expected \"${options.aud}\" but found \"${decoded.claims.aud}\"`\n );\n }\n if (options.nonce) {\n if (!decoded.claims.nonce) {\n throw new Error(\n 'Nonce (nonce) claim must be a string present in the ID token'\n );\n }\n if (decoded.claims.nonce !== options.nonce) {\n throw new Error(\n `Nonce (nonce) claim mismatch in the ID token; expected \"${options.nonce}\", found \"${decoded.claims.nonce}\"`\n );\n }\n }\n\n if (options.max_age && !isNumber(decoded.claims.auth_time)) {\n throw new Error(\n 'Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified'\n );\n }\n\n /* c8 ignore next 5 */\n if (!isNumber(decoded.claims.exp)) {\n throw new Error(\n 'Expiration Time (exp) claim must be a number present in the ID token'\n );\n }\n if (!isNumber(decoded.claims.iat)) {\n throw new Error(\n 'Issued At (iat) claim must be a number present in the ID token'\n );\n }\n\n const leeway = options.leeway || 60;\n const now = new Date(options.now || Date.now());\n const expDate = new Date(0);\n const nbfDate = new Date(0);\n const authTimeDate = new Date(0);\n\n authTimeDate.setUTCSeconds(\n parseInt(decoded.claims.auth_time) + options.max_age + leeway\n );\n\n expDate.setUTCSeconds(decoded.claims.exp + leeway);\n nbfDate.setUTCSeconds(decoded.claims.nbf - leeway);\n\n if (now > expDate) {\n throw new Error(\n `Expiration Time (exp) claim error in the ID token; current time (${now}) is after expiration time (${expDate})`\n );\n }\n\n if (isNumber(decoded.claims.nbf) && now < nbfDate) {\n throw new Error(\n `Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Current time (${now}) is before ${nbfDate}`\n );\n }\n\n if (isNumber(decoded.claims.auth_time) && now > authTimeDate) {\n throw new Error(\n `Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Current time (${now}) is after last auth at ${authTimeDate}`\n );\n }\n\n if (options.organizationId) {\n if (!decoded.claims.org_id) {\n throw new Error(\n 'Organization ID (org_id) claim must be a string present in the ID token'\n );\n } else if (options.organizationId !== decoded.claims.org_id) {\n throw new Error(\n `Organization ID (org_id) claim mismatch in the ID token; expected \"${options.organizationId}\", found \"${decoded.claims.org_id}\"`\n );\n }\n }\n\n return decoded;\n};\n","\"use strict\";\r\nvar __assign = (this && this.__assign) || function () {\r\n __assign = Object.assign || function(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))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\nexports.__esModule = true;\r\nfunction stringifyAttribute(name, value) {\r\n if (!value) {\r\n return '';\r\n }\r\n var stringified = '; ' + name;\r\n if (value === true) {\r\n return stringified; // boolean attributes shouldn't have a value\r\n }\r\n return stringified + '=' + value;\r\n}\r\nfunction stringifyAttributes(attributes) {\r\n if (typeof attributes.expires === 'number') {\r\n var expires = new Date();\r\n expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\r\n attributes.expires = expires;\r\n }\r\n return stringifyAttribute('Expires', attributes.expires ? attributes.expires.toUTCString() : '')\r\n + stringifyAttribute('Domain', attributes.domain)\r\n + stringifyAttribute('Path', attributes.path)\r\n + stringifyAttribute('Secure', attributes.secure)\r\n + stringifyAttribute('SameSite', attributes.sameSite);\r\n}\r\nfunction encode(name, value, attributes) {\r\n return encodeURIComponent(name)\r\n .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) // allowed special characters\r\n .replace(/\\(/g, '%28').replace(/\\)/g, '%29') // replace opening and closing parens\r\n + '=' + encodeURIComponent(value)\r\n // allowed special characters\r\n .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent)\r\n + stringifyAttributes(attributes);\r\n}\r\nexports.encode = encode;\r\nfunction parse(cookieString) {\r\n var result = {};\r\n var cookies = cookieString ? cookieString.split('; ') : [];\r\n var rdecode = /(%[\\dA-F]{2})+/gi;\r\n for (var i = 0; i < cookies.length; i++) {\r\n var parts = cookies[i].split('=');\r\n var cookie = parts.slice(1).join('=');\r\n if (cookie.charAt(0) === '\"') {\r\n cookie = cookie.slice(1, -1);\r\n }\r\n try {\r\n var name_1 = parts[0].replace(rdecode, decodeURIComponent);\r\n result[name_1] = cookie.replace(rdecode, decodeURIComponent);\r\n }\r\n catch (e) {\r\n // ignore cookies with invalid name/value encoding\r\n }\r\n }\r\n return result;\r\n}\r\nexports.parse = parse;\r\nfunction getAll() {\r\n return parse(document.cookie);\r\n}\r\nexports.getAll = getAll;\r\nfunction get(name) {\r\n return getAll()[name];\r\n}\r\nexports.get = get;\r\nfunction set(name, value, attributes) {\r\n document.cookie = encode(name, value, __assign({ path: '/' }, attributes));\r\n}\r\nexports.set = set;\r\nfunction remove(name, attributes) {\r\n set(name, '', __assign(__assign({}, attributes), { expires: -1 }));\r\n}\r\nexports.remove = remove;\r\n","import * as Cookies from 'es-cookie';\n\ninterface ClientStorageOptions {\n daysUntilExpire?: number;\n cookieDomain?: string;\n}\n\n/**\n * Defines a type that handles storage to/from a storage location\n */\nexport type ClientStorage = {\n get<T extends Object>(key: string): T | undefined;\n save(key: string, value: any, options?: ClientStorageOptions): void;\n remove(key: string, options?: ClientStorageOptions): void;\n};\n\n/**\n * A storage protocol for marshalling data to/from cookies\n */\nexport const CookieStorage = {\n get<T extends Object>(key: string) {\n const value = Cookies.get(key);\n\n if (typeof value === 'undefined') {\n return;\n }\n\n return <T>JSON.parse(value);\n },\n\n save(key: string, value: any, options?: ClientStorageOptions): void {\n let cookieAttributes: Cookies.CookieAttributes = {};\n\n if ('https:' === window.location.protocol) {\n cookieAttributes = {\n secure: true,\n sameSite: 'none'\n };\n }\n\n if (options?.daysUntilExpire) {\n cookieAttributes.expires = options.daysUntilExpire;\n }\n\n if (options?.cookieDomain) {\n cookieAttributes.domain = options.cookieDomain;\n }\n\n Cookies.set(key, JSON.stringify(value), cookieAttributes);\n },\n\n remove(key: string, options?: ClientStorageOptions) {\n let cookieAttributes: Cookies.CookieAttributes = {};\n\n if (options?.cookieDomain) {\n cookieAttributes.domain = options.cookieDomain;\n }\n\n Cookies.remove(key ,cookieAttributes);\n }\n} as ClientStorage;\n\n/**\n * @ignore\n */\nconst LEGACY_PREFIX = '_legacy_';\n\n/**\n * Cookie storage that creates a cookie for modern and legacy browsers.\n * See: https://web.dev/samesite-cookie-recipes/#handling-incompatible-clients\n */\nexport const CookieStorageWithLegacySameSite = {\n get<T extends Object>(key: string) {\n const value = CookieStorage.get<T>(key);\n\n if (value) {\n return value;\n }\n\n return CookieStorage.get<T>(`${LEGACY_PREFIX}${key}`);\n },\n\n save(key: string, value: any, options?: ClientStorageOptions): void {\n let cookieAttributes: Cookies.CookieAttributes = {};\n\n if ('https:' === window.location.protocol) {\n cookieAttributes = { secure: true };\n }\n\n if (options?.daysUntilExpire) {\n cookieAttributes.expires = options.daysUntilExpire;\n }\n\n Cookies.set(\n `${LEGACY_PREFIX}${key}`,\n JSON.stringify(value),\n cookieAttributes\n );\n CookieStorage.save(key, value, options);\n },\n\n remove(key: string, options?: ClientStorageOptions) {\n let cookieAttributes: Cookies.CookieAttributes = {};\n\n if (options?.cookieDomain) {\n cookieAttributes.domain = options.cookieDomain;\n }\n\n Cookies.remove(key ,cookieAttributes);\n CookieStorage.remove(key, options);\n CookieStorage.remove(`${LEGACY_PREFIX}${key}`, options);\n }\n} as ClientStorage;\n\n/**\n * A storage protocol for marshalling data to/from session storage\n */\nexport const SessionStorage = {\n get<T extends Object>(key: string) {\n /* c8 ignore next 3 */\n if (typeof sessionStorage === 'undefined') {\n return;\n }\n\n const value = sessionStorage.getItem(key);\n\n if (typeof value === 'undefined') {\n return;\n }\n\n return <T>JSON.parse(value);\n },\n\n save(key: string, value: any): void {\n sessionStorage.setItem(key, JSON.stringify(value));\n },\n\n remove(key: string) {\n sessionStorage.removeItem(key);\n }\n} as ClientStorage;\n","const singlePromiseMap: Record<string, Promise<any>> = {};\n\nexport const singlePromise = <T>(cb: () => Promise<T>, key: string) => {\n let promise = singlePromiseMap[key];\n if (!promise) {\n promise = cb().finally(() => {\n delete singlePromiseMap[key];\n promise = null;\n });\n singlePromiseMap[key] = promise;\n }\n return promise;\n};\n\nexport const retryPromise = async (\n cb: () => Promise<boolean>,\n maxNumberOfRetries = 3\n) => {\n for (let i = 0; i < maxNumberOfRetries; i++) {\n if (await cb()) {\n return true;\n }\n }\n\n return false;\n};\n","import {\n CACHE_KEY_PREFIX,\n ICache,\n KeyManifestEntry,\n MaybePromise\n} from './shared';\n\nexport class CacheKeyManifest {\n private readonly manifestKey: string;\n\n constructor(private cache: ICache, private clientId: string) {\n this.manifestKey = this.createManifestKeyFrom(this.clientId);\n }\n\n async add(key: string): Promise<void> {\n const keys = new Set(\n (await this.cache.get<KeyManifestEntry>(this.manifestKey))?.keys || []\n );\n\n keys.add(key);\n\n await this.cache.set<KeyManifestEntry>(this.manifestKey, {\n keys: [...keys]\n });\n }\n\n async remove(key: string): Promise<void> {\n const entry = await this.cache.get<KeyManifestEntry>(this.manifestKey);\n\n if (entry) {\n const keys = new Set(entry.keys);\n keys.delete(key);\n\n if (keys.size > 0) {\n return await this.cache.set(this.manifestKey, { keys: [...keys] });\n }\n\n return await this.cache.remove(this.manifestKey);\n }\n }\n\n get(): MaybePromise<KeyManifestEntry> {\n return this.cache.get<KeyManifestEntry>(this.manifestKey);\n }\n\n clear(): MaybePromise<void> {\n return this.cache.remove(this.manifestKey);\n }\n\n private createManifestKeyFrom(clientId: string): string {\n return `${CACHE_KEY_PREFIX}::${clientId}`;\n }\n}\n","import { ICache, InMemoryCache, LocalStorageCache } from './cache';\nimport {\n Auth0ClientOptions,\n AuthorizationParams,\n AuthorizeOptions\n} from './global';\nimport { getUniqueScopes } from './scope';\n\n/**\n * @ignore\n */\nexport const GET_TOKEN_SILENTLY_LOCK_KEY = 'auth0.lock.getTokenSilently';\n\n/**\n * @ignore\n */\nexport const buildOrganizationHintCookieName = (clientId: string) =>\n `auth0.${clientId}.organization_hint`;\n\n/**\n * @ignore\n */\nexport const OLD_IS_AUTHENTICATED_COOKIE_NAME = 'auth0.is.authenticated';\n\n/**\n * @ignore\n */\nexport const buildIsAuthenticatedCookieName = (clientId: string) =>\n `auth0.${clientId}.is.authenticated`;\n\n/**\n * @ignore\n */\nconst cacheLocationBuilders: Record<string, () => ICache> = {\n memory: () => new InMemoryCache().enclosedCache,\n localstorage: () => new LocalStorageCache()\n};\n\n/**\n * @ignore\n */\nexport const cacheFactory = (location: string) => {\n return cacheLocationBuilders[location];\n};\n\n/**\n * @ignore\n */\nexport const getAuthorizeParams = (\n clientOptions: Auth0ClientOptions,\n scope: string,\n authorizeOptions: AuthorizationParams,\n state: string,\n nonce: string,\n code_challenge: string,\n redirect_uri: string,\n response_mode: string\n): AuthorizeOptions => {\n return {\n client_id: clientOptions.clientId,\n ...clientOptions.authorizationParams,\n ...authorizeOptions,\n scope: getUniqueScopes(scope, authorizeOptions?.scope),\n response_type: 'code',\n response_mode: response_mode || 'query',\n state,\n nonce,\n redirect_uri:\n redirect_uri || clientOptions.authorizationParams.redirect_uri,\n code_challenge,\n code_challenge_method: 'S256'\n };\n};\n","import Lock from 'browser-tabs-lock';\n\nimport {\n createQueryParams,\n runPopup,\n parseQueryResult,\n encode,\n createRandomString,\n runIframe,\n sha256,\n bufferToBase64UrlEncoded,\n validateCrypto,\n openPopup,\n getDomain,\n getTokenIssuer,\n parseNumber\n} from './utils';\n\nimport { oauthToken } from './api';\n\nimport { getUniqueScopes } from './scope';\n\nimport {\n InMemoryCache,\n ICache,\n CacheKey,\n CacheManager,\n CacheEntry,\n IdTokenEntry,\n CACHE_KEY_ID_TOKEN_SUFFIX\n} from './cache';\n\nimport { TransactionManager } from './transaction-manager';\nimport { verify as verifyIdToken } from './jwt';\nimport {\n AuthenticationError,\n GenericError,\n MissingRefreshTokenError,\n TimeoutError\n} from './errors';\n\nimport {\n ClientStorage,\n CookieStorage,\n CookieStorageWithLegacySameSite,\n SessionStorage\n} from './storage';\n\nimport {\n CACHE_LOCATION_MEMORY,\n DEFAULT_POPUP_CONFIG_OPTIONS,\n DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS,\n MISSING_REFRESH_TOKEN_ERROR_MESSAGE,\n DEFAULT_SCOPE,\n DEFAULT_SESSION_CHECK_EXPIRY_DAYS,\n DEFAULT_AUTH0_CLIENT,\n INVALID_REFRESH_TOKEN_ERROR_MESSAGE,\n DEFAULT_NOW_PROVIDER,\n DEFAULT_FETCH_TIMEOUT_MS\n} from './constants';\n\nimport {\n Auth0ClientOptions,\n AuthorizationParams,\n AuthorizeOptions,\n RedirectLoginOptions,\n PopupLoginOptions,\n PopupConfigOptions,\n RedirectLoginResult,\n GetTokenSilentlyOptions,\n GetTokenWithPopupOptions,\n LogoutOptions,\n CacheLocation,\n LogoutUrlOptions,\n User,\n IdToken,\n GetTokenSilentlyVerboseResponse,\n TokenEndpointResponse\n} from './global';\n\n// @ts-ignore\nimport TokenWorker from './worker/token.worker.ts';\nimport { singlePromise, retryPromise } from './promise-utils';\nimport { CacheKeyManifest } from './cache/key-manifest';\nimport {\n buildIsAuthenticatedCookieName,\n buildOrganizationHintCookieName,\n cacheFactory,\n getAuthorizeParams,\n GET_TOKEN_SILENTLY_LOCK_KEY,\n OLD_IS_AUTHENTICATED_COOKIE_NAME\n} from './Auth0Client.utils';\n\n/**\n * @ignore\n */\ntype GetTokenSilentlyResult = TokenEndpointResponse & {\n decodedToken: ReturnType<typeof verifyIdToken>;\n scope: string;\n oauthTokenScope?: string;\n audience: string;\n};\n\n/**\n * @ignore\n */\nconst lock = new Lock();\n\n/**\n * Auth0 SDK for Single Page Applications using [Authorization Code Grant Flow with PKCE](https://auth0.com/docs/api-auth/tutorials/authorization-code-grant-pkce).\n */\nexport class Auth0Client {\n private readonly transactionManager: TransactionManager;\n private readonly cacheManager: CacheManager;\n private readonly domainUrl: string;\n private readonly tokenIssuer: string;\n private readonly scope: string;\n private readonly cookieStorage: ClientStorage;\n private readonly sessionCheckExpiryDays: number;\n private readonly orgHintCookieName: string;\n private readonly isAuthenticatedCookieName: string;\n private readonly nowProvider: () => number | Promise<number>;\n private readonly httpTimeoutMs: number;\n private readonly options: Auth0ClientOptions & { authorizationParams: AuthorizationParams };\n private readonly userCache: ICache = new InMemoryCache().enclosedCache;\n\n cacheLocation: CacheLocation;\n\n private worker: Worker;\n\n private readonly defaultOptions: Partial<Auth0ClientOptions> = {\n authorizationParams: {\n scope: DEFAULT_SCOPE\n },\n useRefreshTokensFallback: false,\n useFormData: true\n };\n\n constructor(options: Auth0ClientOptions) {\n this.options = {\n ...this.defaultOptions,\n ...options,\n authorizationParams: {\n ...this.defaultOptions.authorizationParams,\n ...options.authorizationParams\n }\n };\n\n typeof window !== 'undefined' && validateCrypto();\n\n if (options.cache && options.cacheLocation) {\n console.warn(\n 'Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`.'\n );\n }\n\n let cache: ICache;\n\n if (options.cache) {\n cache = options.cache;\n } else {\n this.cacheLocation = options.cacheLocation || CACHE_LOCATION_MEMORY;\n\n if (!cacheFactory(this.cacheLocation)) {\n throw new Error(`Invalid cache location \"${this.cacheLocation}\"`);\n }\n\n cache = cacheFactory(this.cacheLocation)();\n }\n\n this.httpTimeoutMs = options.httpTimeoutInSeconds\n ? options.httpTimeoutInSeconds * 1000\n : DEFAULT_FETCH_TIMEOUT_MS;\n\n this.cookieStorage =\n options.legacySameSiteCookie === false\n ? CookieStorage\n : CookieStorageWithLegacySameSite;\n\n this.orgHintCookieName = buildOrganizationHintCookieName(\n this.options.clientId\n );\n\n this.isAuthenticatedCookieName = buildIsAuthenticatedCookieName(\n this.options.clientId\n );\n\n this.sessionCheckExpiryDays =\n options.sessionCheckExpiryDays || DEFAULT_SESSION_CHECK_EXPIRY_DAYS;\n\n const transactionStorage = options.useCookiesForTransactions\n ? this.cookieStorage\n : SessionStorage;\n\n // Construct the scopes based on the following:\n // 1. Always include `openid`\n // 2. Include the scopes provided in `authorizationParams. This defaults to `profile email`\n // 3. Add `offline_access` if `useRefreshTokens` is enabled\n this.scope = getUniqueScopes(\n 'openid',\n this.options.authorizationParams.scope,\n this.options.useRefreshTokens ? 'offline_access' : ''\n );\n\n this.transactionManager = new TransactionManager(\n transactionStorage,\n this.options.clientId\n );\n\n this.nowProvider = this.options.nowProvider || DEFAULT_NOW_PROVIDER;\n\n this.cacheManager = new CacheManager(\n cache,\n !cache.allKeys\n ? new CacheKeyManifest(cache, this.options.clientId)\n : null,\n this.nowProvider\n );\n\n this.domainUrl = getDomain(this.options.domain);\n this.tokenIssuer = getTokenIssuer(this.options.issuer, this.domainUrl);\n\n // Don't use web workers unless using refresh tokens in memory\n if (\n typeof window !== 'undefined' &&\n window.Worker &&\n this.options.useRefreshTokens &&\n this.cacheLocation === CACHE_LOCATION_MEMORY\n ) {\n this.worker = new TokenWorker();\n }\n }\n\n private _url(path: string) {\n const auth0Client = encodeURIComponent(\n btoa(JSON.stringify(this.options.auth0Client || DEFAULT_AUTH0_CLIENT))\n );\n return `${this.domainUrl}${path}&auth0Client=${auth0Client}`;\n }\n\n private _authorizeUrl(authorizeOptions: AuthorizeOptions) {\n return this._url(`/authorize?${createQueryParams(authorizeOptions)}`);\n }\n\n private async _verifyIdToken(\n id_token: string,\n nonce?: string,\n organizationId?: string\n ) {\n const now = await this.nowProvider();\n\n return verifyIdToken({\n iss: this.tokenIssuer,\n aud: this.options.clientId,\n id_token,\n nonce,\n organizationId,\n leeway: this.options.leeway,\n max_age: parseNumber(this.options.authorizationParams.max_age),\n now\n });\n }\n\n private _processOrgIdHint(organizationId?: string) {\n if (organizationId) {\n this.cookieStorage.save(this.orgHintCookieName, organizationId, {\n daysUntilExpire: this.sessionCheckExpiryDays,\n cookieDomain: this.options.cookieDomain\n });\n } else {\n this.cookieStorage.remove(this.orgHintCookieName, {\n cookieDomain: this.options.cookieDomain\n });\n }\n }\n\n private async _prepareAuthorizeUrl(\n authorizationParams: AuthorizationParams,\n authorizeOptions?: Partial<AuthorizeOptions>,\n fallbackRedirectUri?: string\n ): Promise<{\n scope: string;\n audience: string;\n redirect_uri: string;\n nonce: string;\n code_verifier: string;\n state: string;\n url: string;\n }> {\n const state = encode(createRandomString());\n const nonce = encode(createRandomString());\n const code_verifier = createRandomString();\n const code_challengeBuffer = await sha256(code_verifier);\n const code_challenge = bufferToBase64UrlEncoded(code_challengeBuffer);\n\n const params = getAuthorizeParams(\n this.options,\n this.scope,\n authorizationParams,\n state,\n nonce,\n code_challenge,\n authorizationParams?.redirect_uri ||\n this.options.authorizationParams.redirect_uri ||\n fallbackRedirectUri,\n authorizeOptions?.response_mode\n );\n\n const url = this._authorizeUrl(params);\n\n return {\n nonce,\n code_verifier,\n scope: params.scope,\n audience: params.audience || 'default',\n redirect_uri: params.redirect_uri,\n state,\n url\n };\n }\n\n /**\n * ```js\n * try {\n * await auth0.loginWithPopup(options);\n * } catch(e) {\n * if (e instanceof PopupCancelledError) {\n * // Popup was closed before login completed\n * }\n * }\n * ```\n *\n * Opens a popup with the `/authorize` URL using the parameters\n * provided as arguments. Random and secure `state` and `nonce`\n * parameters will be auto-generated. If the response is successful,\n * results will be valid according to their expiration times.\n *\n * IMPORTANT: This method has to be called from an event handler\n * that was started by the user like a button click, for example,\n * otherwise the popup will be blocked in most browsers.\n *\n * @param options\n * @param config\n */\n public async loginWithPopup(\n options?: PopupLoginOptions,\n config?: PopupConfigOptions\n ) {\n options = options || {};\n config = config || {};\n\n if (!config.popup) {\n config.popup = openPopup('');\n\n if (!config.popup) {\n throw new Error(\n 'Unable to open a popup for loginWithPopup - window.open returned `null`'\n );\n }\n }\n\n const params = await this._prepareAuthorizeUrl(\n options.authorizationParams,\n { response_mode: 'web_message' },\n window.location.origin\n );\n\n config.popup.location.href = params.url;\n\n const codeResult = await runPopup({\n ...config,\n timeoutInSeconds:\n config.timeoutInSeconds ||\n this.options.authorizeTimeoutInSeconds ||\n DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS\n });\n\n if (params.state !== codeResult.state) {\n throw new Error('Invalid state');\n }\n\n const organizationId =\n options.authorizationParams?.organization ||\n this.options.authorizationParams.organization;\n\n await this._requestToken(\n {\n audience: params.audience,\n scope: params.scope,\n code_verifier: params.code_verifier,\n grant_type: 'authorization_code',\n code: codeResult.code,\n redirect_uri: params.redirect_uri\n },\n {\n nonceIn: params.nonce,\n organizationId\n }\n );\n }\n\n /**\n * ```js\n * const user = await auth0.getUser();\n * ```\n *\n * Returns the user information if available (decoded\n * from the `id_token`).\n *\n * @typeparam TUser The type to return, has to extend {@link User}.\n */\n public async getUser<TUser extends User>(): Promise<TUser | undefined> {\n const cache = await this._getIdTokenFromCache();\n\n return cache?.decodedToken?.user as TUser;\n }\n\n /**\n * ```js\n * const claims = await auth0.getIdTokenClaims();\n * ```\n *\n * Returns all claims from the id_token if available.\n */\n public async getIdTokenClaims(): Promise<IdToken | undefined> {\n const cache = await this._getIdTokenFromCache();\n\n return cache?.decodedToken?.claims;\n }\n\n /**\n * ```js\n * await auth0.loginWithRedirect(options);\n * ```\n *\n * Performs a redirect to `/authorize` using the parameters\n * provided as arguments. Random and secure `state` and `nonce`\n * parameters will be auto-generated.\n *\n * @param options\n */\n public async loginWithRedirect<TAppState = any>(\n options: RedirectLoginOptions<TAppState> = {}\n ) {\n const { onRedirect, fragment, appState, ...urlOptions } = options;\n\n const organizationId =\n urlOptions.authorizationParams?.organization ||\n this.options.authorizationParams.organization;\n\n const { url, ...transaction } = await this._prepareAuthorizeUrl(\n urlOptions.authorizationParams\n );\n\n this.transactionManager.create({\n ...transaction,\n appState,\n ...(organizationId && { organizationId })\n });\n\n const urlWithFragment = fragment ? `${url}#${fragment}` : url;\n\n if (onRedirect) {\n await onRedirect(urlWithFragment);\n } else {\n window.location.assign(urlWithFragment);\n }\n }\n\n /**\n * After the browser redirects back to the callback page,\n * call `handleRedirectCallback` to handle success and error\n * responses from Auth0. If the response is successful, results\n * will be valid according to their expiration times.\n */\n public async handleRedirectCallback<TAppState = any>(\n url: string = window.location.href\n ): Promise<RedirectLoginResult<TAppState>> {\n const queryStringFragments = url.split('?').slice(1);\n\n if (queryStringFragments.length === 0) {\n throw new Error('There are no query params available for parsing.');\n }\n\n const { state, code, error, error_description } = parseQueryResult(\n queryStringFragments.join('')\n );\n\n const transaction = this.transactionManager.get();\n\n if (!transaction) {\n throw new Error('Invalid state');\n }\n\n this.transactionManager.remove();\n\n if (error) {\n throw new AuthenticationError(\n error,\n error_description,\n state,\n transaction.appState\n );\n }\n\n // Transaction should have a `code_verifier` to do PKCE for CSRF protection\n if (\n !transaction.code_verifier ||\n (transaction.state && transaction.state !== state)\n ) {\n throw new Error('Invalid state');\n }\n\n const organizationId = transaction.organizationId;\n const nonceIn = transaction.nonce;\n const redirect_uri = transaction.redirect_uri;\n\n await this._requestToken(\n {\n audience: transaction.audience,\n scope: transaction.scope,\n code_verifier: transaction.code_verifier,\n grant_type: 'authorization_code',\n code,\n ...(redirect_uri ? { redirect_uri } : {})\n },\n { nonceIn, organizationId }\n );\n\n return {\n appState: transaction.appState\n };\n }\n\n /**\n * ```js\n * await auth0.checkSession();\n * ```\n *\n * Check if the user is logged in using `getTokenSilently`. The difference\n * with `getTokenSilently` is that this doesn't return a token, but it will\n * pre-fill the token cache.\n *\n * This method also heeds the `auth0.{clientId}.is.authenticated` cookie, as an optimization\n * to prevent calling Auth0 unnecessarily. If the cookie is not present because\n * there was no previous login (or it has expired) then tokens will not be refreshed.\n *\n * It should be used for silently logging in the user when you instantiate the\n * `Auth0Client` constructor. You should not need this if you are using the\n * `createAuth0Client` factory.\n *\n * **Note:** the cookie **may not** be present if running an app using a private tab, as some\n * browsers clear JS cookie data and local storage when the tab or page is closed, or on page reload. This effectively\n * means that `checkSession` could silently return without authenticating the user on page refresh when\n * using a private tab, despite having previously logged in. As a workaround, use `getTokenSilently` instead\n * and handle the possible `login_required` error [as shown in the readme](https://github.com/auth0/auth0-spa-js#creating-the-client).\n *\n * @param options\n */\n public async checkSession(options?: GetTokenSilentlyOptions) {\n if (!this.cookieStorage.get(this.isAuthenticatedCookieName)) {\n if (!this.cookieStorage.get(OLD_IS_AUTHENTICATED_COOKIE_NAME)) {\n return;\n } else {\n // Migrate the existing cookie to the new name scoped by client ID\n this.cookieStorage.save(this.isAuthenticatedCookieName, true, {\n daysUntilExpire: this.sessionCheckExpiryDays,\n cookieDomain: this.options.cookieDomain\n });\n\n this.cookieStorage.remove(OLD_IS_AUTHENTICATED_COOKIE_NAME);\n }\n }\n\n try {\n await this.getTokenSilently(options);\n } catch (_) {}\n }\n\n /**\n * Fetches a new access token and returns the response from the /oauth/token endpoint, omitting the refresh token.\n *\n * @param options\n */\n public async getTokenSilently(\n options: GetTokenSilentlyOptions & { detailedResponse: true }\n ): Promise<GetTokenSilentlyVerboseResponse>;\n\n /**\n * Fetches a new access token and returns it.\n *\n * @param options\n */\n public async getTokenSilently(\n options?: GetTokenSilentlyOptions\n ): Promise<string>;\n\n /**\n * Fetches a new access token, and either returns just the access token (the default) or the response from the /oauth/token endpoint, depending on the `detailedResponse` option.\n *\n * ```js\n * const token = await auth0.getTokenSilently(options);\n * ```\n *\n * If there's a valid token stored and it has more than 60 seconds\n * remaining before expiration, return the token. Otherwise, attempt\n * to obtain a new token.\n *\n * A new token will be obtained either by opening an iframe or a\n * refresh token (if `useRefreshTokens` is `true`).\n\n * If iframes are used, opens an iframe with the `/authorize` URL\n * using the parameters provided as arguments. Random and secure `state`\n * and `nonce` parameters will be auto-generated. If the response is successful,\n * results will be validated according to their expiration times.\n *\n * If refresh tokens are used, the token endpoint is called directly with the\n * 'refresh_token' grant. If no refresh token is available to make this call,\n * the SDK will only fall back to using an iframe to the '/authorize' URL if \n * the `useRefreshTokensFallback` setting has been set to `true`. By default this\n * setting is `false`.\n *\n * This method may use a web worker to perform the token call if the in-memory\n * cache is used.\n *\n * If an `audience` value is given to this function, the SDK always falls\n * back to using an iframe to make the token exchange.\n *\n * Note that in all cases, falling back to an iframe requires access to\n * the `auth0` cookie.\n *\n * @param options\n */\n public async getTokenSilently(\n options: GetTokenSilentlyOptions = {}\n ): Promise<string | GetTokenSilentlyVerboseResponse> {\n options = {\n cacheMode: 'on',\n ...options,\n authorizationParams: {\n ...this.options.authorizationParams,\n ...options.authorizationParams,\n scope: getUniqueScopes(this.scope, options.authorizationParams?.scope)\n }\n };\n\n return singlePromise(\n () => this._getTokenSilently(options),\n `${this.options.clientId}::${options.authorizationParams.audience}::${options.authorizationParams.scope}`\n );\n }\n\n private async _getTokenSilently(\n options: GetTokenSilentlyOptions\n ): Promise<string | GetTokenSilentlyVerboseResponse> {\n const { cacheMode, ...getTokenOptions } = options;\n\n // Check the cache before acquiring the lock to avoid the latency of\n // `lock.acquireLock` when the cache is populated.\n if (cacheMode !== 'off') {\n const entry = await this._getEntryFromCache({\n scope: getTokenOptions.authorizationParams.scope,\n audience: getTokenOptions.authorizationParams.audience || 'default',\n clientId: this.options.clientId,\n getDetailedEntry: options.detailedResponse\n });\n\n if (entry) {\n return entry;\n }\n }\n\n if (cacheMode === 'cache-only') {\n return;\n }\n\n if (\n await retryPromise(\n () => lock.acquireLock(GET_TOKEN_SILENTLY_LOCK_KEY, 5000),\n 10\n )\n ) {\n try {\n window.addEventListener('pagehide', this._releaseLockOnPageHide);\n\n // Check the cache a second time, because it may have been populated\n // by a previous call while this call was waiting to acquire the lock.\n if (cacheMode !== 'off') {\n const entry = await this._getEntryFromCache({\n scope: getTokenOptions.authorizationParams.scope,\n audience:\n getTokenOptions.authorizationParams.audience || 'default',\n clientId: this.options.clientId,\n getDetailedEntry: options.detailedResponse\n });\n\n if (entry) {\n return entry;\n }\n }\n\n const authResult = this.options.useRefreshTokens\n ? await this._getTokenUsingRefreshToken(getTokenOptions)\n : await this._getTokenFromIFrame(getTokenOptions);\n\n if (options.detailedResponse) {\n const { id_token, access_token, oauthTokenScope, expires_in } =\n authResult;\n\n return {\n id_token,\n access_token,\n ...(oauthTokenScope ? { scope: oauthTokenScope } : null),\n expires_in\n };\n }\n\n return authResult.access_token;\n } finally {\n await lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY);\n window.removeEventListener('pagehide', this._releaseLockOnPageHide);\n }\n } else {\n throw new TimeoutError();\n }\n }\n\n /**\n * ```js\n * const token = await auth0.getTokenWithPopup(options);\n * ```\n * Opens a popup with the `/authorize` URL using the parameters\n * provided as arguments. Random and secure `state` and `nonce`\n * parameters will be auto-generated. If the response is successful,\n * results will be valid according to their expiration times.\n *\n * @param options\n * @param config\n */\n public async getTokenWithPopup(\n options: GetTokenWithPopupOptions = {},\n config: PopupConfigOptions = {}\n ) {\n options = {\n ...options,\n authorizationParams: {\n ...this.options.authorizationParams,\n ...options.authorizationParams,\n scope: getUniqueScopes(this.scope, options.authorizationParams?.scope)\n }\n };\n\n config = {\n ...DEFAULT_POPUP_CONFIG_OPTIONS,\n ...config\n };\n\n await this.loginWithPopup(options, config);\n\n const cache = await this.cacheManager.get(\n new CacheKey({\n scope: options.authorizationParams.scope,\n audience: options.authorizationParams.audience || 'default',\n clientId: this.options.clientId\n })\n );\n\n return cache.access_token;\n }\n\n /**\n * ```js\n * const isAuthenticated = await auth0.isAuthenticated();\n * ```\n *\n * Returns `true` if there's valid information stored,\n * otherwise returns `false`.\n *\n */\n public async isAuthenticated() {\n const user = await this.getUser();\n return !!user;\n }\n\n /**\n * ```js\n * await auth0.buildLogoutUrl(options);\n * ```\n *\n * Builds a URL to the logout endpoint using the parameters provided as arguments.\n * @param options\n */\n private _buildLogoutUrl(options: LogoutUrlOptions): string {\n if (options.clientId !== null) {\n options.clientId = options.clientId || this.options.clientId;\n } else {\n delete options.clientId;\n }\n\n const { federated, ...logoutOptions } = options.logoutParams || {};\n const federatedQuery = federated ? `&federated` : '';\n const url = this._url(\n `/v2/logout?${createQueryParams({\n clientId: options.clientId,\n ...logoutOptions\n })}`\n );\n\n return url + federatedQuery;\n }\n\n /**\n * ```js\n * await auth0.logout(options);\n * ```\n *\n * Clears the application session and performs a redirect to `/v2/logout`, using\n * the parameters provided as arguments, to clear the Auth0 session. \n *\n * If the `federated` option is specified it also clears the Identity Provider session.\n * [Read more about how Logout works at Auth0](https://auth0.com/docs/logout).\n *\n * @param options\n */\n public async logout(options: LogoutOptions = {}): Promise<void> {\n const { onRedirect, ...logoutOptions } = options;\n\n await this.cacheManager.clear();\n \n this.cookieStorage.remove(this.orgHintCookieName, {\n cookieDomain: this.options.cookieDomain\n });\n this.cookieStorage.remove(this.isAuthenticatedCookieName, {\n cookieDomain: this.options.cookieDomain\n });\n this.userCache.remove(CACHE_KEY_ID_TOKEN_SUFFIX);\n\n const url = this._buildLogoutUrl(logoutOptions);\n\n if (onRedirect) {\n await onRedirect(url);\n } else {\n window.location.assign(url);\n }\n }\n\n private async _getTokenFromIFrame(\n options: GetTokenSilentlyOptions\n ): Promise<GetTokenSilentlyResult> {\n const params: AuthorizationParams = {\n ...options.authorizationParams,\n prompt: 'none'\n };\n\n const orgIdHint = this.cookieStorage.get<string>(this.orgHintCookieName);\n\n if (orgIdHint && !params.organization) {\n params.organization = orgIdHint;\n }\n\n const {\n url,\n state: stateIn,\n nonce: nonceIn,\n code_verifier,\n redirect_uri,\n scope,\n audience\n } = await this._prepareAuthorizeUrl(\n params,\n { response_mode: 'web_message' },\n window.location.origin\n );\n\n try {\n // When a browser is running in a Cross-Origin Isolated context, using iframes is not possible.\n // It doesn't throw an error but times out instead, so we should exit early and inform the user about the reason.\n // https://developer.mozilla.org/en-US/docs/Web/API/crossOriginIsolated\n if ((window as any).crossOriginIsolated) {\n throw new GenericError(\n 'login_required',\n 'The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.'\n );\n }\n\n const authorizeTimeout =\n options.timeoutInSeconds || this.options.authorizeTimeoutInSeconds;\n\n const codeResult = await runIframe(url, this.domainUrl, authorizeTimeout);\n\n if (stateIn !== codeResult.state) {\n throw new Error('Invalid state');\n }\n\n const tokenResult = await this._requestToken(\n {\n ...options.authorizationParams,\n code_verifier,\n code: codeResult.code,\n grant_type: 'authorization_code',\n redirect_uri,\n timeout: options.authorizationParams.timeout || this.httpTimeoutMs\n },\n {\n nonceIn\n }\n );\n\n return {\n ...tokenResult,\n scope: scope,\n oauthTokenScope: tokenResult.scope,\n audience: audience\n };\n } catch (e) {\n if (e.error === 'login_required') {\n this.logout({\n onRedirect: async () => {}\n });\n }\n throw e;\n }\n }\n\n private async _getTokenUsingRefreshToken(\n options: GetTokenSilentlyOptions\n ): Promise<GetTokenSilentlyResult> {\n options = {\n ...options,\n authorizationParams: {\n ...options.authorizationParams,\n scope: getUniqueScopes(this.scope, options.authorizationParams.scope)\n }\n };\n\n const cache = await this.cacheManager.get(\n new CacheKey({\n scope: options.authorizationParams.scope,\n audience: options.authorizationParams.audience || 'default',\n clientId: this.options.clientId\n })\n );\n\n // If you don't have a refresh token in memory\n // and you don't have a refresh token in web worker memory\n // and useRefreshTokensFallback was explicitly enabled\n // fallback to an iframe\n if ((!cache || !cache.refresh_token) && !this.worker) {\n if (this.options.useRefreshTokensFallback) {\n return await this._getTokenFromIFrame(options);\n }\n\n throw new MissingRefreshTokenError(\n options.authorizationParams.audience || 'default',\n options.authorizationParams.scope\n );\n }\n\n const redirect_uri =\n options.authorizationParams.redirect_uri ||\n this.options.authorizationParams.redirect_uri ||\n window.location.origin;\n\n const timeout =\n typeof options.timeoutInSeconds === 'number'\n ? options.timeoutInSeconds * 1000\n : null;\n\n try {\n const tokenResult = await this._requestToken({\n ...options.authorizationParams,\n grant_type: 'refresh_token',\n refresh_token: cache && cache.refresh_token,\n redirect_uri,\n ...(timeout && { timeout })\n });\n\n return {\n ...tokenResult,\n scope: options.authorizationParams.scope,\n oauthTokenScope: tokenResult.scope,\n audience: options.authorizationParams.audience || 'default'\n };\n } catch (e) {\n if (\n // The web worker didn't have a refresh token in memory so\n // fallback to an iframe.\n (e.message.indexOf(MISSING_REFRESH_TOKEN_ERROR_MESSAGE) > -1 ||\n // A refresh token was found, but is it no longer valid\n // and useRefreshTokensFallback is explicitly enabled. Fallback to an iframe.\n (e.message &&\n e.message.indexOf(INVALID_REFRESH_TOKEN_ERROR_MESSAGE) > -1)) &&\n this.options.useRefreshTokensFallback\n ) {\n return await this._getTokenFromIFrame(options);\n }\n\n throw e;\n }\n }\n\n private async _saveEntryInCache(entry: CacheEntry) {\n const { id_token, decodedToken, ...entryWithoutIdToken } = entry;\n\n this.userCache.set(CACHE_KEY_ID_TOKEN_SUFFIX, {\n id_token,\n decodedToken\n });\n\n await this.cacheManager.setIdToken(\n this.options.clientId,\n entry.id_token,\n entry.decodedToken\n );\n\n await this.cacheManager.set(entryWithoutIdToken);\n }\n\n private async _getIdTokenFromCache() {\n const audience = this.options.authorizationParams.audience || 'default';\n\n const cache = await this.cacheManager.getIdToken(\n new CacheKey({\n clientId: this.options.clientId,\n audience,\n scope: this.scope\n })\n );\n\n const currentCache = this.userCache.get<IdTokenEntry>(\n CACHE_KEY_ID_TOKEN_SUFFIX\n ) as IdTokenEntry;\n\n // If the id_token in the cache matches the value we previously cached in memory return the in-memory\n // value so that object comparison will work\n if (cache && cache.id_token === currentCache?.id_token) {\n return currentCache;\n }\n\n this.userCache.set(CACHE_KEY_ID_TOKEN_SUFFIX, cache);\n return cache;\n }\n\n private async _getEntryFromCache({\n scope,\n audience,\n clientId,\n getDetailedEntry = false\n }: {\n scope: string;\n audience: string;\n clientId: string;\n getDetailedEntry?: boolean;\n }) {\n const entry = await this.cacheManager.get(\n new CacheKey({\n scope,\n audience,\n clientId\n }),\n 60 // get a new token if within 60 seconds of expiring\n );\n\n if (entry && entry.access_token) {\n if (getDetailedEntry) {\n const { access_token, oauthTokenScope, expires_in } = entry;\n const cache = await this._getIdTokenFromCache();\n return {\n id_token: cache?.id_token,\n access_token,\n ...(oauthTokenScope ? { scope: oauthTokenScope } : null),\n expires_in\n };\n }\n\n return entry.access_token;\n }\n }\n\n /**\n * Releases any lock acquired by the current page that's not released yet\n *\n * Get's called on the `pagehide` event.\n * https://developer.mozilla.org/en-US/docs/Web/API/Window/pagehide_event\n */\n private _releaseLockOnPageHide = async () => {\n await lock.releaseLock(GET_TOKEN_SILENTLY_LOCK_KEY);\n\n window.removeEventListener('pagehide', this._releaseLockOnPageHide);\n };\n\n private async _requestToken(\n options: PKCERequestTokenOptions | RefreshTokenRequestTokenOptions,\n additionalParameters?: RequestTokenAdditionalParameters\n ) {\n const { nonceIn, organizationId } = additionalParameters || {};\n const authResult = await oauthToken(\n {\n baseUrl: this.domainUrl,\n client_id: this.options.clientId,\n auth0Client: this.options.auth0Client,\n useFormData: this.options.useFormData,\n timeout: this.httpTimeoutMs,\n ...options\n },\n this.worker\n );\n\n const decodedToken = await this._verifyIdToken(\n authResult.id_token,\n nonceIn,\n organizationId\n );\n\n await this._saveEntryInCache({\n ...authResult,\n decodedToken,\n scope: options.scope,\n audience: options.audience || 'default',\n ...(authResult.scope ? { oauthTokenScope: authResult.scope } : null),\n client_id: this.options.clientId\n });\n\n this.cookieStorage.save(this.isAuthenticatedCookieName, true, {\n daysUntilExpire: this.sessionCheckExpiryDays,\n cookieDomain: this.options.cookieDomain\n });\n\n this._processOrgIdHint(decodedToken.claims.org_id);\n\n return { ...authResult, decodedToken };\n }\n}\n\ninterface BaseRequestTokenOptions {\n audience?: string;\n scope?: string;\n timeout?: number;\n redirect_uri?: string;\n}\n\ninterface PKCERequestTokenOptions extends BaseRequestTokenOptions {\n code: string;\n grant_type: 'authorization_code';\n code_verifier: string;\n}\n\ninterface RefreshTokenRequestTokenOptions extends BaseRequestTokenOptions {\n grant_type: 'refresh_token';\n refresh_token: string;\n}\n\ninterface RequestTokenAdditionalParameters {\n nonceIn?: string;\n organizationId?: string;\n}\n","import { ICache } from './cache';\n\nexport interface AuthorizationParams {\n /**\n * - `'page'`: displays the UI with a full page view\n * - `'popup'`: displays the UI with a popup window\n * - `'touch'`: displays the UI in a way that leverages a touch interface\n * - `'wap'`: displays the UI with a \"feature phone\" type interface\n */\n display?: 'page' | 'popup' | 'touch' | 'wap';\n\n /**\n * - `'none'`: do not prompt user for login or consent on reauthentication\n * - `'login'`: prompt user for reauthentication\n * - `'consent'`: prompt user for consent before processing request\n * - `'select_account'`: prompt user to select an account\n */\n prompt?: 'none' | 'login' | 'consent' | 'select_account';\n\n /**\n * Maximum allowable elapsed time (in seconds) since authentication.\n * If the last time the user authenticated is greater than this value,\n * the user must be reauthenticated.\n */\n max_age?: string | number;\n\n /**\n * The space-separated list of language tags, ordered by preference.\n * For example: `'fr-CA fr en'`.\n */\n ui_locales?: string;\n\n /**\n * Previously issued ID Token.\n */\n id_token_hint?: string;\n\n /**\n * Provides a hint to Auth0 as to what flow should be displayed.\n * The default behavior is to show a login page but you can override\n * this by passing 'signup' to show the signup page instead.\n *\n * This only affects the New Universal Login Experience.\n */\n screen_hint?: 'signup' | 'login' | string;\n\n /**\n * The user's email address or other identifier. When your app knows\n * which user is trying to authenticate, you can provide this parameter\n * to pre-fill the email box or select the right session for sign-in.\n *\n * This currently only affects the classic Lock experience.\n */\n login_hint?: string;\n\n acr_values?: string;\n\n /**\n * The default scope to be used on authentication requests.\n *\n * This defaults to `profile email` if not set. If you are setting extra scopes and require\n * `profile` and `email` to be included then you must include them in the provided scope.\n *\n * Note: The `openid` scope is **always applied** regardless of this setting.\n */\n scope?: string;\n\n /**\n * The default audience to be used for requesting API access.\n */\n audience?: string;\n\n /**\n * The name of the connection configured for your application.\n * If null, it will redirect to the Auth0 Login Page and show\n * the Login Widget.\n */\n connection?: string;\n\n /**\n * The Id of an organization to log in to.\n *\n * This will specify an `organization` parameter in your user's login request and will add a step to validate\n * the `org_id` claim in your user's ID Token.\n */\n organization?: string;\n\n /**\n * The Id of an invitation to accept. This is available from the user invitation URL that is given when participating in a user invitation flow.\n */\n invitation?: string;\n\n /**\n * The default URL where Auth0 will redirect your browser to with\n * the authentication result. It must be whitelisted in\n * the \"Allowed Callback URLs\" field in your Auth0 Application's\n * settings. If not provided here, it should be provided in the other\n * methods that provide authentication.\n */\n redirect_uri?: string;\n\n /**\n * If you need to send custom parameters to the Authorization Server,\n * make sure to use the original parameter name.\n */\n [key: string]: any;\n}\n\ninterface BaseLoginOptions {\n /**\n * URL parameters that will be sent back to the Authorization Server. This can be known parameters\n * defined by Auth0 or custom parameters that you define.\n */\n authorizationParams?: AuthorizationParams;\n}\n\nexport interface Auth0ClientOptions extends BaseLoginOptions {\n /**\n * Your Auth0 account domain such as `'example.auth0.com'`,\n * `'example.eu.auth0.com'` or , `'example.mycompany.com'`\n * (when using [custom domains](https://auth0.com/docs/custom-domains))\n */\n domain: string;\n /**\n * The issuer to be used for validation of JWTs, optionally defaults to the domain above\n */\n issuer?: string;\n /**\n * The Client ID found on your Application settings page\n */\n clientId: string;\n /**\n * The value in seconds used to account for clock skew in JWT expirations.\n * Typically, this value is no more than a minute or two at maximum.\n * Defaults to 60s.\n */\n leeway?: number;\n\n /**\n * The location to use when storing cache data. Valid values are `memory` or `localstorage`.\n * The default setting is `memory`.\n *\n * Read more about [changing storage options in the Auth0 docs](https://auth0.com/docs/libraries/auth0-single-page-app-sdk#change-storage-options)\n */\n cacheLocation?: CacheLocation;\n\n /**\n * Specify a custom cache implementation to use for token storage and retrieval. This setting takes precedence over `cacheLocation` if they are both specified.\n */\n cache?: ICache;\n\n /**\n * If true, refresh tokens are used to fetch new access tokens from the Auth0 server. If false, the legacy technique of using a hidden iframe and the `authorization_code` grant with `prompt=none` is used.\n * The default setting is `false`.\n *\n * **Note**: Use of refresh tokens must be enabled by an administrator on your Auth0 client application.\n */\n useRefreshTokens?: boolean;\n\n /**\n * If true, fallback to the technique of using a hidden iframe and the `authorization_code` grant with `prompt=none` when unable to use refresh tokens. If false, the iframe fallback is not used and\n * errors relating to a failed `refresh_token` grant should be handled appropriately. The default setting is `false`.\n *\n * **Note**: There might be situations where doing silent auth with a Web Message response from an iframe is not possible,\n * like when you're serving your application from the file system or a custom protocol (like in a Desktop or Native app).\n * In situations like this you can disable the iframe fallback and handle the failed `refresh_token` grant and prompt the user to login interactively with `loginWithRedirect` or `loginWithPopup`.\"\n *\n * E.g. Using the `file:` protocol in an Electron application does not support that legacy technique.\n *\n * @example\n * let token: string;\n * try {\n * token = await auth0.getTokenSilently();\n * } catch (e) {\n * if (e.error === 'missing_refresh_token' || e.error === 'invalid_grant') {\n * auth0.loginWithRedirect();\n * }\n * }\n */\n useRefreshTokensFallback?: boolean;\n\n /**\n * A maximum number of seconds to wait before declaring background calls to /authorize as failed for timeout\n * Defaults to 60s.\n */\n authorizeTimeoutInSeconds?: number;\n\n /**\n * Specify the timeout for HTTP calls using `fetch`. The default is 10 seconds.\n */\n httpTimeoutInSeconds?: number;\n\n /**\n * Internal property to send information about the client to the authorization server.\n * @internal\n */\n auth0Client?: {\n name: string;\n version: string;\n env?: { [key: string]: string };\n };\n\n /**\n * Sets an additional cookie with no SameSite attribute to support legacy browsers\n * that are not compatible with the latest SameSite changes.\n * This will log a warning on modern browsers, you can disable the warning by setting\n * this to false but be aware that some older useragents will not work,\n * See https://www.chromium.org/updates/same-site/incompatible-clients\n * Defaults to true\n */\n legacySameSiteCookie?: boolean;\n\n /**\n * If `true`, the SDK will use a cookie when storing information about the auth transaction while\n * the user is going through the authentication flow on the authorization server.\n *\n * The default is `false`, in which case the SDK will use session storage.\n *\n * @notes\n *\n * You might want to enable this if you rely on your users being able to authenticate using flows that\n * may end up spanning across multiple tabs (e.g. magic links) or you cannot otherwise rely on session storage being available.\n */\n useCookiesForTransactions?: boolean;\n\n /**\n * Number of days until the cookie `auth0.is.authenticated` will expire\n * Defaults to 1.\n */\n sessionCheckExpiryDays?: number;\n\n /**\n * The domain the cookie is accessible from. If not set, the cookie is scoped to\n * the current domain, including the subdomain.\n *\n * Note: setting this incorrectly may cause silent authentication to stop working\n * on page load.\n *\n *\n * To keep a user logged in across multiple subdomains set this to your\n * top-level domain and prefixed with a `.` (eg: `.example.com`).\n */\n cookieDomain?: string;\n\n /**\n * If true, data to the token endpoint is transmitted as x-www-form-urlencoded data, if false it will be transmitted as JSON. The default setting is `true`.\n *\n * **Note:** Setting this to `false` may affect you if you use Auth0 Rules and are sending custom, non-primitive data. If you disable this,\n * please verify that your Auth0 Rules continue to work as intended.\n */\n useFormData?: boolean;\n\n /**\n * Modify the value used as the current time during the token validation.\n *\n * **Note**: Using this improperly can potentially compromise the token validation.\n */\n nowProvider?: () => Promise<number> | number;\n}\n\n/**\n * The possible locations where tokens can be stored\n */\nexport type CacheLocation = 'memory' | 'localstorage';\n\n/**\n * @ignore\n */\nexport interface AuthorizeOptions extends AuthorizationParams {\n response_type: string;\n response_mode: string;\n redirect_uri: string;\n nonce: string;\n state: string;\n scope: string;\n code_challenge: string;\n code_challenge_method: string;\n}\n\nexport interface RedirectLoginOptions<TAppState = any>\n extends BaseLoginOptions {\n /**\n * Used to store state before doing the redirect\n */\n appState?: TAppState;\n /**\n * Used to add to the URL fragment before redirecting\n */\n fragment?: string;\n /**\n * Used to control the redirect and not rely on the SDK to do the actual redirect.\n *\n * @example\n * const client = new Auth0Client({\n * async onRedirect(url) {\n * window.location.replace(url);\n * }\n * });\n */\n onRedirect?: (url: string) => Promise<void>;\n}\n\nexport interface RedirectLoginResult<TAppState = any> {\n /**\n * State stored when the redirect request was made\n */\n appState?: TAppState;\n}\n\nexport interface PopupLoginOptions extends BaseLoginOptions {}\n\nexport interface PopupConfigOptions {\n /**\n * The number of seconds to wait for a popup response before\n * throwing a timeout error. Defaults to 60s\n */\n timeoutInSeconds?: number;\n\n /**\n * Accepts an already-created popup window to use. If not specified, the SDK\n * will create its own. This may be useful for platforms like iOS that have\n * security restrictions around when popups can be invoked (e.g. from a user click event)\n */\n popup?: any;\n}\n\nexport interface GetTokenSilentlyOptions {\n /**\n * When `off`, ignores the cache and always sends a\n * request to Auth0.\n * When `cache-only`, only reads from the cache and never sends a request to Auth0.\n * Defaults to `on`, where it both reads from the cache and sends a request to Auth0 as needed.\n */\n cacheMode?: 'on' | 'off' | 'cache-only';\n\n /**\n * Parameters that will be sent back to Auth0 as part of a request.\n */\n authorizationParams?: {\n /**\n * There's no actual redirect when getting a token silently,\n * but, according to the spec, a `redirect_uri` param is required.\n * Auth0 uses this parameter to validate that the current `origin`\n * matches the `redirect_uri` `origin` when sending the response.\n * It must be whitelisted in the \"Allowed Web Origins\" in your\n * Auth0 Application's settings.\n */\n redirect_uri?: string;\n\n /**\n * The scope that was used in the authentication request\n */\n scope?: string;\n\n /**\n * The audience that was used in the authentication request\n */\n audience?: string;\n\n /**\n * If you need to send custom parameters to the Authorization Server,\n * make sure to use the original parameter name.\n */\n [key: string]: any;\n };\n\n /** A maximum number of seconds to wait before declaring the background /authorize call as failed for timeout\n * Defaults to 60s.\n */\n timeoutInSeconds?: number;\n\n /**\n * If true, the full response from the /oauth/token endpoint (or the cache, if the cache was used) is returned\n * (minus `refresh_token` if one was issued). Otherwise, just the access token is returned.\n *\n * The default is `false`.\n */\n detailedResponse?: boolean;\n}\n\nexport interface GetTokenWithPopupOptions extends PopupLoginOptions {\n /**\n * When `off`, ignores the cache and always sends a request to Auth0.\n * When `cache-only`, only reads from the cache and never sends a request to Auth0.\n * Defaults to `on`, where it both reads from the cache and sends a request to Auth0 as needed.\n */\n cacheMode?: 'on' | 'off' | 'cache-only';\n}\n\nexport interface LogoutUrlOptions {\n /**\n * The `clientId` of your application.\n *\n * If this property is not set, then the `clientId` that was used during initialization of the SDK is sent to the logout endpoint.\n *\n * If this property is set to `null`, then no client ID value is sent to the logout endpoint.\n *\n * [Read more about how redirecting after logout works](https://auth0.com/docs/logout/guides/redirect-users-after-logout)\n */\n clientId?: string;\n\n /**\n * Parameters to pass to the logout endpoint. This can be known parameters defined by Auth0 or custom parameters\n * you wish to provide.\n */\n logoutParams?: {\n /**\n * When supported by the upstream identity provider,\n * forces the user to logout of their identity provider\n * and from Auth0.\n * [Read more about how federated logout works at Auth0](https://auth0.com/docs/logout/guides/logout-idps)\n */\n federated?: boolean;\n /**\n * The URL where Auth0 will redirect your browser to after the logout.\n *\n * **Note**: If the `client_id` parameter is included, the\n * `returnTo` URL that is provided must be listed in the\n * Application's \"Allowed Logout URLs\" in the Auth0 dashboard.\n * However, if the `client_id` parameter is not included, the\n * `returnTo` URL must be listed in the \"Allowed Logout URLs\" at\n * the account level in the Auth0 dashboard.\n *\n * [Read more about how redirecting after logout works](https://auth0.com/docs/logout/guides/redirect-users-after-logout)\n */\n returnTo?: string;\n\n /**\n * If you need to send custom parameters to the logout endpoint, make sure to use the original parameter name.\n */\n [key: string]: any;\n };\n}\n\nexport interface LogoutOptions extends LogoutUrlOptions {\n /**\n * Used to control the redirect and not rely on the SDK to do the actual redirect.\n *\n * @example\n * await auth0.logout({\n * async onRedirect(url) {\n * window.location.replace(url);\n * }\n * });\n */\n onRedirect?: (url: string) => Promise<void>;\n}\n\n/**\n * @ignore\n */\nexport interface AuthenticationResult {\n state: string;\n code?: string;\n error?: string;\n error_description?: string;\n}\n\n/**\n * @ignore\n */\nexport interface TokenEndpointOptions {\n baseUrl: string;\n client_id: string;\n grant_type: string;\n timeout?: number;\n auth0Client: any;\n useFormData?: boolean;\n [key: string]: any;\n}\n\nexport type TokenEndpointResponse = {\n id_token: string;\n access_token: string;\n refresh_token?: string;\n expires_in: number;\n scope?: string;\n};\n\n/**\n * @ignore\n */\nexport interface OAuthTokenOptions extends TokenEndpointOptions {\n code_verifier: string;\n code: string;\n redirect_uri: string;\n audience: string;\n scope: string;\n}\n\n/**\n * @ignore\n */\nexport interface RefreshTokenOptions extends TokenEndpointOptions {\n refresh_token: string;\n}\n\n/**\n * @ignore\n */\nexport interface JWTVerifyOptions {\n iss: string;\n aud: string;\n id_token: string;\n nonce?: string;\n leeway?: number;\n max_age?: number;\n organizationId?: string;\n now?: number;\n}\n\nexport interface IdToken {\n __raw: string;\n name?: string;\n given_name?: string;\n family_name?: string;\n middle_name?: string;\n nickname?: string;\n preferred_username?: string;\n profile?: string;\n picture?: string;\n website?: string;\n email?: string;\n email_verified?: boolean;\n gender?: string;\n birthdate?: string;\n zoneinfo?: string;\n locale?: string;\n phone_number?: string;\n phone_number_verified?: boolean;\n address?: string;\n updated_at?: string;\n iss?: string;\n aud?: string;\n exp?: number;\n nbf?: number;\n iat?: number;\n jti?: string;\n azp?: string;\n nonce?: string;\n auth_time?: string;\n at_hash?: string;\n c_hash?: string;\n acr?: string;\n amr?: string;\n sub_jwk?: string;\n cnf?: string;\n sid?: string;\n org_id?: string;\n [key: string]: any;\n}\n\nexport class User {\n name?: string;\n given_name?: string;\n family_name?: string;\n middle_name?: string;\n nickname?: string;\n preferred_username?: string;\n profile?: string;\n picture?: string;\n website?: string;\n email?: string;\n email_verified?: boolean;\n gender?: string;\n birthdate?: string;\n zoneinfo?: string;\n locale?: string;\n phone_number?: string;\n phone_number_verified?: boolean;\n address?: string;\n updated_at?: string;\n sub?: string;\n [key: string]: any;\n}\n\n/**\n * @ignore\n */\nexport type FetchOptions = {\n method?: string;\n headers?: Record<string, string>;\n credentials?: 'include' | 'omit';\n body?: string;\n signal?: AbortSignal;\n};\n\nexport type GetTokenSilentlyVerboseResponse = Omit<\n TokenEndpointResponse,\n 'refresh_token'\n>;\n","import { Auth0Client } from './Auth0Client';\nimport { Auth0ClientOptions } from './global';\n\nimport './global';\n\nexport * from './global';\n\n/**\n * Asynchronously creates the Auth0Client instance and calls `checkSession`.\n *\n * **Note:** There are caveats to using this in a private browser tab, which may not silently authenticae\n * a user on page refresh. Please see [the checkSession docs](https://auth0.github.io/auth0-spa-js/classes/auth0client.html#checksession) for more info.\n *\n * @param options The client options\n * @returns An instance of Auth0Client\n */\nexport async function createAuth0Client(options: Auth0ClientOptions) {\n const auth0 = new Auth0Client(options);\n await auth0.checkSession();\n return auth0;\n}\n\nexport { Auth0Client };\n\nexport {\n GenericError,\n AuthenticationError,\n TimeoutError,\n PopupTimeoutError,\n PopupCancelledError,\n MfaRequiredError\n} from './errors';\n\nexport {\n ICache,\n LocalStorageCache,\n InMemoryCache,\n Cacheable,\n DecodedToken,\n CacheEntry,\n WrappedCacheEntry,\n KeyManifestEntry,\n MaybePromise,\n CacheKey,\n CacheKeyData\n} from './cache';\n"],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","defineProperty","exports","value","ProcessLocking","_this","this","locked","Map","addToLocked","key","toAdd","callbacks","get","undefined","set","unshift","isLocked","has","lock","Promise","resolve","reject","unlock","delete","toCall","pop","setTimeout","getInstance","instance","getLock","default","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","rejected","result","done","then","apply","__generator","body","_","label","sent","trys","ops","f","y","g","verb","throw","return","Symbol","iterator","n","v","op","TypeError","push","LOCK_STORAGE_KEY","delay","milliseconds","generateRandomString","CHARS","randomstring","INDEX","Math","floor","random","getLockId","Date","now","toString","SuperTokensLock","acquiredIatSet","Set","id","acquireLock","bind","releaseLock","releaseLock__private__","waitForSomethingToChange","refreshLockWhileAcquired","waiters","lockKey","timeout","iat","MAX_TIME","STORAGE_KEY","STORAGE","lockObj","TIMEOUT_KEY","lockObjPostDelay","_a","window","localStorage","getItem","setItem","JSON","stringify","timeoutKey","timeAcquired","timeRefreshed","parse","add","lockCorrector","storageKey","processLock_1","resolvedCalled","startedAt","MIN_TIME_TO_WAIT","removedListeners","stopWaiting","removeEventListener","removeFromWaiting","clearTimeout","timeOutId","timeToWait","addEventListener","addToWaiting","max","func","filter","notifyWaiters","slice","forEach","removeItem","MIN_ALLOWED_TIME","KEYS","keys","LOCK_KEY","includes","version","DEFAULT_AUTHORIZE_TIMEOUT_IN_SECONDS","DEFAULT_POPUP_CONFIG_OPTIONS","timeoutInSeconds","DEFAULT_SILENT_TOKEN_RETRY_COUNT","CLEANUP_IFRAME_TIMEOUT_IN_SECONDS","DEFAULT_FETCH_TIMEOUT_MS","CACHE_LOCATION_MEMORY","MISSING_REFRESH_TOKEN_ERROR_MESSAGE","INVALID_REFRESH_TOKEN_ERROR_MESSAGE","DEFAULT_SCOPE","DEFAULT_SESSION_CHECK_EXPIRY_DAYS","DEFAULT_AUTH0_CLIENT","name","DEFAULT_NOW_PROVIDER","GenericError","Error","constructor","error","error_description","super","setPrototypeOf","static","AuthenticationError","state","appState","TimeoutError","PopupTimeoutError","popup","PopupCancelledError","MfaRequiredError","mfa_token","MissingRefreshTokenError","audience","scope","valueOrEmptyString","exclude","parseQueryResult","queryString","substr","queryParams","split","parsedQuery","qp","val","decodeURIComponent","expires_in","parseInt","runIframe","authorizeUrl","eventOrigin","res","rej","iframe","document","createElement","setAttribute","style","display","removeIframe","contains","removeChild","iframeEventHandler","timeoutSetTimeoutId","origin","data","type","eventSource","source","close","response","fromPayload","appendChild","openPopup","url","width","height","left","screenX","innerWidth","top","screenY","innerHeight","open","runPopup","config","popupEventListener","popupTimer","setInterval","closed","clearInterval","timeoutId","getCrypto","crypto","createRandomString","charset","randomValues","Array","from","getRandomValues","Uint8Array","encode","btoa","stripUndefined","params","k","reduce","acc","assign","createQueryParams","clientId","client_id","URLSearchParams","sha256","async","digestOp","subtle","digest","TextEncoder","urlEncodeB64","input","b64Chars","replace","m","decodeB64","atob","map","c","charCodeAt","join","urlDecodeB64","bufferToBase64UrlEncoded","ie11SafeInput","String","fromCharCode","validateCrypto","getDomain","domainUrl","test","getTokenIssuer","issuer","startsWith","parseNumber","sendMessage","message","to","messageChannel","MessageChannel","port1","onmessage","event","postMessage","port2","createAbortController","AbortController","dofetch","fetchUrl","fetchOptions","fetch","ok","json","fetchWithoutWorker","controller","signal","race","abort","finally","fetchWithWorker","worker","useFormData","auth","switchFetch","getJSON","options","fetchError","errorMessage","oauthToken","baseUrl","auth0Client","method","headers","dedupe","arr","getUniqueScopes","scopes","trim","CACHE_KEY_PREFIX","CACHE_KEY_ID_TOKEN_SUFFIX","CacheKey","prefix","suffix","toKey","Boolean","entry","LocalStorageCache","payload","remove","allKeys","InMemoryCache","enclosedCache","cache","cacheEntry","DEFAULT_EXPIRY_ADJUSTMENT_SECONDS","CacheManager","keyManifest","nowProvider","idToken","decodedToken","cacheKey","getIdTokenCacheKey","id_token","entryByScope","expiryAdjustmentSeconds","wrappedEntry","getCacheKeys","matchedKey","matchExistingCacheKey","nowSeconds","expiresAt","refresh_token","wrapCacheEntry","memo","clear","expiresInTime","keyToMatch","fromKey","scopeSet","scopesToMatch","hasAllScopes","current","TRANSACTION_STORAGE_KEY_PREFIX","TransactionManager","storage","transaction","create","save","daysUntilExpire","isNumber","idTokendecoded","decode","token","parts","header","signature","payloadJSON","claims","__raw","user","encoded","verify","decoded","iss","sub","alg","aud","isArray","azp","nonce","max_age","auth_time","exp","leeway","expDate","nbfDate","authTimeDate","setUTCSeconds","nbf","organizationId","org_id","__assign","arguments","__esModule","stringifyAttribute","stringified","stringifyAttributes","attributes","expires","setMilliseconds","getMilliseconds","toUTCString","domain","path","secure","sameSite","encodeURIComponent","cookieString","cookies","rdecode","cookie","charAt","name_1","getAll","CookieStorage","Cookies.get","cookieAttributes","location","protocol","cookieDomain","Cookies.set","Cookies.remove","LEGACY_PREFIX","CookieStorageWithLegacySameSite","SessionStorage","sessionStorage","singlePromiseMap","singlePromise","cb","promise","retryPromise","maxNumberOfRetries","CacheKeyManifest","manifestKey","createManifestKeyFrom","size","GET_TOKEN_SILENTLY_LOCK_KEY","buildOrganizationHintCookieName","OLD_IS_AUTHENTICATED_COOKIE_NAME","buildIsAuthenticatedCookieName","cacheLocationBuilders","memory","localstorage","cacheFactory","getAuthorizeParams","clientOptions","authorizeOptions","code_challenge","redirect_uri","response_mode","authorizationParams","response_type","code_challenge_method","Lock","Auth0Client","userCache","defaultOptions","useRefreshTokensFallback","_releaseLockOnPageHide","cacheLocation","console","warn","httpTimeoutMs","httpTimeoutInSeconds","cookieStorage","legacySameSiteCookie","orgHintCookieName","isAuthenticatedCookieName","sessionCheckExpiryDays","transactionStorage","useCookiesForTransactions","useRefreshTokens","transactionManager","cacheManager","tokenIssuer","Worker","TokenWorker","_url","_authorizeUrl","verifyIdToken","_processOrgIdHint","fallbackRedirectUri","code_verifier","code_challengeBuffer","_prepareAuthorizeUrl","href","codeResult","authorizeTimeoutInSeconds","organization","_requestToken","grant_type","code","nonceIn","_getIdTokenFromCache","onRedirect","fragment","urlOptions","_b","urlWithFragment","queryStringFragments","getTokenSilently","cacheMode","_getTokenSilently","getTokenOptions","_getEntryFromCache","getDetailedEntry","detailedResponse","authResult","_getTokenUsingRefreshToken","_getTokenFromIFrame","access_token","oauthTokenScope","loginWithPopup","getUser","_buildLogoutUrl","logoutParams","federated","logoutOptions","federatedQuery","prompt","orgIdHint","stateIn","crossOriginIsolated","authorizeTimeout","tokenResult","logout","entryWithoutIdToken","setIdToken","getIdToken","currentCache","additionalParameters","_verifyIdToken","_saveEntryInCache","User","createAuth0Client","auth0","checkSession"],"mappings":"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"}
|