{"version":3,"file":"scripts/@lvflanders/bar-dependencies/lvflanders-bar-dependencies-18.min.js","mappings":"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","sources":["webpack://baas-static-web/./node_modules/error-stack-parser/error-stack-parser.js","webpack://baas-static-web/./node_modules/file-saver/dist/FileSaver.min.js","webpack://baas-static-web/./node_modules/opentracing/lib/constants.js","webpack://baas-static-web/./node_modules/opentracing/lib/functions.js","webpack://baas-static-web/./node_modules/opentracing/lib/noop.js","webpack://baas-static-web/./node_modules/opentracing/lib/reference.js","webpack://baas-static-web/./node_modules/opentracing/lib/span.js","webpack://baas-static-web/./node_modules/opentracing/lib/span_context.js","webpack://baas-static-web/./node_modules/opentracing/lib/tracer.js","webpack://baas-static-web/./node_modules/postscribe/dist/postscribe.js","webpack://baas-static-web/./node_modules/stackframe/stackframe.js","webpack://baas-static-web/./src/3rd-party/localforage/dist/localforage.js","webpack://baas-static-web/./node_modules/reflect-metadata/Reflect.js","webpack://baas-static-web/webpack/bootstrap","webpack://baas-static-web/webpack/runtime/compat get default export","webpack://baas-static-web/webpack/runtime/define property getters","webpack://baas-static-web/webpack/runtime/global","webpack://baas-static-web/webpack/runtime/hasOwnProperty shorthand","webpack://baas-static-web/webpack/runtime/make namespace object","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/ILogger.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/Errors.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/HttpClient.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/Loggers.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/Utils.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/Subject.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/HubConnection.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/ITransport.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/AbortController.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","webpack://baas-static-web/./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/css-tag.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/reactive-element.js","webpack://baas-static-web/./node_modules/lit-html/lit-html.js","webpack://baas-static-web/./node_modules/lit-element/lit-element.js","webpack://baas-static-web/./node_modules/lit-html/is-server.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/custom-element.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/property.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/state.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/event-options.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/base.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/query.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/query-all.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/query-async.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","webpack://baas-static-web/./node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/bind.js","webpack://baas-static-web/./node_modules/axios/lib/utils.js","webpack://baas-static-web/./node_modules/axios/lib/core/AxiosError.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/toFormData.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/buildURL.js","webpack://baas-static-web/./node_modules/axios/lib/core/InterceptorManager.js","webpack://baas-static-web/./node_modules/axios/lib/defaults/transitional.js","webpack://baas-static-web/./node_modules/axios/lib/platform/browser/index.js","webpack://baas-static-web/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://baas-static-web/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://baas-static-web/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://baas-static-web/./node_modules/axios/lib/platform/common/utils.js","webpack://baas-static-web/./node_modules/axios/lib/platform/index.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://baas-static-web/./node_modules/axios/lib/defaults/index.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://baas-static-web/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://baas-static-web/./node_modules/axios/lib/core/transformData.js","webpack://baas-static-web/./node_modules/axios/lib/cancel/isCancel.js","webpack://baas-static-web/./node_modules/axios/lib/cancel/CanceledError.js","webpack://baas-static-web/./node_modules/axios/lib/core/settle.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/speedometer.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/throttle.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/cookies.js","webpack://baas-static-web/./node_modules/axios/lib/core/buildFullPath.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/combineURLs.js","webpack://baas-static-web/./node_modules/axios/lib/core/mergeConfig.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://baas-static-web/./node_modules/axios/lib/adapters/xhr.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/composeSignals.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/trackStream.js","webpack://baas-static-web/./node_modules/axios/lib/adapters/fetch.js","webpack://baas-static-web/./node_modules/axios/lib/adapters/adapters.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/null.js","webpack://baas-static-web/./node_modules/axios/lib/core/dispatchRequest.js","webpack://baas-static-web/./node_modules/axios/lib/env/data.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/validator.js","webpack://baas-static-web/./node_modules/axios/lib/core/Axios.js","webpack://baas-static-web/./node_modules/axios/lib/cancel/CancelToken.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://baas-static-web/./node_modules/axios/lib/axios.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/spread.js","webpack://baas-static-web/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://baas-static-web/./node_modules/inversify/es/constants/metadata_keys.js","webpack://baas-static-web/./node_modules/inversify/es/constants/literal_types.js","webpack://baas-static-web/./node_modules/inversify/es/utils/id.js","webpack://baas-static-web/./node_modules/inversify/es/bindings/binding.js","webpack://baas-static-web/./node_modules/inversify/es/constants/error_msgs.js","webpack://baas-static-web/./node_modules/inversify/es/planning/metadata_reader.js","webpack://baas-static-web/./node_modules/inversify/es/bindings/binding_count.js","webpack://baas-static-web/./node_modules/inversify/es/utils/exceptions.js","webpack://baas-static-web/./node_modules/inversify/es/utils/serialization.js","webpack://baas-static-web/./node_modules/inversify/es/planning/context.js","webpack://baas-static-web/./node_modules/inversify/es/planning/metadata.js","webpack://baas-static-web/./node_modules/inversify/es/planning/plan.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/lazy_service_identifier.js","webpack://baas-static-web/./node_modules/inversify/es/planning/queryable_string.js","webpack://baas-static-web/./node_modules/inversify/es/planning/target.js","webpack://baas-static-web/./node_modules/inversify/es/planning/reflection_utils.js","webpack://baas-static-web/./node_modules/inversify/es/planning/request.js","webpack://baas-static-web/./node_modules/inversify/es/planning/planner.js","webpack://baas-static-web/./node_modules/inversify/es/utils/async.js","webpack://baas-static-web/./node_modules/inversify/es/scope/scope.js","webpack://baas-static-web/./node_modules/inversify/es/utils/factory_type.js","webpack://baas-static-web/./node_modules/inversify/es/utils/binding_utils.js","webpack://baas-static-web/./node_modules/inversify/es/resolution/instantiation.js","webpack://baas-static-web/./node_modules/inversify/es/resolution/resolver.js","webpack://baas-static-web/./node_modules/inversify/es/syntax/constraint_helpers.js","webpack://baas-static-web/./node_modules/inversify/es/syntax/binding_when_syntax.js","webpack://baas-static-web/./node_modules/inversify/es/syntax/binding_on_syntax.js","webpack://baas-static-web/./node_modules/inversify/es/syntax/binding_when_on_syntax.js","webpack://baas-static-web/./node_modules/inversify/es/syntax/binding_in_syntax.js","webpack://baas-static-web/./node_modules/inversify/es/syntax/binding_in_when_on_syntax.js","webpack://baas-static-web/./node_modules/inversify/es/syntax/binding_to_syntax.js","webpack://baas-static-web/./node_modules/inversify/es/container/container_snapshot.js","webpack://baas-static-web/./node_modules/inversify/es/container/lookup.js","webpack://baas-static-web/./node_modules/inversify/es/utils/clonable.js","webpack://baas-static-web/./node_modules/inversify/es/container/module_activation_store.js","webpack://baas-static-web/./node_modules/inversify/es/container/container.js","webpack://baas-static-web/./node_modules/inversify/es/container/container_module.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/decorator_utils.js","webpack://baas-static-web/./node_modules/inversify/es/utils/js.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/injectable.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/tagged.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/named.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/inject_base.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/inject.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/optional.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/unmanaged.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/multi_inject.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/target_name.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/property_event_decorator.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/post_construct.js","webpack://baas-static-web/./node_modules/inversify/es/interfaces/interfaces.js","webpack://baas-static-web/./node_modules/inversify/es/annotation/pre_destroy.js","webpack://baas-static-web/./node_modules/inversify/es/inversify.js","webpack://baas-static-web/./node_modules/jwt-decode/build/esm/index.js","webpack://baas-static-web/./node_modules/oidc-client-ts/dist/esm/oidc-client-ts.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/error-logging/stack-trace.js","webpack://baas-static-web/./node_modules/promise-polyfill/src/finally.js","webpack://baas-static-web/./node_modules/promise-polyfill/src/allSettled.js","webpack://baas-static-web/./node_modules/promise-polyfill/src/any.js","webpack://baas-static-web/./node_modules/promise-polyfill/src/index.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/polyfills.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/utils.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/url.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/constants.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/context.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/truncate.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/error-logging/error-logging.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/queue.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/ndjson.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/navigation/marks.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/compress.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/state.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/http/response-status.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/http/fetch.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/patch-utils.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/http/xhr.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/apm-server.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/throttle.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/event-handler.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/config-service.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/logging-service.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/service-factory.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/xhr-patch.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/fetch-patch.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/index.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/history-patch.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/performance-monitoring.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/span-base.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/span.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/breakdown.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/transaction.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/metrics/metrics.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/navigation/utils.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/navigation/navigation-timing.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/navigation/resource-timing.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/navigation/capture-navigation.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/navigation/user-timing.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/transaction-service.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/metrics/inp/process.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/metrics/inp/report.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/observers/page-visibility.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/observers/page-clicks.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/instrument.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/common/after-frame.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/bootstrap.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/opentracing/span.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/opentracing/tracer.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/opentracing/index.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/index.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/index.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum-core/dist/es/error-logging/index.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum/dist/es/apm-base.js","webpack://baas-static-web/./node_modules/@elastic/apm-rum/dist/es/index.js","webpack://baas-static-web/./src/@lvflanders/bar-dependencies.ts"],"sourcesContent":["(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n\n function _map(array, fn, thisArg) {\n if (typeof Array.prototype.map === 'function') {\n return array.map(fn, thisArg);\n } else {\n var output = new Array(array.length);\n for (var i = 0; i < array.length; i++) {\n output[i] = fn.call(thisArg, array[i]);\n }\n return output;\n }\n }\n\n function _filter(array, fn, thisArg) {\n if (typeof Array.prototype.filter === 'function') {\n return array.filter(fn, thisArg);\n } else {\n var output = [];\n for (var i = 0; i < array.length; i++) {\n if (fn.call(thisArg, array[i])) {\n output.push(array[i]);\n }\n }\n return output;\n }\n }\n\n function _indexOf(array, target) {\n if (typeof Array.prototype.indexOf === 'function') {\n return array.indexOf(target);\n } else {\n for (var i = 0; i < array.length; i++) {\n if (array[i] === target) {\n return i;\n }\n }\n return -1;\n }\n }\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = _filter(error.stack.split('\\n'), function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return _map(filtered, function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n var tokens = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(').split(/\\s+/).slice(1);\n var locationParts = this.extractLocation(tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = _indexOf(['eval', ''], locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame(functionName, undefined, fileName, locationParts[1], locationParts[2], line);\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = _filter(error.stack.split('\\n'), function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return _map(filtered, function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame(line);\n } else {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionName = tokens.join('@') || undefined;\n return new StackFrame(functionName,\n undefined,\n locationParts[0],\n locationParts[1],\n locationParts[2],\n line);\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame(undefined, undefined, match[2], match[1], undefined, lines[i]));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame(\n match[3] || undefined,\n undefined,\n match[2],\n match[1],\n undefined,\n lines[i]\n )\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = _filter(error.stack.split('\\n'), function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return _map(filtered, function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n return new StackFrame(\n functionName,\n args,\n locationParts[0],\n locationParts[1],\n locationParts[2],\n line);\n }, this);\n }\n };\n}));\n\n","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n//# sourceMappingURL=FileSaver.min.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * The FORMAT_BINARY format represents SpanContexts in an opaque binary\n * carrier.\n *\n * Tracer.inject() will set the buffer field to an Array-like (Array,\n * ArrayBuffer, or TypedBuffer) object containing the injected binary data.\n * Any valid Object can be used as long as the buffer field of the object\n * can be set.\n *\n * Tracer.extract() will look for `carrier.buffer`, and that field is\n * expected to be an Array-like object (Array, ArrayBuffer, or\n * TypedBuffer).\n */\nexports.FORMAT_BINARY = 'binary';\n/**\n * The FORMAT_TEXT_MAP format represents SpanContexts using a\n * string->string map (backed by a Javascript Object) as a carrier.\n *\n * NOTE: Unlike FORMAT_HTTP_HEADERS, FORMAT_TEXT_MAP places no restrictions\n * on the characters used in either the keys or the values of the map\n * entries.\n *\n * The FORMAT_TEXT_MAP carrier map may contain unrelated data (e.g.,\n * arbitrary gRPC metadata); as such, the Tracer implementation should use\n * a prefix or other convention to distinguish Tracer-specific key:value\n * pairs.\n */\nexports.FORMAT_TEXT_MAP = 'text_map';\n/**\n * The FORMAT_HTTP_HEADERS format represents SpanContexts using a\n * character-restricted string->string map (backed by a Javascript Object)\n * as a carrier.\n *\n * Keys and values in the FORMAT_HTTP_HEADERS carrier must be suitable for\n * use as HTTP headers (without modification or further escaping). That is,\n * the keys have a greatly restricted character set, casing for the keys\n * may not be preserved by various intermediaries, and the values should be\n * URL-escaped.\n *\n * The FORMAT_HTTP_HEADERS carrier map may contain unrelated data (e.g.,\n * arbitrary HTTP headers); as such, the Tracer implementation should use a\n * prefix or other convention to distinguish Tracer-specific key:value\n * pairs.\n */\nexports.FORMAT_HTTP_HEADERS = 'http_headers';\n/**\n * A Span may be the \"child of\" a parent Span. In a “child of” reference,\n * the parent Span depends on the child Span in some capacity.\n *\n * See more about reference types at https://github.com/opentracing/specification\n */\nexports.REFERENCE_CHILD_OF = 'child_of';\n/**\n * Some parent Spans do not depend in any way on the result of their child\n * Spans. In these cases, we say merely that the child Span “follows from”\n * the parent Span in a causal sense.\n *\n * See more about reference types at https://github.com/opentracing/specification\n */\nexports.REFERENCE_FOLLOWS_FROM = 'follows_from';\n//# sourceMappingURL=constants.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Constants = require(\"./constants\");\nvar reference_1 = require(\"./reference\");\nvar span_1 = require(\"./span\");\n/**\n * Return a new REFERENCE_CHILD_OF reference.\n *\n * @param {SpanContext} spanContext - the parent SpanContext instance to\n * reference.\n * @return a REFERENCE_CHILD_OF reference pointing to `spanContext`\n */\nfunction childOf(spanContext) {\n // Allow the user to pass a Span instead of a SpanContext\n if (spanContext instanceof span_1.default) {\n spanContext = spanContext.context();\n }\n return new reference_1.default(Constants.REFERENCE_CHILD_OF, spanContext);\n}\nexports.childOf = childOf;\n/**\n * Return a new REFERENCE_FOLLOWS_FROM reference.\n *\n * @param {SpanContext} spanContext - the parent SpanContext instance to\n * reference.\n * @return a REFERENCE_FOLLOWS_FROM reference pointing to `spanContext`\n */\nfunction followsFrom(spanContext) {\n // Allow the user to pass a Span instead of a SpanContext\n if (spanContext instanceof span_1.default) {\n spanContext = spanContext.context();\n }\n return new reference_1.default(Constants.REFERENCE_FOLLOWS_FROM, spanContext);\n}\nexports.followsFrom = followsFrom;\n//# sourceMappingURL=functions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar span_1 = require(\"./span\");\nvar span_context_1 = require(\"./span_context\");\nvar tracer_1 = require(\"./tracer\");\nexports.tracer = null;\nexports.spanContext = null;\nexports.span = null;\n// Deferred initialization to avoid a dependency cycle where Tracer depends on\n// Span which depends on the noop tracer.\nfunction initialize() {\n exports.tracer = new tracer_1.default();\n exports.span = new span_1.default();\n exports.spanContext = new span_context_1.default();\n}\nexports.initialize = initialize;\n//# sourceMappingURL=noop.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar span_1 = require(\"./span\");\n/**\n * Reference pairs a reference type constant (e.g., REFERENCE_CHILD_OF or\n * REFERENCE_FOLLOWS_FROM) with the SpanContext it points to.\n *\n * See the exported childOf() and followsFrom() functions at the package level.\n */\nvar Reference = /** @class */ (function () {\n /**\n * Initialize a new Reference instance.\n *\n * @param {string} type - the Reference type constant (e.g.,\n * REFERENCE_CHILD_OF or REFERENCE_FOLLOWS_FROM).\n * @param {SpanContext} referencedContext - the SpanContext being referred\n * to. As a convenience, a Span instance may be passed in instead\n * (in which case its .context() is used here).\n */\n function Reference(type, referencedContext) {\n this._type = type;\n this._referencedContext = (referencedContext instanceof span_1.default ?\n referencedContext.context() :\n referencedContext);\n }\n /**\n * @return {string} The Reference type (e.g., REFERENCE_CHILD_OF or\n * REFERENCE_FOLLOWS_FROM).\n */\n Reference.prototype.type = function () {\n return this._type;\n };\n /**\n * @return {SpanContext} The SpanContext being referred to (e.g., the\n * parent in a REFERENCE_CHILD_OF Reference).\n */\n Reference.prototype.referencedContext = function () {\n return this._referencedContext;\n };\n return Reference;\n}());\nexports.default = Reference;\n//# sourceMappingURL=reference.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar noop = require(\"./noop\");\n/**\n * Span represents a logical unit of work as part of a broader Trace. Examples\n * of span might include remote procedure calls or a in-process function calls\n * to sub-components. A Trace has a single, top-level \"root\" Span that in turn\n * may have zero or more child Spans, which in turn may have children.\n */\nvar Span = /** @class */ (function () {\n function Span() {\n }\n // ---------------------------------------------------------------------- //\n // OpenTracing API methods\n // ---------------------------------------------------------------------- //\n /**\n * Returns the SpanContext object associated with this Span.\n *\n * @return {SpanContext}\n */\n Span.prototype.context = function () {\n return this._context();\n };\n /**\n * Returns the Tracer object used to create this Span.\n *\n * @return {Tracer}\n */\n Span.prototype.tracer = function () {\n return this._tracer();\n };\n /**\n * Sets the string name for the logical operation this span represents.\n *\n * @param {string} name\n */\n Span.prototype.setOperationName = function (name) {\n this._setOperationName(name);\n return this;\n };\n /**\n * Sets a key:value pair on this Span that also propagates to future\n * children of the associated Span.\n *\n * setBaggageItem() enables powerful functionality given a full-stack\n * opentracing integration (e.g., arbitrary application data from a web\n * client can make it, transparently, all the way into the depths of a\n * storage system), and with it some powerful costs: use this feature with\n * care.\n *\n * IMPORTANT NOTE #1: setBaggageItem() will only propagate baggage items to\n * *future* causal descendants of the associated Span.\n *\n * IMPORTANT NOTE #2: Use this thoughtfully and with care. Every key and\n * value is copied into every local *and remote* child of the associated\n * Span, and that can add up to a lot of network and cpu overhead.\n *\n * @param {string} key\n * @param {string} value\n */\n Span.prototype.setBaggageItem = function (key, value) {\n this._setBaggageItem(key, value);\n return this;\n };\n /**\n * Returns the value for a baggage item given its key.\n *\n * @param {string} key\n * The key for the given trace attribute.\n * @return {string}\n * String value for the given key, or undefined if the key does not\n * correspond to a set trace attribute.\n */\n Span.prototype.getBaggageItem = function (key) {\n return this._getBaggageItem(key);\n };\n /**\n * Adds a single tag to the span. See `addTags()` for details.\n *\n * @param {string} key\n * @param {any} value\n */\n Span.prototype.setTag = function (key, value) {\n var _a;\n // NOTE: the call is normalized to a call to _addTags()\n this._addTags((_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * Adds the given key value pairs to the set of span tags.\n *\n * Multiple calls to addTags() results in the tags being the superset of\n * all calls.\n *\n * The behavior of setting the same key multiple times on the same span\n * is undefined.\n *\n * The supported type of the values is implementation-dependent.\n * Implementations are expected to safely handle all types of values but\n * may choose to ignore unrecognized / unhandle-able values (e.g. objects\n * with cyclic references, function objects).\n *\n * @return {[type]} [description]\n */\n Span.prototype.addTags = function (keyValueMap) {\n this._addTags(keyValueMap);\n return this;\n };\n /**\n * Add a log record to this Span, optionally at a user-provided timestamp.\n *\n * For example:\n *\n * span.log({\n * size: rpc.size(), // numeric value\n * URI: rpc.URI(), // string value\n * payload: rpc.payload(), // Object value\n * \"keys can be arbitrary strings\": rpc.foo(),\n * });\n *\n * span.log({\n * \"error.description\": someError.description(),\n * }, someError.timestampMillis());\n *\n * @param {object} keyValuePairs\n * An object mapping string keys to arbitrary value types. All\n * Tracer implementations should support bool, string, and numeric\n * value types, and some may also support Object values.\n * @param {number} timestamp\n * An optional parameter specifying the timestamp in milliseconds\n * since the Unix epoch. Fractional values are allowed so that\n * timestamps with sub-millisecond accuracy can be represented. If\n * not specified, the implementation is expected to use its notion\n * of the current time of the call.\n */\n Span.prototype.log = function (keyValuePairs, timestamp) {\n this._log(keyValuePairs, timestamp);\n return this;\n };\n /**\n * DEPRECATED\n */\n Span.prototype.logEvent = function (eventName, payload) {\n return this._log({ event: eventName, payload: payload });\n };\n /**\n * Sets the end timestamp and finalizes Span state.\n *\n * With the exception of calls to Span.context() (which are always allowed),\n * finish() must be the last call made to any span instance, and to do\n * otherwise leads to undefined behavior.\n *\n * @param {number} finishTime\n * Optional finish time in milliseconds as a Unix timestamp. Decimal\n * values are supported for timestamps with sub-millisecond accuracy.\n * If not specified, the current time (as defined by the\n * implementation) will be used.\n */\n Span.prototype.finish = function (finishTime) {\n this._finish(finishTime);\n // Do not return `this`. The Span generally should not be used after it\n // is finished so chaining is not desired in this context.\n };\n // ---------------------------------------------------------------------- //\n // Derived classes can choose to implement the below\n // ---------------------------------------------------------------------- //\n // By default returns a no-op SpanContext.\n Span.prototype._context = function () {\n return noop.spanContext;\n };\n // By default returns a no-op tracer.\n //\n // The base class could store the tracer that created it, but it does not\n // in order to ensure the no-op span implementation has zero members,\n // which allows V8 to aggressively optimize calls to such objects.\n Span.prototype._tracer = function () {\n return noop.tracer;\n };\n // By default does nothing\n Span.prototype._setOperationName = function (name) {\n };\n // By default does nothing\n Span.prototype._setBaggageItem = function (key, value) {\n };\n // By default does nothing\n Span.prototype._getBaggageItem = function (key) {\n return undefined;\n };\n // By default does nothing\n //\n // NOTE: both setTag() and addTags() map to this function. keyValuePairs\n // will always be an associative array.\n Span.prototype._addTags = function (keyValuePairs) {\n };\n // By default does nothing\n Span.prototype._log = function (keyValuePairs, timestamp) {\n };\n // By default does nothing\n //\n // finishTime is expected to be either a number or undefined.\n Span.prototype._finish = function (finishTime) {\n };\n return Span;\n}());\nexports.Span = Span;\nexports.default = Span;\n//# sourceMappingURL=span.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * SpanContext represents Span state that must propagate to descendant Spans\n * and across process boundaries.\n *\n * SpanContext is logically divided into two pieces: the user-level \"Baggage\"\n * (see setBaggageItem and getBaggageItem) that propagates across Span\n * boundaries and any Tracer-implementation-specific fields that are needed to\n * identify or otherwise contextualize the associated Span instance (e.g., a\n * tuple).\n */\nvar SpanContext = /** @class */ (function () {\n function SpanContext() {\n }\n // The SpanContext is entirely implementation dependent\n /**\n * Returns a string representation of the implementation internal trace ID.\n *\n * @returns {string}\n */\n SpanContext.prototype.toTraceId = function () {\n return '';\n };\n /**\n * Returns a string representation of the implementation internal span ID.\n *\n * @returns {string}\n */\n SpanContext.prototype.toSpanId = function () {\n return '';\n };\n return SpanContext;\n}());\nexports.SpanContext = SpanContext;\nexports.default = SpanContext;\n//# sourceMappingURL=span_context.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Functions = require(\"./functions\");\nvar Noop = require(\"./noop\");\nvar span_1 = require(\"./span\");\n/**\n * Tracer is the entry-point between the instrumentation API and the tracing\n * implementation.\n *\n * The default object acts as a no-op implementation.\n *\n * Note to implementators: derived classes can choose to directly implement the\n * methods in the \"OpenTracing API methods\" section, or optionally the subset of\n * underscore-prefixed methods to pick up the argument checking and handling\n * automatically from the base class.\n */\nvar Tracer = /** @class */ (function () {\n function Tracer() {\n }\n // ---------------------------------------------------------------------- //\n // OpenTracing API methods\n // ---------------------------------------------------------------------- //\n /**\n * Starts and returns a new Span representing a logical unit of work.\n *\n * For example:\n *\n * // Start a new (parentless) root Span:\n * var parent = Tracer.startSpan('DoWork');\n *\n * // Start a new (child) Span:\n * var child = Tracer.startSpan('load-from-db', {\n * childOf: parent.context(),\n * });\n *\n * // Start a new async (FollowsFrom) Span:\n * var child = Tracer.startSpan('async-cache-write', {\n * references: [\n * opentracing.followsFrom(parent.context())\n * ],\n * });\n *\n * @param {string} name - the name of the operation (REQUIRED).\n * @param {SpanOptions} [options] - options for the newly created span.\n * @return {Span} - a new Span object.\n */\n Tracer.prototype.startSpan = function (name, options) {\n if (options === void 0) { options = {}; }\n // Convert options.childOf to fields.references as needed.\n if (options.childOf) {\n // Convert from a Span or a SpanContext into a Reference.\n var childOf = Functions.childOf(options.childOf);\n if (options.references) {\n options.references.push(childOf);\n }\n else {\n options.references = [childOf];\n }\n delete (options.childOf);\n }\n return this._startSpan(name, options);\n };\n /**\n * Injects the given SpanContext instance for cross-process propagation\n * within `carrier`. The expected type of `carrier` depends on the value of\n * `format.\n *\n * OpenTracing defines a common set of `format` values (see\n * FORMAT_TEXT_MAP, FORMAT_HTTP_HEADERS, and FORMAT_BINARY), and each has\n * an expected carrier type.\n *\n * Consider this pseudocode example:\n *\n * var clientSpan = ...;\n * ...\n * // Inject clientSpan into a text carrier.\n * var headersCarrier = {};\n * Tracer.inject(clientSpan.context(), Tracer.FORMAT_HTTP_HEADERS, headersCarrier);\n * // Incorporate the textCarrier into the outbound HTTP request header\n * // map.\n * Object.assign(outboundHTTPReq.headers, headersCarrier);\n * // ... send the httpReq\n *\n * @param {SpanContext} spanContext - the SpanContext to inject into the\n * carrier object. As a convenience, a Span instance may be passed\n * in instead (in which case its .context() is used for the\n * inject()).\n * @param {string} format - the format of the carrier.\n * @param {any} carrier - see the documentation for the chosen `format`\n * for a description of the carrier object.\n */\n Tracer.prototype.inject = function (spanContext, format, carrier) {\n // Allow the user to pass a Span instead of a SpanContext\n if (spanContext instanceof span_1.default) {\n spanContext = spanContext.context();\n }\n return this._inject(spanContext, format, carrier);\n };\n /**\n * Returns a SpanContext instance extracted from `carrier` in the given\n * `format`.\n *\n * OpenTracing defines a common set of `format` values (see\n * FORMAT_TEXT_MAP, FORMAT_HTTP_HEADERS, and FORMAT_BINARY), and each has\n * an expected carrier type.\n *\n * Consider this pseudocode example:\n *\n * // Use the inbound HTTP request's headers as a text map carrier.\n * var headersCarrier = inboundHTTPReq.headers;\n * var wireCtx = Tracer.extract(Tracer.FORMAT_HTTP_HEADERS, headersCarrier);\n * var serverSpan = Tracer.startSpan('...', { childOf : wireCtx });\n *\n * @param {string} format - the format of the carrier.\n * @param {any} carrier - the type of the carrier object is determined by\n * the format.\n * @return {SpanContext}\n * The extracted SpanContext, or null if no such SpanContext could\n * be found in `carrier`\n */\n Tracer.prototype.extract = function (format, carrier) {\n return this._extract(format, carrier);\n };\n // ---------------------------------------------------------------------- //\n // Derived classes can choose to implement the below\n // ---------------------------------------------------------------------- //\n // NOTE: the input to this method is *always* an associative array. The\n // public-facing startSpan() method normalizes the arguments so that\n // all N implementations do not need to worry about variations in the call\n // signature.\n //\n // The default behavior returns a no-op span.\n Tracer.prototype._startSpan = function (name, fields) {\n return Noop.span;\n };\n // The default behavior is a no-op.\n Tracer.prototype._inject = function (spanContext, format, carrier) {\n };\n // The default behavior is to return a no-op SpanContext.\n Tracer.prototype._extract = function (format, carrier) {\n return Noop.spanContext;\n };\n return Tracer;\n}());\nexports.Tracer = Tracer;\nexports.default = Tracer;\n//# sourceMappingURL=tracer.js.map","/**\n * @file postscribe\n * @description Asynchronously write javascript, even with document.write.\n * @version v2.0.8\n * @see {@link https://krux.github.io/postscribe}\n * @license MIT\n * @author Derek Brans\n * @copyright 2016 Krux Digital, Inc\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"postscribe\"] = factory();\n\telse\n\t\troot[\"postscribe\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _postscribe = __webpack_require__(1);\n\t\n\tvar _postscribe2 = _interopRequireDefault(_postscribe);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tmodule.exports = _postscribe2['default'];\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\texports['default'] = postscribe;\n\t\n\tvar _writeStream = __webpack_require__(2);\n\t\n\tvar _writeStream2 = _interopRequireDefault(_writeStream);\n\t\n\tvar _utils = __webpack_require__(4);\n\t\n\tvar utils = _interopRequireWildcard(_utils);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * A function that intentionally does nothing.\n\t */\n\tfunction doNothing() {}\n\t\n\t/**\n\t * Available options and defaults.\n\t *\n\t * @type {Object}\n\t */\n\tvar OPTIONS = {\n\t /**\n\t * Called when an async script has loaded.\n\t */\n\t afterAsync: doNothing,\n\t\n\t /**\n\t * Called immediately before removing from the write queue.\n\t */\n\t afterDequeue: doNothing,\n\t\n\t /**\n\t * Called sync after a stream's first thread release.\n\t */\n\t afterStreamStart: doNothing,\n\t\n\t /**\n\t * Called after writing buffered document.write calls.\n\t */\n\t afterWrite: doNothing,\n\t\n\t /**\n\t * Allows disabling the autoFix feature of prescribe\n\t */\n\t autoFix: true,\n\t\n\t /**\n\t * Called immediately before adding to the write queue.\n\t */\n\t beforeEnqueue: doNothing,\n\t\n\t /**\n\t * Called before writing a token.\n\t *\n\t * @param {Object} tok The token\n\t */\n\t beforeWriteToken: function beforeWriteToken(tok) {\n\t return tok;\n\t },\n\t\n\t /**\n\t * Called before writing buffered document.write calls.\n\t *\n\t * @param {String} str The string\n\t */\n\t beforeWrite: function beforeWrite(str) {\n\t return str;\n\t },\n\t\n\t /**\n\t * Called when evaluation is finished.\n\t */\n\t done: doNothing,\n\t\n\t /**\n\t * Called when a write results in an error.\n\t *\n\t * @param {Error} e The error\n\t */\n\t error: function error(e) {\n\t throw new Error(e.msg);\n\t },\n\t\n\t\n\t /**\n\t * Whether to let scripts w/ async attribute set fall out of the queue.\n\t */\n\t releaseAsync: false\n\t};\n\t\n\tvar nextId = 0;\n\tvar queue = [];\n\tvar active = null;\n\t\n\tfunction nextStream() {\n\t var args = queue.shift();\n\t if (args) {\n\t var options = utils.last(args);\n\t\n\t options.afterDequeue();\n\t args.stream = runStream.apply(undefined, args);\n\t options.afterStreamStart();\n\t }\n\t}\n\t\n\tfunction runStream(el, html, options) {\n\t active = new _writeStream2['default'](el, options);\n\t\n\t // Identify this stream.\n\t active.id = nextId++;\n\t active.name = options.name || active.id;\n\t postscribe.streams[active.name] = active;\n\t\n\t // Override document.write.\n\t var doc = el.ownerDocument;\n\t\n\t var stash = {\n\t close: doc.close,\n\t open: doc.open,\n\t write: doc.write,\n\t writeln: doc.writeln\n\t };\n\t\n\t function _write(str) {\n\t str = options.beforeWrite(str);\n\t active.write(str);\n\t options.afterWrite(str);\n\t }\n\t\n\t _extends(doc, {\n\t close: doNothing,\n\t open: doNothing,\n\t write: function write() {\n\t for (var _len = arguments.length, str = Array(_len), _key = 0; _key < _len; _key++) {\n\t str[_key] = arguments[_key];\n\t }\n\t\n\t return _write(str.join(''));\n\t },\n\t writeln: function writeln() {\n\t for (var _len2 = arguments.length, str = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t str[_key2] = arguments[_key2];\n\t }\n\t\n\t return _write(str.join('') + '\\n');\n\t }\n\t });\n\t\n\t // Override window.onerror\n\t var oldOnError = active.win.onerror || doNothing;\n\t\n\t // This works together with the try/catch around WriteStream::insertScript\n\t // In modern browsers, exceptions in tag scripts go directly to top level\n\t active.win.onerror = function (msg, url, line) {\n\t options.error({ msg: msg + ' - ' + url + ': ' + line });\n\t oldOnError.apply(active.win, [msg, url, line]);\n\t };\n\t\n\t // Write to the stream\n\t active.write(html, function () {\n\t // restore document.write\n\t _extends(doc, stash);\n\t\n\t // restore window.onerror\n\t active.win.onerror = oldOnError;\n\t\n\t options.done();\n\t active = null;\n\t nextStream();\n\t });\n\t\n\t return active;\n\t}\n\t\n\tfunction postscribe(el, html, options) {\n\t if (utils.isFunction(options)) {\n\t options = { done: options };\n\t } else if (options === 'clear') {\n\t queue = [];\n\t active = null;\n\t nextId = 0;\n\t return;\n\t }\n\t\n\t options = utils.defaults(options, OPTIONS);\n\t\n\t // id selector\n\t if (/^#/.test(el)) {\n\t el = window.document.getElementById(el.substr(1));\n\t } else {\n\t el = el.jquery ? el[0] : el;\n\t }\n\t\n\t var args = [el, html, options];\n\t\n\t el.postscribe = {\n\t cancel: function cancel() {\n\t if (args.stream) {\n\t args.stream.abort();\n\t } else {\n\t args[1] = doNothing;\n\t }\n\t }\n\t };\n\t\n\t options.beforeEnqueue(args);\n\t queue.push(args);\n\t\n\t if (!active) {\n\t nextStream();\n\t }\n\t\n\t return el.postscribe;\n\t}\n\t\n\t_extends(postscribe, {\n\t // Streams by name.\n\t streams: {},\n\t // Queue of streams.\n\t queue: queue,\n\t // Expose internal classes.\n\t WriteStream: _writeStream2['default']\n\t});\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _prescribe = __webpack_require__(3);\n\t\n\tvar _prescribe2 = _interopRequireDefault(_prescribe);\n\t\n\tvar _utils = __webpack_require__(4);\n\t\n\tvar utils = _interopRequireWildcard(_utils);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/**\n\t * Turn on to debug how each chunk affected the DOM.\n\t * @type {boolean}\n\t */\n\tvar DEBUG_CHUNK = false;\n\t\n\t/**\n\t * Prefix for data attributes on DOM elements.\n\t * @type {string}\n\t */\n\tvar BASEATTR = 'data-ps-';\n\t\n\t/**\n\t * ID for the style proxy\n\t * @type {string}\n\t */\n\tvar PROXY_STYLE = 'ps-style';\n\t\n\t/**\n\t * ID for the script proxy\n\t * @type {string}\n\t */\n\tvar PROXY_SCRIPT = 'ps-script';\n\t\n\t/**\n\t * Get data attributes\n\t *\n\t * @param {Object} el The DOM element.\n\t * @param {String} name The attribute name.\n\t * @returns {String}\n\t */\n\tfunction getData(el, name) {\n\t var attr = BASEATTR + name;\n\t\n\t var val = el.getAttribute(attr);\n\t\n\t // IE 8 returns a number if it's a number\n\t return !utils.existy(val) ? val : String(val);\n\t}\n\t\n\t/**\n\t * Set data attributes\n\t *\n\t * @param {Object} el The DOM element.\n\t * @param {String} name The attribute name.\n\t * @param {null|*} value The attribute value.\n\t */\n\tfunction setData(el, name) {\n\t var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\t\n\t var attr = BASEATTR + name;\n\t\n\t if (utils.existy(value) && value !== '') {\n\t el.setAttribute(attr, value);\n\t } else {\n\t el.removeAttribute(attr);\n\t }\n\t}\n\t\n\t/**\n\t * Stream static html to an element, where \"static html\" denotes \"html\n\t * without scripts\".\n\t *\n\t * This class maintains a *history of writes devoid of any attributes* or\n\t * \"proxy history\".\n\t *\n\t * Injecting the proxy history into a temporary div has no side-effects,\n\t * other than to create proxy elements for previously written elements.\n\t *\n\t * Given the `staticHtml` of a new write, a `tempDiv`'s innerHTML is set to\n\t * `proxy_history + staticHtml`.\n\t * The *structure* of `tempDiv`'s contents, (i.e., the placement of new nodes\n\t * beside or inside of proxy elements), reflects the DOM structure that would\n\t * have resulted if all writes had been squashed into a single write.\n\t *\n\t * For each descendent `node` of `tempDiv` whose parentNode is a *proxy*,\n\t * `node` is appended to the corresponding *real* element within the DOM.\n\t *\n\t * Proxy elements are mapped to *actual* elements in the DOM by injecting a\n\t * `data-id` attribute into each start tag in `staticHtml`.\n\t *\n\t */\n\t\n\tvar WriteStream = function () {\n\t /**\n\t * Constructor.\n\t *\n\t * @param {Object} root The root element\n\t * @param {?Object} options The options\n\t */\n\t function WriteStream(root) {\n\t var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t _classCallCheck(this, WriteStream);\n\t\n\t this.root = root;\n\t this.options = options;\n\t this.doc = root.ownerDocument;\n\t this.win = this.doc.defaultView || this.doc.parentWindow;\n\t this.parser = new _prescribe2['default']('', { autoFix: options.autoFix });\n\t\n\t // Actual elements by id.\n\t this.actuals = [root];\n\t\n\t // Embodies the \"structure\" of what's been written so far,\n\t // devoid of attributes.\n\t this.proxyHistory = '';\n\t\n\t // Create a proxy of the root element.\n\t this.proxyRoot = this.doc.createElement(root.nodeName);\n\t\n\t this.scriptStack = [];\n\t this.writeQueue = [];\n\t\n\t setData(this.proxyRoot, 'proxyof', 0);\n\t }\n\t\n\t /**\n\t * Writes the given strings.\n\t *\n\t * @param {...String} str The strings to write\n\t */\n\t\n\t\n\t WriteStream.prototype.write = function write() {\n\t var _writeQueue;\n\t\n\t (_writeQueue = this.writeQueue).push.apply(_writeQueue, arguments);\n\t\n\t // Process writes\n\t // When new script gets pushed or pending this will stop\n\t // because new writeQueue gets pushed\n\t while (!this.deferredRemote && this.writeQueue.length) {\n\t var arg = this.writeQueue.shift();\n\t\n\t if (utils.isFunction(arg)) {\n\t this._callFunction(arg);\n\t } else {\n\t this._writeImpl(arg);\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Calls the given function.\n\t *\n\t * @param {Function} fn The function to call\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._callFunction = function _callFunction(fn) {\n\t var tok = { type: 'function', value: fn.name || fn.toString() };\n\t this._onScriptStart(tok);\n\t fn.call(this.win, this.doc);\n\t this._onScriptDone(tok);\n\t };\n\t\n\t /**\n\t * The write implementation\n\t *\n\t * @param {String} html The HTML to write.\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._writeImpl = function _writeImpl(html) {\n\t this.parser.append(html);\n\t\n\t var tok = void 0;\n\t var script = void 0;\n\t var style = void 0;\n\t var tokens = [];\n\t\n\t // stop if we see a script token\n\t while ((tok = this.parser.readToken()) && !(script = utils.isScript(tok)) && !(style = utils.isStyle(tok))) {\n\t tok = this.options.beforeWriteToken(tok);\n\t\n\t if (tok) {\n\t tokens.push(tok);\n\t }\n\t }\n\t\n\t if (tokens.length > 0) {\n\t this._writeStaticTokens(tokens);\n\t }\n\t\n\t if (script) {\n\t this._handleScriptToken(tok);\n\t }\n\t\n\t if (style) {\n\t this._handleStyleToken(tok);\n\t }\n\t };\n\t\n\t /**\n\t * Write contiguous non-script tokens (a chunk)\n\t *\n\t * @param {Array} tokens The tokens\n\t * @returns {{tokens, raw, actual, proxy}|null}\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._writeStaticTokens = function _writeStaticTokens(tokens) {\n\t var chunk = this._buildChunk(tokens);\n\t\n\t if (!chunk.actual) {\n\t // e.g., no tokens, or a noscript that got ignored\n\t return null;\n\t }\n\t\n\t chunk.html = this.proxyHistory + chunk.actual;\n\t this.proxyHistory += chunk.proxy;\n\t this.proxyRoot.innerHTML = chunk.html;\n\t\n\t if (DEBUG_CHUNK) {\n\t chunk.proxyInnerHTML = this.proxyRoot.innerHTML;\n\t }\n\t\n\t this._walkChunk();\n\t\n\t if (DEBUG_CHUNK) {\n\t chunk.actualInnerHTML = this.root.innerHTML;\n\t }\n\t\n\t return chunk;\n\t };\n\t\n\t /**\n\t * Build a chunk.\n\t *\n\t * @param {Array} tokens The tokens to use.\n\t * @returns {{tokens: *, raw: string, actual: string, proxy: string}}\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._buildChunk = function _buildChunk(tokens) {\n\t var nextId = this.actuals.length;\n\t\n\t // The raw html of this chunk.\n\t var raw = [];\n\t\n\t // The html to create the nodes in the tokens (with id's injected).\n\t var actual = [];\n\t\n\t // Html that can later be used to proxy the nodes in the tokens.\n\t var proxy = [];\n\t\n\t var len = tokens.length;\n\t for (var i = 0; i < len; i++) {\n\t var tok = tokens[i];\n\t var tokenRaw = tok.toString();\n\t\n\t raw.push(tokenRaw);\n\t\n\t if (tok.attrs) {\n\t // tok.attrs <==> startTag or atomicTag or cursor\n\t // Ignore noscript tags. They are atomic, so we don't have to worry about children.\n\t if (!/^noscript$/i.test(tok.tagName)) {\n\t var id = nextId++;\n\t\n\t // Actual: inject id attribute: replace '>' at end of start tag with id attribute + '>'\n\t actual.push(tokenRaw.replace(/(\\/?>)/, ' ' + BASEATTR + 'id=' + id + ' $1'));\n\t\n\t // Don't proxy scripts: they have no bearing on DOM structure.\n\t if (tok.attrs.id !== PROXY_SCRIPT && tok.attrs.id !== PROXY_STYLE) {\n\t // Proxy: strip all attributes and inject proxyof attribute\n\t proxy.push(\n\t // ignore atomic tags (e.g., style): they have no \"structural\" effect\n\t tok.type === 'atomicTag' ? '' : '<' + tok.tagName + ' ' + BASEATTR + 'proxyof=' + id + (tok.unary ? ' />' : '>'));\n\t }\n\t }\n\t } else {\n\t // Visit any other type of token\n\t // Actual: append.\n\t actual.push(tokenRaw);\n\t\n\t // Proxy: append endTags. Ignore everything else.\n\t proxy.push(tok.type === 'endTag' ? tokenRaw : '');\n\t }\n\t }\n\t\n\t return {\n\t tokens: tokens,\n\t raw: raw.join(''),\n\t actual: actual.join(''),\n\t proxy: proxy.join('')\n\t };\n\t };\n\t\n\t /**\n\t * Walk the chunks.\n\t *\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._walkChunk = function _walkChunk() {\n\t var node = void 0;\n\t var stack = [this.proxyRoot];\n\t\n\t // use shift/unshift so that children are walked in document order\n\t while (utils.existy(node = stack.shift())) {\n\t var isElement = node.nodeType === 1;\n\t var isProxy = isElement && getData(node, 'proxyof');\n\t\n\t // Ignore proxies\n\t if (!isProxy) {\n\t if (isElement) {\n\t // New actual element: register it and remove the the id attr.\n\t this.actuals[getData(node, 'id')] = node;\n\t setData(node, 'id');\n\t }\n\t\n\t // Is node's parent a proxy?\n\t var parentIsProxyOf = node.parentNode && getData(node.parentNode, 'proxyof');\n\t if (parentIsProxyOf) {\n\t // Move node under actual parent.\n\t this.actuals[parentIsProxyOf].appendChild(node);\n\t }\n\t }\n\t\n\t // prepend childNodes to stack\n\t stack.unshift.apply(stack, utils.toArray(node.childNodes));\n\t }\n\t };\n\t\n\t /**\n\t * Handles Script tokens\n\t *\n\t * @param {Object} tok The token\n\t */\n\t\n\t\n\t WriteStream.prototype._handleScriptToken = function _handleScriptToken(tok) {\n\t var _this = this;\n\t\n\t var remainder = this.parser.clear();\n\t\n\t if (remainder) {\n\t // Write remainder immediately behind this script.\n\t this.writeQueue.unshift(remainder);\n\t }\n\t\n\t tok.src = tok.attrs.src || tok.attrs.SRC;\n\t\n\t tok = this.options.beforeWriteToken(tok);\n\t if (!tok) {\n\t // User has removed this token\n\t return;\n\t }\n\t\n\t if (tok.src && this.scriptStack.length) {\n\t // Defer this script until scriptStack is empty.\n\t // Assumption 1: This script will not start executing until\n\t // scriptStack is empty.\n\t this.deferredRemote = tok;\n\t } else {\n\t this._onScriptStart(tok);\n\t }\n\t\n\t // Put the script node in the DOM.\n\t this._writeScriptToken(tok, function () {\n\t _this._onScriptDone(tok);\n\t });\n\t };\n\t\n\t /**\n\t * Handles style tokens\n\t *\n\t * @param {Object} tok The token\n\t */\n\t\n\t\n\t WriteStream.prototype._handleStyleToken = function _handleStyleToken(tok) {\n\t var remainder = this.parser.clear();\n\t\n\t if (remainder) {\n\t // Write remainder immediately behind this style.\n\t this.writeQueue.unshift(remainder);\n\t }\n\t\n\t tok.type = tok.attrs.type || tok.attrs.TYPE || 'text/css';\n\t\n\t tok = this.options.beforeWriteToken(tok);\n\t\n\t if (tok) {\n\t // Put the style node in the DOM.\n\t this._writeStyleToken(tok);\n\t }\n\t\n\t if (remainder) {\n\t this.write();\n\t }\n\t };\n\t\n\t /**\n\t * Build a style and insert it into the DOM.\n\t *\n\t * @param {Object} tok The token\n\t */\n\t\n\t\n\t WriteStream.prototype._writeStyleToken = function _writeStyleToken(tok) {\n\t var el = this._buildStyle(tok);\n\t\n\t this._insertCursor(el, PROXY_STYLE);\n\t\n\t // Set content\n\t if (tok.content) {\n\t if (el.styleSheet && !el.sheet) {\n\t el.styleSheet.cssText = tok.content;\n\t } else {\n\t el.appendChild(this.doc.createTextNode(tok.content));\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Build a style element from an atomic style token.\n\t *\n\t * @param {Object} tok The token\n\t * @returns {Element}\n\t */\n\t\n\t\n\t WriteStream.prototype._buildStyle = function _buildStyle(tok) {\n\t var el = this.doc.createElement(tok.tagName);\n\t\n\t el.setAttribute('type', tok.type);\n\t\n\t // Set attributes\n\t utils.eachKey(tok.attrs, function (name, value) {\n\t el.setAttribute(name, value);\n\t });\n\t\n\t return el;\n\t };\n\t\n\t /**\n\t * Append a span to the stream. That span will act as a cursor\n\t * (i.e. insertion point) for the element.\n\t *\n\t * @param {Object} el The element\n\t * @param {string} which The type of proxy element\n\t */\n\t\n\t\n\t WriteStream.prototype._insertCursor = function _insertCursor(el, which) {\n\t this._writeImpl('');\n\t\n\t var cursor = this.doc.getElementById(which);\n\t\n\t if (cursor) {\n\t cursor.parentNode.replaceChild(el, cursor);\n\t }\n\t };\n\t\n\t /**\n\t * Called when a script is started.\n\t *\n\t * @param {Object} tok The token\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._onScriptStart = function _onScriptStart(tok) {\n\t tok.outerWrites = this.writeQueue;\n\t this.writeQueue = [];\n\t this.scriptStack.unshift(tok);\n\t };\n\t\n\t /**\n\t * Called when a script is done.\n\t *\n\t * @param {Object} tok The token\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._onScriptDone = function _onScriptDone(tok) {\n\t // Pop script and check nesting.\n\t if (tok !== this.scriptStack[0]) {\n\t this.options.error({ msg: 'Bad script nesting or script finished twice' });\n\t return;\n\t }\n\t\n\t this.scriptStack.shift();\n\t\n\t // Append outer writes to queue and process them.\n\t this.write.apply(this, tok.outerWrites);\n\t\n\t // Check for pending remote\n\t\n\t // Assumption 2: if remote_script1 writes remote_script2 then\n\t // the we notice remote_script1 finishes before remote_script2 starts.\n\t // I think this is equivalent to assumption 1\n\t if (!this.scriptStack.length && this.deferredRemote) {\n\t this._onScriptStart(this.deferredRemote);\n\t this.deferredRemote = null;\n\t }\n\t };\n\t\n\t /**\n\t * Build a script and insert it into the DOM.\n\t * Done is called once script has executed.\n\t *\n\t * @param {Object} tok The token\n\t * @param {Function} done The callback when complete\n\t */\n\t\n\t\n\t WriteStream.prototype._writeScriptToken = function _writeScriptToken(tok, done) {\n\t var el = this._buildScript(tok);\n\t var asyncRelease = this._shouldRelease(el);\n\t var afterAsync = this.options.afterAsync;\n\t\n\t if (tok.src) {\n\t // Fix for attribute \"SRC\" (capitalized). IE does not recognize it.\n\t el.src = tok.src;\n\t this._scriptLoadHandler(el, !asyncRelease ? function () {\n\t done();\n\t afterAsync();\n\t } : afterAsync);\n\t }\n\t\n\t try {\n\t this._insertCursor(el, PROXY_SCRIPT);\n\t if (!el.src || asyncRelease) {\n\t done();\n\t }\n\t } catch (e) {\n\t this.options.error(e);\n\t done();\n\t }\n\t };\n\t\n\t /**\n\t * Build a script element from an atomic script token.\n\t *\n\t * @param {Object} tok The token\n\t * @returns {Element}\n\t */\n\t\n\t\n\t WriteStream.prototype._buildScript = function _buildScript(tok) {\n\t var el = this.doc.createElement(tok.tagName);\n\t\n\t // Set attributes\n\t utils.eachKey(tok.attrs, function (name, value) {\n\t el.setAttribute(name, value);\n\t });\n\t\n\t // Set content\n\t if (tok.content) {\n\t el.text = tok.content;\n\t }\n\t\n\t return el;\n\t };\n\t\n\t /**\n\t * Setup the script load handler on an element.\n\t *\n\t * @param {Object} el The element\n\t * @param {Function} done The callback\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._scriptLoadHandler = function _scriptLoadHandler(el, done) {\n\t function cleanup() {\n\t el = el.onload = el.onreadystatechange = el.onerror = null;\n\t }\n\t\n\t var error = this.options.error;\n\t\n\t function success() {\n\t cleanup();\n\t if (done != null) {\n\t done();\n\t }\n\t done = null;\n\t }\n\t\n\t function failure(err) {\n\t cleanup();\n\t error(err);\n\t if (done != null) {\n\t done();\n\t }\n\t done = null;\n\t }\n\t\n\t function reattachEventListener(el, evt) {\n\t var handler = el['on' + evt];\n\t if (handler != null) {\n\t el['_on' + evt] = handler;\n\t }\n\t }\n\t\n\t reattachEventListener(el, 'load');\n\t reattachEventListener(el, 'error');\n\t\n\t _extends(el, {\n\t onload: function onload() {\n\t if (el._onload) {\n\t try {\n\t el._onload.apply(this, Array.prototype.slice.call(arguments, 0));\n\t } catch (err) {\n\t failure({ msg: 'onload handler failed ' + err + ' @ ' + el.src });\n\t }\n\t }\n\t success();\n\t },\n\t onerror: function onerror() {\n\t if (el._onerror) {\n\t try {\n\t el._onerror.apply(this, Array.prototype.slice.call(arguments, 0));\n\t } catch (err) {\n\t failure({ msg: 'onerror handler failed ' + err + ' @ ' + el.src });\n\t return;\n\t }\n\t }\n\t failure({ msg: 'remote script failed ' + el.src });\n\t },\n\t onreadystatechange: function onreadystatechange() {\n\t if (/^(loaded|complete)$/.test(el.readyState)) {\n\t success();\n\t }\n\t }\n\t });\n\t };\n\t\n\t /**\n\t * Determines whether to release.\n\t *\n\t * @param {Object} el The element\n\t * @returns {boolean}\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._shouldRelease = function _shouldRelease(el) {\n\t var isScript = /^script$/i.test(el.nodeName);\n\t return !isScript || !!(this.options.releaseAsync && el.src && el.hasAttribute('async'));\n\t };\n\t\n\t return WriteStream;\n\t}();\n\t\n\texports['default'] = WriteStream;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * @file prescribe\n\t * @description Tiny, forgiving HTML parser\n\t * @version vundefined\n\t * @see {@link https://github.com/krux/prescribe/}\n\t * @license MIT\n\t * @author Derek Brans\n\t * @copyright 2016 Krux Digital, Inc\n\t */\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif(true)\n\t\t\tmodule.exports = factory();\n\t\telse if(typeof define === 'function' && define.amd)\n\t\t\tdefine([], factory);\n\t\telse if(typeof exports === 'object')\n\t\t\texports[\"Prescribe\"] = factory();\n\t\telse\n\t\t\troot[\"Prescribe\"] = factory();\n\t})(this, function() {\n\treturn /******/ (function(modules) { // webpackBootstrap\n\t/******/ \t// The module cache\n\t/******/ \tvar installedModules = {};\n\t\n\t/******/ \t// The require function\n\t/******/ \tfunction __webpack_require__(moduleId) {\n\t\n\t/******/ \t\t// Check if module is in cache\n\t/******/ \t\tif(installedModules[moduleId])\n\t/******/ \t\t\treturn installedModules[moduleId].exports;\n\t\n\t/******/ \t\t// Create a new module (and put it into the cache)\n\t/******/ \t\tvar module = installedModules[moduleId] = {\n\t/******/ \t\t\texports: {},\n\t/******/ \t\t\tid: moduleId,\n\t/******/ \t\t\tloaded: false\n\t/******/ \t\t};\n\t\n\t/******/ \t\t// Execute the module function\n\t/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t/******/ \t\t// Flag the module as loaded\n\t/******/ \t\tmodule.loaded = true;\n\t\n\t/******/ \t\t// Return the exports of the module\n\t/******/ \t\treturn module.exports;\n\t/******/ \t}\n\t\n\t\n\t/******/ \t// expose the modules object (__webpack_modules__)\n\t/******/ \t__webpack_require__.m = modules;\n\t\n\t/******/ \t// expose the module cache\n\t/******/ \t__webpack_require__.c = installedModules;\n\t\n\t/******/ \t// __webpack_public_path__\n\t/******/ \t__webpack_require__.p = \"\";\n\t\n\t/******/ \t// Load entry module and return exports\n\t/******/ \treturn __webpack_require__(0);\n\t/******/ })\n\t/************************************************************************/\n\t/******/ ([\n\t/* 0 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t'use strict';\n\t\n\t\tvar _HtmlParser = __webpack_require__(1);\n\t\n\t\tvar _HtmlParser2 = _interopRequireDefault(_HtmlParser);\n\t\n\t\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t\tmodule.exports = _HtmlParser2['default'];\n\t\n\t/***/ },\n\t/* 1 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t'use strict';\n\t\n\t\texports.__esModule = true;\n\t\n\t\tvar _supports = __webpack_require__(2);\n\t\n\t\tvar supports = _interopRequireWildcard(_supports);\n\t\n\t\tvar _streamReaders = __webpack_require__(3);\n\t\n\t\tvar streamReaders = _interopRequireWildcard(_streamReaders);\n\t\n\t\tvar _fixedReadTokenFactory = __webpack_require__(6);\n\t\n\t\tvar _fixedReadTokenFactory2 = _interopRequireDefault(_fixedReadTokenFactory);\n\t\n\t\tvar _utils = __webpack_require__(5);\n\t\n\t\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\t\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t\t/**\n\t\t * Detection regular expressions.\n\t\t *\n\t\t * Order of detection matters: detection of one can only\n\t\t * succeed if detection of previous didn't\n\t\n\t\t * @type {Object}\n\t\t */\n\t\tvar detect = {\n\t\t comment: /^');\n\t\t if (index >= 0) {\n\t\t return new _tokens.CommentToken(stream.substr(4, index - 1), index + 3);\n\t\t }\n\t\t}\n\t\n\t\t/**\n\t\t * Reads non-tag characters.\n\t\t *\n\t\t * @param {string} stream The input stream\n\t\t * @returns {CharsToken}\n\t\t */\n\t\tfunction chars(stream) {\n\t\t var index = stream.indexOf('<');\n\t\t return new _tokens.CharsToken(index >= 0 ? index : stream.length);\n\t\t}\n\t\n\t\t/**\n\t\t * Reads start tag token.\n\t\t *\n\t\t * @param {string} stream The input stream\n\t\t * @returns {StartTagToken}\n\t\t */\n\t\tfunction startTag(stream) {\n\t\t var endTagIndex = stream.indexOf('>');\n\t\t if (endTagIndex !== -1) {\n\t\t var match = stream.match(REGEXES.startTag);\n\t\t if (match) {\n\t\t var _ret = function () {\n\t\t var attrs = {};\n\t\t var booleanAttrs = {};\n\t\t var rest = match[2];\n\t\n\t\t match[2].replace(REGEXES.attr, function (match, name) {\n\t\t if (!(arguments[2] || arguments[3] || arguments[4] || arguments[5])) {\n\t\t attrs[name] = '';\n\t\t } else if (arguments[5]) {\n\t\t attrs[arguments[5]] = '';\n\t\t booleanAttrs[arguments[5]] = true;\n\t\t } else {\n\t\t attrs[name] = arguments[2] || arguments[3] || arguments[4] || REGEXES.fillAttr.test(name) && name || '';\n\t\t }\n\t\n\t\t rest = rest.replace(match, '');\n\t\t });\n\t\n\t\t return {\n\t\t v: new _tokens.StartTagToken(match[1], match[0].length, attrs, booleanAttrs, !!match[3], rest.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, ''))\n\t\t };\n\t\t }();\n\t\n\t\t if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n\t\t }\n\t\t }\n\t\t}\n\t\n\t\t/**\n\t\t * Reads atomic tag token.\n\t\t *\n\t\t * @param {string} stream The input stream\n\t\t * @returns {AtomicTagToken}\n\t\t */\n\t\tfunction atomicTag(stream) {\n\t\t var start = startTag(stream);\n\t\t if (start) {\n\t\t var rest = stream.slice(start.length);\n\t\t // for optimization, we check first just for the end tag\n\t\t if (rest.match(new RegExp('<\\/\\\\s*' + start.tagName + '\\\\s*>', 'i'))) {\n\t\t // capturing the content is inefficient, so we do it inside the if\n\t\t var match = rest.match(new RegExp('([\\\\s\\\\S]*?)<\\/\\\\s*' + start.tagName + '\\\\s*>', 'i'));\n\t\t if (match) {\n\t\t return new _tokens.AtomicTagToken(start.tagName, match[0].length + start.length, start.attrs, start.booleanAttrs, match[1]);\n\t\t }\n\t\t }\n\t\t }\n\t\t}\n\t\n\t\t/**\n\t\t * Reads an end tag token.\n\t\t *\n\t\t * @param {string} stream The input stream\n\t\t * @returns {EndTagToken}\n\t\t */\n\t\tfunction endTag(stream) {\n\t\t var match = stream.match(REGEXES.endTag);\n\t\t if (match) {\n\t\t return new _tokens.EndTagToken(match[1], match[0].length);\n\t\t }\n\t\t}\n\t\n\t/***/ },\n\t/* 4 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t'use strict';\n\t\n\t\texports.__esModule = true;\n\t\texports.EndTagToken = exports.AtomicTagToken = exports.StartTagToken = exports.TagToken = exports.CharsToken = exports.CommentToken = exports.Token = undefined;\n\t\n\t\tvar _utils = __webpack_require__(5);\n\t\n\t\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t\t/**\n\t\t * Token is a base class for all token types parsed. Note we don't actually\n\t\t * use intheritance due to IE8's non-existent ES5 support.\n\t\t */\n\t\tvar Token =\n\t\t/**\n\t\t * Constructor.\n\t\t *\n\t\t * @param {string} type The type of the Token.\n\t\t * @param {Number} length The length of the Token text.\n\t\t */\n\t\texports.Token = function Token(type, length) {\n\t\t _classCallCheck(this, Token);\n\t\n\t\t this.type = type;\n\t\t this.length = length;\n\t\t this.text = '';\n\t\t};\n\t\n\t\t/**\n\t\t * CommentToken represents comment tags.\n\t\t */\n\t\n\t\n\t\tvar CommentToken = exports.CommentToken = function () {\n\t\t /**\n\t\t * Constructor.\n\t\t *\n\t\t * @param {string} content The content of the comment\n\t\t * @param {Number} length The length of the Token text.\n\t\t */\n\t\t function CommentToken(content, length) {\n\t\t _classCallCheck(this, CommentToken);\n\t\n\t\t this.type = 'comment';\n\t\t this.length = length || (content ? content.length : 0);\n\t\t this.text = '';\n\t\t this.content = content;\n\t\t }\n\t\n\t\t CommentToken.prototype.toString = function toString() {\n\t\t return '/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":3===i?\"\":\"\",c=f;for(let i=0;i\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"\")+(2===i?\"\":3===i?\"\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as s}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class r extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const s=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(s,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return s}}r._$litElement$=!0,r[\"finalized\"]=!0,globalThis.litElementHydrateSupport?.({LitElement:r});const i=globalThis.litElementPolyfillSupport;i?.({LitElement:r});const o={_$AK:(t,e,s)=>{t._$AK(e,s)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.1.1\");export{r as LitElement,o as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst o=!1;export{o as isServer};\n//# sourceMappingURL=is-server.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction t(t){return(n,o)=>{const c=\"function\"==typeof n?n:n[o];Object.assign(c,t)}}export{t as eventOptions};\n//# sourceMappingURL=event-options.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nlet e;function r(r){return(n,o)=>t(n,o,{get(){return(this.renderRoot??(e??=document.createDocumentFragment())).querySelectorAll(r)}})}export{r as queryAll};\n//# sourceMappingURL=query-all.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction r(r){return(n,e)=>t(n,e,{async get(){return await this.updateComplete,this.renderRoot?.querySelector(r)??null}})}export{r as queryAsync};\n//# sourceMappingURL=query-async.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o){return(e,n)=>{const{slot:r,selector:s}=o??{},c=\"slot\"+(r?`[name=${r}]`:\":not([name])\");return t(e,n,{get(){const t=this.renderRoot?.querySelector(c),e=t?.assignedElements(o)??[];return void 0===s?e:e.filter((t=>t.matches(s)))}})}}export{o as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function n(n){return(o,r)=>{const{slot:e}=n??{},s=\"slot\"+(e?`[name=${e}]`:\":not([name])\");return t(o,r,{get(){const t=this.renderRoot?.querySelector(s);return t?.assignedNodes(n)??[]}})}}export{n as queryAssignedNodes};\n//# sourceMappingURL=query-assigned-nodes.js.map\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","export var NAMED_TAG = 'named';\r\nexport var NAME_TAG = 'name';\r\nexport var UNMANAGED_TAG = 'unmanaged';\r\nexport var OPTIONAL_TAG = 'optional';\r\nexport var INJECT_TAG = 'inject';\r\nexport var MULTI_INJECT_TAG = 'multi_inject';\r\nexport var TAGGED = 'inversify:tagged';\r\nexport var TAGGED_PROP = 'inversify:tagged_props';\r\nexport var PARAM_TYPES = 'inversify:paramtypes';\r\nexport var DESIGN_PARAM_TYPES = 'design:paramtypes';\r\nexport var POST_CONSTRUCT = 'post_construct';\r\nexport var PRE_DESTROY = 'pre_destroy';\r\nfunction getNonCustomTagKeys() {\r\n return [\r\n INJECT_TAG,\r\n MULTI_INJECT_TAG,\r\n NAME_TAG,\r\n UNMANAGED_TAG,\r\n NAMED_TAG,\r\n OPTIONAL_TAG,\r\n ];\r\n}\r\nexport var NON_CUSTOM_TAG_KEYS = getNonCustomTagKeys();\r\n","var BindingScopeEnum = {\r\n Request: 'Request',\r\n Singleton: 'Singleton',\r\n Transient: 'Transient'\r\n};\r\nvar BindingTypeEnum = {\r\n ConstantValue: 'ConstantValue',\r\n Constructor: 'Constructor',\r\n DynamicValue: 'DynamicValue',\r\n Factory: 'Factory',\r\n Function: 'Function',\r\n Instance: 'Instance',\r\n Invalid: 'Invalid',\r\n Provider: 'Provider'\r\n};\r\nvar TargetTypeEnum = {\r\n ClassProperty: 'ClassProperty',\r\n ConstructorArgument: 'ConstructorArgument',\r\n Variable: 'Variable'\r\n};\r\nexport { BindingScopeEnum, BindingTypeEnum, TargetTypeEnum };\r\n","var idCounter = 0;\r\nfunction id() {\r\n return idCounter++;\r\n}\r\nexport { id };\r\n","import { BindingScopeEnum, BindingTypeEnum } from '../constants/literal_types';\r\nimport { id } from '../utils/id';\r\nvar Binding = (function () {\r\n function Binding(serviceIdentifier, scope) {\r\n this.id = id();\r\n this.activated = false;\r\n this.serviceIdentifier = serviceIdentifier;\r\n this.scope = scope;\r\n this.type = BindingTypeEnum.Invalid;\r\n this.constraint = function (request) { return true; };\r\n this.implementationType = null;\r\n this.cache = null;\r\n this.factory = null;\r\n this.provider = null;\r\n this.onActivation = null;\r\n this.onDeactivation = null;\r\n this.dynamicValue = null;\r\n }\r\n Binding.prototype.clone = function () {\r\n var clone = new Binding(this.serviceIdentifier, this.scope);\r\n clone.activated = (clone.scope === BindingScopeEnum.Singleton) ? this.activated : false;\r\n clone.implementationType = this.implementationType;\r\n clone.dynamicValue = this.dynamicValue;\r\n clone.scope = this.scope;\r\n clone.type = this.type;\r\n clone.factory = this.factory;\r\n clone.provider = this.provider;\r\n clone.constraint = this.constraint;\r\n clone.onActivation = this.onActivation;\r\n clone.onDeactivation = this.onDeactivation;\r\n clone.cache = this.cache;\r\n return clone;\r\n };\r\n return Binding;\r\n}());\r\nexport { Binding };\r\n","export var DUPLICATED_INJECTABLE_DECORATOR = 'Cannot apply @injectable decorator multiple times.';\r\nexport var DUPLICATED_METADATA = 'Metadata key was used more than once in a parameter:';\r\nexport var NULL_ARGUMENT = 'NULL argument';\r\nexport var KEY_NOT_FOUND = 'Key Not Found';\r\nexport var AMBIGUOUS_MATCH = 'Ambiguous match found for serviceIdentifier:';\r\nexport var CANNOT_UNBIND = 'Could not unbind serviceIdentifier:';\r\nexport var NOT_REGISTERED = 'No matching bindings found for serviceIdentifier:';\r\nexport var MISSING_INJECTABLE_ANNOTATION = 'Missing required @injectable annotation in:';\r\nexport var MISSING_INJECT_ANNOTATION = 'Missing required @inject or @multiInject annotation in:';\r\nexport var UNDEFINED_INJECT_ANNOTATION = function (name) {\r\n return \"@inject called with undefined this could mean that the class \" + name + \" has \" +\r\n 'a circular dependency problem. You can use a LazyServiceIdentifier to ' +\r\n 'overcome this limitation.';\r\n};\r\nexport var CIRCULAR_DEPENDENCY = 'Circular dependency found:';\r\nexport var NOT_IMPLEMENTED = 'Sorry, this feature is not fully implemented yet.';\r\nexport var INVALID_BINDING_TYPE = 'Invalid binding type:';\r\nexport var NO_MORE_SNAPSHOTS_AVAILABLE = 'No snapshot available to restore.';\r\nexport var INVALID_MIDDLEWARE_RETURN = 'Invalid return type in middleware. Middleware must return!';\r\nexport var INVALID_FUNCTION_BINDING = 'Value provided to function binding must be a function!';\r\nexport var LAZY_IN_SYNC = function (key) { return \"You are attempting to construct '\" + key + \"' in a synchronous way\\n but it has asynchronous dependencies.\"; };\r\nexport var INVALID_TO_SELF_VALUE = 'The toSelf function can only be applied when a constructor is ' +\r\n 'used as service identifier';\r\nexport var INVALID_DECORATOR_OPERATION = 'The @inject @multiInject @tagged and @named decorators ' +\r\n 'must be applied to the parameters of a class constructor or a class property.';\r\nexport var ARGUMENTS_LENGTH_MISMATCH = function () {\r\n var values = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n values[_i] = arguments[_i];\r\n }\r\n return 'The number of constructor arguments in the derived class ' +\r\n (values[0] + \" must be >= than the number of constructor arguments of its base class.\");\r\n};\r\nexport var CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = 'Invalid Container constructor argument. Container options ' +\r\n 'must be an object.';\r\nexport var CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = 'Invalid Container option. Default scope must ' +\r\n 'be a string (\"singleton\" or \"transient\").';\r\nexport var CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = 'Invalid Container option. Auto bind injectable must ' +\r\n 'be a boolean';\r\nexport var CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = 'Invalid Container option. Skip base check must ' +\r\n 'be a boolean';\r\nexport var MULTIPLE_PRE_DESTROY_METHODS = 'Cannot apply @preDestroy decorator multiple times in the same class';\r\nexport var MULTIPLE_POST_CONSTRUCT_METHODS = 'Cannot apply @postConstruct decorator multiple times in the same class';\r\nexport var ASYNC_UNBIND_REQUIRED = 'Attempting to unbind dependency with asynchronous destruction (@preDestroy or onDeactivation)';\r\nexport var POST_CONSTRUCT_ERROR = function (clazz, errorMessage) { return \"@postConstruct error in class \" + clazz + \": \" + errorMessage; };\r\nexport var PRE_DESTROY_ERROR = function (clazz, errorMessage) { return \"@preDestroy error in class \" + clazz + \": \" + errorMessage; };\r\nexport var ON_DEACTIVATION_ERROR = function (clazz, errorMessage) { return \"onDeactivation() error in class \" + clazz + \": \" + errorMessage; };\r\nexport var CIRCULAR_DEPENDENCY_IN_FACTORY = function (factoryType, serviceIdentifier) {\r\n return \"It looks like there is a circular dependency in one of the '\" + factoryType + \"' bindings. Please investigate bindings with \" +\r\n (\"service identifier '\" + serviceIdentifier + \"'.\");\r\n};\r\nexport var STACK_OVERFLOW = 'Maximum call stack size exceeded';\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nvar MetadataReader = (function () {\r\n function MetadataReader() {\r\n }\r\n MetadataReader.prototype.getConstructorMetadata = function (constructorFunc) {\r\n var compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);\r\n var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);\r\n return {\r\n compilerGeneratedMetadata: compilerGeneratedMetadata,\r\n userGeneratedMetadata: userGeneratedMetadata || {}\r\n };\r\n };\r\n MetadataReader.prototype.getPropertiesMetadata = function (constructorFunc) {\r\n var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];\r\n return userGeneratedMetadata;\r\n };\r\n return MetadataReader;\r\n}());\r\nexport { MetadataReader };\r\n","export var BindingCount = {\r\n MultipleBindingsAvailable: 2,\r\n NoBindingsAvailable: 0,\r\n OnlyOneBindingAvailable: 1\r\n};\r\n","import * as ERROR_MSGS from '../constants/error_msgs';\r\nexport function isStackOverflowExeption(error) {\r\n return (error instanceof RangeError ||\r\n error.message === ERROR_MSGS.STACK_OVERFLOW);\r\n}\r\nexport var tryAndThrowErrorIfStackOverflow = function (fn, errorCallback) {\r\n try {\r\n return fn();\r\n }\r\n catch (error) {\r\n if (isStackOverflowExeption(error)) {\r\n error = errorCallback();\r\n }\r\n throw error;\r\n }\r\n};\r\n","import * as ERROR_MSGS from '../constants/error_msgs';\r\nfunction getServiceIdentifierAsString(serviceIdentifier) {\r\n if (typeof serviceIdentifier === 'function') {\r\n var _serviceIdentifier = serviceIdentifier;\r\n return _serviceIdentifier.name;\r\n }\r\n else if (typeof serviceIdentifier === 'symbol') {\r\n return serviceIdentifier.toString();\r\n }\r\n else {\r\n var _serviceIdentifier = serviceIdentifier;\r\n return _serviceIdentifier;\r\n }\r\n}\r\nfunction listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {\r\n var registeredBindingsList = '';\r\n var registeredBindings = getBindings(container, serviceIdentifier);\r\n if (registeredBindings.length !== 0) {\r\n registeredBindingsList = '\\nRegistered bindings:';\r\n registeredBindings.forEach(function (binding) {\r\n var name = 'Object';\r\n if (binding.implementationType !== null) {\r\n name = getFunctionName(binding.implementationType);\r\n }\r\n registeredBindingsList = registeredBindingsList + \"\\n \" + name;\r\n if (binding.constraint.metaData) {\r\n registeredBindingsList = registeredBindingsList + \" - \" + binding.constraint.metaData;\r\n }\r\n });\r\n }\r\n return registeredBindingsList;\r\n}\r\nfunction alreadyDependencyChain(request, serviceIdentifier) {\r\n if (request.parentRequest === null) {\r\n return false;\r\n }\r\n else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {\r\n return true;\r\n }\r\n else {\r\n return alreadyDependencyChain(request.parentRequest, serviceIdentifier);\r\n }\r\n}\r\nfunction dependencyChainToString(request) {\r\n function _createStringArr(req, result) {\r\n if (result === void 0) { result = []; }\r\n var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);\r\n result.push(serviceIdentifier);\r\n if (req.parentRequest !== null) {\r\n return _createStringArr(req.parentRequest, result);\r\n }\r\n return result;\r\n }\r\n var stringArr = _createStringArr(request);\r\n return stringArr.reverse().join(' --> ');\r\n}\r\nfunction circularDependencyToException(request) {\r\n request.childRequests.forEach(function (childRequest) {\r\n if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {\r\n var services = dependencyChainToString(childRequest);\r\n throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + \" \" + services);\r\n }\r\n else {\r\n circularDependencyToException(childRequest);\r\n }\r\n });\r\n}\r\nfunction listMetadataForTarget(serviceIdentifierString, target) {\r\n if (target.isTagged() || target.isNamed()) {\r\n var m_1 = '';\r\n var namedTag = target.getNamedTag();\r\n var otherTags = target.getCustomTags();\r\n if (namedTag !== null) {\r\n m_1 += namedTag.toString() + '\\n';\r\n }\r\n if (otherTags !== null) {\r\n otherTags.forEach(function (tag) {\r\n m_1 += tag.toString() + '\\n';\r\n });\r\n }\r\n return \" \" + serviceIdentifierString + \"\\n \" + serviceIdentifierString + \" - \" + m_1;\r\n }\r\n else {\r\n return \" \" + serviceIdentifierString;\r\n }\r\n}\r\nfunction getFunctionName(func) {\r\n if (func.name) {\r\n return func.name;\r\n }\r\n else {\r\n var name_1 = func.toString();\r\n var match = name_1.match(/^function\\s*([^\\s(]+)/);\r\n return match ? match[1] : \"Anonymous function: \" + name_1;\r\n }\r\n}\r\nfunction getSymbolDescription(symbol) {\r\n return symbol.toString().slice(7, -1);\r\n}\r\nexport { getFunctionName, getServiceIdentifierAsString, listRegisteredBindingsForServiceIdentifier, listMetadataForTarget, circularDependencyToException, getSymbolDescription };\r\n","import { id } from '../utils/id';\r\nvar Context = (function () {\r\n function Context(container) {\r\n this.id = id();\r\n this.container = container;\r\n }\r\n Context.prototype.addPlan = function (plan) {\r\n this.plan = plan;\r\n };\r\n Context.prototype.setCurrentRequest = function (currentRequest) {\r\n this.currentRequest = currentRequest;\r\n };\r\n return Context;\r\n}());\r\nexport { Context };\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nvar Metadata = (function () {\r\n function Metadata(key, value) {\r\n this.key = key;\r\n this.value = value;\r\n }\r\n Metadata.prototype.toString = function () {\r\n if (this.key === METADATA_KEY.NAMED_TAG) {\r\n return \"named: \" + String(this.value).toString() + \" \";\r\n }\r\n else {\r\n return \"tagged: { key:\" + this.key.toString() + \", value: \" + String(this.value) + \" }\";\r\n }\r\n };\r\n return Metadata;\r\n}());\r\nexport { Metadata };\r\n","var Plan = (function () {\r\n function Plan(parentContext, rootRequest) {\r\n this.parentContext = parentContext;\r\n this.rootRequest = rootRequest;\r\n }\r\n return Plan;\r\n}());\r\nexport { Plan };\r\n","var LazyServiceIdentifier = (function () {\r\n function LazyServiceIdentifier(cb) {\r\n this._cb = cb;\r\n }\r\n LazyServiceIdentifier.prototype.unwrap = function () {\r\n return this._cb();\r\n };\r\n return LazyServiceIdentifier;\r\n}());\r\nexport { LazyServiceIdentifier };\r\n","var QueryableString = (function () {\r\n function QueryableString(str) {\r\n this.str = str;\r\n }\r\n QueryableString.prototype.startsWith = function (searchString) {\r\n return this.str.indexOf(searchString) === 0;\r\n };\r\n QueryableString.prototype.endsWith = function (searchString) {\r\n var reverseString = '';\r\n var reverseSearchString = searchString.split('').reverse().join('');\r\n reverseString = this.str.split('').reverse().join('');\r\n return this.startsWith.call({ str: reverseString }, reverseSearchString);\r\n };\r\n QueryableString.prototype.contains = function (searchString) {\r\n return (this.str.indexOf(searchString) !== -1);\r\n };\r\n QueryableString.prototype.equals = function (compareString) {\r\n return this.str === compareString;\r\n };\r\n QueryableString.prototype.value = function () {\r\n return this.str;\r\n };\r\n return QueryableString;\r\n}());\r\nexport { QueryableString };\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { id } from '../utils/id';\r\nimport { getSymbolDescription } from '../utils/serialization';\r\nimport { Metadata } from './metadata';\r\nimport { QueryableString } from './queryable_string';\r\nvar Target = (function () {\r\n function Target(type, identifier, serviceIdentifier, namedOrTagged) {\r\n this.id = id();\r\n this.type = type;\r\n this.serviceIdentifier = serviceIdentifier;\r\n var queryableName = typeof identifier === 'symbol' ? getSymbolDescription(identifier) : identifier;\r\n this.name = new QueryableString(queryableName || '');\r\n this.identifier = identifier;\r\n this.metadata = new Array();\r\n var metadataItem = null;\r\n if (typeof namedOrTagged === 'string') {\r\n metadataItem = new Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged);\r\n }\r\n else if (namedOrTagged instanceof Metadata) {\r\n metadataItem = namedOrTagged;\r\n }\r\n if (metadataItem !== null) {\r\n this.metadata.push(metadataItem);\r\n }\r\n }\r\n Target.prototype.hasTag = function (key) {\r\n for (var _i = 0, _a = this.metadata; _i < _a.length; _i++) {\r\n var m = _a[_i];\r\n if (m.key === key) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Target.prototype.isArray = function () {\r\n return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG);\r\n };\r\n Target.prototype.matchesArray = function (name) {\r\n return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name);\r\n };\r\n Target.prototype.isNamed = function () {\r\n return this.hasTag(METADATA_KEY.NAMED_TAG);\r\n };\r\n Target.prototype.isTagged = function () {\r\n return this.metadata.some(function (metadata) { return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; }); });\r\n };\r\n Target.prototype.isOptional = function () {\r\n return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);\r\n };\r\n Target.prototype.getNamedTag = function () {\r\n if (this.isNamed()) {\r\n return this.metadata.filter(function (m) { return m.key === METADATA_KEY.NAMED_TAG; })[0];\r\n }\r\n return null;\r\n };\r\n Target.prototype.getCustomTags = function () {\r\n if (this.isTagged()) {\r\n return this.metadata.filter(function (metadata) { return METADATA_KEY.NON_CUSTOM_TAG_KEYS.every(function (key) { return metadata.key !== key; }); });\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n Target.prototype.matchesNamedTag = function (name) {\r\n return this.matchesTag(METADATA_KEY.NAMED_TAG)(name);\r\n };\r\n Target.prototype.matchesTag = function (key) {\r\n var _this = this;\r\n return function (value) {\r\n for (var _i = 0, _a = _this.metadata; _i < _a.length; _i++) {\r\n var m = _a[_i];\r\n if (m.key === key && m.value === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n };\r\n return Target;\r\n}());\r\nexport { Target };\r\n","var __spreadArray = (this && this.__spreadArray) || function (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\nimport { LazyServiceIdentifier } from '../annotation/lazy_service_identifier';\r\nimport * as ERROR_MSGS from '../constants/error_msgs';\r\nimport { TargetTypeEnum } from '../constants/literal_types';\r\nimport * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { getFunctionName } from '../utils/serialization';\r\nimport { Target } from './target';\r\nfunction getDependencies(metadataReader, func) {\r\n var constructorName = getFunctionName(func);\r\n return getTargets(metadataReader, constructorName, func, false);\r\n}\r\nfunction getTargets(metadataReader, constructorName, func, isBaseClass) {\r\n var metadata = metadataReader.getConstructorMetadata(func);\r\n var serviceIdentifiers = metadata.compilerGeneratedMetadata;\r\n if (serviceIdentifiers === undefined) {\r\n var msg = ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION + \" \" + constructorName + \".\";\r\n throw new Error(msg);\r\n }\r\n var constructorArgsMetadata = metadata.userGeneratedMetadata;\r\n var keys = Object.keys(constructorArgsMetadata);\r\n var hasUserDeclaredUnknownInjections = (func.length === 0 && keys.length > 0);\r\n var hasOptionalParameters = keys.length > func.length;\r\n var iterations = (hasUserDeclaredUnknownInjections || hasOptionalParameters) ? keys.length : func.length;\r\n var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);\r\n var propertyTargets = getClassPropsAsTargets(metadataReader, func, constructorName);\r\n var targets = __spreadArray(__spreadArray([], constructorTargets, true), propertyTargets, true);\r\n return targets;\r\n}\r\nfunction getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {\r\n var targetMetadata = constructorArgsMetadata[index.toString()] || [];\r\n var metadata = formatTargetMetadata(targetMetadata);\r\n var isManaged = metadata.unmanaged !== true;\r\n var serviceIdentifier = serviceIdentifiers[index];\r\n var injectIdentifier = metadata.inject || metadata.multiInject;\r\n serviceIdentifier = (injectIdentifier ? injectIdentifier : serviceIdentifier);\r\n if (serviceIdentifier instanceof LazyServiceIdentifier) {\r\n serviceIdentifier = serviceIdentifier.unwrap();\r\n }\r\n if (isManaged) {\r\n var isObject = serviceIdentifier === Object;\r\n var isFunction = serviceIdentifier === Function;\r\n var isUndefined = serviceIdentifier === undefined;\r\n var isUnknownType = isObject || isFunction || isUndefined;\r\n if (!isBaseClass && isUnknownType) {\r\n var msg = ERROR_MSGS.MISSING_INJECT_ANNOTATION + \" argument \" + index + \" in class \" + constructorName + \".\";\r\n throw new Error(msg);\r\n }\r\n var target = new Target(TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);\r\n target.metadata = targetMetadata;\r\n return target;\r\n }\r\n return null;\r\n}\r\nfunction getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) {\r\n var targets = [];\r\n for (var i = 0; i < iterations; i++) {\r\n var index = i;\r\n var target = getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata);\r\n if (target !== null) {\r\n targets.push(target);\r\n }\r\n }\r\n return targets;\r\n}\r\nfunction _getServiceIdentifierForProperty(inject, multiInject, propertyName, className) {\r\n var serviceIdentifier = (inject || multiInject);\r\n if (serviceIdentifier === undefined) {\r\n var msg = ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION + \" for property \" + String(propertyName) + \" in class \" + className + \".\";\r\n throw new Error(msg);\r\n }\r\n return serviceIdentifier;\r\n}\r\nfunction getClassPropsAsTargets(metadataReader, constructorFunc, constructorName) {\r\n var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);\r\n var targets = [];\r\n var symbolKeys = Object.getOwnPropertySymbols(classPropsMetadata);\r\n var stringKeys = Object.keys(classPropsMetadata);\r\n var keys = stringKeys.concat(symbolKeys);\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key = keys_1[_i];\r\n var targetMetadata = classPropsMetadata[key];\r\n var metadata = formatTargetMetadata(targetMetadata);\r\n var identifier = metadata.targetName || key;\r\n var serviceIdentifier = _getServiceIdentifierForProperty(metadata.inject, metadata.multiInject, key, constructorName);\r\n var target = new Target(TargetTypeEnum.ClassProperty, identifier, serviceIdentifier);\r\n target.metadata = targetMetadata;\r\n targets.push(target);\r\n }\r\n var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;\r\n if (baseConstructor !== Object) {\r\n var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor, constructorName);\r\n targets = __spreadArray(__spreadArray([], targets, true), baseTargets, true);\r\n }\r\n return targets;\r\n}\r\nfunction getBaseClassDependencyCount(metadataReader, func) {\r\n var baseConstructor = Object.getPrototypeOf(func.prototype).constructor;\r\n if (baseConstructor !== Object) {\r\n var baseConstructorName = getFunctionName(baseConstructor);\r\n var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);\r\n var metadata = targets.map(function (t) { return t.metadata.filter(function (m) { return m.key === METADATA_KEY.UNMANAGED_TAG; }); });\r\n var unmanagedCount = [].concat.apply([], metadata).length;\r\n var dependencyCount = targets.length - unmanagedCount;\r\n if (dependencyCount > 0) {\r\n return dependencyCount;\r\n }\r\n else {\r\n return getBaseClassDependencyCount(metadataReader, baseConstructor);\r\n }\r\n }\r\n else {\r\n return 0;\r\n }\r\n}\r\nfunction formatTargetMetadata(targetMetadata) {\r\n var targetMetadataMap = {};\r\n targetMetadata.forEach(function (m) {\r\n targetMetadataMap[m.key.toString()] = m.value;\r\n });\r\n return {\r\n inject: targetMetadataMap[METADATA_KEY.INJECT_TAG],\r\n multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],\r\n targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],\r\n unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]\r\n };\r\n}\r\nexport { getDependencies, getBaseClassDependencyCount, getFunctionName };\r\n","import { id } from '../utils/id';\r\nvar Request = (function () {\r\n function Request(serviceIdentifier, parentContext, parentRequest, bindings, target) {\r\n this.id = id();\r\n this.serviceIdentifier = serviceIdentifier;\r\n this.parentContext = parentContext;\r\n this.parentRequest = parentRequest;\r\n this.target = target;\r\n this.childRequests = [];\r\n this.bindings = (Array.isArray(bindings) ? bindings : [bindings]);\r\n this.requestScope = parentRequest === null\r\n ? new Map()\r\n : null;\r\n }\r\n Request.prototype.addChildRequest = function (serviceIdentifier, bindings, target) {\r\n var child = new Request(serviceIdentifier, this.parentContext, this, bindings, target);\r\n this.childRequests.push(child);\r\n return child;\r\n };\r\n return Request;\r\n}());\r\nexport { Request };\r\n","import { BindingCount } from '../bindings/binding_count';\r\nimport * as ERROR_MSGS from '../constants/error_msgs';\r\nimport { BindingTypeEnum, TargetTypeEnum } from '../constants/literal_types';\r\nimport * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { isStackOverflowExeption } from '../utils/exceptions';\r\nimport { circularDependencyToException, getServiceIdentifierAsString, listMetadataForTarget, listRegisteredBindingsForServiceIdentifier } from '../utils/serialization';\r\nimport { Context } from './context';\r\nimport { Metadata } from './metadata';\r\nimport { Plan } from './plan';\r\nimport { getBaseClassDependencyCount, getDependencies, getFunctionName } from './reflection_utils';\r\nimport { Request } from './request';\r\nimport { Target } from './target';\r\nfunction getBindingDictionary(cntnr) {\r\n return cntnr._bindingDictionary;\r\n}\r\nfunction _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value) {\r\n var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;\r\n var injectMetadata = new Metadata(metadataKey, serviceIdentifier);\r\n var target = new Target(targetType, name, serviceIdentifier, injectMetadata);\r\n if (key !== undefined) {\r\n var tagMetadata = new Metadata(key, value);\r\n target.metadata.push(tagMetadata);\r\n }\r\n return target;\r\n}\r\nfunction _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) {\r\n var bindings = getBindings(context.container, target.serviceIdentifier);\r\n var activeBindings = [];\r\n if (bindings.length === BindingCount.NoBindingsAvailable &&\r\n context.container.options.autoBindInjectable &&\r\n typeof target.serviceIdentifier === 'function' &&\r\n metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) {\r\n context.container.bind(target.serviceIdentifier).toSelf();\r\n bindings = getBindings(context.container, target.serviceIdentifier);\r\n }\r\n if (!avoidConstraints) {\r\n activeBindings = bindings.filter(function (binding) {\r\n var request = new Request(binding.serviceIdentifier, context, parentRequest, binding, target);\r\n return binding.constraint(request);\r\n });\r\n }\r\n else {\r\n activeBindings = bindings;\r\n }\r\n _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);\r\n return activeBindings;\r\n}\r\nfunction _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {\r\n switch (bindings.length) {\r\n case BindingCount.NoBindingsAvailable:\r\n if (target.isOptional()) {\r\n return bindings;\r\n }\r\n else {\r\n var serviceIdentifierString = getServiceIdentifierAsString(serviceIdentifier);\r\n var msg = ERROR_MSGS.NOT_REGISTERED;\r\n msg += listMetadataForTarget(serviceIdentifierString, target);\r\n msg += listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\r\n throw new Error(msg);\r\n }\r\n case BindingCount.OnlyOneBindingAvailable:\r\n return bindings;\r\n case BindingCount.MultipleBindingsAvailable:\r\n default:\r\n if (!target.isArray()) {\r\n var serviceIdentifierString = getServiceIdentifierAsString(serviceIdentifier);\r\n var msg = ERROR_MSGS.AMBIGUOUS_MATCH + \" \" + serviceIdentifierString;\r\n msg += listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);\r\n throw new Error(msg);\r\n }\r\n else {\r\n return bindings;\r\n }\r\n }\r\n}\r\nfunction _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, parentRequest, target) {\r\n var activeBindings;\r\n var childRequest;\r\n if (parentRequest === null) {\r\n activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target);\r\n childRequest = new Request(serviceIdentifier, context, null, activeBindings, target);\r\n var thePlan = new Plan(context, childRequest);\r\n context.addPlan(thePlan);\r\n }\r\n else {\r\n activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target);\r\n childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target);\r\n }\r\n activeBindings.forEach(function (binding) {\r\n var subChildRequest = null;\r\n if (target.isArray()) {\r\n subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);\r\n }\r\n else {\r\n if (binding.cache) {\r\n return;\r\n }\r\n subChildRequest = childRequest;\r\n }\r\n if (binding.type === BindingTypeEnum.Instance && binding.implementationType !== null) {\r\n var dependencies = getDependencies(metadataReader, binding.implementationType);\r\n if (!context.container.options.skipBaseClassChecks) {\r\n var baseClassDependencyCount = getBaseClassDependencyCount(metadataReader, binding.implementationType);\r\n if (dependencies.length < baseClassDependencyCount) {\r\n var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(getFunctionName(binding.implementationType));\r\n throw new Error(error);\r\n }\r\n }\r\n dependencies.forEach(function (dependency) {\r\n _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);\r\n });\r\n }\r\n });\r\n}\r\nfunction getBindings(container, serviceIdentifier) {\r\n var bindings = [];\r\n var bindingDictionary = getBindingDictionary(container);\r\n if (bindingDictionary.hasKey(serviceIdentifier)) {\r\n bindings = bindingDictionary.get(serviceIdentifier);\r\n }\r\n else if (container.parent !== null) {\r\n bindings = getBindings(container.parent, serviceIdentifier);\r\n }\r\n return bindings;\r\n}\r\nfunction plan(metadataReader, container, isMultiInject, targetType, serviceIdentifier, key, value, avoidConstraints) {\r\n if (avoidConstraints === void 0) { avoidConstraints = false; }\r\n var context = new Context(container);\r\n var target = _createTarget(isMultiInject, targetType, serviceIdentifier, '', key, value);\r\n try {\r\n _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target);\r\n return context;\r\n }\r\n catch (error) {\r\n if (isStackOverflowExeption(error)) {\r\n circularDependencyToException(context.plan.rootRequest);\r\n }\r\n throw error;\r\n }\r\n}\r\nfunction createMockRequest(container, serviceIdentifier, key, value) {\r\n var target = new Target(TargetTypeEnum.Variable, '', serviceIdentifier, new Metadata(key, value));\r\n var context = new Context(container);\r\n var request = new Request(serviceIdentifier, context, null, [], target);\r\n return request;\r\n}\r\nexport { plan, createMockRequest, getBindingDictionary };\r\n","function isPromise(object) {\r\n var isObjectOrFunction = (typeof object === 'object' && object !== null) || typeof object === 'function';\r\n return isObjectOrFunction && typeof object.then === \"function\";\r\n}\r\nfunction isPromiseOrContainsPromise(object) {\r\n if (isPromise(object)) {\r\n return true;\r\n }\r\n return Array.isArray(object) && object.some(isPromise);\r\n}\r\nexport { isPromise, isPromiseOrContainsPromise };\r\n","var __awaiter = (this && this.__awaiter) || function (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\nvar __generator = (this && this.__generator) || function (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\nimport { BindingScopeEnum } from '../constants/literal_types';\r\nimport { isPromise } from '../utils/async';\r\nexport var tryGetFromScope = function (requestScope, binding) {\r\n if ((binding.scope === BindingScopeEnum.Singleton) && binding.activated) {\r\n return binding.cache;\r\n }\r\n if (binding.scope === BindingScopeEnum.Request &&\r\n requestScope.has(binding.id)) {\r\n return requestScope.get(binding.id);\r\n }\r\n return null;\r\n};\r\nexport var saveToScope = function (requestScope, binding, result) {\r\n if (binding.scope === BindingScopeEnum.Singleton) {\r\n _saveToSingletonScope(binding, result);\r\n }\r\n if (binding.scope === BindingScopeEnum.Request) {\r\n _saveToRequestScope(requestScope, binding, result);\r\n }\r\n};\r\nvar _saveToRequestScope = function (requestScope, binding, result) {\r\n if (!requestScope.has(binding.id)) {\r\n requestScope.set(binding.id, result);\r\n }\r\n};\r\nvar _saveToSingletonScope = function (binding, result) {\r\n binding.cache = result;\r\n binding.activated = true;\r\n if (isPromise(result)) {\r\n void _saveAsyncResultToSingletonScope(binding, result);\r\n }\r\n};\r\nvar _saveAsyncResultToSingletonScope = function (binding, asyncResult) { return __awaiter(void 0, void 0, void 0, function () {\r\n var result, ex_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4, asyncResult];\r\n case 1:\r\n result = _a.sent();\r\n binding.cache = result;\r\n return [3, 3];\r\n case 2:\r\n ex_1 = _a.sent();\r\n binding.cache = null;\r\n binding.activated = false;\r\n throw ex_1;\r\n case 3: return [2];\r\n }\r\n });\r\n}); };\r\n","export var FactoryType;\r\n(function (FactoryType) {\r\n FactoryType[\"DynamicValue\"] = \"toDynamicValue\";\r\n FactoryType[\"Factory\"] = \"toFactory\";\r\n FactoryType[\"Provider\"] = \"toProvider\";\r\n})(FactoryType || (FactoryType = {}));\r\n","import { getServiceIdentifierAsString } from '../utils/serialization';\r\nimport * as ERROR_MSGS from '../constants/error_msgs';\r\nimport { BindingTypeEnum } from '../constants/literal_types';\r\nimport { FactoryType } from './factory_type';\r\nexport var multiBindToService = function (container) {\r\n return function (service) {\r\n return function () {\r\n var types = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n types[_i] = arguments[_i];\r\n }\r\n return types.forEach(function (t) { return container.bind(t).toService(service); });\r\n };\r\n };\r\n};\r\nexport var ensureFullyBound = function (binding) {\r\n var boundValue = null;\r\n switch (binding.type) {\r\n case BindingTypeEnum.ConstantValue:\r\n case BindingTypeEnum.Function:\r\n boundValue = binding.cache;\r\n break;\r\n case BindingTypeEnum.Constructor:\r\n case BindingTypeEnum.Instance:\r\n boundValue = binding.implementationType;\r\n break;\r\n case BindingTypeEnum.DynamicValue:\r\n boundValue = binding.dynamicValue;\r\n break;\r\n case BindingTypeEnum.Provider:\r\n boundValue = binding.provider;\r\n break;\r\n case BindingTypeEnum.Factory:\r\n boundValue = binding.factory;\r\n break;\r\n }\r\n if (boundValue === null) {\r\n var serviceIdentifierAsString = getServiceIdentifierAsString(binding.serviceIdentifier);\r\n throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + \" \" + serviceIdentifierAsString);\r\n }\r\n};\r\nexport var getFactoryDetails = function (binding) {\r\n switch (binding.type) {\r\n case BindingTypeEnum.Factory:\r\n return { factory: binding.factory, factoryType: FactoryType.Factory };\r\n case BindingTypeEnum.Provider:\r\n return { factory: binding.provider, factoryType: FactoryType.Provider };\r\n case BindingTypeEnum.DynamicValue:\r\n return { factory: binding.dynamicValue, factoryType: FactoryType.DynamicValue };\r\n default:\r\n throw new Error(\"Unexpected factory type \" + binding.type);\r\n }\r\n};\r\n","var __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\nvar __awaiter = (this && this.__awaiter) || function (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\nvar __generator = (this && this.__generator) || function (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\nvar __spreadArray = (this && this.__spreadArray) || function (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\nimport { ON_DEACTIVATION_ERROR, POST_CONSTRUCT_ERROR, PRE_DESTROY_ERROR } from '../constants/error_msgs';\r\nimport { BindingScopeEnum, TargetTypeEnum } from '../constants/literal_types';\r\nimport * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { isPromise, isPromiseOrContainsPromise } from '../utils/async';\r\nfunction _resolveRequests(childRequests, resolveRequest) {\r\n return childRequests.reduce(function (resolvedRequests, childRequest) {\r\n var injection = resolveRequest(childRequest);\r\n var targetType = childRequest.target.type;\r\n if (targetType === TargetTypeEnum.ConstructorArgument) {\r\n resolvedRequests.constructorInjections.push(injection);\r\n }\r\n else {\r\n resolvedRequests.propertyRequests.push(childRequest);\r\n resolvedRequests.propertyInjections.push(injection);\r\n }\r\n if (!resolvedRequests.isAsync) {\r\n resolvedRequests.isAsync = isPromiseOrContainsPromise(injection);\r\n }\r\n return resolvedRequests;\r\n }, { constructorInjections: [], propertyInjections: [], propertyRequests: [], isAsync: false });\r\n}\r\nfunction _createInstance(constr, childRequests, resolveRequest) {\r\n var result;\r\n if (childRequests.length > 0) {\r\n var resolved = _resolveRequests(childRequests, resolveRequest);\r\n var createInstanceWithInjectionsArg = __assign(__assign({}, resolved), { constr: constr });\r\n if (resolved.isAsync) {\r\n result = createInstanceWithInjectionsAsync(createInstanceWithInjectionsArg);\r\n }\r\n else {\r\n result = createInstanceWithInjections(createInstanceWithInjectionsArg);\r\n }\r\n }\r\n else {\r\n result = new constr();\r\n }\r\n return result;\r\n}\r\nfunction createInstanceWithInjections(args) {\r\n var _a;\r\n var instance = new ((_a = args.constr).bind.apply(_a, __spreadArray([void 0], args.constructorInjections, false)))();\r\n args.propertyRequests.forEach(function (r, index) {\r\n var property = r.target.identifier;\r\n var injection = args.propertyInjections[index];\r\n if (!r.target.isOptional() || injection !== undefined) {\r\n instance[property] = injection;\r\n }\r\n });\r\n return instance;\r\n}\r\nfunction createInstanceWithInjectionsAsync(args) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var constructorInjections, propertyInjections;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4, possiblyWaitInjections(args.constructorInjections)];\r\n case 1:\r\n constructorInjections = _a.sent();\r\n return [4, possiblyWaitInjections(args.propertyInjections)];\r\n case 2:\r\n propertyInjections = _a.sent();\r\n return [2, createInstanceWithInjections(__assign(__assign({}, args), { constructorInjections: constructorInjections, propertyInjections: propertyInjections }))];\r\n }\r\n });\r\n });\r\n}\r\nfunction possiblyWaitInjections(possiblePromiseinjections) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var injections, _i, possiblePromiseinjections_1, injection;\r\n return __generator(this, function (_a) {\r\n injections = [];\r\n for (_i = 0, possiblePromiseinjections_1 = possiblePromiseinjections; _i < possiblePromiseinjections_1.length; _i++) {\r\n injection = possiblePromiseinjections_1[_i];\r\n if (Array.isArray(injection)) {\r\n injections.push(Promise.all(injection));\r\n }\r\n else {\r\n injections.push(injection);\r\n }\r\n }\r\n return [2, Promise.all(injections)];\r\n });\r\n });\r\n}\r\nfunction _getInstanceAfterPostConstruct(constr, result) {\r\n var postConstructResult = _postConstruct(constr, result);\r\n if (isPromise(postConstructResult)) {\r\n return postConstructResult.then(function () { return result; });\r\n }\r\n else {\r\n return result;\r\n }\r\n}\r\nfunction _postConstruct(constr, instance) {\r\n var _a, _b;\r\n if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {\r\n var data = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr);\r\n try {\r\n return (_b = (_a = instance)[data.value]) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n catch (e) {\r\n if (e instanceof Error) {\r\n throw new Error(POST_CONSTRUCT_ERROR(constr.name, e.message));\r\n }\r\n }\r\n }\r\n}\r\nfunction _validateInstanceResolution(binding, constr) {\r\n if (binding.scope !== BindingScopeEnum.Singleton) {\r\n _throwIfHandlingDeactivation(binding, constr);\r\n }\r\n}\r\nfunction _throwIfHandlingDeactivation(binding, constr) {\r\n var scopeErrorMessage = \"Class cannot be instantiated in \" + (binding.scope === BindingScopeEnum.Request ?\r\n 'request' :\r\n 'transient') + \" scope.\";\r\n if (typeof binding.onDeactivation === 'function') {\r\n throw new Error(ON_DEACTIVATION_ERROR(constr.name, scopeErrorMessage));\r\n }\r\n if (Reflect.hasMetadata(METADATA_KEY.PRE_DESTROY, constr)) {\r\n throw new Error(PRE_DESTROY_ERROR(constr.name, scopeErrorMessage));\r\n }\r\n}\r\nfunction resolveInstance(binding, constr, childRequests, resolveRequest) {\r\n _validateInstanceResolution(binding, constr);\r\n var result = _createInstance(constr, childRequests, resolveRequest);\r\n if (isPromise(result)) {\r\n return result.then(function (resolvedResult) { return _getInstanceAfterPostConstruct(constr, resolvedResult); });\r\n }\r\n else {\r\n return _getInstanceAfterPostConstruct(constr, result);\r\n }\r\n}\r\nexport { resolveInstance };\r\n","var __awaiter = (this && this.__awaiter) || function (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\nvar __generator = (this && this.__generator) || function (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\nimport * as ERROR_MSGS from '../constants/error_msgs';\r\nimport { BindingTypeEnum } from '../constants/literal_types';\r\nimport { getBindingDictionary } from '../planning/planner';\r\nimport { saveToScope, tryGetFromScope } from '../scope/scope';\r\nimport { isPromise } from '../utils/async';\r\nimport { getFactoryDetails, ensureFullyBound } from '../utils/binding_utils';\r\nimport { tryAndThrowErrorIfStackOverflow } from '../utils/exceptions';\r\nimport { resolveInstance } from './instantiation';\r\nvar _resolveRequest = function (requestScope) {\r\n return function (request) {\r\n request.parentContext.setCurrentRequest(request);\r\n var bindings = request.bindings;\r\n var childRequests = request.childRequests;\r\n var targetIsAnArray = request.target && request.target.isArray();\r\n var targetParentIsNotAnArray = !request.parentRequest ||\r\n !request.parentRequest.target ||\r\n !request.target ||\r\n !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);\r\n if (targetIsAnArray && targetParentIsNotAnArray) {\r\n return childRequests.map(function (childRequest) {\r\n var _f = _resolveRequest(requestScope);\r\n return _f(childRequest);\r\n });\r\n }\r\n else {\r\n if (request.target.isOptional() && bindings.length === 0) {\r\n return undefined;\r\n }\r\n var binding = bindings[0];\r\n return _resolveBinding(requestScope, request, binding);\r\n }\r\n };\r\n};\r\nvar _resolveFactoryFromBinding = function (binding, context) {\r\n var factoryDetails = getFactoryDetails(binding);\r\n return tryAndThrowErrorIfStackOverflow(function () { return factoryDetails.factory.bind(binding)(context); }, function () { return new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryDetails.factoryType, context.currentRequest.serviceIdentifier.toString())); });\r\n};\r\nvar _getResolvedFromBinding = function (requestScope, request, binding) {\r\n var result;\r\n var childRequests = request.childRequests;\r\n ensureFullyBound(binding);\r\n switch (binding.type) {\r\n case BindingTypeEnum.ConstantValue:\r\n case BindingTypeEnum.Function:\r\n result = binding.cache;\r\n break;\r\n case BindingTypeEnum.Constructor:\r\n result = binding.implementationType;\r\n break;\r\n case BindingTypeEnum.Instance:\r\n result = resolveInstance(binding, binding.implementationType, childRequests, _resolveRequest(requestScope));\r\n break;\r\n default:\r\n result = _resolveFactoryFromBinding(binding, request.parentContext);\r\n }\r\n return result;\r\n};\r\nvar _resolveInScope = function (requestScope, binding, resolveFromBinding) {\r\n var result = tryGetFromScope(requestScope, binding);\r\n if (result !== null) {\r\n return result;\r\n }\r\n result = resolveFromBinding();\r\n saveToScope(requestScope, binding, result);\r\n return result;\r\n};\r\nvar _resolveBinding = function (requestScope, request, binding) {\r\n return _resolveInScope(requestScope, binding, function () {\r\n var result = _getResolvedFromBinding(requestScope, request, binding);\r\n if (isPromise(result)) {\r\n result = result.then(function (resolved) { return _onActivation(request, binding, resolved); });\r\n }\r\n else {\r\n result = _onActivation(request, binding, result);\r\n }\r\n return result;\r\n });\r\n};\r\nfunction _onActivation(request, binding, resolved) {\r\n var result = _bindingActivation(request.parentContext, binding, resolved);\r\n var containersIterator = _getContainersIterator(request.parentContext.container);\r\n var container;\r\n var containersIteratorResult = containersIterator.next();\r\n do {\r\n container = containersIteratorResult.value;\r\n var context_1 = request.parentContext;\r\n var serviceIdentifier = request.serviceIdentifier;\r\n var activationsIterator = _getContainerActivationsForService(container, serviceIdentifier);\r\n if (isPromise(result)) {\r\n result = _activateContainerAsync(activationsIterator, context_1, result);\r\n }\r\n else {\r\n result = _activateContainer(activationsIterator, context_1, result);\r\n }\r\n containersIteratorResult = containersIterator.next();\r\n } while (containersIteratorResult.done !== true && !getBindingDictionary(container).hasKey(request.serviceIdentifier));\r\n return result;\r\n}\r\nvar _bindingActivation = function (context, binding, previousResult) {\r\n var result;\r\n if (typeof binding.onActivation === 'function') {\r\n result = binding.onActivation(context, previousResult);\r\n }\r\n else {\r\n result = previousResult;\r\n }\r\n return result;\r\n};\r\nvar _activateContainer = function (activationsIterator, context, result) {\r\n var activation = activationsIterator.next();\r\n while (!activation.done) {\r\n result = activation.value(context, result);\r\n if (isPromise(result)) {\r\n return _activateContainerAsync(activationsIterator, context, result);\r\n }\r\n activation = activationsIterator.next();\r\n }\r\n return result;\r\n};\r\nvar _activateContainerAsync = function (activationsIterator, context, resultPromise) { return __awaiter(void 0, void 0, void 0, function () {\r\n var result, activation;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4, resultPromise];\r\n case 1:\r\n result = _a.sent();\r\n activation = activationsIterator.next();\r\n _a.label = 2;\r\n case 2:\r\n if (!!activation.done) return [3, 4];\r\n return [4, activation.value(context, result)];\r\n case 3:\r\n result = _a.sent();\r\n activation = activationsIterator.next();\r\n return [3, 2];\r\n case 4: return [2, result];\r\n }\r\n });\r\n}); };\r\nvar _getContainerActivationsForService = function (container, serviceIdentifier) {\r\n var activations = container._activations;\r\n return activations.hasKey(serviceIdentifier) ? activations.get(serviceIdentifier).values() : [].values();\r\n};\r\nvar _getContainersIterator = function (container) {\r\n var containersStack = [container];\r\n var parent = container.parent;\r\n while (parent !== null) {\r\n containersStack.push(parent);\r\n parent = parent.parent;\r\n }\r\n var getNextContainer = function () {\r\n var nextContainer = containersStack.pop();\r\n if (nextContainer !== undefined) {\r\n return { done: false, value: nextContainer };\r\n }\r\n else {\r\n return { done: true, value: undefined };\r\n }\r\n };\r\n var containersIterator = {\r\n next: getNextContainer,\r\n };\r\n return containersIterator;\r\n};\r\nfunction resolve(context) {\r\n var _f = _resolveRequest(context.plan.rootRequest.requestScope);\r\n return _f(context.plan.rootRequest);\r\n}\r\nexport { resolve };\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { Metadata } from '../planning/metadata';\r\nvar traverseAncerstors = function (request, constraint) {\r\n var parent = request.parentRequest;\r\n if (parent !== null) {\r\n return constraint(parent) ? true : traverseAncerstors(parent, constraint);\r\n }\r\n else {\r\n return false;\r\n }\r\n};\r\nvar taggedConstraint = function (key) { return function (value) {\r\n var constraint = function (request) {\r\n return request !== null && request.target !== null && request.target.matchesTag(key)(value);\r\n };\r\n constraint.metaData = new Metadata(key, value);\r\n return constraint;\r\n}; };\r\nvar namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);\r\nvar typeConstraint = function (type) { return function (request) {\r\n var binding = null;\r\n if (request !== null) {\r\n binding = request.bindings[0];\r\n if (typeof type === 'string') {\r\n var serviceIdentifier = binding.serviceIdentifier;\r\n return serviceIdentifier === type;\r\n }\r\n else {\r\n var constructor = request.bindings[0].implementationType;\r\n return type === constructor;\r\n }\r\n }\r\n return false;\r\n}; };\r\nexport { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint };\r\n","import { BindingOnSyntax } from './binding_on_syntax';\r\nimport { namedConstraint, taggedConstraint, traverseAncerstors, typeConstraint } from './constraint_helpers';\r\nvar BindingWhenSyntax = (function () {\r\n function BindingWhenSyntax(binding) {\r\n this._binding = binding;\r\n }\r\n BindingWhenSyntax.prototype.when = function (constraint) {\r\n this._binding.constraint = constraint;\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenTargetNamed = function (name) {\r\n this._binding.constraint = namedConstraint(name);\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenTargetIsDefault = function () {\r\n this._binding.constraint = function (request) {\r\n if (request === null) {\r\n return false;\r\n }\r\n var targetIsDefault = (request.target !== null) &&\r\n (!request.target.isNamed()) &&\r\n (!request.target.isTagged());\r\n return targetIsDefault;\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {\r\n this._binding.constraint = taggedConstraint(tag)(value);\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && typeConstraint(parent)(request.parentRequest);\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenParentNamed = function (name) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && namedConstraint(name)(request.parentRequest);\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && taggedConstraint(tag)(value)(request.parentRequest);\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && traverseAncerstors(request, typeConstraint(ancestor));\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && !traverseAncerstors(request, typeConstraint(ancestor));\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && traverseAncerstors(request, namedConstraint(name));\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && !traverseAncerstors(request, namedConstraint(name));\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && traverseAncerstors(request, taggedConstraint(tag)(value));\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && !traverseAncerstors(request, taggedConstraint(tag)(value));\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && traverseAncerstors(request, constraint);\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {\r\n this._binding.constraint = function (request) {\r\n return request !== null && !traverseAncerstors(request, constraint);\r\n };\r\n return new BindingOnSyntax(this._binding);\r\n };\r\n return BindingWhenSyntax;\r\n}());\r\nexport { BindingWhenSyntax };\r\n","import { BindingWhenSyntax } from './binding_when_syntax';\r\nvar BindingOnSyntax = (function () {\r\n function BindingOnSyntax(binding) {\r\n this._binding = binding;\r\n }\r\n BindingOnSyntax.prototype.onActivation = function (handler) {\r\n this._binding.onActivation = handler;\r\n return new BindingWhenSyntax(this._binding);\r\n };\r\n BindingOnSyntax.prototype.onDeactivation = function (handler) {\r\n this._binding.onDeactivation = handler;\r\n return new BindingWhenSyntax(this._binding);\r\n };\r\n return BindingOnSyntax;\r\n}());\r\nexport { BindingOnSyntax };\r\n","import { BindingOnSyntax } from './binding_on_syntax';\r\nimport { BindingWhenSyntax } from './binding_when_syntax';\r\nvar BindingWhenOnSyntax = (function () {\r\n function BindingWhenOnSyntax(binding) {\r\n this._binding = binding;\r\n this._bindingWhenSyntax = new BindingWhenSyntax(this._binding);\r\n this._bindingOnSyntax = new BindingOnSyntax(this._binding);\r\n }\r\n BindingWhenOnSyntax.prototype.when = function (constraint) {\r\n return this._bindingWhenSyntax.when(constraint);\r\n };\r\n BindingWhenOnSyntax.prototype.whenTargetNamed = function (name) {\r\n return this._bindingWhenSyntax.whenTargetNamed(name);\r\n };\r\n BindingWhenOnSyntax.prototype.whenTargetIsDefault = function () {\r\n return this._bindingWhenSyntax.whenTargetIsDefault();\r\n };\r\n BindingWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {\r\n return this._bindingWhenSyntax.whenTargetTagged(tag, value);\r\n };\r\n BindingWhenOnSyntax.prototype.whenInjectedInto = function (parent) {\r\n return this._bindingWhenSyntax.whenInjectedInto(parent);\r\n };\r\n BindingWhenOnSyntax.prototype.whenParentNamed = function (name) {\r\n return this._bindingWhenSyntax.whenParentNamed(name);\r\n };\r\n BindingWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {\r\n return this._bindingWhenSyntax.whenParentTagged(tag, value);\r\n };\r\n BindingWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {\r\n return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\r\n };\r\n BindingWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {\r\n return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\r\n };\r\n BindingWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {\r\n return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\r\n };\r\n BindingWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {\r\n return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\r\n };\r\n BindingWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {\r\n return this._bindingWhenSyntax.whenNoAncestorNamed(name);\r\n };\r\n BindingWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {\r\n return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\r\n };\r\n BindingWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {\r\n return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\r\n };\r\n BindingWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {\r\n return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\r\n };\r\n BindingWhenOnSyntax.prototype.onActivation = function (handler) {\r\n return this._bindingOnSyntax.onActivation(handler);\r\n };\r\n BindingWhenOnSyntax.prototype.onDeactivation = function (handler) {\r\n return this._bindingOnSyntax.onDeactivation(handler);\r\n };\r\n return BindingWhenOnSyntax;\r\n}());\r\nexport { BindingWhenOnSyntax };\r\n","import { BindingScopeEnum } from '../constants/literal_types';\r\nimport { BindingWhenOnSyntax } from './binding_when_on_syntax';\r\nvar BindingInSyntax = (function () {\r\n function BindingInSyntax(binding) {\r\n this._binding = binding;\r\n }\r\n BindingInSyntax.prototype.inRequestScope = function () {\r\n this._binding.scope = BindingScopeEnum.Request;\r\n return new BindingWhenOnSyntax(this._binding);\r\n };\r\n BindingInSyntax.prototype.inSingletonScope = function () {\r\n this._binding.scope = BindingScopeEnum.Singleton;\r\n return new BindingWhenOnSyntax(this._binding);\r\n };\r\n BindingInSyntax.prototype.inTransientScope = function () {\r\n this._binding.scope = BindingScopeEnum.Transient;\r\n return new BindingWhenOnSyntax(this._binding);\r\n };\r\n return BindingInSyntax;\r\n}());\r\nexport { BindingInSyntax };\r\n","import { BindingInSyntax } from './binding_in_syntax';\r\nimport { BindingOnSyntax } from './binding_on_syntax';\r\nimport { BindingWhenSyntax } from './binding_when_syntax';\r\nvar BindingInWhenOnSyntax = (function () {\r\n function BindingInWhenOnSyntax(binding) {\r\n this._binding = binding;\r\n this._bindingWhenSyntax = new BindingWhenSyntax(this._binding);\r\n this._bindingOnSyntax = new BindingOnSyntax(this._binding);\r\n this._bindingInSyntax = new BindingInSyntax(binding);\r\n }\r\n BindingInWhenOnSyntax.prototype.inRequestScope = function () {\r\n return this._bindingInSyntax.inRequestScope();\r\n };\r\n BindingInWhenOnSyntax.prototype.inSingletonScope = function () {\r\n return this._bindingInSyntax.inSingletonScope();\r\n };\r\n BindingInWhenOnSyntax.prototype.inTransientScope = function () {\r\n return this._bindingInSyntax.inTransientScope();\r\n };\r\n BindingInWhenOnSyntax.prototype.when = function (constraint) {\r\n return this._bindingWhenSyntax.when(constraint);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenTargetNamed = function (name) {\r\n return this._bindingWhenSyntax.whenTargetNamed(name);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenTargetIsDefault = function () {\r\n return this._bindingWhenSyntax.whenTargetIsDefault();\r\n };\r\n BindingInWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {\r\n return this._bindingWhenSyntax.whenTargetTagged(tag, value);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenInjectedInto = function (parent) {\r\n return this._bindingWhenSyntax.whenInjectedInto(parent);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenParentNamed = function (name) {\r\n return this._bindingWhenSyntax.whenParentNamed(name);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {\r\n return this._bindingWhenSyntax.whenParentTagged(tag, value);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {\r\n return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {\r\n return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {\r\n return this._bindingWhenSyntax.whenAnyAncestorNamed(name);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {\r\n return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {\r\n return this._bindingWhenSyntax.whenNoAncestorNamed(name);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {\r\n return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {\r\n return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);\r\n };\r\n BindingInWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {\r\n return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);\r\n };\r\n BindingInWhenOnSyntax.prototype.onActivation = function (handler) {\r\n return this._bindingOnSyntax.onActivation(handler);\r\n };\r\n BindingInWhenOnSyntax.prototype.onDeactivation = function (handler) {\r\n return this._bindingOnSyntax.onDeactivation(handler);\r\n };\r\n return BindingInWhenOnSyntax;\r\n}());\r\nexport { BindingInWhenOnSyntax };\r\n","import * as ERROR_MSGS from \"../constants/error_msgs\";\r\nimport { BindingScopeEnum, BindingTypeEnum } from \"../constants/literal_types\";\r\nimport { BindingInWhenOnSyntax } from \"./binding_in_when_on_syntax\";\r\nimport { BindingWhenOnSyntax } from \"./binding_when_on_syntax\";\r\nvar BindingToSyntax = (function () {\r\n function BindingToSyntax(binding) {\r\n this._binding = binding;\r\n }\r\n BindingToSyntax.prototype.to = function (constructor) {\r\n this._binding.type = BindingTypeEnum.Instance;\r\n this._binding.implementationType = constructor;\r\n return new BindingInWhenOnSyntax(this._binding);\r\n };\r\n BindingToSyntax.prototype.toSelf = function () {\r\n if (typeof this._binding.serviceIdentifier !== \"function\") {\r\n throw new Error(\"\" + ERROR_MSGS.INVALID_TO_SELF_VALUE);\r\n }\r\n var self = this._binding.serviceIdentifier;\r\n return this.to(self);\r\n };\r\n BindingToSyntax.prototype.toConstantValue = function (value) {\r\n this._binding.type = BindingTypeEnum.ConstantValue;\r\n this._binding.cache = value;\r\n this._binding.dynamicValue = null;\r\n this._binding.implementationType = null;\r\n this._binding.scope = BindingScopeEnum.Singleton;\r\n return new BindingWhenOnSyntax(this._binding);\r\n };\r\n BindingToSyntax.prototype.toDynamicValue = function (func) {\r\n this._binding.type = BindingTypeEnum.DynamicValue;\r\n this._binding.cache = null;\r\n this._binding.dynamicValue = func;\r\n this._binding.implementationType = null;\r\n return new BindingInWhenOnSyntax(this._binding);\r\n };\r\n BindingToSyntax.prototype.toConstructor = function (constructor) {\r\n this._binding.type = BindingTypeEnum.Constructor;\r\n this._binding.implementationType = constructor;\r\n this._binding.scope = BindingScopeEnum.Singleton;\r\n return new BindingWhenOnSyntax(this._binding);\r\n };\r\n BindingToSyntax.prototype.toFactory = function (factory) {\r\n this._binding.type = BindingTypeEnum.Factory;\r\n this._binding.factory = factory;\r\n this._binding.scope = BindingScopeEnum.Singleton;\r\n return new BindingWhenOnSyntax(this._binding);\r\n };\r\n BindingToSyntax.prototype.toFunction = function (func) {\r\n if (typeof func !== \"function\") {\r\n throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);\r\n }\r\n var bindingWhenOnSyntax = this.toConstantValue(func);\r\n this._binding.type = BindingTypeEnum.Function;\r\n this._binding.scope = BindingScopeEnum.Singleton;\r\n return bindingWhenOnSyntax;\r\n };\r\n BindingToSyntax.prototype.toAutoFactory = function (serviceIdentifier) {\r\n this._binding.type = BindingTypeEnum.Factory;\r\n this._binding.factory = function (context) {\r\n var autofactory = function () { return context.container.get(serviceIdentifier); };\r\n return autofactory;\r\n };\r\n this._binding.scope = BindingScopeEnum.Singleton;\r\n return new BindingWhenOnSyntax(this._binding);\r\n };\r\n BindingToSyntax.prototype.toAutoNamedFactory = function (serviceIdentifier) {\r\n this._binding.type = BindingTypeEnum.Factory;\r\n this._binding.factory = function (context) {\r\n return function (named) { return context.container.getNamed(serviceIdentifier, named); };\r\n };\r\n return new BindingWhenOnSyntax(this._binding);\r\n };\r\n BindingToSyntax.prototype.toProvider = function (provider) {\r\n this._binding.type = BindingTypeEnum.Provider;\r\n this._binding.provider = provider;\r\n this._binding.scope = BindingScopeEnum.Singleton;\r\n return new BindingWhenOnSyntax(this._binding);\r\n };\r\n BindingToSyntax.prototype.toService = function (service) {\r\n this.toDynamicValue(function (context) { return context.container.get(service); });\r\n };\r\n return BindingToSyntax;\r\n}());\r\nexport { BindingToSyntax };\r\n","var ContainerSnapshot = (function () {\r\n function ContainerSnapshot() {\r\n }\r\n ContainerSnapshot.of = function (bindings, middleware, activations, deactivations, moduleActivationStore) {\r\n var snapshot = new ContainerSnapshot();\r\n snapshot.bindings = bindings;\r\n snapshot.middleware = middleware;\r\n snapshot.deactivations = deactivations;\r\n snapshot.activations = activations;\r\n snapshot.moduleActivationStore = moduleActivationStore;\r\n return snapshot;\r\n };\r\n return ContainerSnapshot;\r\n}());\r\nexport { ContainerSnapshot };\r\n","import * as ERROR_MSGS from '../constants/error_msgs';\r\nimport { isClonable } from '../utils/clonable';\r\nvar Lookup = (function () {\r\n function Lookup() {\r\n this._map = new Map();\r\n }\r\n Lookup.prototype.getMap = function () {\r\n return this._map;\r\n };\r\n Lookup.prototype.add = function (serviceIdentifier, value) {\r\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\r\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\r\n }\r\n if (value === null || value === undefined) {\r\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\r\n }\r\n var entry = this._map.get(serviceIdentifier);\r\n if (entry !== undefined) {\r\n entry.push(value);\r\n }\r\n else {\r\n this._map.set(serviceIdentifier, [value]);\r\n }\r\n };\r\n Lookup.prototype.get = function (serviceIdentifier) {\r\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\r\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\r\n }\r\n var entry = this._map.get(serviceIdentifier);\r\n if (entry !== undefined) {\r\n return entry;\r\n }\r\n else {\r\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\r\n }\r\n };\r\n Lookup.prototype.remove = function (serviceIdentifier) {\r\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\r\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\r\n }\r\n if (!this._map.delete(serviceIdentifier)) {\r\n throw new Error(ERROR_MSGS.KEY_NOT_FOUND);\r\n }\r\n };\r\n Lookup.prototype.removeIntersection = function (lookup) {\r\n var _this = this;\r\n this.traverse(function (serviceIdentifier, value) {\r\n var lookupActivations = lookup.hasKey(serviceIdentifier) ? lookup.get(serviceIdentifier) : undefined;\r\n if (lookupActivations !== undefined) {\r\n var filteredValues = value.filter(function (lookupValue) {\r\n return !lookupActivations.some(function (moduleActivation) { return lookupValue === moduleActivation; });\r\n });\r\n _this._setValue(serviceIdentifier, filteredValues);\r\n }\r\n });\r\n };\r\n Lookup.prototype.removeByCondition = function (condition) {\r\n var _this = this;\r\n var removals = [];\r\n this._map.forEach(function (entries, key) {\r\n var updatedEntries = [];\r\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\r\n var entry = entries_1[_i];\r\n var remove = condition(entry);\r\n if (remove) {\r\n removals.push(entry);\r\n }\r\n else {\r\n updatedEntries.push(entry);\r\n }\r\n }\r\n _this._setValue(key, updatedEntries);\r\n });\r\n return removals;\r\n };\r\n Lookup.prototype.hasKey = function (serviceIdentifier) {\r\n if (serviceIdentifier === null || serviceIdentifier === undefined) {\r\n throw new Error(ERROR_MSGS.NULL_ARGUMENT);\r\n }\r\n return this._map.has(serviceIdentifier);\r\n };\r\n Lookup.prototype.clone = function () {\r\n var copy = new Lookup();\r\n this._map.forEach(function (value, key) {\r\n value.forEach(function (b) { return copy.add(key, isClonable(b) ? b.clone() : b); });\r\n });\r\n return copy;\r\n };\r\n Lookup.prototype.traverse = function (func) {\r\n this._map.forEach(function (value, key) {\r\n func(key, value);\r\n });\r\n };\r\n Lookup.prototype._setValue = function (serviceIdentifier, value) {\r\n if (value.length > 0) {\r\n this._map.set(serviceIdentifier, value);\r\n }\r\n else {\r\n this._map.delete(serviceIdentifier);\r\n }\r\n };\r\n return Lookup;\r\n}());\r\nexport { Lookup };\r\n","function isClonable(obj) {\r\n return (typeof obj === 'object')\r\n && (obj !== null)\r\n && ('clone' in obj)\r\n && typeof obj.clone === 'function';\r\n}\r\nexport { isClonable };\r\n","import { Lookup } from './lookup';\r\nvar ModuleActivationStore = (function () {\r\n function ModuleActivationStore() {\r\n this._map = new Map();\r\n }\r\n ModuleActivationStore.prototype.remove = function (moduleId) {\r\n if (this._map.has(moduleId)) {\r\n var handlers = this._map.get(moduleId);\r\n this._map.delete(moduleId);\r\n return handlers;\r\n }\r\n return this._getEmptyHandlersStore();\r\n };\r\n ModuleActivationStore.prototype.addDeactivation = function (moduleId, serviceIdentifier, onDeactivation) {\r\n this._getModuleActivationHandlers(moduleId)\r\n .onDeactivations.add(serviceIdentifier, onDeactivation);\r\n };\r\n ModuleActivationStore.prototype.addActivation = function (moduleId, serviceIdentifier, onActivation) {\r\n this._getModuleActivationHandlers(moduleId)\r\n .onActivations.add(serviceIdentifier, onActivation);\r\n };\r\n ModuleActivationStore.prototype.clone = function () {\r\n var clone = new ModuleActivationStore();\r\n this._map.forEach(function (handlersStore, moduleId) {\r\n clone._map.set(moduleId, {\r\n onActivations: handlersStore.onActivations.clone(),\r\n onDeactivations: handlersStore.onDeactivations.clone(),\r\n });\r\n });\r\n return clone;\r\n };\r\n ModuleActivationStore.prototype._getModuleActivationHandlers = function (moduleId) {\r\n var moduleActivationHandlers = this._map.get(moduleId);\r\n if (moduleActivationHandlers === undefined) {\r\n moduleActivationHandlers = this._getEmptyHandlersStore();\r\n this._map.set(moduleId, moduleActivationHandlers);\r\n }\r\n return moduleActivationHandlers;\r\n };\r\n ModuleActivationStore.prototype._getEmptyHandlersStore = function () {\r\n var handlersStore = {\r\n onActivations: new Lookup(),\r\n onDeactivations: new Lookup()\r\n };\r\n return handlersStore;\r\n };\r\n return ModuleActivationStore;\r\n}());\r\nexport { ModuleActivationStore };\r\n","var __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\nvar __awaiter = (this && this.__awaiter) || function (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\nvar __generator = (this && this.__generator) || function (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\nvar __spreadArray = (this && this.__spreadArray) || function (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\nimport { Binding } from '../bindings/binding';\r\nimport * as ERROR_MSGS from '../constants/error_msgs';\r\nimport { BindingScopeEnum, TargetTypeEnum } from '../constants/literal_types';\r\nimport * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { MetadataReader } from '../planning/metadata_reader';\r\nimport { createMockRequest, getBindingDictionary, plan } from '../planning/planner';\r\nimport { resolve } from '../resolution/resolver';\r\nimport { BindingToSyntax } from '../syntax/binding_to_syntax';\r\nimport { isPromise, isPromiseOrContainsPromise } from '../utils/async';\r\nimport { id } from '../utils/id';\r\nimport { getServiceIdentifierAsString } from '../utils/serialization';\r\nimport { ContainerSnapshot } from './container_snapshot';\r\nimport { Lookup } from './lookup';\r\nimport { ModuleActivationStore } from './module_activation_store';\r\nvar Container = (function () {\r\n function Container(containerOptions) {\r\n var options = containerOptions || {};\r\n if (typeof options !== 'object') {\r\n throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT);\r\n }\r\n if (options.defaultScope === undefined) {\r\n options.defaultScope = BindingScopeEnum.Transient;\r\n }\r\n else if (options.defaultScope !== BindingScopeEnum.Singleton &&\r\n options.defaultScope !== BindingScopeEnum.Transient &&\r\n options.defaultScope !== BindingScopeEnum.Request) {\r\n throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE);\r\n }\r\n if (options.autoBindInjectable === undefined) {\r\n options.autoBindInjectable = false;\r\n }\r\n else if (typeof options.autoBindInjectable !== 'boolean') {\r\n throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE);\r\n }\r\n if (options.skipBaseClassChecks === undefined) {\r\n options.skipBaseClassChecks = false;\r\n }\r\n else if (typeof options.skipBaseClassChecks !== 'boolean') {\r\n throw new Error(\"\" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK);\r\n }\r\n this.options = {\r\n autoBindInjectable: options.autoBindInjectable,\r\n defaultScope: options.defaultScope,\r\n skipBaseClassChecks: options.skipBaseClassChecks\r\n };\r\n this.id = id();\r\n this._bindingDictionary = new Lookup();\r\n this._snapshots = [];\r\n this._middleware = null;\r\n this._activations = new Lookup();\r\n this._deactivations = new Lookup();\r\n this.parent = null;\r\n this._metadataReader = new MetadataReader();\r\n this._moduleActivationStore = new ModuleActivationStore();\r\n }\r\n Container.merge = function (container1, container2) {\r\n var containers = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n containers[_i - 2] = arguments[_i];\r\n }\r\n var container = new Container();\r\n var targetContainers = __spreadArray([container1, container2], containers, true).map(function (targetContainer) { return getBindingDictionary(targetContainer); });\r\n var bindingDictionary = getBindingDictionary(container);\r\n function copyDictionary(origin, destination) {\r\n origin.traverse(function (_key, value) {\r\n value.forEach(function (binding) {\r\n destination.add(binding.serviceIdentifier, binding.clone());\r\n });\r\n });\r\n }\r\n targetContainers.forEach(function (targetBindingDictionary) {\r\n copyDictionary(targetBindingDictionary, bindingDictionary);\r\n });\r\n return container;\r\n };\r\n Container.prototype.load = function () {\r\n var modules = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n modules[_i] = arguments[_i];\r\n }\r\n var getHelpers = this._getContainerModuleHelpersFactory();\r\n for (var _a = 0, modules_1 = modules; _a < modules_1.length; _a++) {\r\n var currentModule = modules_1[_a];\r\n var containerModuleHelpers = getHelpers(currentModule.id);\r\n currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction, containerModuleHelpers.unbindAsyncFunction, containerModuleHelpers.onActivationFunction, containerModuleHelpers.onDeactivationFunction);\r\n }\r\n };\r\n Container.prototype.loadAsync = function () {\r\n var modules = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n modules[_i] = arguments[_i];\r\n }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var getHelpers, _a, modules_2, currentModule, containerModuleHelpers;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n getHelpers = this._getContainerModuleHelpersFactory();\r\n _a = 0, modules_2 = modules;\r\n _b.label = 1;\r\n case 1:\r\n if (!(_a < modules_2.length)) return [3, 4];\r\n currentModule = modules_2[_a];\r\n containerModuleHelpers = getHelpers(currentModule.id);\r\n return [4, currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction, containerModuleHelpers.unbindAsyncFunction, containerModuleHelpers.onActivationFunction, containerModuleHelpers.onDeactivationFunction)];\r\n case 2:\r\n _b.sent();\r\n _b.label = 3;\r\n case 3:\r\n _a++;\r\n return [3, 1];\r\n case 4: return [2];\r\n }\r\n });\r\n });\r\n };\r\n Container.prototype.unload = function () {\r\n var _this = this;\r\n var modules = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n modules[_i] = arguments[_i];\r\n }\r\n modules.forEach(function (module) {\r\n var deactivations = _this._removeModuleBindings(module.id);\r\n _this._deactivateSingletons(deactivations);\r\n _this._removeModuleHandlers(module.id);\r\n });\r\n };\r\n Container.prototype.unloadAsync = function () {\r\n var modules = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n modules[_i] = arguments[_i];\r\n }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, modules_3, module_1, deactivations;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = 0, modules_3 = modules;\r\n _b.label = 1;\r\n case 1:\r\n if (!(_a < modules_3.length)) return [3, 4];\r\n module_1 = modules_3[_a];\r\n deactivations = this._removeModuleBindings(module_1.id);\r\n return [4, this._deactivateSingletonsAsync(deactivations)];\r\n case 2:\r\n _b.sent();\r\n this._removeModuleHandlers(module_1.id);\r\n _b.label = 3;\r\n case 3:\r\n _a++;\r\n return [3, 1];\r\n case 4: return [2];\r\n }\r\n });\r\n });\r\n };\r\n Container.prototype.bind = function (serviceIdentifier) {\r\n var scope = this.options.defaultScope || BindingScopeEnum.Transient;\r\n var binding = new Binding(serviceIdentifier, scope);\r\n this._bindingDictionary.add(serviceIdentifier, binding);\r\n return new BindingToSyntax(binding);\r\n };\r\n Container.prototype.rebind = function (serviceIdentifier) {\r\n this.unbind(serviceIdentifier);\r\n return this.bind(serviceIdentifier);\r\n };\r\n Container.prototype.rebindAsync = function (serviceIdentifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4, this.unbindAsync(serviceIdentifier)];\r\n case 1:\r\n _a.sent();\r\n return [2, this.bind(serviceIdentifier)];\r\n }\r\n });\r\n });\r\n };\r\n Container.prototype.unbind = function (serviceIdentifier) {\r\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\r\n var bindings = this._bindingDictionary.get(serviceIdentifier);\r\n this._deactivateSingletons(bindings);\r\n }\r\n this._removeServiceFromDictionary(serviceIdentifier);\r\n };\r\n Container.prototype.unbindAsync = function (serviceIdentifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var bindings;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this._bindingDictionary.hasKey(serviceIdentifier)) return [3, 2];\r\n bindings = this._bindingDictionary.get(serviceIdentifier);\r\n return [4, this._deactivateSingletonsAsync(bindings)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n this._removeServiceFromDictionary(serviceIdentifier);\r\n return [2];\r\n }\r\n });\r\n });\r\n };\r\n Container.prototype.unbindAll = function () {\r\n var _this = this;\r\n this._bindingDictionary.traverse(function (_key, value) {\r\n _this._deactivateSingletons(value);\r\n });\r\n this._bindingDictionary = new Lookup();\r\n };\r\n Container.prototype.unbindAllAsync = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var promises;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n promises = [];\r\n this._bindingDictionary.traverse(function (_key, value) {\r\n promises.push(_this._deactivateSingletonsAsync(value));\r\n });\r\n return [4, Promise.all(promises)];\r\n case 1:\r\n _a.sent();\r\n this._bindingDictionary = new Lookup();\r\n return [2];\r\n }\r\n });\r\n });\r\n };\r\n Container.prototype.onActivation = function (serviceIdentifier, onActivation) {\r\n this._activations.add(serviceIdentifier, onActivation);\r\n };\r\n Container.prototype.onDeactivation = function (serviceIdentifier, onDeactivation) {\r\n this._deactivations.add(serviceIdentifier, onDeactivation);\r\n };\r\n Container.prototype.isBound = function (serviceIdentifier) {\r\n var bound = this._bindingDictionary.hasKey(serviceIdentifier);\r\n if (!bound && this.parent) {\r\n bound = this.parent.isBound(serviceIdentifier);\r\n }\r\n return bound;\r\n };\r\n Container.prototype.isCurrentBound = function (serviceIdentifier) {\r\n return this._bindingDictionary.hasKey(serviceIdentifier);\r\n };\r\n Container.prototype.isBoundNamed = function (serviceIdentifier, named) {\r\n return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\r\n };\r\n Container.prototype.isBoundTagged = function (serviceIdentifier, key, value) {\r\n var bound = false;\r\n if (this._bindingDictionary.hasKey(serviceIdentifier)) {\r\n var bindings = this._bindingDictionary.get(serviceIdentifier);\r\n var request_1 = createMockRequest(this, serviceIdentifier, key, value);\r\n bound = bindings.some(function (b) { return b.constraint(request_1); });\r\n }\r\n if (!bound && this.parent) {\r\n bound = this.parent.isBoundTagged(serviceIdentifier, key, value);\r\n }\r\n return bound;\r\n };\r\n Container.prototype.snapshot = function () {\r\n this._snapshots.push(ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware, this._activations.clone(), this._deactivations.clone(), this._moduleActivationStore.clone()));\r\n };\r\n Container.prototype.restore = function () {\r\n var snapshot = this._snapshots.pop();\r\n if (snapshot === undefined) {\r\n throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE);\r\n }\r\n this._bindingDictionary = snapshot.bindings;\r\n this._activations = snapshot.activations;\r\n this._deactivations = snapshot.deactivations;\r\n this._middleware = snapshot.middleware;\r\n this._moduleActivationStore = snapshot.moduleActivationStore;\r\n };\r\n Container.prototype.createChild = function (containerOptions) {\r\n var child = new Container(containerOptions || this.options);\r\n child.parent = this;\r\n return child;\r\n };\r\n Container.prototype.applyMiddleware = function () {\r\n var middlewares = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n middlewares[_i] = arguments[_i];\r\n }\r\n var initial = (this._middleware) ? this._middleware : this._planAndResolve();\r\n this._middleware = middlewares.reduce(function (prev, curr) { return curr(prev); }, initial);\r\n };\r\n Container.prototype.applyCustomMetadataReader = function (metadataReader) {\r\n this._metadataReader = metadataReader;\r\n };\r\n Container.prototype.get = function (serviceIdentifier) {\r\n var getArgs = this._getNotAllArgs(serviceIdentifier, false);\r\n return this._getButThrowIfAsync(getArgs);\r\n };\r\n Container.prototype.getAsync = function (serviceIdentifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var getArgs;\r\n return __generator(this, function (_a) {\r\n getArgs = this._getNotAllArgs(serviceIdentifier, false);\r\n return [2, this._get(getArgs)];\r\n });\r\n });\r\n };\r\n Container.prototype.getTagged = function (serviceIdentifier, key, value) {\r\n var getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\r\n return this._getButThrowIfAsync(getArgs);\r\n };\r\n Container.prototype.getTaggedAsync = function (serviceIdentifier, key, value) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var getArgs;\r\n return __generator(this, function (_a) {\r\n getArgs = this._getNotAllArgs(serviceIdentifier, false, key, value);\r\n return [2, this._get(getArgs)];\r\n });\r\n });\r\n };\r\n Container.prototype.getNamed = function (serviceIdentifier, named) {\r\n return this.getTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\r\n };\r\n Container.prototype.getNamedAsync = function (serviceIdentifier, named) {\r\n return this.getTaggedAsync(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\r\n };\r\n Container.prototype.getAll = function (serviceIdentifier) {\r\n var getArgs = this._getAllArgs(serviceIdentifier);\r\n return this._getButThrowIfAsync(getArgs);\r\n };\r\n Container.prototype.getAllAsync = function (serviceIdentifier) {\r\n var getArgs = this._getAllArgs(serviceIdentifier);\r\n return this._getAll(getArgs);\r\n };\r\n Container.prototype.getAllTagged = function (serviceIdentifier, key, value) {\r\n var getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\r\n return this._getButThrowIfAsync(getArgs);\r\n };\r\n Container.prototype.getAllTaggedAsync = function (serviceIdentifier, key, value) {\r\n var getArgs = this._getNotAllArgs(serviceIdentifier, true, key, value);\r\n return this._getAll(getArgs);\r\n };\r\n Container.prototype.getAllNamed = function (serviceIdentifier, named) {\r\n return this.getAllTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\r\n };\r\n Container.prototype.getAllNamedAsync = function (serviceIdentifier, named) {\r\n return this.getAllTaggedAsync(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);\r\n };\r\n Container.prototype.resolve = function (constructorFunction) {\r\n var isBound = this.isBound(constructorFunction);\r\n if (!isBound) {\r\n this.bind(constructorFunction).toSelf();\r\n }\r\n var resolved = this.get(constructorFunction);\r\n if (!isBound) {\r\n this.unbind(constructorFunction);\r\n }\r\n return resolved;\r\n };\r\n Container.prototype._preDestroy = function (constructor, instance) {\r\n var _a, _b;\r\n if (Reflect.hasMetadata(METADATA_KEY.PRE_DESTROY, constructor)) {\r\n var data = Reflect.getMetadata(METADATA_KEY.PRE_DESTROY, constructor);\r\n return (_b = (_a = instance)[data.value]) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n };\r\n Container.prototype._removeModuleHandlers = function (moduleId) {\r\n var moduleActivationsHandlers = this._moduleActivationStore.remove(moduleId);\r\n this._activations.removeIntersection(moduleActivationsHandlers.onActivations);\r\n this._deactivations.removeIntersection(moduleActivationsHandlers.onDeactivations);\r\n };\r\n Container.prototype._removeModuleBindings = function (moduleId) {\r\n return this._bindingDictionary.removeByCondition(function (binding) { return binding.moduleId === moduleId; });\r\n };\r\n Container.prototype._deactivate = function (binding, instance) {\r\n var _this = this;\r\n var constructor = Object.getPrototypeOf(instance).constructor;\r\n try {\r\n if (this._deactivations.hasKey(binding.serviceIdentifier)) {\r\n var result = this._deactivateContainer(instance, this._deactivations.get(binding.serviceIdentifier).values());\r\n if (isPromise(result)) {\r\n return this._handleDeactivationError(result.then(function () { return _this._propagateContainerDeactivationThenBindingAndPreDestroyAsync(binding, instance, constructor); }), constructor);\r\n }\r\n }\r\n var propagateDeactivationResult = this._propagateContainerDeactivationThenBindingAndPreDestroy(binding, instance, constructor);\r\n if (isPromise(propagateDeactivationResult)) {\r\n return this._handleDeactivationError(propagateDeactivationResult, constructor);\r\n }\r\n }\r\n catch (ex) {\r\n if (ex instanceof Error) {\r\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex.message));\r\n }\r\n }\r\n };\r\n Container.prototype._handleDeactivationError = function (asyncResult, constructor) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var ex_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4, asyncResult];\r\n case 1:\r\n _a.sent();\r\n return [3, 3];\r\n case 2:\r\n ex_1 = _a.sent();\r\n if (ex_1 instanceof Error) {\r\n throw new Error(ERROR_MSGS.ON_DEACTIVATION_ERROR(constructor.name, ex_1.message));\r\n }\r\n return [3, 3];\r\n case 3: return [2];\r\n }\r\n });\r\n });\r\n };\r\n Container.prototype._deactivateContainer = function (instance, deactivationsIterator) {\r\n var _this = this;\r\n var deactivation = deactivationsIterator.next();\r\n while (deactivation.value) {\r\n var result = deactivation.value(instance);\r\n if (isPromise(result)) {\r\n return result.then(function () {\r\n return _this._deactivateContainerAsync(instance, deactivationsIterator);\r\n });\r\n }\r\n deactivation = deactivationsIterator.next();\r\n }\r\n };\r\n Container.prototype._deactivateContainerAsync = function (instance, deactivationsIterator) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var deactivation;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n deactivation = deactivationsIterator.next();\r\n _a.label = 1;\r\n case 1:\r\n if (!deactivation.value) return [3, 3];\r\n return [4, deactivation.value(instance)];\r\n case 2:\r\n _a.sent();\r\n deactivation = deactivationsIterator.next();\r\n return [3, 1];\r\n case 3: return [2];\r\n }\r\n });\r\n });\r\n };\r\n Container.prototype._getContainerModuleHelpersFactory = function () {\r\n var _this = this;\r\n var setModuleId = function (bindingToSyntax, moduleId) {\r\n bindingToSyntax._binding.moduleId = moduleId;\r\n };\r\n var getBindFunction = function (moduleId) {\r\n return function (serviceIdentifier) {\r\n var bindingToSyntax = _this.bind(serviceIdentifier);\r\n setModuleId(bindingToSyntax, moduleId);\r\n return bindingToSyntax;\r\n };\r\n };\r\n var getUnbindFunction = function () {\r\n return function (serviceIdentifier) {\r\n return _this.unbind(serviceIdentifier);\r\n };\r\n };\r\n var getUnbindAsyncFunction = function () {\r\n return function (serviceIdentifier) {\r\n return _this.unbindAsync(serviceIdentifier);\r\n };\r\n };\r\n var getIsboundFunction = function () {\r\n return function (serviceIdentifier) {\r\n return _this.isBound(serviceIdentifier);\r\n };\r\n };\r\n var getRebindFunction = function (moduleId) {\r\n return function (serviceIdentifier) {\r\n var bindingToSyntax = _this.rebind(serviceIdentifier);\r\n setModuleId(bindingToSyntax, moduleId);\r\n return bindingToSyntax;\r\n };\r\n };\r\n var getOnActivationFunction = function (moduleId) {\r\n return function (serviceIdentifier, onActivation) {\r\n _this._moduleActivationStore.addActivation(moduleId, serviceIdentifier, onActivation);\r\n _this.onActivation(serviceIdentifier, onActivation);\r\n };\r\n };\r\n var getOnDeactivationFunction = function (moduleId) {\r\n return function (serviceIdentifier, onDeactivation) {\r\n _this._moduleActivationStore.addDeactivation(moduleId, serviceIdentifier, onDeactivation);\r\n _this.onDeactivation(serviceIdentifier, onDeactivation);\r\n };\r\n };\r\n return function (mId) { return ({\r\n bindFunction: getBindFunction(mId),\r\n isboundFunction: getIsboundFunction(),\r\n onActivationFunction: getOnActivationFunction(mId),\r\n onDeactivationFunction: getOnDeactivationFunction(mId),\r\n rebindFunction: getRebindFunction(mId),\r\n unbindFunction: getUnbindFunction(),\r\n unbindAsyncFunction: getUnbindAsyncFunction()\r\n }); };\r\n };\r\n Container.prototype._getAll = function (getArgs) {\r\n return Promise.all(this._get(getArgs));\r\n };\r\n Container.prototype._get = function (getArgs) {\r\n var planAndResolveArgs = __assign(__assign({}, getArgs), { contextInterceptor: function (context) { return context; }, targetType: TargetTypeEnum.Variable });\r\n if (this._middleware) {\r\n var middlewareResult = this._middleware(planAndResolveArgs);\r\n if (middlewareResult === undefined || middlewareResult === null) {\r\n throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);\r\n }\r\n return middlewareResult;\r\n }\r\n return this._planAndResolve()(planAndResolveArgs);\r\n };\r\n Container.prototype._getButThrowIfAsync = function (getArgs) {\r\n var result = this._get(getArgs);\r\n if (isPromiseOrContainsPromise(result)) {\r\n throw new Error(ERROR_MSGS.LAZY_IN_SYNC(getArgs.serviceIdentifier));\r\n }\r\n return result;\r\n };\r\n Container.prototype._getAllArgs = function (serviceIdentifier) {\r\n var getAllArgs = {\r\n avoidConstraints: true,\r\n isMultiInject: true,\r\n serviceIdentifier: serviceIdentifier,\r\n };\r\n return getAllArgs;\r\n };\r\n Container.prototype._getNotAllArgs = function (serviceIdentifier, isMultiInject, key, value) {\r\n var getNotAllArgs = {\r\n avoidConstraints: false,\r\n isMultiInject: isMultiInject,\r\n serviceIdentifier: serviceIdentifier,\r\n key: key,\r\n value: value,\r\n };\r\n return getNotAllArgs;\r\n };\r\n Container.prototype._planAndResolve = function () {\r\n var _this = this;\r\n return function (args) {\r\n var context = plan(_this._metadataReader, _this, args.isMultiInject, args.targetType, args.serviceIdentifier, args.key, args.value, args.avoidConstraints);\r\n context = args.contextInterceptor(context);\r\n var result = resolve(context);\r\n return result;\r\n };\r\n };\r\n Container.prototype._deactivateIfSingleton = function (binding) {\r\n var _this = this;\r\n if (!binding.activated) {\r\n return;\r\n }\r\n if (isPromise(binding.cache)) {\r\n return binding.cache.then(function (resolved) { return _this._deactivate(binding, resolved); });\r\n }\r\n return this._deactivate(binding, binding.cache);\r\n };\r\n Container.prototype._deactivateSingletons = function (bindings) {\r\n for (var _i = 0, bindings_1 = bindings; _i < bindings_1.length; _i++) {\r\n var binding = bindings_1[_i];\r\n var result = this._deactivateIfSingleton(binding);\r\n if (isPromise(result)) {\r\n throw new Error(ERROR_MSGS.ASYNC_UNBIND_REQUIRED);\r\n }\r\n }\r\n };\r\n Container.prototype._deactivateSingletonsAsync = function (bindings) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4, Promise.all(bindings.map(function (b) { return _this._deactivateIfSingleton(b); }))];\r\n case 1:\r\n _a.sent();\r\n return [2];\r\n }\r\n });\r\n });\r\n };\r\n Container.prototype._propagateContainerDeactivationThenBindingAndPreDestroy = function (binding, instance, constructor) {\r\n if (this.parent) {\r\n return this._deactivate.bind(this.parent)(binding, instance);\r\n }\r\n else {\r\n return this._bindingDeactivationAndPreDestroy(binding, instance, constructor);\r\n }\r\n };\r\n Container.prototype._propagateContainerDeactivationThenBindingAndPreDestroyAsync = function (binding, instance, constructor) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.parent) return [3, 2];\r\n return [4, this._deactivate.bind(this.parent)(binding, instance)];\r\n case 1:\r\n _a.sent();\r\n return [3, 4];\r\n case 2: return [4, this._bindingDeactivationAndPreDestroyAsync(binding, instance, constructor)];\r\n case 3:\r\n _a.sent();\r\n _a.label = 4;\r\n case 4: return [2];\r\n }\r\n });\r\n });\r\n };\r\n Container.prototype._removeServiceFromDictionary = function (serviceIdentifier) {\r\n try {\r\n this._bindingDictionary.remove(serviceIdentifier);\r\n }\r\n catch (e) {\r\n throw new Error(ERROR_MSGS.CANNOT_UNBIND + \" \" + getServiceIdentifierAsString(serviceIdentifier));\r\n }\r\n };\r\n Container.prototype._bindingDeactivationAndPreDestroy = function (binding, instance, constructor) {\r\n var _this = this;\r\n if (typeof binding.onDeactivation === 'function') {\r\n var result = binding.onDeactivation(instance);\r\n if (isPromise(result)) {\r\n return result.then(function () { return _this._preDestroy(constructor, instance); });\r\n }\r\n }\r\n return this._preDestroy(constructor, instance);\r\n };\r\n Container.prototype._bindingDeactivationAndPreDestroyAsync = function (binding, instance, constructor) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!(typeof binding.onDeactivation === 'function')) return [3, 2];\r\n return [4, binding.onDeactivation(instance)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [4, this._preDestroy(constructor, instance)];\r\n case 3:\r\n _a.sent();\r\n return [2];\r\n }\r\n });\r\n });\r\n };\r\n return Container;\r\n}());\r\nexport { Container };\r\n","import { id } from '../utils/id';\r\nvar ContainerModule = (function () {\r\n function ContainerModule(registry) {\r\n this.id = id();\r\n this.registry = registry;\r\n }\r\n return ContainerModule;\r\n}());\r\nexport { ContainerModule };\r\nvar AsyncContainerModule = (function () {\r\n function AsyncContainerModule(registry) {\r\n this.id = id();\r\n this.registry = registry;\r\n }\r\n return AsyncContainerModule;\r\n}());\r\nexport { AsyncContainerModule };\r\n","import * as ERROR_MSGS from '../constants/error_msgs';\r\nimport * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { getFirstArrayDuplicate } from '../utils/js';\r\nfunction targetIsConstructorFunction(target) {\r\n return target.prototype !== undefined;\r\n}\r\nfunction _throwIfMethodParameter(parameterName) {\r\n if (parameterName !== undefined) {\r\n throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);\r\n }\r\n}\r\nfunction tagParameter(annotationTarget, parameterName, parameterIndex, metadata) {\r\n _throwIfMethodParameter(parameterName);\r\n _tagParameterOrProperty(METADATA_KEY.TAGGED, annotationTarget, parameterIndex.toString(), metadata);\r\n}\r\nfunction tagProperty(annotationTarget, propertyName, metadata) {\r\n if (targetIsConstructorFunction(annotationTarget)) {\r\n throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);\r\n }\r\n _tagParameterOrProperty(METADATA_KEY.TAGGED_PROP, annotationTarget.constructor, propertyName, metadata);\r\n}\r\nfunction _ensureNoMetadataKeyDuplicates(metadata) {\r\n var metadatas = [];\r\n if (Array.isArray(metadata)) {\r\n metadatas = metadata;\r\n var duplicate = getFirstArrayDuplicate(metadatas.map(function (md) { return md.key; }));\r\n if (duplicate !== undefined) {\r\n throw new Error(ERROR_MSGS.DUPLICATED_METADATA + \" \" + duplicate.toString());\r\n }\r\n }\r\n else {\r\n metadatas = [metadata];\r\n }\r\n return metadatas;\r\n}\r\nfunction _tagParameterOrProperty(metadataKey, annotationTarget, key, metadata) {\r\n var metadatas = _ensureNoMetadataKeyDuplicates(metadata);\r\n var paramsOrPropertiesMetadata = {};\r\n if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {\r\n paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);\r\n }\r\n var paramOrPropertyMetadata = paramsOrPropertiesMetadata[key];\r\n if (paramOrPropertyMetadata === undefined) {\r\n paramOrPropertyMetadata = [];\r\n }\r\n else {\r\n var _loop_1 = function (m) {\r\n if (metadatas.some(function (md) { return md.key === m.key; })) {\r\n throw new Error(ERROR_MSGS.DUPLICATED_METADATA + \" \" + m.key.toString());\r\n }\r\n };\r\n for (var _i = 0, paramOrPropertyMetadata_1 = paramOrPropertyMetadata; _i < paramOrPropertyMetadata_1.length; _i++) {\r\n var m = paramOrPropertyMetadata_1[_i];\r\n _loop_1(m);\r\n }\r\n }\r\n paramOrPropertyMetadata.push.apply(paramOrPropertyMetadata, metadatas);\r\n paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;\r\n Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);\r\n}\r\nfunction createTaggedDecorator(metadata) {\r\n return function (target, targetKey, indexOrPropertyDescriptor) {\r\n if (typeof indexOrPropertyDescriptor === 'number') {\r\n tagParameter(target, targetKey, indexOrPropertyDescriptor, metadata);\r\n }\r\n else {\r\n tagProperty(target, targetKey, metadata);\r\n }\r\n };\r\n}\r\nfunction _decorate(decorators, target) {\r\n Reflect.decorate(decorators, target);\r\n}\r\nfunction _param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); };\r\n}\r\nfunction decorate(decorator, target, parameterIndexOrProperty) {\r\n if (typeof parameterIndexOrProperty === 'number') {\r\n _decorate([_param(parameterIndexOrProperty, decorator)], target);\r\n }\r\n else if (typeof parameterIndexOrProperty === 'string') {\r\n Reflect.decorate([decorator], target, parameterIndexOrProperty);\r\n }\r\n else {\r\n _decorate([decorator], target);\r\n }\r\n}\r\nexport { decorate, tagParameter, tagProperty, createTaggedDecorator };\r\n","export function getFirstArrayDuplicate(array) {\r\n var seenValues = new Set();\r\n for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {\r\n var entry = array_1[_i];\r\n if (seenValues.has(entry)) {\r\n return entry;\r\n }\r\n else {\r\n seenValues.add(entry);\r\n }\r\n }\r\n return undefined;\r\n}\r\n","import * as ERRORS_MSGS from '../constants/error_msgs';\r\nimport * as METADATA_KEY from '../constants/metadata_keys';\r\nfunction injectable() {\r\n return function (target) {\r\n if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {\r\n throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);\r\n }\r\n var types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];\r\n Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);\r\n return target;\r\n };\r\n}\r\nexport { injectable };\r\n","import { Metadata } from '../planning/metadata';\r\nimport { createTaggedDecorator } from './decorator_utils';\r\nfunction tagged(metadataKey, metadataValue) {\r\n return createTaggedDecorator(new Metadata(metadataKey, metadataValue));\r\n}\r\nexport { tagged };\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { Metadata } from '../planning/metadata';\r\nimport { createTaggedDecorator } from './decorator_utils';\r\nfunction named(name) {\r\n return createTaggedDecorator(new Metadata(METADATA_KEY.NAMED_TAG, name));\r\n}\r\nexport { named };\r\n","import { UNDEFINED_INJECT_ANNOTATION } from '../constants/error_msgs';\r\nimport { Metadata } from '../planning/metadata';\r\nimport { createTaggedDecorator } from './decorator_utils';\r\nexport function injectBase(metadataKey) {\r\n return function (serviceIdentifier) {\r\n return function (target, targetKey, indexOrPropertyDescriptor) {\r\n if (serviceIdentifier === undefined) {\r\n var className = typeof target === 'function' ? target.name : target.constructor.name;\r\n throw new Error(UNDEFINED_INJECT_ANNOTATION(className));\r\n }\r\n return createTaggedDecorator(new Metadata(metadataKey, serviceIdentifier))(target, targetKey, indexOrPropertyDescriptor);\r\n };\r\n };\r\n}\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { injectBase } from './inject_base';\r\nvar inject = injectBase(METADATA_KEY.INJECT_TAG);\r\nexport { inject };\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { Metadata } from '../planning/metadata';\r\nimport { createTaggedDecorator } from './decorator_utils';\r\nfunction optional() {\r\n return createTaggedDecorator(new Metadata(METADATA_KEY.OPTIONAL_TAG, true));\r\n}\r\nexport { optional };\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { Metadata } from '../planning/metadata';\r\nimport { tagParameter } from './decorator_utils';\r\nfunction unmanaged() {\r\n return function (target, targetKey, index) {\r\n var metadata = new Metadata(METADATA_KEY.UNMANAGED_TAG, true);\r\n tagParameter(target, targetKey, index, metadata);\r\n };\r\n}\r\nexport { unmanaged };\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { injectBase } from './inject_base';\r\nvar multiInject = injectBase(METADATA_KEY.MULTI_INJECT_TAG);\r\nexport { multiInject };\r\n","import * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { Metadata } from '../planning/metadata';\r\nimport { tagParameter } from './decorator_utils';\r\nfunction targetName(name) {\r\n return function (target, targetKey, index) {\r\n var metadata = new Metadata(METADATA_KEY.NAME_TAG, name);\r\n tagParameter(target, targetKey, index, metadata);\r\n };\r\n}\r\nexport { targetName };\r\n","import { Metadata } from '../planning/metadata';\r\nfunction propertyEventDecorator(eventKey, errorMessage) {\r\n return function () {\r\n return function (target, propertyKey) {\r\n var metadata = new Metadata(eventKey, propertyKey);\r\n if (Reflect.hasOwnMetadata(eventKey, target.constructor)) {\r\n throw new Error(errorMessage);\r\n }\r\n Reflect.defineMetadata(eventKey, metadata, target.constructor);\r\n };\r\n };\r\n}\r\nexport { propertyEventDecorator };\r\n","import * as ERRORS_MSGS from '../constants/error_msgs';\r\nimport * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { propertyEventDecorator } from './property_event_decorator';\r\nvar postConstruct = propertyEventDecorator(METADATA_KEY.POST_CONSTRUCT, ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);\r\nexport { postConstruct };\r\n","var interfaces;\r\n(function (interfaces) {\r\n ;\r\n})(interfaces || (interfaces = {}));\r\nexport { interfaces };\r\n","import * as ERRORS_MSGS from '../constants/error_msgs';\r\nimport * as METADATA_KEY from '../constants/metadata_keys';\r\nimport { propertyEventDecorator } from './property_event_decorator';\r\nvar preDestroy = propertyEventDecorator(METADATA_KEY.PRE_DESTROY, ERRORS_MSGS.MULTIPLE_PRE_DESTROY_METHODS);\r\nexport { preDestroy };\r\n","import * as keys from './constants/metadata_keys';\r\nexport var METADATA_KEY = keys;\r\nexport { Container } from './container/container';\r\nexport { BindingScopeEnum, BindingTypeEnum, TargetTypeEnum } from './constants/literal_types';\r\nexport { AsyncContainerModule, ContainerModule } from './container/container_module';\r\nexport { createTaggedDecorator } from './annotation/decorator_utils';\r\nexport { injectable } from './annotation/injectable';\r\nexport { tagged } from './annotation/tagged';\r\nexport { named } from './annotation/named';\r\nexport { inject } from './annotation/inject';\r\nexport { LazyServiceIdentifier } from './annotation/lazy_service_identifier';\r\nexport { LazyServiceIdentifier as LazyServiceIdentifer } from './annotation/lazy_service_identifier';\r\nexport { optional } from './annotation/optional';\r\nexport { unmanaged } from './annotation/unmanaged';\r\nexport { multiInject } from './annotation/multi_inject';\r\nexport { targetName } from './annotation/target_name';\r\nexport { postConstruct } from './annotation/post_construct';\r\nexport { preDestroy } from './annotation/pre_destroy';\r\nexport { MetadataReader } from './planning/metadata_reader';\r\nexport { id } from './utils/id';\r\nexport { interfaces } from './interfaces/interfaces';\r\nexport { decorate } from './annotation/decorator_utils';\r\nexport { traverseAncerstors, taggedConstraint, namedConstraint, typeConstraint } from './syntax/constraint_helpers';\r\nexport { getServiceIdentifierAsString } from './utils/serialization';\r\nexport { multiBindToService } from './utils/binding_utils';\r\n","export class InvalidTokenError extends Error {\n}\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(atob(str).replace(/(.)/g, (m, p) => {\n let code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n }));\n}\nfunction base64UrlDecode(str) {\n let output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw new Error(\"base64 string is not of the correct length\");\n }\n try {\n return b64DecodeUnicode(output);\n }\n catch (err) {\n return atob(output);\n }\n}\nexport function jwtDecode(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified: must be a string\");\n }\n options || (options = {});\n const pos = options.header === true ? 0 : 1;\n const part = token.split(\".\")[pos];\n if (typeof part !== \"string\") {\n throw new InvalidTokenError(`Invalid token specified: missing part #${pos + 1}`);\n }\n let decoded;\n try {\n decoded = base64UrlDecode(part);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${pos + 1} (${e.message})`);\n }\n try {\n return JSON.parse(decoded);\n }\n catch (e) {\n throw new InvalidTokenError(`Invalid token specified: invalid json for part #${pos + 1} (${e.message})`);\n }\n}\n","// src/utils/Logger.ts\nvar nopLogger = {\n debug: () => void 0,\n info: () => void 0,\n warn: () => void 0,\n error: () => void 0\n};\nvar level;\nvar logger;\nvar Log = /* @__PURE__ */ ((Log2) => {\n Log2[Log2[\"NONE\"] = 0] = \"NONE\";\n Log2[Log2[\"ERROR\"] = 1] = \"ERROR\";\n Log2[Log2[\"WARN\"] = 2] = \"WARN\";\n Log2[Log2[\"INFO\"] = 3] = \"INFO\";\n Log2[Log2[\"DEBUG\"] = 4] = \"DEBUG\";\n return Log2;\n})(Log || {});\n((Log2) => {\n function reset() {\n level = 3 /* INFO */;\n logger = nopLogger;\n }\n Log2.reset = reset;\n function setLevel(value) {\n if (!(0 /* NONE */ <= value && value <= 4 /* DEBUG */)) {\n throw new Error(\"Invalid log level\");\n }\n level = value;\n }\n Log2.setLevel = setLevel;\n function setLogger(value) {\n logger = value;\n }\n Log2.setLogger = setLogger;\n})(Log || (Log = {}));\nvar Logger = class _Logger {\n constructor(_name) {\n this._name = _name;\n }\n /* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n debug(...args) {\n if (level >= 4 /* DEBUG */) {\n logger.debug(_Logger._format(this._name, this._method), ...args);\n }\n }\n info(...args) {\n if (level >= 3 /* INFO */) {\n logger.info(_Logger._format(this._name, this._method), ...args);\n }\n }\n warn(...args) {\n if (level >= 2 /* WARN */) {\n logger.warn(_Logger._format(this._name, this._method), ...args);\n }\n }\n error(...args) {\n if (level >= 1 /* ERROR */) {\n logger.error(_Logger._format(this._name, this._method), ...args);\n }\n }\n /* eslint-enable @typescript-eslint/no-unsafe-enum-comparison */\n throw(err) {\n this.error(err);\n throw err;\n }\n create(method) {\n const methodLogger = Object.create(this);\n methodLogger._method = method;\n methodLogger.debug(\"begin\");\n return methodLogger;\n }\n static createStatic(name, staticMethod) {\n const staticLogger = new _Logger(`${name}.${staticMethod}`);\n staticLogger.debug(\"begin\");\n return staticLogger;\n }\n static _format(name, method) {\n const prefix = `[${name}]`;\n return method ? `${prefix} ${method}:` : prefix;\n }\n /* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n // helpers for static class methods\n static debug(name, ...args) {\n if (level >= 4 /* DEBUG */) {\n logger.debug(_Logger._format(name), ...args);\n }\n }\n static info(name, ...args) {\n if (level >= 3 /* INFO */) {\n logger.info(_Logger._format(name), ...args);\n }\n }\n static warn(name, ...args) {\n if (level >= 2 /* WARN */) {\n logger.warn(_Logger._format(name), ...args);\n }\n }\n static error(name, ...args) {\n if (level >= 1 /* ERROR */) {\n logger.error(_Logger._format(name), ...args);\n }\n }\n /* eslint-enable @typescript-eslint/no-unsafe-enum-comparison */\n};\nLog.reset();\n\n// src/utils/JwtUtils.ts\nimport { jwtDecode } from \"jwt-decode\";\nvar JwtUtils = class {\n // IMPORTANT: doesn't validate the token\n static decode(token) {\n try {\n return jwtDecode(token);\n } catch (err) {\n Logger.error(\"JwtUtils.decode\", err);\n throw err;\n }\n }\n static async generateSignedJwt(header, payload, privateKey) {\n const encodedHeader = CryptoUtils.encodeBase64Url(new TextEncoder().encode(JSON.stringify(header)));\n const encodedPayload = CryptoUtils.encodeBase64Url(new TextEncoder().encode(JSON.stringify(payload)));\n const encodedToken = `${encodedHeader}.${encodedPayload}`;\n const signature = await window.crypto.subtle.sign(\n {\n name: \"ECDSA\",\n hash: { name: \"SHA-256\" }\n },\n privateKey,\n new TextEncoder().encode(encodedToken)\n );\n const encodedSignature = CryptoUtils.encodeBase64Url(new Uint8Array(signature));\n return `${encodedToken}.${encodedSignature}`;\n }\n};\n\n// src/utils/CryptoUtils.ts\nvar UUID_V4_TEMPLATE = \"10000000-1000-4000-8000-100000000000\";\nvar toBase64 = (val) => btoa([...new Uint8Array(val)].map((chr) => String.fromCharCode(chr)).join(\"\"));\nvar _CryptoUtils = class _CryptoUtils {\n static _randomWord() {\n const arr = new Uint32Array(1);\n crypto.getRandomValues(arr);\n return arr[0];\n }\n /**\n * Generates RFC4122 version 4 guid\n */\n static generateUUIDv4() {\n const uuid = UUID_V4_TEMPLATE.replace(\n /[018]/g,\n (c) => (+c ^ _CryptoUtils._randomWord() & 15 >> +c / 4).toString(16)\n );\n return uuid.replace(/-/g, \"\");\n }\n /**\n * PKCE: Generate a code verifier\n */\n static generateCodeVerifier() {\n return _CryptoUtils.generateUUIDv4() + _CryptoUtils.generateUUIDv4() + _CryptoUtils.generateUUIDv4();\n }\n /**\n * PKCE: Generate a code challenge\n */\n static async generateCodeChallenge(code_verifier) {\n if (!crypto.subtle) {\n throw new Error(\"Crypto.subtle is available only in secure contexts (HTTPS).\");\n }\n try {\n const encoder = new TextEncoder();\n const data = encoder.encode(code_verifier);\n const hashed = await crypto.subtle.digest(\"SHA-256\", data);\n return toBase64(hashed).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\");\n } catch (err) {\n Logger.error(\"CryptoUtils.generateCodeChallenge\", err);\n throw err;\n }\n }\n /**\n * Generates a base64-encoded string for a basic auth header\n */\n static generateBasicAuth(client_id, client_secret) {\n const encoder = new TextEncoder();\n const data = encoder.encode([client_id, client_secret].join(\":\"));\n return toBase64(data);\n }\n /**\n * Generates a hash of a string using a given algorithm\n * @param alg\n * @param message\n */\n static async hash(alg, message) {\n const msgUint8 = new TextEncoder().encode(message);\n const hashBuffer = await crypto.subtle.digest(alg, msgUint8);\n return new Uint8Array(hashBuffer);\n }\n /**\n * Generates a rfc7638 compliant jwk thumbprint\n * @param jwk\n */\n static async customCalculateJwkThumbprint(jwk) {\n let jsonObject;\n switch (jwk.kty) {\n case \"RSA\":\n jsonObject = {\n \"e\": jwk.e,\n \"kty\": jwk.kty,\n \"n\": jwk.n\n };\n break;\n case \"EC\":\n jsonObject = {\n \"crv\": jwk.crv,\n \"kty\": jwk.kty,\n \"x\": jwk.x,\n \"y\": jwk.y\n };\n break;\n case \"OKP\":\n jsonObject = {\n \"crv\": jwk.crv,\n \"kty\": jwk.kty,\n \"x\": jwk.x\n };\n break;\n case \"oct\":\n jsonObject = {\n \"crv\": jwk.k,\n \"kty\": jwk.kty\n };\n break;\n default:\n throw new Error(\"Unknown jwk type\");\n }\n const utf8encodedAndHashed = await _CryptoUtils.hash(\"SHA-256\", JSON.stringify(jsonObject));\n return _CryptoUtils.encodeBase64Url(utf8encodedAndHashed);\n }\n static async generateDPoPProof({\n url,\n accessToken,\n httpMethod,\n keyPair,\n nonce\n }) {\n let hashedToken;\n let encodedHash;\n const payload = {\n \"jti\": window.crypto.randomUUID(),\n \"htm\": httpMethod != null ? httpMethod : \"GET\",\n \"htu\": url,\n \"iat\": Math.floor(Date.now() / 1e3)\n };\n if (accessToken) {\n hashedToken = await _CryptoUtils.hash(\"SHA-256\", accessToken);\n encodedHash = _CryptoUtils.encodeBase64Url(hashedToken);\n payload.ath = encodedHash;\n }\n if (nonce) {\n payload.nonce = nonce;\n }\n try {\n const publicJwk = await crypto.subtle.exportKey(\"jwk\", keyPair.publicKey);\n const header = {\n \"alg\": \"ES256\",\n \"typ\": \"dpop+jwt\",\n \"jwk\": {\n \"crv\": publicJwk.crv,\n \"kty\": publicJwk.kty,\n \"x\": publicJwk.x,\n \"y\": publicJwk.y\n }\n };\n return await JwtUtils.generateSignedJwt(header, payload, keyPair.privateKey);\n } catch (err) {\n if (err instanceof TypeError) {\n throw new Error(`Error exporting dpop public key: ${err.message}`);\n } else {\n throw err;\n }\n }\n }\n static async generateDPoPJkt(keyPair) {\n try {\n const publicJwk = await crypto.subtle.exportKey(\"jwk\", keyPair.publicKey);\n return await _CryptoUtils.customCalculateJwkThumbprint(publicJwk);\n } catch (err) {\n if (err instanceof TypeError) {\n throw new Error(`Could not retrieve dpop keys from storage: ${err.message}`);\n } else {\n throw err;\n }\n }\n }\n static async generateDPoPKeys() {\n return await window.crypto.subtle.generateKey(\n {\n name: \"ECDSA\",\n namedCurve: \"P-256\"\n },\n false,\n [\"sign\", \"verify\"]\n );\n }\n};\n/**\n * Generates a base64url encoded string\n */\n_CryptoUtils.encodeBase64Url = (input) => {\n return toBase64(input).replace(/=/g, \"\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\");\n};\nvar CryptoUtils = _CryptoUtils;\n\n// src/utils/Event.ts\nvar Event = class {\n constructor(_name) {\n this._name = _name;\n this._callbacks = [];\n this._logger = new Logger(`Event('${this._name}')`);\n }\n addHandler(cb) {\n this._callbacks.push(cb);\n return () => this.removeHandler(cb);\n }\n removeHandler(cb) {\n const idx = this._callbacks.lastIndexOf(cb);\n if (idx >= 0) {\n this._callbacks.splice(idx, 1);\n }\n }\n async raise(...ev) {\n this._logger.debug(\"raise:\", ...ev);\n for (const cb of this._callbacks) {\n await cb(...ev);\n }\n }\n};\n\n// src/utils/PopupUtils.ts\nvar PopupUtils = class {\n /**\n * Populates a map of window features with a placement centered in front of\n * the current window. If no explicit width is given, a default value is\n * binned into [800, 720, 600, 480, 360] based on the current window's width.\n */\n static center({ ...features }) {\n var _a, _b, _c;\n if (features.width == null)\n features.width = (_a = [800, 720, 600, 480].find((width) => width <= window.outerWidth / 1.618)) != null ? _a : 360;\n (_b = features.left) != null ? _b : features.left = Math.max(0, Math.round(window.screenX + (window.outerWidth - features.width) / 2));\n if (features.height != null)\n (_c = features.top) != null ? _c : features.top = Math.max(0, Math.round(window.screenY + (window.outerHeight - features.height) / 2));\n return features;\n }\n static serialize(features) {\n return Object.entries(features).filter(([, value]) => value != null).map(([key, value]) => `${key}=${typeof value !== \"boolean\" ? value : value ? \"yes\" : \"no\"}`).join(\",\");\n }\n};\n\n// src/utils/Timer.ts\nvar Timer = class _Timer extends Event {\n constructor() {\n super(...arguments);\n this._logger = new Logger(`Timer('${this._name}')`);\n this._timerHandle = null;\n this._expiration = 0;\n this._callback = () => {\n const diff = this._expiration - _Timer.getEpochTime();\n this._logger.debug(\"timer completes in\", diff);\n if (this._expiration <= _Timer.getEpochTime()) {\n this.cancel();\n void super.raise();\n }\n };\n }\n // get the time\n static getEpochTime() {\n return Math.floor(Date.now() / 1e3);\n }\n init(durationInSeconds) {\n const logger2 = this._logger.create(\"init\");\n durationInSeconds = Math.max(Math.floor(durationInSeconds), 1);\n const expiration = _Timer.getEpochTime() + durationInSeconds;\n if (this.expiration === expiration && this._timerHandle) {\n logger2.debug(\"skipping since already initialized for expiration at\", this.expiration);\n return;\n }\n this.cancel();\n logger2.debug(\"using duration\", durationInSeconds);\n this._expiration = expiration;\n const timerDurationInSeconds = Math.min(durationInSeconds, 5);\n this._timerHandle = setInterval(this._callback, timerDurationInSeconds * 1e3);\n }\n get expiration() {\n return this._expiration;\n }\n cancel() {\n this._logger.create(\"cancel\");\n if (this._timerHandle) {\n clearInterval(this._timerHandle);\n this._timerHandle = null;\n }\n }\n};\n\n// src/utils/UrlUtils.ts\nvar UrlUtils = class {\n static readParams(url, responseMode = \"query\") {\n if (!url) throw new TypeError(\"Invalid URL\");\n const parsedUrl = new URL(url, \"http://127.0.0.1\");\n const params = parsedUrl[responseMode === \"fragment\" ? \"hash\" : \"search\"];\n return new URLSearchParams(params.slice(1));\n }\n};\nvar URL_STATE_DELIMITER = \";\";\n\n// src/errors/ErrorResponse.ts\nvar ErrorResponse = class extends Error {\n constructor(args, form) {\n var _a, _b, _c;\n super(args.error_description || args.error || \"\");\n this.form = form;\n /** Marker to detect class: \"ErrorResponse\" */\n this.name = \"ErrorResponse\";\n if (!args.error) {\n Logger.error(\"ErrorResponse\", \"No error passed\");\n throw new Error(\"No error passed\");\n }\n this.error = args.error;\n this.error_description = (_a = args.error_description) != null ? _a : null;\n this.error_uri = (_b = args.error_uri) != null ? _b : null;\n this.state = args.userState;\n this.session_state = (_c = args.session_state) != null ? _c : null;\n this.url_state = args.url_state;\n }\n};\n\n// src/errors/ErrorTimeout.ts\nvar ErrorTimeout = class extends Error {\n constructor(message) {\n super(message);\n /** Marker to detect class: \"ErrorTimeout\" */\n this.name = \"ErrorTimeout\";\n }\n};\n\n// src/AccessTokenEvents.ts\nvar AccessTokenEvents = class {\n constructor(args) {\n this._logger = new Logger(\"AccessTokenEvents\");\n this._expiringTimer = new Timer(\"Access token expiring\");\n this._expiredTimer = new Timer(\"Access token expired\");\n this._expiringNotificationTimeInSeconds = args.expiringNotificationTimeInSeconds;\n }\n load(container) {\n const logger2 = this._logger.create(\"load\");\n if (container.access_token && container.expires_in !== void 0) {\n const duration = container.expires_in;\n logger2.debug(\"access token present, remaining duration:\", duration);\n if (duration > 0) {\n let expiring = duration - this._expiringNotificationTimeInSeconds;\n if (expiring <= 0) {\n expiring = 1;\n }\n logger2.debug(\"registering expiring timer, raising in\", expiring, \"seconds\");\n this._expiringTimer.init(expiring);\n } else {\n logger2.debug(\"canceling existing expiring timer because we're past expiration.\");\n this._expiringTimer.cancel();\n }\n const expired = duration + 1;\n logger2.debug(\"registering expired timer, raising in\", expired, \"seconds\");\n this._expiredTimer.init(expired);\n } else {\n this._expiringTimer.cancel();\n this._expiredTimer.cancel();\n }\n }\n unload() {\n this._logger.debug(\"unload: canceling existing access token timers\");\n this._expiringTimer.cancel();\n this._expiredTimer.cancel();\n }\n /**\n * Add callback: Raised prior to the access token expiring.\n */\n addAccessTokenExpiring(cb) {\n return this._expiringTimer.addHandler(cb);\n }\n /**\n * Remove callback: Raised prior to the access token expiring.\n */\n removeAccessTokenExpiring(cb) {\n this._expiringTimer.removeHandler(cb);\n }\n /**\n * Add callback: Raised after the access token has expired.\n */\n addAccessTokenExpired(cb) {\n return this._expiredTimer.addHandler(cb);\n }\n /**\n * Remove callback: Raised after the access token has expired.\n */\n removeAccessTokenExpired(cb) {\n this._expiredTimer.removeHandler(cb);\n }\n};\n\n// src/CheckSessionIFrame.ts\nvar CheckSessionIFrame = class {\n constructor(_callback, _client_id, url, _intervalInSeconds, _stopOnError) {\n this._callback = _callback;\n this._client_id = _client_id;\n this._intervalInSeconds = _intervalInSeconds;\n this._stopOnError = _stopOnError;\n this._logger = new Logger(\"CheckSessionIFrame\");\n this._timer = null;\n this._session_state = null;\n this._message = (e) => {\n if (e.origin === this._frame_origin && e.source === this._frame.contentWindow) {\n if (e.data === \"error\") {\n this._logger.error(\"error message from check session op iframe\");\n if (this._stopOnError) {\n this.stop();\n }\n } else if (e.data === \"changed\") {\n this._logger.debug(\"changed message from check session op iframe\");\n this.stop();\n void this._callback();\n } else {\n this._logger.debug(e.data + \" message from check session op iframe\");\n }\n }\n };\n const parsedUrl = new URL(url);\n this._frame_origin = parsedUrl.origin;\n this._frame = window.document.createElement(\"iframe\");\n this._frame.style.visibility = \"hidden\";\n this._frame.style.position = \"fixed\";\n this._frame.style.left = \"-1000px\";\n this._frame.style.top = \"0\";\n this._frame.width = \"0\";\n this._frame.height = \"0\";\n this._frame.src = parsedUrl.href;\n }\n load() {\n return new Promise((resolve) => {\n this._frame.onload = () => {\n resolve();\n };\n window.document.body.appendChild(this._frame);\n window.addEventListener(\"message\", this._message, false);\n });\n }\n start(session_state) {\n if (this._session_state === session_state) {\n return;\n }\n this._logger.create(\"start\");\n this.stop();\n this._session_state = session_state;\n const send = () => {\n if (!this._frame.contentWindow || !this._session_state) {\n return;\n }\n this._frame.contentWindow.postMessage(this._client_id + \" \" + this._session_state, this._frame_origin);\n };\n send();\n this._timer = setInterval(send, this._intervalInSeconds * 1e3);\n }\n stop() {\n this._logger.create(\"stop\");\n this._session_state = null;\n if (this._timer) {\n clearInterval(this._timer);\n this._timer = null;\n }\n }\n};\n\n// src/InMemoryWebStorage.ts\nvar InMemoryWebStorage = class {\n constructor() {\n this._logger = new Logger(\"InMemoryWebStorage\");\n this._data = {};\n }\n clear() {\n this._logger.create(\"clear\");\n this._data = {};\n }\n getItem(key) {\n this._logger.create(`getItem('${key}')`);\n return this._data[key];\n }\n setItem(key, value) {\n this._logger.create(`setItem('${key}')`);\n this._data[key] = value;\n }\n removeItem(key) {\n this._logger.create(`removeItem('${key}')`);\n delete this._data[key];\n }\n get length() {\n return Object.getOwnPropertyNames(this._data).length;\n }\n key(index) {\n return Object.getOwnPropertyNames(this._data)[index];\n }\n};\n\n// src/errors/ErrorDPoPNonce.ts\nvar ErrorDPoPNonce = class extends Error {\n constructor(nonce, message) {\n super(message);\n /** Marker to detect class: \"ErrorDPoPNonce\" */\n this.name = \"ErrorDPoPNonce\";\n this.nonce = nonce;\n }\n};\n\n// src/JsonService.ts\nvar JsonService = class {\n constructor(additionalContentTypes = [], _jwtHandler = null, _extraHeaders = {}) {\n this._jwtHandler = _jwtHandler;\n this._extraHeaders = _extraHeaders;\n this._logger = new Logger(\"JsonService\");\n this._contentTypes = [];\n this._contentTypes.push(...additionalContentTypes, \"application/json\");\n if (_jwtHandler) {\n this._contentTypes.push(\"application/jwt\");\n }\n }\n async fetchWithTimeout(input, init = {}) {\n const { timeoutInSeconds, ...initFetch } = init;\n if (!timeoutInSeconds) {\n return await fetch(input, initFetch);\n }\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeoutInSeconds * 1e3);\n try {\n const response = await fetch(input, {\n ...init,\n signal: controller.signal\n });\n return response;\n } catch (err) {\n if (err instanceof DOMException && err.name === \"AbortError\") {\n throw new ErrorTimeout(\"Network timed out\");\n }\n throw err;\n } finally {\n clearTimeout(timeoutId);\n }\n }\n async getJson(url, {\n token,\n credentials,\n timeoutInSeconds\n } = {}) {\n const logger2 = this._logger.create(\"getJson\");\n const headers = {\n \"Accept\": this._contentTypes.join(\", \")\n };\n if (token) {\n logger2.debug(\"token passed, setting Authorization header\");\n headers[\"Authorization\"] = \"Bearer \" + token;\n }\n this.appendExtraHeaders(headers);\n let response;\n try {\n logger2.debug(\"url:\", url);\n response = await this.fetchWithTimeout(url, { method: \"GET\", headers, timeoutInSeconds, credentials });\n } catch (err) {\n logger2.error(\"Network Error\");\n throw err;\n }\n logger2.debug(\"HTTP response received, status\", response.status);\n const contentType = response.headers.get(\"Content-Type\");\n if (contentType && !this._contentTypes.find((item) => contentType.startsWith(item))) {\n logger2.throw(new Error(`Invalid response Content-Type: ${contentType != null ? contentType : \"undefined\"}, from URL: ${url}`));\n }\n if (response.ok && this._jwtHandler && (contentType == null ? void 0 : contentType.startsWith(\"application/jwt\"))) {\n return await this._jwtHandler(await response.text());\n }\n let json;\n try {\n json = await response.json();\n } catch (err) {\n logger2.error(\"Error parsing JSON response\", err);\n if (response.ok) throw err;\n throw new Error(`${response.statusText} (${response.status})`);\n }\n if (!response.ok) {\n logger2.error(\"Error from server:\", json);\n if (json.error) {\n throw new ErrorResponse(json);\n }\n throw new Error(`${response.statusText} (${response.status}): ${JSON.stringify(json)}`);\n }\n return json;\n }\n async postForm(url, {\n body,\n basicAuth,\n timeoutInSeconds,\n initCredentials,\n extraHeaders\n }) {\n const logger2 = this._logger.create(\"postForm\");\n const headers = {\n \"Accept\": this._contentTypes.join(\", \"),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n ...extraHeaders\n };\n if (basicAuth !== void 0) {\n headers[\"Authorization\"] = \"Basic \" + basicAuth;\n }\n this.appendExtraHeaders(headers);\n let response;\n try {\n logger2.debug(\"url:\", url);\n response = await this.fetchWithTimeout(url, { method: \"POST\", headers, body, timeoutInSeconds, credentials: initCredentials });\n } catch (err) {\n logger2.error(\"Network error\");\n throw err;\n }\n logger2.debug(\"HTTP response received, status\", response.status);\n const contentType = response.headers.get(\"Content-Type\");\n if (contentType && !this._contentTypes.find((item) => contentType.startsWith(item))) {\n throw new Error(`Invalid response Content-Type: ${contentType != null ? contentType : \"undefined\"}, from URL: ${url}`);\n }\n const responseText = await response.text();\n let json = {};\n if (responseText) {\n try {\n json = JSON.parse(responseText);\n } catch (err) {\n logger2.error(\"Error parsing JSON response\", err);\n if (response.ok) throw err;\n throw new Error(`${response.statusText} (${response.status})`);\n }\n }\n if (!response.ok) {\n logger2.error(\"Error from server:\", json);\n if (response.headers.has(\"dpop-nonce\")) {\n const nonce = response.headers.get(\"dpop-nonce\");\n throw new ErrorDPoPNonce(nonce, `${JSON.stringify(json)}`);\n }\n if (json.error) {\n throw new ErrorResponse(json, body);\n }\n throw new Error(`${response.statusText} (${response.status}): ${JSON.stringify(json)}`);\n }\n return json;\n }\n appendExtraHeaders(headers) {\n const logger2 = this._logger.create(\"appendExtraHeaders\");\n const customKeys = Object.keys(this._extraHeaders);\n const protectedHeaders = [\n \"authorization\",\n \"accept\",\n \"content-type\"\n ];\n if (customKeys.length === 0) {\n return;\n }\n customKeys.forEach((headerName) => {\n if (protectedHeaders.includes(headerName.toLocaleLowerCase())) {\n logger2.warn(\"Protected header could not be overridden\", headerName, protectedHeaders);\n return;\n }\n const content = typeof this._extraHeaders[headerName] === \"function\" ? this._extraHeaders[headerName]() : this._extraHeaders[headerName];\n if (content && content !== \"\") {\n headers[headerName] = content;\n }\n });\n }\n};\n\n// src/MetadataService.ts\nvar MetadataService = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"MetadataService\");\n this._signingKeys = null;\n this._metadata = null;\n this._metadataUrl = this._settings.metadataUrl;\n this._jsonService = new JsonService(\n [\"application/jwk-set+json\"],\n null,\n this._settings.extraHeaders\n );\n if (this._settings.signingKeys) {\n this._logger.debug(\"using signingKeys from settings\");\n this._signingKeys = this._settings.signingKeys;\n }\n if (this._settings.metadata) {\n this._logger.debug(\"using metadata from settings\");\n this._metadata = this._settings.metadata;\n }\n if (this._settings.fetchRequestCredentials) {\n this._logger.debug(\"using fetchRequestCredentials from settings\");\n this._fetchRequestCredentials = this._settings.fetchRequestCredentials;\n }\n }\n resetSigningKeys() {\n this._signingKeys = null;\n }\n async getMetadata() {\n const logger2 = this._logger.create(\"getMetadata\");\n if (this._metadata) {\n logger2.debug(\"using cached values\");\n return this._metadata;\n }\n if (!this._metadataUrl) {\n logger2.throw(new Error(\"No authority or metadataUrl configured on settings\"));\n throw null;\n }\n logger2.debug(\"getting metadata from\", this._metadataUrl);\n const metadata = await this._jsonService.getJson(this._metadataUrl, { credentials: this._fetchRequestCredentials, timeoutInSeconds: this._settings.requestTimeoutInSeconds });\n logger2.debug(\"merging remote JSON with seed metadata\");\n this._metadata = Object.assign({}, this._settings.metadataSeed, metadata);\n return this._metadata;\n }\n getIssuer() {\n return this._getMetadataProperty(\"issuer\");\n }\n getAuthorizationEndpoint() {\n return this._getMetadataProperty(\"authorization_endpoint\");\n }\n getUserInfoEndpoint() {\n return this._getMetadataProperty(\"userinfo_endpoint\");\n }\n getTokenEndpoint(optional = true) {\n return this._getMetadataProperty(\"token_endpoint\", optional);\n }\n getCheckSessionIframe() {\n return this._getMetadataProperty(\"check_session_iframe\", true);\n }\n getEndSessionEndpoint() {\n return this._getMetadataProperty(\"end_session_endpoint\", true);\n }\n getRevocationEndpoint(optional = true) {\n return this._getMetadataProperty(\"revocation_endpoint\", optional);\n }\n getKeysEndpoint(optional = true) {\n return this._getMetadataProperty(\"jwks_uri\", optional);\n }\n async _getMetadataProperty(name, optional = false) {\n const logger2 = this._logger.create(`_getMetadataProperty('${name}')`);\n const metadata = await this.getMetadata();\n logger2.debug(\"resolved\");\n if (metadata[name] === void 0) {\n if (optional === true) {\n logger2.warn(\"Metadata does not contain optional property\");\n return void 0;\n }\n logger2.throw(new Error(\"Metadata does not contain property \" + name));\n }\n return metadata[name];\n }\n async getSigningKeys() {\n const logger2 = this._logger.create(\"getSigningKeys\");\n if (this._signingKeys) {\n logger2.debug(\"returning signingKeys from cache\");\n return this._signingKeys;\n }\n const jwks_uri = await this.getKeysEndpoint(false);\n logger2.debug(\"got jwks_uri\", jwks_uri);\n const keySet = await this._jsonService.getJson(jwks_uri, { timeoutInSeconds: this._settings.requestTimeoutInSeconds });\n logger2.debug(\"got key set\", keySet);\n if (!Array.isArray(keySet.keys)) {\n logger2.throw(new Error(\"Missing keys on keyset\"));\n throw null;\n }\n this._signingKeys = keySet.keys;\n return this._signingKeys;\n }\n};\n\n// src/WebStorageStateStore.ts\nvar WebStorageStateStore = class {\n constructor({\n prefix = \"oidc.\",\n store = localStorage\n } = {}) {\n this._logger = new Logger(\"WebStorageStateStore\");\n this._store = store;\n this._prefix = prefix;\n }\n async set(key, value) {\n this._logger.create(`set('${key}')`);\n key = this._prefix + key;\n await this._store.setItem(key, value);\n }\n async get(key) {\n this._logger.create(`get('${key}')`);\n key = this._prefix + key;\n const item = await this._store.getItem(key);\n return item;\n }\n async remove(key) {\n this._logger.create(`remove('${key}')`);\n key = this._prefix + key;\n const item = await this._store.getItem(key);\n await this._store.removeItem(key);\n return item;\n }\n async getAllKeys() {\n this._logger.create(\"getAllKeys\");\n const len = await this._store.length;\n const keys = [];\n for (let index = 0; index < len; index++) {\n const key = await this._store.key(index);\n if (key && key.indexOf(this._prefix) === 0) {\n keys.push(key.substr(this._prefix.length));\n }\n }\n return keys;\n }\n};\n\n// src/OidcClientSettings.ts\nvar DefaultResponseType = \"code\";\nvar DefaultScope = \"openid\";\nvar DefaultClientAuthentication = \"client_secret_post\";\nvar DefaultStaleStateAgeInSeconds = 60 * 15;\nvar OidcClientSettingsStore = class {\n constructor({\n // metadata related\n authority,\n metadataUrl,\n metadata,\n signingKeys,\n metadataSeed,\n // client related\n client_id,\n client_secret,\n response_type = DefaultResponseType,\n scope = DefaultScope,\n redirect_uri,\n post_logout_redirect_uri,\n client_authentication = DefaultClientAuthentication,\n // optional protocol\n prompt,\n display,\n max_age,\n ui_locales,\n acr_values,\n resource,\n response_mode,\n // behavior flags\n filterProtocolClaims = true,\n loadUserInfo = false,\n requestTimeoutInSeconds,\n staleStateAgeInSeconds = DefaultStaleStateAgeInSeconds,\n mergeClaimsStrategy = { array: \"replace\" },\n disablePKCE = false,\n // other behavior\n stateStore,\n revokeTokenAdditionalContentTypes,\n fetchRequestCredentials,\n refreshTokenAllowedScope,\n // extra\n extraQueryParams = {},\n extraTokenParams = {},\n extraHeaders = {},\n dpop,\n omitScopeWhenRequesting = false\n }) {\n var _a;\n this.authority = authority;\n if (metadataUrl) {\n this.metadataUrl = metadataUrl;\n } else {\n this.metadataUrl = authority;\n if (authority) {\n if (!this.metadataUrl.endsWith(\"/\")) {\n this.metadataUrl += \"/\";\n }\n this.metadataUrl += \".well-known/openid-configuration\";\n }\n }\n this.metadata = metadata;\n this.metadataSeed = metadataSeed;\n this.signingKeys = signingKeys;\n this.client_id = client_id;\n this.client_secret = client_secret;\n this.response_type = response_type;\n this.scope = scope;\n this.redirect_uri = redirect_uri;\n this.post_logout_redirect_uri = post_logout_redirect_uri;\n this.client_authentication = client_authentication;\n this.prompt = prompt;\n this.display = display;\n this.max_age = max_age;\n this.ui_locales = ui_locales;\n this.acr_values = acr_values;\n this.resource = resource;\n this.response_mode = response_mode;\n this.filterProtocolClaims = filterProtocolClaims != null ? filterProtocolClaims : true;\n this.loadUserInfo = !!loadUserInfo;\n this.staleStateAgeInSeconds = staleStateAgeInSeconds;\n this.mergeClaimsStrategy = mergeClaimsStrategy;\n this.omitScopeWhenRequesting = omitScopeWhenRequesting;\n this.disablePKCE = !!disablePKCE;\n this.revokeTokenAdditionalContentTypes = revokeTokenAdditionalContentTypes;\n this.fetchRequestCredentials = fetchRequestCredentials ? fetchRequestCredentials : \"same-origin\";\n this.requestTimeoutInSeconds = requestTimeoutInSeconds;\n if (stateStore) {\n this.stateStore = stateStore;\n } else {\n const store = typeof window !== \"undefined\" ? window.localStorage : new InMemoryWebStorage();\n this.stateStore = new WebStorageStateStore({ store });\n }\n this.refreshTokenAllowedScope = refreshTokenAllowedScope;\n this.extraQueryParams = extraQueryParams;\n this.extraTokenParams = extraTokenParams;\n this.extraHeaders = extraHeaders;\n this.dpop = dpop;\n if (this.dpop && !((_a = this.dpop) == null ? void 0 : _a.store)) {\n throw new Error(\"A DPoPStore is required when dpop is enabled\");\n }\n }\n};\n\n// src/UserInfoService.ts\nvar UserInfoService = class {\n constructor(_settings, _metadataService) {\n this._settings = _settings;\n this._metadataService = _metadataService;\n this._logger = new Logger(\"UserInfoService\");\n this._getClaimsFromJwt = async (responseText) => {\n const logger2 = this._logger.create(\"_getClaimsFromJwt\");\n try {\n const payload = JwtUtils.decode(responseText);\n logger2.debug(\"JWT decoding successful\");\n return payload;\n } catch (err) {\n logger2.error(\"Error parsing JWT response\");\n throw err;\n }\n };\n this._jsonService = new JsonService(\n void 0,\n this._getClaimsFromJwt,\n this._settings.extraHeaders\n );\n }\n async getClaims(token) {\n const logger2 = this._logger.create(\"getClaims\");\n if (!token) {\n this._logger.throw(new Error(\"No token passed\"));\n }\n const url = await this._metadataService.getUserInfoEndpoint();\n logger2.debug(\"got userinfo url\", url);\n const claims = await this._jsonService.getJson(url, {\n token,\n credentials: this._settings.fetchRequestCredentials,\n timeoutInSeconds: this._settings.requestTimeoutInSeconds\n });\n logger2.debug(\"got claims\", claims);\n return claims;\n }\n};\n\n// src/TokenClient.ts\nvar TokenClient = class {\n constructor(_settings, _metadataService) {\n this._settings = _settings;\n this._metadataService = _metadataService;\n this._logger = new Logger(\"TokenClient\");\n this._jsonService = new JsonService(\n this._settings.revokeTokenAdditionalContentTypes,\n null,\n this._settings.extraHeaders\n );\n }\n /**\n * Exchange code.\n *\n * @see https://www.rfc-editor.org/rfc/rfc6749#section-4.1.3\n */\n async exchangeCode({\n grant_type = \"authorization_code\",\n redirect_uri = this._settings.redirect_uri,\n client_id = this._settings.client_id,\n client_secret = this._settings.client_secret,\n extraHeaders,\n ...args\n }) {\n const logger2 = this._logger.create(\"exchangeCode\");\n if (!client_id) {\n logger2.throw(new Error(\"A client_id is required\"));\n }\n if (!redirect_uri) {\n logger2.throw(new Error(\"A redirect_uri is required\"));\n }\n if (!args.code) {\n logger2.throw(new Error(\"A code is required\"));\n }\n const params = new URLSearchParams({ grant_type, redirect_uri });\n for (const [key, value] of Object.entries(args)) {\n if (value != null) {\n params.set(key, value);\n }\n }\n let basicAuth;\n switch (this._settings.client_authentication) {\n case \"client_secret_basic\":\n if (!client_secret) {\n logger2.throw(new Error(\"A client_secret is required\"));\n throw null;\n }\n basicAuth = CryptoUtils.generateBasicAuth(client_id, client_secret);\n break;\n case \"client_secret_post\":\n params.append(\"client_id\", client_id);\n if (client_secret) {\n params.append(\"client_secret\", client_secret);\n }\n break;\n }\n const url = await this._metadataService.getTokenEndpoint(false);\n logger2.debug(\"got token endpoint\");\n const response = await this._jsonService.postForm(url, {\n body: params,\n basicAuth,\n timeoutInSeconds: this._settings.requestTimeoutInSeconds,\n initCredentials: this._settings.fetchRequestCredentials,\n extraHeaders\n });\n logger2.debug(\"got response\");\n return response;\n }\n /**\n * Exchange credentials.\n *\n * @see https://www.rfc-editor.org/rfc/rfc6749#section-4.3.2\n */\n async exchangeCredentials({\n grant_type = \"password\",\n client_id = this._settings.client_id,\n client_secret = this._settings.client_secret,\n scope = this._settings.scope,\n ...args\n }) {\n const logger2 = this._logger.create(\"exchangeCredentials\");\n if (!client_id) {\n logger2.throw(new Error(\"A client_id is required\"));\n }\n const params = new URLSearchParams({ grant_type });\n if (!this._settings.omitScopeWhenRequesting) {\n params.set(\"scope\", scope);\n }\n for (const [key, value] of Object.entries(args)) {\n if (value != null) {\n params.set(key, value);\n }\n }\n let basicAuth;\n switch (this._settings.client_authentication) {\n case \"client_secret_basic\":\n if (!client_secret) {\n logger2.throw(new Error(\"A client_secret is required\"));\n throw null;\n }\n basicAuth = CryptoUtils.generateBasicAuth(client_id, client_secret);\n break;\n case \"client_secret_post\":\n params.append(\"client_id\", client_id);\n if (client_secret) {\n params.append(\"client_secret\", client_secret);\n }\n break;\n }\n const url = await this._metadataService.getTokenEndpoint(false);\n logger2.debug(\"got token endpoint\");\n const response = await this._jsonService.postForm(url, { body: params, basicAuth, timeoutInSeconds: this._settings.requestTimeoutInSeconds, initCredentials: this._settings.fetchRequestCredentials });\n logger2.debug(\"got response\");\n return response;\n }\n /**\n * Exchange a refresh token.\n *\n * @see https://www.rfc-editor.org/rfc/rfc6749#section-6\n */\n async exchangeRefreshToken({\n grant_type = \"refresh_token\",\n client_id = this._settings.client_id,\n client_secret = this._settings.client_secret,\n timeoutInSeconds,\n extraHeaders,\n ...args\n }) {\n const logger2 = this._logger.create(\"exchangeRefreshToken\");\n if (!client_id) {\n logger2.throw(new Error(\"A client_id is required\"));\n }\n if (!args.refresh_token) {\n logger2.throw(new Error(\"A refresh_token is required\"));\n }\n const params = new URLSearchParams({ grant_type });\n for (const [key, value] of Object.entries(args)) {\n if (Array.isArray(value)) {\n value.forEach((param) => params.append(key, param));\n } else if (value != null) {\n params.set(key, value);\n }\n }\n let basicAuth;\n switch (this._settings.client_authentication) {\n case \"client_secret_basic\":\n if (!client_secret) {\n logger2.throw(new Error(\"A client_secret is required\"));\n throw null;\n }\n basicAuth = CryptoUtils.generateBasicAuth(client_id, client_secret);\n break;\n case \"client_secret_post\":\n params.append(\"client_id\", client_id);\n if (client_secret) {\n params.append(\"client_secret\", client_secret);\n }\n break;\n }\n const url = await this._metadataService.getTokenEndpoint(false);\n logger2.debug(\"got token endpoint\");\n const response = await this._jsonService.postForm(url, { body: params, basicAuth, timeoutInSeconds, initCredentials: this._settings.fetchRequestCredentials, extraHeaders });\n logger2.debug(\"got response\");\n return response;\n }\n /**\n * Revoke an access or refresh token.\n *\n * @see https://datatracker.ietf.org/doc/html/rfc7009#section-2.1\n */\n async revoke(args) {\n var _a;\n const logger2 = this._logger.create(\"revoke\");\n if (!args.token) {\n logger2.throw(new Error(\"A token is required\"));\n }\n const url = await this._metadataService.getRevocationEndpoint(false);\n logger2.debug(`got revocation endpoint, revoking ${(_a = args.token_type_hint) != null ? _a : \"default token type\"}`);\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(args)) {\n if (value != null) {\n params.set(key, value);\n }\n }\n params.set(\"client_id\", this._settings.client_id);\n if (this._settings.client_secret) {\n params.set(\"client_secret\", this._settings.client_secret);\n }\n await this._jsonService.postForm(url, { body: params, timeoutInSeconds: this._settings.requestTimeoutInSeconds });\n logger2.debug(\"got response\");\n }\n};\n\n// src/ResponseValidator.ts\nvar ResponseValidator = class {\n constructor(_settings, _metadataService, _claimsService) {\n this._settings = _settings;\n this._metadataService = _metadataService;\n this._claimsService = _claimsService;\n this._logger = new Logger(\"ResponseValidator\");\n this._userInfoService = new UserInfoService(this._settings, this._metadataService);\n this._tokenClient = new TokenClient(this._settings, this._metadataService);\n }\n async validateSigninResponse(response, state, extraHeaders) {\n const logger2 = this._logger.create(\"validateSigninResponse\");\n this._processSigninState(response, state);\n logger2.debug(\"state processed\");\n await this._processCode(response, state, extraHeaders);\n logger2.debug(\"code processed\");\n if (response.isOpenId) {\n this._validateIdTokenAttributes(response);\n }\n logger2.debug(\"tokens validated\");\n await this._processClaims(response, state == null ? void 0 : state.skipUserInfo, response.isOpenId);\n logger2.debug(\"claims processed\");\n }\n async validateCredentialsResponse(response, skipUserInfo) {\n const logger2 = this._logger.create(\"validateCredentialsResponse\");\n if (response.isOpenId && !!response.id_token) {\n this._validateIdTokenAttributes(response);\n }\n logger2.debug(\"tokens validated\");\n await this._processClaims(response, skipUserInfo, response.isOpenId);\n logger2.debug(\"claims processed\");\n }\n async validateRefreshResponse(response, state) {\n var _a, _b;\n const logger2 = this._logger.create(\"validateRefreshResponse\");\n response.userState = state.data;\n (_a = response.session_state) != null ? _a : response.session_state = state.session_state;\n (_b = response.scope) != null ? _b : response.scope = state.scope;\n if (response.isOpenId && !!response.id_token) {\n this._validateIdTokenAttributes(response, state.id_token);\n logger2.debug(\"ID Token validated\");\n }\n if (!response.id_token) {\n response.id_token = state.id_token;\n response.profile = state.profile;\n }\n const hasIdToken = response.isOpenId && !!response.id_token;\n await this._processClaims(response, false, hasIdToken);\n logger2.debug(\"claims processed\");\n }\n validateSignoutResponse(response, state) {\n const logger2 = this._logger.create(\"validateSignoutResponse\");\n if (state.id !== response.state) {\n logger2.throw(new Error(\"State does not match\"));\n }\n logger2.debug(\"state validated\");\n response.userState = state.data;\n if (response.error) {\n logger2.warn(\"Response was error\", response.error);\n throw new ErrorResponse(response);\n }\n }\n _processSigninState(response, state) {\n var _a;\n const logger2 = this._logger.create(\"_processSigninState\");\n if (state.id !== response.state) {\n logger2.throw(new Error(\"State does not match\"));\n }\n if (!state.client_id) {\n logger2.throw(new Error(\"No client_id on state\"));\n }\n if (!state.authority) {\n logger2.throw(new Error(\"No authority on state\"));\n }\n if (this._settings.authority !== state.authority) {\n logger2.throw(new Error(\"authority mismatch on settings vs. signin state\"));\n }\n if (this._settings.client_id && this._settings.client_id !== state.client_id) {\n logger2.throw(new Error(\"client_id mismatch on settings vs. signin state\"));\n }\n logger2.debug(\"state validated\");\n response.userState = state.data;\n response.url_state = state.url_state;\n (_a = response.scope) != null ? _a : response.scope = state.scope;\n if (response.error) {\n logger2.warn(\"Response was error\", response.error);\n throw new ErrorResponse(response);\n }\n if (state.code_verifier && !response.code) {\n logger2.throw(new Error(\"Expected code in response\"));\n }\n }\n async _processClaims(response, skipUserInfo = false, validateSub = true) {\n const logger2 = this._logger.create(\"_processClaims\");\n response.profile = this._claimsService.filterProtocolClaims(response.profile);\n if (skipUserInfo || !this._settings.loadUserInfo || !response.access_token) {\n logger2.debug(\"not loading user info\");\n return;\n }\n logger2.debug(\"loading user info\");\n const claims = await this._userInfoService.getClaims(response.access_token);\n logger2.debug(\"user info claims received from user info endpoint\");\n if (validateSub && claims.sub !== response.profile.sub) {\n logger2.throw(new Error(\"subject from UserInfo response does not match subject in ID Token\"));\n }\n response.profile = this._claimsService.mergeClaims(response.profile, this._claimsService.filterProtocolClaims(claims));\n logger2.debug(\"user info claims received, updated profile:\", response.profile);\n }\n async _processCode(response, state, extraHeaders) {\n const logger2 = this._logger.create(\"_processCode\");\n if (response.code) {\n logger2.debug(\"Validating code\");\n const tokenResponse = await this._tokenClient.exchangeCode({\n client_id: state.client_id,\n client_secret: state.client_secret,\n code: response.code,\n redirect_uri: state.redirect_uri,\n code_verifier: state.code_verifier,\n extraHeaders,\n ...state.extraTokenParams\n });\n Object.assign(response, tokenResponse);\n } else {\n logger2.debug(\"No code to process\");\n }\n }\n _validateIdTokenAttributes(response, existingToken) {\n var _a;\n const logger2 = this._logger.create(\"_validateIdTokenAttributes\");\n logger2.debug(\"decoding ID Token JWT\");\n const incoming = JwtUtils.decode((_a = response.id_token) != null ? _a : \"\");\n if (!incoming.sub) {\n logger2.throw(new Error(\"ID Token is missing a subject claim\"));\n }\n if (existingToken) {\n const existing = JwtUtils.decode(existingToken);\n if (incoming.sub !== existing.sub) {\n logger2.throw(new Error(\"sub in id_token does not match current sub\"));\n }\n if (incoming.auth_time && incoming.auth_time !== existing.auth_time) {\n logger2.throw(new Error(\"auth_time in id_token does not match original auth_time\"));\n }\n if (incoming.azp && incoming.azp !== existing.azp) {\n logger2.throw(new Error(\"azp in id_token does not match original azp\"));\n }\n if (!incoming.azp && existing.azp) {\n logger2.throw(new Error(\"azp not in id_token, but present in original id_token\"));\n }\n }\n response.profile = incoming;\n }\n};\n\n// src/State.ts\nvar State = class _State {\n constructor(args) {\n this.id = args.id || CryptoUtils.generateUUIDv4();\n this.data = args.data;\n if (args.created && args.created > 0) {\n this.created = args.created;\n } else {\n this.created = Timer.getEpochTime();\n }\n this.request_type = args.request_type;\n this.url_state = args.url_state;\n }\n toStorageString() {\n new Logger(\"State\").create(\"toStorageString\");\n return JSON.stringify({\n id: this.id,\n data: this.data,\n created: this.created,\n request_type: this.request_type,\n url_state: this.url_state\n });\n }\n static fromStorageString(storageString) {\n Logger.createStatic(\"State\", \"fromStorageString\");\n return Promise.resolve(new _State(JSON.parse(storageString)));\n }\n static async clearStaleState(storage, age) {\n const logger2 = Logger.createStatic(\"State\", \"clearStaleState\");\n const cutoff = Timer.getEpochTime() - age;\n const keys = await storage.getAllKeys();\n logger2.debug(\"got keys\", keys);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const item = await storage.get(key);\n let remove = false;\n if (item) {\n try {\n const state = await _State.fromStorageString(item);\n logger2.debug(\"got item from key:\", key, state.created);\n if (state.created <= cutoff) {\n remove = true;\n }\n } catch (err) {\n logger2.error(\"Error parsing state for key:\", key, err);\n remove = true;\n }\n } else {\n logger2.debug(\"no item in storage for key:\", key);\n remove = true;\n }\n if (remove) {\n logger2.debug(\"removed item for key:\", key);\n void storage.remove(key);\n }\n }\n }\n};\n\n// src/SigninState.ts\nvar SigninState = class _SigninState extends State {\n constructor(args) {\n super(args);\n this.code_verifier = args.code_verifier;\n this.code_challenge = args.code_challenge;\n this.authority = args.authority;\n this.client_id = args.client_id;\n this.redirect_uri = args.redirect_uri;\n this.scope = args.scope;\n this.client_secret = args.client_secret;\n this.extraTokenParams = args.extraTokenParams;\n this.response_mode = args.response_mode;\n this.skipUserInfo = args.skipUserInfo;\n }\n static async create(args) {\n const code_verifier = args.code_verifier === true ? CryptoUtils.generateCodeVerifier() : args.code_verifier || void 0;\n const code_challenge = code_verifier ? await CryptoUtils.generateCodeChallenge(code_verifier) : void 0;\n return new _SigninState({\n ...args,\n code_verifier,\n code_challenge\n });\n }\n toStorageString() {\n new Logger(\"SigninState\").create(\"toStorageString\");\n return JSON.stringify({\n id: this.id,\n data: this.data,\n created: this.created,\n request_type: this.request_type,\n url_state: this.url_state,\n code_verifier: this.code_verifier,\n authority: this.authority,\n client_id: this.client_id,\n redirect_uri: this.redirect_uri,\n scope: this.scope,\n client_secret: this.client_secret,\n extraTokenParams: this.extraTokenParams,\n response_mode: this.response_mode,\n skipUserInfo: this.skipUserInfo\n });\n }\n static fromStorageString(storageString) {\n Logger.createStatic(\"SigninState\", \"fromStorageString\");\n const data = JSON.parse(storageString);\n return _SigninState.create(data);\n }\n};\n\n// src/SigninRequest.ts\nvar _SigninRequest = class _SigninRequest {\n constructor(args) {\n this.url = args.url;\n this.state = args.state;\n }\n static async create({\n // mandatory\n url,\n authority,\n client_id,\n redirect_uri,\n response_type,\n scope,\n // optional\n state_data,\n response_mode,\n request_type,\n client_secret,\n nonce,\n url_state,\n resource,\n skipUserInfo,\n extraQueryParams,\n extraTokenParams,\n disablePKCE,\n dpopJkt,\n omitScopeWhenRequesting,\n ...optionalParams\n }) {\n if (!url) {\n this._logger.error(\"create: No url passed\");\n throw new Error(\"url\");\n }\n if (!client_id) {\n this._logger.error(\"create: No client_id passed\");\n throw new Error(\"client_id\");\n }\n if (!redirect_uri) {\n this._logger.error(\"create: No redirect_uri passed\");\n throw new Error(\"redirect_uri\");\n }\n if (!response_type) {\n this._logger.error(\"create: No response_type passed\");\n throw new Error(\"response_type\");\n }\n if (!scope) {\n this._logger.error(\"create: No scope passed\");\n throw new Error(\"scope\");\n }\n if (!authority) {\n this._logger.error(\"create: No authority passed\");\n throw new Error(\"authority\");\n }\n const state = await SigninState.create({\n data: state_data,\n request_type,\n url_state,\n code_verifier: !disablePKCE,\n client_id,\n authority,\n redirect_uri,\n response_mode,\n client_secret,\n scope,\n extraTokenParams,\n skipUserInfo\n });\n const parsedUrl = new URL(url);\n parsedUrl.searchParams.append(\"client_id\", client_id);\n parsedUrl.searchParams.append(\"redirect_uri\", redirect_uri);\n parsedUrl.searchParams.append(\"response_type\", response_type);\n if (!omitScopeWhenRequesting) {\n parsedUrl.searchParams.append(\"scope\", scope);\n }\n if (nonce) {\n parsedUrl.searchParams.append(\"nonce\", nonce);\n }\n if (dpopJkt) {\n parsedUrl.searchParams.append(\"dpop_jkt\", dpopJkt);\n }\n let stateParam = state.id;\n if (url_state) {\n stateParam = `${stateParam}${URL_STATE_DELIMITER}${url_state}`;\n }\n parsedUrl.searchParams.append(\"state\", stateParam);\n if (state.code_challenge) {\n parsedUrl.searchParams.append(\"code_challenge\", state.code_challenge);\n parsedUrl.searchParams.append(\"code_challenge_method\", \"S256\");\n }\n if (resource) {\n const resources = Array.isArray(resource) ? resource : [resource];\n resources.forEach((r) => parsedUrl.searchParams.append(\"resource\", r));\n }\n for (const [key, value] of Object.entries({ response_mode, ...optionalParams, ...extraQueryParams })) {\n if (value != null) {\n parsedUrl.searchParams.append(key, value.toString());\n }\n }\n return new _SigninRequest({\n url: parsedUrl.href,\n state\n });\n }\n};\n_SigninRequest._logger = new Logger(\"SigninRequest\");\nvar SigninRequest = _SigninRequest;\n\n// src/SigninResponse.ts\nvar OidcScope = \"openid\";\nvar SigninResponse = class {\n constructor(params) {\n /** @see {@link User.access_token} */\n this.access_token = \"\";\n /** @see {@link User.token_type} */\n this.token_type = \"\";\n /** @see {@link User.profile} */\n this.profile = {};\n this.state = params.get(\"state\");\n this.session_state = params.get(\"session_state\");\n if (this.state) {\n const splitState = decodeURIComponent(this.state).split(URL_STATE_DELIMITER);\n this.state = splitState[0];\n if (splitState.length > 1) {\n this.url_state = splitState.slice(1).join(URL_STATE_DELIMITER);\n }\n }\n this.error = params.get(\"error\");\n this.error_description = params.get(\"error_description\");\n this.error_uri = params.get(\"error_uri\");\n this.code = params.get(\"code\");\n }\n get expires_in() {\n if (this.expires_at === void 0) {\n return void 0;\n }\n return this.expires_at - Timer.getEpochTime();\n }\n set expires_in(value) {\n if (typeof value === \"string\") value = Number(value);\n if (value !== void 0 && value >= 0) {\n this.expires_at = Math.floor(value) + Timer.getEpochTime();\n }\n }\n get isOpenId() {\n var _a;\n return ((_a = this.scope) == null ? void 0 : _a.split(\" \").includes(OidcScope)) || !!this.id_token;\n }\n};\n\n// src/SignoutRequest.ts\nvar SignoutRequest = class {\n constructor({\n url,\n state_data,\n id_token_hint,\n post_logout_redirect_uri,\n extraQueryParams,\n request_type,\n client_id\n }) {\n this._logger = new Logger(\"SignoutRequest\");\n if (!url) {\n this._logger.error(\"ctor: No url passed\");\n throw new Error(\"url\");\n }\n const parsedUrl = new URL(url);\n if (id_token_hint) {\n parsedUrl.searchParams.append(\"id_token_hint\", id_token_hint);\n }\n if (client_id) {\n parsedUrl.searchParams.append(\"client_id\", client_id);\n }\n if (post_logout_redirect_uri) {\n parsedUrl.searchParams.append(\"post_logout_redirect_uri\", post_logout_redirect_uri);\n if (state_data) {\n this.state = new State({ data: state_data, request_type });\n parsedUrl.searchParams.append(\"state\", this.state.id);\n }\n }\n for (const [key, value] of Object.entries({ ...extraQueryParams })) {\n if (value != null) {\n parsedUrl.searchParams.append(key, value.toString());\n }\n }\n this.url = parsedUrl.href;\n }\n};\n\n// src/SignoutResponse.ts\nvar SignoutResponse = class {\n constructor(params) {\n this.state = params.get(\"state\");\n this.error = params.get(\"error\");\n this.error_description = params.get(\"error_description\");\n this.error_uri = params.get(\"error_uri\");\n }\n};\n\n// src/ClaimsService.ts\nvar DefaultProtocolClaims = [\n \"nbf\",\n \"jti\",\n \"auth_time\",\n \"nonce\",\n \"acr\",\n \"amr\",\n \"azp\",\n \"at_hash\"\n // https://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken\n];\nvar InternalRequiredProtocolClaims = [\"sub\", \"iss\", \"aud\", \"exp\", \"iat\"];\nvar ClaimsService = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"ClaimsService\");\n }\n filterProtocolClaims(claims) {\n const result = { ...claims };\n if (this._settings.filterProtocolClaims) {\n let protocolClaims;\n if (Array.isArray(this._settings.filterProtocolClaims)) {\n protocolClaims = this._settings.filterProtocolClaims;\n } else {\n protocolClaims = DefaultProtocolClaims;\n }\n for (const claim of protocolClaims) {\n if (!InternalRequiredProtocolClaims.includes(claim)) {\n delete result[claim];\n }\n }\n }\n return result;\n }\n mergeClaims(claims1, claims2) {\n const result = { ...claims1 };\n for (const [claim, values] of Object.entries(claims2)) {\n if (result[claim] !== values) {\n if (Array.isArray(result[claim]) || Array.isArray(values)) {\n if (this._settings.mergeClaimsStrategy.array == \"replace\") {\n result[claim] = values;\n } else {\n const mergedValues = Array.isArray(result[claim]) ? result[claim] : [result[claim]];\n for (const value of Array.isArray(values) ? values : [values]) {\n if (!mergedValues.includes(value)) {\n mergedValues.push(value);\n }\n }\n result[claim] = mergedValues;\n }\n } else if (typeof result[claim] === \"object\" && typeof values === \"object\") {\n result[claim] = this.mergeClaims(result[claim], values);\n } else {\n result[claim] = values;\n }\n }\n }\n return result;\n }\n};\n\n// src/DPoPStore.ts\nvar DPoPState = class {\n constructor(keys, nonce) {\n this.keys = keys;\n this.nonce = nonce;\n }\n};\n\n// src/OidcClient.ts\nvar OidcClient = class {\n constructor(settings, metadataService) {\n this._logger = new Logger(\"OidcClient\");\n this.settings = settings instanceof OidcClientSettingsStore ? settings : new OidcClientSettingsStore(settings);\n this.metadataService = metadataService != null ? metadataService : new MetadataService(this.settings);\n this._claimsService = new ClaimsService(this.settings);\n this._validator = new ResponseValidator(this.settings, this.metadataService, this._claimsService);\n this._tokenClient = new TokenClient(this.settings, this.metadataService);\n }\n async createSigninRequest({\n state,\n request,\n request_uri,\n request_type,\n id_token_hint,\n login_hint,\n skipUserInfo,\n nonce,\n url_state,\n response_type = this.settings.response_type,\n scope = this.settings.scope,\n redirect_uri = this.settings.redirect_uri,\n prompt = this.settings.prompt,\n display = this.settings.display,\n max_age = this.settings.max_age,\n ui_locales = this.settings.ui_locales,\n acr_values = this.settings.acr_values,\n resource = this.settings.resource,\n response_mode = this.settings.response_mode,\n extraQueryParams = this.settings.extraQueryParams,\n extraTokenParams = this.settings.extraTokenParams,\n dpopJkt,\n omitScopeWhenRequesting = this.settings.omitScopeWhenRequesting\n }) {\n const logger2 = this._logger.create(\"createSigninRequest\");\n if (response_type !== \"code\") {\n throw new Error(\"Only the Authorization Code flow (with PKCE) is supported\");\n }\n const url = await this.metadataService.getAuthorizationEndpoint();\n logger2.debug(\"Received authorization endpoint\", url);\n const signinRequest = await SigninRequest.create({\n url,\n authority: this.settings.authority,\n client_id: this.settings.client_id,\n redirect_uri,\n response_type,\n scope,\n state_data: state,\n url_state,\n prompt,\n display,\n max_age,\n ui_locales,\n id_token_hint,\n login_hint,\n acr_values,\n dpopJkt,\n resource,\n request,\n request_uri,\n extraQueryParams,\n extraTokenParams,\n request_type,\n response_mode,\n client_secret: this.settings.client_secret,\n skipUserInfo,\n nonce,\n disablePKCE: this.settings.disablePKCE,\n omitScopeWhenRequesting\n });\n await this.clearStaleState();\n const signinState = signinRequest.state;\n await this.settings.stateStore.set(signinState.id, signinState.toStorageString());\n return signinRequest;\n }\n async readSigninResponseState(url, removeState = false) {\n const logger2 = this._logger.create(\"readSigninResponseState\");\n const response = new SigninResponse(UrlUtils.readParams(url, this.settings.response_mode));\n if (!response.state) {\n logger2.throw(new Error(\"No state in response\"));\n throw null;\n }\n const storedStateString = await this.settings.stateStore[removeState ? \"remove\" : \"get\"](response.state);\n if (!storedStateString) {\n logger2.throw(new Error(\"No matching state found in storage\"));\n throw null;\n }\n const state = await SigninState.fromStorageString(storedStateString);\n return { state, response };\n }\n async processSigninResponse(url, extraHeaders) {\n const logger2 = this._logger.create(\"processSigninResponse\");\n const { state, response } = await this.readSigninResponseState(url, true);\n logger2.debug(\"received state from storage; validating response\");\n if (this.settings.dpop && this.settings.dpop.store) {\n const dpopProof = await this.getDpopProof(this.settings.dpop.store);\n extraHeaders = { ...extraHeaders, \"DPoP\": dpopProof };\n }\n try {\n await this._validator.validateSigninResponse(response, state, extraHeaders);\n } catch (err) {\n if (err instanceof ErrorDPoPNonce && this.settings.dpop) {\n const dpopProof = await this.getDpopProof(this.settings.dpop.store, err.nonce);\n extraHeaders[\"DPoP\"] = dpopProof;\n await this._validator.validateSigninResponse(response, state, extraHeaders);\n } else {\n throw err;\n }\n }\n return response;\n }\n async getDpopProof(dpopStore, nonce) {\n let keyPair;\n let dpopState;\n if (!(await dpopStore.getAllKeys()).includes(this.settings.client_id)) {\n keyPair = await CryptoUtils.generateDPoPKeys();\n dpopState = new DPoPState(keyPair, nonce);\n await dpopStore.set(this.settings.client_id, dpopState);\n } else {\n dpopState = await dpopStore.get(this.settings.client_id);\n if (dpopState.nonce !== nonce && nonce) {\n dpopState.nonce = nonce;\n await dpopStore.set(this.settings.client_id, dpopState);\n }\n }\n return await CryptoUtils.generateDPoPProof({\n url: await this.metadataService.getTokenEndpoint(false),\n httpMethod: \"POST\",\n keyPair: dpopState.keys,\n nonce: dpopState.nonce\n });\n }\n async processResourceOwnerPasswordCredentials({\n username,\n password,\n skipUserInfo = false,\n extraTokenParams = {}\n }) {\n const tokenResponse = await this._tokenClient.exchangeCredentials({ username, password, ...extraTokenParams });\n const signinResponse = new SigninResponse(new URLSearchParams());\n Object.assign(signinResponse, tokenResponse);\n await this._validator.validateCredentialsResponse(signinResponse, skipUserInfo);\n return signinResponse;\n }\n async useRefreshToken({\n state,\n redirect_uri,\n resource,\n timeoutInSeconds,\n extraHeaders,\n extraTokenParams\n }) {\n var _a;\n const logger2 = this._logger.create(\"useRefreshToken\");\n let scope;\n if (this.settings.refreshTokenAllowedScope === void 0) {\n scope = state.scope;\n } else {\n const allowableScopes = this.settings.refreshTokenAllowedScope.split(\" \");\n const providedScopes = ((_a = state.scope) == null ? void 0 : _a.split(\" \")) || [];\n scope = providedScopes.filter((s) => allowableScopes.includes(s)).join(\" \");\n }\n if (this.settings.dpop && this.settings.dpop.store) {\n const dpopProof = await this.getDpopProof(this.settings.dpop.store);\n extraHeaders = { ...extraHeaders, \"DPoP\": dpopProof };\n }\n let result;\n try {\n result = await this._tokenClient.exchangeRefreshToken({\n refresh_token: state.refresh_token,\n // provide the (possible filtered) scope list\n scope,\n redirect_uri,\n resource,\n timeoutInSeconds,\n extraHeaders,\n ...extraTokenParams\n });\n } catch (err) {\n if (err instanceof ErrorDPoPNonce && this.settings.dpop) {\n extraHeaders[\"DPoP\"] = await this.getDpopProof(this.settings.dpop.store, err.nonce);\n result = await this._tokenClient.exchangeRefreshToken({\n refresh_token: state.refresh_token,\n // provide the (possible filtered) scope list\n scope,\n redirect_uri,\n resource,\n timeoutInSeconds,\n extraHeaders,\n ...extraTokenParams\n });\n } else {\n throw err;\n }\n }\n const response = new SigninResponse(new URLSearchParams());\n Object.assign(response, result);\n logger2.debug(\"validating response\", response);\n await this._validator.validateRefreshResponse(response, {\n ...state,\n // override the scope in the state handed over to the validator\n // so it can set the granted scope to the requested scope in case none is included in the response\n scope\n });\n return response;\n }\n async createSignoutRequest({\n state,\n id_token_hint,\n client_id,\n request_type,\n post_logout_redirect_uri = this.settings.post_logout_redirect_uri,\n extraQueryParams = this.settings.extraQueryParams\n } = {}) {\n const logger2 = this._logger.create(\"createSignoutRequest\");\n const url = await this.metadataService.getEndSessionEndpoint();\n if (!url) {\n logger2.throw(new Error(\"No end session endpoint\"));\n throw null;\n }\n logger2.debug(\"Received end session endpoint\", url);\n if (!client_id && post_logout_redirect_uri && !id_token_hint) {\n client_id = this.settings.client_id;\n }\n const request = new SignoutRequest({\n url,\n id_token_hint,\n client_id,\n post_logout_redirect_uri,\n state_data: state,\n extraQueryParams,\n request_type\n });\n await this.clearStaleState();\n const signoutState = request.state;\n if (signoutState) {\n logger2.debug(\"Signout request has state to persist\");\n await this.settings.stateStore.set(signoutState.id, signoutState.toStorageString());\n }\n return request;\n }\n async readSignoutResponseState(url, removeState = false) {\n const logger2 = this._logger.create(\"readSignoutResponseState\");\n const response = new SignoutResponse(UrlUtils.readParams(url, this.settings.response_mode));\n if (!response.state) {\n logger2.debug(\"No state in response\");\n if (response.error) {\n logger2.warn(\"Response was error:\", response.error);\n throw new ErrorResponse(response);\n }\n return { state: void 0, response };\n }\n const storedStateString = await this.settings.stateStore[removeState ? \"remove\" : \"get\"](response.state);\n if (!storedStateString) {\n logger2.throw(new Error(\"No matching state found in storage\"));\n throw null;\n }\n const state = await State.fromStorageString(storedStateString);\n return { state, response };\n }\n async processSignoutResponse(url) {\n const logger2 = this._logger.create(\"processSignoutResponse\");\n const { state, response } = await this.readSignoutResponseState(url, true);\n if (state) {\n logger2.debug(\"Received state from storage; validating response\");\n this._validator.validateSignoutResponse(response, state);\n } else {\n logger2.debug(\"No state from storage; skipping response validation\");\n }\n return response;\n }\n clearStaleState() {\n this._logger.create(\"clearStaleState\");\n return State.clearStaleState(this.settings.stateStore, this.settings.staleStateAgeInSeconds);\n }\n async revokeToken(token, type) {\n this._logger.create(\"revokeToken\");\n return await this._tokenClient.revoke({\n token,\n token_type_hint: type\n });\n }\n};\n\n// src/SessionMonitor.ts\nvar SessionMonitor = class {\n constructor(_userManager) {\n this._userManager = _userManager;\n this._logger = new Logger(\"SessionMonitor\");\n this._start = async (user) => {\n const session_state = user.session_state;\n if (!session_state) {\n return;\n }\n const logger2 = this._logger.create(\"_start\");\n if (user.profile) {\n this._sub = user.profile.sub;\n logger2.debug(\"session_state\", session_state, \", sub\", this._sub);\n } else {\n this._sub = void 0;\n logger2.debug(\"session_state\", session_state, \", anonymous user\");\n }\n if (this._checkSessionIFrame) {\n this._checkSessionIFrame.start(session_state);\n return;\n }\n try {\n const url = await this._userManager.metadataService.getCheckSessionIframe();\n if (url) {\n logger2.debug(\"initializing check session iframe\");\n const client_id = this._userManager.settings.client_id;\n const intervalInSeconds = this._userManager.settings.checkSessionIntervalInSeconds;\n const stopOnError = this._userManager.settings.stopCheckSessionOnError;\n const checkSessionIFrame = new CheckSessionIFrame(this._callback, client_id, url, intervalInSeconds, stopOnError);\n await checkSessionIFrame.load();\n this._checkSessionIFrame = checkSessionIFrame;\n checkSessionIFrame.start(session_state);\n } else {\n logger2.warn(\"no check session iframe found in the metadata\");\n }\n } catch (err) {\n logger2.error(\"Error from getCheckSessionIframe:\", err instanceof Error ? err.message : err);\n }\n };\n this._stop = () => {\n const logger2 = this._logger.create(\"_stop\");\n this._sub = void 0;\n if (this._checkSessionIFrame) {\n this._checkSessionIFrame.stop();\n }\n if (this._userManager.settings.monitorAnonymousSession) {\n const timerHandle = setInterval(async () => {\n clearInterval(timerHandle);\n try {\n const session = await this._userManager.querySessionStatus();\n if (session) {\n const tmpUser = {\n session_state: session.session_state,\n profile: session.sub ? {\n sub: session.sub\n } : null\n };\n void this._start(tmpUser);\n }\n } catch (err) {\n logger2.error(\"error from querySessionStatus\", err instanceof Error ? err.message : err);\n }\n }, 1e3);\n }\n };\n this._callback = async () => {\n const logger2 = this._logger.create(\"_callback\");\n try {\n const session = await this._userManager.querySessionStatus();\n let raiseEvent = true;\n if (session && this._checkSessionIFrame) {\n if (session.sub === this._sub) {\n raiseEvent = false;\n this._checkSessionIFrame.start(session.session_state);\n logger2.debug(\"same sub still logged in at OP, session state has changed, restarting check session iframe; session_state\", session.session_state);\n await this._userManager.events._raiseUserSessionChanged();\n } else {\n logger2.debug(\"different subject signed into OP\", session.sub);\n }\n } else {\n logger2.debug(\"subject no longer signed into OP\");\n }\n if (raiseEvent) {\n if (this._sub) {\n await this._userManager.events._raiseUserSignedOut();\n } else {\n await this._userManager.events._raiseUserSignedIn();\n }\n } else {\n logger2.debug(\"no change in session detected, no event to raise\");\n }\n } catch (err) {\n if (this._sub) {\n logger2.debug(\"Error calling queryCurrentSigninSession; raising signed out event\", err);\n await this._userManager.events._raiseUserSignedOut();\n }\n }\n };\n if (!_userManager) {\n this._logger.throw(new Error(\"No user manager passed\"));\n }\n this._userManager.events.addUserLoaded(this._start);\n this._userManager.events.addUserUnloaded(this._stop);\n this._init().catch((err) => {\n this._logger.error(err);\n });\n }\n async _init() {\n this._logger.create(\"_init\");\n const user = await this._userManager.getUser();\n if (user) {\n void this._start(user);\n } else if (this._userManager.settings.monitorAnonymousSession) {\n const session = await this._userManager.querySessionStatus();\n if (session) {\n const tmpUser = {\n session_state: session.session_state,\n profile: session.sub ? {\n sub: session.sub\n } : null\n };\n void this._start(tmpUser);\n }\n }\n }\n};\n\n// src/User.ts\nvar User = class _User {\n constructor(args) {\n var _a;\n this.id_token = args.id_token;\n this.session_state = (_a = args.session_state) != null ? _a : null;\n this.access_token = args.access_token;\n this.refresh_token = args.refresh_token;\n this.token_type = args.token_type;\n this.scope = args.scope;\n this.profile = args.profile;\n this.expires_at = args.expires_at;\n this.state = args.userState;\n this.url_state = args.url_state;\n }\n /** Computed number of seconds the access token has remaining. */\n get expires_in() {\n if (this.expires_at === void 0) {\n return void 0;\n }\n return this.expires_at - Timer.getEpochTime();\n }\n set expires_in(value) {\n if (value !== void 0) {\n this.expires_at = Math.floor(value) + Timer.getEpochTime();\n }\n }\n /** Computed value indicating if the access token is expired. */\n get expired() {\n const expires_in = this.expires_in;\n if (expires_in === void 0) {\n return void 0;\n }\n return expires_in <= 0;\n }\n /** Array representing the parsed values from the `scope`. */\n get scopes() {\n var _a, _b;\n return (_b = (_a = this.scope) == null ? void 0 : _a.split(\" \")) != null ? _b : [];\n }\n toStorageString() {\n new Logger(\"User\").create(\"toStorageString\");\n return JSON.stringify({\n id_token: this.id_token,\n session_state: this.session_state,\n access_token: this.access_token,\n refresh_token: this.refresh_token,\n token_type: this.token_type,\n scope: this.scope,\n profile: this.profile,\n expires_at: this.expires_at\n });\n }\n static fromStorageString(storageString) {\n Logger.createStatic(\"User\", \"fromStorageString\");\n return new _User(JSON.parse(storageString));\n }\n};\n\n// src/navigators/AbstractChildWindow.ts\nvar messageSource = \"oidc-client\";\nvar AbstractChildWindow = class {\n constructor() {\n this._abort = new Event(\"Window navigation aborted\");\n this._disposeHandlers = /* @__PURE__ */ new Set();\n this._window = null;\n }\n async navigate(params) {\n const logger2 = this._logger.create(\"navigate\");\n if (!this._window) {\n throw new Error(\"Attempted to navigate on a disposed window\");\n }\n logger2.debug(\"setting URL in window\");\n this._window.location.replace(params.url);\n const { url, keepOpen } = await new Promise((resolve, reject) => {\n const listener = (e) => {\n var _a;\n const data = e.data;\n const origin = (_a = params.scriptOrigin) != null ? _a : window.location.origin;\n if (e.origin !== origin || (data == null ? void 0 : data.source) !== messageSource) {\n return;\n }\n try {\n const state = UrlUtils.readParams(data.url, params.response_mode).get(\"state\");\n if (!state) {\n logger2.warn(\"no state found in response url\");\n }\n if (e.source !== this._window && state !== params.state) {\n return;\n }\n } catch (err) {\n this._dispose();\n reject(new Error(\"Invalid response from window\"));\n }\n resolve(data);\n };\n window.addEventListener(\"message\", listener, false);\n this._disposeHandlers.add(() => window.removeEventListener(\"message\", listener, false));\n this._disposeHandlers.add(this._abort.addHandler((reason) => {\n this._dispose();\n reject(reason);\n }));\n });\n logger2.debug(\"got response from window\");\n this._dispose();\n if (!keepOpen) {\n this.close();\n }\n return { url };\n }\n _dispose() {\n this._logger.create(\"_dispose\");\n for (const dispose of this._disposeHandlers) {\n dispose();\n }\n this._disposeHandlers.clear();\n }\n static _notifyParent(parent, url, keepOpen = false, targetOrigin = window.location.origin) {\n parent.postMessage({\n source: messageSource,\n url,\n keepOpen\n }, targetOrigin);\n }\n};\n\n// src/UserManagerSettings.ts\nvar DefaultPopupWindowFeatures = {\n location: false,\n toolbar: false,\n height: 640,\n closePopupWindowAfterInSeconds: -1\n};\nvar DefaultPopupTarget = \"_blank\";\nvar DefaultAccessTokenExpiringNotificationTimeInSeconds = 60;\nvar DefaultCheckSessionIntervalInSeconds = 2;\nvar DefaultSilentRequestTimeoutInSeconds = 10;\nvar UserManagerSettingsStore = class extends OidcClientSettingsStore {\n constructor(args) {\n const {\n popup_redirect_uri = args.redirect_uri,\n popup_post_logout_redirect_uri = args.post_logout_redirect_uri,\n popupWindowFeatures = DefaultPopupWindowFeatures,\n popupWindowTarget = DefaultPopupTarget,\n redirectMethod = \"assign\",\n redirectTarget = \"self\",\n iframeNotifyParentOrigin = args.iframeNotifyParentOrigin,\n iframeScriptOrigin = args.iframeScriptOrigin,\n requestTimeoutInSeconds,\n silent_redirect_uri = args.redirect_uri,\n silentRequestTimeoutInSeconds,\n automaticSilentRenew = true,\n validateSubOnSilentRenew = true,\n includeIdTokenInSilentRenew = false,\n monitorSession = false,\n monitorAnonymousSession = false,\n checkSessionIntervalInSeconds = DefaultCheckSessionIntervalInSeconds,\n query_status_response_type = \"code\",\n stopCheckSessionOnError = true,\n revokeTokenTypes = [\"access_token\", \"refresh_token\"],\n revokeTokensOnSignout = false,\n includeIdTokenInSilentSignout = false,\n accessTokenExpiringNotificationTimeInSeconds = DefaultAccessTokenExpiringNotificationTimeInSeconds,\n userStore\n } = args;\n super(args);\n this.popup_redirect_uri = popup_redirect_uri;\n this.popup_post_logout_redirect_uri = popup_post_logout_redirect_uri;\n this.popupWindowFeatures = popupWindowFeatures;\n this.popupWindowTarget = popupWindowTarget;\n this.redirectMethod = redirectMethod;\n this.redirectTarget = redirectTarget;\n this.iframeNotifyParentOrigin = iframeNotifyParentOrigin;\n this.iframeScriptOrigin = iframeScriptOrigin;\n this.silent_redirect_uri = silent_redirect_uri;\n this.silentRequestTimeoutInSeconds = silentRequestTimeoutInSeconds || requestTimeoutInSeconds || DefaultSilentRequestTimeoutInSeconds;\n this.automaticSilentRenew = automaticSilentRenew;\n this.validateSubOnSilentRenew = validateSubOnSilentRenew;\n this.includeIdTokenInSilentRenew = includeIdTokenInSilentRenew;\n this.monitorSession = monitorSession;\n this.monitorAnonymousSession = monitorAnonymousSession;\n this.checkSessionIntervalInSeconds = checkSessionIntervalInSeconds;\n this.stopCheckSessionOnError = stopCheckSessionOnError;\n this.query_status_response_type = query_status_response_type;\n this.revokeTokenTypes = revokeTokenTypes;\n this.revokeTokensOnSignout = revokeTokensOnSignout;\n this.includeIdTokenInSilentSignout = includeIdTokenInSilentSignout;\n this.accessTokenExpiringNotificationTimeInSeconds = accessTokenExpiringNotificationTimeInSeconds;\n if (userStore) {\n this.userStore = userStore;\n } else {\n const store = typeof window !== \"undefined\" ? window.sessionStorage : new InMemoryWebStorage();\n this.userStore = new WebStorageStateStore({ store });\n }\n }\n};\n\n// src/navigators/IFrameWindow.ts\nvar IFrameWindow = class _IFrameWindow extends AbstractChildWindow {\n constructor({\n silentRequestTimeoutInSeconds = DefaultSilentRequestTimeoutInSeconds\n }) {\n super();\n this._logger = new Logger(\"IFrameWindow\");\n this._timeoutInSeconds = silentRequestTimeoutInSeconds;\n this._frame = _IFrameWindow.createHiddenIframe();\n this._window = this._frame.contentWindow;\n }\n static createHiddenIframe() {\n const iframe = window.document.createElement(\"iframe\");\n iframe.style.visibility = \"hidden\";\n iframe.style.position = \"fixed\";\n iframe.style.left = \"-1000px\";\n iframe.style.top = \"0\";\n iframe.width = \"0\";\n iframe.height = \"0\";\n window.document.body.appendChild(iframe);\n return iframe;\n }\n async navigate(params) {\n this._logger.debug(\"navigate: Using timeout of:\", this._timeoutInSeconds);\n const timer = setTimeout(() => void this._abort.raise(new ErrorTimeout(\"IFrame timed out without a response\")), this._timeoutInSeconds * 1e3);\n this._disposeHandlers.add(() => clearTimeout(timer));\n return await super.navigate(params);\n }\n close() {\n var _a;\n if (this._frame) {\n if (this._frame.parentNode) {\n this._frame.addEventListener(\"load\", (ev) => {\n var _a2;\n const frame = ev.target;\n (_a2 = frame.parentNode) == null ? void 0 : _a2.removeChild(frame);\n void this._abort.raise(new Error(\"IFrame removed from DOM\"));\n }, true);\n (_a = this._frame.contentWindow) == null ? void 0 : _a.location.replace(\"about:blank\");\n }\n this._frame = null;\n }\n this._window = null;\n }\n static notifyParent(url, targetOrigin) {\n return super._notifyParent(window.parent, url, false, targetOrigin);\n }\n};\n\n// src/navigators/IFrameNavigator.ts\nvar IFrameNavigator = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"IFrameNavigator\");\n }\n async prepare({\n silentRequestTimeoutInSeconds = this._settings.silentRequestTimeoutInSeconds\n }) {\n return new IFrameWindow({ silentRequestTimeoutInSeconds });\n }\n async callback(url) {\n this._logger.create(\"callback\");\n IFrameWindow.notifyParent(url, this._settings.iframeNotifyParentOrigin);\n }\n};\n\n// src/navigators/PopupWindow.ts\nvar checkForPopupClosedInterval = 500;\nvar second = 1e3;\nvar PopupWindow = class extends AbstractChildWindow {\n constructor({\n popupWindowTarget = DefaultPopupTarget,\n popupWindowFeatures = {},\n popupSignal\n }) {\n super();\n this._logger = new Logger(\"PopupWindow\");\n const centeredPopup = PopupUtils.center({ ...DefaultPopupWindowFeatures, ...popupWindowFeatures });\n this._window = window.open(void 0, popupWindowTarget, PopupUtils.serialize(centeredPopup));\n if (popupSignal) {\n popupSignal.addEventListener(\"abort\", () => {\n var _a;\n void this._abort.raise(new Error((_a = popupSignal.reason) != null ? _a : \"Popup aborted\"));\n });\n }\n if (popupWindowFeatures.closePopupWindowAfterInSeconds && popupWindowFeatures.closePopupWindowAfterInSeconds > 0) {\n setTimeout(() => {\n if (!this._window || typeof this._window.closed !== \"boolean\" || this._window.closed) {\n void this._abort.raise(new Error(\"Popup blocked by user\"));\n return;\n }\n this.close();\n }, popupWindowFeatures.closePopupWindowAfterInSeconds * second);\n }\n }\n async navigate(params) {\n var _a;\n (_a = this._window) == null ? void 0 : _a.focus();\n const popupClosedInterval = setInterval(() => {\n if (!this._window || this._window.closed) {\n void this._abort.raise(new Error(\"Popup closed by user\"));\n }\n }, checkForPopupClosedInterval);\n this._disposeHandlers.add(() => clearInterval(popupClosedInterval));\n return await super.navigate(params);\n }\n close() {\n if (this._window) {\n if (!this._window.closed) {\n this._window.close();\n void this._abort.raise(new Error(\"Popup closed\"));\n }\n }\n this._window = null;\n }\n static notifyOpener(url, keepOpen) {\n if (!window.opener) {\n throw new Error(\"No window.opener. Can't complete notification.\");\n }\n return super._notifyParent(window.opener, url, keepOpen);\n }\n};\n\n// src/navigators/PopupNavigator.ts\nvar PopupNavigator = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"PopupNavigator\");\n }\n async prepare({\n popupWindowFeatures = this._settings.popupWindowFeatures,\n popupWindowTarget = this._settings.popupWindowTarget,\n popupSignal\n }) {\n return new PopupWindow({ popupWindowFeatures, popupWindowTarget, popupSignal });\n }\n async callback(url, { keepOpen = false }) {\n this._logger.create(\"callback\");\n PopupWindow.notifyOpener(url, keepOpen);\n }\n};\n\n// src/navigators/RedirectNavigator.ts\nvar RedirectNavigator = class {\n constructor(_settings) {\n this._settings = _settings;\n this._logger = new Logger(\"RedirectNavigator\");\n }\n async prepare({\n redirectMethod = this._settings.redirectMethod,\n redirectTarget = this._settings.redirectTarget\n }) {\n var _a;\n this._logger.create(\"prepare\");\n let targetWindow = window.self;\n if (redirectTarget === \"top\") {\n targetWindow = (_a = window.top) != null ? _a : window.self;\n }\n const redirect = targetWindow.location[redirectMethod].bind(targetWindow.location);\n let abort;\n return {\n navigate: async (params) => {\n this._logger.create(\"navigate\");\n const promise = new Promise((resolve, reject) => {\n abort = reject;\n });\n redirect(params.url);\n return await promise;\n },\n close: () => {\n this._logger.create(\"close\");\n abort == null ? void 0 : abort(new Error(\"Redirect aborted\"));\n targetWindow.stop();\n }\n };\n }\n async callback() {\n return;\n }\n};\n\n// src/UserManagerEvents.ts\nvar UserManagerEvents = class extends AccessTokenEvents {\n constructor(settings) {\n super({ expiringNotificationTimeInSeconds: settings.accessTokenExpiringNotificationTimeInSeconds });\n this._logger = new Logger(\"UserManagerEvents\");\n this._userLoaded = new Event(\"User loaded\");\n this._userUnloaded = new Event(\"User unloaded\");\n this._silentRenewError = new Event(\"Silent renew error\");\n this._userSignedIn = new Event(\"User signed in\");\n this._userSignedOut = new Event(\"User signed out\");\n this._userSessionChanged = new Event(\"User session changed\");\n }\n async load(user, raiseEvent = true) {\n super.load(user);\n if (raiseEvent) {\n await this._userLoaded.raise(user);\n }\n }\n async unload() {\n super.unload();\n await this._userUnloaded.raise();\n }\n /**\n * Add callback: Raised when a user session has been established (or re-established).\n */\n addUserLoaded(cb) {\n return this._userLoaded.addHandler(cb);\n }\n /**\n * Remove callback: Raised when a user session has been established (or re-established).\n */\n removeUserLoaded(cb) {\n return this._userLoaded.removeHandler(cb);\n }\n /**\n * Add callback: Raised when a user session has been terminated.\n */\n addUserUnloaded(cb) {\n return this._userUnloaded.addHandler(cb);\n }\n /**\n * Remove callback: Raised when a user session has been terminated.\n */\n removeUserUnloaded(cb) {\n return this._userUnloaded.removeHandler(cb);\n }\n /**\n * Add callback: Raised when the automatic silent renew has failed.\n */\n addSilentRenewError(cb) {\n return this._silentRenewError.addHandler(cb);\n }\n /**\n * Remove callback: Raised when the automatic silent renew has failed.\n */\n removeSilentRenewError(cb) {\n return this._silentRenewError.removeHandler(cb);\n }\n /**\n * @internal\n */\n async _raiseSilentRenewError(e) {\n await this._silentRenewError.raise(e);\n }\n /**\n * Add callback: Raised when the user is signed in (when `monitorSession` is set).\n * @see {@link UserManagerSettings.monitorSession}\n */\n addUserSignedIn(cb) {\n return this._userSignedIn.addHandler(cb);\n }\n /**\n * Remove callback: Raised when the user is signed in (when `monitorSession` is set).\n */\n removeUserSignedIn(cb) {\n this._userSignedIn.removeHandler(cb);\n }\n /**\n * @internal\n */\n async _raiseUserSignedIn() {\n await this._userSignedIn.raise();\n }\n /**\n * Add callback: Raised when the user's sign-in status at the OP has changed (when `monitorSession` is set).\n * @see {@link UserManagerSettings.monitorSession}\n */\n addUserSignedOut(cb) {\n return this._userSignedOut.addHandler(cb);\n }\n /**\n * Remove callback: Raised when the user's sign-in status at the OP has changed (when `monitorSession` is set).\n */\n removeUserSignedOut(cb) {\n this._userSignedOut.removeHandler(cb);\n }\n /**\n * @internal\n */\n async _raiseUserSignedOut() {\n await this._userSignedOut.raise();\n }\n /**\n * Add callback: Raised when the user session changed (when `monitorSession` is set).\n * @see {@link UserManagerSettings.monitorSession}\n */\n addUserSessionChanged(cb) {\n return this._userSessionChanged.addHandler(cb);\n }\n /**\n * Remove callback: Raised when the user session changed (when `monitorSession` is set).\n */\n removeUserSessionChanged(cb) {\n this._userSessionChanged.removeHandler(cb);\n }\n /**\n * @internal\n */\n async _raiseUserSessionChanged() {\n await this._userSessionChanged.raise();\n }\n};\n\n// src/SilentRenewService.ts\nvar SilentRenewService = class {\n constructor(_userManager) {\n this._userManager = _userManager;\n this._logger = new Logger(\"SilentRenewService\");\n this._isStarted = false;\n this._retryTimer = new Timer(\"Retry Silent Renew\");\n this._tokenExpiring = async () => {\n const logger2 = this._logger.create(\"_tokenExpiring\");\n try {\n await this._userManager.signinSilent();\n logger2.debug(\"silent token renewal successful\");\n } catch (err) {\n if (err instanceof ErrorTimeout) {\n logger2.warn(\"ErrorTimeout from signinSilent:\", err, \"retry in 5s\");\n this._retryTimer.init(5);\n return;\n }\n logger2.error(\"Error from signinSilent:\", err);\n await this._userManager.events._raiseSilentRenewError(err);\n }\n };\n }\n async start() {\n const logger2 = this._logger.create(\"start\");\n if (!this._isStarted) {\n this._isStarted = true;\n this._userManager.events.addAccessTokenExpiring(this._tokenExpiring);\n this._retryTimer.addHandler(this._tokenExpiring);\n try {\n await this._userManager.getUser();\n } catch (err) {\n logger2.error(\"getUser error\", err);\n }\n }\n }\n stop() {\n if (this._isStarted) {\n this._retryTimer.cancel();\n this._retryTimer.removeHandler(this._tokenExpiring);\n this._userManager.events.removeAccessTokenExpiring(this._tokenExpiring);\n this._isStarted = false;\n }\n }\n};\n\n// src/RefreshState.ts\nvar RefreshState = class {\n constructor(args) {\n this.refresh_token = args.refresh_token;\n this.id_token = args.id_token;\n this.session_state = args.session_state;\n this.scope = args.scope;\n this.profile = args.profile;\n this.data = args.state;\n }\n};\n\n// src/UserManager.ts\nvar UserManager = class {\n constructor(settings, redirectNavigator, popupNavigator, iframeNavigator) {\n this._logger = new Logger(\"UserManager\");\n this.settings = new UserManagerSettingsStore(settings);\n this._client = new OidcClient(settings);\n this._redirectNavigator = redirectNavigator != null ? redirectNavigator : new RedirectNavigator(this.settings);\n this._popupNavigator = popupNavigator != null ? popupNavigator : new PopupNavigator(this.settings);\n this._iframeNavigator = iframeNavigator != null ? iframeNavigator : new IFrameNavigator(this.settings);\n this._events = new UserManagerEvents(this.settings);\n this._silentRenewService = new SilentRenewService(this);\n if (this.settings.automaticSilentRenew) {\n this.startSilentRenew();\n }\n this._sessionMonitor = null;\n if (this.settings.monitorSession) {\n this._sessionMonitor = new SessionMonitor(this);\n }\n }\n /**\n * Get object used to register for events raised by the `UserManager`.\n */\n get events() {\n return this._events;\n }\n /**\n * Get object used to access the metadata configuration of the identity provider.\n */\n get metadataService() {\n return this._client.metadataService;\n }\n /**\n * Load the `User` object for the currently authenticated user.\n *\n * @returns A promise\n */\n async getUser() {\n const logger2 = this._logger.create(\"getUser\");\n const user = await this._loadUser();\n if (user) {\n logger2.info(\"user loaded\");\n await this._events.load(user, false);\n return user;\n }\n logger2.info(\"user not found in storage\");\n return null;\n }\n /**\n * Remove from any storage the currently authenticated user.\n *\n * @returns A promise\n */\n async removeUser() {\n const logger2 = this._logger.create(\"removeUser\");\n await this.storeUser(null);\n logger2.info(\"user removed from storage\");\n await this._events.unload();\n }\n /**\n * Trigger a redirect of the current window to the authorization endpoint.\n *\n * @returns A promise\n *\n * @throws `Error` In cases of wrong authentication.\n */\n async signinRedirect(args = {}) {\n var _a;\n this._logger.create(\"signinRedirect\");\n const {\n redirectMethod,\n ...requestArgs\n } = args;\n let dpopJkt;\n if ((_a = this.settings.dpop) == null ? void 0 : _a.bind_authorization_code) {\n dpopJkt = await this.generateDPoPJkt(this.settings.dpop);\n }\n const handle = await this._redirectNavigator.prepare({ redirectMethod });\n await this._signinStart({\n request_type: \"si:r\",\n dpopJkt,\n ...requestArgs\n }, handle);\n }\n /**\n * Process the response (callback) from the authorization endpoint.\n * It is recommended to use {@link UserManager.signinCallback} instead.\n *\n * @returns A promise containing the authenticated `User`.\n *\n * @see {@link UserManager.signinCallback}\n */\n async signinRedirectCallback(url = window.location.href) {\n const logger2 = this._logger.create(\"signinRedirectCallback\");\n const user = await this._signinEnd(url);\n if (user.profile && user.profile.sub) {\n logger2.info(\"success, signed in subject\", user.profile.sub);\n } else {\n logger2.info(\"no subject\");\n }\n return user;\n }\n /**\n * Trigger the signin with user/password.\n *\n * @returns A promise containing the authenticated `User`.\n * @throws {@link ErrorResponse} In cases of wrong authentication.\n */\n async signinResourceOwnerCredentials({\n username,\n password,\n skipUserInfo = false\n }) {\n const logger2 = this._logger.create(\"signinResourceOwnerCredential\");\n const signinResponse = await this._client.processResourceOwnerPasswordCredentials({\n username,\n password,\n skipUserInfo,\n extraTokenParams: this.settings.extraTokenParams\n });\n logger2.debug(\"got signin response\");\n const user = await this._buildUser(signinResponse);\n if (user.profile && user.profile.sub) {\n logger2.info(\"success, signed in subject\", user.profile.sub);\n } else {\n logger2.info(\"no subject\");\n }\n return user;\n }\n /**\n * Trigger a request (via a popup window) to the authorization endpoint.\n *\n * @returns A promise containing the authenticated `User`.\n * @throws `Error` In cases of wrong authentication.\n */\n async signinPopup(args = {}) {\n var _a;\n const logger2 = this._logger.create(\"signinPopup\");\n let dpopJkt;\n if ((_a = this.settings.dpop) == null ? void 0 : _a.bind_authorization_code) {\n dpopJkt = await this.generateDPoPJkt(this.settings.dpop);\n }\n const {\n popupWindowFeatures,\n popupWindowTarget,\n popupSignal,\n ...requestArgs\n } = args;\n const url = this.settings.popup_redirect_uri;\n if (!url) {\n logger2.throw(new Error(\"No popup_redirect_uri configured\"));\n }\n const handle = await this._popupNavigator.prepare({ popupWindowFeatures, popupWindowTarget, popupSignal });\n const user = await this._signin({\n request_type: \"si:p\",\n redirect_uri: url,\n display: \"popup\",\n dpopJkt,\n ...requestArgs\n }, handle);\n if (user) {\n if (user.profile && user.profile.sub) {\n logger2.info(\"success, signed in subject\", user.profile.sub);\n } else {\n logger2.info(\"no subject\");\n }\n }\n return user;\n }\n /**\n * Notify the opening window of response (callback) from the authorization endpoint.\n * It is recommended to use {@link UserManager.signinCallback} instead.\n *\n * @returns A promise\n *\n * @see {@link UserManager.signinCallback}\n */\n async signinPopupCallback(url = window.location.href, keepOpen = false) {\n const logger2 = this._logger.create(\"signinPopupCallback\");\n await this._popupNavigator.callback(url, { keepOpen });\n logger2.info(\"success\");\n }\n /**\n * Trigger a silent request (via refresh token or an iframe) to the authorization endpoint.\n *\n * @returns A promise that contains the authenticated `User`.\n */\n async signinSilent(args = {}) {\n var _a, _b;\n const logger2 = this._logger.create(\"signinSilent\");\n const {\n silentRequestTimeoutInSeconds,\n ...requestArgs\n } = args;\n let user = await this._loadUser();\n if (user == null ? void 0 : user.refresh_token) {\n logger2.debug(\"using refresh token\");\n const state = new RefreshState(user);\n return await this._useRefreshToken({\n state,\n redirect_uri: requestArgs.redirect_uri,\n resource: requestArgs.resource,\n extraTokenParams: requestArgs.extraTokenParams,\n timeoutInSeconds: silentRequestTimeoutInSeconds\n });\n }\n let dpopJkt;\n if ((_a = this.settings.dpop) == null ? void 0 : _a.bind_authorization_code) {\n dpopJkt = await this.generateDPoPJkt(this.settings.dpop);\n }\n const url = this.settings.silent_redirect_uri;\n if (!url) {\n logger2.throw(new Error(\"No silent_redirect_uri configured\"));\n }\n let verifySub;\n if (user && this.settings.validateSubOnSilentRenew) {\n logger2.debug(\"subject prior to silent renew:\", user.profile.sub);\n verifySub = user.profile.sub;\n }\n const handle = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds });\n user = await this._signin({\n request_type: \"si:s\",\n redirect_uri: url,\n prompt: \"none\",\n id_token_hint: this.settings.includeIdTokenInSilentRenew ? user == null ? void 0 : user.id_token : void 0,\n dpopJkt,\n ...requestArgs\n }, handle, verifySub);\n if (user) {\n if ((_b = user.profile) == null ? void 0 : _b.sub) {\n logger2.info(\"success, signed in subject\", user.profile.sub);\n } else {\n logger2.info(\"no subject\");\n }\n }\n return user;\n }\n async _useRefreshToken(args) {\n const response = await this._client.useRefreshToken({\n timeoutInSeconds: this.settings.silentRequestTimeoutInSeconds,\n ...args\n });\n const user = new User({ ...args.state, ...response });\n await this.storeUser(user);\n await this._events.load(user);\n return user;\n }\n /**\n *\n * Notify the parent window of response (callback) from the authorization endpoint.\n * It is recommended to use {@link UserManager.signinCallback} instead.\n *\n * @returns A promise\n *\n * @see {@link UserManager.signinCallback}\n */\n async signinSilentCallback(url = window.location.href) {\n const logger2 = this._logger.create(\"signinSilentCallback\");\n await this._iframeNavigator.callback(url);\n logger2.info(\"success\");\n }\n /**\n * Process any response (callback) from the authorization endpoint, by dispatching the request_type\n * and executing one of the following functions:\n * - {@link UserManager.signinRedirectCallback}\n * - {@link UserManager.signinPopupCallback}\n * - {@link UserManager.signinSilentCallback}\n *\n * @throws `Error` If request_type is unknown or signin cannot be processed.\n */\n async signinCallback(url = window.location.href) {\n const { state } = await this._client.readSigninResponseState(url);\n switch (state.request_type) {\n case \"si:r\":\n return await this.signinRedirectCallback(url);\n case \"si:p\":\n await this.signinPopupCallback(url);\n break;\n case \"si:s\":\n await this.signinSilentCallback(url);\n break;\n default:\n throw new Error(\"invalid response_type in state\");\n }\n return void 0;\n }\n /**\n * Process any response (callback) from the end session endpoint, by dispatching the request_type\n * and executing one of the following functions:\n * - {@link UserManager.signoutRedirectCallback}\n * - {@link UserManager.signoutPopupCallback}\n * - {@link UserManager.signoutSilentCallback}\n *\n * @throws `Error` If request_type is unknown or signout cannot be processed.\n */\n async signoutCallback(url = window.location.href, keepOpen = false) {\n const { state } = await this._client.readSignoutResponseState(url);\n if (!state) {\n return void 0;\n }\n switch (state.request_type) {\n case \"so:r\":\n return await this.signoutRedirectCallback(url);\n case \"so:p\":\n await this.signoutPopupCallback(url, keepOpen);\n break;\n case \"so:s\":\n await this.signoutSilentCallback(url);\n break;\n default:\n throw new Error(\"invalid response_type in state\");\n }\n return void 0;\n }\n /**\n * Query OP for user's current signin status.\n *\n * @returns A promise object with session_state and subject identifier.\n */\n async querySessionStatus(args = {}) {\n const logger2 = this._logger.create(\"querySessionStatus\");\n const {\n silentRequestTimeoutInSeconds,\n ...requestArgs\n } = args;\n const url = this.settings.silent_redirect_uri;\n if (!url) {\n logger2.throw(new Error(\"No silent_redirect_uri configured\"));\n }\n const user = await this._loadUser();\n const handle = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds });\n const navResponse = await this._signinStart({\n request_type: \"si:s\",\n // this acts like a signin silent\n redirect_uri: url,\n prompt: \"none\",\n id_token_hint: this.settings.includeIdTokenInSilentRenew ? user == null ? void 0 : user.id_token : void 0,\n response_type: this.settings.query_status_response_type,\n scope: \"openid\",\n skipUserInfo: true,\n ...requestArgs\n }, handle);\n try {\n const extraHeaders = {};\n const signinResponse = await this._client.processSigninResponse(navResponse.url, extraHeaders);\n logger2.debug(\"got signin response\");\n if (signinResponse.session_state && signinResponse.profile.sub) {\n logger2.info(\"success for subject\", signinResponse.profile.sub);\n return {\n session_state: signinResponse.session_state,\n sub: signinResponse.profile.sub\n };\n }\n logger2.info(\"success, user not authenticated\");\n return null;\n } catch (err) {\n if (this.settings.monitorAnonymousSession && err instanceof ErrorResponse) {\n switch (err.error) {\n case \"login_required\":\n case \"consent_required\":\n case \"interaction_required\":\n case \"account_selection_required\":\n logger2.info(\"success for anonymous user\");\n return {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n session_state: err.session_state\n };\n }\n }\n throw err;\n }\n }\n async _signin(args, handle, verifySub) {\n const navResponse = await this._signinStart(args, handle);\n return await this._signinEnd(navResponse.url, verifySub);\n }\n async _signinStart(args, handle) {\n const logger2 = this._logger.create(\"_signinStart\");\n try {\n const signinRequest = await this._client.createSigninRequest(args);\n logger2.debug(\"got signin request\");\n return await handle.navigate({\n url: signinRequest.url,\n state: signinRequest.state.id,\n response_mode: signinRequest.state.response_mode,\n scriptOrigin: this.settings.iframeScriptOrigin\n });\n } catch (err) {\n logger2.debug(\"error after preparing navigator, closing navigator window\");\n handle.close();\n throw err;\n }\n }\n async _signinEnd(url, verifySub) {\n const logger2 = this._logger.create(\"_signinEnd\");\n const extraHeaders = {};\n const signinResponse = await this._client.processSigninResponse(url, extraHeaders);\n logger2.debug(\"got signin response\");\n const user = await this._buildUser(signinResponse, verifySub);\n return user;\n }\n async _buildUser(signinResponse, verifySub) {\n const logger2 = this._logger.create(\"_buildUser\");\n const user = new User(signinResponse);\n if (verifySub) {\n if (verifySub !== user.profile.sub) {\n logger2.debug(\"current user does not match user returned from signin. sub from signin:\", user.profile.sub);\n throw new ErrorResponse({ ...signinResponse, error: \"login_required\" });\n }\n logger2.debug(\"current user matches user returned from signin\");\n }\n await this.storeUser(user);\n logger2.debug(\"user stored\");\n await this._events.load(user);\n return user;\n }\n /**\n * Trigger a redirect of the current window to the end session endpoint.\n *\n * @returns A promise\n */\n async signoutRedirect(args = {}) {\n const logger2 = this._logger.create(\"signoutRedirect\");\n const {\n redirectMethod,\n ...requestArgs\n } = args;\n const handle = await this._redirectNavigator.prepare({ redirectMethod });\n await this._signoutStart({\n request_type: \"so:r\",\n post_logout_redirect_uri: this.settings.post_logout_redirect_uri,\n ...requestArgs\n }, handle);\n logger2.info(\"success\");\n }\n /**\n * Process response (callback) from the end session endpoint.\n * It is recommended to use {@link UserManager.signoutCallback} instead.\n *\n * @returns A promise containing signout response\n *\n * @see {@link UserManager.signoutCallback}\n */\n async signoutRedirectCallback(url = window.location.href) {\n const logger2 = this._logger.create(\"signoutRedirectCallback\");\n const response = await this._signoutEnd(url);\n logger2.info(\"success\");\n return response;\n }\n /**\n * Trigger a redirect of a popup window to the end session endpoint.\n *\n * @returns A promise\n */\n async signoutPopup(args = {}) {\n const logger2 = this._logger.create(\"signoutPopup\");\n const {\n popupWindowFeatures,\n popupWindowTarget,\n popupSignal,\n ...requestArgs\n } = args;\n const url = this.settings.popup_post_logout_redirect_uri;\n const handle = await this._popupNavigator.prepare({ popupWindowFeatures, popupWindowTarget, popupSignal });\n await this._signout({\n request_type: \"so:p\",\n post_logout_redirect_uri: url,\n // we're putting a dummy entry in here because we\n // need a unique id from the state for notification\n // to the parent window, which is necessary if we\n // plan to return back to the client after signout\n // and so we can close the popup after signout\n state: url == null ? void 0 : {},\n ...requestArgs\n }, handle);\n logger2.info(\"success\");\n }\n /**\n * Process response (callback) from the end session endpoint from a popup window.\n * It is recommended to use {@link UserManager.signoutCallback} instead.\n *\n * @returns A promise\n *\n * @see {@link UserManager.signoutCallback}\n */\n async signoutPopupCallback(url = window.location.href, keepOpen = false) {\n const logger2 = this._logger.create(\"signoutPopupCallback\");\n await this._popupNavigator.callback(url, { keepOpen });\n logger2.info(\"success\");\n }\n async _signout(args, handle) {\n const navResponse = await this._signoutStart(args, handle);\n return await this._signoutEnd(navResponse.url);\n }\n async _signoutStart(args = {}, handle) {\n var _a;\n const logger2 = this._logger.create(\"_signoutStart\");\n try {\n const user = await this._loadUser();\n logger2.debug(\"loaded current user from storage\");\n if (this.settings.revokeTokensOnSignout) {\n await this._revokeInternal(user);\n }\n const id_token = args.id_token_hint || user && user.id_token;\n if (id_token) {\n logger2.debug(\"setting id_token_hint in signout request\");\n args.id_token_hint = id_token;\n }\n await this.removeUser();\n logger2.debug(\"user removed, creating signout request\");\n const signoutRequest = await this._client.createSignoutRequest(args);\n logger2.debug(\"got signout request\");\n return await handle.navigate({\n url: signoutRequest.url,\n state: (_a = signoutRequest.state) == null ? void 0 : _a.id,\n scriptOrigin: this.settings.iframeScriptOrigin\n });\n } catch (err) {\n logger2.debug(\"error after preparing navigator, closing navigator window\");\n handle.close();\n throw err;\n }\n }\n async _signoutEnd(url) {\n const logger2 = this._logger.create(\"_signoutEnd\");\n const signoutResponse = await this._client.processSignoutResponse(url);\n logger2.debug(\"got signout response\");\n return signoutResponse;\n }\n /**\n * Trigger a silent request (via an iframe) to the end session endpoint.\n *\n * @returns A promise\n */\n async signoutSilent(args = {}) {\n var _a;\n const logger2 = this._logger.create(\"signoutSilent\");\n const {\n silentRequestTimeoutInSeconds,\n ...requestArgs\n } = args;\n const id_token_hint = this.settings.includeIdTokenInSilentSignout ? (_a = await this._loadUser()) == null ? void 0 : _a.id_token : void 0;\n const url = this.settings.popup_post_logout_redirect_uri;\n const handle = await this._iframeNavigator.prepare({ silentRequestTimeoutInSeconds });\n await this._signout({\n request_type: \"so:s\",\n post_logout_redirect_uri: url,\n id_token_hint,\n ...requestArgs\n }, handle);\n logger2.info(\"success\");\n }\n /**\n * Notify the parent window of response (callback) from the end session endpoint.\n * It is recommended to use {@link UserManager.signoutCallback} instead.\n *\n * @returns A promise\n *\n * @see {@link UserManager.signoutCallback}\n */\n async signoutSilentCallback(url = window.location.href) {\n const logger2 = this._logger.create(\"signoutSilentCallback\");\n await this._iframeNavigator.callback(url);\n logger2.info(\"success\");\n }\n async revokeTokens(types) {\n const user = await this._loadUser();\n await this._revokeInternal(user, types);\n }\n async _revokeInternal(user, types = this.settings.revokeTokenTypes) {\n const logger2 = this._logger.create(\"_revokeInternal\");\n if (!user) return;\n const typesPresent = types.filter((type) => typeof user[type] === \"string\");\n if (!typesPresent.length) {\n logger2.debug(\"no need to revoke due to no token(s)\");\n return;\n }\n for (const type of typesPresent) {\n await this._client.revokeToken(\n user[type],\n // eslint-disable-line @typescript-eslint/no-non-null-assertion\n type\n );\n logger2.info(`${type} revoked successfully`);\n if (type !== \"access_token\") {\n user[type] = null;\n }\n }\n await this.storeUser(user);\n logger2.debug(\"user stored\");\n await this._events.load(user);\n }\n /**\n * Enables silent renew for the `UserManager`.\n */\n startSilentRenew() {\n this._logger.create(\"startSilentRenew\");\n void this._silentRenewService.start();\n }\n /**\n * Disables silent renew for the `UserManager`.\n */\n stopSilentRenew() {\n this._silentRenewService.stop();\n }\n get _userStoreKey() {\n return `user:${this.settings.authority}:${this.settings.client_id}`;\n }\n async _loadUser() {\n const logger2 = this._logger.create(\"_loadUser\");\n const storageString = await this.settings.userStore.get(this._userStoreKey);\n if (storageString) {\n logger2.debug(\"user storageString loaded\");\n return User.fromStorageString(storageString);\n }\n logger2.debug(\"no user storageString\");\n return null;\n }\n async storeUser(user) {\n const logger2 = this._logger.create(\"storeUser\");\n if (user) {\n logger2.debug(\"storing user\");\n const storageString = user.toStorageString();\n await this.settings.userStore.set(this._userStoreKey, storageString);\n } else {\n this._logger.debug(\"removing user\");\n await this.settings.userStore.remove(this._userStoreKey);\n if (this.settings.dpop) {\n await this.settings.dpop.store.remove(this.settings.client_id);\n }\n }\n }\n /**\n * Removes stale state entries in storage for incomplete authorize requests.\n */\n async clearStaleState() {\n await this._client.clearStaleState();\n }\n /**\n * Dynamically generates a DPoP proof for a given user, URL and optional Http method.\n * This method is useful when you need to make a request to a resource server\n * with fetch or similar, and you need to include a DPoP proof in a DPoP header.\n * @param url - The URL to generate the DPoP proof for\n * @param user - The user to generate the DPoP proof for\n * @param httpMethod - Optional, defaults to \"GET\"\n * @param nonce - Optional nonce provided by the resource server\n *\n * @returns A promise containing the DPoP proof or undefined if DPoP is not enabled/no user is found.\n */\n async dpopProof(url, user, httpMethod, nonce) {\n var _a, _b;\n const dpopState = await ((_b = (_a = this.settings.dpop) == null ? void 0 : _a.store) == null ? void 0 : _b.get(this.settings.client_id));\n if (dpopState) {\n return await CryptoUtils.generateDPoPProof({\n url,\n accessToken: user == null ? void 0 : user.access_token,\n httpMethod,\n keyPair: dpopState.keys,\n nonce\n });\n }\n return void 0;\n }\n async generateDPoPJkt(dpopSettings) {\n let dpopState = await dpopSettings.store.get(this.settings.client_id);\n if (!dpopState) {\n const dpopKeys = await CryptoUtils.generateDPoPKeys();\n dpopState = new DPoPState(dpopKeys);\n await dpopSettings.store.set(this.settings.client_id, dpopState);\n }\n return await CryptoUtils.generateDPoPJkt(dpopState.keys);\n }\n};\n\n// package.json\nvar version = \"3.1.0\";\n\n// src/Version.ts\nvar Version = version;\n\n// src/IndexedDbDPoPStore.ts\nvar IndexedDbDPoPStore = class {\n constructor() {\n this._dbName = \"oidc\";\n this._storeName = \"dpop\";\n }\n async set(key, value) {\n const store = await this.createStore(this._dbName, this._storeName);\n await store(\"readwrite\", (str) => {\n str.put(value, key);\n return this.promisifyRequest(str.transaction);\n });\n }\n async get(key) {\n const store = await this.createStore(this._dbName, this._storeName);\n return await store(\"readonly\", (str) => {\n return this.promisifyRequest(str.get(key));\n });\n }\n async remove(key) {\n const item = await this.get(key);\n const store = await this.createStore(this._dbName, this._storeName);\n await store(\"readwrite\", (str) => {\n return this.promisifyRequest(str.delete(key));\n });\n return item;\n }\n async getAllKeys() {\n const store = await this.createStore(this._dbName, this._storeName);\n return await store(\"readonly\", (str) => {\n return this.promisifyRequest(str.getAllKeys());\n });\n }\n promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n request.onabort = request.onerror = () => reject(request.error);\n });\n }\n async createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const db = await this.promisifyRequest(request);\n return async (txMode, callback) => {\n const tx = db.transaction(storeName, txMode);\n const store = tx.objectStore(storeName);\n return await callback(store);\n };\n }\n};\nexport {\n AccessTokenEvents,\n CheckSessionIFrame,\n DPoPState,\n ErrorResponse,\n ErrorTimeout,\n InMemoryWebStorage,\n IndexedDbDPoPStore,\n Log,\n Logger,\n MetadataService,\n OidcClient,\n OidcClientSettingsStore,\n SessionMonitor,\n SigninResponse,\n SigninState,\n SignoutResponse,\n State,\n User,\n UserManager,\n UserManagerSettingsStore,\n Version,\n WebStorageStateStore\n};\n//# sourceMappingURL=oidc-client-ts.js.map\n","function filePathToFileName(fileUrl) {\n var origin = window.location.origin || window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n\n if (fileUrl.indexOf(origin) > -1) {\n fileUrl = fileUrl.replace(origin + '/', '');\n }\n\n return fileUrl;\n}\n\nfunction cleanFilePath(filePath) {\n if (filePath === void 0) {\n filePath = '';\n }\n\n if (filePath === '') {\n filePath = '';\n }\n\n return filePath;\n}\n\nfunction isFileInline(fileUrl) {\n if (fileUrl) {\n return window.location.href.indexOf(fileUrl) === 0;\n }\n\n return false;\n}\n\nfunction normalizeStackFrames(stackFrames) {\n return stackFrames.map(function (frame) {\n if (frame.functionName) {\n frame.functionName = normalizeFunctionName(frame.functionName);\n }\n\n return frame;\n });\n}\n\nfunction normalizeFunctionName(fnName) {\n var parts = fnName.split('/');\n\n if (parts.length > 1) {\n fnName = ['Object', parts[parts.length - 1]].join('.');\n } else {\n fnName = parts[0];\n }\n\n fnName = fnName.replace(/.<$/gi, '.');\n fnName = fnName.replace(/^Anonymous function$/, '');\n parts = fnName.split('.');\n\n if (parts.length > 1) {\n fnName = parts[parts.length - 1];\n } else {\n fnName = parts[0];\n }\n\n return fnName;\n}\n\nfunction isValidStackTrace(stackTraces) {\n if (stackTraces.length === 0) {\n return false;\n }\n\n if (stackTraces.length === 1) {\n var stackTrace = stackTraces[0];\n return 'lineNumber' in stackTrace;\n }\n\n return true;\n}\n\nexport function createStackTraces(stackParser, errorEvent) {\n var error = errorEvent.error,\n filename = errorEvent.filename,\n lineno = errorEvent.lineno,\n colno = errorEvent.colno;\n var stackTraces = [];\n\n if (error) {\n try {\n stackTraces = stackParser.parse(error);\n } catch (e) {}\n }\n\n if (!isValidStackTrace(stackTraces)) {\n stackTraces = [{\n fileName: filename,\n lineNumber: lineno,\n columnNumber: colno\n }];\n }\n\n var normalizedStackTraces = normalizeStackFrames(stackTraces);\n return normalizedStackTraces.map(function (stack) {\n var fileName = stack.fileName,\n lineNumber = stack.lineNumber,\n columnNumber = stack.columnNumber,\n _stack$functionName = stack.functionName,\n functionName = _stack$functionName === void 0 ? '' : _stack$functionName;\n\n if (!fileName && !lineNumber) {\n return {};\n }\n\n if (!columnNumber && !lineNumber) {\n return {};\n }\n\n var filePath = cleanFilePath(fileName);\n var cleanedFileName = filePathToFileName(filePath);\n\n if (isFileInline(filePath)) {\n cleanedFileName = '(inline script)';\n }\n\n return {\n abs_path: fileName,\n filename: cleanedFileName,\n function: functionName,\n lineno: lineNumber,\n colno: columnNumber\n };\n });\n}\nexport function filterInvalidFrames(frames) {\n return frames.filter(function (_ref) {\n var filename = _ref.filename,\n lineno = _ref.lineno;\n return typeof filename !== 'undefined' && typeof lineno !== 'undefined';\n });\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","/**\n * @constructor\n */\nfunction AggregateError(errors, message) {\n (this.name = 'AggregateError'), (this.errors = errors);\n this.message = message || '';\n}\nAggregateError.prototype = Error.prototype;\n\nfunction any(arr) {\n var P = this;\n return new P(function(resolve, reject) {\n if (!(arr && typeof arr.length !== 'undefined')) {\n return reject(new TypeError('Promise.any accepts an array'));\n }\n\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return reject();\n\n var rejectionReasons = [];\n for (var i = 0; i < args.length; i++) {\n try {\n P.resolve(args[i])\n .then(resolve)\n .catch(function(error) {\n rejectionReasons.push(error);\n if (rejectionReasons.length === args.length) {\n reject(\n new AggregateError(\n rejectionReasons,\n 'All promises were rejected'\n )\n );\n }\n });\n } catch (ex) {\n reject(ex);\n }\n }\n });\n}\n\nexport default any;\n","import promiseFinally from './finally';\nimport allSettled from './allSettled';\nimport any from './any';\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} */\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.any = any;\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 PromisePollyfill from 'promise-polyfill';\nimport { isBrowser } from './utils';\nvar local = {};\n\nif (isBrowser) {\n local = window;\n} else if (typeof self !== 'undefined') {\n local = self;\n}\n\nvar Promise = 'Promise' in local ? local.Promise : PromisePollyfill;\nexport { Promise };","import { Promise } from './polyfills';\nvar slice = [].slice;\nvar isBrowser = typeof window !== 'undefined';\nvar PERF = isBrowser && typeof performance !== 'undefined' ? performance : {};\n\nfunction isCORSSupported() {\n var xhr = new window.XMLHttpRequest();\n return 'withCredentials' in xhr;\n}\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToHex(buffer) {\n var hexOctets = [];\n\n for (var _i = 0; _i < buffer.length; _i++) {\n hexOctets.push(byteToHex[buffer[_i]]);\n }\n\n return hexOctets.join('');\n}\n\nvar destination = new Uint8Array(16);\n\nfunction rng() {\n if (typeof crypto != 'undefined' && typeof crypto.getRandomValues == 'function') {\n return crypto.getRandomValues(destination);\n } else if (typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function') {\n return msCrypto.getRandomValues(destination);\n }\n\n return destination;\n}\n\nfunction generateRandomId(length) {\n var id = bytesToHex(rng());\n return id.substr(0, length);\n}\n\nfunction getDtHeaderValue(span) {\n var dtVersion = '00';\n var dtUnSampledFlags = '00';\n var dtSampledFlags = '01';\n\n if (span && span.traceId && span.id && span.parentId) {\n var flags = span.sampled ? dtSampledFlags : dtUnSampledFlags;\n var id = span.sampled ? span.id : span.parentId;\n return dtVersion + '-' + span.traceId + '-' + id + '-' + flags;\n }\n}\n\nfunction parseDtHeaderValue(value) {\n var parsed = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})$/.exec(value);\n\n if (parsed) {\n var flags = parsed[4];\n var sampled = flags !== '00';\n return {\n traceId: parsed[2],\n id: parsed[3],\n sampled: sampled\n };\n }\n}\n\nfunction isDtHeaderValid(header) {\n return /^[\\da-f]{2}-[\\da-f]{32}-[\\da-f]{16}-[\\da-f]{2}$/.test(header) && header.slice(3, 35) !== '00000000000000000000000000000000' && header.slice(36, 52) !== '0000000000000000';\n}\n\nfunction getTSHeaderValue(_ref) {\n var sampleRate = _ref.sampleRate;\n\n if (typeof sampleRate !== 'number' || String(sampleRate).length > 256) {\n return;\n }\n\n var NAMESPACE = 'es';\n var SEPARATOR = '=';\n return \"\" + NAMESPACE + SEPARATOR + \"s:\" + sampleRate;\n}\n\nfunction setRequestHeader(target, name, value) {\n if (typeof target.setRequestHeader === 'function') {\n target.setRequestHeader(name, value);\n } else if (target.headers && typeof target.headers.append === 'function') {\n target.headers.append(name, value);\n } else {\n target[name] = value;\n }\n}\n\nfunction checkSameOrigin(source, target) {\n var isSame = false;\n\n if (typeof target === 'string') {\n isSame = source === target;\n } else if (target && typeof target.test === 'function') {\n isSame = target.test(source);\n } else if (Array.isArray(target)) {\n target.forEach(function (t) {\n if (!isSame) {\n isSame = checkSameOrigin(source, t);\n }\n });\n }\n\n return isSame;\n}\n\nfunction isPlatformSupported() {\n return isBrowser && typeof Set === 'function' && typeof JSON.stringify === 'function' && PERF && typeof PERF.now === 'function' && isCORSSupported();\n}\n\nfunction setLabel(key, value, obj) {\n if (!obj || !key) return;\n var skey = removeInvalidChars(key);\n var valueType = typeof value;\n\n if (value != undefined && valueType !== 'boolean' && valueType !== 'number') {\n value = String(value);\n }\n\n obj[skey] = value;\n return obj;\n}\n\nfunction getServerTimingInfo(serverTimingEntries) {\n if (serverTimingEntries === void 0) {\n serverTimingEntries = [];\n }\n\n var serverTimingInfo = [];\n var entrySeparator = ', ';\n var valueSeparator = ';';\n\n for (var _i2 = 0; _i2 < serverTimingEntries.length; _i2++) {\n var _serverTimingEntries$ = serverTimingEntries[_i2],\n name = _serverTimingEntries$.name,\n duration = _serverTimingEntries$.duration,\n description = _serverTimingEntries$.description;\n var timingValue = name;\n\n if (description) {\n timingValue += valueSeparator + 'desc=' + description;\n }\n\n if (duration) {\n timingValue += valueSeparator + 'dur=' + duration;\n }\n\n serverTimingInfo.push(timingValue);\n }\n\n return serverTimingInfo.join(entrySeparator);\n}\n\nfunction getTimeOrigin() {\n return PERF.timing.fetchStart;\n}\n\nfunction stripQueryStringFromUrl(url) {\n return url && url.split('?')[0];\n}\n\nfunction isObject(value) {\n return value !== null && typeof value === 'object';\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction baseExtend(dst, objs, deep) {\n for (var i = 0, ii = objs.length; i < ii; ++i) {\n var obj = objs[i];\n if (!isObject(obj) && !isFunction(obj)) continue;\n var keys = Object.keys(obj);\n\n for (var j = 0, jj = keys.length; j < jj; j++) {\n var key = keys[j];\n var src = obj[key];\n\n if (deep && isObject(src)) {\n if (!isObject(dst[key])) dst[key] = Array.isArray(src) ? [] : {};\n baseExtend(dst[key], [src], false);\n } else {\n dst[key] = src;\n }\n }\n }\n\n return dst;\n}\n\nfunction getElasticScript() {\n if (typeof document !== 'undefined') {\n var scripts = document.getElementsByTagName('script');\n\n for (var i = 0, l = scripts.length; i < l; i++) {\n var sc = scripts[i];\n\n if (sc.src.indexOf('elastic') > 0) {\n return sc;\n }\n }\n }\n}\n\nfunction getCurrentScript() {\n if (typeof document !== 'undefined') {\n var currentScript = document.currentScript;\n\n if (!currentScript) {\n return getElasticScript();\n }\n\n return currentScript;\n }\n}\n\nfunction extend(dst) {\n return baseExtend(dst, slice.call(arguments, 1), false);\n}\n\nfunction merge(dst) {\n return baseExtend(dst, slice.call(arguments, 1), true);\n}\n\nfunction isUndefined(obj) {\n return typeof obj === 'undefined';\n}\n\nfunction noop() {}\n\nfunction find(array, predicate, thisArg) {\n if (array == null) {\n throw new TypeError('array is null or not defined');\n }\n\n var o = Object(array);\n var len = o.length >>> 0;\n\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n\n var k = 0;\n\n while (k < len) {\n var kValue = o[k];\n\n if (predicate.call(thisArg, kValue, k, o)) {\n return kValue;\n }\n\n k++;\n }\n\n return undefined;\n}\n\nfunction removeInvalidChars(key) {\n return key.replace(/[.*\"]/g, '_');\n}\n\nfunction getLatestSpan(spans, typeFilter) {\n var latestSpan = null;\n\n for (var _i3 = 0; _i3 < spans.length; _i3++) {\n var span = spans[_i3];\n\n if (typeFilter && typeFilter(span.type) && (!latestSpan || latestSpan._end < span._end)) {\n latestSpan = span;\n }\n }\n\n return latestSpan;\n}\n\nfunction getLatestNonXHRSpan(spans) {\n return getLatestSpan(spans, function (type) {\n return String(type).indexOf('external') === -1;\n });\n}\n\nfunction getLatestXHRSpan(spans) {\n return getLatestSpan(spans, function (type) {\n return String(type).indexOf('external') !== -1;\n });\n}\n\nfunction getEarliestSpan(spans) {\n var earliestSpan = spans[0];\n\n for (var _i4 = 1; _i4 < spans.length; _i4++) {\n var span = spans[_i4];\n\n if (earliestSpan._start > span._start) {\n earliestSpan = span;\n }\n }\n\n return earliestSpan;\n}\n\nfunction now() {\n return PERF.now();\n}\n\nfunction getTime(time) {\n return typeof time === 'number' && time >= 0 ? time : now();\n}\n\nfunction getDuration(start, end) {\n if (isUndefined(end) || isUndefined(start)) {\n return null;\n }\n\n return parseInt(end - start);\n}\n\nfunction scheduleMacroTask(callback) {\n setTimeout(callback, 0);\n}\n\nfunction scheduleMicroTask(callback) {\n Promise.resolve().then(callback);\n}\n\nfunction isPerfTimelineSupported() {\n return typeof PERF.getEntriesByType === 'function';\n}\n\nfunction isPerfTypeSupported(type) {\n return typeof PerformanceObserver !== 'undefined' && PerformanceObserver.supportedEntryTypes && PerformanceObserver.supportedEntryTypes.indexOf(type) >= 0;\n}\n\nfunction isPerfInteractionCountSupported() {\n return 'interactionCount' in performance;\n}\n\nfunction isBeaconInspectionEnabled() {\n var flagName = '_elastic_inspect_beacon_';\n\n if (sessionStorage.getItem(flagName) != null) {\n return true;\n }\n\n if (!window.URL || !window.URLSearchParams) {\n return false;\n }\n\n try {\n var parsedUrl = new URL(window.location.href);\n var isFlagSet = parsedUrl.searchParams.has(flagName);\n\n if (isFlagSet) {\n sessionStorage.setItem(flagName, true);\n }\n\n return isFlagSet;\n } catch (e) {}\n\n return false;\n}\n\nfunction isRedirectInfoAvailable(timing) {\n return timing.redirectStart > 0;\n}\n\nexport { extend, merge, isUndefined, noop, baseExtend, bytesToHex, isCORSSupported, isObject, isFunction, isPlatformSupported, isDtHeaderValid, parseDtHeaderValue, getServerTimingInfo, getDtHeaderValue, getTSHeaderValue, getCurrentScript, getElasticScript, getTimeOrigin, generateRandomId, getEarliestSpan, getLatestNonXHRSpan, getLatestXHRSpan, getDuration, getTime, now, rng, checkSameOrigin, scheduleMacroTask, scheduleMicroTask, setLabel, setRequestHeader, stripQueryStringFromUrl, find, removeInvalidChars, PERF, isPerfTimelineSupported, isBrowser, isPerfTypeSupported, isPerfInteractionCountSupported, isBeaconInspectionEnabled, isRedirectInfoAvailable };","import { isBrowser } from './utils';\n\nfunction isDefaultPort(port, protocol) {\n switch (protocol) {\n case 'http:':\n return port === '80';\n\n case 'https:':\n return port === '443';\n }\n\n return true;\n}\n\nvar RULES = [['#', 'hash'], ['?', 'query'], ['/', 'path'], ['@', 'auth', 1], [NaN, 'host', undefined, 1]];\nvar PROTOCOL_REGEX = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\S\\s]*)/i;\nexport var Url = function () {\n function Url(url) {\n var _this$extractProtocol = this.extractProtocol(url || ''),\n protocol = _this$extractProtocol.protocol,\n address = _this$extractProtocol.address,\n slashes = _this$extractProtocol.slashes;\n\n var relative = !protocol && !slashes;\n var location = this.getLocation();\n var instructions = RULES.slice();\n address = address.replace('\\\\', '/');\n\n if (!slashes) {\n instructions[2] = [NaN, 'path'];\n }\n\n var index;\n\n for (var i = 0; i < instructions.length; i++) {\n var instruction = instructions[i];\n var parse = instruction[0];\n var key = instruction[1];\n\n if (typeof parse === 'string') {\n index = address.indexOf(parse);\n\n if (~index) {\n var instLength = instruction[2];\n\n if (instLength) {\n var newIndex = address.lastIndexOf(parse);\n index = Math.max(index, newIndex);\n this[key] = address.slice(0, index);\n address = address.slice(index + instLength);\n } else {\n this[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else {\n this[key] = address;\n address = '';\n }\n\n this[key] = this[key] || (relative && instruction[3] ? location[key] || '' : '');\n if (instruction[3]) this[key] = this[key].toLowerCase();\n }\n\n if (relative && this.path.charAt(0) !== '/') {\n this.path = '/' + this.path;\n }\n\n this.relative = relative;\n this.protocol = protocol || location.protocol;\n this.hostname = this.host;\n this.port = '';\n\n if (/:\\d+$/.test(this.host)) {\n var value = this.host.split(':');\n var port = value.pop();\n var hostname = value.join(':');\n\n if (isDefaultPort(port, this.protocol)) {\n this.host = hostname;\n } else {\n this.port = port;\n }\n\n this.hostname = hostname;\n }\n\n this.origin = this.protocol && this.host && this.protocol !== 'file:' ? this.protocol + '//' + this.host : 'null';\n this.href = this.toString();\n }\n\n var _proto = Url.prototype;\n\n _proto.toString = function toString() {\n var result = this.protocol;\n result += '//';\n\n if (this.auth) {\n var REDACTED = '[REDACTED]';\n var userpass = this.auth.split(':');\n var username = userpass[0] ? REDACTED : '';\n var password = userpass[1] ? ':' + REDACTED : '';\n result += username + password + '@';\n }\n\n result += this.host;\n result += this.path;\n result += this.query;\n result += this.hash;\n return result;\n };\n\n _proto.getLocation = function getLocation() {\n var globalVar = {};\n\n if (isBrowser) {\n globalVar = window;\n }\n\n return globalVar.location;\n };\n\n _proto.extractProtocol = function extractProtocol(url) {\n var match = PROTOCOL_REGEX.exec(url);\n return {\n protocol: match[1] ? match[1].toLowerCase() : '',\n slashes: !!match[2],\n address: match[3]\n };\n };\n\n return Url;\n}();\nexport function slugifyUrl(urlStr, depth) {\n if (depth === void 0) {\n depth = 2;\n }\n\n var parsedUrl = new Url(urlStr);\n var query = parsedUrl.query,\n path = parsedUrl.path;\n var pathParts = path.substring(1).split('/');\n var redactString = ':id';\n var wildcard = '*';\n var specialCharsRegex = /\\W|_/g;\n var digitsRegex = /[0-9]/g;\n var lowerCaseRegex = /[a-z]/g;\n var upperCaseRegex = /[A-Z]/g;\n var redactedParts = [];\n var redactedBefore = false;\n\n for (var index = 0; index < pathParts.length; index++) {\n var part = pathParts[index];\n\n if (redactedBefore || index > depth - 1) {\n if (part) {\n redactedParts.push(wildcard);\n }\n\n break;\n }\n\n var numberOfSpecialChars = (part.match(specialCharsRegex) || []).length;\n\n if (numberOfSpecialChars >= 2) {\n redactedParts.push(redactString);\n redactedBefore = true;\n continue;\n }\n\n var numberOfDigits = (part.match(digitsRegex) || []).length;\n\n if (numberOfDigits > 3 || part.length > 3 && numberOfDigits / part.length >= 0.3) {\n redactedParts.push(redactString);\n redactedBefore = true;\n continue;\n }\n\n var numberofUpperCase = (part.match(upperCaseRegex) || []).length;\n var numberofLowerCase = (part.match(lowerCaseRegex) || []).length;\n var lowerCaseRate = numberofLowerCase / part.length;\n var upperCaseRate = numberofUpperCase / part.length;\n\n if (part.length > 5 && (upperCaseRate > 0.3 && upperCaseRate < 0.6 || lowerCaseRate > 0.3 && lowerCaseRate < 0.6)) {\n redactedParts.push(redactString);\n redactedBefore = true;\n continue;\n }\n\n part && redactedParts.push(part);\n }\n\n var redacted = '/' + (redactedParts.length >= 2 ? redactedParts.join('/') : redactedParts.join('')) + (query ? '?{query}' : '');\n return redacted;\n}","var SCHEDULE = 'schedule';\nvar INVOKE = 'invoke';\nvar ADD_EVENT_LISTENER_STR = 'addEventListener';\nvar REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\nvar RESOURCE_INITIATOR_TYPES = ['link', 'css', 'script', 'img', 'xmlhttprequest', 'fetch', 'beacon', 'iframe'];\nvar REUSABILITY_THRESHOLD = 5000;\nvar MAX_SPAN_DURATION = 5 * 60 * 1000;\nvar PAGE_LOAD_DELAY = 1000;\nvar PAGE_LOAD = 'page-load';\nvar ROUTE_CHANGE = 'route-change';\nvar TYPE_CUSTOM = 'custom';\nvar USER_INTERACTION = 'user-interaction';\nvar HTTP_REQUEST_TYPE = 'http-request';\nvar TEMPORARY_TYPE = 'temporary';\nvar NAME_UNKNOWN = 'Unknown';\nvar PAGE_EXIT = 'page-exit';\nvar TRANSACTION_TYPE_ORDER = [PAGE_LOAD, ROUTE_CHANGE, USER_INTERACTION, HTTP_REQUEST_TYPE, TYPE_CUSTOM, TEMPORARY_TYPE];\nvar OUTCOME_SUCCESS = 'success';\nvar OUTCOME_FAILURE = 'failure';\nvar OUTCOME_UNKNOWN = 'unknown';\nvar USER_TIMING_THRESHOLD = 60;\nvar TRANSACTION_START = 'transaction:start';\nvar TRANSACTION_END = 'transaction:end';\nvar CONFIG_CHANGE = 'config:change';\nvar QUEUE_FLUSH = 'queue:flush';\nvar QUEUE_ADD_TRANSACTION = 'queue:add_transaction';\nvar TRANSACTION_IGNORE = 'transaction:ignore';\nvar XMLHTTPREQUEST = 'xmlhttprequest';\nvar FETCH = 'fetch';\nvar HISTORY = 'history';\nvar EVENT_TARGET = 'eventtarget';\nvar CLICK = 'click';\nvar ERROR = 'error';\nvar BEFORE_EVENT = ':before';\nvar AFTER_EVENT = ':after';\nvar LOCAL_CONFIG_KEY = 'elastic_apm_config';\nvar LONG_TASK = 'longtask';\nvar PAINT = 'paint';\nvar MEASURE = 'measure';\nvar NAVIGATION = 'navigation';\nvar RESOURCE = 'resource';\nvar FIRST_CONTENTFUL_PAINT = 'first-contentful-paint';\nvar LARGEST_CONTENTFUL_PAINT = 'largest-contentful-paint';\nvar FIRST_INPUT = 'first-input';\nvar LAYOUT_SHIFT = 'layout-shift';\nvar EVENT = 'event';\nvar ERRORS = 'errors';\nvar TRANSACTIONS = 'transactions';\nvar CONFIG_SERVICE = 'ConfigService';\nvar LOGGING_SERVICE = 'LoggingService';\nvar TRANSACTION_SERVICE = 'TransactionService';\nvar APM_SERVER = 'ApmServer';\nvar PERFORMANCE_MONITORING = 'PerformanceMonitoring';\nvar ERROR_LOGGING = 'ErrorLogging';\nvar TRUNCATED_TYPE = '.truncated';\nvar KEYWORD_LIMIT = 1024;\nvar SESSION_TIMEOUT = 30 * 60000;\nvar HTTP_REQUEST_TIMEOUT = 10000;\nexport { SCHEDULE, INVOKE, ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, RESOURCE_INITIATOR_TYPES, REUSABILITY_THRESHOLD, MAX_SPAN_DURATION, PAGE_LOAD_DELAY, PAGE_LOAD, ROUTE_CHANGE, NAME_UNKNOWN, PAGE_EXIT, TYPE_CUSTOM, USER_TIMING_THRESHOLD, TRANSACTION_START, TRANSACTION_END, CONFIG_CHANGE, QUEUE_FLUSH, QUEUE_ADD_TRANSACTION, TRANSACTION_IGNORE, XMLHTTPREQUEST, FETCH, HISTORY, EVENT_TARGET, CLICK, ERROR, BEFORE_EVENT, AFTER_EVENT, LOCAL_CONFIG_KEY, HTTP_REQUEST_TYPE, LONG_TASK, PAINT, MEASURE, NAVIGATION, RESOURCE, FIRST_CONTENTFUL_PAINT, LARGEST_CONTENTFUL_PAINT, KEYWORD_LIMIT, TEMPORARY_TYPE, USER_INTERACTION, TRANSACTION_TYPE_ORDER, ERRORS, TRANSACTIONS, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, APM_SERVER, PERFORMANCE_MONITORING, ERROR_LOGGING, TRUNCATED_TYPE, FIRST_INPUT, LAYOUT_SHIFT, EVENT, OUTCOME_SUCCESS, OUTCOME_FAILURE, OUTCOME_UNKNOWN, SESSION_TIMEOUT, HTTP_REQUEST_TIMEOUT };","var _excluded = [\"tags\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { Url } from './url';\nimport { PAGE_LOAD, PAGE_EXIT, NAVIGATION } from './constants';\nimport { getServerTimingInfo, PERF, isPerfTimelineSupported } from './utils';\nvar LEFT_SQUARE_BRACKET = 91;\nvar RIGHT_SQUARE_BRACKET = 93;\nvar EXTERNAL = 'external';\nvar RESOURCE = 'resource';\nvar HARD_NAVIGATION = 'hard-navigation';\n\nfunction getPortNumber(port, protocol) {\n if (port === '') {\n port = protocol === 'http:' ? '80' : protocol === 'https:' ? '443' : '';\n }\n\n return port;\n}\n\nfunction getResponseContext(perfTimingEntry) {\n var transferSize = perfTimingEntry.transferSize,\n encodedBodySize = perfTimingEntry.encodedBodySize,\n decodedBodySize = perfTimingEntry.decodedBodySize,\n serverTiming = perfTimingEntry.serverTiming;\n var respContext = {\n transfer_size: transferSize,\n encoded_body_size: encodedBodySize,\n decoded_body_size: decodedBodySize\n };\n var serverTimingStr = getServerTimingInfo(serverTiming);\n\n if (serverTimingStr) {\n respContext.headers = {\n 'server-timing': serverTimingStr\n };\n }\n\n return respContext;\n}\n\nfunction getDestination(parsedUrl) {\n var port = parsedUrl.port,\n protocol = parsedUrl.protocol,\n hostname = parsedUrl.hostname;\n var portNumber = getPortNumber(port, protocol);\n var ipv6Hostname = hostname.charCodeAt(0) === LEFT_SQUARE_BRACKET && hostname.charCodeAt(hostname.length - 1) === RIGHT_SQUARE_BRACKET;\n var address = hostname;\n\n if (ipv6Hostname) {\n address = hostname.slice(1, -1);\n }\n\n return {\n service: {\n resource: hostname + ':' + portNumber,\n name: '',\n type: ''\n },\n address: address,\n port: Number(portNumber)\n };\n}\n\nfunction getResourceContext(data) {\n var entry = data.entry,\n url = data.url;\n var parsedUrl = new Url(url);\n var destination = getDestination(parsedUrl);\n return {\n http: {\n url: url,\n response: getResponseContext(entry)\n },\n destination: destination\n };\n}\n\nfunction getExternalContext(data) {\n var url = data.url,\n method = data.method,\n target = data.target,\n response = data.response;\n var parsedUrl = new Url(url);\n var destination = getDestination(parsedUrl);\n var context = {\n http: {\n method: method,\n url: parsedUrl.href\n },\n destination: destination\n };\n var statusCode;\n\n if (target && typeof target.status !== 'undefined') {\n statusCode = target.status;\n } else if (response) {\n statusCode = response.status;\n }\n\n context.http.status_code = statusCode;\n return context;\n}\n\nfunction getNavigationContext(data) {\n var url = data.url;\n var parsedUrl = new Url(url);\n var destination = getDestination(parsedUrl);\n return {\n destination: destination\n };\n}\n\nexport function getPageContext() {\n return {\n page: {\n referer: document.referrer,\n url: location.href\n }\n };\n}\nexport function addSpanContext(span, data) {\n if (!data) {\n return;\n }\n\n var type = span.type;\n var context;\n\n switch (type) {\n case EXTERNAL:\n context = getExternalContext(data);\n break;\n\n case RESOURCE:\n context = getResourceContext(data);\n break;\n\n case HARD_NAVIGATION:\n context = getNavigationContext(data);\n break;\n }\n\n span.addContext(context);\n}\nexport function addTransactionContext(transaction, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n tags = _ref.tags,\n configContext = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var pageContext = getPageContext();\n var responseContext = {};\n\n if (transaction.type === PAGE_EXIT) {\n transaction.ensureContext();\n\n if (transaction.context.page && transaction.context.page.url) {\n pageContext.page.url = transaction.context.page.url;\n }\n } else if (transaction.type === PAGE_LOAD && isPerfTimelineSupported()) {\n var entries = PERF.getEntriesByType(NAVIGATION);\n\n if (entries && entries.length > 0) {\n responseContext = {\n response: getResponseContext(entries[0])\n };\n }\n }\n\n transaction.addContext(pageContext, responseContext, configContext);\n}","import { KEYWORD_LIMIT } from './constants';\nvar METADATA_MODEL = {\n service: {\n name: [KEYWORD_LIMIT, true],\n version: true,\n agent: {\n version: [KEYWORD_LIMIT, true]\n },\n environment: true\n },\n labels: {\n '*': true\n }\n};\nvar RESPONSE_MODEL = {\n '*': true,\n headers: {\n '*': true\n }\n};\nvar DESTINATION_MODEL = {\n address: [KEYWORD_LIMIT],\n service: {\n '*': [KEYWORD_LIMIT, true]\n }\n};\nvar CONTEXT_MODEL = {\n user: {\n id: true,\n email: true,\n username: true\n },\n tags: {\n '*': true\n },\n http: {\n response: RESPONSE_MODEL\n },\n destination: DESTINATION_MODEL,\n response: RESPONSE_MODEL\n};\nvar SPAN_MODEL = {\n name: [KEYWORD_LIMIT, true],\n type: [KEYWORD_LIMIT, true],\n id: [KEYWORD_LIMIT, true],\n trace_id: [KEYWORD_LIMIT, true],\n parent_id: [KEYWORD_LIMIT, true],\n transaction_id: [KEYWORD_LIMIT, true],\n subtype: true,\n action: true,\n context: CONTEXT_MODEL\n};\nvar TRANSACTION_MODEL = {\n name: true,\n parent_id: true,\n type: [KEYWORD_LIMIT, true],\n id: [KEYWORD_LIMIT, true],\n trace_id: [KEYWORD_LIMIT, true],\n span_count: {\n started: [KEYWORD_LIMIT, true]\n },\n context: CONTEXT_MODEL\n};\nvar ERROR_MODEL = {\n id: [KEYWORD_LIMIT, true],\n trace_id: true,\n transaction_id: true,\n parent_id: true,\n culprit: true,\n exception: {\n type: true\n },\n transaction: {\n type: true\n },\n context: CONTEXT_MODEL\n};\n\nfunction truncate(value, limit, required, placeholder) {\n if (limit === void 0) {\n limit = KEYWORD_LIMIT;\n }\n\n if (required === void 0) {\n required = false;\n }\n\n if (placeholder === void 0) {\n placeholder = 'N/A';\n }\n\n if (required && isEmpty(value)) {\n value = placeholder;\n }\n\n if (typeof value === 'string') {\n return value.substring(0, limit);\n }\n\n return value;\n}\n\nfunction isEmpty(value) {\n return value == null || value === '' || typeof value === 'undefined';\n}\n\nfunction replaceValue(target, key, currModel) {\n var value = truncate(target[key], currModel[0], currModel[1]);\n\n if (isEmpty(value)) {\n delete target[key];\n return;\n }\n\n target[key] = value;\n}\n\nfunction truncateModel(model, target, childTarget) {\n if (model === void 0) {\n model = {};\n }\n\n if (childTarget === void 0) {\n childTarget = target;\n }\n\n var keys = Object.keys(model);\n var emptyArr = [];\n\n var _loop = function _loop(i) {\n var currKey = keys[i];\n var currModel = model[currKey] === true ? emptyArr : model[currKey];\n\n if (!Array.isArray(currModel)) {\n truncateModel(currModel, target, childTarget[currKey]);\n } else {\n if (currKey === '*') {\n Object.keys(childTarget).forEach(function (key) {\n return replaceValue(childTarget, key, currModel);\n });\n } else {\n replaceValue(childTarget, currKey, currModel);\n }\n }\n };\n\n for (var i = 0; i < keys.length; i++) {\n _loop(i);\n }\n\n return target;\n}\n\nexport { truncate, truncateModel, SPAN_MODEL, TRANSACTION_MODEL, ERROR_MODEL, METADATA_MODEL, RESPONSE_MODEL };","var _excluded = [\"tags\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { createStackTraces, filterInvalidFrames } from './stack-trace';\nimport { generateRandomId, merge, extend } from '../common/utils';\nimport { getPageContext } from '../common/context';\nimport { truncateModel, ERROR_MODEL } from '../common/truncate';\nimport stackParser from 'error-stack-parser';\nvar IGNORE_KEYS = ['stack', 'message'];\nvar PROMISE_REJECTION_PREFIX = 'Unhandled promise rejection: ';\n\nfunction getErrorProperties(error) {\n var propertyFound = false;\n var properties = {};\n Object.keys(error).forEach(function (key) {\n if (IGNORE_KEYS.indexOf(key) >= 0) {\n return;\n }\n\n var val = error[key];\n\n if (val == null || typeof val === 'function') {\n return;\n }\n\n if (typeof val === 'object') {\n if (typeof val.toISOString !== 'function') return;\n val = val.toISOString();\n }\n\n properties[key] = val;\n propertyFound = true;\n });\n\n if (propertyFound) {\n return properties;\n }\n}\n\nvar ErrorLogging = function () {\n function ErrorLogging(apmServer, configService, transactionService) {\n this._apmServer = apmServer;\n this._configService = configService;\n this._transactionService = transactionService;\n }\n\n var _proto = ErrorLogging.prototype;\n\n _proto.createErrorDataModel = function createErrorDataModel(errorEvent) {\n var frames = createStackTraces(stackParser, errorEvent);\n var filteredFrames = filterInvalidFrames(frames);\n var culprit = '(inline script)';\n var lastFrame = filteredFrames[filteredFrames.length - 1];\n\n if (lastFrame && lastFrame.filename) {\n culprit = lastFrame.filename;\n }\n\n var message = errorEvent.message,\n error = errorEvent.error;\n var errorMessage = message;\n var errorType = '';\n var errorContext = {};\n\n if (error && typeof error === 'object') {\n errorMessage = errorMessage || error.message;\n errorType = error.name;\n var customProperties = getErrorProperties(error);\n\n if (customProperties) {\n errorContext.custom = customProperties;\n }\n }\n\n if (!errorType) {\n if (errorMessage && errorMessage.indexOf(':') > -1) {\n errorType = errorMessage.split(':')[0];\n }\n }\n\n var currentTransaction = this._transactionService.getCurrentTransaction();\n\n var transactionContext = currentTransaction ? currentTransaction.context : {};\n\n var _this$_configService$ = this._configService.get('context'),\n tags = _this$_configService$.tags,\n configContext = _objectWithoutPropertiesLoose(_this$_configService$, _excluded);\n\n var pageContext = getPageContext();\n var context = merge({}, pageContext, transactionContext, configContext, errorContext);\n var errorObject = {\n id: generateRandomId(),\n culprit: culprit,\n exception: {\n message: errorMessage,\n stacktrace: filteredFrames,\n type: errorType\n },\n context: context\n };\n\n if (currentTransaction) {\n errorObject = extend(errorObject, {\n trace_id: currentTransaction.traceId,\n parent_id: currentTransaction.id,\n transaction_id: currentTransaction.id,\n transaction: {\n type: currentTransaction.type,\n sampled: currentTransaction.sampled\n }\n });\n }\n\n return truncateModel(ERROR_MODEL, errorObject);\n };\n\n _proto.logErrorEvent = function logErrorEvent(errorEvent) {\n if (typeof errorEvent === 'undefined') {\n return;\n }\n\n var errorObject = this.createErrorDataModel(errorEvent);\n\n if (typeof errorObject.exception.message === 'undefined') {\n return;\n }\n\n this._apmServer.addError(errorObject);\n };\n\n _proto.registerListeners = function registerListeners() {\n var _this = this;\n\n window.addEventListener('error', function (errorEvent) {\n return _this.logErrorEvent(errorEvent);\n });\n window.addEventListener('unhandledrejection', function (promiseRejectionEvent) {\n return _this.logPromiseEvent(promiseRejectionEvent);\n });\n };\n\n _proto.logPromiseEvent = function logPromiseEvent(promiseRejectionEvent) {\n var reason = promiseRejectionEvent.reason;\n\n if (reason == null) {\n reason = '';\n }\n\n var errorEvent;\n\n if (typeof reason.message === 'string') {\n var name = reason.name ? reason.name + ': ' : '';\n errorEvent = {\n error: reason,\n message: PROMISE_REJECTION_PREFIX + name + reason.message\n };\n } else {\n errorEvent = this._parseRejectReason(reason);\n }\n\n this.logErrorEvent(errorEvent);\n };\n\n _proto.logError = function logError(messageOrError) {\n var errorEvent = {};\n\n if (typeof messageOrError === 'string') {\n errorEvent.message = messageOrError;\n } else {\n errorEvent.error = messageOrError;\n }\n\n return this.logErrorEvent(errorEvent);\n };\n\n _proto._parseRejectReason = function _parseRejectReason(reason) {\n var errorEvent = {\n message: PROMISE_REJECTION_PREFIX\n };\n\n if (Array.isArray(reason)) {\n errorEvent.message += '';\n } else if (typeof reason === 'object') {\n try {\n errorEvent.message += JSON.stringify(reason);\n errorEvent.error = reason;\n } catch (error) {\n errorEvent.message += '';\n }\n } else if (typeof reason === 'function') {\n errorEvent.message += '';\n } else {\n errorEvent.message += reason;\n }\n\n return errorEvent;\n };\n\n return ErrorLogging;\n}();\n\nexport default ErrorLogging;","var Queue = function () {\n function Queue(onFlush, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n this.onFlush = onFlush;\n this.items = [];\n this.queueLimit = opts.queueLimit || -1;\n this.flushInterval = opts.flushInterval || 0;\n this.timeoutId = undefined;\n }\n\n var _proto = Queue.prototype;\n\n _proto._setTimer = function _setTimer() {\n var _this = this;\n\n this.timeoutId = setTimeout(function () {\n return _this.flush();\n }, this.flushInterval);\n };\n\n _proto._clear = function _clear() {\n if (typeof this.timeoutId !== 'undefined') {\n clearTimeout(this.timeoutId);\n this.timeoutId = undefined;\n }\n\n this.items = [];\n };\n\n _proto.flush = function flush() {\n this.onFlush(this.items);\n\n this._clear();\n };\n\n _proto.add = function add(item) {\n this.items.push(item);\n\n if (this.queueLimit !== -1 && this.items.length >= this.queueLimit) {\n this.flush();\n } else {\n if (typeof this.timeoutId === 'undefined') {\n this._setTimer();\n }\n }\n };\n\n return Queue;\n}();\n\nexport default Queue;","var NDJSON = function () {\n function NDJSON() {}\n\n NDJSON.stringify = function stringify(object) {\n return JSON.stringify(object) + '\\n';\n };\n\n return NDJSON;\n}();\n\nexport default NDJSON;","import { isRedirectInfoAvailable } from '../../common/utils';\nvar NAVIGATION_TIMING_MARKS = ['fetchStart', 'domainLookupStart', 'domainLookupEnd', 'connectStart', 'connectEnd', 'requestStart', 'responseStart', 'responseEnd', 'domLoading', 'domInteractive', 'domContentLoadedEventStart', 'domContentLoadedEventEnd', 'domComplete', 'loadEventStart', 'loadEventEnd'];\nvar COMPRESSED_NAV_TIMING_MARKS = ['fs', 'ls', 'le', 'cs', 'ce', 'qs', 'rs', 're', 'dl', 'di', 'ds', 'de', 'dc', 'es', 'ee'];\n\nfunction getPageLoadMarks(timing) {\n var marks = getNavigationTimingMarks(timing);\n\n if (marks == null) {\n return null;\n }\n\n return {\n navigationTiming: marks,\n agent: {\n timeToFirstByte: marks.responseStart,\n domInteractive: marks.domInteractive,\n domComplete: marks.domComplete\n }\n };\n}\n\nfunction getNavigationTimingMarks(timing) {\n var redirectStart = timing.redirectStart,\n fetchStart = timing.fetchStart,\n navigationStart = timing.navigationStart,\n responseStart = timing.responseStart,\n responseEnd = timing.responseEnd;\n\n if (fetchStart >= navigationStart && responseStart >= fetchStart && responseEnd >= responseStart) {\n var marks = {};\n NAVIGATION_TIMING_MARKS.forEach(function (timingKey) {\n var m = timing[timingKey];\n\n if (m && m >= fetchStart) {\n if (isRedirectInfoAvailable(timing)) {\n marks[timingKey] = parseInt(m - redirectStart);\n } else {\n marks[timingKey] = parseInt(m - fetchStart);\n }\n }\n });\n return marks;\n }\n\n return null;\n}\n\nexport { getPageLoadMarks, NAVIGATION_TIMING_MARKS, COMPRESSED_NAV_TIMING_MARKS };","import { Promise } from './polyfills';\nimport { NAVIGATION_TIMING_MARKS, COMPRESSED_NAV_TIMING_MARKS } from '../performance-monitoring/navigation/marks';\nimport { isBeaconInspectionEnabled } from './utils';\n\nfunction compressStackFrames(frames) {\n return frames.map(function (frame) {\n return {\n ap: frame.abs_path,\n f: frame.filename,\n fn: frame.function,\n li: frame.lineno,\n co: frame.colno\n };\n });\n}\n\nfunction compressResponse(response) {\n return {\n ts: response.transfer_size,\n ebs: response.encoded_body_size,\n dbs: response.decoded_body_size\n };\n}\n\nfunction compressHTTP(http) {\n var compressed = {};\n var method = http.method,\n status_code = http.status_code,\n url = http.url,\n response = http.response;\n compressed.url = url;\n\n if (method) {\n compressed.mt = method;\n }\n\n if (status_code) {\n compressed.sc = status_code;\n }\n\n if (response) {\n compressed.r = compressResponse(response);\n }\n\n return compressed;\n}\n\nfunction compressContext(context) {\n if (!context) {\n return null;\n }\n\n var compressed = {};\n var page = context.page,\n http = context.http,\n response = context.response,\n destination = context.destination,\n user = context.user,\n custom = context.custom;\n\n if (page) {\n compressed.p = {\n rf: page.referer,\n url: page.url\n };\n }\n\n if (http) {\n compressed.h = compressHTTP(http);\n }\n\n if (response) {\n compressed.r = compressResponse(response);\n }\n\n if (destination) {\n var service = destination.service;\n compressed.dt = {\n se: {\n n: service.name,\n t: service.type,\n rc: service.resource\n },\n ad: destination.address,\n po: destination.port\n };\n }\n\n if (user) {\n compressed.u = {\n id: user.id,\n un: user.username,\n em: user.email\n };\n }\n\n if (custom) {\n compressed.cu = custom;\n }\n\n return compressed;\n}\n\nfunction compressMarks(marks) {\n if (!marks) {\n return null;\n }\n\n var compressedNtMarks = compressNavigationTimingMarks(marks.navigationTiming);\n var compressed = {\n nt: compressedNtMarks,\n a: compressAgentMarks(compressedNtMarks, marks.agent)\n };\n return compressed;\n}\n\nfunction compressNavigationTimingMarks(ntMarks) {\n if (!ntMarks) {\n return null;\n }\n\n var compressed = {};\n COMPRESSED_NAV_TIMING_MARKS.forEach(function (mark, index) {\n var mapping = NAVIGATION_TIMING_MARKS[index];\n compressed[mark] = ntMarks[mapping];\n });\n return compressed;\n}\n\nfunction compressAgentMarks(compressedNtMarks, agentMarks) {\n var compressed = {};\n\n if (compressedNtMarks) {\n compressed = {\n fb: compressedNtMarks.rs,\n di: compressedNtMarks.di,\n dc: compressedNtMarks.dc\n };\n }\n\n if (agentMarks) {\n var fp = agentMarks.firstContentfulPaint;\n var lp = agentMarks.largestContentfulPaint;\n\n if (fp) {\n compressed.fp = fp;\n }\n\n if (lp) {\n compressed.lp = lp;\n }\n }\n\n if (Object.keys(compressed).length === 0) {\n return null;\n }\n\n return compressed;\n}\n\nexport function compressMetadata(metadata) {\n var service = metadata.service,\n labels = metadata.labels;\n var agent = service.agent,\n language = service.language;\n return {\n se: {\n n: service.name,\n ve: service.version,\n a: {\n n: agent.name,\n ve: agent.version\n },\n la: {\n n: language.name\n },\n en: service.environment\n },\n l: labels\n };\n}\nexport function compressTransaction(transaction) {\n var spans = transaction.spans.map(function (span) {\n var spanData = {\n id: span.id,\n n: span.name,\n t: span.type,\n s: span.start,\n d: span.duration,\n c: compressContext(span.context),\n o: span.outcome,\n sr: span.sample_rate\n };\n\n if (span.parent_id !== transaction.id) {\n spanData.pid = span.parent_id;\n }\n\n if (span.sync === true) {\n spanData.sy = true;\n }\n\n if (span.subtype) {\n spanData.su = span.subtype;\n }\n\n if (span.action) {\n spanData.ac = span.action;\n }\n\n return spanData;\n });\n var tr = {\n id: transaction.id,\n tid: transaction.trace_id,\n n: transaction.name,\n t: transaction.type,\n d: transaction.duration,\n c: compressContext(transaction.context),\n k: compressMarks(transaction.marks),\n me: compressMetricsets(transaction.breakdown),\n y: spans,\n yc: {\n sd: spans.length\n },\n sm: transaction.sampled,\n sr: transaction.sample_rate,\n o: transaction.outcome\n };\n\n if (transaction.experience) {\n var _transaction$experien = transaction.experience,\n cls = _transaction$experien.cls,\n fid = _transaction$experien.fid,\n tbt = _transaction$experien.tbt,\n longtask = _transaction$experien.longtask;\n tr.exp = {\n cls: cls,\n fid: fid,\n tbt: tbt,\n lt: longtask\n };\n }\n\n if (transaction.session) {\n var _transaction$session = transaction.session,\n id = _transaction$session.id,\n sequence = _transaction$session.sequence;\n tr.ses = {\n id: id,\n seq: sequence\n };\n }\n\n return tr;\n}\nexport function compressError(error) {\n var exception = error.exception;\n var compressed = {\n id: error.id,\n cl: error.culprit,\n ex: {\n mg: exception.message,\n st: compressStackFrames(exception.stacktrace),\n t: error.type\n },\n c: compressContext(error.context)\n };\n var transaction = error.transaction;\n\n if (transaction) {\n compressed.tid = error.trace_id;\n compressed.pid = error.parent_id;\n compressed.xid = error.transaction_id;\n compressed.x = {\n t: transaction.type,\n sm: transaction.sampled\n };\n }\n\n return compressed;\n}\nexport function compressMetricsets(breakdowns) {\n return breakdowns.map(function (_ref) {\n var span = _ref.span,\n samples = _ref.samples;\n return {\n y: {\n t: span.type\n },\n sa: {\n ysc: {\n v: samples['span.self_time.count'].value\n },\n yss: {\n v: samples['span.self_time.sum.us'].value\n }\n }\n };\n });\n}\nexport function compressPayload(params, type) {\n if (type === void 0) {\n type = 'gzip';\n }\n\n var isCompressionStreamSupported = typeof CompressionStream === 'function';\n return new Promise(function (resolve) {\n if (!isCompressionStreamSupported) {\n return resolve(params);\n }\n\n if (isBeaconInspectionEnabled()) {\n return resolve(params);\n }\n\n var payload = params.payload,\n headers = params.headers,\n beforeSend = params.beforeSend;\n var payloadStream = new Blob([payload]).stream();\n var compressedStream = payloadStream.pipeThrough(new CompressionStream(type));\n return new Response(compressedStream).blob().then(function (payload) {\n headers['Content-Encoding'] = type;\n return resolve({\n payload: payload,\n headers: headers,\n beforeSend: beforeSend\n });\n });\n });\n}","var __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar state = {\n bootstrapTime: null,\n lastHiddenStart: Number.MIN_SAFE_INTEGER\n};\nexport { __DEV__, state };","export function isResponseSuccessful(status) {\n if (status === 0 || status > 399 && status < 600) {\n return false;\n }\n\n return true;\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { HTTP_REQUEST_TIMEOUT } from '../constants';\nimport { isResponseSuccessful } from './response-status';\nexport var BYTE_LIMIT = 60 * 1000;\nexport function shouldUseFetchWithKeepAlive(method, payload) {\n if (!isFetchSupported()) {\n return false;\n }\n\n var isKeepAliveSupported = ('keepalive' in new Request(''));\n\n if (!isKeepAliveSupported) {\n return false;\n }\n\n var size = calculateSize(payload);\n return method === 'POST' && size < BYTE_LIMIT;\n}\nexport function sendFetchRequest(method, url, _ref) {\n var _ref$keepalive = _ref.keepalive,\n keepalive = _ref$keepalive === void 0 ? false : _ref$keepalive,\n _ref$timeout = _ref.timeout,\n timeout = _ref$timeout === void 0 ? HTTP_REQUEST_TIMEOUT : _ref$timeout,\n payload = _ref.payload,\n headers = _ref.headers,\n sendCredentials = _ref.sendCredentials;\n var timeoutConfig = {};\n\n if (typeof AbortController === 'function') {\n var controller = new AbortController();\n timeoutConfig.signal = controller.signal;\n setTimeout(function () {\n return controller.abort();\n }, timeout);\n }\n\n var fetchResponse;\n return window.fetch(url, _extends({\n body: payload,\n headers: headers,\n method: method,\n keepalive: keepalive,\n credentials: sendCredentials ? 'include' : 'omit'\n }, timeoutConfig)).then(function (response) {\n fetchResponse = response;\n return fetchResponse.text();\n }).then(function (responseText) {\n var bodyResponse = {\n url: url,\n status: fetchResponse.status,\n responseText: responseText\n };\n\n if (!isResponseSuccessful(fetchResponse.status)) {\n throw bodyResponse;\n }\n\n return bodyResponse;\n });\n}\nexport function isFetchSupported() {\n return typeof window.fetch === 'function' && typeof window.Request === 'function';\n}\n\nfunction calculateSize(payload) {\n if (!payload) {\n return 0;\n }\n\n if (payload instanceof Blob) {\n return payload.size;\n }\n\n return new Blob([payload]).size;\n}","export var globalState = {\n fetchInProgress: false\n};\nexport function apmSymbol(name) {\n return '__apm_symbol__' + name;\n}\n\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n\n if (propertyDesc.writable === false) {\n return false;\n }\n\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\n\nfunction attachOriginToPatched(patched, original) {\n patched[apmSymbol('OriginalDelegate')] = original;\n}\n\nexport function patchMethod(target, name, patchFn) {\n var proto = target;\n\n while (proto && !proto.hasOwnProperty(name)) {\n proto = Object.getPrototypeOf(proto);\n }\n\n if (!proto && target[name]) {\n proto = target;\n }\n\n var delegateName = apmSymbol(name);\n var delegate;\n\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n var desc = proto && Object.getOwnPropertyDescriptor(proto, name);\n\n if (isPropertyWritable(desc)) {\n var patchDelegate = patchFn(delegate, delegateName, name);\n\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n\n attachOriginToPatched(proto[name], delegate);\n }\n }\n\n return delegate;\n}\nexport var XHR_IGNORE = apmSymbol('xhrIgnore');\nexport var XHR_SYNC = apmSymbol('xhrSync');\nexport var XHR_URL = apmSymbol('xhrURL');\nexport var XHR_METHOD = apmSymbol('xhrMethod');","import { XHR_IGNORE } from '../patching/patch-utils';\nimport { isResponseSuccessful } from './response-status';\nimport { Promise } from '../polyfills';\nexport function sendXHR(method, url, _ref) {\n var _ref$timeout = _ref.timeout,\n timeout = _ref$timeout === void 0 ? HTTP_REQUEST_TIMEOUT : _ref$timeout,\n payload = _ref.payload,\n headers = _ref.headers,\n beforeSend = _ref.beforeSend,\n sendCredentials = _ref.sendCredentials;\n return new Promise(function (resolve, reject) {\n var xhr = new window.XMLHttpRequest();\n xhr[XHR_IGNORE] = true;\n xhr.open(method, url, true);\n xhr.timeout = timeout;\n xhr.withCredentials = sendCredentials;\n\n if (headers) {\n for (var header in headers) {\n if (headers.hasOwnProperty(header)) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n var status = xhr.status,\n responseText = xhr.responseText;\n\n if (isResponseSuccessful(status)) {\n resolve(xhr);\n } else {\n reject({\n url: url,\n status: status,\n responseText: responseText\n });\n }\n }\n };\n\n xhr.onerror = function () {\n var status = xhr.status,\n responseText = xhr.responseText;\n reject({\n url: url,\n status: status,\n responseText: responseText\n });\n };\n\n var canSend = true;\n\n if (typeof beforeSend === 'function') {\n canSend = beforeSend({\n url: url,\n method: method,\n headers: headers,\n payload: payload,\n xhr: xhr\n });\n }\n\n if (canSend) {\n xhr.send(payload);\n } else {\n reject({\n url: url,\n status: 0,\n responseText: 'Request rejected by user configuration.'\n });\n }\n });\n}","import Queue from './queue';\nimport throttle from './throttle';\nimport NDJSON from './ndjson';\nimport { truncateModel, METADATA_MODEL } from './truncate';\nimport { ERRORS, HTTP_REQUEST_TIMEOUT, QUEUE_FLUSH, TRANSACTIONS } from './constants';\nimport { noop } from './utils';\nimport { Promise } from './polyfills';\nimport { compressMetadata, compressTransaction, compressError, compressPayload } from './compress';\nimport { __DEV__ } from '../state';\nimport { sendFetchRequest, shouldUseFetchWithKeepAlive } from './http/fetch';\nimport { sendXHR } from './http/xhr';\nvar THROTTLE_INTERVAL = 60000;\n\nvar ApmServer = function () {\n function ApmServer(configService, loggingService) {\n this._configService = configService;\n this._loggingService = loggingService;\n this.queue = undefined;\n this.throttleEvents = noop;\n }\n\n var _proto = ApmServer.prototype;\n\n _proto.init = function init() {\n var _this = this;\n\n var queueLimit = this._configService.get('queueLimit');\n\n var flushInterval = this._configService.get('flushInterval');\n\n var limit = this._configService.get('eventsLimit');\n\n var onFlush = function onFlush(events) {\n var promise = _this.sendEvents(events);\n\n if (promise) {\n promise.catch(function (reason) {\n _this._loggingService.warn('Failed sending events!', _this._constructError(reason));\n });\n }\n };\n\n this.queue = new Queue(onFlush, {\n queueLimit: queueLimit,\n flushInterval: flushInterval\n });\n this.throttleEvents = throttle(this.queue.add.bind(this.queue), function () {\n return _this._loggingService.warn('Dropped events due to throttling!');\n }, {\n limit: limit,\n interval: THROTTLE_INTERVAL\n });\n\n this._configService.observeEvent(QUEUE_FLUSH, function () {\n _this.queue.flush();\n });\n };\n\n _proto._postJson = function _postJson(endPoint, payload) {\n var _this2 = this;\n\n var headers = {\n 'Content-Type': 'application/x-ndjson'\n };\n\n var apmRequest = this._configService.get('apmRequest');\n\n var params = {\n payload: payload,\n headers: headers,\n beforeSend: apmRequest\n };\n return compressPayload(params).catch(function (error) {\n if (__DEV__) {\n _this2._loggingService.debug('Compressing the payload using CompressionStream API failed', error.message);\n }\n\n return params;\n }).then(function (result) {\n return _this2._makeHttpRequest('POST', endPoint, result);\n }).then(function (_ref) {\n var responseText = _ref.responseText;\n return responseText;\n });\n };\n\n _proto._constructError = function _constructError(reason) {\n var url = reason.url,\n status = reason.status,\n responseText = reason.responseText;\n\n if (typeof status == 'undefined') {\n return reason;\n }\n\n var message = url + ' HTTP status: ' + status;\n\n if (__DEV__ && responseText) {\n try {\n var serverErrors = [];\n var response = JSON.parse(responseText);\n\n if (response.errors && response.errors.length > 0) {\n response.errors.forEach(function (err) {\n return serverErrors.push(err.message);\n });\n message += ' ' + serverErrors.join(',');\n }\n } catch (e) {\n this._loggingService.debug('Error parsing response from APM server', e);\n }\n }\n\n return new Error(message);\n };\n\n _proto._makeHttpRequest = function _makeHttpRequest(method, url, _temp) {\n var _ref2 = _temp === void 0 ? {} : _temp,\n _ref2$timeout = _ref2.timeout,\n timeout = _ref2$timeout === void 0 ? HTTP_REQUEST_TIMEOUT : _ref2$timeout,\n payload = _ref2.payload,\n headers = _ref2.headers,\n beforeSend = _ref2.beforeSend;\n\n var sendCredentials = this._configService.get('sendCredentials');\n\n if (!beforeSend && shouldUseFetchWithKeepAlive(method, payload)) {\n return sendFetchRequest(method, url, {\n keepalive: true,\n timeout: timeout,\n payload: payload,\n headers: headers,\n sendCredentials: sendCredentials\n }).catch(function (reason) {\n if (reason instanceof TypeError) {\n return sendXHR(method, url, {\n timeout: timeout,\n payload: payload,\n headers: headers,\n beforeSend: beforeSend,\n sendCredentials: sendCredentials\n });\n }\n\n throw reason;\n });\n }\n\n return sendXHR(method, url, {\n timeout: timeout,\n payload: payload,\n headers: headers,\n beforeSend: beforeSend,\n sendCredentials: sendCredentials\n });\n };\n\n _proto.fetchConfig = function fetchConfig(serviceName, environment) {\n var _this3 = this;\n\n var _this$getEndpoints = this.getEndpoints(),\n configEndpoint = _this$getEndpoints.configEndpoint;\n\n if (!serviceName) {\n return Promise.reject('serviceName is required for fetching central config.');\n }\n\n configEndpoint += \"?service.name=\" + serviceName;\n\n if (environment) {\n configEndpoint += \"&service.environment=\" + environment;\n }\n\n var localConfig = this._configService.getLocalConfig();\n\n if (localConfig) {\n configEndpoint += \"&ifnonematch=\" + localConfig.etag;\n }\n\n var apmRequest = this._configService.get('apmRequest');\n\n return this._makeHttpRequest('GET', configEndpoint, {\n timeout: 5000,\n beforeSend: apmRequest\n }).then(function (xhr) {\n var status = xhr.status,\n responseText = xhr.responseText;\n\n if (status === 304) {\n return localConfig;\n } else {\n var remoteConfig = JSON.parse(responseText);\n var etag = xhr.getResponseHeader('etag');\n\n if (etag) {\n remoteConfig.etag = etag.replace(/[\"]/g, '');\n\n _this3._configService.setLocalConfig(remoteConfig, true);\n }\n\n return remoteConfig;\n }\n }).catch(function (reason) {\n var error = _this3._constructError(reason);\n\n return Promise.reject(error);\n });\n };\n\n _proto.createMetaData = function createMetaData() {\n var cfg = this._configService;\n var metadata = {\n service: {\n name: cfg.get('serviceName'),\n version: cfg.get('serviceVersion'),\n agent: {\n name: 'rum-js',\n version: cfg.version\n },\n language: {\n name: 'javascript'\n },\n environment: cfg.get('environment')\n },\n labels: cfg.get('context.tags')\n };\n return truncateModel(METADATA_MODEL, metadata);\n };\n\n _proto.addError = function addError(error) {\n var _this$throttleEvents;\n\n this.throttleEvents((_this$throttleEvents = {}, _this$throttleEvents[ERRORS] = error, _this$throttleEvents));\n };\n\n _proto.addTransaction = function addTransaction(transaction) {\n var _this$throttleEvents2;\n\n this.throttleEvents((_this$throttleEvents2 = {}, _this$throttleEvents2[TRANSACTIONS] = transaction, _this$throttleEvents2));\n };\n\n _proto.ndjsonErrors = function ndjsonErrors(errors, compress) {\n var key = compress ? 'e' : 'error';\n return errors.map(function (error) {\n var _NDJSON$stringify;\n\n return NDJSON.stringify((_NDJSON$stringify = {}, _NDJSON$stringify[key] = compress ? compressError(error) : error, _NDJSON$stringify));\n });\n };\n\n _proto.ndjsonMetricsets = function ndjsonMetricsets(metricsets) {\n return metricsets.map(function (metricset) {\n return NDJSON.stringify({\n metricset: metricset\n });\n }).join('');\n };\n\n _proto.ndjsonTransactions = function ndjsonTransactions(transactions, compress) {\n var _this4 = this;\n\n var key = compress ? 'x' : 'transaction';\n return transactions.map(function (tr) {\n var _NDJSON$stringify2;\n\n var spans = '',\n breakdowns = '';\n\n if (!compress) {\n if (tr.spans) {\n spans = tr.spans.map(function (span) {\n return NDJSON.stringify({\n span: span\n });\n }).join('');\n delete tr.spans;\n }\n\n if (tr.breakdown) {\n breakdowns = _this4.ndjsonMetricsets(tr.breakdown);\n delete tr.breakdown;\n }\n }\n\n return NDJSON.stringify((_NDJSON$stringify2 = {}, _NDJSON$stringify2[key] = compress ? compressTransaction(tr) : tr, _NDJSON$stringify2)) + spans + breakdowns;\n });\n };\n\n _proto.sendEvents = function sendEvents(events) {\n var _payload, _NDJSON$stringify3;\n\n if (events.length === 0) {\n return;\n }\n\n var transactions = [];\n var errors = [];\n\n for (var i = 0; i < events.length; i++) {\n var event = events[i];\n\n if (event[TRANSACTIONS]) {\n transactions.push(event[TRANSACTIONS]);\n }\n\n if (event[ERRORS]) {\n errors.push(event[ERRORS]);\n }\n }\n\n if (transactions.length === 0 && errors.length === 0) {\n return;\n }\n\n var cfg = this._configService;\n var payload = (_payload = {}, _payload[TRANSACTIONS] = transactions, _payload[ERRORS] = errors, _payload);\n var filteredPayload = cfg.applyFilters(payload);\n\n if (!filteredPayload) {\n this._loggingService.warn('Dropped payload due to filtering!');\n\n return;\n }\n\n var apiVersion = cfg.get('apiVersion');\n var compress = apiVersion > 2;\n var ndjson = [];\n var metadata = this.createMetaData();\n var metadataKey = compress ? 'm' : 'metadata';\n ndjson.push(NDJSON.stringify((_NDJSON$stringify3 = {}, _NDJSON$stringify3[metadataKey] = compress ? compressMetadata(metadata) : metadata, _NDJSON$stringify3)));\n ndjson = ndjson.concat(this.ndjsonErrors(filteredPayload[ERRORS], compress), this.ndjsonTransactions(filteredPayload[TRANSACTIONS], compress));\n var ndjsonPayload = ndjson.join('');\n\n var _this$getEndpoints2 = this.getEndpoints(),\n intakeEndpoint = _this$getEndpoints2.intakeEndpoint;\n\n return this._postJson(intakeEndpoint, ndjsonPayload);\n };\n\n _proto.getEndpoints = function getEndpoints() {\n var serverUrl = this._configService.get('serverUrl');\n\n var apiVersion = this._configService.get('apiVersion');\n\n var serverUrlPrefix = this._configService.get('serverUrlPrefix') || \"/intake/v\" + apiVersion + \"/rum/events\";\n var intakeEndpoint = serverUrl + serverUrlPrefix;\n var configEndpoint = serverUrl + \"/config/v1/rum/agents\";\n return {\n intakeEndpoint: intakeEndpoint,\n configEndpoint: configEndpoint\n };\n };\n\n return ApmServer;\n}();\n\nexport default ApmServer;","export default function throttle(fn, onThrottle, opts) {\n var context = this;\n var limit = opts.limit;\n var interval = opts.interval;\n var counter = 0;\n var timeoutId;\n return function () {\n counter++;\n\n if (typeof timeoutId === 'undefined') {\n timeoutId = setTimeout(function () {\n counter = 0;\n timeoutId = undefined;\n }, interval);\n }\n\n if (counter > limit && typeof onThrottle === 'function') {\n return onThrottle.apply(context, arguments);\n } else {\n return fn.apply(context, arguments);\n }\n };\n}","import { BEFORE_EVENT, AFTER_EVENT } from './constants';\n\nvar EventHandler = function () {\n function EventHandler() {\n this.observers = {};\n }\n\n var _proto = EventHandler.prototype;\n\n _proto.observe = function observe(name, fn) {\n var _this = this;\n\n if (typeof fn === 'function') {\n if (!this.observers[name]) {\n this.observers[name] = [];\n }\n\n this.observers[name].push(fn);\n return function () {\n var index = _this.observers[name].indexOf(fn);\n\n if (index > -1) {\n _this.observers[name].splice(index, 1);\n }\n };\n }\n };\n\n _proto.sendOnly = function sendOnly(name, args) {\n var obs = this.observers[name];\n\n if (obs) {\n obs.forEach(function (fn) {\n try {\n fn.apply(undefined, args);\n } catch (error) {\n console.log(error, error.stack);\n }\n });\n }\n };\n\n _proto.send = function send(name, args) {\n this.sendOnly(name + BEFORE_EVENT, args);\n this.sendOnly(name, args);\n this.sendOnly(name + AFTER_EVENT, args);\n };\n\n return EventHandler;\n}();\n\nexport default EventHandler;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getCurrentScript, setLabel, merge, extend, isUndefined } from './utils';\nimport EventHandler from './event-handler';\nimport { CONFIG_CHANGE, LOCAL_CONFIG_KEY } from './constants';\n\nfunction getConfigFromScript() {\n var script = getCurrentScript();\n var config = getDataAttributesFromNode(script);\n return config;\n}\n\nfunction getDataAttributesFromNode(node) {\n if (!node) {\n return {};\n }\n\n var dataAttrs = {};\n var dataRegex = /^data-([\\w-]+)$/;\n var attrs = node.attributes;\n\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n\n if (dataRegex.test(attr.nodeName)) {\n var key = attr.nodeName.match(dataRegex)[1];\n var camelCasedkey = key.split('-').map(function (value, index) {\n return index > 0 ? value.charAt(0).toUpperCase() + value.substring(1) : value;\n }).join('');\n dataAttrs[camelCasedkey] = attr.value || attr.nodeValue;\n }\n }\n\n return dataAttrs;\n}\n\nvar Config = function () {\n function Config() {\n this.config = {\n serviceName: '',\n serviceVersion: '',\n environment: '',\n serverUrl: 'http://localhost:8200',\n serverUrlPrefix: '',\n active: true,\n instrument: true,\n disableInstrumentations: [],\n logLevel: 'warn',\n breakdownMetrics: false,\n ignoreTransactions: [],\n eventsLimit: 80,\n queueLimit: -1,\n flushInterval: 500,\n distributedTracing: true,\n distributedTracingOrigins: [],\n distributedTracingHeaderName: 'traceparent',\n pageLoadTraceId: '',\n pageLoadSpanId: '',\n pageLoadSampled: false,\n pageLoadTransactionName: '',\n propagateTracestate: false,\n transactionSampleRate: 1.0,\n centralConfig: false,\n monitorLongtasks: true,\n apiVersion: 2,\n context: {},\n session: false,\n apmRequest: null,\n sendCredentials: false\n };\n this.events = new EventHandler();\n this.filters = [];\n this.version = '';\n }\n\n var _proto = Config.prototype;\n\n _proto.init = function init() {\n var scriptData = getConfigFromScript();\n this.setConfig(scriptData);\n };\n\n _proto.setVersion = function setVersion(version) {\n this.version = version;\n };\n\n _proto.addFilter = function addFilter(cb) {\n if (typeof cb !== 'function') {\n throw new Error('Argument to must be function');\n }\n\n this.filters.push(cb);\n };\n\n _proto.applyFilters = function applyFilters(data) {\n for (var i = 0; i < this.filters.length; i++) {\n data = this.filters[i](data);\n\n if (!data) {\n return;\n }\n }\n\n return data;\n };\n\n _proto.get = function get(key) {\n return key.split('.').reduce(function (obj, objKey) {\n return obj && obj[objKey];\n }, this.config);\n };\n\n _proto.setUserContext = function setUserContext(userContext) {\n if (userContext === void 0) {\n userContext = {};\n }\n\n var context = {};\n var _userContext = userContext,\n id = _userContext.id,\n username = _userContext.username,\n email = _userContext.email;\n\n if (typeof id === 'number' || typeof id === 'string') {\n context.id = id;\n }\n\n if (typeof username === 'string') {\n context.username = username;\n }\n\n if (typeof email === 'string') {\n context.email = email;\n }\n\n this.config.context.user = extend(this.config.context.user || {}, context);\n };\n\n _proto.setCustomContext = function setCustomContext(customContext) {\n if (customContext === void 0) {\n customContext = {};\n }\n\n this.config.context.custom = extend(this.config.context.custom || {}, customContext);\n };\n\n _proto.addLabels = function addLabels(tags) {\n var _this = this;\n\n if (!this.config.context.tags) {\n this.config.context.tags = {};\n }\n\n var keys = Object.keys(tags);\n keys.forEach(function (k) {\n return setLabel(k, tags[k], _this.config.context.tags);\n });\n };\n\n _proto.setConfig = function setConfig(properties) {\n if (properties === void 0) {\n properties = {};\n }\n\n var _properties = properties,\n transactionSampleRate = _properties.transactionSampleRate,\n serverUrl = _properties.serverUrl;\n\n if (serverUrl) {\n properties.serverUrl = serverUrl.replace(/\\/+$/, '');\n }\n\n if (!isUndefined(transactionSampleRate)) {\n if (transactionSampleRate < 0.0001 && transactionSampleRate > 0) {\n transactionSampleRate = 0.0001;\n }\n\n properties.transactionSampleRate = Math.round(transactionSampleRate * 10000) / 10000;\n }\n\n merge(this.config, properties);\n this.events.send(CONFIG_CHANGE, [this.config]);\n };\n\n _proto.validate = function validate(properties) {\n if (properties === void 0) {\n properties = {};\n }\n\n var requiredKeys = ['serviceName', 'serverUrl'];\n var allKeys = Object.keys(this.config);\n var errors = {\n missing: [],\n invalid: [],\n unknown: []\n };\n Object.keys(properties).forEach(function (key) {\n if (requiredKeys.indexOf(key) !== -1 && !properties[key]) {\n errors.missing.push(key);\n }\n\n if (allKeys.indexOf(key) === -1) {\n errors.unknown.push(key);\n }\n });\n\n if (properties.serviceName && !/^[a-zA-Z0-9 _-]+$/.test(properties.serviceName)) {\n errors.invalid.push({\n key: 'serviceName',\n value: properties.serviceName,\n allowed: 'a-z, A-Z, 0-9, _, -, '\n });\n }\n\n var sampleRate = properties.transactionSampleRate;\n\n if (typeof sampleRate !== 'undefined' && (typeof sampleRate !== 'number' || isNaN(sampleRate) || sampleRate < 0 || sampleRate > 1)) {\n errors.invalid.push({\n key: 'transactionSampleRate',\n value: sampleRate,\n allowed: 'Number between 0 and 1'\n });\n }\n\n return errors;\n };\n\n _proto.getLocalConfig = function getLocalConfig() {\n var storage = sessionStorage;\n\n if (this.config.session) {\n storage = localStorage;\n }\n\n var config = storage.getItem(LOCAL_CONFIG_KEY);\n\n if (config) {\n return JSON.parse(config);\n }\n };\n\n _proto.setLocalConfig = function setLocalConfig(config, merge) {\n if (config) {\n if (merge) {\n var prevConfig = this.getLocalConfig();\n config = _extends({}, prevConfig, config);\n }\n\n var storage = sessionStorage;\n\n if (this.config.session) {\n storage = localStorage;\n }\n\n storage.setItem(LOCAL_CONFIG_KEY, JSON.stringify(config));\n }\n };\n\n _proto.dispatchEvent = function dispatchEvent(name, args) {\n this.events.send(name, args);\n };\n\n _proto.observeEvent = function observeEvent(name, fn) {\n return this.events.observe(name, fn);\n };\n\n return Config;\n}();\n\nexport default Config;","import { noop } from './utils';\n\nvar LoggingService = function () {\n function LoggingService(spec) {\n if (spec === void 0) {\n spec = {};\n }\n\n this.levels = ['trace', 'debug', 'info', 'warn', 'error'];\n this.level = spec.level || 'warn';\n this.prefix = spec.prefix || '';\n this.resetLogMethods();\n }\n\n var _proto = LoggingService.prototype;\n\n _proto.shouldLog = function shouldLog(level) {\n return this.levels.indexOf(level) >= this.levels.indexOf(this.level);\n };\n\n _proto.setLevel = function setLevel(level) {\n if (level === this.level) {\n return;\n }\n\n this.level = level;\n this.resetLogMethods();\n };\n\n _proto.resetLogMethods = function resetLogMethods() {\n var _this = this;\n\n this.levels.forEach(function (level) {\n _this[level] = _this.shouldLog(level) ? log : noop;\n\n function log() {\n var normalizedLevel = level;\n\n if (level === 'trace' || level === 'debug') {\n normalizedLevel = 'info';\n }\n\n var args = arguments;\n args[0] = this.prefix + args[0];\n\n if (console) {\n var realMethod = console[normalizedLevel] || console.log;\n\n if (typeof realMethod === 'function') {\n realMethod.apply(console, args);\n }\n }\n }\n });\n };\n\n return LoggingService;\n}();\n\nexport default LoggingService;","var _serviceCreators;\n\nimport ApmServer from './apm-server';\nimport ConfigService from './config-service';\nimport LoggingService from './logging-service';\nimport { CONFIG_CHANGE, CONFIG_SERVICE, LOGGING_SERVICE, APM_SERVER } from './constants';\nimport { __DEV__ } from '../state';\nvar serviceCreators = (_serviceCreators = {}, _serviceCreators[CONFIG_SERVICE] = function () {\n return new ConfigService();\n}, _serviceCreators[LOGGING_SERVICE] = function () {\n return new LoggingService({\n prefix: '[Elastic APM] '\n });\n}, _serviceCreators[APM_SERVER] = function (factory) {\n var _factory$getService = factory.getService([CONFIG_SERVICE, LOGGING_SERVICE]),\n configService = _factory$getService[0],\n loggingService = _factory$getService[1];\n\n return new ApmServer(configService, loggingService);\n}, _serviceCreators);\n\nvar ServiceFactory = function () {\n function ServiceFactory() {\n this.instances = {};\n this.initialized = false;\n }\n\n var _proto = ServiceFactory.prototype;\n\n _proto.init = function init() {\n if (this.initialized) {\n return;\n }\n\n this.initialized = true;\n var configService = this.getService(CONFIG_SERVICE);\n configService.init();\n\n var _this$getService = this.getService([LOGGING_SERVICE, APM_SERVER]),\n loggingService = _this$getService[0],\n apmServer = _this$getService[1];\n\n configService.events.observe(CONFIG_CHANGE, function () {\n var logLevel = configService.get('logLevel');\n loggingService.setLevel(logLevel);\n });\n apmServer.init();\n };\n\n _proto.getService = function getService(name) {\n var _this = this;\n\n if (typeof name === 'string') {\n if (!this.instances[name]) {\n if (typeof serviceCreators[name] === 'function') {\n this.instances[name] = serviceCreators[name](this);\n } else if (__DEV__) {\n console.log('Cannot get service, No creator for: ' + name);\n }\n }\n\n return this.instances[name];\n } else if (Array.isArray(name)) {\n return name.map(function (n) {\n return _this.getService(n);\n });\n }\n };\n\n return ServiceFactory;\n}();\n\nexport { serviceCreators, ServiceFactory };","import { patchMethod, XHR_SYNC, XHR_URL, XHR_METHOD, XHR_IGNORE } from './patch-utils';\nimport { SCHEDULE, INVOKE, XMLHTTPREQUEST, ADD_EVENT_LISTENER_STR } from '../constants';\nexport function patchXMLHttpRequest(callback) {\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n\n if (!XMLHttpRequestPrototype || !XMLHttpRequestPrototype[ADD_EVENT_LISTENER_STR]) {\n return;\n }\n\n var READY_STATE_CHANGE = 'readystatechange';\n var LOAD = 'load';\n var ERROR = 'error';\n var TIMEOUT = 'timeout';\n var ABORT = 'abort';\n\n function invokeTask(task, status) {\n if (task.state !== INVOKE) {\n task.state = INVOKE;\n task.data.status = status;\n callback(INVOKE, task);\n }\n }\n\n function scheduleTask(task) {\n if (task.state === SCHEDULE) {\n return;\n }\n\n task.state = SCHEDULE;\n callback(SCHEDULE, task);\n var target = task.data.target;\n\n function addListener(name) {\n target[ADD_EVENT_LISTENER_STR](name, function (_ref) {\n var type = _ref.type;\n\n if (type === READY_STATE_CHANGE) {\n if (target.readyState === 4 && target.status !== 0) {\n invokeTask(task, 'success');\n }\n } else {\n var status = type === LOAD ? 'success' : type;\n invokeTask(task, status);\n }\n });\n }\n\n addListener(READY_STATE_CHANGE);\n addListener(LOAD);\n addListener(TIMEOUT);\n addListener(ERROR);\n addListener(ABORT);\n }\n\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () {\n return function (self, args) {\n if (!self[XHR_IGNORE]) {\n self[XHR_METHOD] = args[0];\n self[XHR_URL] = args[1];\n self[XHR_SYNC] = args[2] === false;\n }\n\n return openNative.apply(self, args);\n };\n });\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () {\n return function (self, args) {\n if (self[XHR_IGNORE]) {\n return sendNative.apply(self, args);\n }\n\n var task = {\n source: XMLHTTPREQUEST,\n state: '',\n type: 'macroTask',\n data: {\n target: self,\n method: self[XHR_METHOD],\n sync: self[XHR_SYNC],\n url: self[XHR_URL],\n status: ''\n }\n };\n\n try {\n scheduleTask(task);\n return sendNative.apply(self, args);\n } catch (e) {\n invokeTask(task, ERROR);\n throw e;\n }\n };\n });\n}","import { Promise } from '../polyfills';\nimport { globalState } from './patch-utils';\nimport { SCHEDULE, INVOKE, FETCH } from '../constants';\nimport { scheduleMicroTask } from '../utils';\nimport { isFetchSupported } from '../http/fetch';\nexport function patchFetch(callback) {\n if (!isFetchSupported()) {\n return;\n }\n\n function scheduleTask(task) {\n task.state = SCHEDULE;\n callback(SCHEDULE, task);\n }\n\n function invokeTask(task) {\n task.state = INVOKE;\n callback(INVOKE, task);\n }\n\n function handleResponseError(task, error) {\n task.data.aborted = isAbortError(error);\n task.data.error = error;\n invokeTask(task);\n }\n\n function readStream(stream, task) {\n var reader = stream.getReader();\n\n var read = function read() {\n reader.read().then(function (_ref) {\n var done = _ref.done;\n\n if (done) {\n invokeTask(task);\n } else {\n read();\n }\n }, function (error) {\n handleResponseError(task, error);\n });\n };\n\n read();\n }\n\n var nativeFetch = window.fetch;\n\n window.fetch = function (input, init) {\n var fetchSelf = this;\n var args = arguments;\n var request, url;\n var isURL = input instanceof URL;\n\n if (typeof input === 'string' || isURL) {\n request = new Request(input, init);\n\n if (isURL) {\n url = request.url;\n } else {\n url = input;\n }\n } else if (input) {\n request = input;\n url = request.url;\n } else {\n return nativeFetch.apply(fetchSelf, args);\n }\n\n var task = {\n source: FETCH,\n state: '',\n type: 'macroTask',\n data: {\n target: request,\n method: request.method,\n url: url,\n aborted: false\n }\n };\n return new Promise(function (resolve, reject) {\n globalState.fetchInProgress = true;\n scheduleTask(task);\n var promise;\n\n try {\n promise = nativeFetch.apply(fetchSelf, [request]);\n } catch (error) {\n reject(error);\n task.data.error = error;\n invokeTask(task);\n globalState.fetchInProgress = false;\n return;\n }\n\n promise.then(function (response) {\n var clonedResponse = response.clone ? response.clone() : {};\n resolve(response);\n scheduleMicroTask(function () {\n task.data.response = response;\n var body = clonedResponse.body;\n\n if (body) {\n readStream(body, task);\n } else {\n invokeTask(task);\n }\n });\n }, function (error) {\n reject(error);\n scheduleMicroTask(function () {\n handleResponseError(task, error);\n });\n });\n globalState.fetchInProgress = false;\n });\n };\n}\n\nfunction isAbortError(error) {\n return error && error.name === 'AbortError';\n}","import { patchXMLHttpRequest } from './xhr-patch';\nimport { patchFetch } from './fetch-patch';\nimport { patchHistory } from './history-patch';\nimport EventHandler from '../event-handler';\nimport { HISTORY, FETCH, XMLHTTPREQUEST } from '../constants';\nvar patchEventHandler = new EventHandler();\nvar alreadyPatched = false;\n\nfunction patchAll() {\n if (!alreadyPatched) {\n alreadyPatched = true;\n patchXMLHttpRequest(function (event, task) {\n patchEventHandler.send(XMLHTTPREQUEST, [event, task]);\n });\n patchFetch(function (event, task) {\n patchEventHandler.send(FETCH, [event, task]);\n });\n patchHistory(function (event, task) {\n patchEventHandler.send(HISTORY, [event, task]);\n });\n }\n\n return patchEventHandler;\n}\n\nexport { patchAll, patchEventHandler };","import { INVOKE, HISTORY } from '../constants';\nexport function patchHistory(callback) {\n if (!window.history) {\n return;\n }\n\n var nativePushState = history.pushState;\n\n if (typeof nativePushState === 'function') {\n history.pushState = function (state, title, url) {\n var task = {\n source: HISTORY,\n data: {\n state: state,\n title: title,\n url: url\n }\n };\n callback(INVOKE, task);\n nativePushState.apply(this, arguments);\n };\n }\n}","import { checkSameOrigin, isDtHeaderValid, parseDtHeaderValue, getDtHeaderValue, getTSHeaderValue, stripQueryStringFromUrl, setRequestHeader } from '../common/utils';\nimport { Url } from '../common/url';\nimport { patchEventHandler } from '../common/patching';\nimport { globalState } from '../common/patching/patch-utils';\nimport { SCHEDULE, INVOKE, TRANSACTION_END, AFTER_EVENT, FETCH, HISTORY, XMLHTTPREQUEST, HTTP_REQUEST_TYPE, OUTCOME_FAILURE, OUTCOME_SUCCESS, OUTCOME_UNKNOWN, QUEUE_ADD_TRANSACTION, TRANSACTION_IGNORE } from '../common/constants';\nimport { truncateModel, SPAN_MODEL, TRANSACTION_MODEL } from '../common/truncate';\nimport { __DEV__ } from '../state';\nvar SIMILAR_SPAN_TO_TRANSACTION_RATIO = 0.05;\nvar TRANSACTION_DURATION_THRESHOLD = 60000;\nexport function groupSmallContinuouslySimilarSpans(originalSpans, transDuration, threshold) {\n originalSpans.sort(function (spanA, spanB) {\n return spanA._start - spanB._start;\n });\n var spans = [];\n var lastCount = 1;\n originalSpans.forEach(function (span, index) {\n if (spans.length === 0) {\n spans.push(span);\n } else {\n var lastSpan = spans[spans.length - 1];\n var isContinuouslySimilar = lastSpan.type === span.type && lastSpan.subtype === span.subtype && lastSpan.action === span.action && lastSpan.name === span.name && span.duration() / transDuration < threshold && (span._start - lastSpan._end) / transDuration < threshold;\n var isLastSpan = originalSpans.length === index + 1;\n\n if (isContinuouslySimilar) {\n lastCount++;\n lastSpan._end = span._end;\n }\n\n if (lastCount > 1 && (!isContinuouslySimilar || isLastSpan)) {\n lastSpan.name = lastCount + 'x ' + lastSpan.name;\n lastCount = 1;\n }\n\n if (!isContinuouslySimilar) {\n spans.push(span);\n }\n }\n });\n return spans;\n}\nexport function adjustTransaction(transaction) {\n if (transaction.sampled) {\n var filterdSpans = transaction.spans.filter(function (span) {\n return span.duration() > 0 && span._start >= transaction._start && span._end <= transaction._end;\n });\n\n if (transaction.isManaged()) {\n var duration = transaction.duration();\n var similarSpans = groupSmallContinuouslySimilarSpans(filterdSpans, duration, SIMILAR_SPAN_TO_TRANSACTION_RATIO);\n transaction.spans = similarSpans;\n } else {\n transaction.spans = filterdSpans;\n }\n } else {\n transaction.resetFields();\n }\n\n return transaction;\n}\n\nvar PerformanceMonitoring = function () {\n function PerformanceMonitoring(apmServer, configService, loggingService, transactionService) {\n this._apmServer = apmServer;\n this._configService = configService;\n this._logginService = loggingService;\n this._transactionService = transactionService;\n }\n\n var _proto = PerformanceMonitoring.prototype;\n\n _proto.init = function init(flags) {\n var _this = this;\n\n if (flags === void 0) {\n flags = {};\n }\n\n this._configService.events.observe(TRANSACTION_END + AFTER_EVENT, function (tr) {\n var payload = _this.createTransactionPayload(tr);\n\n if (payload) {\n _this._apmServer.addTransaction(payload);\n\n _this._configService.dispatchEvent(QUEUE_ADD_TRANSACTION);\n }\n });\n\n if (flags[HISTORY]) {\n patchEventHandler.observe(HISTORY, this.getHistorySub());\n }\n\n if (flags[XMLHTTPREQUEST]) {\n patchEventHandler.observe(XMLHTTPREQUEST, this.getXHRSub());\n }\n\n if (flags[FETCH]) {\n patchEventHandler.observe(FETCH, this.getFetchSub());\n }\n };\n\n _proto.getHistorySub = function getHistorySub() {\n var transactionService = this._transactionService;\n return function (event, task) {\n if (task.source === HISTORY && event === INVOKE) {\n transactionService.startTransaction(task.data.title, 'route-change', {\n managed: true,\n canReuse: true\n });\n }\n };\n };\n\n _proto.getXHRSub = function getXHRSub() {\n var _this2 = this;\n\n return function (event, task) {\n if (task.source === XMLHTTPREQUEST && !globalState.fetchInProgress) {\n _this2.processAPICalls(event, task);\n }\n };\n };\n\n _proto.getFetchSub = function getFetchSub() {\n var _this3 = this;\n\n return function (event, task) {\n if (task.source === FETCH) {\n _this3.processAPICalls(event, task);\n }\n };\n };\n\n _proto.processAPICalls = function processAPICalls(event, task) {\n var configService = this._configService;\n var transactionService = this._transactionService;\n\n if (task.data && task.data.url) {\n var endpoints = this._apmServer.getEndpoints();\n\n var isOwnEndpoint = Object.keys(endpoints).some(function (endpoint) {\n return task.data.url.indexOf(endpoints[endpoint]) !== -1;\n });\n\n if (isOwnEndpoint) {\n return;\n }\n }\n\n if (event === SCHEDULE && task.data) {\n var data = task.data;\n var requestUrl = new Url(data.url);\n var spanName = data.method + ' ' + (requestUrl.relative ? requestUrl.path : stripQueryStringFromUrl(requestUrl.href));\n\n if (!transactionService.getCurrentTransaction()) {\n transactionService.startTransaction(spanName, HTTP_REQUEST_TYPE, {\n managed: true\n });\n }\n\n var span = transactionService.startSpan(spanName, 'external.http', {\n blocking: true\n });\n\n if (!span) {\n return;\n }\n\n var isDtEnabled = configService.get('distributedTracing');\n var dtOrigins = configService.get('distributedTracingOrigins');\n var currentUrl = new Url(window.location.href);\n var isSameOrigin = checkSameOrigin(requestUrl.origin, currentUrl.origin) || checkSameOrigin(requestUrl.origin, dtOrigins);\n var target = data.target;\n\n if (isDtEnabled && isSameOrigin && target) {\n this.injectDtHeader(span, target);\n var propagateTracestate = configService.get('propagateTracestate');\n\n if (propagateTracestate) {\n this.injectTSHeader(span, target);\n }\n } else if (__DEV__) {\n this._logginService.debug(\"Could not inject distributed tracing header to the request origin ('\" + requestUrl.origin + \"') from the current origin ('\" + currentUrl.origin + \"')\");\n }\n\n if (data.sync) {\n span.sync = data.sync;\n }\n\n data.span = span;\n } else if (event === INVOKE) {\n var _data = task.data;\n\n if (_data && _data.span) {\n var _span = _data.span,\n response = _data.response,\n _target = _data.target;\n var status;\n\n if (response) {\n status = response.status;\n } else {\n status = _target.status;\n }\n\n var outcome;\n\n if (_data.status != 'abort' && !_data.aborted) {\n if (status >= 400 || status == 0) {\n outcome = OUTCOME_FAILURE;\n } else {\n outcome = OUTCOME_SUCCESS;\n }\n } else {\n outcome = OUTCOME_UNKNOWN;\n }\n\n _span.outcome = outcome;\n var tr = transactionService.getCurrentTransaction();\n\n if (tr && tr.type === HTTP_REQUEST_TYPE) {\n tr.outcome = outcome;\n }\n\n transactionService.endSpan(_span, _data);\n }\n }\n };\n\n _proto.injectDtHeader = function injectDtHeader(span, target) {\n var headerName = this._configService.get('distributedTracingHeaderName');\n\n var headerValue = getDtHeaderValue(span);\n var isHeaderValid = isDtHeaderValid(headerValue);\n\n if (isHeaderValid && headerValue && headerName) {\n setRequestHeader(target, headerName, headerValue);\n }\n };\n\n _proto.injectTSHeader = function injectTSHeader(span, target) {\n var headerValue = getTSHeaderValue(span);\n\n if (headerValue) {\n setRequestHeader(target, 'tracestate', headerValue);\n }\n };\n\n _proto.extractDtHeader = function extractDtHeader(target) {\n var configService = this._configService;\n var headerName = configService.get('distributedTracingHeaderName');\n\n if (target) {\n return parseDtHeaderValue(target[headerName]);\n }\n };\n\n _proto.filterTransaction = function filterTransaction(tr) {\n var duration = tr.duration();\n\n if (!duration) {\n if (__DEV__) {\n var message = \"transaction(\" + tr.id + \", \" + tr.name + \") was discarded! \";\n\n if (duration === 0) {\n message += \"Transaction duration is 0\";\n } else {\n message += \"Transaction wasn't ended\";\n }\n\n this._logginService.debug(message);\n }\n\n return false;\n }\n\n if (tr.isManaged()) {\n if (duration > TRANSACTION_DURATION_THRESHOLD) {\n if (__DEV__) {\n this._logginService.debug(\"transaction(\" + tr.id + \", \" + tr.name + \") was discarded! Transaction duration (\" + duration + \") is greater than managed transaction threshold (\" + TRANSACTION_DURATION_THRESHOLD + \")\");\n }\n\n return false;\n }\n\n if (tr.sampled && tr.spans.length === 0) {\n if (__DEV__) {\n this._logginService.debug(\"transaction(\" + tr.id + \", \" + tr.name + \") was discarded! Transaction does not have any spans\");\n }\n\n return false;\n }\n }\n\n return true;\n };\n\n _proto.createTransactionDataModel = function createTransactionDataModel(transaction) {\n var transactionStart = transaction._start;\n var spans = transaction.spans.map(function (span) {\n var spanData = {\n id: span.id,\n transaction_id: transaction.id,\n parent_id: span.parentId || transaction.id,\n trace_id: transaction.traceId,\n name: span.name,\n type: span.type,\n subtype: span.subtype,\n action: span.action,\n sync: span.sync,\n start: parseInt(span._start - transactionStart),\n duration: span.duration(),\n context: span.context,\n outcome: span.outcome,\n sample_rate: span.sampleRate\n };\n return truncateModel(SPAN_MODEL, spanData);\n });\n var transactionData = {\n id: transaction.id,\n trace_id: transaction.traceId,\n session: transaction.session,\n name: transaction.name,\n type: transaction.type,\n duration: transaction.duration(),\n spans: spans,\n context: transaction.context,\n marks: transaction.marks,\n breakdown: transaction.breakdownTimings,\n span_count: {\n started: spans.length\n },\n sampled: transaction.sampled,\n sample_rate: transaction.sampleRate,\n experience: transaction.experience,\n outcome: transaction.outcome\n };\n return truncateModel(TRANSACTION_MODEL, transactionData);\n };\n\n _proto.createTransactionPayload = function createTransactionPayload(transaction) {\n var adjustedTransaction = adjustTransaction(transaction);\n var filtered = this.filterTransaction(adjustedTransaction);\n\n if (filtered) {\n return this.createTransactionDataModel(transaction);\n }\n\n this._configService.dispatchEvent(TRANSACTION_IGNORE);\n };\n\n return PerformanceMonitoring;\n}();\n\nexport { PerformanceMonitoring as default };","import { generateRandomId, setLabel, merge, getDuration, getTime } from '../common/utils';\nimport { NAME_UNKNOWN, TYPE_CUSTOM } from '../common/constants';\n\nvar SpanBase = function () {\n function SpanBase(name, type, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!name) {\n name = NAME_UNKNOWN;\n }\n\n if (!type) {\n type = TYPE_CUSTOM;\n }\n\n this.name = name;\n this.type = type;\n this.options = options;\n this.id = options.id || generateRandomId(16);\n this.traceId = options.traceId;\n this.sampled = options.sampled;\n this.sampleRate = options.sampleRate;\n this.timestamp = options.timestamp;\n this._start = getTime(options.startTime);\n this._end = undefined;\n this.ended = false;\n this.outcome = undefined;\n this.onEnd = options.onEnd;\n }\n\n var _proto = SpanBase.prototype;\n\n _proto.ensureContext = function ensureContext() {\n if (!this.context) {\n this.context = {};\n }\n };\n\n _proto.addLabels = function addLabels(tags) {\n this.ensureContext();\n var ctx = this.context;\n\n if (!ctx.tags) {\n ctx.tags = {};\n }\n\n var keys = Object.keys(tags);\n keys.forEach(function (k) {\n return setLabel(k, tags[k], ctx.tags);\n });\n };\n\n _proto.addContext = function addContext() {\n for (var _len = arguments.length, context = new Array(_len), _key = 0; _key < _len; _key++) {\n context[_key] = arguments[_key];\n }\n\n if (context.length === 0) return;\n this.ensureContext();\n merge.apply(void 0, [this.context].concat(context));\n };\n\n _proto.end = function end(endTime) {\n if (this.ended) {\n return;\n }\n\n this.ended = true;\n this._end = getTime(endTime);\n this.callOnEnd();\n };\n\n _proto.callOnEnd = function callOnEnd() {\n if (typeof this.onEnd === 'function') {\n this.onEnd(this);\n }\n };\n\n _proto.duration = function duration() {\n return getDuration(this._start, this._end);\n };\n\n return SpanBase;\n}();\n\nexport default SpanBase;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport SpanBase from './span-base';\nimport { addSpanContext } from '../common/context';\n\nvar Span = function (_SpanBase) {\n _inheritsLoose(Span, _SpanBase);\n\n function Span(name, type, options) {\n var _this;\n\n _this = _SpanBase.call(this, name, type, options) || this;\n _this.parentId = _this.options.parentId;\n _this.subtype = undefined;\n _this.action = undefined;\n\n if (_this.type.indexOf('.') !== -1) {\n var fields = _this.type.split('.', 3);\n\n _this.type = fields[0];\n _this.subtype = fields[1];\n _this.action = fields[2];\n }\n\n _this.sync = _this.options.sync;\n return _this;\n }\n\n var _proto = Span.prototype;\n\n _proto.end = function end(endTime, data) {\n _SpanBase.prototype.end.call(this, endTime);\n\n addSpanContext(this, data);\n };\n\n return Span;\n}(SpanBase);\n\nexport default Span;","import { getDuration, PERF } from '../common/utils';\nimport { PAGE_LOAD, TRUNCATED_TYPE } from '../common/constants';\nvar pageLoadBreakdowns = [['domainLookupStart', 'domainLookupEnd', 'DNS'], ['connectStart', 'connectEnd', 'TCP'], ['requestStart', 'responseStart', 'Request'], ['responseStart', 'responseEnd', 'Response'], ['domLoading', 'domComplete', 'Processing'], ['loadEventStart', 'loadEventEnd', 'Load']];\n\nfunction getValue(value) {\n return {\n value: value\n };\n}\n\nfunction calculateSelfTime(transaction) {\n var spans = transaction.spans,\n _start = transaction._start,\n _end = transaction._end;\n\n if (spans.length === 0) {\n return transaction.duration();\n }\n\n spans.sort(function (span1, span2) {\n return span1._start - span2._start;\n });\n var span = spans[0];\n var spanEnd = span._end;\n var spanStart = span._start;\n var lastContinuousEnd = spanEnd;\n var selfTime = spanStart - _start;\n\n for (var i = 1; i < spans.length; i++) {\n span = spans[i];\n spanStart = span._start;\n spanEnd = span._end;\n\n if (spanStart > lastContinuousEnd) {\n selfTime += spanStart - lastContinuousEnd;\n lastContinuousEnd = spanEnd;\n } else if (spanEnd > lastContinuousEnd) {\n lastContinuousEnd = spanEnd;\n }\n }\n\n if (lastContinuousEnd < _end) {\n selfTime += _end - lastContinuousEnd;\n }\n\n return selfTime;\n}\n\nfunction groupSpans(transaction) {\n var spanMap = {};\n var transactionSelfTime = calculateSelfTime(transaction);\n spanMap['app'] = {\n count: 1,\n duration: transactionSelfTime\n };\n var spans = transaction.spans;\n\n for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n var duration = span.duration();\n\n if (duration === 0 || duration == null) {\n continue;\n }\n\n var type = span.type,\n subtype = span.subtype;\n var key = type.replace(TRUNCATED_TYPE, '');\n\n if (subtype) {\n key += '.' + subtype;\n }\n\n if (!spanMap[key]) {\n spanMap[key] = {\n duration: 0,\n count: 0\n };\n }\n\n spanMap[key].count++;\n spanMap[key].duration += duration;\n }\n\n return spanMap;\n}\n\nfunction getSpanBreakdown(transactionDetails, _ref) {\n var details = _ref.details,\n _ref$count = _ref.count,\n count = _ref$count === void 0 ? 1 : _ref$count,\n duration = _ref.duration;\n return {\n transaction: transactionDetails,\n span: details,\n samples: {\n 'span.self_time.count': getValue(count),\n 'span.self_time.sum.us': getValue(duration * 1000)\n }\n };\n}\n\nexport function captureBreakdown(transaction, timings) {\n if (timings === void 0) {\n timings = PERF.timing;\n }\n\n var breakdowns = [];\n var name = transaction.name,\n type = transaction.type,\n sampled = transaction.sampled;\n var transactionDetails = {\n name: name,\n type: type\n };\n\n if (!sampled) {\n return breakdowns;\n }\n\n if (type === PAGE_LOAD && timings) {\n for (var i = 0; i < pageLoadBreakdowns.length; i++) {\n var current = pageLoadBreakdowns[i];\n var start = timings[current[0]];\n var end = timings[current[1]];\n var duration = getDuration(start, end);\n\n if (duration === 0 || duration == null) {\n continue;\n }\n\n breakdowns.push(getSpanBreakdown(transactionDetails, {\n details: {\n type: current[2]\n },\n duration: duration\n }));\n }\n } else {\n var spanMap = groupSpans(transaction);\n Object.keys(spanMap).forEach(function (key) {\n var _key$split = key.split('.'),\n type = _key$split[0],\n subtype = _key$split[1];\n\n var _spanMap$key = spanMap[key],\n duration = _spanMap$key.duration,\n count = _spanMap$key.count;\n breakdowns.push(getSpanBreakdown(transactionDetails, {\n details: {\n type: type,\n subtype: subtype\n },\n duration: duration,\n count: count\n }));\n });\n }\n\n return breakdowns;\n}","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport Span from './span';\nimport SpanBase from './span-base';\nimport { generateRandomId, merge, now, getTime, extend, removeInvalidChars } from '../common/utils';\nimport { REUSABILITY_THRESHOLD, TRUNCATED_TYPE } from '../common/constants';\nimport { captureBreakdown as _captureBreakdown } from './breakdown';\n\nvar Transaction = function (_SpanBase) {\n _inheritsLoose(Transaction, _SpanBase);\n\n function Transaction(name, type, options) {\n var _this;\n\n _this = _SpanBase.call(this, name, type, options) || this;\n _this.traceId = generateRandomId();\n _this.marks = undefined;\n _this.spans = [];\n _this._activeSpans = {};\n _this._activeTasks = new Set();\n _this.blocked = false;\n _this.captureTimings = false;\n _this.breakdownTimings = [];\n _this.sampleRate = _this.options.transactionSampleRate;\n _this.sampled = Math.random() <= _this.sampleRate;\n return _this;\n }\n\n var _proto = Transaction.prototype;\n\n _proto.addMarks = function addMarks(obj) {\n this.marks = merge(this.marks || {}, obj);\n };\n\n _proto.mark = function mark(key) {\n var skey = removeInvalidChars(key);\n\n var markTime = now() - this._start;\n\n var custom = {};\n custom[skey] = markTime;\n this.addMarks({\n custom: custom\n });\n };\n\n _proto.canReuse = function canReuse() {\n var threshold = this.options.reuseThreshold || REUSABILITY_THRESHOLD;\n return !!this.options.canReuse && !this.ended && now() - this._start < threshold;\n };\n\n _proto.redefine = function redefine(name, type, options) {\n if (name) {\n this.name = name;\n }\n\n if (type) {\n this.type = type;\n }\n\n if (options) {\n this.options.reuseThreshold = options.reuseThreshold;\n extend(this.options, options);\n }\n };\n\n _proto.startSpan = function startSpan(name, type, options) {\n var _this2 = this;\n\n if (this.ended) {\n return;\n }\n\n var opts = extend({}, options);\n\n opts.onEnd = function (trc) {\n _this2._onSpanEnd(trc);\n };\n\n opts.traceId = this.traceId;\n opts.sampled = this.sampled;\n opts.sampleRate = this.sampleRate;\n\n if (!opts.parentId) {\n opts.parentId = this.id;\n }\n\n var span = new Span(name, type, opts);\n this._activeSpans[span.id] = span;\n\n if (opts.blocking) {\n this.addTask(span.id);\n }\n\n return span;\n };\n\n _proto.isFinished = function isFinished() {\n return !this.blocked && this._activeTasks.size === 0;\n };\n\n _proto.detectFinish = function detectFinish() {\n if (this.isFinished()) this.end();\n };\n\n _proto.end = function end(endTime) {\n if (this.ended) {\n return;\n }\n\n this.ended = true;\n this._end = getTime(endTime);\n\n for (var sid in this._activeSpans) {\n var span = this._activeSpans[sid];\n span.type = span.type + TRUNCATED_TYPE;\n span.end(endTime);\n }\n\n this.callOnEnd();\n };\n\n _proto.captureBreakdown = function captureBreakdown() {\n this.breakdownTimings = _captureBreakdown(this);\n };\n\n _proto.block = function block(flag) {\n this.blocked = flag;\n\n if (!this.blocked) {\n this.detectFinish();\n }\n };\n\n _proto.addTask = function addTask(taskId) {\n if (!taskId) {\n taskId = 'task-' + generateRandomId(16);\n }\n\n this._activeTasks.add(taskId);\n\n return taskId;\n };\n\n _proto.removeTask = function removeTask(taskId) {\n var deleted = this._activeTasks.delete(taskId);\n\n deleted && this.detectFinish();\n };\n\n _proto.resetFields = function resetFields() {\n this.spans = [];\n this.sampleRate = 0;\n };\n\n _proto._onSpanEnd = function _onSpanEnd(span) {\n this.spans.push(span);\n delete this._activeSpans[span.id];\n this.removeTask(span.id);\n };\n\n _proto.isManaged = function isManaged() {\n return !!this.options.managed;\n };\n\n return Transaction;\n}(SpanBase);\n\nexport default Transaction;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { LONG_TASK, LARGEST_CONTENTFUL_PAINT, FIRST_CONTENTFUL_PAINT, FIRST_INPUT, LAYOUT_SHIFT } from '../../common/constants';\nimport { noop, PERF, isPerfTypeSupported, isRedirectInfoAvailable } from '../../common/utils';\nimport Span from '../span';\nexport var metrics = {\n fid: 0,\n fcp: 0,\n tbt: {\n start: Infinity,\n duration: 0\n },\n cls: {\n score: 0,\n firstEntryTime: Number.NEGATIVE_INFINITY,\n prevEntryTime: Number.NEGATIVE_INFINITY,\n currentSessionScore: 0\n },\n longtask: {\n count: 0,\n duration: 0,\n max: 0\n }\n};\nvar LONG_TASK_THRESHOLD = 50;\nexport function createLongTaskSpans(longtasks, agg) {\n var spans = [];\n\n for (var i = 0; i < longtasks.length; i++) {\n var _longtasks$i = longtasks[i],\n name = _longtasks$i.name,\n startTime = _longtasks$i.startTime,\n duration = _longtasks$i.duration,\n attribution = _longtasks$i.attribution;\n var end = startTime + duration;\n var span = new Span(\"Longtask(\" + name + \")\", LONG_TASK, {\n startTime: startTime\n });\n agg.count++;\n agg.duration += duration;\n agg.max = Math.max(duration, agg.max);\n\n if (attribution.length > 0) {\n var _attribution$ = attribution[0],\n _name = _attribution$.name,\n containerType = _attribution$.containerType,\n containerName = _attribution$.containerName,\n containerId = _attribution$.containerId;\n var customContext = {\n attribution: _name,\n type: containerType\n };\n\n if (containerName) {\n customContext.name = containerName;\n }\n\n if (containerId) {\n customContext.id = containerId;\n }\n\n span.addContext({\n custom: customContext\n });\n }\n\n span.end(end);\n spans.push(span);\n }\n\n return spans;\n}\nexport function createFirstInputDelaySpan(fidEntries) {\n var firstInput = fidEntries[0];\n\n if (firstInput) {\n var startTime = firstInput.startTime,\n processingStart = firstInput.processingStart;\n var span = new Span('First Input Delay', FIRST_INPUT, {\n startTime: startTime\n });\n span.end(processingStart);\n return span;\n }\n}\nexport function createTotalBlockingTimeSpan(tbtObject) {\n var start = tbtObject.start,\n duration = tbtObject.duration;\n var tbtSpan = new Span('Total Blocking Time', LONG_TASK, {\n startTime: start\n });\n tbtSpan.end(start + duration);\n return tbtSpan;\n}\nexport function calculateTotalBlockingTime(longtaskEntries) {\n longtaskEntries.forEach(function (entry) {\n var name = entry.name,\n startTime = entry.startTime,\n duration = entry.duration;\n\n if (startTime < metrics.fcp) {\n return;\n }\n\n if (name !== 'self' && name.indexOf('same-origin') === -1) {\n return;\n }\n\n metrics.tbt.start = Math.min(metrics.tbt.start, startTime);\n var blockingTime = duration - LONG_TASK_THRESHOLD;\n\n if (blockingTime > 0) {\n metrics.tbt.duration += blockingTime;\n }\n });\n}\nexport function calculateCumulativeLayoutShift(clsEntries) {\n clsEntries.forEach(function (entry) {\n if (!entry.hadRecentInput && entry.value) {\n var shouldCreateNewSession = entry.startTime - metrics.cls.firstEntryTime > 5000 || entry.startTime - metrics.cls.prevEntryTime > 1000;\n\n if (shouldCreateNewSession) {\n metrics.cls.firstEntryTime = entry.startTime;\n metrics.cls.currentSessionScore = 0;\n }\n\n metrics.cls.prevEntryTime = entry.startTime;\n metrics.cls.currentSessionScore += entry.value;\n metrics.cls.score = Math.max(metrics.cls.score, metrics.cls.currentSessionScore);\n }\n });\n}\nexport function captureObserverEntries(list, _ref) {\n var isHardNavigation = _ref.isHardNavigation,\n trStart = _ref.trStart;\n var longtaskEntries = list.getEntriesByType(LONG_TASK).filter(function (entry) {\n return entry.startTime >= trStart;\n });\n var longTaskSpans = createLongTaskSpans(longtaskEntries, metrics.longtask);\n var result = {\n spans: longTaskSpans,\n marks: {}\n };\n\n if (!isHardNavigation) {\n return result;\n }\n\n var lcpEntries = list.getEntriesByType(LARGEST_CONTENTFUL_PAINT);\n var lastLcpEntry = lcpEntries[lcpEntries.length - 1];\n\n if (lastLcpEntry) {\n var lcp = parseInt(lastLcpEntry.startTime);\n metrics.lcp = lcp;\n result.marks.largestContentfulPaint = lcp;\n }\n\n var timing = PERF.timing;\n var unloadDiff = timing.fetchStart - timing.navigationStart;\n\n if (isRedirectInfoAvailable(timing)) {\n unloadDiff = 0;\n }\n\n var fcpEntry = list.getEntriesByName(FIRST_CONTENTFUL_PAINT)[0];\n\n if (fcpEntry) {\n var fcp = parseInt(unloadDiff >= 0 ? fcpEntry.startTime - unloadDiff : fcpEntry.startTime);\n metrics.fcp = fcp;\n result.marks.firstContentfulPaint = fcp;\n }\n\n var fidEntries = list.getEntriesByType(FIRST_INPUT);\n var fidSpan = createFirstInputDelaySpan(fidEntries);\n\n if (fidSpan) {\n metrics.fid = fidSpan.duration();\n result.spans.push(fidSpan);\n }\n\n calculateTotalBlockingTime(longtaskEntries);\n var clsEntries = list.getEntriesByType(LAYOUT_SHIFT);\n calculateCumulativeLayoutShift(clsEntries);\n return result;\n}\nexport var PerfEntryRecorder = function () {\n function PerfEntryRecorder(callback) {\n this.po = {\n observe: noop,\n disconnect: noop\n };\n\n if (window.PerformanceObserver) {\n this.po = new PerformanceObserver(callback);\n }\n }\n\n var _proto = PerfEntryRecorder.prototype;\n\n _proto.start = function start(type, options) {\n if (options === void 0) {\n options = {\n buffered: true\n };\n }\n\n try {\n if (!isPerfTypeSupported(type)) {\n return;\n }\n\n this.po.observe(_extends({\n type: type\n }, options));\n } catch (_) {}\n };\n\n _proto.stop = function stop() {\n this.po.disconnect();\n };\n\n return PerfEntryRecorder;\n}();","import { MAX_SPAN_DURATION } from '../../common/constants';\n\nfunction shouldCreateSpan(start, end, trStart, trEnd, baseTime) {\n if (baseTime === void 0) {\n baseTime = 0;\n }\n\n return typeof start === 'number' && typeof end === 'number' && start >= baseTime && end > start && start - baseTime >= trStart && end - baseTime <= trEnd && end - start < MAX_SPAN_DURATION && start - baseTime < MAX_SPAN_DURATION && end - baseTime < MAX_SPAN_DURATION;\n}\n\nexport { shouldCreateSpan };","import { shouldCreateSpan } from './utils';\nimport Span from '../span';\nvar eventPairs = [['redirectStart', 'redirectEnd', 'Redirect'], ['domainLookupStart', 'domainLookupEnd', 'Domain lookup'], ['connectStart', 'connectEnd', 'Making a connection to the server'], ['requestStart', 'responseEnd', 'Requesting and receiving the document'], ['domLoading', 'domInteractive', 'Parsing the document, executing sync. scripts'], ['domContentLoadedEventStart', 'domContentLoadedEventEnd', 'Fire \"DOMContentLoaded\" event'], ['loadEventStart', 'loadEventEnd', 'Fire \"load\" event']];\n\nfunction createNavigationTimingSpans(timings, baseTime, trStart, trEnd) {\n var spans = [];\n\n for (var i = 0; i < eventPairs.length; i++) {\n var start = timings[eventPairs[i][0]];\n var end = timings[eventPairs[i][1]];\n\n if (!shouldCreateSpan(start, end, trStart, trEnd, baseTime)) {\n continue;\n }\n\n var span = new Span(eventPairs[i][2], 'hard-navigation.browser-timing');\n var data = null;\n\n if (eventPairs[i][0] === 'requestStart') {\n span.pageResponse = true;\n data = {\n url: location.origin\n };\n }\n\n span._start = start - baseTime;\n span.end(end - baseTime, data);\n spans.push(span);\n }\n\n return spans;\n}\n\nexport { createNavigationTimingSpans };","import { stripQueryStringFromUrl } from '../../common/utils';\nimport { shouldCreateSpan } from './utils';\nimport { RESOURCE_INITIATOR_TYPES } from '../../common/constants';\nimport Span from '../span';\n\nfunction createResourceTimingSpan(resourceTimingEntry) {\n var name = resourceTimingEntry.name,\n initiatorType = resourceTimingEntry.initiatorType,\n startTime = resourceTimingEntry.startTime,\n responseEnd = resourceTimingEntry.responseEnd;\n var kind = 'resource';\n\n if (initiatorType) {\n kind += '.' + initiatorType;\n }\n\n var spanName = stripQueryStringFromUrl(name);\n var span = new Span(spanName, kind);\n span._start = startTime;\n span.end(responseEnd, {\n url: name,\n entry: resourceTimingEntry\n });\n return span;\n}\n\nfunction isCapturedByPatching(resourceStartTime, requestPatchTime) {\n return requestPatchTime != null && resourceStartTime > requestPatchTime;\n}\n\nfunction isIntakeAPIEndpoint(url) {\n return /intake\\/v\\d+\\/rum\\/events/.test(url);\n}\n\nfunction createResourceTimingSpans(entries, requestPatchTime, trStart, trEnd) {\n var spans = [];\n\n for (var i = 0; i < entries.length; i++) {\n var _entries$i = entries[i],\n initiatorType = _entries$i.initiatorType,\n name = _entries$i.name,\n startTime = _entries$i.startTime,\n responseEnd = _entries$i.responseEnd;\n\n if (RESOURCE_INITIATOR_TYPES.indexOf(initiatorType) === -1 || name == null) {\n continue;\n }\n\n if ((initiatorType === 'xmlhttprequest' || initiatorType === 'fetch') && (isIntakeAPIEndpoint(name) || isCapturedByPatching(startTime, requestPatchTime))) {\n continue;\n }\n\n if (shouldCreateSpan(startTime, responseEnd, trStart, trEnd)) {\n spans.push(createResourceTimingSpan(entries[i]));\n }\n }\n\n return spans;\n}\n\nexport { createResourceTimingSpans };","import { PERF, isPerfTimelineSupported, isRedirectInfoAvailable } from '../../common/utils';\nimport { PAGE_LOAD, RESOURCE, MEASURE } from '../../common/constants';\nimport { state } from '../../state';\nimport { createNavigationTimingSpans } from './navigation-timing';\nimport { createUserTimingSpans } from './user-timing';\nimport { createResourceTimingSpans } from './resource-timing';\nimport { getPageLoadMarks } from './marks';\n\nfunction captureNavigation(transaction) {\n if (!transaction.captureTimings) {\n if (transaction.type === PAGE_LOAD) {\n transaction._start = 0;\n }\n\n return;\n }\n\n var trEnd = transaction._end;\n\n if (transaction.type === PAGE_LOAD) {\n if (transaction.marks && transaction.marks.custom) {\n var customMarks = transaction.marks.custom;\n Object.keys(customMarks).forEach(function (key) {\n customMarks[key] += transaction._start;\n });\n }\n\n var trStart = 0;\n transaction._start = trStart;\n var timings = PERF.timing;\n var baseTime = isRedirectInfoAvailable(timings) ? timings.redirectStart : timings.fetchStart;\n createNavigationTimingSpans(timings, baseTime, trStart, trEnd).forEach(function (span) {\n span.traceId = transaction.traceId;\n span.sampled = transaction.sampled;\n\n if (span.pageResponse && transaction.options.pageLoadSpanId) {\n span.id = transaction.options.pageLoadSpanId;\n }\n\n transaction.spans.push(span);\n });\n transaction.addMarks(getPageLoadMarks(timings));\n }\n\n if (isPerfTimelineSupported()) {\n var _trStart = transaction._start;\n var resourceEntries = PERF.getEntriesByType(RESOURCE);\n createResourceTimingSpans(resourceEntries, state.bootstrapTime, _trStart, trEnd).forEach(function (span) {\n return transaction.spans.push(span);\n });\n var userEntries = PERF.getEntriesByType(MEASURE);\n createUserTimingSpans(userEntries, _trStart, trEnd).forEach(function (span) {\n return transaction.spans.push(span);\n });\n }\n}\n\nexport { captureNavigation, createNavigationTimingSpans, createResourceTimingSpans, createUserTimingSpans, getPageLoadMarks };","import { USER_TIMING_THRESHOLD } from '../../common/constants';\nimport { shouldCreateSpan } from './utils';\nimport Span from '../span';\n\nfunction createUserTimingSpans(entries, trStart, trEnd) {\n var userTimingSpans = [];\n\n for (var i = 0; i < entries.length; i++) {\n var _entries$i = entries[i],\n name = _entries$i.name,\n startTime = _entries$i.startTime,\n duration = _entries$i.duration;\n var end = startTime + duration;\n\n if (duration <= USER_TIMING_THRESHOLD || !shouldCreateSpan(startTime, end, trStart, trEnd)) {\n continue;\n }\n\n var kind = 'app';\n var span = new Span(name, kind);\n span._start = startTime;\n span.end(end);\n userTimingSpans.push(span);\n }\n\n return userTimingSpans;\n}\n\nexport { createUserTimingSpans };","import { Promise } from '../common/polyfills';\nimport Transaction from './transaction';\nimport { PerfEntryRecorder, captureObserverEntries, metrics, createTotalBlockingTimeSpan } from './metrics/metrics';\nimport { extend, getEarliestSpan, getLatestNonXHRSpan, getLatestXHRSpan, isPerfTypeSupported, generateRandomId } from '../common/utils';\nimport { captureNavigation } from './navigation/capture-navigation';\nimport { PAGE_LOAD, NAME_UNKNOWN, TRANSACTION_START, TRANSACTION_END, TRANSACTION_IGNORE, TEMPORARY_TYPE, TRANSACTION_TYPE_ORDER, LARGEST_CONTENTFUL_PAINT, LONG_TASK, PAINT, TRUNCATED_TYPE, FIRST_INPUT, LAYOUT_SHIFT, SESSION_TIMEOUT, PAGE_LOAD_DELAY } from '../common/constants';\nimport { addTransactionContext } from '../common/context';\nimport { __DEV__, state } from '../state';\nimport { slugifyUrl } from '../common/url';\n\nvar TransactionService = function () {\n function TransactionService(logger, config) {\n var _this = this;\n\n this._config = config;\n this._logger = logger;\n this.currentTransaction = undefined;\n this.respIntervalId = undefined;\n this.recorder = new PerfEntryRecorder(function (list) {\n var tr = _this.getCurrentTransaction();\n\n if (tr && tr.captureTimings) {\n var _tr$spans;\n\n var isHardNavigation = tr.type === PAGE_LOAD;\n\n var _captureObserverEntri = captureObserverEntries(list, {\n isHardNavigation: isHardNavigation,\n trStart: isHardNavigation ? 0 : tr._start\n }),\n spans = _captureObserverEntri.spans,\n marks = _captureObserverEntri.marks;\n\n (_tr$spans = tr.spans).push.apply(_tr$spans, spans);\n\n tr.addMarks({\n agent: marks\n });\n }\n });\n }\n\n var _proto = TransactionService.prototype;\n\n _proto.createCurrentTransaction = function createCurrentTransaction(name, type, options) {\n var tr = new Transaction(name, type, options);\n this.currentTransaction = tr;\n return tr;\n };\n\n _proto.getCurrentTransaction = function getCurrentTransaction() {\n if (this.currentTransaction && !this.currentTransaction.ended) {\n return this.currentTransaction;\n }\n };\n\n _proto.createOptions = function createOptions(options) {\n var config = this._config.config;\n var presetOptions = {\n transactionSampleRate: config.transactionSampleRate\n };\n var perfOptions = extend(presetOptions, options);\n\n if (perfOptions.managed) {\n perfOptions = extend({\n pageLoadTraceId: config.pageLoadTraceId,\n pageLoadSampled: config.pageLoadSampled,\n pageLoadSpanId: config.pageLoadSpanId,\n pageLoadTransactionName: config.pageLoadTransactionName\n }, perfOptions);\n }\n\n return perfOptions;\n };\n\n _proto.startManagedTransaction = function startManagedTransaction(name, type, perfOptions) {\n var tr = this.getCurrentTransaction();\n var isRedefined = false;\n\n if (!tr) {\n tr = this.createCurrentTransaction(name, type, perfOptions);\n } else if (tr.canReuse() && perfOptions.canReuse) {\n var redefineType = tr.type;\n var currentTypeOrder = TRANSACTION_TYPE_ORDER.indexOf(tr.type);\n var redefineTypeOrder = TRANSACTION_TYPE_ORDER.indexOf(type);\n\n if (currentTypeOrder >= 0 && redefineTypeOrder < currentTypeOrder) {\n redefineType = type;\n }\n\n if (__DEV__) {\n this._logger.debug(\"redefining transaction(\" + tr.id + \", \" + tr.name + \", \" + tr.type + \")\", 'to', \"(\" + (name || tr.name) + \", \" + redefineType + \")\", tr);\n }\n\n tr.redefine(name, redefineType, perfOptions);\n isRedefined = true;\n } else {\n if (__DEV__) {\n this._logger.debug(\"ending previous transaction(\" + tr.id + \", \" + tr.name + \")\", tr);\n }\n\n tr.end();\n tr = this.createCurrentTransaction(name, type, perfOptions);\n }\n\n if (tr.type === PAGE_LOAD) {\n if (!isRedefined) {\n this.recorder.start(LARGEST_CONTENTFUL_PAINT);\n this.recorder.start(PAINT);\n this.recorder.start(FIRST_INPUT);\n this.recorder.start(LAYOUT_SHIFT);\n }\n\n if (perfOptions.pageLoadTraceId) {\n tr.traceId = perfOptions.pageLoadTraceId;\n }\n\n if (perfOptions.pageLoadSampled) {\n tr.sampled = perfOptions.pageLoadSampled;\n }\n\n if (tr.name === NAME_UNKNOWN && perfOptions.pageLoadTransactionName) {\n tr.name = perfOptions.pageLoadTransactionName;\n }\n }\n\n if (!isRedefined && this._config.get('monitorLongtasks')) {\n this.recorder.start(LONG_TASK);\n }\n\n if (tr.sampled) {\n tr.captureTimings = true;\n }\n\n return tr;\n };\n\n _proto.startTransaction = function startTransaction(name, type, options) {\n var _this2 = this;\n\n var perfOptions = this.createOptions(options);\n var tr;\n var fireOnstartHook = true;\n\n if (perfOptions.managed) {\n var current = this.currentTransaction;\n tr = this.startManagedTransaction(name, type, perfOptions);\n\n if (current === tr) {\n fireOnstartHook = false;\n }\n } else {\n tr = new Transaction(name, type, perfOptions);\n }\n\n tr.onEnd = function () {\n return _this2.handleTransactionEnd(tr);\n };\n\n if (fireOnstartHook) {\n if (__DEV__) {\n this._logger.debug(\"startTransaction(\" + tr.id + \", \" + tr.name + \", \" + tr.type + \")\");\n }\n\n this._config.events.send(TRANSACTION_START, [tr]);\n }\n\n return tr;\n };\n\n _proto.handleTransactionEnd = function handleTransactionEnd(tr) {\n var _this3 = this;\n\n this.recorder.stop();\n var currentUrl = window.location.href;\n return Promise.resolve().then(function () {\n var name = tr.name,\n type = tr.type;\n var lastHiddenStart = state.lastHiddenStart;\n\n if (lastHiddenStart >= tr._start) {\n if (__DEV__) {\n _this3._logger.debug(\"transaction(\" + tr.id + \", \" + name + \", \" + type + \") was discarded! The page was hidden during the transaction!\");\n }\n\n _this3._config.dispatchEvent(TRANSACTION_IGNORE);\n\n return;\n }\n\n if (_this3.shouldIgnoreTransaction(name) || type === TEMPORARY_TYPE) {\n if (__DEV__) {\n _this3._logger.debug(\"transaction(\" + tr.id + \", \" + name + \", \" + type + \") is ignored\");\n }\n\n _this3._config.dispatchEvent(TRANSACTION_IGNORE);\n\n return;\n }\n\n if (type === PAGE_LOAD) {\n var pageLoadTransactionName = _this3._config.get('pageLoadTransactionName');\n\n if (name === NAME_UNKNOWN && pageLoadTransactionName) {\n tr.name = pageLoadTransactionName;\n }\n\n if (tr.captureTimings) {\n var cls = metrics.cls,\n fid = metrics.fid,\n tbt = metrics.tbt,\n longtask = metrics.longtask;\n\n if (tbt.duration > 0) {\n tr.spans.push(createTotalBlockingTimeSpan(tbt));\n }\n\n tr.experience = {};\n\n if (isPerfTypeSupported(LONG_TASK)) {\n tr.experience.tbt = tbt.duration;\n }\n\n if (isPerfTypeSupported(LAYOUT_SHIFT)) {\n tr.experience.cls = cls.score;\n }\n\n if (fid > 0) {\n tr.experience.fid = fid;\n }\n\n if (longtask.count > 0) {\n tr.experience.longtask = {\n count: longtask.count,\n sum: longtask.duration,\n max: longtask.max\n };\n }\n }\n\n _this3.setSession(tr);\n }\n\n if (tr.name === NAME_UNKNOWN) {\n tr.name = slugifyUrl(currentUrl);\n }\n\n captureNavigation(tr);\n\n _this3.adjustTransactionTime(tr);\n\n var breakdownMetrics = _this3._config.get('breakdownMetrics');\n\n if (breakdownMetrics) {\n tr.captureBreakdown();\n }\n\n var configContext = _this3._config.get('context');\n\n addTransactionContext(tr, configContext);\n\n _this3._config.events.send(TRANSACTION_END, [tr]);\n\n if (__DEV__) {\n _this3._logger.debug(\"end transaction(\" + tr.id + \", \" + tr.name + \", \" + tr.type + \")\", tr);\n }\n }, function (err) {\n if (__DEV__) {\n _this3._logger.debug(\"error ending transaction(\" + tr.id + \", \" + tr.name + \")\", err);\n }\n });\n };\n\n _proto.setSession = function setSession(tr) {\n var session = this._config.get('session');\n\n if (session) {\n if (typeof session == 'boolean') {\n tr.session = {\n id: generateRandomId(16),\n sequence: 1\n };\n } else {\n if (session.timestamp && Date.now() - session.timestamp > SESSION_TIMEOUT) {\n tr.session = {\n id: generateRandomId(16),\n sequence: 1\n };\n } else {\n tr.session = {\n id: session.id,\n sequence: session.sequence ? session.sequence + 1 : 1\n };\n }\n }\n\n var sessionConfig = {\n session: {\n id: tr.session.id,\n sequence: tr.session.sequence,\n timestamp: Date.now()\n }\n };\n\n this._config.setConfig(sessionConfig);\n\n this._config.setLocalConfig(sessionConfig, true);\n }\n };\n\n _proto.adjustTransactionTime = function adjustTransactionTime(transaction) {\n var spans = transaction.spans;\n var earliestSpan = getEarliestSpan(spans);\n\n if (earliestSpan && earliestSpan._start < transaction._start) {\n transaction._start = earliestSpan._start;\n }\n\n var latestSpan = getLatestNonXHRSpan(spans) || {};\n var latestSpanEnd = latestSpan._end || 0;\n\n if (transaction.type === PAGE_LOAD) {\n var transactionEndWithoutDelay = transaction._end - PAGE_LOAD_DELAY;\n var lcp = metrics.lcp || 0;\n var latestXHRSpan = getLatestXHRSpan(spans) || {};\n var latestXHRSpanEnd = latestXHRSpan._end || 0;\n transaction._end = Math.max(latestSpanEnd, latestXHRSpanEnd, lcp, transactionEndWithoutDelay);\n } else if (latestSpanEnd > transaction._end) {\n transaction._end = latestSpanEnd;\n }\n\n this.truncateSpans(spans, transaction._end);\n };\n\n _proto.truncateSpans = function truncateSpans(spans, transactionEnd) {\n for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n\n if (span._end > transactionEnd) {\n span._end = transactionEnd;\n span.type += TRUNCATED_TYPE;\n }\n\n if (span._start > transactionEnd) {\n span._start = transactionEnd;\n }\n }\n };\n\n _proto.shouldIgnoreTransaction = function shouldIgnoreTransaction(transactionName) {\n var ignoreList = this._config.get('ignoreTransactions');\n\n if (ignoreList && ignoreList.length) {\n for (var i = 0; i < ignoreList.length; i++) {\n var element = ignoreList[i];\n\n if (typeof element.test === 'function') {\n if (element.test(transactionName)) {\n return true;\n }\n } else if (element === transactionName) {\n return true;\n }\n }\n }\n\n return false;\n };\n\n _proto.startSpan = function startSpan(name, type, options) {\n var tr = this.getCurrentTransaction();\n\n if (!tr) {\n tr = this.createCurrentTransaction(undefined, TEMPORARY_TYPE, this.createOptions({\n canReuse: true,\n managed: true\n }));\n }\n\n var span = tr.startSpan(name, type, options);\n\n if (__DEV__) {\n this._logger.debug(\"startSpan(\" + name + \", \" + span.type + \")\", \"on transaction(\" + tr.id + \", \" + tr.name + \")\");\n }\n\n return span;\n };\n\n _proto.endSpan = function endSpan(span, context) {\n if (!span) {\n return;\n }\n\n if (__DEV__) {\n var tr = this.getCurrentTransaction();\n tr && this._logger.debug(\"endSpan(\" + span.name + \", \" + span.type + \")\", \"on transaction(\" + tr.id + \", \" + tr.name + \")\");\n }\n\n span.end(null, context);\n };\n\n return TransactionService;\n}();\n\nexport default TransactionService;","import { EVENT, FIRST_INPUT } from '../../../common/constants';\nimport { isPerfInteractionCountSupported } from '../../../common/utils';\nimport { PerfEntryRecorder } from '../metrics';\nvar INP_THRESHOLD = 40;\nvar MAX_INTERACTIONS_TO_CONSIDER = 10;\nexport var inpState = {\n minInteractionId: Infinity,\n maxInteractionId: 0,\n interactionCount: 0,\n longestInteractions: []\n};\nexport function observeUserInteractions(recorder) {\n if (recorder === void 0) {\n recorder = new PerfEntryRecorder(processUserInteractions);\n }\n\n var isPerfCountSupported = isPerfInteractionCountSupported();\n var durationThreshold = isPerfCountSupported ? INP_THRESHOLD : 16;\n recorder.start(EVENT, {\n buffered: true,\n durationThreshold: durationThreshold\n });\n\n if (!isPerfCountSupported) {\n recorder.start(FIRST_INPUT);\n }\n}\nexport function processUserInteractions(list) {\n var entries = list.getEntries();\n entries.forEach(function (entry) {\n if (!entry.interactionId) {\n return;\n }\n\n updateInteractionCount(entry);\n\n if (entry.duration < INP_THRESHOLD) {\n return;\n }\n\n storeUserInteraction(entry);\n });\n}\nexport function calculateInp() {\n if (inpState.longestInteractions.length === 0) {\n if (interactionCount() > 0) {\n return 0;\n }\n\n return;\n }\n\n var interactionIndex = Math.min(inpState.longestInteractions.length - 1, Math.floor(interactionCount() / 50));\n var inp = inpState.longestInteractions[interactionIndex].duration;\n return inp;\n}\nexport function interactionCount() {\n return performance.interactionCount || inpState.interactionCount;\n}\nexport function restoreINPState() {\n inpState.minInteractionId = Infinity;\n inpState.maxInteractionId = 0;\n inpState.interactionCount = 0;\n inpState.longestInteractions = [];\n}\n\nfunction storeUserInteraction(entry) {\n var leastSlow = inpState.longestInteractions[inpState.longestInteractions.length - 1];\n\n if (typeof leastSlow !== 'undefined' && entry.duration <= leastSlow.duration && entry.interactionId != leastSlow.id) {\n return;\n }\n\n var filteredInteraction = inpState.longestInteractions.filter(function (interaction) {\n return interaction.id === entry.interactionId;\n });\n\n if (filteredInteraction.length > 0) {\n var foundInteraction = filteredInteraction[0];\n foundInteraction.duration = Math.max(foundInteraction.duration, entry.duration);\n } else {\n inpState.longestInteractions.push({\n id: entry.interactionId,\n duration: entry.duration\n });\n }\n\n inpState.longestInteractions.sort(function (a, b) {\n return b.duration - a.duration;\n });\n inpState.longestInteractions.splice(MAX_INTERACTIONS_TO_CONSIDER);\n}\n\nfunction updateInteractionCount(entry) {\n if (isPerfInteractionCountSupported()) {\n return;\n }\n\n inpState.minInteractionId = Math.min(inpState.minInteractionId, entry.interactionId);\n inpState.maxInteractionId = Math.max(inpState.maxInteractionId, entry.interactionId);\n inpState.interactionCount = (inpState.maxInteractionId - inpState.minInteractionId) / 7 + 1;\n}","import { calculateInp, restoreINPState } from './process';\nimport { now } from '../../../common/utils';\nimport { PAGE_EXIT } from '../../../common/constants';\nexport function reportInp(transactionService) {\n var inp = calculateInp();\n\n if (inp >= 0) {\n var startTime = now();\n var inpTr = transactionService.startTransaction(PAGE_EXIT, PAGE_EXIT, {\n startTime: startTime\n });\n var navigations = performance.getEntriesByType('navigation');\n\n if (navigations.length > 0) {\n var hardNavigationUrl = navigations[0].name;\n inpTr.addContext({\n page: {\n url: hardNavigationUrl\n }\n });\n }\n\n inpTr.addLabels({\n inp_value: inp\n });\n var endTime = startTime + inp + 1;\n inpTr.end(endTime);\n restoreINPState();\n return inpTr;\n }\n}","import { QUEUE_ADD_TRANSACTION, QUEUE_FLUSH, TRANSACTION_IGNORE } from '../constants';\nimport { state } from '../../state';\nimport { now } from '../utils';\nimport { reportInp } from '../../performance-monitoring/metrics/inp/report';\nexport function observePageVisibility(configService, transactionService) {\n if (document.visibilityState === 'hidden') {\n state.lastHiddenStart = 0;\n }\n\n var visibilityChangeHandler = function visibilityChangeHandler() {\n if (document.visibilityState === 'hidden') {\n onPageHidden(configService, transactionService);\n }\n };\n\n var pageHideHandler = function pageHideHandler() {\n return onPageHidden(configService, transactionService);\n };\n\n var useCapture = true;\n window.addEventListener('visibilitychange', visibilityChangeHandler, useCapture);\n window.addEventListener('pagehide', pageHideHandler, useCapture);\n return function () {\n window.removeEventListener('visibilitychange', visibilityChangeHandler, useCapture);\n window.removeEventListener('pagehide', pageHideHandler, useCapture);\n };\n}\n\nfunction onPageHidden(configService, transactionService) {\n var inpTr = reportInp(transactionService);\n\n if (inpTr) {\n var unobserve = configService.observeEvent(QUEUE_ADD_TRANSACTION, function () {\n endManagedTransaction(configService, transactionService);\n unobserve();\n });\n } else {\n endManagedTransaction(configService, transactionService);\n }\n}\n\nfunction endManagedTransaction(configService, transactionService) {\n var tr = transactionService.getCurrentTransaction();\n\n if (tr) {\n var unobserveDiscard = configService.observeEvent(TRANSACTION_IGNORE, function () {\n state.lastHiddenStart = now();\n unobserveDiscard();\n unobserveQueueAdd();\n });\n var unobserveQueueAdd = configService.observeEvent(QUEUE_ADD_TRANSACTION, function () {\n configService.dispatchEvent(QUEUE_FLUSH);\n state.lastHiddenStart = now();\n unobserveQueueAdd();\n unobserveDiscard();\n });\n tr.end();\n } else {\n configService.dispatchEvent(QUEUE_FLUSH);\n state.lastHiddenStart = now();\n }\n}","import { USER_INTERACTION } from '../constants';\nvar INTERACTIVE_SELECTOR = 'a[data-transaction-name], button[data-transaction-name]';\nexport function observePageClicks(transactionService) {\n var clickHandler = function clickHandler(event) {\n if (event.target instanceof Element) {\n createUserInteractionTransaction(transactionService, event.target);\n }\n };\n\n var eventName = 'click';\n var useCapture = true;\n window.addEventListener(eventName, clickHandler, useCapture);\n return function () {\n window.removeEventListener(eventName, clickHandler, useCapture);\n };\n}\n\nfunction createUserInteractionTransaction(transactionService, target) {\n var _getTransactionMetada = getTransactionMetadata(target),\n transactionName = _getTransactionMetada.transactionName,\n context = _getTransactionMetada.context;\n\n var tr = transactionService.startTransaction(\"Click - \" + transactionName, USER_INTERACTION, {\n managed: true,\n canReuse: true,\n reuseThreshold: 300\n });\n\n if (tr && context) {\n tr.addContext(context);\n }\n}\n\nfunction getTransactionMetadata(target) {\n var metadata = {\n transactionName: null,\n context: null\n };\n metadata.transactionName = buildTransactionName(target);\n var classes = target.getAttribute('class');\n\n if (classes) {\n metadata.context = {\n custom: {\n classes: classes\n }\n };\n }\n\n return metadata;\n}\n\nfunction buildTransactionName(target) {\n var dtName = findCustomTransactionName(target);\n\n if (dtName) {\n return dtName;\n }\n\n var tagName = target.tagName.toLowerCase();\n var name = target.getAttribute('name');\n\n if (!!name) {\n return tagName + \"[\\\"\" + name + \"\\\"]\";\n }\n\n return tagName;\n}\n\nfunction findCustomTransactionName(target) {\n var trCustomNameAttribute = 'data-transaction-name';\n var fallbackName = target.getAttribute(trCustomNameAttribute);\n\n if (target.closest) {\n var element = target.closest(INTERACTIVE_SELECTOR);\n return element ? element.getAttribute(trCustomNameAttribute) : fallbackName;\n }\n\n return fallbackName;\n}","import { XMLHTTPREQUEST, FETCH, HISTORY, PAGE_LOAD, ERROR, EVENT_TARGET, CLICK } from './constants';\nexport function getInstrumentationFlags(instrument, disabledInstrumentations) {\n var _flags;\n\n var flags = (_flags = {}, _flags[XMLHTTPREQUEST] = false, _flags[FETCH] = false, _flags[HISTORY] = false, _flags[PAGE_LOAD] = false, _flags[ERROR] = false, _flags[EVENT_TARGET] = false, _flags[CLICK] = false, _flags);\n\n if (!instrument) {\n return flags;\n }\n\n Object.keys(flags).forEach(function (key) {\n if (disabledInstrumentations.indexOf(key) === -1) {\n flags[key] = true;\n }\n });\n return flags;\n}","var RAF_TIMEOUT = 100;\nexport default function afterFrame(callback) {\n var handler = function handler() {\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n setTimeout(callback);\n };\n\n var timeout = setTimeout(handler, RAF_TIMEOUT);\n var raf = requestAnimationFrame(handler);\n}","import { isPlatformSupported, isBrowser, now } from './common/utils';\nimport { patchAll } from './common/patching';\nimport { state } from './state';\nvar enabled = false;\nexport function bootstrap() {\n if (isPlatformSupported()) {\n patchAll();\n state.bootstrapTime = now();\n enabled = true;\n } else if (isBrowser) {\n console.log('[Elastic APM] platform is not supported!');\n }\n\n return enabled;\n}","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport { Span as otSpan } from 'opentracing/lib/span';\nimport { extend, getTimeOrigin } from '../common/utils';\nimport Transaction from '../performance-monitoring/transaction';\n\nvar Span = function (_otSpan) {\n _inheritsLoose(Span, _otSpan);\n\n function Span(tracer, span) {\n var _this;\n\n _this = _otSpan.call(this) || this;\n _this.__tracer = tracer;\n _this.span = span;\n _this.isTransaction = span instanceof Transaction;\n _this.spanContext = {\n id: span.id,\n traceId: span.traceId,\n sampled: span.sampled\n };\n return _this;\n }\n\n var _proto = Span.prototype;\n\n _proto._context = function _context() {\n return this.spanContext;\n };\n\n _proto._tracer = function _tracer() {\n return this.__tracer;\n };\n\n _proto._setOperationName = function _setOperationName(name) {\n this.span.name = name;\n };\n\n _proto._addTags = function _addTags(keyValuePairs) {\n var tags = extend({}, keyValuePairs);\n\n if (tags.type) {\n this.span.type = tags.type;\n delete tags.type;\n }\n\n if (this.isTransaction) {\n var userId = tags['user.id'];\n var username = tags['user.username'];\n var email = tags['user.email'];\n\n if (userId || username || email) {\n this.span.addContext({\n user: {\n id: userId,\n username: username,\n email: email\n }\n });\n delete tags['user.id'];\n delete tags['user.username'];\n delete tags['user.email'];\n }\n }\n\n this.span.addLabels(tags);\n };\n\n _proto._log = function _log(log, timestamp) {\n if (log.event === 'error') {\n if (log['error.object']) {\n this.__tracer.errorLogging.logError(log['error.object']);\n } else if (log.message) {\n this.__tracer.errorLogging.logError(log.message);\n }\n }\n };\n\n _proto._finish = function _finish(finishTime) {\n this.span.end();\n\n if (finishTime) {\n this.span._end = finishTime - getTimeOrigin();\n }\n };\n\n return Span;\n}(otSpan);\n\nexport default Span;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport { Tracer as otTracer } from 'opentracing/lib/tracer';\nimport { REFERENCE_CHILD_OF, FORMAT_TEXT_MAP, FORMAT_HTTP_HEADERS, FORMAT_BINARY } from 'opentracing/lib/constants';\nimport { Span as NoopSpan } from 'opentracing/lib/span';\nimport { getTimeOrigin, find } from '../common/utils';\nimport { __DEV__ } from '../state';\nimport Span from './span';\n\nvar Tracer = function (_otTracer) {\n _inheritsLoose(Tracer, _otTracer);\n\n function Tracer(performanceMonitoring, transactionService, loggingService, errorLogging) {\n var _this;\n\n _this = _otTracer.call(this) || this;\n _this.performanceMonitoring = performanceMonitoring;\n _this.transactionService = transactionService;\n _this.loggingService = loggingService;\n _this.errorLogging = errorLogging;\n return _this;\n }\n\n var _proto = Tracer.prototype;\n\n _proto._startSpan = function _startSpan(name, options) {\n var spanOptions = {\n managed: true\n };\n\n if (options) {\n spanOptions.timestamp = options.startTime;\n\n if (options.childOf) {\n spanOptions.parentId = options.childOf.id;\n } else if (options.references && options.references.length > 0) {\n if (options.references.length > 1) {\n if (__DEV__) {\n this.loggingService.debug('Elastic APM OpenTracing: Unsupported number of references, only the first childOf reference will be recorded.');\n }\n }\n\n var childRef = find(options.references, function (ref) {\n return ref.type() === REFERENCE_CHILD_OF;\n });\n\n if (childRef) {\n spanOptions.parentId = childRef.referencedContext().id;\n }\n }\n }\n\n var span;\n var currentTransaction = this.transactionService.getCurrentTransaction();\n\n if (currentTransaction) {\n span = this.transactionService.startSpan(name, undefined, spanOptions);\n } else {\n span = this.transactionService.startTransaction(name, undefined, spanOptions);\n }\n\n if (!span) {\n return new NoopSpan();\n }\n\n if (spanOptions.timestamp) {\n span._start = spanOptions.timestamp - getTimeOrigin();\n }\n\n var otSpan = new Span(this, span);\n\n if (options && options.tags) {\n otSpan.addTags(options.tags);\n }\n\n return otSpan;\n };\n\n _proto._inject = function _inject(spanContext, format, carrier) {\n switch (format) {\n case FORMAT_TEXT_MAP:\n case FORMAT_HTTP_HEADERS:\n this.performanceMonitoring.injectDtHeader(spanContext, carrier);\n break;\n\n case FORMAT_BINARY:\n if (__DEV__) {\n this.loggingService.debug('Elastic APM OpenTracing: binary carrier format is not supported.');\n }\n\n break;\n }\n };\n\n _proto._extract = function _extract(format, carrier) {\n var ctx;\n\n switch (format) {\n case FORMAT_TEXT_MAP:\n case FORMAT_HTTP_HEADERS:\n ctx = this.performanceMonitoring.extractDtHeader(carrier);\n break;\n\n case FORMAT_BINARY:\n if (__DEV__) {\n this.loggingService.debug('Elastic APM OpenTracing: binary carrier format is not supported.');\n }\n\n break;\n }\n\n if (!ctx) {\n ctx = null;\n }\n\n return ctx;\n };\n\n return Tracer;\n}(otTracer);\n\nexport default Tracer;","import Tracer from './tracer';\nimport Span from './span';\nimport { TRANSACTION_SERVICE, LOGGING_SERVICE, PERFORMANCE_MONITORING, ERROR_LOGGING } from '../common/constants';\n\nfunction createTracer(serviceFactory) {\n var performanceMonitoring = serviceFactory.getService(PERFORMANCE_MONITORING);\n var transactionService = serviceFactory.getService(TRANSACTION_SERVICE);\n var errorLogging = serviceFactory.getService(ERROR_LOGGING);\n var loggingService = serviceFactory.getService(LOGGING_SERVICE);\n return new Tracer(performanceMonitoring, transactionService, loggingService, errorLogging);\n}\n\nexport { Span, Tracer, createTracer };","import { registerServices as registerErrorServices } from './error-logging';\nimport { registerServices as registerPerfServices, observeUserInteractions } from './performance-monitoring';\nimport { ServiceFactory } from './common/service-factory';\nimport { isPlatformSupported, scheduleMicroTask, scheduleMacroTask, isBrowser } from './common/utils';\nimport { patchAll, patchEventHandler } from './common/patching';\nimport { observePageVisibility, observePageClicks } from './common/observers';\nimport { PAGE_LOAD_DELAY, PAGE_LOAD, ERROR, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, APM_SERVER, PERFORMANCE_MONITORING, ERROR_LOGGING, EVENT_TARGET, CLICK } from './common/constants';\nimport { getInstrumentationFlags } from './common/instrument';\nimport afterFrame from './common/after-frame';\nimport { bootstrap } from './bootstrap';\nimport { createTracer } from './opentracing';\n\nfunction createServiceFactory() {\n registerPerfServices();\n registerErrorServices();\n var serviceFactory = new ServiceFactory();\n return serviceFactory;\n}\n\nexport { createServiceFactory, ServiceFactory, patchAll, patchEventHandler, isPlatformSupported, isBrowser, getInstrumentationFlags, createTracer, scheduleMicroTask, scheduleMacroTask, afterFrame, ERROR, PAGE_LOAD_DELAY, PAGE_LOAD, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, APM_SERVER, PERFORMANCE_MONITORING, ERROR_LOGGING, EVENT_TARGET, CLICK, observeUserInteractions, bootstrap, observePageVisibility, observePageClicks };","import PerformanceMonitoring from './performance-monitoring';\nimport TransactionService from './transaction-service';\nimport { APM_SERVER, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, PERFORMANCE_MONITORING } from '../common/constants';\nimport { serviceCreators } from '../common/service-factory';\nimport { observeUserInteractions } from './metrics/inp/process';\nimport { reportInp } from './metrics/inp/report';\n\nfunction registerServices() {\n serviceCreators[TRANSACTION_SERVICE] = function (serviceFactory) {\n var _serviceFactory$getSe = serviceFactory.getService([LOGGING_SERVICE, CONFIG_SERVICE]),\n loggingService = _serviceFactory$getSe[0],\n configService = _serviceFactory$getSe[1];\n\n return new TransactionService(loggingService, configService);\n };\n\n serviceCreators[PERFORMANCE_MONITORING] = function (serviceFactory) {\n var _serviceFactory$getSe2 = serviceFactory.getService([APM_SERVER, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE]),\n apmServer = _serviceFactory$getSe2[0],\n configService = _serviceFactory$getSe2[1],\n loggingService = _serviceFactory$getSe2[2],\n transactionService = _serviceFactory$getSe2[3];\n\n return new PerformanceMonitoring(apmServer, configService, loggingService, transactionService);\n };\n}\n\nexport { registerServices, observeUserInteractions, reportInp };","import ErrorLogging from './error-logging';\nimport { CONFIG_SERVICE, TRANSACTION_SERVICE, ERROR_LOGGING, APM_SERVER } from '../common/constants';\nimport { serviceCreators } from '../common/service-factory';\n\nfunction registerServices() {\n serviceCreators[ERROR_LOGGING] = function (serviceFactory) {\n var _serviceFactory$getSe = serviceFactory.getService([APM_SERVER, CONFIG_SERVICE, TRANSACTION_SERVICE]),\n apmServer = _serviceFactory$getSe[0],\n configService = _serviceFactory$getSe[1],\n transactionService = _serviceFactory$getSe[2];\n\n return new ErrorLogging(apmServer, configService, transactionService);\n };\n}\n\nexport { registerServices };","import { getInstrumentationFlags, PAGE_LOAD_DELAY, PAGE_LOAD, ERROR, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, PERFORMANCE_MONITORING, ERROR_LOGGING, APM_SERVER, EVENT_TARGET, CLICK, observePageVisibility, observePageClicks, observeUserInteractions } from '@elastic/apm-rum-core';\n\nvar ApmBase = function () {\n function ApmBase(serviceFactory, disable) {\n this._disable = disable;\n this.serviceFactory = serviceFactory;\n this._initialized = false;\n }\n\n var _proto = ApmBase.prototype;\n\n _proto.isEnabled = function isEnabled() {\n return !this._disable;\n };\n\n _proto.isActive = function isActive() {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n return this.isEnabled() && this._initialized && configService.get('active');\n };\n\n _proto.init = function init(config) {\n var _this = this;\n\n if (this.isEnabled() && !this._initialized) {\n this._initialized = true;\n\n var _this$serviceFactory$ = this.serviceFactory.getService([CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE]),\n configService = _this$serviceFactory$[0],\n loggingService = _this$serviceFactory$[1],\n transactionService = _this$serviceFactory$[2];\n\n configService.setVersion('5.16.1');\n this.config(config);\n var logLevel = configService.get('logLevel');\n loggingService.setLevel(logLevel);\n var isConfigActive = configService.get('active');\n\n if (isConfigActive) {\n this.serviceFactory.init();\n var flags = getInstrumentationFlags(configService.get('instrument'), configService.get('disableInstrumentations'));\n var performanceMonitoring = this.serviceFactory.getService(PERFORMANCE_MONITORING);\n performanceMonitoring.init(flags);\n\n if (flags[ERROR]) {\n var errorLogging = this.serviceFactory.getService(ERROR_LOGGING);\n errorLogging.registerListeners();\n }\n\n if (configService.get('session')) {\n var localConfig = configService.getLocalConfig();\n\n if (localConfig && localConfig.session) {\n configService.setConfig({\n session: localConfig.session\n });\n }\n }\n\n var sendPageLoad = function sendPageLoad() {\n return flags[PAGE_LOAD] && _this._sendPageLoadMetrics();\n };\n\n if (configService.get('centralConfig')) {\n this.fetchCentralConfig().then(sendPageLoad);\n } else {\n sendPageLoad();\n }\n\n observePageVisibility(configService, transactionService);\n\n if (flags[EVENT_TARGET] && flags[CLICK]) {\n observePageClicks(transactionService);\n }\n\n observeUserInteractions();\n } else {\n this._disable = true;\n loggingService.warn('RUM agent is inactive');\n }\n }\n\n return this;\n };\n\n _proto.fetchCentralConfig = function fetchCentralConfig() {\n var _this$serviceFactory$2 = this.serviceFactory.getService([APM_SERVER, LOGGING_SERVICE, CONFIG_SERVICE]),\n apmServer = _this$serviceFactory$2[0],\n loggingService = _this$serviceFactory$2[1],\n configService = _this$serviceFactory$2[2];\n\n return apmServer.fetchConfig(configService.get('serviceName'), configService.get('environment')).then(function (config) {\n var transactionSampleRate = config['transaction_sample_rate'];\n\n if (transactionSampleRate) {\n transactionSampleRate = Number(transactionSampleRate);\n var _config2 = {\n transactionSampleRate: transactionSampleRate\n };\n\n var _configService$valida = configService.validate(_config2),\n invalid = _configService$valida.invalid;\n\n if (invalid.length === 0) {\n configService.setConfig(_config2);\n } else {\n var _invalid$ = invalid[0],\n key = _invalid$.key,\n value = _invalid$.value,\n allowed = _invalid$.allowed;\n loggingService.warn(\"invalid value \\\"\" + value + \"\\\" for \" + key + \". Allowed: \" + allowed + \".\");\n }\n }\n\n return config;\n }).catch(function (error) {\n loggingService.warn('failed fetching config:', error);\n });\n };\n\n _proto._sendPageLoadMetrics = function _sendPageLoadMetrics() {\n var tr = this.startTransaction(undefined, PAGE_LOAD, {\n managed: true,\n canReuse: true\n });\n\n if (!tr) {\n return;\n }\n\n tr.addTask(PAGE_LOAD);\n\n var sendPageLoadMetrics = function sendPageLoadMetrics() {\n setTimeout(function () {\n return tr.removeTask(PAGE_LOAD);\n }, PAGE_LOAD_DELAY);\n };\n\n if (document.readyState === 'complete') {\n sendPageLoadMetrics();\n } else {\n window.addEventListener('load', sendPageLoadMetrics);\n }\n };\n\n _proto.observe = function observe(name, fn) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.events.observe(name, fn);\n };\n\n _proto.config = function config(_config) {\n var _this$serviceFactory$3 = this.serviceFactory.getService([CONFIG_SERVICE, LOGGING_SERVICE]),\n configService = _this$serviceFactory$3[0],\n loggingService = _this$serviceFactory$3[1];\n\n var _configService$valida2 = configService.validate(_config),\n missing = _configService$valida2.missing,\n invalid = _configService$valida2.invalid,\n unknown = _configService$valida2.unknown;\n\n if (unknown.length > 0) {\n var message = 'Unknown config options are specified for RUM agent: ' + unknown.join(', ');\n loggingService.warn(message);\n }\n\n if (missing.length === 0 && invalid.length === 0) {\n configService.setConfig(_config);\n } else {\n var separator = ', ';\n var _message = \"RUM agent isn't correctly configured. \";\n\n if (missing.length > 0) {\n _message += missing.join(separator) + ' is missing';\n\n if (invalid.length > 0) {\n _message += separator;\n }\n }\n\n invalid.forEach(function (_ref, index) {\n var key = _ref.key,\n value = _ref.value,\n allowed = _ref.allowed;\n _message += key + \" \\\"\" + value + \"\\\" contains invalid characters! (allowed: \" + allowed + \")\" + (index !== invalid.length - 1 ? separator : '');\n });\n loggingService.error(_message);\n configService.setConfig({\n active: false\n });\n }\n };\n\n _proto.setUserContext = function setUserContext(userContext) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.setUserContext(userContext);\n };\n\n _proto.setCustomContext = function setCustomContext(customContext) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.setCustomContext(customContext);\n };\n\n _proto.addLabels = function addLabels(labels) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.addLabels(labels);\n };\n\n _proto.setInitialPageLoadName = function setInitialPageLoadName(name) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.setConfig({\n pageLoadTransactionName: name\n });\n };\n\n _proto.startTransaction = function startTransaction(name, type, options) {\n if (this.isEnabled()) {\n var transactionService = this.serviceFactory.getService(TRANSACTION_SERVICE);\n return transactionService.startTransaction(name, type, options);\n }\n };\n\n _proto.startSpan = function startSpan(name, type, options) {\n if (this.isEnabled()) {\n var transactionService = this.serviceFactory.getService(TRANSACTION_SERVICE);\n return transactionService.startSpan(name, type, options);\n }\n };\n\n _proto.getCurrentTransaction = function getCurrentTransaction() {\n if (this.isEnabled()) {\n var transactionService = this.serviceFactory.getService(TRANSACTION_SERVICE);\n return transactionService.getCurrentTransaction();\n }\n };\n\n _proto.captureError = function captureError(error) {\n if (this.isEnabled()) {\n var errorLogging = this.serviceFactory.getService(ERROR_LOGGING);\n return errorLogging.logError(error);\n }\n };\n\n _proto.addFilter = function addFilter(fn) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.addFilter(fn);\n };\n\n return ApmBase;\n}();\n\nexport { ApmBase as default };","import { createServiceFactory, bootstrap, isBrowser } from '@elastic/apm-rum-core';\nimport ApmBase from './apm-base';\n\nfunction getApmBase() {\n if (isBrowser && window.elasticApm) {\n return window.elasticApm;\n }\n\n var enabled = bootstrap();\n var serviceFactory = createServiceFactory();\n var apmBase = new ApmBase(serviceFactory, !enabled);\n\n if (isBrowser) {\n window.elasticApm = apmBase;\n }\n\n return apmBase;\n}\n\nvar apmBase = getApmBase();\nvar init = apmBase.init.bind(apmBase);\nexport default init;\nexport { init, apmBase, ApmBase, apmBase as apm };","// NOTE this file contains the internal dependencies of @lvflanders BAR modules\r\n// we use this to avoid having to break whenever a new version is used\r\n// UMD bundles from ngx-packagr through Angular Libraries doesn't bundle this code (because not possible or too difficult)\r\nimport * as localforage from \"localforage\";\r\nimport * as postscribe from \"postscribe\";\r\nimport * as signalr from \"@microsoft/signalr\";\r\nimport * as lit from \"lit\";\r\nimport * as litDecorators from \"lit/decorators.js\";\r\nimport axios from \"axios\";\r\nimport * as inversify from 'inversify';\r\nimport * as reflectMetadata from 'reflect-metadata';\r\nimport * as fileSaver from 'file-saver';\r\nimport * as oidcClientTs from 'oidc-client-ts';\r\nimport * as elasticApmRumCore from '@elastic/apm-rum-core';\r\nimport * as elasticApmRum from '@elastic/apm-rum';\r\n\r\n// global glue variable for externals\r\nwindow[\"localforage\"] = localforage;\r\nwindow[\"postscribe\"] = postscribe;\r\nwindow[\"microsoft\"] = { signalr };\r\nwindow[\"lit\"] = lit;\r\nwindow[\"lit/decorators.js\"] = litDecorators;\r\nwindow[\"lit/decorators\"] = litDecorators;\r\nwindow[\"axios\"] = axios;\r\nwindow[\"inversify\"] = inversify;\r\nwindow[\"reflect-metadata\"] = reflectMetadata;\r\nwindow[\"file-saver\"] = fileSaver;\r\nwindow[\"oidc-client-ts\"] = oidcClientTs;\r\n// TODO [STEPET] with next major add a ng dependencies file with apm-rum-angular\r\nwindow[\"@elastic\"] = {\r\n 'apm-rum-core': elasticApmRumCore,\r\n 'apm-rum': elasticApmRum\r\n}\r\n\r\nexport { localforage, postscribe, signalr, lit, litDecorators, axios, inversify, reflectMetadata, fileSaver, oidcClientTs, elasticApmRumCore, elasticApmRum };\r\n"],"names":["StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","_map","array","fn","thisArg","Array","prototype","map","output","length","i","call","_filter","filter","push","_indexOf","target","indexOf","parse","error","stacktrace","this","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","Error","extractLocation","urlLike","parts","exec","replace","undefined","split","line","tokens","slice","locationParts","pop","functionName","join","fileName","e","message","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","result","len","argsRaw","functionCall","shift","args","b","a","autoBom","console","warn","test","type","Blob","c","d","XMLHttpRequest","open","responseType","onload","g","response","onerror","send","status","dispatchEvent","MouseEvent","document","createEvent","initMouseEvent","window","f","self","global","navigator","userAgent","saveAs","HTMLAnchorElement","h","URL","webkitURL","j","createElement","name","download","rel","href","origin","location","createObjectURL","setTimeout","revokeObjectURL","msSaveOrOpenBlob","title","body","innerText","HTMLElement","safari","FileReader","k","onloadend","readAsDataURL","l","m","module","exports","Object","defineProperty","value","FORMAT_BINARY","FORMAT_TEXT_MAP","FORMAT_HTTP_HEADERS","REFERENCE_CHILD_OF","REFERENCE_FOLLOWS_FROM","Constants","reference_1","span_1","childOf","spanContext","default","context","followsFrom","span_context_1","tracer_1","tracer","span","initialize","Reference","referencedContext","_type","_referencedContext","noop","Span","_context","_tracer","setOperationName","_setOperationName","setBaggageItem","key","_setBaggageItem","getBaggageItem","_getBaggageItem","setTag","_a","_addTags","addTags","keyValueMap","log","keyValuePairs","timestamp","_log","logEvent","eventName","payload","event","finish","finishTime","_finish","SpanContext","toTraceId","toSpanId","Functions","Noop","Tracer","startSpan","options","references","_startSpan","inject","format","carrier","_inject","extract","_extract","fields","factory","modules","installedModules","moduleId","id","loaded","p","obj","_postscribe","_postscribe2","__esModule","_extends","assign","arguments","source","hasOwnProperty","postscribe","_writeStream","_writeStream2","utils","newObj","_interopRequireWildcard","doNothing","OPTIONS","afterAsync","afterDequeue","afterStreamStart","afterWrite","autoFix","beforeEnqueue","beforeWriteToken","tok","beforeWrite","str","done","msg","releaseAsync","nextId","queue","active","nextStream","last","stream","runStream","apply","el","html","streams","doc","ownerDocument","stash","close","write","writeln","_write","_len","_key","_len2","_key2","oldOnError","win","url","isFunction","defaults","getElementById","substr","jquery","cancel","abort","WriteStream","_prescribe","_prescribe2","BASEATTR","PROXY_STYLE","PROXY_SCRIPT","getData","attr","val","getAttribute","existy","String","setData","setAttribute","removeAttribute","root","instance","Constructor","TypeError","_classCallCheck","defaultView","parentWindow","parser","actuals","proxyHistory","proxyRoot","nodeName","scriptStack","writeQueue","_writeQueue","deferredRemote","arg","_callFunction","_writeImpl","toString","_onScriptStart","_onScriptDone","append","script","style","readToken","isScript","isStyle","_writeStaticTokens","_handleScriptToken","_handleStyleToken","chunk","_buildChunk","actual","proxy","innerHTML","_walkChunk","raw","tokenRaw","attrs","tagName","unary","node","isElement","nodeType","parentIsProxyOf","parentNode","appendChild","unshift","toArray","childNodes","_this","remainder","clear","src","SRC","_writeScriptToken","TYPE","_writeStyleToken","_buildStyle","_insertCursor","content","styleSheet","sheet","cssText","createTextNode","eachKey","which","cursor","replaceChild","outerWrites","_buildScript","asyncRelease","_shouldRelease","_scriptLoadHandler","text","cleanup","onreadystatechange","success","failure","err","reattachEventListener","evt","handler","_onload","_onerror","readyState","hasAttribute","__webpack_require__","_HtmlParser","_HtmlParser2","supports","streamReaders","_fixedReadTokenFactory","_fixedReadTokenFactory2","_utils","detect","comment","endTag","atomicTag","startTag","chars","HtmlParser","fix","fixedTokenOptions","_readToken","_readTokenImpl","_peekToken","_peekTokenImpl","prepend","token","peekToken","readTokens","handlers","rest","tokenToString","escapeAttributes","escapedAttrs","escapeQuotes","browserHasFlaw","tagSoup","selfClose","work","_typeof","Symbol","iterator","constructor","index","_tokens","CommentToken","CharsToken","start","RegExp","AtomicTagToken","booleanAttrs","REGEXES","EndTagToken","fillAttr","_ret","v","StartTagToken","TagToken","Token","html5Unary","formatTag","defaultValue","_","prefix","readTokenImpl","lastTagNameEq","toUpperCase","containsTagName","newStack","prepareNextToken","selfCloseFix","CLOSESELF","closeLast","tagSoupFix","tmp","correct","EMPTY","thing","each","arr","isTag","tag","toLowerCase","x","_defaults","ret","_isNumber","n","isNaN","parseFloat","isFinite","lineNumber","columnNumber","setFunctionName","setArgs","setFileName","setLineNumber","setColumnNumber","setSource","getFunctionName","getArgs","getFileName","getLineNumber","Number","getColumnNumber","getSource","t","r","s","o","u","code","_dereq_","scheduleDrain","draining","Mutation","MutationObserver","WebKitMutationObserver","called","observer","nextTick","element","observe","characterData","data","setImmediate","MessageChannel","scriptEl","removeChild","documentElement","channel","port1","onmessage","port2","postMessage","oldQueue","immediate","task","INTERNAL","REJECTED","FULFILLED","PENDING","Promise","resolver","state","outcome","safelyResolveThenable","QueueItem","promise","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","func","returnValue","reject","resolve","getThen","then","thenable","onError","onSuccess","tryToUnwrap","tryCatch","out","reason","all","iterable","values","resolved","allResolver","resolveFromAll","outValue","race","getIDB","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","idb","isIndexedDBValid","isSafari","openDatabase","platform","hasFetch","fetch","IDBKeyRange","createBlob","properties","builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","getBlob","Promise$1","executeCallback","callback","executeTwoCallbacks","errorCallback","normalizeKey","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","READ_ONLY","READ_WRITE","_binStringToArrayBuffer","bin","buf","ArrayBuffer","Uint8Array","charCodeAt","_checkBlobSupportWithoutCaching","txn","transaction","blob","objectStore","put","onabort","preventDefault","stopPropagation","oncomplete","matchedChrome","matchedEdge","parseInt","_checkBlobSupport","_deferReadiness","dbInfo","dbContext","deferredOperation","deferredOperations","dbReady","_advanceReadiness","_rejectReadiness","_getConnection","upgradeNeeded","createDbContext","db","dbArgs","version","openreq","onupgradeneeded","createObjectStore","storeName","oldVersion","ex","newVersion","onsuccess","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","objectStoreNames","contains","isDowngrade","isUpgrade","incVersion","_encodeBlob","reader","base64","btoa","__local_forage_encoded_blob","readAsBinaryString","_decodeBlob","encodedBlob","atob","_isEncodedBlob","_fullyReady","_initReady","_dbInfo","_tryReconnect","forages","forage","createTransaction","mode","retries","tx","_initStorage","ready","initPromises","ignoreErrors","_defaultConfig","getItem","req","get","iterate","openCursor","iterationNumber","setItem","blobSupport","store","removeItem","count","advanced","openKeyCursor","advance","keys","dropInstance","currentConfig","config","dbPromise","dropObjectPromise","deleteObjectStore","_forage2","dropDBPromise","deleteDatabase","onblocked","asyncStorage","_driver","_support","isWebSQLValid","BASE_CHARS","BLOB_TYPE_PREFIX","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","encoded1","encoded2","encoded3","encoded4","bufferLength","buffer","bytes","bufferToString","base64String","substring","serialize","valueType","marker","fileReader","readAsArrayBuffer","JSON","stringify","deserialize","blobType","matcher","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","localforageSerializer","createDbTable","executeSql","_initStorage$1","dbInfoPromise","description","size","serializer","tryExecuteSql","sqlStatement","SYNTAX_ERR","results","rows","getItem$1","item","iterate$1","_setItem","retriesLeft","originalValue","sqlError","QUOTA_ERR","setItem$1","removeItem$1","clear$1","length$1","key$1","keys$1","getAllStoreNames","storeNames","dropInstance$1","operationInfo","dropTable","operations","webSQLStorage","isLocalStorageValid","localStorage","_getKeyPrefix","defaultConfig","keyPrefix","checkIfLocalStorageThrows","localStorageTestKey","_isLocalStorageUsable","_initStorage$2","clear$2","getItem$2","iterate$2","keyPrefixLength","key$2","keys$2","itemKey","length$2","removeItem$2","setItem$2","dropInstance$2","localStorageWrapper","sameValue","y","includes","searchElement","isArray","DefinedDrivers","DriverSupport","DefaultDrivers","INDEXEDDB","WEBSQL","LOCALSTORAGE","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","concat","DefaultConfig","driver","callWhenReady","localForageInstance","libraryMethod","_args","extend","LocalForage","driverTypeKey","driverName","defineDriver","_config","_driverSet","_initDriver","_ready","_wrapLibraryMethodsWithReady","setDriver","driverObject","complianceError","driverMethods","driverMethodName","configureMissingMethods","methodNotImplementedFactory","methodName","_i","optionalDriverMethod","setDriverSupport","support","info","getDriver","getDriverPromise","getSerializer","serializerPromise","drivers","supportedDrivers","_getSupportedDrivers","setDriverToConfig","extendSelfWithDriver","_extend","initDriver","currentDriverIndex","driverPromiseLoop","oldDriverSetDone","libraryMethodsAndProperties","createInstance","localforage_js","Reflect","globalThis","Function","functionThis","eval","indirectEvalThis","exporter","makeExporter","previous","configurable","writable","hasOwn","supportsSymbol","toPrimitiveSymbol","toPrimitive","iteratorSymbol","supportsCreate","create","supportsProto","__proto__","downLevel","HashMap","MakeDictionary","has","functionPrototype","getPrototypeOf","_Map","Map","entries","CreateMapPolyfill","_Set","Set","CreateSetPolyfill","_WeakMap","WeakMap","CreateWeakMapPolyfill","registrySymbol","for","metadataRegistry","GetOrCreateMetadataRegistry","metadataProvider","CreateMetadataProvider","decorate","decorators","propertyKey","attributes","IsUndefined","IsArray","IsConstructor","DecorateConstructor","IsObject","IsNull","DecorateProperty","ToPropertyKey","metadata","metadataKey","metadataValue","decorator","IsPropertyKey","OrdinaryDefineOwnMetadata","defineMetadata","hasMetadata","OrdinaryHasMetadata","hasOwnMetadata","OrdinaryHasOwnMetadata","getMetadata","OrdinaryGetMetadata","getOwnMetadata","OrdinaryGetOwnMetadata","getMetadataKeys","OrdinaryMetadataKeys","getOwnMetadataKeys","OrdinaryOwnMetadataKeys","deleteMetadata","provider","GetMetadataProvider","OrdinaryDeleteMetadata","decorated","descriptor","MetadataKey","O","P","parent","OrdinaryGetPrototypeOf","ToBoolean","MetadataValue","ownKeys","parentKeys","set","ownKeys_1","add","parentKeys_1","Type","IsSymbol","ToPrimitive","input","PreferredType","hint","exoticToPrim","GetMethod","OrdinaryToPrimitive","toString_1","IsCallable","valueOf","toString_2","argument","ToString","SameValueZero","V","GetIterator","method","IteratorValue","iterResult","IteratorStep","next","IteratorClose","proto","prototypeProto","CreateMetadataRegistry","fallback","first","second","CreateFallbackProvider","targetProviderMap","registry","registerProvider","getProvider","setProvider","isExtensible","getProviderNoCache","isProviderFor","providerMap","hasProvider","existingProvider","enumerable","targetMetadata","GetOrCreateMetadataMap","Create","createdTargetMetadata","metadataMap","delete","nextValue","reflect","metadataOwner","metadataPropertySet","registeredProvider","cacheSentinel","arraySentinel","MapIterator","selector","_index","_keys","_values","_selector","throw","return","_cacheKey","_cacheIndex","_find","getKey","getValue","getEntry","insert","UUID_SIZE","rootKey","CreateUniqueKey","table","GetOrCreateWeakMapTable","CreateUUID","FillRandomBytes","Math","random","GenRandomBytes","crypto","getRandomValues","msCrypto","offset","byte","__","__webpack_module_cache__","cachedModule","__webpack_modules__","getter","definition","prop","toStringTag","LogLevel","HttpError","errorMessage","statusCode","trueProto","super","TimeoutError","AbortError","UnsupportedTransportError","transport","errorType","DisabledTransportError","FailedToStartTransportError","FailedToNegotiateWithServerError","AggregateErrors","innerErrors","HttpResponse","statusText","HttpClient","post","getCookieString","NullLogger","_logLevel","_message","VERSION","Arg","isRequired","isNotEmpty","isIn","Platform","isBrowser","isNode","isWebWorker","isReactNative","process","release","getDataDetail","includeContent","detail","isArrayBuffer","byteLength","view","forEach","num","formatArrayBuffer","async","sendMessage","logger","transportName","httpClient","headers","getUserAgentHeader","Trace","logMessageContent","timeout","withCredentials","SubjectSubscription","subject","_subject","_observer","dispose","observers","splice","cancelCallback","catch","ConsoleLogger","minimumLogLevel","_minLevel","logLevel","Date","toISOString","Critical","Warning","Information","userAgentHeaderName","constructUserAgent","getOsName","getRuntime","getRuntimeVersion","os","runtime","runtimeVersion","majorAndMinor","versions","getErrorString","FetchHttpClient","_logger","requireFunc","_jar","CookieJar","_fetchType","bind","getGlobalThis","AbortController","_abortControllerType","request","abortSignal","aborted","abortController","timeoutId","msTimeout","cache","credentials","redirect","signal","clearTimeout","ok","deserializeContent","cookies","getCookies","arrayBuffer","XhrHttpClient","xhr","setRequestHeader","header","responseText","ontimeout","DefaultHttpClient","_httpClient","TextMessageFormat","RecordSeparator","messages","RecordSeparatorCode","fromCharCode","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","parseHandshakeResponse","messageData","remainingData","binaryData","separatorIndex","responseLength","textData","MessageType","Subject","complete","subscribe","MessageBuffer","protocol","connection","bufferSize","_bufferSize","_messages","_totalMessageCount","_waitForSequenceMessage","_nextReceivingSequenceId","_latestReceivedSequenceId","_bufferedByteCount","_reconnectInProgress","_protocol","_connection","_send","serializedMessage","writeMessage","backpressurePromise","_isInvocationMessage","backpressurePromiseResolver","backpressurePromiseRejector","BufferedItem","_disconnected","_ack","ackMessage","newestAckedMessage","_id","sequenceId","_resolver","_shouldProcessMessage","Sequence","currentId","_ackTimer","_resetSequence","stop","_resend","_dispose","_rejector","Invocation","StreamItem","Completion","StreamInvocation","CancelInvocation","Close","Ping","Ack","_ackTimerHandle","rejector","HubConnectionState","HubConnection","reconnectPolicy","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","statefulReconnectBufferSize","_nextKeepAlive","_freezeEventListener","_statefulReconnectBufferSize","_reconnectPolicy","_handshakeProtocol","onreceive","_processIncomingData","onclose","_connectionClosed","_callbacks","_methods","_closedCallbacks","_reconnectingCallbacks","_reconnectedCallbacks","_invocationId","_receivedHandshakeResponse","_connectionState","Disconnected","_connectionStarted","_cachedPingMessage","connectionId","baseUrl","Reconnecting","_startPromise","_startWithStateTransitions","Connecting","Debug","_startInternal","addEventListener","Connected","_stopDuringStartError","handshakePromise","_handshakeResolver","_handshakeRejecter","transferFormat","features","reconnect","_sendMessage","_cleanupTimeout","_resetTimeoutPeriod","_resetKeepAliveInterval","_messageBuffer","disconnected","resend","inherentKeepAlive","_cleanupPingTimer","startPromise","_stopPromise","_stopInternal","Disconnecting","_reconnectDelayHandle","_completeClose","_sendCloseMessage","_sendWithProtocol","_createCloseMessage","streamIds","_replaceStreamingParams","invocationDescriptor","_createStreamInvocation","promiseQueue","cancelInvocation","_createCancelInvocation","invocationId","invocationEvent","_launchStreams","sendPromise","_createInvocation","invoke","on","newMethod","off","removeIdx","onreconnecting","onreconnected","_processHandshakeResponse","parseMessages","_invokeClientMethod","allowReconnect","responseMessage","getTime","_timeoutHandle","serverTimeout","_pingServerHandle","nextPing","invocationMessage","methods","_createCompletionMessage","methodsCopy","expectsResponse","res","exception","completionMessage","prevRes","_cancelCallbacksWithError","_reconnect","removeEventListener","reconnectStartTime","now","previousReconnectAttempts","retryError","nextRetryDelay","_getNextRetryDelay","previousRetryCount","elapsedMilliseconds","retryReason","nextRetryDelayInMilliseconds","callbacks","nonblocking","streamId","_createStreamItemMessage","_isObservable","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","_retryDelays","retryContext","HeaderNames","Authorization","Cookie","AccessTokenHttpClient","innerClient","accessTokenFactory","_innerClient","_accessTokenFactory","allowRetry","_accessToken","_setAuthorizationHeader","HttpTransportType","TransferFormat","_isAborted","LongPollingTransport","pollAborted","_pollAbort","_options","_running","connect","_url","Binary","pollOptions","pollUrl","_closeError","_receiving","_poll","_raiseOnClose","deleteOptions","logMessage","ServerSentEventsTransport","accessToken","encodeURIComponent","eventSource","opened","Text","EventSource","_close","onopen","_eventSource","WebSocketTransport","webSocketConstructor","_logMessageContent","_webSocketConstructor","_headers","webSocket","binaryType","_event","_webSocket","ErrorEvent","OPEN","_isCloseEvent","wasClean","HttpConnection","_stopPromiseResolver","_negotiateVersion","createLogger","_resolveUrl","webSocketModule","eventSourceModule","WebSocket","_startInternalPromise","_sendQueue","TransportSendQueue","_stopError","_stopConnection","skipNegotiation","WebSockets","_constructTransport","_startTransport","negotiateResponse","redirects","_getNegotiationResponse","ProtocolVersion","_createTransport","negotiateUrl","_resolveNegotiateUrl","negotiateVersion","connectionToken","useStatefulReconnect","_useStatefulReconnect","_createConnectUrl","requestedTransport","requestedTransferFormat","connectUrl","_isITransport","transportExceptions","transports","availableTransports","negotiate","endpoint","transportOrError","_resolveTransportOrError","ServerSentEvents","LongPolling","callStop","actualTransport","transportMatches","transferFormats","lastIndexOf","aTag","pathname","endsWith","searchParams","URLSearchParams","search","_transport","_buffer","_executing","_sendBufferedData","PromiseSource","_transportResult","_sendLoopPromise","_sendLoop","_bufferData","transportResult","_concatBuffers","arrayBuffers","totalLength","reduce","_rejecter","JsonHubProtocol","hubMessages","parsedMessage","_isStreamItemMessage","_isCompletionMessage","_isAckMessage","_isSequenceMessage","_assertNotEmptyString","LogLevelNameMapping","trace","debug","information","warning","critical","none","None","HubConnectionBuilder","configureLogging","logging","isLogger","mapping","parseLogLevel","withUrl","transportTypeOrOptions","httpConnectionOptions","withHubProtocol","withAutomaticReconnect","retryDelaysOrReconnectPolicy","withServerTimeout","milliseconds","_serverTimeoutInMilliseconds","withKeepAliveInterval","_keepAliveIntervalInMilliseconds","withStatefulReconnect","build","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","_$cssResult$","replaceSync","S","adoptedStyleSheets","litNonce","textContent","cssRules","is","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","trustedTypes","emptyScript","reactiveElementPolyfillSupport","toAttribute","Boolean","fromAttribute","attribute","converter","hasChanged","litPropertyMetadata","addInitializer","_$Ei","observedAttributes","finalize","_$Eh","createProperty","elementProperties","noAccessor","getPropertyDescriptor","requestUpdate","getPropertyOptions","finalized","_$Eu","elementStyles","finalizeStyles","styles","flat","reverse","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","enableUpdating","_$AL","_$E_","addController","_$EO","renderRoot","isConnected","hostConnected","removeController","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EC","_$ET","_$Ej","scheduleUpdate","performUpdate","wrapped","shouldUpdate","willUpdate","hostUpdate","update","_$EU","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","toFixed","createComment","$","_$litType$","strings","w","T","E","A","C","createTreeWalker","lastIndex","startsWith","N","currentNode","firstChild","replaceWith","nextNode","hasAttributes","getAttributeNames","ctor","H","I","L","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","startNode","endNode","_$AR","insertBefore","_$AC","_$AP","remove","setConnected","fill","toggleAttribute","capture","once","passive","handleEvent","host","Z","D","U","B","F","litHtmlPolyfillSupport","litHtmlVersions","renderBefore","_$litPart$","renderOptions","_$Do","render","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","customElements","define","kind","init","querySelector","createDocumentFragment","querySelectorAll","slot","assignedElements","matches","assignedNodes","kindOf","kindOfTest","typeOfTest","isUndefined","isString","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","cb","asap","queueMicrotask","isBuffer","isFormData","FormData","isArrayBufferView","isView","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","trim","stripBOM","inherits","superConstructor","props","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","position","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","toCamelCase","p1","p2","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","captureStackTrace","toJSON","number","from","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","predicates","formData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","convertValue","Buffer","some","isFlatArray","exposedHelpers","encode","charMap","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","use","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","classes","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","adapter","transformRequest","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","parseHeaders","tokensRE","parseTokens","deleted","deleteHeader","normalize","normalized","char","formatHeader","targets","asStrings","computed","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","floor","samplesCount","min","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","freq","lastArgs","timer","threshold","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","total","lengthComputable","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","msie","urlParsingNode","originURL","resolveURL","hash","hostname","port","charAt","requestURL","expires","domain","secure","cookie","toGMTString","read","decodeURIComponent","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","username","password","unescape","isURLSameOrigin","xsrfValue","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","responseHeaders","getAllResponseHeaders","responseURL","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","upload","parseProtocol","signals","controller","streamChunk","chunkSize","end","pos","readStream","asyncIterator","getReader","trackStream","onProgress","onFinish","readBytes","_onFinish","ReadableStream","pull","loadedBytes","enqueue","highWaterMark","isFetchSupported","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","flush","isCredentialsSupported","isStreamResponse","responseContentLength","responseData","knownAdapters","http","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","formatMessage","opt","desc","opts","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","toFormData","Cancel","promises","spread","isAxiosError","formToJSON","getAdapter","NAMED_TAG","NAME_TAG","UNMANAGED_TAG","OPTIONAL_TAG","INJECT_TAG","MULTI_INJECT_TAG","TAGGED","TAGGED_PROP","PARAM_TYPES","DESIGN_PARAM_TYPES","POST_CONSTRUCT","PRE_DESTROY","NON_CUSTOM_TAG_KEYS","BindingScopeEnum","Singleton","Transient","BindingTypeEnum","ConstantValue","DynamicValue","Factory","Instance","Invalid","Provider","TargetTypeEnum","ClassProperty","ConstructorArgument","Variable","idCounter","Binding","serviceIdentifier","scope","activated","constraint","implementationType","onActivation","onDeactivation","dynamicValue","clone","DUPLICATED_INJECTABLE_DECORATOR","DUPLICATED_METADATA","NULL_ARGUMENT","KEY_NOT_FOUND","AMBIGUOUS_MATCH","NOT_REGISTERED","MISSING_INJECTABLE_ANNOTATION","INVALID_DECORATOR_OPERATION","ON_DEACTIVATION_ERROR","clazz","MetadataReader","getConstructorMetadata","constructorFunc","compilerGeneratedMetadata","userGeneratedMetadata","getPropertiesMetadata","BindingCount","isStackOverflowExeption","RangeError","getServiceIdentifierAsString","listRegisteredBindingsForServiceIdentifier","container","getBindings","registeredBindingsList","registeredBindings","binding","metaData","alreadyDependencyChain","parentRequest","circularDependencyToException","childRequests","childRequest","services","stringArr","_createStringArr","dependencyChainToString","name_1","Context","addPlan","plan","setCurrentRequest","currentRequest","Metadata","Plan","parentContext","rootRequest","LazyServiceIdentifier","_cb","QueryableString","reverseString","reverseSearchString","equals","compareString","Target","identifier","namedOrTagged","queryableName","metadataItem","hasTag","matchesArray","matchesTag","isNamed","isTagged","every","isOptional","getNamedTag","getCustomTags","matchesNamedTag","__spreadArray","to","pack","ar","getTargets","metadataReader","constructorName","isBaseClass","serviceIdentifiers","constructorArgsMetadata","hasUserDeclaredUnknownInjections","hasOptionalParameters","constructorTargets","iterations","getConstructorArgsAsTarget","getConstructorArgsAsTargets","propertyTargets","getClassPropsAsTargets","formatTargetMetadata","isManaged","unmanaged","injectIdentifier","multiInject","targetName","_getServiceIdentifierForProperty","propertyName","className","classPropsMetadata","symbolKeys","keys_1","baseConstructor","baseTargets","getBaseClassDependencyCount","unmanagedCount","dependencyCount","targetMetadataMap","bindings","requestScope","addChildRequest","child","getBindingDictionary","cntnr","_bindingDictionary","_getActiveBindings","avoidConstraints","activeBindings","autoBindInjectable","toSelf","serviceIdentifierString","m_1","namedTag","otherTags","listMetadataForTarget","_validateActiveBindingCount","_createSubRequests","thePlan","subChildRequest","dependencies","getDependencies","skipBaseClassChecks","baseClassDependencyCount","dependency","bindingDictionary","hasKey","isMultiInject","targetType","injectMetadata","tagMetadata","_createTarget","isPromise","object","isPromiseOrContainsPromise","FactoryType","__awaiter","_arguments","generator","step","__generator","label","sent","trys","ops","verb","op","_saveToRequestScope","_saveToSingletonScope","_saveAsyncResultToSingletonScope","asyncResult","ex_1","multiBindToService","service","types","toService","__assign","_createInstance","constr","resolveRequest","resolvedRequests","injection","constructorInjections","propertyRequests","propertyInjections","isAsync","_resolveRequests","createInstanceWithInjectionsArg","possiblyWaitInjections","createInstanceWithInjections","createInstanceWithInjectionsAsync","property","possiblePromiseinjections","injections","possiblePromiseinjections_1","_getInstanceAfterPostConstruct","postConstructResult","_b","_postConstruct","_validateInstanceResolution","scopeErrorMessage","_throwIfHandlingDeactivation","_resolveRequest","targetIsAnArray","targetParentIsNotAnArray","_f","_resolveBinding","_resolveFactoryFromBinding","factoryDetails","factoryType","getFactoryDetails","tryAndThrowErrorIfStackOverflow","_getResolvedFromBinding","boundValue","serviceIdentifierAsString","ensureFullyBound","resolvedResult","resolveInstance","_resolveInScope","resolveFromBinding","tryGetFromScope","saveToScope","_onActivation","_bindingActivation","containersIterator","_getContainersIterator","containersIteratorResult","context_1","activationsIterator","_getContainerActivationsForService","_activateContainerAsync","_activateContainer","previousResult","activation","resultPromise","activations","_activations","containersStack","nextContainer","traverseAncerstors","taggedConstraint","namedConstraint","typeConstraint","BindingWhenSyntax","_binding","when","BindingOnSyntax","whenTargetNamed","whenTargetIsDefault","whenTargetTagged","whenInjectedInto","whenParentNamed","whenParentTagged","whenAnyAncestorIs","ancestor","whenNoAncestorIs","whenAnyAncestorNamed","whenNoAncestorNamed","whenAnyAncestorTagged","whenNoAncestorTagged","whenAnyAncestorMatches","whenNoAncestorMatches","BindingWhenOnSyntax","_bindingWhenSyntax","_bindingOnSyntax","BindingInSyntax","inRequestScope","inSingletonScope","inTransientScope","BindingInWhenOnSyntax","_bindingInSyntax","BindingToSyntax","toConstantValue","toDynamicValue","toConstructor","toFactory","toFunction","bindingWhenOnSyntax","toAutoFactory","toAutoNamedFactory","named","getNamed","toProvider","ContainerSnapshot","of","middleware","deactivations","moduleActivationStore","snapshot","Lookup","getMap","entry","removeIntersection","lookup","traverse","lookupActivations","filteredValues","lookupValue","moduleActivation","_setValue","removeByCondition","condition","removals","updatedEntries","entries_1","copy","ModuleActivationStore","_getEmptyHandlersStore","addDeactivation","_getModuleActivationHandlers","onDeactivations","addActivation","onActivations","handlersStore","moduleActivationHandlers","Container","containerOptions","defaultScope","_snapshots","_middleware","_deactivations","_metadataReader","_moduleActivationStore","container1","container2","containers","targetContainers","targetContainer","targetBindingDictionary","destination","copyDictionary","load","getHelpers","_getContainerModuleHelpersFactory","modules_1","currentModule","containerModuleHelpers","bindFunction","unbindFunction","isboundFunction","rebindFunction","unbindAsyncFunction","onActivationFunction","onDeactivationFunction","loadAsync","modules_2","unload","_removeModuleBindings","_deactivateSingletons","_removeModuleHandlers","unloadAsync","modules_3","module_1","_deactivateSingletonsAsync","rebind","unbind","rebindAsync","unbindAsync","_removeServiceFromDictionary","unbindAll","unbindAllAsync","isBound","bound","isCurrentBound","isBoundNamed","isBoundTagged","request_1","createMockRequest","restore","createChild","applyMiddleware","middlewares","initial","_planAndResolve","prev","curr","applyCustomMetadataReader","_getNotAllArgs","_getButThrowIfAsync","getAsync","_get","getTagged","getTaggedAsync","getNamedAsync","getAll","_getAllArgs","getAllAsync","_getAll","getAllTagged","getAllTaggedAsync","getAllNamed","getAllNamedAsync","constructorFunction","_preDestroy","moduleActivationsHandlers","_deactivate","_deactivateContainer","_handleDeactivationError","_propagateContainerDeactivationThenBindingAndPreDestroyAsync","propagateDeactivationResult","_propagateContainerDeactivationThenBindingAndPreDestroy","deactivationsIterator","deactivation","_deactivateContainerAsync","setModuleId","bindingToSyntax","getRebindFunction","getOnActivationFunction","getOnDeactivationFunction","mId","planAndResolveArgs","contextInterceptor","middlewareResult","_deactivateIfSingleton","bindings_1","_bindingDeactivationAndPreDestroy","_bindingDeactivationAndPreDestroyAsync","ContainerModule","AsyncContainerModule","tagParameter","annotationTarget","parameterName","parameterIndex","_throwIfMethodParameter","_tagParameterOrProperty","_ensureNoMetadataKeyDuplicates","metadatas","duplicate","seenValues","array_1","getFirstArrayDuplicate","md","paramsOrPropertiesMetadata","paramOrPropertyMetadata","_loop_1","paramOrPropertyMetadata_1","createTaggedDecorator","indexOrPropertyDescriptor","tagProperty","_decorate","_param","paramIndex","parameterIndexOrProperty","injectable","tagged","injectBase","optional","propertyEventDecorator","eventKey","interfaces","postConstruct","preDestroy","METADATA_KEY","InvalidTokenError","base64UrlDecode","b64DecodeUnicode","level","Log2","nopLogger","Log","reset","setLevel","setLogger","Logger","_Logger","_name","_format","_method","methodLogger","createStatic","staticMethod","staticLogger","JwtUtils","decode","part","decoded","jwtDecode","generateSignedJwt","privateKey","encodedToken","CryptoUtils","encodeBase64Url","signature","subtle","sign","toBase64","chr","_CryptoUtils","_randomWord","generateUUIDv4","uuid","generateCodeVerifier","generateCodeChallenge","code_verifier","hashed","digest","generateBasicAuth","client_id","client_secret","alg","msgUint8","hashBuffer","customCalculateJwkThumbprint","jwk","jsonObject","kty","crv","utf8encodedAndHashed","generateDPoPProof","httpMethod","keyPair","nonce","hashedToken","encodedHash","randomUUID","ath","publicJwk","exportKey","publicKey","generateDPoPJkt","generateDPoPKeys","generateKey","namedCurve","Event","addHandler","removeHandler","idx","raise","ev","PopupUtils","center","width","find","outerWidth","left","max","screenX","height","top","screenY","outerHeight","Timer","_Timer","_timerHandle","_expiration","_callback","diff","getEpochTime","durationInSeconds","logger2","expiration","timerDurationInSeconds","setInterval","clearInterval","UrlUtils","readParams","responseMode","ErrorResponse","form","_c","error_description","error_uri","userState","session_state","url_state","ErrorTimeout","AccessTokenEvents","_expiringTimer","_expiredTimer","_expiringNotificationTimeInSeconds","expiringNotificationTimeInSeconds","access_token","expires_in","duration","expiring","expired","addAccessTokenExpiring","removeAccessTokenExpiring","addAccessTokenExpired","removeAccessTokenExpired","CheckSessionIFrame","_client_id","_intervalInSeconds","_stopOnError","_timer","_session_state","_frame_origin","_frame","contentWindow","parsedUrl","visibility","InMemoryWebStorage","_data","ErrorDPoPNonce","JsonService","additionalContentTypes","_jwtHandler","_extraHeaders","_contentTypes","fetchWithTimeout","timeoutInSeconds","initFetch","DOMException","getJson","appendExtraHeaders","json","postForm","basicAuth","initCredentials","extraHeaders","customKeys","protectedHeaders","headerName","toLocaleLowerCase","MetadataService","_settings","_signingKeys","_metadata","_metadataUrl","metadataUrl","_jsonService","signingKeys","fetchRequestCredentials","_fetchRequestCredentials","resetSigningKeys","requestTimeoutInSeconds","metadataSeed","getIssuer","_getMetadataProperty","getAuthorizationEndpoint","getUserInfoEndpoint","getTokenEndpoint","getCheckSessionIframe","getEndSessionEndpoint","getRevocationEndpoint","getKeysEndpoint","getSigningKeys","jwks_uri","keySet","WebStorageStateStore","_store","_prefix","getAllKeys","OidcClientSettingsStore","authority","response_type","redirect_uri","post_logout_redirect_uri","client_authentication","prompt","display","max_age","ui_locales","acr_values","resource","response_mode","filterProtocolClaims","loadUserInfo","staleStateAgeInSeconds","mergeClaimsStrategy","disablePKCE","stateStore","revokeTokenAdditionalContentTypes","refreshTokenAllowedScope","extraQueryParams","extraTokenParams","dpop","omitScopeWhenRequesting","UserInfoService","_metadataService","_getClaimsFromJwt","getClaims","claims","TokenClient","exchangeCode","grant_type","exchangeCredentials","exchangeRefreshToken","refresh_token","param","revoke","token_type_hint","ResponseValidator","_claimsService","_userInfoService","_tokenClient","validateSigninResponse","_processSigninState","_processCode","isOpenId","_validateIdTokenAttributes","_processClaims","skipUserInfo","validateCredentialsResponse","id_token","validateRefreshResponse","profile","hasIdToken","validateSignoutResponse","validateSub","sub","mergeClaims","tokenResponse","existingToken","incoming","existing","auth_time","azp","State","_State","created","request_type","toStorageString","fromStorageString","storageString","clearStaleState","storage","age","cutoff","SigninState","_SigninState","code_challenge","_SigninRequest","state_data","dpopJkt","optionalParams","stateParam","SigninRequest","SigninResponse","token_type","splitState","expires_at","SignoutRequest","id_token_hint","SignoutResponse","DefaultProtocolClaims","InternalRequiredProtocolClaims","ClaimsService","protocolClaims","claim","claims1","claims2","mergedValues","DPoPState","OidcClient","settings","metadataService","_validator","createSigninRequest","request_uri","login_hint","signinRequest","signinState","readSigninResponseState","removeState","storedStateString","processSigninResponse","dpopProof","getDpopProof","dpopStore","dpopState","processResourceOwnerPasswordCredentials","signinResponse","useRefreshToken","allowableScopes","createSignoutRequest","signoutState","readSignoutResponseState","processSignoutResponse","revokeToken","SessionMonitor","_userManager","_start","user","_sub","_checkSessionIFrame","intervalInSeconds","checkSessionIntervalInSeconds","stopOnError","stopCheckSessionOnError","checkSessionIFrame","_stop","monitorAnonymousSession","timerHandle","session","querySessionStatus","tmpUser","raiseEvent","events","_raiseUserSessionChanged","_raiseUserSignedOut","_raiseUserSignedIn","addUserLoaded","addUserUnloaded","_init","getUser","User","_User","scopes","messageSource","AbstractChildWindow","_abort","_disposeHandlers","_window","navigate","keepOpen","scriptOrigin","_notifyParent","targetOrigin","DefaultPopupWindowFeatures","toolbar","closePopupWindowAfterInSeconds","DefaultPopupTarget","DefaultAccessTokenExpiringNotificationTimeInSeconds","DefaultCheckSessionIntervalInSeconds","UserManagerSettingsStore","popup_redirect_uri","popup_post_logout_redirect_uri","popupWindowFeatures","popupWindowTarget","redirectMethod","redirectTarget","iframeNotifyParentOrigin","iframeScriptOrigin","silent_redirect_uri","silentRequestTimeoutInSeconds","automaticSilentRenew","validateSubOnSilentRenew","includeIdTokenInSilentRenew","monitorSession","query_status_response_type","revokeTokenTypes","revokeTokensOnSignout","includeIdTokenInSilentSignout","accessTokenExpiringNotificationTimeInSeconds","userStore","sessionStorage","IFrameWindow","_IFrameWindow","_timeoutInSeconds","createHiddenIframe","iframe","_a2","frame","notifyParent","IFrameNavigator","prepare","PopupWindow","popupSignal","centeredPopup","closed","focus","popupClosedInterval","notifyOpener","opener","PopupNavigator","RedirectNavigator","targetWindow","UserManagerEvents","_userLoaded","_userUnloaded","_silentRenewError","_userSignedIn","_userSignedOut","_userSessionChanged","removeUserLoaded","removeUserUnloaded","addSilentRenewError","removeSilentRenewError","_raiseSilentRenewError","addUserSignedIn","removeUserSignedIn","addUserSignedOut","removeUserSignedOut","addUserSessionChanged","removeUserSessionChanged","SilentRenewService","_isStarted","_retryTimer","_tokenExpiring","signinSilent","RefreshState","UserManager","redirectNavigator","popupNavigator","iframeNavigator","_client","_redirectNavigator","_popupNavigator","_iframeNavigator","_events","_silentRenewService","startSilentRenew","_sessionMonitor","_loadUser","removeUser","storeUser","signinRedirect","requestArgs","bind_authorization_code","handle","_signinStart","signinRedirectCallback","_signinEnd","signinResourceOwnerCredentials","_buildUser","signinPopup","_signin","signinPopupCallback","_useRefreshToken","verifySub","signinSilentCallback","signinCallback","signoutCallback","signoutRedirectCallback","signoutPopupCallback","signoutSilentCallback","navResponse","signoutRedirect","_signoutStart","_signoutEnd","signoutPopup","_signout","_revokeInternal","signoutRequest","signoutResponse","signoutSilent","revokeTokens","typesPresent","stopSilentRenew","_userStoreKey","dpopSettings","dpopKeys","Version","IndexedDbDPoPStore","_dbName","_storeName","createStore","promisifyRequest","dbName","txMode","createStackTraces","stackParser","errorEvent","filename","lineno","colno","stackTraces","isValidStackTrace","fnName","_stack$functionName","fileUrl","filePath","cleanFilePath","cleanedFileName","filePathToFileName","abs_path","remaining","AggregateError","errors","rejectionReasons","setTimeoutFunc","_state","_handled","_deferreds","doResolve","deferred","_immediateFn","newValue","finale","_unhandledRejectionFn","Handler","prom","any","allSettled","local","PERF","performance","byteToHex","generateRandomId","hexOctets","bytesToHex","checkSameOrigin","isSame","isPlatformSupported","setLabel","skey","removeInvalidChars","getTimeOrigin","timing","fetchStart","stripQueryStringFromUrl","baseExtend","dst","objs","deep","ii","jj","getCurrentScript","currentScript","scripts","getElementsByTagName","sc","getElasticScript","getLatestSpan","spans","typeFilter","latestSpan","_i3","_end","time","getDuration","scheduleMacroTask","scheduleMicroTask","isPerfTimelineSupported","getEntriesByType","isPerfTypeSupported","PerformanceObserver","supportedEntryTypes","isPerfInteractionCountSupported","isRedirectInfoAvailable","redirectStart","RULES","NaN","PROTOCOL_REGEX","Url","_this$extractProtocol","extractProtocol","address","slashes","relative","getLocation","instructions","instruction","instLength","newIndex","isDefaultPort","_proto","REDACTED","userpass","query","globalVar","SCHEDULE","INVOKE","ADD_EVENT_LISTENER_STR","RESOURCE_INITIATOR_TYPES","MAX_SPAN_DURATION","PAGE_LOAD_DELAY","PAGE_LOAD","TYPE_CUSTOM","USER_INTERACTION","HTTP_REQUEST_TYPE","TEMPORARY_TYPE","NAME_UNKNOWN","PAGE_EXIT","TRANSACTION_TYPE_ORDER","TRANSACTION_END","CONFIG_CHANGE","QUEUE_FLUSH","QUEUE_ADD_TRANSACTION","TRANSACTION_IGNORE","XMLHTTPREQUEST","FETCH","HISTORY","EVENT_TARGET","CLICK","ERROR","AFTER_EVENT","LOCAL_CONFIG_KEY","LONG_TASK","LARGEST_CONTENTFUL_PAINT","FIRST_INPUT","LAYOUT_SHIFT","EVENT","ERRORS","TRANSACTIONS","CONFIG_SERVICE","LOGGING_SERVICE","TRANSACTION_SERVICE","APM_SERVER","PERFORMANCE_MONITORING","ERROR_LOGGING","TRUNCATED_TYPE","KEYWORD_LIMIT","_excluded","getResponseContext","perfTimingEntry","respContext","transfer_size","transferSize","encoded_body_size","encodedBodySize","decoded_body_size","decodedBodySize","serverTimingStr","serverTimingEntries","serverTimingInfo","_i2","_serverTimingEntries$","timingValue","valueSeparator","getServerTimingInfo","serverTiming","getDestination","portNumber","getPortNumber","ipv6Hostname","getPageContext","page","referer","referrer","addSpanContext","status_code","getExternalContext","getResourceContext","getNavigationContext","addContext","addTransactionContext","_temp","_ref","configContext","tags","excluded","sourceKeys","_objectWithoutPropertiesLoose","pageContext","responseContext","ensureContext","METADATA_MODEL","agent","environment","labels","RESPONSE_MODEL","CONTEXT_MODEL","email","SPAN_MODEL","trace_id","parent_id","transaction_id","subtype","action","TRANSACTION_MODEL","span_count","started","ERROR_MODEL","culprit","isEmpty","replaceValue","currModel","limit","required","placeholder","truncate","truncateModel","model","childTarget","emptyArr","_loop","currKey","IGNORE_KEYS","PROMISE_REJECTION_PREFIX","ErrorLogging","apmServer","configService","transactionService","_apmServer","_configService","_transactionService","createErrorDataModel","filteredFrames","frames","filterInvalidFrames","lastFrame","errorContext","customProperties","propertyFound","getErrorProperties","custom","currentTransaction","getCurrentTransaction","transactionContext","_this$_configService$","errorObject","traceId","sampled","logErrorEvent","addError","registerListeners","promiseRejectionEvent","logPromiseEvent","_parseRejectReason","logError","messageOrError","Queue","onFlush","items","queueLimit","flushInterval","_setTimer","_clear","NDJSON","NAVIGATION_TIMING_MARKS","COMPRESSED_NAV_TIMING_MARKS","getPageLoadMarks","marks","navigationStart","responseStart","responseEnd","timingKey","getNavigationTimingMarks","navigationTiming","timeToFirstByte","domInteractive","domComplete","compressResponse","ts","ebs","dbs","compressContext","compressed","rf","mt","compressHTTP","dt","se","rc","ad","po","un","em","cu","compressMarks","compressedNtMarks","ntMarks","mark","compressNavigationTimingMarks","nt","compressAgentMarks","agentMarks","fb","rs","di","dc","fp","firstContentfulPaint","lp","largestContentfulPaint","compressPayload","isCompressionStreamSupported","CompressionStream","flagName","isFlagSet","isBeaconInspectionEnabled","beforeSend","compressedStream","pipeThrough","__DEV__","bootstrapTime","lastHiddenStart","MIN_SAFE_INTEGER","isResponseSuccessful","shouldUseFetchWithKeepAlive","calculateSize","globalState","fetchInProgress","apmSymbol","patchMethod","patchFn","delegate","patched","original","propertyDesc","delegateName","patchDelegate","XHR_IGNORE","XHR_SYNC","XHR_URL","XHR_METHOD","sendXHR","_ref$timeout","HTTP_REQUEST_TIMEOUT","sendCredentials","canSend","ApmServer","loggingService","_loggingService","throttleEvents","sendEvents","_constructError","onThrottle","interval","counter","observeEvent","_postJson","endPoint","_this2","_makeHttpRequest","_ref2","_ref2$timeout","fetchResponse","_ref$keepalive","keepalive","timeoutConfig","bodyResponse","sendFetchRequest","fetchConfig","serviceName","_this3","configEndpoint","getEndpoints","localConfig","getLocalConfig","etag","apmRequest","remoteConfig","getResponseHeader","setLocalConfig","createMetaData","cfg","language","_this$throttleEvents","addTransaction","_this$throttleEvents2","ndjsonErrors","compress","_NDJSON$stringify","cl","mg","st","ap","li","co","tid","pid","xid","sm","compressError","ndjsonMetricsets","metricsets","metricset","ndjsonTransactions","transactions","_this4","tr","_NDJSON$stringify2","breakdowns","breakdown","spanData","sr","sample_rate","sync","sy","su","ac","me","samples","sa","ysc","yss","yc","sd","experience","_transaction$experien","cls","fid","tbt","longtask","exp","lt","_transaction$session","sequence","ses","seq","compressTransaction","_payload","_NDJSON$stringify3","filteredPayload","applyFilters","ndjson","ve","la","en","compressMetadata","ndjsonPayload","intakeEndpoint","serverUrl","apiVersion","EventHandler","sendOnly","obs","Config","serviceVersion","serverUrlPrefix","instrument","disableInstrumentations","breakdownMetrics","ignoreTransactions","eventsLimit","distributedTracing","distributedTracingOrigins","distributedTracingHeaderName","pageLoadTraceId","pageLoadSpanId","pageLoadSampled","pageLoadTransactionName","propagateTracestate","transactionSampleRate","centralConfig","monitorLongtasks","filters","scriptData","dataAttrs","dataRegex","nodeValue","getDataAttributesFromNode","setConfig","setVersion","addFilter","objKey","setUserContext","userContext","_userContext","setCustomContext","customContext","addLabels","_properties","validate","requiredKeys","allKeys","missing","invalid","unknown","allowed","sampleRate","LoggingService","spec","levels","resetLogMethods","shouldLog","normalizedLevel","realMethod","_serviceCreators","serviceCreators","_factory$getService","getService","ServiceFactory","instances","initialized","_this$getService","patchXMLHttpRequest","XMLHttpRequestPrototype","READY_STATE_CHANGE","LOAD","openNative","sendNative","addListener","invokeTask","scheduleTask","patchFetch","nativeFetch","fetchSelf","isURL","clonedResponse","handleResponseError","isAbortError","patchEventHandler","alreadyPatched","patchAll","history","nativePushState","pushState","patchHistory","PerformanceMonitoring","_logginService","flags","createTransactionPayload","getHistorySub","getXHRSub","getFetchSub","startTransaction","managed","canReuse","processAPICalls","endpoints","requestUrl","spanName","blocking","isDtEnabled","dtOrigins","currentUrl","isSameOrigin","injectDtHeader","injectTSHeader","_span","_target","endSpan","parentId","dtVersion","getDtHeaderValue","getTSHeaderValue","extractDtHeader","parseDtHeaderValue","filterTransaction","createTransactionDataModel","transactionStart","transactionData","breakdownTimings","adjustedTransaction","filterdSpans","similarSpans","originalSpans","transDuration","sort","spanA","spanB","lastCount","lastSpan","isContinuouslySimilar","isLastSpan","groupSmallContinuouslySimilarSpans","resetFields","adjustTransaction","SpanBase","startTime","ended","onEnd","ctx","endTime","callOnEnd","_setPrototypeOf","setPrototypeOf","_SpanBase","subClass","superClass","pageLoadBreakdowns","getSpanBreakdown","transactionDetails","details","_ref$count","timings","current","spanMap","transactionSelfTime","span1","span2","spanEnd","spanStart","lastContinuousEnd","selfTime","calculateSelfTime","groupSpans","_key$split","_spanMap$key","Transaction","_activeSpans","_activeTasks","blocked","captureTimings","addMarks","markTime","reuseThreshold","redefine","trc","_onSpanEnd","addTask","isFinished","detectFinish","sid","captureBreakdown","block","flag","taskId","removeTask","metrics","fcp","Infinity","score","firstEntryTime","NEGATIVE_INFINITY","prevEntryTime","currentSessionScore","captureObserverEntries","list","isHardNavigation","trStart","longtaskEntries","longTaskSpans","longtasks","agg","_longtasks$i","attribution","_attribution$","containerType","containerName","containerId","createLongTaskSpans","lcpEntries","lastLcpEntry","lcp","unloadDiff","fcpEntry","getEntriesByName","fidSpan","fidEntries","firstInput","processingStart","createFirstInputDelaySpan","blockingTime","calculateTotalBlockingTime","clsEntries","hadRecentInput","calculateCumulativeLayoutShift","PerfEntryRecorder","disconnect","buffered","shouldCreateSpan","trEnd","baseTime","eventPairs","createResourceTimingSpan","resourceTimingEntry","initiatorType","isCapturedByPatching","resourceStartTime","requestPatchTime","captureNavigation","customMarks","pageResponse","createNavigationTimingSpans","_trStart","_entries$i","createResourceTimingSpans","userTimingSpans","createUserTimingSpans","TransactionService","respIntervalId","recorder","_tr$spans","_captureObserverEntri","createCurrentTransaction","createOptions","perfOptions","startManagedTransaction","isRedefined","redefineType","currentTypeOrder","redefineTypeOrder","fireOnstartHook","handleTransactionEnd","shouldIgnoreTransaction","tbtObject","tbtSpan","sum","setSession","urlStr","depth","pathParts","redactString","specialCharsRegex","digitsRegex","lowerCaseRegex","upperCaseRegex","redactedParts","redactedBefore","numberOfDigits","numberofUpperCase","lowerCaseRate","upperCaseRate","slugifyUrl","adjustTransactionTime","sessionConfig","earliestSpan","_i4","getEarliestSpan","getLatestNonXHRSpan","latestSpanEnd","transactionEndWithoutDelay","latestXHRSpan","getLatestXHRSpan","latestXHRSpanEnd","truncateSpans","transactionEnd","transactionName","ignoreList","INP_THRESHOLD","MAX_INTERACTIONS_TO_CONSIDER","inpState","minInteractionId","maxInteractionId","interactionCount","longestInteractions","observeUserInteractions","processUserInteractions","isPerfCountSupported","durationThreshold","getEntries","interactionId","updateInteractionCount","leastSlow","filteredInteraction","interaction","foundInteraction","storeUserInteraction","reportInp","inp","interactionIndex","calculateInp","inpTr","navigations","hardNavigationUrl","inp_value","observePageVisibility","visibilityState","visibilityChangeHandler","onPageHidden","pageHideHandler","useCapture","unobserve","endManagedTransaction","unobserveDiscard","unobserveQueueAdd","INTERACTIVE_SELECTOR","observePageClicks","clickHandler","Element","_getTransactionMetada","dtName","trCustomNameAttribute","fallbackName","closest","findCustomTransactionName","buildTransactionName","getTransactionMetadata","createUserInteractionTransaction","getInstrumentationFlags","disabledInstrumentations","_flags","RAF_TIMEOUT","afterFrame","cancelAnimationFrame","raf","requestAnimationFrame","enabled","bootstrap","_otSpan","__tracer","isTransaction","userId","errorLogging","_otTracer","performanceMonitoring","spanOptions","childRef","predicate","kValue","ref","otSpan","createTracer","serviceFactory","createServiceFactory","_serviceFactory$getSe","_serviceFactory$getSe2","ApmBase","disable","_disable","_initialized","isEnabled","isActive","_this$serviceFactory$","sendPageLoad","_sendPageLoadMetrics","fetchCentralConfig","_this$serviceFactory$2","_config2","_invalid$","sendPageLoadMetrics","_this$serviceFactory$3","_configService$valida2","separator","setInitialPageLoadName","captureError","apmBase","elasticApm","getApmBase","localforage","signalr"],"sourceRoot":""}