{"version":3,"file":"contentweb/sm-vend-default.e7079e10.js","mappings":"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","sources":["/app/apps/contentweb/node_modules/@amplitude/analytics-types/lib/esm/logger.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/utils/debug.js","/app/apps/contentweb/node_modules/@amplitude/analytics-types/lib/esm/plugin.js","/app/apps/contentweb/node_modules/@amplitude/analytics-types/lib/esm/status.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/messages.js","/app/apps/contentweb/node_modules/@amplitude/analytics-types/lib/esm/server-zone.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/constants.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/utils/result-builder.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/logger.js","/app/apps/contentweb/node_modules/@amplitude/analytics-types/lib/esm/event.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/config.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/plugins/destination.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/utils/chunk.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/utils/uuid.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/identify.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/revenue.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/utils/event-builder.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/timeline.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/core-client.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/cookie-name.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/global-scope.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/query-params.js","/app/apps/contentweb/node_modules/@amplitude/analytics-connector/dist/analytics-connector.esm.js","/app/apps/contentweb/node_modules/@amplitude/analytics-types/lib/esm/transport.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/analytics-connector.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/plugins/identity.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/utils/snippet-helper.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/language.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/plugins/context.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/version.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/storage/memory.js","/app/apps/contentweb/node_modules/@amplitude/analytics-core/lib/esm/transports/base.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/transports/fetch.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/storage/cookie.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/storage/local-storage.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/transports/xhr.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/transports/send-beacon.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/config.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/cookie-migration/index.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/attribution/constants.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/attribution/campaign-parser.js","/app/apps/contentweb/node_modules/@amplitude/plugin-web-attribution-browser/lib/esm/helpers.js","/app/apps/contentweb/node_modules/@amplitude/plugin-web-attribution-browser/lib/esm/web-attribution.js","/app/apps/contentweb/node_modules/@amplitude/plugin-page-view-tracking-browser/lib/esm/utils.js","/app/apps/contentweb/node_modules/@amplitude/plugin-page-view-tracking-browser/lib/esm/page-view-tracking.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/constants.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/plugins/default-page-view-event-enrichment.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/browser-client.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/plugins/session-handler.js","/app/apps/contentweb/node_modules/@amplitude/analytics-client-common/lib/esm/default-tracking.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/plugins/file-download-tracking.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/plugins/form-interaction-tracking.js","/app/apps/contentweb/node_modules/@amplitude/analytics-browser/lib/esm/browser-client-factory.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-core/lib/esm/utils/return-wrapper.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-types/lib/esm/plugin.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/lib/esm/version.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/lib/esm/browser-client.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/lib/esm/plugins/context.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-types/lib/esm/event.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-core/lib/esm/utils/valid-properties.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-types/lib/esm/logger.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-types/lib/esm/server-zone.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-types/lib/esm/status.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-types/lib/esm/transport.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-core/lib/esm/revenue.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-core/lib/esm/identify.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/node_modules/@amplitude/analytics-core/lib/esm/constants.js","/app/apps/contentweb/node_modules/@amplitude/marketing-analytics-browser/lib/esm/index.js","/app/apps/contentweb/node_modules/@amplitude/ua-parser-js/src/ua-parser.js","/app/apps/contentweb/node_modules/@wry/context/lib/context.esm.js","/app/apps/contentweb/node_modules/bowser/es5.js","/app/apps/contentweb/node_modules/classnames/index.js","/app/apps/contentweb/node_modules/clsx/dist/clsx.m.js","/app/apps/contentweb/node_modules/selector-set/selector-set.next.js","/app/apps/contentweb/node_modules/delegated-events/dist/index.js","/app/apps/contentweb/node_modules/dompurify/dist/purify.js","/app/apps/contentweb/node_modules/graphql/error/GraphQLError.js","/app/apps/contentweb/node_modules/graphql/error/syntaxError.js","/app/apps/contentweb/node_modules/graphql/jsutils/defineToJSON.js","/app/apps/contentweb/node_modules/graphql/jsutils/defineToStringTag.js","/app/apps/contentweb/node_modules/graphql/jsutils/devAssert.js","/app/apps/contentweb/node_modules/graphql/jsutils/inspect.js","/app/apps/contentweb/node_modules/graphql/jsutils/isObjectLike.js","/app/apps/contentweb/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js","/app/apps/contentweb/node_modules/graphql/language/blockString.js","/app/apps/contentweb/node_modules/graphql/language/directiveLocation.js","/app/apps/contentweb/node_modules/graphql/language/index.js","/app/apps/contentweb/node_modules/graphql/language/kinds.js","/app/apps/contentweb/node_modules/graphql/language/lexer.js","/app/apps/contentweb/node_modules/graphql/language/location.js","/app/apps/contentweb/node_modules/graphql/language/parser.js","/app/apps/contentweb/node_modules/graphql/language/predicates.js","/app/apps/contentweb/node_modules/graphql/language/printLocation.js","/app/apps/contentweb/node_modules/graphql/language/printer.js","/app/apps/contentweb/node_modules/graphql/language/source.js","/app/apps/contentweb/node_modules/graphql/language/tokenKind.js","/app/apps/contentweb/node_modules/graphql/language/visitor.js","/app/apps/contentweb/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","/app/apps/contentweb/node_modules/intl-messageformat/index.js","/app/apps/contentweb/node_modules/intl-messageformat/lib/compiler.js","/app/apps/contentweb/node_modules/intl-messageformat/lib/core.js","/app/apps/contentweb/node_modules/intl-messageformat/lib/en.js","/app/apps/contentweb/node_modules/intl-messageformat/lib/es5.js","/app/apps/contentweb/node_modules/intl-messageformat/lib/main.js","/app/apps/contentweb/node_modules/intl-messageformat/lib/utils.js","/app/apps/contentweb/node_modules/intl-relativeformat/index.js","/app/apps/contentweb/node_modules/intl-relativeformat/lib/core.js","/app/apps/contentweb/node_modules/intl-relativeformat/lib/diff.js","/app/apps/contentweb/node_modules/intl-relativeformat/lib/en.js","/app/apps/contentweb/node_modules/intl-relativeformat/lib/es5.js","/app/apps/contentweb/node_modules/intl-relativeformat/lib/main.js","/app/apps/contentweb/node_modules/ip-regex/index.js","/app/apps/contentweb/node_modules/is-ip/index.js","/app/apps/contentweb/node_modules/js-cookie/src/js.cookie.js","/app/apps/contentweb/node_modules/json2mq/index.js","/app/apps/contentweb/node_modules/lodash.iselement/index.js","/app/apps/contentweb/node_modules/lodash.isequal/index.js","/app/apps/contentweb/node_modules/lodash.merge/index.js","/app/apps/contentweb/node_modules/@wry/trie/lib/trie.esm.js","/app/apps/contentweb/node_modules/optimism/lib/bundle.esm.js","/app/apps/contentweb/node_modules/parse-domain/build-cjs/src/from-url.js","/app/apps/contentweb/node_modules/parse-domain/build-cjs/src/main.js","/app/apps/contentweb/node_modules/parse-domain/build-cjs/src/parse-domain.js","/app/apps/contentweb/node_modules/parse-domain/build-cjs/src/sanitize.js","/app/apps/contentweb/node_modules/parse-domain/build-cjs/src/serialized-tries.js","/app/apps/contentweb/node_modules/parse-domain/build-cjs/src/trie/characters.js","/app/apps/contentweb/node_modules/parse-domain/build-cjs/src/trie/look-up.js","/app/apps/contentweb/node_modules/parse-domain/build-cjs/src/trie/nodes.js","/app/apps/contentweb/node_modules/parse-domain/build-cjs/src/trie/parse-trie.js","/app/apps/contentweb/node_modules/react-content-loader/dist/react-content-loader.es.js","/app/apps/contentweb/node_modules/react-facebook-pixel/dist/fb-pixel.js","/app/apps/contentweb/node_modules/react-fast-compare/index.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/console/warn.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/components/OutboundLink.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/redactEmail.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/mightBeEmail.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/trim.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/toTitleCase.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/loadGA.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/console/log.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/testModeAPI.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/core.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/format.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/utils/removeLeadingSlash.js","/app/apps/contentweb/node_modules/react-ga/dist/esm/index.js","/app/apps/contentweb/node_modules/react-helmet-async/lib/index.module.js","/app/apps/contentweb/node_modules/is-in-browser/dist/module.js","/app/apps/contentweb/node_modules/tiny-warning/dist/tiny-warning.esm.js","/app/apps/contentweb/node_modules/jss/dist/jss.esm.js","/app/apps/contentweb/node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","/app/apps/contentweb/node_modules/jss-plugin-rule-value-observable/dist/jss-plugin-rule-value-observable.esm.js","/app/apps/contentweb/node_modules/jss-plugin-template/dist/jss-plugin-template.esm.js","/app/apps/contentweb/node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","/app/apps/contentweb/node_modules/jss-plugin-extend/dist/jss-plugin-extend.esm.js","/app/apps/contentweb/node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","/app/apps/contentweb/node_modules/jss-plugin-compose/dist/jss-plugin-compose.esm.js","/app/apps/contentweb/node_modules/hyphenate-style-name/index.js","/app/apps/contentweb/node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","/app/apps/contentweb/node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","/app/apps/contentweb/node_modules/jss-plugin-expand/dist/jss-plugin-expand.esm.js","/app/apps/contentweb/node_modules/css-vendor/dist/css-vendor.esm.js","/app/apps/contentweb/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","/app/apps/contentweb/node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","/app/apps/contentweb/node_modules/jss-preset-default/dist/jss-preset-default.esm.js","/app/apps/contentweb/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","/app/apps/contentweb/node_modules/@emotion/memoize/dist/memoize.browser.esm.js","/app/apps/contentweb/node_modules/css-jss/dist/css-jss.esm.js","/app/apps/contentweb/node_modules/react-jss/dist/react-jss.esm.js","/app/apps/contentweb/node_modules/react-media/esm/react-media.js","/app/apps/contentweb/node_modules/value-equal/esm/value-equal.js","/app/apps/contentweb/node_modules/react-router/node_modules/history/esm/history.js","/app/apps/contentweb/node_modules/react-router/esm/react-router.js","/app/apps/contentweb/node_modules/react-s3-uploader/s3upload.js","/app/apps/contentweb/node_modules/dom-helpers/esm/removeClass.js","/app/apps/contentweb/node_modules/react-transition-group/esm/config.js","/app/apps/contentweb/node_modules/react-transition-group/esm/TransitionGroupContext.js","/app/apps/contentweb/node_modules/react-transition-group/esm/utils/reflow.js","/app/apps/contentweb/node_modules/react-transition-group/esm/Transition.js","/app/apps/contentweb/node_modules/react-transition-group/esm/CSSTransition.js","/app/apps/contentweb/node_modules/dom-helpers/esm/addClass.js","/app/apps/contentweb/node_modules/dom-helpers/esm/hasClass.js","/app/apps/contentweb/node_modules/resolve-pathname/esm/resolve-pathname.js","/app/apps/contentweb/node_modules/scheduler/cjs/scheduler.production.min.js","/app/apps/contentweb/node_modules/scheduler/index.js","/app/apps/contentweb/node_modules/shallowequal/index.js","/app/apps/contentweb/node_modules/string-convert/camel2hyphen.js","/app/apps/contentweb/node_modules/symbol-observable/es/index.js","/app/apps/contentweb/node_modules/symbol-observable/es/ponyfill.js","/app/apps/contentweb/node_modules/theming/dist/theming.esm.js","/app/apps/contentweb/node_modules/zen-observable/index.js","/app/apps/contentweb/node_modules/zen-observable/lib/Observable.js","/app/apps/contentweb/node_modules/tiny-invariant/dist/esm/tiny-invariant.js"],"sourcesContent":["export var LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"None\"] = 0] = \"None\";\n LogLevel[LogLevel[\"Error\"] = 1] = \"Error\";\n LogLevel[LogLevel[\"Warn\"] = 2] = \"Warn\";\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\n LogLevel[LogLevel[\"Debug\"] = 4] = \"Debug\";\n})(LogLevel || (LogLevel = {}));","import { __assign, __values } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { LogLevel } from '@amplitude/analytics-types';\nexport var getStacktrace = function (ignoreDepth) {\n if (ignoreDepth === void 0) {\n ignoreDepth = 0;\n }\n var trace = new Error().stack || '';\n return trace.split('\\n').slice(2 + ignoreDepth).map(function (text) {\n return text.trim();\n });\n};\n// This hook makes sure we always get the latest logger and logLevel.\nexport var getClientLogConfig = function (client) {\n return function () {\n var _a = __assign({}, client.config),\n logger = _a.loggerProvider,\n logLevel = _a.logLevel;\n return {\n logger: logger,\n logLevel: logLevel\n };\n };\n};\n// This is a convenient function to get the attribute from object with string path, similar to lodash '#get'.\nexport var getValueByStringPath = function (obj, path) {\n var e_1, _a;\n path = path.replace(/\\[(\\w+)\\]/g, '.$1'); // convert indexes to properties\n path = path.replace(/^\\./, ''); // strip a leading dot\n try {\n for (var _b = __values(path.split('.')), _c = _b.next(); !_c.done; _c = _b.next()) {\n var attr = _c.value;\n if (attr in obj) {\n obj = obj[attr];\n } else {\n return;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n return obj;\n};\nexport var getClientStates = function (client, paths) {\n return function () {\n var e_2, _a;\n var res = {};\n try {\n for (var paths_1 = __values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {\n var path = paths_1_1.value;\n res[path] = getValueByStringPath(client, path);\n }\n } catch (e_2_1) {\n e_2 = {\n error: e_2_1\n };\n } finally {\n try {\n if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n }\n return res;\n };\n};\nexport var debugWrapper = function (fn, fnName, getLogConfig, getStates, fnContext) {\n if (fnContext === void 0) {\n fnContext = null;\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a = getLogConfig(),\n logger = _a.logger,\n logLevel = _a.logLevel;\n // return early if possible to reduce overhead\n if (logLevel && logLevel < LogLevel.Debug || !logLevel || !logger) {\n return fn.apply(fnContext, args);\n }\n var debugContext = {\n type: 'invoke public method',\n name: fnName,\n args: args,\n stacktrace: getStacktrace(1),\n time: {\n start: new Date().toISOString()\n },\n states: {}\n };\n if (getStates && debugContext.states) {\n debugContext.states.before = getStates();\n }\n var result = fn.apply(fnContext, args);\n if (result && result.promise) {\n // if result is a promise, add the callback\n result.promise.then(function () {\n if (getStates && debugContext.states) {\n debugContext.states.after = getStates();\n }\n if (debugContext.time) {\n debugContext.time.end = new Date().toISOString();\n }\n logger.debug(JSON.stringify(debugContext, null, 2));\n });\n } else {\n if (getStates && debugContext.states) {\n debugContext.states.after = getStates();\n }\n if (debugContext.time) {\n debugContext.time.end = new Date().toISOString();\n }\n logger.debug(JSON.stringify(debugContext, null, 2));\n }\n return result;\n };\n};","export var PluginType;\n(function (PluginType) {\n PluginType[\"BEFORE\"] = \"before\";\n PluginType[\"ENRICHMENT\"] = \"enrichment\";\n PluginType[\"DESTINATION\"] = \"destination\";\n})(PluginType || (PluginType = {}));","/** The status of an event. */\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent successfully. */\n Status[\"Success\"] = \"success\";\n /** A user or device in the payload is currently rate limited and should try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The sent payload was too large to be processed. */\n Status[\"PayloadTooLarge\"] = \"payload_too_large\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n Status[\"Failed\"] = \"failed\";\n /** a server or client side error occuring when a request takes too long and is cancelled */\n Status[\"Timeout\"] = \"Timeout\";\n /** NodeJS runtime environment error.. E.g. disconnected from network */\n Status[\"SystemError\"] = \"SystemError\";\n})(Status || (Status = {}));","export var returnWrapper = function (awaitable) {\n return {\n promise: awaitable || Promise.resolve()\n };\n};","export var SUCCESS_MESSAGE = 'Event tracked successfully';\nexport var UNEXPECTED_ERROR_MESSAGE = 'Unexpected error occurred';\nexport var MAX_RETRIES_EXCEEDED_MESSAGE = 'Event rejected due to exceeded retry count';\nexport var OPT_OUT_MESSAGE = 'Event skipped due to optOut config';\nexport var MISSING_API_KEY_MESSAGE = 'Event rejected due to missing API key';\nexport var INVALID_API_KEY = 'Invalid API key';\nexport var CLIENT_NOT_INITIALIZED = 'Client not initialized';","export var ServerZone;\n(function (ServerZone) {\n ServerZone[\"US\"] = \"US\";\n ServerZone[\"EU\"] = \"EU\";\n})(ServerZone || (ServerZone = {}));","export var UNSET_VALUE = '-';\nexport var AMPLITUDE_PREFIX = 'AMP';\nexport var STORAGE_PREFIX = \"\".concat(AMPLITUDE_PREFIX, \"_unsent\");\nexport var AMPLITUDE_SERVER_URL = 'https://api2.amplitude.com/2/httpapi';\nexport var EU_AMPLITUDE_SERVER_URL = 'https://api.eu.amplitude.com/2/httpapi';\nexport var AMPLITUDE_BATCH_SERVER_URL = 'https://api2.amplitude.com/batch';\nexport var EU_AMPLITUDE_BATCH_SERVER_URL = 'https://api.eu.amplitude.com/batch';","import { Status } from '@amplitude/analytics-types';\nexport var buildResult = function (event, code, message) {\n if (code === void 0) {\n code = 0;\n }\n if (message === void 0) {\n message = Status.Unknown;\n }\n return {\n event: event,\n code: code,\n message: message\n };\n};","import { LogLevel } from '@amplitude/analytics-types';\nvar PREFIX = 'Amplitude Logger ';\nvar Logger = /** @class */function () {\n function Logger() {\n this.logLevel = LogLevel.None;\n }\n Logger.prototype.disable = function () {\n this.logLevel = LogLevel.None;\n };\n Logger.prototype.enable = function (logLevel) {\n if (logLevel === void 0) {\n logLevel = LogLevel.Warn;\n }\n this.logLevel = logLevel;\n };\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.logLevel < LogLevel.Verbose) {\n return;\n }\n console.log(\"\".concat(PREFIX, \"[Log]: \").concat(args.join(' ')));\n };\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.logLevel < LogLevel.Warn) {\n return;\n }\n console.warn(\"\".concat(PREFIX, \"[Warn]: \").concat(args.join(' ')));\n };\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.logLevel < LogLevel.Error) {\n return;\n }\n console.error(\"\".concat(PREFIX, \"[Error]: \").concat(args.join(' ')));\n };\n Logger.prototype.debug = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.logLevel < LogLevel.Debug) {\n return;\n }\n // console.debug output is hidden by default in chrome\n console.log(\"\".concat(PREFIX, \"[Debug]: \").concat(args.join(' ')));\n };\n return Logger;\n}();\nexport { Logger };","export var IdentifyOperation;\n(function (IdentifyOperation) {\n // Base Operations to set values\n IdentifyOperation[\"SET\"] = \"$set\";\n IdentifyOperation[\"SET_ONCE\"] = \"$setOnce\";\n // Operations around modifying existing values\n IdentifyOperation[\"ADD\"] = \"$add\";\n IdentifyOperation[\"APPEND\"] = \"$append\";\n IdentifyOperation[\"PREPEND\"] = \"$prepend\";\n IdentifyOperation[\"REMOVE\"] = \"$remove\";\n // Operations around appending values *if* they aren't present\n IdentifyOperation[\"PREINSERT\"] = \"$preInsert\";\n IdentifyOperation[\"POSTINSERT\"] = \"$postInsert\";\n // Operations around removing properties/values\n IdentifyOperation[\"UNSET\"] = \"$unset\";\n IdentifyOperation[\"CLEAR_ALL\"] = \"$clearAll\";\n})(IdentifyOperation || (IdentifyOperation = {}));\nexport var RevenueProperty;\n(function (RevenueProperty) {\n RevenueProperty[\"REVENUE_PRODUCT_ID\"] = \"$productId\";\n RevenueProperty[\"REVENUE_QUANTITY\"] = \"$quantity\";\n RevenueProperty[\"REVENUE_PRICE\"] = \"$price\";\n RevenueProperty[\"REVENUE_TYPE\"] = \"$revenueType\";\n RevenueProperty[\"REVENUE\"] = \"$revenue\";\n})(RevenueProperty || (RevenueProperty = {}));\n/**\n * Strings that have special meaning when used as an event's type\n * and have different specifications.\n */\nexport var SpecialEventType;\n(function (SpecialEventType) {\n SpecialEventType[\"IDENTIFY\"] = \"$identify\";\n SpecialEventType[\"GROUP_IDENTIFY\"] = \"$groupidentify\";\n SpecialEventType[\"REVENUE\"] = \"revenue_amount\";\n})(SpecialEventType || (SpecialEventType = {}));","import { LogLevel, ServerZone } from '@amplitude/analytics-types';\nimport { AMPLITUDE_SERVER_URL, AMPLITUDE_BATCH_SERVER_URL, EU_AMPLITUDE_SERVER_URL, EU_AMPLITUDE_BATCH_SERVER_URL } from './constants';\nimport { Logger } from './logger';\nexport var getDefaultConfig = function () {\n return {\n flushMaxRetries: 12,\n flushQueueSize: 200,\n flushIntervalMillis: 10000,\n logLevel: LogLevel.Warn,\n loggerProvider: new Logger(),\n optOut: false,\n serverUrl: AMPLITUDE_SERVER_URL,\n serverZone: ServerZone.US,\n useBatch: false\n };\n};\nvar Config = /** @class */function () {\n function Config(options) {\n var _a, _b, _c, _d;\n this._optOut = false;\n var defaultConfig = getDefaultConfig();\n this.apiKey = options.apiKey;\n this.flushIntervalMillis = (_a = options.flushIntervalMillis) !== null && _a !== void 0 ? _a : defaultConfig.flushIntervalMillis;\n this.flushMaxRetries = options.flushMaxRetries || defaultConfig.flushMaxRetries;\n this.flushQueueSize = options.flushQueueSize || defaultConfig.flushQueueSize;\n this.loggerProvider = options.loggerProvider || defaultConfig.loggerProvider;\n this.logLevel = (_b = options.logLevel) !== null && _b !== void 0 ? _b : defaultConfig.logLevel;\n this.minIdLength = options.minIdLength;\n this.plan = options.plan;\n this.ingestionMetadata = options.ingestionMetadata;\n this.optOut = (_c = options.optOut) !== null && _c !== void 0 ? _c : defaultConfig.optOut;\n this.serverUrl = options.serverUrl;\n this.serverZone = options.serverZone || defaultConfig.serverZone;\n this.storageProvider = options.storageProvider;\n this.transportProvider = options.transportProvider;\n this.useBatch = (_d = options.useBatch) !== null && _d !== void 0 ? _d : defaultConfig.useBatch;\n this.loggerProvider.enable(this.logLevel);\n var serverConfig = createServerConfig(options.serverUrl, options.serverZone, options.useBatch);\n this.serverZone = serverConfig.serverZone;\n this.serverUrl = serverConfig.serverUrl;\n }\n Object.defineProperty(Config.prototype, \"optOut\", {\n get: function () {\n return this._optOut;\n },\n set: function (optOut) {\n this._optOut = optOut;\n },\n enumerable: false,\n configurable: true\n });\n return Config;\n}();\nexport { Config };\nexport var getServerUrl = function (serverZone, useBatch) {\n if (serverZone === ServerZone.EU) {\n return useBatch ? EU_AMPLITUDE_BATCH_SERVER_URL : EU_AMPLITUDE_SERVER_URL;\n }\n return useBatch ? AMPLITUDE_BATCH_SERVER_URL : AMPLITUDE_SERVER_URL;\n};\nexport var createServerConfig = function (serverUrl, serverZone, useBatch) {\n if (serverUrl === void 0) {\n serverUrl = '';\n }\n if (serverZone === void 0) {\n serverZone = getDefaultConfig().serverZone;\n }\n if (useBatch === void 0) {\n useBatch = getDefaultConfig().useBatch;\n }\n if (serverUrl) {\n return {\n serverUrl: serverUrl,\n serverZone: undefined\n };\n }\n var _serverZone = ['US', 'EU'].includes(serverZone) ? serverZone : getDefaultConfig().serverZone;\n return {\n serverZone: _serverZone,\n serverUrl: getServerUrl(_serverZone, useBatch)\n };\n};","import { __awaiter, __generator, __read, __rest, __spreadArray } from \"tslib\";\nimport { PluginType, Status } from '@amplitude/analytics-types';\nimport { INVALID_API_KEY, MAX_RETRIES_EXCEEDED_MESSAGE, MISSING_API_KEY_MESSAGE, SUCCESS_MESSAGE, UNEXPECTED_ERROR_MESSAGE } from '../messages';\nimport { STORAGE_PREFIX } from '../constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig } from '../config';\nvar Destination = /** @class */function () {\n function Destination() {\n this.name = 'amplitude';\n this.type = PluginType.DESTINATION;\n this.retryTimeout = 1000;\n this.throttleTimeout = 30000;\n this.storageKey = '';\n this.scheduled = null;\n this.queue = [];\n }\n Destination.prototype.setup = function (config) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var unsent;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.config = config;\n this.storageKey = \"\".concat(STORAGE_PREFIX, \"_\").concat(this.config.apiKey.substring(0, 10));\n return [4 /*yield*/, (_a = this.config.storageProvider) === null || _a === void 0 ? void 0 : _a.get(this.storageKey)];\n case 1:\n unsent = _b.sent();\n this.saveEvents(); // sets storage to '[]'\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map(function (event) {\n return _this.execute(event);\n })).catch();\n }\n return [2 /*return*/, Promise.resolve(undefined)];\n }\n });\n });\n };\n Destination.prototype.execute = function (event) {\n var _this = this;\n return new Promise(function (resolve) {\n var context = {\n event: event,\n attempts: 0,\n callback: function (result) {\n return resolve(result);\n },\n timeout: 0\n };\n void _this.addToQueue(context);\n });\n };\n Destination.prototype.addToQueue = function () {\n var _this = this;\n var list = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n list[_i] = arguments[_i];\n }\n var tryable = list.filter(function (context) {\n if (context.attempts < _this.config.flushMaxRetries) {\n context.attempts += 1;\n return true;\n }\n void _this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n tryable.forEach(function (context) {\n _this.queue = _this.queue.concat(context);\n if (context.timeout === 0) {\n _this.schedule(_this.config.flushIntervalMillis);\n return;\n }\n setTimeout(function () {\n context.timeout = 0;\n _this.schedule(0);\n }, context.timeout);\n });\n this.saveEvents();\n };\n Destination.prototype.schedule = function (timeout) {\n var _this = this;\n if (this.scheduled) return;\n this.scheduled = setTimeout(function () {\n void _this.flush(true).then(function () {\n if (_this.queue.length > 0) {\n _this.schedule(timeout);\n }\n });\n }, timeout);\n };\n Destination.prototype.flush = function (useRetry) {\n if (useRetry === void 0) {\n useRetry = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var list, later, batches;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n list = [];\n later = [];\n this.queue.forEach(function (context) {\n return context.timeout === 0 ? list.push(context) : later.push(context);\n });\n this.queue = later;\n if (this.scheduled) {\n clearTimeout(this.scheduled);\n this.scheduled = null;\n }\n batches = chunk(list, this.config.flushQueueSize);\n return [4 /*yield*/, Promise.all(batches.map(function (batch) {\n return _this.send(batch, useRetry);\n }))];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n\n Destination.prototype.send = function (list, useRetry) {\n if (useRetry === void 0) {\n useRetry = true;\n }\n return __awaiter(this, void 0, void 0, function () {\n var payload, serverUrl, res, responseBody, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.config.apiKey) {\n return [2 /*return*/, this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE)];\n }\n payload = {\n api_key: this.config.apiKey,\n events: list.map(function (context) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _a = context.event,\n extra = _a.extra,\n eventWithoutExtra = __rest(_a, [\"extra\"]);\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength\n }\n };\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3,, 4]);\n serverUrl = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch).serverUrl;\n return [4 /*yield*/, this.config.transportProvider.send(serverUrl, payload)];\n case 2:\n res = _a.sent();\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return [2 /*return*/];\n }\n\n if (!useRetry) {\n if ('body' in res) {\n responseBody = '';\n try {\n responseBody = JSON.stringify(res.body, null, 2);\n } catch (_b) {\n // to avoid crash, but don't care about the error, add comment to avoid empty block lint error\n }\n this.fulfillRequest(list, res.statusCode, \"\".concat(res.status, \": \").concat(responseBody));\n } else {\n this.fulfillRequest(list, res.statusCode, res.status);\n }\n return [2 /*return*/];\n }\n\n this.handleReponse(res, list);\n return [3 /*break*/, 4];\n case 3:\n e_1 = _a.sent();\n this.fulfillRequest(list, 0, String(e_1));\n return [3 /*break*/, 4];\n case 4:\n return [2 /*return*/];\n }\n });\n });\n };\n\n Destination.prototype.handleReponse = function (res, list) {\n var status = res.status;\n switch (status) {\n case Status.Success:\n this.handleSuccessResponse(res, list);\n break;\n case Status.Invalid:\n this.handleInvalidResponse(res, list);\n break;\n case Status.PayloadTooLarge:\n this.handlePayloadTooLargeResponse(res, list);\n break;\n case Status.RateLimit:\n this.handleRateLimitResponse(res, list);\n break;\n default:\n this.handleOtherReponse(list);\n }\n };\n Destination.prototype.handleSuccessResponse = function (res, list) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n };\n Destination.prototype.handleInvalidResponse = function (res, list) {\n var _this = this;\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n var dropIndex = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], __read(Object.values(res.body.eventsWithInvalidFields)), false), __read(Object.values(res.body.eventsWithMissingFields)), false), __read(Object.values(res.body.eventsWithInvalidIdLengths)), false), __read(res.body.silencedEvents), false).flat();\n var dropIndexSet = new Set(dropIndex);\n var retry = list.filter(function (context, index) {\n if (dropIndexSet.has(index)) {\n _this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n this.addToQueue.apply(this, __spreadArray([], __read(retry), false));\n };\n Destination.prototype.handlePayloadTooLargeResponse = function (res, list) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n this.config.flushQueueSize /= 2;\n this.addToQueue.apply(this, __spreadArray([], __read(list), false));\n };\n Destination.prototype.handleRateLimitResponse = function (res, list) {\n var _this = this;\n var dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n var dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n var throttledIndex = res.body.throttledEvents;\n var dropUserIdsSet = new Set(dropUserIds);\n var dropDeviceIdsSet = new Set(dropDeviceIds);\n var throttledIndexSet = new Set(throttledIndex);\n var retry = list.filter(function (context, index) {\n if (context.event.user_id && dropUserIdsSet.has(context.event.user_id) || context.event.device_id && dropDeviceIdsSet.has(context.event.device_id)) {\n _this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = _this.throttleTimeout;\n }\n return true;\n });\n this.addToQueue.apply(this, __spreadArray([], __read(retry), false));\n };\n Destination.prototype.handleOtherReponse = function (list) {\n var _this = this;\n this.addToQueue.apply(this, __spreadArray([], __read(list.map(function (context) {\n context.timeout = context.attempts * _this.retryTimeout;\n return context;\n })), false));\n };\n Destination.prototype.fulfillRequest = function (list, code, message) {\n this.saveEvents();\n list.forEach(function (context) {\n return context.callback(buildResult(context.event, code, message));\n });\n };\n /**\n * Saves events to storage\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n */\n Destination.prototype.saveEvents = function () {\n if (!this.config.storageProvider) {\n return;\n }\n var events = Array.from(this.queue.map(function (context) {\n return context.event;\n }));\n void this.config.storageProvider.set(this.storageKey, events);\n };\n return Destination;\n}();\nexport { Destination };","// Creates an array of elements split into groups the length of size.\n// If array can't be split evenly, the final chunk will be the remaining elements.\n// Works similary as https://lodash.com/docs/4.17.15#chunk\nexport var chunk = function (arr, size) {\n var chunkSize = Math.max(size, 1);\n return arr.reduce(function (chunks, element, index) {\n var chunkIndex = Math.floor(index / chunkSize);\n if (!chunks[chunkIndex]) {\n chunks[chunkIndex] = [];\n }\n chunks[chunkIndex].push(element);\n return chunks;\n }, []);\n};","/**\n * Source: [jed's gist]{@link https://gist.github.com/982883}.\n * Returns a random v4 UUID of the form xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,\n * where each x is replaced with a random hexadecimal digit from 0 to f, and\n * y is replaced with a random hexadecimal digit from 8 to b.\n * Used to generate UUIDs for deviceIds.\n * @private\n */\nexport var UUID = function (a) {\n return a // if the placeholder was passed, return\n ?\n // a random number from 0 to 15\n (a ^\n // unless b is 8,\n Math.random() *\n // in which case\n 16 >>\n // a random number from\n a / 4 // 8 to 11\n ).toString(16) // in hexadecimal\n :\n // or otherwise a concatenated string:\n (String(1e7) +\n // 10000000 +\n String(-1e3) +\n // -1000 +\n String(-4e3) +\n // -4000 +\n String(-8e3) +\n // -80000000 +\n String(-1e11) // -100000000000,\n ).replace(\n // replacing\n /[018]/g,\n // zeroes, ones, and eights with\n UUID);\n};","import { __values } from \"tslib\";\nvar MAX_PROPERTY_KEYS = 1000;\nexport var isValidObject = function (properties) {\n if (Object.keys(properties).length > MAX_PROPERTY_KEYS) {\n return false;\n }\n for (var key in properties) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n var value = properties[key];\n if (!isValidProperties(key, value)) return false;\n }\n return true;\n};\nexport var isValidProperties = function (property, value) {\n var e_1, _a;\n if (typeof property !== 'string') return false;\n if (Array.isArray(value)) {\n var isValid = true;\n try {\n for (var value_1 = __values(value), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) {\n var valueElement = value_1_1.value;\n if (Array.isArray(valueElement)) {\n return false;\n } else if (typeof valueElement === 'object') {\n isValid = isValid && isValidObject(valueElement);\n } else if (!['number', 'string'].includes(typeof valueElement)) {\n return false;\n }\n if (!isValid) {\n return false;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (value_1_1 && !value_1_1.done && (_a = value_1.return)) _a.call(value_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n } else if (value === null || value === undefined) {\n return false;\n } else if (typeof value === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return isValidObject(value);\n } else if (!['number', 'string', 'boolean'].includes(typeof value)) {\n return false;\n }\n return true;\n};","import { __assign } from \"tslib\";\nimport { IdentifyOperation } from '@amplitude/analytics-types';\nimport { UNSET_VALUE } from './constants';\nimport { isValidProperties } from './utils/valid-properties';\nvar Identify = /** @class */function () {\n function Identify() {\n this._propertySet = new Set();\n this._properties = {};\n }\n Identify.prototype.getUserProperties = function () {\n return __assign({}, this._properties);\n };\n Identify.prototype.set = function (property, value) {\n this._safeSet(IdentifyOperation.SET, property, value);\n return this;\n };\n Identify.prototype.setOnce = function (property, value) {\n this._safeSet(IdentifyOperation.SET_ONCE, property, value);\n return this;\n };\n Identify.prototype.append = function (property, value) {\n this._safeSet(IdentifyOperation.APPEND, property, value);\n return this;\n };\n Identify.prototype.prepend = function (property, value) {\n this._safeSet(IdentifyOperation.PREPEND, property, value);\n return this;\n };\n Identify.prototype.postInsert = function (property, value) {\n this._safeSet(IdentifyOperation.POSTINSERT, property, value);\n return this;\n };\n Identify.prototype.preInsert = function (property, value) {\n this._safeSet(IdentifyOperation.PREINSERT, property, value);\n return this;\n };\n Identify.prototype.remove = function (property, value) {\n this._safeSet(IdentifyOperation.REMOVE, property, value);\n return this;\n };\n Identify.prototype.add = function (property, value) {\n this._safeSet(IdentifyOperation.ADD, property, value);\n return this;\n };\n Identify.prototype.unset = function (property) {\n this._safeSet(IdentifyOperation.UNSET, property, UNSET_VALUE);\n return this;\n };\n Identify.prototype.clearAll = function () {\n // When clear all happens, all properties are unset. Reset the entire object.\n this._properties = {};\n this._properties[IdentifyOperation.CLEAR_ALL] = UNSET_VALUE;\n return this;\n };\n // Returns whether or not this set actually worked.\n Identify.prototype._safeSet = function (operation, property, value) {\n if (this._validate(operation, property, value)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n var userPropertyMap = this._properties[operation];\n if (userPropertyMap === undefined) {\n userPropertyMap = {};\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._properties[operation] = userPropertyMap;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n userPropertyMap[property] = value;\n this._propertySet.add(property);\n return true;\n }\n return false;\n };\n Identify.prototype._validate = function (operation, property, value) {\n if (this._properties[IdentifyOperation.CLEAR_ALL] !== undefined) {\n // clear all already set. Skipping operation;\n return false;\n }\n if (this._propertySet.has(property)) {\n // Property already used. Skipping operation\n return false;\n }\n if (operation === IdentifyOperation.ADD) {\n return typeof value === 'number';\n }\n if (operation !== IdentifyOperation.UNSET && operation !== IdentifyOperation.REMOVE) {\n return isValidProperties(property, value);\n }\n return true;\n };\n return Identify;\n}();\nexport { Identify };","import { __assign } from \"tslib\";\nimport { RevenueProperty } from '@amplitude/analytics-types';\nimport { isValidObject } from './utils/valid-properties';\nvar Revenue = /** @class */function () {\n function Revenue() {\n this.productId = '';\n this.quantity = 1;\n this.price = 0.0;\n }\n Revenue.prototype.setProductId = function (productId) {\n this.productId = productId;\n return this;\n };\n Revenue.prototype.setQuantity = function (quantity) {\n if (quantity > 0) {\n this.quantity = quantity;\n }\n return this;\n };\n Revenue.prototype.setPrice = function (price) {\n this.price = price;\n return this;\n };\n Revenue.prototype.setRevenueType = function (revenueType) {\n this.revenueType = revenueType;\n return this;\n };\n Revenue.prototype.setRevenue = function (revenue) {\n this.revenue = revenue;\n return this;\n };\n Revenue.prototype.setEventProperties = function (properties) {\n if (isValidObject(properties)) {\n this.properties = properties;\n }\n return this;\n };\n Revenue.prototype.getEventProperties = function () {\n var eventProperties = this.properties ? __assign({}, this.properties) : {};\n eventProperties[RevenueProperty.REVENUE_PRODUCT_ID] = this.productId;\n eventProperties[RevenueProperty.REVENUE_QUANTITY] = this.quantity;\n eventProperties[RevenueProperty.REVENUE_PRICE] = this.price;\n eventProperties[RevenueProperty.REVENUE_TYPE] = this.revenueType;\n eventProperties[RevenueProperty.REVENUE] = this.revenue;\n return eventProperties;\n };\n return Revenue;\n}();\nexport { Revenue };","import { __assign } from \"tslib\";\nimport { SpecialEventType } from '@amplitude/analytics-types';\nimport { Identify } from '../identify';\nexport var createTrackEvent = function (eventInput, eventProperties, eventOptions) {\n var baseEvent = typeof eventInput === 'string' ? {\n event_type: eventInput\n } : eventInput;\n return __assign(__assign(__assign({}, baseEvent), eventOptions), eventProperties && {\n event_properties: eventProperties\n });\n};\nexport var createIdentifyEvent = function (identify, eventOptions) {\n var identifyEvent = __assign(__assign({}, eventOptions), {\n event_type: SpecialEventType.IDENTIFY,\n user_properties: identify.getUserProperties()\n });\n return identifyEvent;\n};\nexport var createGroupIdentifyEvent = function (groupType, groupName, identify, eventOptions) {\n var _a;\n var groupIdentify = __assign(__assign({}, eventOptions), {\n event_type: SpecialEventType.GROUP_IDENTIFY,\n group_properties: identify.getUserProperties(),\n groups: (_a = {}, _a[groupType] = groupName, _a)\n });\n return groupIdentify;\n};\nexport var createGroupEvent = function (groupType, groupName, eventOptions) {\n var _a;\n var identify = new Identify();\n identify.set(groupType, groupName);\n var groupEvent = __assign(__assign({}, eventOptions), {\n event_type: SpecialEventType.IDENTIFY,\n user_properties: identify.getUserProperties(),\n groups: (_a = {}, _a[groupType] = groupName, _a)\n });\n return groupEvent;\n};\nexport var createRevenueEvent = function (revenue, eventOptions) {\n return __assign(__assign({}, eventOptions), {\n event_type: SpecialEventType.REVENUE,\n event_properties: revenue.getEventProperties()\n });\n};","import { __assign, __awaiter, __generator, __read, __values } from \"tslib\";\nimport { PluginType } from '@amplitude/analytics-types';\nimport { buildResult } from './utils/result-builder';\nvar Timeline = /** @class */function () {\n function Timeline(client) {\n this.client = client;\n this.queue = [];\n // Flag to guarantee one schedule apply is running\n this.applying = false;\n // Flag indicates whether timeline is ready to process event\n // Events collected before timeline is ready will stay in the queue to be processed later\n this.plugins = [];\n }\n Timeline.prototype.register = function (plugin, config) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, plugin.setup(config, this.client)];\n case 1:\n _a.sent();\n this.plugins.push(plugin);\n return [2 /*return*/];\n }\n });\n });\n };\n\n Timeline.prototype.deregister = function (pluginName) {\n this.plugins.splice(this.plugins.findIndex(function (plugin) {\n return plugin.name === pluginName;\n }), 1);\n return Promise.resolve();\n };\n Timeline.prototype.reset = function (client) {\n this.applying = false;\n this.plugins = [];\n this.client = client;\n };\n Timeline.prototype.push = function (event) {\n var _this = this;\n return new Promise(function (resolve) {\n _this.queue.push([event, resolve]);\n _this.scheduleApply(0);\n });\n };\n Timeline.prototype.scheduleApply = function (timeout) {\n var _this = this;\n if (this.applying) return;\n this.applying = true;\n setTimeout(function () {\n void _this.apply(_this.queue.shift()).then(function () {\n _this.applying = false;\n if (_this.queue.length > 0) {\n _this.scheduleApply(0);\n }\n });\n }, timeout);\n };\n Timeline.prototype.apply = function (item) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, event, _b, resolve, before, before_1, before_1_1, plugin, e, e_1_1, enrichment, enrichment_1, enrichment_1_1, plugin, e, e_2_1, destination, executeDestinations;\n var e_1, _c, e_2, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n if (!item) {\n return [2 /*return*/];\n }\n\n _a = __read(item, 1), event = _a[0];\n _b = __read(item, 2), resolve = _b[1];\n before = this.plugins.filter(function (plugin) {\n return plugin.type === PluginType.BEFORE;\n });\n _e.label = 1;\n case 1:\n _e.trys.push([1, 6, 7, 8]);\n before_1 = __values(before), before_1_1 = before_1.next();\n _e.label = 2;\n case 2:\n if (!!before_1_1.done) return [3 /*break*/, 5];\n plugin = before_1_1.value;\n return [4 /*yield*/, plugin.execute(__assign({}, event))];\n case 3:\n e = _e.sent();\n if (e === null) {\n resolve({\n event: event,\n code: 0,\n message: ''\n });\n return [2 /*return*/];\n } else {\n event = e;\n }\n _e.label = 4;\n case 4:\n before_1_1 = before_1.next();\n return [3 /*break*/, 2];\n case 5:\n return [3 /*break*/, 8];\n case 6:\n e_1_1 = _e.sent();\n e_1 = {\n error: e_1_1\n };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (before_1_1 && !before_1_1.done && (_c = before_1.return)) _c.call(before_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n return [7 /*endfinally*/];\n case 8:\n enrichment = this.plugins.filter(function (plugin) {\n return plugin.type === PluginType.ENRICHMENT;\n });\n _e.label = 9;\n case 9:\n _e.trys.push([9, 14, 15, 16]);\n enrichment_1 = __values(enrichment), enrichment_1_1 = enrichment_1.next();\n _e.label = 10;\n case 10:\n if (!!enrichment_1_1.done) return [3 /*break*/, 13];\n plugin = enrichment_1_1.value;\n return [4 /*yield*/, plugin.execute(__assign({}, event))];\n case 11:\n e = _e.sent();\n if (e === null) {\n resolve({\n event: event,\n code: 0,\n message: ''\n });\n return [2 /*return*/];\n } else {\n event = e;\n }\n _e.label = 12;\n case 12:\n enrichment_1_1 = enrichment_1.next();\n return [3 /*break*/, 10];\n case 13:\n return [3 /*break*/, 16];\n case 14:\n e_2_1 = _e.sent();\n e_2 = {\n error: e_2_1\n };\n return [3 /*break*/, 16];\n case 15:\n try {\n if (enrichment_1_1 && !enrichment_1_1.done && (_d = enrichment_1.return)) _d.call(enrichment_1);\n } finally {\n if (e_2) throw e_2.error;\n }\n return [7 /*endfinally*/];\n case 16:\n destination = this.plugins.filter(function (plugin) {\n return plugin.type === PluginType.DESTINATION;\n });\n executeDestinations = destination.map(function (plugin) {\n var eventClone = __assign({}, event);\n return plugin.execute(eventClone).catch(function (e) {\n return buildResult(eventClone, 0, String(e));\n });\n });\n void Promise.all(executeDestinations).then(function (_a) {\n var _b = __read(_a, 1),\n result = _b[0];\n resolve(result);\n });\n return [2 /*return*/];\n }\n });\n });\n };\n\n Timeline.prototype.flush = function () {\n return __awaiter(this, void 0, void 0, function () {\n var queue, destination, executeDestinations;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n queue = this.queue;\n this.queue = [];\n return [4 /*yield*/, Promise.all(queue.map(function (item) {\n return _this.apply(item);\n }))];\n case 1:\n _a.sent();\n destination = this.plugins.filter(function (plugin) {\n return plugin.type === PluginType.DESTINATION;\n });\n executeDestinations = destination.map(function (plugin) {\n return plugin.flush && plugin.flush();\n });\n return [4 /*yield*/, Promise.all(executeDestinations)];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n\n return Timeline;\n}();\nexport { Timeline };","import { __awaiter, __generator, __values } from \"tslib\";\nimport { createGroupIdentifyEvent, createIdentifyEvent, createTrackEvent, createRevenueEvent, createGroupEvent } from './utils/event-builder';\nimport { Timeline } from './timeline';\nimport { buildResult } from './utils/result-builder';\nimport { CLIENT_NOT_INITIALIZED, OPT_OUT_MESSAGE } from './messages';\nimport { returnWrapper } from './utils/return-wrapper';\nvar AmplitudeCore = /** @class */function () {\n function AmplitudeCore(name) {\n if (name === void 0) {\n name = '$default';\n }\n this.initializing = false;\n this.q = [];\n this.dispatchQ = [];\n this.logEvent = this.track.bind(this);\n this.timeline = new Timeline(this);\n this.name = name;\n }\n AmplitudeCore.prototype._init = function (config) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.config = config;\n this.timeline.reset(this);\n return [4 /*yield*/, this.runQueuedFunctions('q')];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n\n AmplitudeCore.prototype.runQueuedFunctions = function (queueName) {\n return __awaiter(this, void 0, void 0, function () {\n var queuedFunctions, queuedFunctions_1, queuedFunctions_1_1, queuedFunction, e_1_1;\n var e_1, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n queuedFunctions = this[queueName];\n this[queueName] = [];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 6, 7, 8]);\n queuedFunctions_1 = __values(queuedFunctions), queuedFunctions_1_1 = queuedFunctions_1.next();\n _b.label = 2;\n case 2:\n if (!!queuedFunctions_1_1.done) return [3 /*break*/, 5];\n queuedFunction = queuedFunctions_1_1.value;\n return [4 /*yield*/, queuedFunction()];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4:\n queuedFunctions_1_1 = queuedFunctions_1.next();\n return [3 /*break*/, 2];\n case 5:\n return [3 /*break*/, 8];\n case 6:\n e_1_1 = _b.sent();\n e_1 = {\n error: e_1_1\n };\n return [3 /*break*/, 8];\n case 7:\n try {\n if (queuedFunctions_1_1 && !queuedFunctions_1_1.done && (_a = queuedFunctions_1.return)) _a.call(queuedFunctions_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n return [7 /*endfinally*/];\n case 8:\n return [2 /*return*/];\n }\n });\n });\n };\n\n AmplitudeCore.prototype.track = function (eventInput, eventProperties, eventOptions) {\n var event = createTrackEvent(eventInput, eventProperties, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.identify = function (identify, eventOptions) {\n var event = createIdentifyEvent(identify, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.groupIdentify = function (groupType, groupName, identify, eventOptions) {\n var event = createGroupIdentifyEvent(groupType, groupName, identify, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.setGroup = function (groupType, groupName, eventOptions) {\n var event = createGroupEvent(groupType, groupName, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.revenue = function (revenue, eventOptions) {\n var event = createRevenueEvent(revenue, eventOptions);\n return returnWrapper(this.dispatch(event));\n };\n AmplitudeCore.prototype.add = function (plugin) {\n if (!this.config) {\n this.q.push(this.add.bind(this, plugin));\n return returnWrapper();\n }\n return returnWrapper(this.timeline.register(plugin, this.config));\n };\n AmplitudeCore.prototype.remove = function (pluginName) {\n if (!this.config) {\n this.q.push(this.remove.bind(this, pluginName));\n return returnWrapper();\n }\n return returnWrapper(this.timeline.deregister(pluginName));\n };\n AmplitudeCore.prototype.dispatchWithCallback = function (event, callback) {\n if (!this.config) {\n return callback(buildResult(event, 0, CLIENT_NOT_INITIALIZED));\n }\n void this.process(event).then(callback);\n };\n AmplitudeCore.prototype.dispatch = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n if (!this.config) {\n return [2 /*return*/, new Promise(function (resolve) {\n _this.dispatchQ.push(_this.dispatchWithCallback.bind(_this, event, resolve));\n })];\n }\n return [2 /*return*/, this.process(event)];\n });\n });\n };\n AmplitudeCore.prototype.process = function (event) {\n return __awaiter(this, void 0, void 0, function () {\n var result, e_2, message, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 2,, 3]);\n // skip event processing if opt out\n if (this.config.optOut) {\n return [2 /*return*/, buildResult(event, 0, OPT_OUT_MESSAGE)];\n }\n return [4 /*yield*/, this.timeline.push(event)];\n case 1:\n result = _a.sent();\n result.code === 200 ? this.config.loggerProvider.log(result.message) : this.config.loggerProvider.error(result.message);\n return [2 /*return*/, result];\n case 2:\n e_2 = _a.sent();\n message = String(e_2);\n this.config.loggerProvider.error(message);\n result = buildResult(event, 0, message);\n return [2 /*return*/, result];\n case 3:\n return [2 /*return*/];\n }\n });\n });\n };\n\n AmplitudeCore.prototype.setOptOut = function (optOut) {\n if (!this.config) {\n this.q.push(this.setOptOut.bind(this, Boolean(optOut)));\n return;\n }\n this.config.optOut = Boolean(optOut);\n };\n AmplitudeCore.prototype.flush = function () {\n return returnWrapper(this.timeline.flush());\n };\n return AmplitudeCore;\n}();\nexport { AmplitudeCore };","import { AMPLITUDE_PREFIX } from '@amplitude/analytics-core';\nexport var getCookieName = function (apiKey, postKey, limit) {\n if (postKey === void 0) {\n postKey = '';\n }\n if (limit === void 0) {\n limit = 10;\n }\n return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');\n};\nexport var getOldCookieName = function (apiKey) {\n return \"\".concat(AMPLITUDE_PREFIX.toLowerCase(), \"_\").concat(apiKey.substring(0, 6));\n};","/* eslint-disable no-restricted-globals */\n/* Only file allowed to access to globalThis, window, self */\nexport var getGlobalScope = function () {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n return undefined;\n};","import { getGlobalScope } from './global-scope';\nexport var getQueryParams = function () {\n var _a;\n var globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!((_a = globalScope === null || globalScope === void 0 ? void 0 : globalScope.location) === null || _a === void 0 ? void 0 : _a.search)) {\n return {};\n }\n var pairs = globalScope.location.search.substring(1).split('&').filter(Boolean);\n var params = pairs.reduce(function (acc, curr) {\n var query = curr.split('=', 2);\n var key = tryDecodeURIComponent(query[0]);\n var value = tryDecodeURIComponent(query[1]);\n if (!value) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n return params;\n};\nexport var tryDecodeURIComponent = function (value) {\n if (value === void 0) {\n value = '';\n }\n try {\n return decodeURIComponent(value);\n } catch (_a) {\n return '';\n }\n};","import { UAParser } from '@amplitude/ua-parser-js';\nvar ApplicationContextProviderImpl = /** @class */function () {\n function ApplicationContextProviderImpl() {\n this.ua = new UAParser(typeof navigator !== 'undefined' ? navigator.userAgent : null).getResult();\n }\n ApplicationContextProviderImpl.prototype.getApplicationContext = function () {\n return {\n versionName: this.versionName,\n language: getLanguage(),\n platform: 'Web',\n os: getOs(this.ua),\n deviceModel: getDeviceModel(this.ua)\n };\n };\n return ApplicationContextProviderImpl;\n}();\nvar getOs = function (ua) {\n var _a, _b;\n return [(_a = ua.browser) === null || _a === void 0 ? void 0 : _a.name, (_b = ua.browser) === null || _b === void 0 ? void 0 : _b.major].filter(function (e) {\n return e !== null && e !== undefined;\n }).join(' ');\n};\nvar getDeviceModel = function (ua) {\n var _a;\n return (_a = ua.os) === null || _a === void 0 ? void 0 : _a.name;\n};\nvar getLanguage = function () {\n return typeof navigator !== 'undefined' && (navigator.languages && navigator.languages[0] || navigator.language) || '';\n};\nvar EventBridgeImpl = /** @class */function () {\n function EventBridgeImpl() {\n this.queue = [];\n }\n EventBridgeImpl.prototype.logEvent = function (event) {\n if (!this.receiver) {\n if (this.queue.length < 512) {\n this.queue.push(event);\n }\n } else {\n this.receiver(event);\n }\n };\n EventBridgeImpl.prototype.setEventReceiver = function (receiver) {\n this.receiver = receiver;\n if (this.queue.length > 0) {\n this.queue.forEach(function (event) {\n receiver(event);\n });\n this.queue = [];\n }\n };\n return EventBridgeImpl;\n}();\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar isEqual = function (obj1, obj2) {\n var primitive = ['string', 'number', 'boolean', 'undefined'];\n var typeA = typeof obj1;\n var typeB = typeof obj2;\n if (typeA !== typeB) {\n return false;\n }\n for (var _i = 0, primitive_1 = primitive; _i < primitive_1.length; _i++) {\n var p = primitive_1[_i];\n if (p === typeA) {\n return obj1 === obj2;\n }\n }\n // check null\n if (obj1 == null && obj2 == null) {\n return true;\n } else if (obj1 == null || obj2 == null) {\n return false;\n }\n // if got here - objects\n if (obj1.length !== obj2.length) {\n return false;\n }\n //check if arrays\n var isArrayA = Array.isArray(obj1);\n var isArrayB = Array.isArray(obj2);\n if (isArrayA !== isArrayB) {\n return false;\n }\n if (isArrayA && isArrayB) {\n //arrays\n for (var i = 0; i < obj1.length; i++) {\n if (!isEqual(obj1[i], obj2[i])) {\n return false;\n }\n }\n } else {\n //objects\n var sorted1 = Object.keys(obj1).sort();\n var sorted2 = Object.keys(obj2).sort();\n if (!isEqual(sorted1, sorted2)) {\n return false;\n }\n //compare object values\n var result_1 = true;\n Object.keys(obj1).forEach(function (key) {\n if (!isEqual(obj1[key], obj2[key])) {\n result_1 = false;\n }\n });\n return result_1;\n }\n return true;\n};\nvar ID_OP_SET = '$set';\nvar ID_OP_UNSET = '$unset';\nvar ID_OP_CLEAR_ALL = '$clearAll';\n// Polyfill for Object.entries\nif (!Object.entries) {\n Object.entries = function (obj) {\n var ownProps = Object.keys(obj);\n var i = ownProps.length;\n var resArray = new Array(i);\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n }\n return resArray;\n };\n}\nvar IdentityStoreImpl = /** @class */function () {\n function IdentityStoreImpl() {\n this.identity = {\n userProperties: {}\n };\n this.listeners = new Set();\n }\n IdentityStoreImpl.prototype.editIdentity = function () {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n var actingUserProperties = __assign({}, this.identity.userProperties);\n var actingIdentity = __assign(__assign({}, this.identity), {\n userProperties: actingUserProperties\n });\n return {\n setUserId: function (userId) {\n actingIdentity.userId = userId;\n return this;\n },\n setDeviceId: function (deviceId) {\n actingIdentity.deviceId = deviceId;\n return this;\n },\n setUserProperties: function (userProperties) {\n actingIdentity.userProperties = userProperties;\n return this;\n },\n updateUserProperties: function (actions) {\n var actingProperties = actingIdentity.userProperties || {};\n for (var _i = 0, _a = Object.entries(actions); _i < _a.length; _i++) {\n var _b = _a[_i],\n action = _b[0],\n properties = _b[1];\n switch (action) {\n case ID_OP_SET:\n for (var _c = 0, _d = Object.entries(properties); _c < _d.length; _c++) {\n var _e = _d[_c],\n key = _e[0],\n value = _e[1];\n actingProperties[key] = value;\n }\n break;\n case ID_OP_UNSET:\n for (var _f = 0, _g = Object.keys(properties); _f < _g.length; _f++) {\n var key = _g[_f];\n delete actingProperties[key];\n }\n break;\n case ID_OP_CLEAR_ALL:\n actingProperties = {};\n break;\n }\n }\n actingIdentity.userProperties = actingProperties;\n return this;\n },\n commit: function () {\n self.setIdentity(actingIdentity);\n return this;\n }\n };\n };\n IdentityStoreImpl.prototype.getIdentity = function () {\n return __assign({}, this.identity);\n };\n IdentityStoreImpl.prototype.setIdentity = function (identity) {\n var originalIdentity = __assign({}, this.identity);\n this.identity = __assign({}, identity);\n if (!isEqual(originalIdentity, this.identity)) {\n this.listeners.forEach(function (listener) {\n listener(identity);\n });\n }\n };\n IdentityStoreImpl.prototype.addIdentityListener = function (listener) {\n this.listeners.add(listener);\n };\n IdentityStoreImpl.prototype.removeIdentityListener = function (listener) {\n this.listeners.delete(listener);\n };\n return IdentityStoreImpl;\n}();\nvar safeGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof global !== 'undefined' ? global : self;\nvar AnalyticsConnector = /** @class */function () {\n function AnalyticsConnector() {\n this.identityStore = new IdentityStoreImpl();\n this.eventBridge = new EventBridgeImpl();\n this.applicationContextProvider = new ApplicationContextProviderImpl();\n }\n AnalyticsConnector.getInstance = function (instanceName) {\n if (!safeGlobal['analyticsConnectorInstances']) {\n safeGlobal['analyticsConnectorInstances'] = {};\n }\n if (!safeGlobal['analyticsConnectorInstances'][instanceName]) {\n safeGlobal['analyticsConnectorInstances'][instanceName] = new AnalyticsConnector();\n }\n return safeGlobal['analyticsConnectorInstances'][instanceName];\n };\n return AnalyticsConnector;\n}();\nexport { AnalyticsConnector };","export var TransportType;\n(function (TransportType) {\n TransportType[\"XHR\"] = \"xhr\";\n TransportType[\"SendBeacon\"] = \"beacon\";\n TransportType[\"Fetch\"] = \"fetch\";\n})(TransportType || (TransportType = {}));","import { AnalyticsConnector } from '@amplitude/analytics-connector';\nexport var getAnalyticsConnector = function () {\n return AnalyticsConnector.getInstance('$default_instance');\n};\nexport var setConnectorUserId = function (userId) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n getAnalyticsConnector().identityStore.editIdentity().setUserId(userId).commit();\n};\nexport var setConnectorDeviceId = function (deviceId) {\n getAnalyticsConnector().identityStore.editIdentity().setDeviceId(deviceId).commit();\n};","import { __awaiter, __generator } from \"tslib\";\nimport { PluginType } from '@amplitude/analytics-types';\nimport { getAnalyticsConnector } from '../analytics-connector';\nvar IdentityEventSender = /** @class */function () {\n function IdentityEventSender() {\n this.name = 'identity';\n this.type = PluginType.BEFORE;\n this.identityStore = getAnalyticsConnector().identityStore;\n }\n IdentityEventSender.prototype.execute = function (context) {\n return __awaiter(this, void 0, void 0, function () {\n var userProperties;\n return __generator(this, function (_a) {\n userProperties = context.user_properties;\n if (userProperties) {\n this.identityStore.editIdentity().updateUserProperties(userProperties).commit();\n }\n return [2 /*return*/, context];\n });\n });\n };\n IdentityEventSender.prototype.setup = function (_) {\n return Promise.resolve(undefined);\n };\n return IdentityEventSender;\n}();\nexport { IdentityEventSender };","/**\n * Applies the proxied functions on the proxied amplitude snippet to an instance of the real object.\n * @ignore\n */\nexport var runQueuedFunctions = function (instance, queue) {\n convertProxyObjectToRealObject(instance, queue);\n};\n/**\n * Applies the proxied functions on the proxied object to an instance of the real object.\n * Used to convert proxied Identify and Revenue objects.\n */\nexport var convertProxyObjectToRealObject = function (instance, queue) {\n for (var i = 0; i < queue.length; i++) {\n var _a = queue[i],\n name_1 = _a.name,\n args = _a.args,\n resolve = _a.resolve;\n var fn = instance && instance[name_1];\n if (typeof fn === 'function') {\n var result = fn.apply(instance, args);\n if (typeof resolve === 'function') {\n resolve(result === null || result === void 0 ? void 0 : result.promise);\n }\n }\n }\n return instance;\n};\n/**\n * Check if the param is snippet proxy\n */\nexport var isInstanceProxy = function (instance) {\n var instanceProxy = instance;\n return instanceProxy && instanceProxy._q !== undefined;\n};","export var getLanguage = function () {\n var _a, _b, _c, _d;\n if (typeof navigator === 'undefined') return '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var userLanguage = navigator.userLanguage;\n return (_d = (_c = (_b = (_a = navigator.languages) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : navigator.language) !== null && _c !== void 0 ? _c : userLanguage) !== null && _d !== void 0 ? _d : '';\n};","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { PluginType } from '@amplitude/analytics-types';\nimport UAParser from '@amplitude/ua-parser-js';\nimport { UUID } from '@amplitude/analytics-core';\nimport { getLanguage } from '@amplitude/analytics-client-common';\nimport { VERSION } from '../version';\nvar BROWSER_PLATFORM = 'Web';\nvar IP_ADDRESS = '$remote';\nvar Context = /** @class */function () {\n function Context() {\n this.name = 'context';\n this.type = PluginType.BEFORE;\n this.eventId = 0;\n this.library = \"amplitude-ts/\".concat(VERSION);\n /* istanbul ignore else */\n if (typeof navigator !== 'undefined') {\n this.userAgent = navigator.userAgent;\n }\n this.uaResult = new UAParser(this.userAgent).getResult();\n }\n Context.prototype.setup = function (config) {\n this.config = config;\n this.eventId = this.config.lastEventId ? this.config.lastEventId + 1 : 0;\n return Promise.resolve(undefined);\n };\n Context.prototype.execute = function (context) {\n return __awaiter(this, void 0, void 0, function () {\n var time, osName, osVersion, deviceModel, deviceVendor, event;\n return __generator(this, function (_a) {\n time = new Date().getTime();\n osName = this.uaResult.browser.name;\n osVersion = this.uaResult.browser.version;\n deviceModel = this.uaResult.device.model || this.uaResult.os.name;\n deviceVendor = this.uaResult.device.vendor;\n this.config.lastEventId = this.eventId;\n event = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({\n user_id: this.config.userId,\n device_id: this.config.deviceId,\n session_id: this.config.sessionId,\n time: time\n }, this.config.appVersion && {\n app_version: this.config.appVersion\n }), this.config.trackingOptions.platform && {\n platform: BROWSER_PLATFORM\n }), this.config.trackingOptions.osName && {\n os_name: osName\n }), this.config.trackingOptions.osVersion && {\n os_version: osVersion\n }), this.config.trackingOptions.deviceManufacturer && {\n device_manufacturer: deviceVendor\n }), this.config.trackingOptions.deviceModel && {\n device_model: deviceModel\n }), this.config.trackingOptions.language && {\n language: getLanguage()\n }), this.config.trackingOptions.ipAddress && {\n ip: IP_ADDRESS\n }), {\n insert_id: UUID(),\n partner_id: this.config.partnerId,\n plan: this.config.plan\n }), this.config.ingestionMetadata && {\n ingestion_metadata: {\n source_name: this.config.ingestionMetadata.sourceName,\n source_version: this.config.ingestionMetadata.sourceVersion\n }\n }), context), {\n event_id: this.eventId++,\n library: this.library,\n user_agent: this.userAgent\n });\n return [2 /*return*/, event];\n });\n });\n };\n return Context;\n}();\nexport { Context };","export var VERSION = '1.10.2';","import { __awaiter, __generator } from \"tslib\";\nvar MemoryStorage = /** @class */function () {\n function MemoryStorage() {\n this.memoryStorage = new Map();\n }\n MemoryStorage.prototype.isEnabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, true];\n });\n });\n };\n MemoryStorage.prototype.get = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.memoryStorage.get(key)];\n });\n });\n };\n MemoryStorage.prototype.getRaw = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n var value;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.get(key)];\n case 1:\n value = _a.sent();\n return [2 /*return*/, value ? JSON.stringify(value) : undefined];\n }\n });\n });\n };\n MemoryStorage.prototype.set = function (key, value) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.memoryStorage.set(key, value);\n return [2 /*return*/];\n });\n });\n };\n\n MemoryStorage.prototype.remove = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.memoryStorage.delete(key);\n return [2 /*return*/];\n });\n });\n };\n\n MemoryStorage.prototype.reset = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.memoryStorage.clear();\n return [2 /*return*/];\n });\n });\n };\n\n return MemoryStorage;\n}();\nexport { MemoryStorage };","/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\nimport { Status } from '@amplitude/analytics-types';\nvar BaseTransport = /** @class */function () {\n function BaseTransport() {}\n BaseTransport.prototype.send = function (_serverUrl, _payload) {\n return Promise.resolve(null);\n };\n BaseTransport.prototype.buildResponse = function (responseJSON) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;\n if (typeof responseJSON !== 'object') {\n return null;\n }\n var statusCode = responseJSON.code || 0;\n var status = this.buildStatus(statusCode);\n switch (status) {\n case Status.Success:\n return {\n status: status,\n statusCode: statusCode,\n body: {\n eventsIngested: (_a = responseJSON.events_ingested) !== null && _a !== void 0 ? _a : 0,\n payloadSizeBytes: (_b = responseJSON.payload_size_bytes) !== null && _b !== void 0 ? _b : 0,\n serverUploadTime: (_c = responseJSON.server_upload_time) !== null && _c !== void 0 ? _c : 0\n }\n };\n case Status.Invalid:\n return {\n status: status,\n statusCode: statusCode,\n body: {\n error: (_d = responseJSON.error) !== null && _d !== void 0 ? _d : '',\n missingField: (_e = responseJSON.missing_field) !== null && _e !== void 0 ? _e : '',\n eventsWithInvalidFields: (_f = responseJSON.events_with_invalid_fields) !== null && _f !== void 0 ? _f : {},\n eventsWithMissingFields: (_g = responseJSON.events_with_missing_fields) !== null && _g !== void 0 ? _g : {},\n eventsWithInvalidIdLengths: (_h = responseJSON.events_with_invalid_id_lengths) !== null && _h !== void 0 ? _h : {},\n epsThreshold: (_j = responseJSON.eps_threshold) !== null && _j !== void 0 ? _j : 0,\n exceededDailyQuotaDevices: (_k = responseJSON.exceeded_daily_quota_devices) !== null && _k !== void 0 ? _k : {},\n silencedDevices: (_l = responseJSON.silenced_devices) !== null && _l !== void 0 ? _l : [],\n silencedEvents: (_m = responseJSON.silenced_events) !== null && _m !== void 0 ? _m : [],\n throttledDevices: (_o = responseJSON.throttled_devices) !== null && _o !== void 0 ? _o : {},\n throttledEvents: (_p = responseJSON.throttled_events) !== null && _p !== void 0 ? _p : []\n }\n };\n case Status.PayloadTooLarge:\n return {\n status: status,\n statusCode: statusCode,\n body: {\n error: (_q = responseJSON.error) !== null && _q !== void 0 ? _q : ''\n }\n };\n case Status.RateLimit:\n return {\n status: status,\n statusCode: statusCode,\n body: {\n error: (_r = responseJSON.error) !== null && _r !== void 0 ? _r : '',\n epsThreshold: (_s = responseJSON.eps_threshold) !== null && _s !== void 0 ? _s : 0,\n throttledDevices: (_t = responseJSON.throttled_devices) !== null && _t !== void 0 ? _t : {},\n throttledUsers: (_u = responseJSON.throttled_users) !== null && _u !== void 0 ? _u : {},\n exceededDailyQuotaDevices: (_v = responseJSON.exceeded_daily_quota_devices) !== null && _v !== void 0 ? _v : {},\n exceededDailyQuotaUsers: (_w = responseJSON.exceeded_daily_quota_users) !== null && _w !== void 0 ? _w : {},\n throttledEvents: (_x = responseJSON.throttled_events) !== null && _x !== void 0 ? _x : []\n }\n };\n case Status.Timeout:\n default:\n return {\n status: status,\n statusCode: statusCode\n };\n }\n };\n BaseTransport.prototype.buildStatus = function (code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code === 413) {\n return Status.PayloadTooLarge;\n }\n if (code === 408) {\n return Status.Timeout;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n };\n return BaseTransport;\n}();\nexport { BaseTransport };","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { BaseTransport } from '@amplitude/analytics-core';\nvar FetchTransport = /** @class */function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FetchTransport.prototype.send = function (serverUrl, payload) {\n return __awaiter(this, void 0, void 0, function () {\n var options, response, responsePayload;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n /* istanbul ignore if */\n if (typeof fetch === 'undefined') {\n throw new Error('FetchTransport is not supported');\n }\n options = {\n headers: {\n 'Content-Type': 'application/json',\n Accept: '*/*'\n },\n body: JSON.stringify(payload),\n method: 'POST'\n };\n return [4 /*yield*/, fetch(serverUrl, options)];\n case 1:\n response = _a.sent();\n return [4 /*yield*/, response.json()];\n case 2:\n responsePayload = _a.sent();\n return [2 /*return*/, this.buildResponse(responsePayload)];\n }\n });\n });\n };\n return FetchTransport;\n}(BaseTransport);\nexport { FetchTransport };","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getGlobalScope } from '../global-scope';\nvar CookieStorage = /** @class */function () {\n function CookieStorage(options) {\n this.options = __assign({}, options);\n }\n CookieStorage.prototype.isEnabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n var random, testStrorage, testKey, value, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n /* istanbul ignore if */\n if (!getGlobalScope()) {\n return [2 /*return*/, false];\n }\n random = String(Date.now());\n testStrorage = new CookieStorage(this.options);\n testKey = 'AMP_TEST';\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, 5, 7]);\n return [4 /*yield*/, testStrorage.set(testKey, random)];\n case 2:\n _b.sent();\n return [4 /*yield*/, testStrorage.get(testKey)];\n case 3:\n value = _b.sent();\n return [2 /*return*/, value === random];\n case 4:\n _a = _b.sent();\n /* istanbul ignore next */\n return [2 /*return*/, false];\n case 5:\n return [4 /*yield*/, testStrorage.remove(testKey)];\n case 6:\n _b.sent();\n return [7 /*endfinally*/];\n case 7:\n return [2 /*return*/];\n }\n });\n });\n };\n\n CookieStorage.prototype.get = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n var value;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.getRaw(key)];\n case 1:\n value = _a.sent();\n if (!value) {\n return [2 /*return*/, undefined];\n }\n try {\n try {\n value = decodeURIComponent(atob(value));\n } catch (_b) {\n // value not encoded\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return [2 /*return*/, JSON.parse(value)];\n } catch (_c) {\n /* istanbul ignore next */\n return [2 /*return*/, undefined];\n }\n return [2 /*return*/];\n }\n });\n });\n };\n\n CookieStorage.prototype.getRaw = function (key) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var globalScope, cookie, match;\n return __generator(this, function (_b) {\n globalScope = getGlobalScope();\n cookie = (_a = globalScope === null || globalScope === void 0 ? void 0 : globalScope.document.cookie.split('; ')) !== null && _a !== void 0 ? _a : [];\n match = cookie.find(function (c) {\n return c.indexOf(key + '=') === 0;\n });\n if (!match) {\n return [2 /*return*/, undefined];\n }\n return [2 /*return*/, match.substring(key.length + 1)];\n });\n });\n };\n CookieStorage.prototype.set = function (key, value) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var expirationDays, expires, expireDate, date, str, globalScope;\n return __generator(this, function (_b) {\n try {\n expirationDays = (_a = this.options.expirationDays) !== null && _a !== void 0 ? _a : 0;\n expires = value !== null ? expirationDays : -1;\n expireDate = undefined;\n if (expires) {\n date = new Date();\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000);\n expireDate = date;\n }\n str = \"\".concat(key, \"=\").concat(btoa(encodeURIComponent(JSON.stringify(value))));\n if (expireDate) {\n str += \"; expires=\".concat(expireDate.toUTCString());\n }\n str += '; path=/';\n if (this.options.domain) {\n str += \"; domain=\".concat(this.options.domain);\n }\n if (this.options.secure) {\n str += '; Secure';\n }\n if (this.options.sameSite) {\n str += \"; SameSite=\".concat(this.options.sameSite);\n }\n globalScope = getGlobalScope();\n if (globalScope) {\n globalScope.document.cookie = str;\n }\n } catch (_c) {\n //\n }\n return [2 /*return*/];\n });\n });\n };\n\n CookieStorage.prototype.remove = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, this.set(key, null)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n\n CookieStorage.prototype.reset = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n\n return CookieStorage;\n}();\nexport { CookieStorage };","import { __awaiter, __generator } from \"tslib\";\nimport { getGlobalScope } from '@amplitude/analytics-client-common';\nvar LocalStorage = /** @class */function () {\n function LocalStorage() {}\n LocalStorage.prototype.isEnabled = function () {\n return __awaiter(this, void 0, void 0, function () {\n var random, testStorage, testKey, value, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n /* istanbul ignore if */\n if (!getGlobalScope()) {\n return [2 /*return*/, false];\n }\n random = String(Date.now());\n testStorage = new LocalStorage();\n testKey = 'AMP_TEST';\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, 5, 7]);\n return [4 /*yield*/, testStorage.set(testKey, random)];\n case 2:\n _b.sent();\n return [4 /*yield*/, testStorage.get(testKey)];\n case 3:\n value = _b.sent();\n return [2 /*return*/, value === random];\n case 4:\n _a = _b.sent();\n /* istanbul ignore next */\n return [2 /*return*/, false];\n case 5:\n return [4 /*yield*/, testStorage.remove(testKey)];\n case 6:\n _b.sent();\n return [7 /*endfinally*/];\n case 7:\n return [2 /*return*/];\n }\n });\n });\n };\n\n LocalStorage.prototype.get = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n var value, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2,, 3]);\n return [4 /*yield*/, this.getRaw(key)];\n case 1:\n value = _b.sent();\n if (!value) {\n return [2 /*return*/, undefined];\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return [2 /*return*/, JSON.parse(value)];\n case 2:\n _a = _b.sent();\n /* istanbul ignore next */\n return [2 /*return*/, undefined];\n case 3:\n return [2 /*return*/];\n }\n });\n });\n };\n\n LocalStorage.prototype.getRaw = function (key) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n return [2 /*return*/, ((_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.localStorage.getItem(key)) || undefined];\n });\n });\n };\n LocalStorage.prototype.set = function (key, value) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n try {\n (_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.localStorage.setItem(key, JSON.stringify(value));\n } catch (_c) {\n //\n }\n return [2 /*return*/];\n });\n });\n };\n\n LocalStorage.prototype.remove = function (key) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n try {\n (_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.localStorage.removeItem(key);\n } catch (_c) {\n //\n }\n return [2 /*return*/];\n });\n });\n };\n\n LocalStorage.prototype.reset = function () {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n try {\n (_a = getGlobalScope()) === null || _a === void 0 ? void 0 : _a.localStorage.clear();\n } catch (_c) {\n //\n }\n return [2 /*return*/];\n });\n });\n };\n\n return LocalStorage;\n}();\nexport { LocalStorage };","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { BaseTransport } from '@amplitude/analytics-core';\nvar XHRTransport = /** @class */function (_super) {\n __extends(XHRTransport, _super);\n function XHRTransport() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.state = {\n done: 4\n };\n return _this;\n }\n XHRTransport.prototype.send = function (serverUrl, payload) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n /* istanbul ignore if */\n if (typeof XMLHttpRequest === 'undefined') {\n reject(new Error('XHRTransport is not supported.'));\n }\n var xhr = new XMLHttpRequest();\n xhr.open('POST', serverUrl, true);\n xhr.onreadystatechange = function () {\n if (xhr.readyState === _this.state.done) {\n try {\n var responsePayload = xhr.responseText;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n var parsedResponsePayload = JSON.parse(responsePayload);\n var result = _this.buildResponse(parsedResponsePayload);\n resolve(result);\n } catch (e) {\n reject(e);\n }\n }\n };\n xhr.setRequestHeader('Content-Type', 'application/json');\n xhr.setRequestHeader('Accept', '*/*');\n xhr.send(JSON.stringify(payload));\n })];\n });\n });\n };\n return XHRTransport;\n}(BaseTransport);\nexport { XHRTransport };","import { __awaiter, __extends, __generator } from \"tslib\";\nimport { getGlobalScope } from '@amplitude/analytics-client-common';\nimport { BaseTransport } from '@amplitude/analytics-core';\nvar SendBeaconTransport = /** @class */function (_super) {\n __extends(SendBeaconTransport, _super);\n function SendBeaconTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SendBeaconTransport.prototype.send = function (serverUrl, payload) {\n return __awaiter(this, void 0, void 0, function () {\n var _this = this;\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) {\n var globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!(globalScope === null || globalScope === void 0 ? void 0 : globalScope.navigator.sendBeacon)) {\n throw new Error('SendBeaconTransport is not supported');\n }\n try {\n var data = JSON.stringify(payload);\n var success = globalScope.navigator.sendBeacon(serverUrl, JSON.stringify(payload));\n if (success) {\n return resolve(_this.buildResponse({\n code: 200,\n events_ingested: payload.events.length,\n payload_size_bytes: data.length,\n server_upload_time: Date.now()\n }));\n }\n return resolve(_this.buildResponse({\n code: 500\n }));\n } catch (e) {\n reject(e);\n }\n })];\n });\n });\n };\n return SendBeaconTransport;\n}(BaseTransport);\nexport { SendBeaconTransport };","import { __assign, __awaiter, __extends, __generator, __values } from \"tslib\";\nimport { TransportType } from '@amplitude/analytics-types';\nimport { Config, MemoryStorage, UUID } from '@amplitude/analytics-core';\nimport { CookieStorage, getCookieName, FetchTransport } from '@amplitude/analytics-client-common';\nimport { LocalStorage } from './storage/local-storage';\nimport { XHRTransport } from './transports/xhr';\nimport { SendBeaconTransport } from './transports/send-beacon';\nexport var getDefaultConfig = function () {\n var cookieStorage = new MemoryStorage();\n var trackingOptions = {\n deviceManufacturer: true,\n deviceModel: true,\n ipAddress: true,\n language: true,\n osName: true,\n osVersion: true,\n platform: true\n };\n return {\n cookieExpiration: 365,\n cookieSameSite: 'Lax',\n cookieSecure: false,\n cookieStorage: cookieStorage,\n cookieUpgrade: true,\n disableCookies: false,\n domain: '',\n sessionTimeout: 30 * 60 * 1000,\n trackingOptions: trackingOptions,\n transportProvider: new FetchTransport()\n };\n};\nvar BrowserConfig = /** @class */function (_super) {\n __extends(BrowserConfig, _super);\n function BrowserConfig(apiKey, options) {\n var _this = this;\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n var defaultConfig = getDefaultConfig();\n _this = _super.call(this, __assign(__assign({\n flushIntervalMillis: 1000,\n flushMaxRetries: 5,\n flushQueueSize: 30,\n transportProvider: defaultConfig.transportProvider\n }, options), {\n apiKey: apiKey\n })) || this;\n _this._optOut = false;\n // NOTE: Define `cookieStorage` first to persist user session\n // user session properties expect `cookieStorage` to be defined\n _this.cookieStorage = (_a = options === null || options === void 0 ? void 0 : options.cookieStorage) !== null && _a !== void 0 ? _a : defaultConfig.cookieStorage;\n _this.deviceId = options === null || options === void 0 ? void 0 : options.deviceId;\n _this.lastEventId = options === null || options === void 0 ? void 0 : options.lastEventId;\n _this.lastEventTime = options === null || options === void 0 ? void 0 : options.lastEventTime;\n _this.optOut = Boolean(options === null || options === void 0 ? void 0 : options.optOut);\n _this.sessionId = options === null || options === void 0 ? void 0 : options.sessionId;\n _this.userId = options === null || options === void 0 ? void 0 : options.userId;\n _this.appVersion = options === null || options === void 0 ? void 0 : options.appVersion;\n _this.attribution = options === null || options === void 0 ? void 0 : options.attribution;\n _this.cookieExpiration = (_b = options === null || options === void 0 ? void 0 : options.cookieExpiration) !== null && _b !== void 0 ? _b : defaultConfig.cookieExpiration;\n _this.cookieSameSite = (_c = options === null || options === void 0 ? void 0 : options.cookieSameSite) !== null && _c !== void 0 ? _c : defaultConfig.cookieSameSite;\n _this.cookieSecure = (_d = options === null || options === void 0 ? void 0 : options.cookieSecure) !== null && _d !== void 0 ? _d : defaultConfig.cookieSecure;\n _this.cookieUpgrade = (_e = options === null || options === void 0 ? void 0 : options.cookieUpgrade) !== null && _e !== void 0 ? _e : defaultConfig.cookieUpgrade;\n _this.defaultTracking = options === null || options === void 0 ? void 0 : options.defaultTracking;\n _this.disableCookies = (_f = options === null || options === void 0 ? void 0 : options.disableCookies) !== null && _f !== void 0 ? _f : defaultConfig.disableCookies;\n _this.defaultTracking = options === null || options === void 0 ? void 0 : options.defaultTracking;\n _this.domain = (_g = options === null || options === void 0 ? void 0 : options.domain) !== null && _g !== void 0 ? _g : defaultConfig.domain;\n _this.partnerId = options === null || options === void 0 ? void 0 : options.partnerId;\n _this.sessionTimeout = (_h = options === null || options === void 0 ? void 0 : options.sessionTimeout) !== null && _h !== void 0 ? _h : defaultConfig.sessionTimeout;\n _this.trackingOptions = (_j = options === null || options === void 0 ? void 0 : options.trackingOptions) !== null && _j !== void 0 ? _j : defaultConfig.trackingOptions;\n return _this;\n }\n Object.defineProperty(BrowserConfig.prototype, \"deviceId\", {\n get: function () {\n return this._deviceId;\n },\n set: function (deviceId) {\n if (this._deviceId !== deviceId) {\n this._deviceId = deviceId;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"userId\", {\n get: function () {\n return this._userId;\n },\n set: function (userId) {\n if (this._userId !== userId) {\n this._userId = userId;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"sessionId\", {\n get: function () {\n return this._sessionId;\n },\n set: function (sessionId) {\n if (this._sessionId !== sessionId) {\n this._sessionId = sessionId;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"optOut\", {\n get: function () {\n return this._optOut;\n },\n set: function (optOut) {\n if (this._optOut !== optOut) {\n this._optOut = optOut;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"lastEventTime\", {\n get: function () {\n return this._lastEventTime;\n },\n set: function (lastEventTime) {\n if (this._lastEventTime !== lastEventTime) {\n this._lastEventTime = lastEventTime;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BrowserConfig.prototype, \"lastEventId\", {\n get: function () {\n return this._lastEventId;\n },\n set: function (lastEventId) {\n if (this._lastEventId !== lastEventId) {\n this._lastEventId = lastEventId;\n this.updateStorage();\n }\n },\n enumerable: false,\n configurable: true\n });\n BrowserConfig.prototype.updateStorage = function () {\n var _a;\n var cache = {\n deviceId: this._deviceId,\n userId: this._userId,\n sessionId: this._sessionId,\n optOut: this._optOut,\n lastEventTime: this._lastEventTime,\n lastEventId: this._lastEventId\n };\n void ((_a = this.cookieStorage) === null || _a === void 0 ? void 0 : _a.set(getCookieName(this.apiKey), cache));\n };\n return BrowserConfig;\n}(Config);\nexport { BrowserConfig };\nexport var useBrowserConfig = function (apiKey, options) {\n return __awaiter(void 0, void 0, void 0, function () {\n var defaultConfig, deviceId, lastEventId, lastEventTime, optOut, sessionId, userId, cookieStorage, domain, _a, _b, _c;\n var _d;\n var _e, _f;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n defaultConfig = getDefaultConfig();\n deviceId = (_e = options === null || options === void 0 ? void 0 : options.deviceId) !== null && _e !== void 0 ? _e : UUID();\n lastEventId = options === null || options === void 0 ? void 0 : options.lastEventId;\n lastEventTime = options === null || options === void 0 ? void 0 : options.lastEventTime;\n optOut = options === null || options === void 0 ? void 0 : options.optOut;\n sessionId = options === null || options === void 0 ? void 0 : options.sessionId;\n userId = options === null || options === void 0 ? void 0 : options.userId;\n cookieStorage = options === null || options === void 0 ? void 0 : options.cookieStorage;\n domain = options === null || options === void 0 ? void 0 : options.domain;\n _a = BrowserConfig.bind;\n _b = [void 0, apiKey];\n _c = [__assign({}, options)];\n _d = {\n cookieStorage: cookieStorage,\n deviceId: deviceId,\n domain: domain,\n lastEventId: lastEventId,\n lastEventTime: lastEventTime,\n optOut: optOut,\n sessionId: sessionId\n };\n return [4 /*yield*/, createEventsStorage(options)];\n case 1:\n return [2 /*return*/, new (_a.apply(BrowserConfig, _b.concat([__assign.apply(void 0, _c.concat([(_d.storageProvider = _g.sent(), _d.trackingOptions = __assign(__assign({}, defaultConfig.trackingOptions), options === null || options === void 0 ? void 0 : options.trackingOptions), _d.transportProvider = (_f = options === null || options === void 0 ? void 0 : options.transportProvider) !== null && _f !== void 0 ? _f : createTransport(options === null || options === void 0 ? void 0 : options.transport), _d.userId = userId, _d)]))])))()];\n }\n });\n });\n};\nexport var createCookieStorage = function (overrides, baseConfig) {\n if (baseConfig === void 0) {\n baseConfig = getDefaultConfig();\n }\n return __awaiter(void 0, void 0, void 0, function () {\n var options, cookieStorage, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n options = __assign(__assign({}, baseConfig), overrides);\n cookieStorage = overrides === null || overrides === void 0 ? void 0 : overrides.cookieStorage;\n _a = !cookieStorage;\n if (_a) return [3 /*break*/, 2];\n return [4 /*yield*/, cookieStorage.isEnabled()];\n case 1:\n _a = !_b.sent();\n _b.label = 2;\n case 2:\n if (_a) {\n return [2 /*return*/, createFlexibleStorage(options)];\n }\n return [2 /*return*/, cookieStorage];\n }\n });\n });\n};\nvar createFlexibleStorage = function (options) {\n return __awaiter(void 0, void 0, void 0, function () {\n var storage, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n storage = new CookieStorage({\n domain: options.domain,\n expirationDays: options.cookieExpiration,\n sameSite: options.cookieSameSite,\n secure: options.cookieSecure\n });\n _a = options.disableCookies;\n if (_a) return [3 /*break*/, 2];\n return [4 /*yield*/, storage.isEnabled()];\n case 1:\n _a = !_b.sent();\n _b.label = 2;\n case 2:\n if (!_a) return [3 /*break*/, 4];\n storage = new LocalStorage();\n return [4 /*yield*/, storage.isEnabled()];\n case 3:\n if (!_b.sent()) {\n storage = new MemoryStorage();\n }\n _b.label = 4;\n case 4:\n return [2 /*return*/, storage];\n }\n });\n });\n};\nexport var createEventsStorage = function (overrides) {\n return __awaiter(void 0, void 0, void 0, function () {\n var hasStorageProviderProperty, _a, _b, storage, _c, e_1_1;\n var e_1, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n hasStorageProviderProperty = overrides && Object.prototype.hasOwnProperty.call(overrides, 'storageProvider');\n if (!(!hasStorageProviderProperty || overrides.storageProvider)) return [3 /*break*/, 9];\n _e.label = 1;\n case 1:\n _e.trys.push([1, 7, 8, 9]);\n _a = __values([overrides === null || overrides === void 0 ? void 0 : overrides.storageProvider, new LocalStorage()]), _b = _a.next();\n _e.label = 2;\n case 2:\n if (!!_b.done) return [3 /*break*/, 6];\n storage = _b.value;\n _c = storage;\n if (!_c) return [3 /*break*/, 4];\n return [4 /*yield*/, storage.isEnabled()];\n case 3:\n _c = _e.sent();\n _e.label = 4;\n case 4:\n if (_c) {\n return [2 /*return*/, storage];\n }\n _e.label = 5;\n case 5:\n _b = _a.next();\n return [3 /*break*/, 2];\n case 6:\n return [3 /*break*/, 9];\n case 7:\n e_1_1 = _e.sent();\n e_1 = {\n error: e_1_1\n };\n return [3 /*break*/, 9];\n case 8:\n try {\n if (_b && !_b.done && (_d = _a.return)) _d.call(_a);\n } finally {\n if (e_1) throw e_1.error;\n }\n return [7 /*endfinally*/];\n case 9:\n return [2 /*return*/, undefined];\n }\n });\n });\n};\nexport var createTransport = function (transport) {\n if (transport === TransportType.XHR) {\n return new XHRTransport();\n }\n if (transport === TransportType.SendBeacon) {\n return new SendBeaconTransport();\n }\n return getDefaultConfig().transportProvider;\n};\nexport var getTopLevelDomain = function (url) {\n return __awaiter(void 0, void 0, void 0, function () {\n var host, parts, levels, storageKey, i, i, domain, options, storage, value;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4 /*yield*/, new CookieStorage().isEnabled()];\n case 1:\n if (!_a.sent() || !url && typeof location === 'undefined') {\n return [2 /*return*/, ''];\n }\n host = url !== null && url !== void 0 ? url : location.hostname;\n parts = host.split('.');\n levels = [];\n storageKey = 'AMP_TLDTEST';\n for (i = parts.length - 2; i >= 0; --i) {\n levels.push(parts.slice(i).join('.'));\n }\n i = 0;\n _a.label = 2;\n case 2:\n if (!(i < levels.length)) return [3 /*break*/, 7];\n domain = levels[i];\n options = {\n domain: '.' + domain\n };\n storage = new CookieStorage(options);\n return [4 /*yield*/, storage.set(storageKey, 1)];\n case 3:\n _a.sent();\n return [4 /*yield*/, storage.get(storageKey)];\n case 4:\n value = _a.sent();\n if (!value) return [3 /*break*/, 6];\n return [4 /*yield*/, storage.remove(storageKey)];\n case 5:\n _a.sent();\n return [2 /*return*/, '.' + domain];\n case 6:\n i++;\n return [3 /*break*/, 2];\n case 7:\n return [2 /*return*/, ''];\n }\n });\n });\n};","import { __awaiter, __generator, __read } from \"tslib\";\nimport { getOldCookieName } from '@amplitude/analytics-client-common';\nimport { createCookieStorage, getDefaultConfig } from '../config';\nexport var parseLegacyCookies = function (apiKey, options) {\n return __awaiter(void 0, void 0, void 0, function () {\n var storage, oldCookieName, cookies, _a, deviceId, userId, optOut, sessionId, lastEventTime;\n var _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n return [4 /*yield*/, createCookieStorage(options)];\n case 1:\n storage = _c.sent();\n oldCookieName = getOldCookieName(apiKey);\n return [4 /*yield*/, storage.getRaw(oldCookieName)];\n case 2:\n cookies = _c.sent();\n if (!cookies) {\n return [2 /*return*/, {\n optOut: false\n }];\n }\n if (!((_b = options === null || options === void 0 ? void 0 : options.cookieUpgrade) !== null && _b !== void 0 ? _b : getDefaultConfig().cookieUpgrade)) return [3 /*break*/, 4];\n return [4 /*yield*/, storage.remove(oldCookieName)];\n case 3:\n _c.sent();\n _c.label = 4;\n case 4:\n _a = __read(cookies.split('.'), 5), deviceId = _a[0], userId = _a[1], optOut = _a[2], sessionId = _a[3], lastEventTime = _a[4];\n return [2 /*return*/, {\n deviceId: deviceId,\n userId: decode(userId),\n sessionId: parseTime(sessionId),\n lastEventTime: parseTime(lastEventTime),\n optOut: Boolean(optOut)\n }];\n }\n });\n });\n};\nexport var parseTime = function (num) {\n var integer = parseInt(num, 32);\n if (isNaN(integer)) {\n return undefined;\n }\n return integer;\n};\nexport var decode = function (value) {\n if (!atob || !escape || !value) {\n return undefined;\n }\n try {\n return decodeURIComponent(escape(atob(value)));\n } catch (_a) {\n return undefined;\n }\n};","export var UTM_CAMPAIGN = 'utm_campaign';\nexport var UTM_CONTENT = 'utm_content';\nexport var UTM_ID = 'utm_id';\nexport var UTM_MEDIUM = 'utm_medium';\nexport var UTM_SOURCE = 'utm_source';\nexport var UTM_TERM = 'utm_term';\nexport var DCLID = 'dclid';\nexport var FBCLID = 'fbclid';\nexport var GBRAID = 'gbraid';\nexport var GCLID = 'gclid';\nexport var KO_CLICK_ID = 'ko_click_id';\nexport var MSCLKID = 'msclkid';\nexport var TTCLID = 'ttclid';\nexport var TWCLID = 'twclid';\nexport var WBRAID = 'wbraid';\nexport var EMPTY_VALUE = 'EMPTY';\nexport var BASE_CAMPAIGN = {\n utm_campaign: undefined,\n utm_content: undefined,\n utm_id: undefined,\n utm_medium: undefined,\n utm_source: undefined,\n utm_term: undefined,\n referrer: undefined,\n referring_domain: undefined,\n dclid: undefined,\n gbraid: undefined,\n gclid: undefined,\n fbclid: undefined,\n ko_click_id: undefined,\n msclkid: undefined,\n ttclid: undefined,\n twclid: undefined,\n wbraid: undefined\n};\nexport var MKTG = 'MKTG';","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { getQueryParams } from '../query-params';\nimport { UTM_CAMPAIGN, UTM_CONTENT, UTM_MEDIUM, UTM_SOURCE, UTM_TERM, GCLID, FBCLID, BASE_CAMPAIGN, DCLID, MSCLKID, TWCLID, TTCLID, KO_CLICK_ID, GBRAID, WBRAID, UTM_ID } from './constants';\nvar CampaignParser = /** @class */function () {\n function CampaignParser() {}\n CampaignParser.prototype.parse = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, __assign(__assign(__assign(__assign({}, BASE_CAMPAIGN), this.getUtmParam()), this.getReferrer()), this.getClickIds())];\n });\n });\n };\n CampaignParser.prototype.getUtmParam = function () {\n var params = getQueryParams();\n var utmCampaign = params[UTM_CAMPAIGN];\n var utmContent = params[UTM_CONTENT];\n var utmId = params[UTM_ID];\n var utmMedium = params[UTM_MEDIUM];\n var utmSource = params[UTM_SOURCE];\n var utmTerm = params[UTM_TERM];\n return {\n utm_campaign: utmCampaign,\n utm_content: utmContent,\n utm_id: utmId,\n utm_medium: utmMedium,\n utm_source: utmSource,\n utm_term: utmTerm\n };\n };\n CampaignParser.prototype.getReferrer = function () {\n var _a, _b;\n var data = {\n referrer: undefined,\n referring_domain: undefined\n };\n try {\n data.referrer = document.referrer || undefined;\n data.referring_domain = (_b = (_a = data.referrer) === null || _a === void 0 ? void 0 : _a.split('/')[2]) !== null && _b !== void 0 ? _b : undefined;\n } catch (_c) {\n // nothing to track\n }\n return data;\n };\n CampaignParser.prototype.getClickIds = function () {\n var _a;\n var params = getQueryParams();\n return _a = {}, _a[DCLID] = params[DCLID], _a[FBCLID] = params[FBCLID], _a[GBRAID] = params[GBRAID], _a[GCLID] = params[GCLID], _a[KO_CLICK_ID] = params[KO_CLICK_ID], _a[MSCLKID] = params[MSCLKID], _a[TTCLID] = params[TTCLID], _a[TWCLID] = params[TWCLID], _a[WBRAID] = params[WBRAID], _a;\n };\n return CampaignParser;\n}();\nexport { CampaignParser };","import { __assign, __read, __rest } from \"tslib\";\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { AMPLITUDE_PREFIX, createIdentifyEvent, Identify } from '@amplitude/analytics-core';\nexport var getStorageKey = function (apiKey, postKey, limit) {\n if (postKey === void 0) {\n postKey = '';\n }\n if (limit === void 0) {\n limit = 10;\n }\n return [AMPLITUDE_PREFIX, postKey, apiKey.substring(0, limit)].filter(Boolean).join('_');\n};\nvar domainWithoutSubdomain = function (domain) {\n var parts = domain.split('.');\n if (parts.length <= 2) {\n return domain;\n }\n return parts.slice(parts.length - 2, parts.length).join('.');\n};\nexport var isNewCampaign = function (current, previous, options) {\n var _a;\n var referrer = current.referrer,\n referring_domain = current.referring_domain,\n currentCampaign = __rest(current, [\"referrer\", \"referring_domain\"]);\n var _b = previous || {},\n _previous_referrer = _b.referrer,\n prevReferringDomain = _b.referring_domain,\n previousCampaign = __rest(_b, [\"referrer\", \"referring_domain\"]);\n if (current.referring_domain && ((_a = options.excludeReferrers) === null || _a === void 0 ? void 0 : _a.includes(current.referring_domain))) {\n return false;\n }\n var hasNewCampaign = JSON.stringify(currentCampaign) !== JSON.stringify(previousCampaign);\n var hasNewDomain = domainWithoutSubdomain(referring_domain || '') !== domainWithoutSubdomain(prevReferringDomain || '');\n return !previous || hasNewCampaign || hasNewDomain;\n};\nexport var createCampaignEvent = function (campaign, options) {\n var campaignParameters = __assign(__assign({}, BASE_CAMPAIGN), campaign);\n var identifyEvent = Object.entries(campaignParameters).reduce(function (identify, _a) {\n var _b;\n var _c = __read(_a, 2),\n key = _c[0],\n value = _c[1];\n identify.setOnce(\"initial_\".concat(key), (_b = value !== null && value !== void 0 ? value : options.initialEmptyValue) !== null && _b !== void 0 ? _b : 'EMPTY');\n if (value) {\n return identify.set(key, value);\n }\n return identify.unset(key);\n }, new Identify());\n return createIdentifyEvent(identifyEvent);\n};","import { __assign, __awaiter, __generator, __read } from \"tslib\";\nimport { CampaignParser } from '@amplitude/analytics-client-common';\nimport { PluginType } from '@amplitude/analytics-types';\nimport { createCampaignEvent, getStorageKey, isNewCampaign } from './helpers';\nexport var webAttributionPlugin = function () {\n var _this = this;\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var amplitude;\n var options = {};\n var _b = __read(args, 2),\n clientOrOptions = _b[0],\n configOrUndefined = _b[1];\n if (clientOrOptions && 'init' in clientOrOptions) {\n amplitude = clientOrOptions;\n if (configOrUndefined) {\n options = configOrUndefined;\n }\n } else if (clientOrOptions) {\n options = clientOrOptions;\n }\n var excludeReferrers = (_a = options.excludeReferrers) !== null && _a !== void 0 ? _a : [];\n if (typeof location !== 'undefined') {\n excludeReferrers.unshift(location.hostname);\n }\n options = __assign(__assign({\n disabled: false,\n initialEmptyValue: 'EMPTY',\n resetSessionOnNewCampaign: false\n }, options), {\n excludeReferrers: excludeReferrers\n });\n var plugin = {\n name: 'web-attribution',\n type: PluginType.BEFORE,\n setup: function (config, client) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var receivedType, storage, storageKey, _b, currentCampaign, previousCampaign, pluginEnabledOverride, campaignEvent;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n amplitude = amplitude !== null && amplitude !== void 0 ? amplitude : client;\n if (!amplitude) {\n receivedType = clientOrOptions ? 'Options' : 'undefined';\n config.loggerProvider.error(\"Argument of type '\".concat(receivedType, \"' is not assignable to parameter of type 'BrowserClient'.\"));\n return [2 /*return*/];\n }\n\n if (options.disabled) {\n config.loggerProvider.log('@amplitude/plugin-web-attribution-browser is disabled. Attribution is not tracked.');\n return [2 /*return*/];\n }\n\n config.loggerProvider.log('Installing @amplitude/plugin-web-attribution-browser.');\n if (!client && !((_a = config.attribution) === null || _a === void 0 ? void 0 : _a.disabled)) {\n config.loggerProvider.warn('@amplitude/plugin-web-attribution-browser overrides web attribution behavior defined in @amplitude/analytics-browser. Resolve by disabling web attribution tracking in @amplitude/analytics-browser.');\n config.attribution = {\n disabled: true\n };\n }\n storage = config.cookieStorage;\n storageKey = getStorageKey(config.apiKey, 'MKTG');\n return [4 /*yield*/, Promise.all([new CampaignParser().parse(), storage.get(storageKey)])];\n case 1:\n _b = __read.apply(void 0, [_c.sent(), 2]), currentCampaign = _b[0], previousCampaign = _b[1];\n pluginEnabledOverride = this.__pluginEnabledOverride;\n if (pluginEnabledOverride !== null && pluginEnabledOverride !== void 0 ? pluginEnabledOverride : isNewCampaign(currentCampaign, previousCampaign, options)) {\n if (options.resetSessionOnNewCampaign) {\n amplitude.setSessionId(Date.now());\n config.loggerProvider.log('Created a new session for new campaign.');\n }\n config.loggerProvider.log('Tracking attribution.');\n campaignEvent = createCampaignEvent(currentCampaign, options);\n amplitude.track(campaignEvent);\n void storage.set(storageKey, currentCampaign);\n }\n return [2 /*return*/];\n }\n });\n });\n },\n\n execute: function (event) {\n return __awaiter(_this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, event];\n });\n });\n }\n };\n // For Amplitude-internal functionality\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n plugin.__pluginEnabledOverride = undefined;\n return plugin;\n};","export var omitUndefined = function (input) {\n var obj = {};\n for (var key in input) {\n var val = input[key];\n if (val) {\n obj[key] = val;\n }\n }\n return obj;\n};","import { __assign, __awaiter, __generator, __read, __spreadArray } from \"tslib\";\nimport { CampaignParser, getGlobalScope } from '@amplitude/analytics-client-common';\nimport { IdentifyOperation, PluginType } from '@amplitude/analytics-types';\nimport { BASE_CAMPAIGN } from '@amplitude/analytics-client-common';\nimport { omitUndefined } from './utils';\nexport var pageViewTrackingPlugin = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var amplitude;\n var options = {};\n var globalScope = getGlobalScope();\n var loggerProvider = undefined;\n var _a = __read(args, 2),\n clientOrOptions = _a[0],\n configOrUndefined = _a[1];\n if (clientOrOptions && 'init' in clientOrOptions) {\n amplitude = clientOrOptions;\n if (configOrUndefined) {\n options = configOrUndefined;\n }\n } else if (clientOrOptions) {\n options = clientOrOptions;\n }\n var createPageViewEvent = function () {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n var _b;\n var _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = {\n event_type: (_c = options.eventType) !== null && _c !== void 0 ? _c : 'Page View'\n };\n _a = [{}];\n return [4 /*yield*/, getCampaignParams()];\n case 1:\n return [2 /*return*/, (_b.event_properties = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_d.sent()])), {\n page_domain: /* istanbul ignore next */typeof location !== 'undefined' && location.hostname || '',\n page_location: /* istanbul ignore next */typeof location !== 'undefined' && location.href || '',\n page_path: /* istanbul ignore next */typeof location !== 'undefined' && location.pathname || '',\n page_title: /* istanbul ignore next */typeof document !== 'undefined' && document.title || '',\n page_url: /* istanbul ignore next */typeof location !== 'undefined' && location.href.split('?')[0] || ''\n }]), _b)];\n }\n });\n });\n };\n var shouldTrackOnPageLoad = function () {\n return typeof options.trackOn === 'undefined' || typeof options.trackOn === 'function' && options.trackOn();\n };\n var previousURL = null;\n var trackHistoryPageView = function () {\n return __awaiter(void 0, void 0, void 0, function () {\n var newURL, _a, _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n newURL = location.href;\n if (!(shouldTrackHistoryPageView(options.trackHistoryChanges, newURL, previousURL || '') && shouldTrackOnPageLoad())) return [3 /*break*/, 4];\n /* istanbul ignore next */\n loggerProvider === null || loggerProvider === void 0 ? void 0 : loggerProvider.log('Tracking page view event');\n if (!(amplitude === null || amplitude === void 0)) return [3 /*break*/, 1];\n _a = void 0;\n return [3 /*break*/, 3];\n case 1:\n _c = (_b = amplitude).track;\n return [4 /*yield*/, createPageViewEvent()];\n case 2:\n _a = _c.apply(_b, [_d.sent()]);\n _d.label = 3;\n case 3:\n _a;\n _d.label = 4;\n case 4:\n previousURL = newURL;\n return [2 /*return*/];\n }\n });\n });\n };\n\n var plugin = {\n name: 'page-view-tracking',\n type: PluginType.ENRICHMENT,\n setup: function (config, client) {\n return __awaiter(void 0, void 0, void 0, function () {\n var receivedType, _a, _b;\n var _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n amplitude = amplitude !== null && amplitude !== void 0 ? amplitude : client;\n if (!amplitude) {\n receivedType = clientOrOptions ? 'Options' : 'undefined';\n config.loggerProvider.error(\"Argument of type '\".concat(receivedType, \"' is not assignable to parameter of type 'BrowserClient'.\"));\n return [2 /*return*/];\n }\n\n loggerProvider = config.loggerProvider;\n loggerProvider.log('Installing @amplitude/plugin-page-view-tracking-browser');\n options.trackOn = ((_c = config.attribution) === null || _c === void 0 ? void 0 : _c.trackPageViews) ? 'attribution' : options.trackOn;\n if (!client && ((_d = config.attribution) === null || _d === void 0 ? void 0 : _d.trackPageViews)) {\n loggerProvider.warn(\"@amplitude/plugin-page-view-tracking-browser overrides page view tracking behavior defined in @amplitude/analytics-browser. Resolve by disabling page view tracking in @amplitude/analytics-browser.\");\n config.attribution.trackPageViews = false;\n }\n if (options.trackHistoryChanges && globalScope) {\n /* istanbul ignore next */\n globalScope.addEventListener('popstate', function () {\n void trackHistoryPageView();\n });\n /* istanbul ignore next */\n // There is no global browser listener for changes to history, so we have\n // to modify pushState directly.\n // https://stackoverflow.com/a/64927639\n // eslint-disable-next-line @typescript-eslint/unbound-method\n globalScope.history.pushState = new Proxy(globalScope.history.pushState, {\n apply: function (target, thisArg, _a) {\n var _b = __read(_a, 3),\n state = _b[0],\n unused = _b[1],\n url = _b[2];\n void trackHistoryPageView();\n return target.apply(thisArg, [state, unused, url]);\n }\n });\n }\n if (!shouldTrackOnPageLoad()) return [3 /*break*/, 2];\n loggerProvider.log('Tracking page view event');\n _b = (_a = amplitude).track;\n return [4 /*yield*/, createPageViewEvent()];\n case 1:\n _b.apply(_a, [_e.sent()]);\n _e.label = 2;\n case 2:\n return [2 /*return*/];\n }\n });\n });\n },\n\n execute: function (event) {\n return __awaiter(void 0, void 0, void 0, function () {\n var pageViewEvent;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(options.trackOn === 'attribution' && isCampaignEvent(event))) return [3 /*break*/, 2];\n /* istanbul ignore next */ // loggerProvider should be defined by the time execute is invoked\n loggerProvider === null || loggerProvider === void 0 ? void 0 : loggerProvider.log('Enriching campaign event to page view event with campaign parameters');\n return [4 /*yield*/, createPageViewEvent()];\n case 1:\n pageViewEvent = _a.sent();\n event.event_type = pageViewEvent.event_type;\n event.event_properties = __assign(__assign({}, event.event_properties), pageViewEvent.event_properties);\n _a.label = 2;\n case 2:\n return [2 /*return*/, event];\n }\n });\n });\n }\n };\n // Required for unit tests\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n plugin.__trackHistoryPageView = trackHistoryPageView;\n return plugin;\n};\nvar getCampaignParams = function () {\n return __awaiter(void 0, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = omitUndefined;\n return [4 /*yield*/, new CampaignParser().parse()];\n case 1:\n return [2 /*return*/, _a.apply(void 0, [_b.sent()])];\n }\n });\n });\n};\nvar isCampaignEvent = function (event) {\n if (event.event_type === '$identify' && event.user_properties) {\n var properties = event.user_properties;\n var $set = properties[IdentifyOperation.SET] || {};\n var $unset = properties[IdentifyOperation.UNSET] || {};\n var userProperties_1 = __spreadArray(__spreadArray([], __read(Object.keys($set)), false), __read(Object.keys($unset)), false);\n return Object.keys(BASE_CAMPAIGN).every(function (value) {\n return userProperties_1.includes(value);\n });\n }\n return false;\n};\nexport var shouldTrackHistoryPageView = function (trackingOption, newURL, oldURL) {\n switch (trackingOption) {\n case 'pathOnly':\n return newURL.split('?')[0] !== oldURL.split('?')[0];\n default:\n return newURL !== oldURL;\n }\n};","export var DEFAULT_EVENT_PREFIX = '[Amplitude]';\nexport var DEFAULT_PAGE_VIEW_EVENT = \"\".concat(DEFAULT_EVENT_PREFIX, \" Page Viewed\");\nexport var DEFAULT_FORM_START_EVENT = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form Started\");\nexport var DEFAULT_FORM_SUBMIT_EVENT = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form Submitted\");\nexport var DEFAULT_FILE_DOWNLOAD_EVENT = \"\".concat(DEFAULT_EVENT_PREFIX, \" File Downloaded\");\nexport var DEFAULT_SESSION_START_EVENT = 'session_start';\nexport var DEFAULT_SESSION_END_EVENT = 'session_end';\nexport var FILE_EXTENSION = \"\".concat(DEFAULT_EVENT_PREFIX, \" File Extension\");\nexport var FILE_NAME = \"\".concat(DEFAULT_EVENT_PREFIX, \" File Name\");\nexport var LINK_ID = \"\".concat(DEFAULT_EVENT_PREFIX, \" Link ID\");\nexport var LINK_TEXT = \"\".concat(DEFAULT_EVENT_PREFIX, \" Link Text\");\nexport var LINK_URL = \"\".concat(DEFAULT_EVENT_PREFIX, \" Link URL\");\nexport var FORM_ID = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form ID\");\nexport var FORM_NAME = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form Name\");\nexport var FORM_DESTINATION = \"\".concat(DEFAULT_EVENT_PREFIX, \" Form Destination\");","import { __awaiter, __generator, __read } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { PluginType } from '@amplitude/analytics-types';\nimport { DEFAULT_EVENT_PREFIX, DEFAULT_PAGE_VIEW_EVENT } from '../constants';\nvar eventPropertyMap = {\n page_domain: \"\".concat(DEFAULT_EVENT_PREFIX, \" Page Domain\"),\n page_location: \"\".concat(DEFAULT_EVENT_PREFIX, \" Page Location\"),\n page_path: \"\".concat(DEFAULT_EVENT_PREFIX, \" Page Path\"),\n page_title: \"\".concat(DEFAULT_EVENT_PREFIX, \" Page Title\"),\n page_url: \"\".concat(DEFAULT_EVENT_PREFIX, \" Page URL\")\n};\nexport var defaultPageViewEventEnrichment = function () {\n var name = '@amplitude/plugin-default-page-view-event-enrichment-browser';\n var type = PluginType.ENRICHMENT;\n var setup = function () {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, undefined];\n });\n });\n };\n var execute = function (event) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (event.event_type === DEFAULT_PAGE_VIEW_EVENT && event.event_properties) {\n event.event_properties = Object.entries(event.event_properties).reduce(function (acc, _a) {\n var _b = __read(_a, 2),\n key = _b[0],\n value = _b[1];\n var transformedPropertyName = eventPropertyMap[key];\n if (transformedPropertyName) {\n acc[transformedPropertyName] = value;\n } else {\n acc[key] = value;\n }\n return acc;\n }, {});\n }\n return [2 /*return*/, event];\n });\n });\n };\n return {\n name: name,\n type: type,\n setup: setup,\n execute: execute\n };\n};","import { __assign, __awaiter, __extends, __generator } from \"tslib\";\nimport { AmplitudeCore, Destination, Identify, returnWrapper, Revenue, UUID } from '@amplitude/analytics-core';\nimport { getAnalyticsConnector, getPageViewTrackingConfig, IdentityEventSender, isSessionTrackingEnabled, isFileDownloadTrackingEnabled, isFormInteractionTrackingEnabled, getCookieName, getQueryParams, setConnectorDeviceId, setConnectorUserId } from '@amplitude/analytics-client-common';\nimport { convertProxyObjectToRealObject, isInstanceProxy } from './utils/snippet-helper';\nimport { Context } from './plugins/context';\nimport { useBrowserConfig, createTransport, getTopLevelDomain, createCookieStorage } from './config';\nimport { parseLegacyCookies } from './cookie-migration';\nimport { webAttributionPlugin } from '@amplitude/plugin-web-attribution-browser';\nimport { pageViewTrackingPlugin } from '@amplitude/plugin-page-view-tracking-browser';\nimport { sessionHandlerPlugin } from './plugins/session-handler';\nimport { formInteractionTracking } from './plugins/form-interaction-tracking';\nimport { fileDownloadTracking } from './plugins/file-download-tracking';\nimport { DEFAULT_PAGE_VIEW_EVENT, DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT } from './constants';\nimport { defaultPageViewEventEnrichment } from './plugins/default-page-view-event-enrichment';\nvar AmplitudeBrowser = /** @class */function (_super) {\n __extends(AmplitudeBrowser, _super);\n function AmplitudeBrowser() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AmplitudeBrowser.prototype.init = function (apiKey, userId, options) {\n if (apiKey === void 0) {\n apiKey = '';\n }\n return returnWrapper(this._init(__assign(__assign({}, options), {\n userId: userId,\n apiKey: apiKey\n })));\n };\n AmplitudeBrowser.prototype._init = function (options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _r, _s, _t, _u;\n return __awaiter(this, void 0, void 0, function () {\n var _v, _w, _x, legacyCookies, cookieStorage, previousCookies, queryParams, deviceId, sessionId, optOut, lastEventId, lastEventTime, userId, browserOptions, isNewSession, connector, webAttribution, pageViewTrackingOptions;\n var _this = this;\n return __generator(this, function (_y) {\n switch (_y.label) {\n case 0:\n // Step 0: Block concurrent initialization\n if (this.initializing) {\n return [2 /*return*/];\n }\n\n this.initializing = true;\n // Step 1: Read cookies stored by SDK\n _v = options;\n if (!options.disableCookies) return [3 /*break*/, 1];\n _w = '';\n return [3 /*break*/, 5];\n case 1:\n if (!((_a = options.domain) !== null && _a !== void 0)) return [3 /*break*/, 2];\n _x = _a;\n return [3 /*break*/, 4];\n case 2:\n return [4 /*yield*/, getTopLevelDomain()];\n case 3:\n _x = _y.sent();\n _y.label = 4;\n case 4:\n _w = _x;\n _y.label = 5;\n case 5:\n // Step 1: Read cookies stored by SDK\n _v.domain = _w;\n return [4 /*yield*/, parseLegacyCookies(options.apiKey, options)];\n case 6:\n legacyCookies = _y.sent();\n return [4 /*yield*/, createCookieStorage(options)];\n case 7:\n cookieStorage = _y.sent();\n return [4 /*yield*/, cookieStorage.get(getCookieName(options.apiKey))];\n case 8:\n previousCookies = _y.sent();\n queryParams = getQueryParams();\n deviceId = (_d = (_c = (_b = options.deviceId) !== null && _b !== void 0 ? _b : queryParams.deviceId) !== null && _c !== void 0 ? _c : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deviceId) !== null && _d !== void 0 ? _d : legacyCookies.deviceId;\n sessionId = (_f = (_e = options.sessionId) !== null && _e !== void 0 ? _e : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.sessionId) !== null && _f !== void 0 ? _f : legacyCookies.sessionId;\n optOut = (_h = (_g = options.optOut) !== null && _g !== void 0 ? _g : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.optOut) !== null && _h !== void 0 ? _h : legacyCookies.optOut;\n lastEventId = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventId;\n lastEventTime = (_j = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.lastEventTime) !== null && _j !== void 0 ? _j : legacyCookies.lastEventTime;\n userId = (_l = (_k = options.userId) !== null && _k !== void 0 ? _k : previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.userId) !== null && _l !== void 0 ? _l : legacyCookies.userId;\n this.previousSessionDeviceId = (_m = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.deviceId) !== null && _m !== void 0 ? _m : legacyCookies.deviceId;\n this.previousSessionUserId = (_o = previousCookies === null || previousCookies === void 0 ? void 0 : previousCookies.userId) !== null && _o !== void 0 ? _o : legacyCookies.userId;\n return [4 /*yield*/, useBrowserConfig(options.apiKey, __assign(__assign({}, options), {\n deviceId: deviceId,\n sessionId: sessionId,\n optOut: optOut,\n lastEventId: lastEventId,\n lastEventTime: lastEventTime,\n userId: userId,\n cookieStorage: cookieStorage\n }))];\n case 9:\n browserOptions = _y.sent();\n return [4 /*yield*/, _super.prototype._init.call(this, browserOptions)];\n case 10:\n _y.sent();\n isNewSession = !this.config.lastEventTime;\n if (!this.config.sessionId || this.config.lastEventTime && Date.now() - this.config.lastEventTime > this.config.sessionTimeout) {\n // Either\n // 1) No previous session; or\n // 2) Previous session expired\n this.setSessionId(Date.now());\n isNewSession = true;\n }\n connector = getAnalyticsConnector();\n connector.identityStore.setIdentity({\n userId: this.config.userId,\n deviceId: this.config.deviceId\n });\n // Step 4: Install plugins\n // Do not track any events before this\n return [4 /*yield*/, this.add(new Destination()).promise];\n case 11:\n // Step 4: Install plugins\n // Do not track any events before this\n _y.sent();\n return [4 /*yield*/, this.add(new Context()).promise];\n case 12:\n _y.sent();\n return [4 /*yield*/, this.add(sessionHandlerPlugin()).promise];\n case 13:\n _y.sent();\n return [4 /*yield*/, this.add(new IdentityEventSender()).promise];\n case 14:\n _y.sent();\n if (!isFileDownloadTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 16];\n return [4 /*yield*/, this.add(fileDownloadTracking()).promise];\n case 15:\n _y.sent();\n _y.label = 16;\n case 16:\n if (!isFormInteractionTrackingEnabled(this.config.defaultTracking)) return [3 /*break*/, 18];\n return [4 /*yield*/, this.add(formInteractionTracking()).promise];\n case 17:\n _y.sent();\n _y.label = 18;\n case 18:\n if (!!((_p = this.config.attribution) === null || _p === void 0 ? void 0 : _p.disabled)) return [3 /*break*/, 20];\n webAttribution = webAttributionPlugin({\n excludeReferrers: (_r = this.config.attribution) === null || _r === void 0 ? void 0 : _r.excludeReferrers,\n initialEmptyValue: (_s = this.config.attribution) === null || _s === void 0 ? void 0 : _s.initialEmptyValue,\n resetSessionOnNewCampaign: (_t = this.config.attribution) === null || _t === void 0 ? void 0 : _t.resetSessionOnNewCampaign\n });\n // For Amplitude-internal functionality\n // if pluginEnabledOverride === undefined then use plugin default logic\n // if pluginEnabledOverride === true then track attribution\n // if pluginEnabledOverride === false then do not track attribution\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n webAttribution.__pluginEnabledOverride = isNewSession || ((_u = this.config.attribution) === null || _u === void 0 ? void 0 : _u.trackNewCampaigns) ? undefined : false;\n return [4 /*yield*/, this.add(webAttribution).promise];\n case 19:\n _y.sent();\n _y.label = 20;\n case 20:\n pageViewTrackingOptions = getPageViewTrackingConfig(this.config);\n pageViewTrackingOptions.eventType = pageViewTrackingOptions.eventType || DEFAULT_PAGE_VIEW_EVENT;\n return [4 /*yield*/, this.add(pageViewTrackingPlugin(pageViewTrackingOptions)).promise];\n case 21:\n _y.sent();\n return [4 /*yield*/, this.add(defaultPageViewEventEnrichment()).promise];\n case 22:\n _y.sent();\n this.initializing = false;\n // Step 6: Run queued dispatch functions\n return [4 /*yield*/, this.runQueuedFunctions('dispatchQ')];\n case 23:\n // Step 6: Run queued dispatch functions\n _y.sent();\n // Step 7: Add the event receiver after running remaining queued functions.\n connector.eventBridge.setEventReceiver(function (event) {\n void _this.track(event.eventType, event.eventProperties);\n });\n return [2 /*return*/];\n }\n });\n });\n };\n\n AmplitudeBrowser.prototype.getUserId = function () {\n var _a;\n return (_a = this.config) === null || _a === void 0 ? void 0 : _a.userId;\n };\n AmplitudeBrowser.prototype.setUserId = function (userId) {\n if (!this.config) {\n this.q.push(this.setUserId.bind(this, userId));\n return;\n }\n if (userId !== this.config.userId || userId === undefined) {\n this.config.userId = userId;\n this.setSessionId(Date.now());\n setConnectorUserId(userId);\n }\n };\n AmplitudeBrowser.prototype.getDeviceId = function () {\n var _a;\n return (_a = this.config) === null || _a === void 0 ? void 0 : _a.deviceId;\n };\n AmplitudeBrowser.prototype.setDeviceId = function (deviceId) {\n if (!this.config) {\n this.q.push(this.setDeviceId.bind(this, deviceId));\n return;\n }\n this.config.deviceId = deviceId;\n setConnectorDeviceId(deviceId);\n };\n AmplitudeBrowser.prototype.reset = function () {\n this.setDeviceId(UUID());\n this.setUserId(undefined);\n };\n AmplitudeBrowser.prototype.getSessionId = function () {\n var _a;\n return (_a = this.config) === null || _a === void 0 ? void 0 : _a.sessionId;\n };\n AmplitudeBrowser.prototype.setSessionId = function (sessionId) {\n if (!this.config) {\n this.q.push(this.setSessionId.bind(this, sessionId));\n return;\n }\n var previousSessionId = this.getSessionId();\n var previousLastEventTime = this.config.lastEventTime;\n this.config.sessionId = sessionId;\n this.config.lastEventTime = undefined;\n if (isSessionTrackingEnabled(this.config.defaultTracking)) {\n if (previousSessionId && previousLastEventTime) {\n var eventOptions = {\n session_id: previousSessionId,\n time: previousLastEventTime + 1\n };\n eventOptions.device_id = this.previousSessionDeviceId;\n eventOptions.user_id = this.previousSessionUserId;\n this.track(DEFAULT_SESSION_END_EVENT, undefined, eventOptions);\n }\n this.track(DEFAULT_SESSION_START_EVENT, undefined, {\n session_id: sessionId,\n time: sessionId - 1\n });\n this.previousSessionDeviceId = this.config.deviceId;\n this.previousSessionUserId = this.config.userId;\n }\n };\n AmplitudeBrowser.prototype.setTransport = function (transport) {\n if (!this.config) {\n this.q.push(this.setTransport.bind(this, transport));\n return;\n }\n this.config.transportProvider = createTransport(transport);\n };\n AmplitudeBrowser.prototype.identify = function (identify, eventOptions) {\n if (isInstanceProxy(identify)) {\n var queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n if (eventOptions === null || eventOptions === void 0 ? void 0 : eventOptions.user_id) {\n this.setUserId(eventOptions.user_id);\n }\n if (eventOptions === null || eventOptions === void 0 ? void 0 : eventOptions.device_id) {\n this.setDeviceId(eventOptions.device_id);\n }\n return _super.prototype.identify.call(this, identify, eventOptions);\n };\n AmplitudeBrowser.prototype.groupIdentify = function (groupType, groupName, identify, eventOptions) {\n if (isInstanceProxy(identify)) {\n var queue = identify._q;\n identify._q = [];\n identify = convertProxyObjectToRealObject(new Identify(), queue);\n }\n return _super.prototype.groupIdentify.call(this, groupType, groupName, identify, eventOptions);\n };\n AmplitudeBrowser.prototype.revenue = function (revenue, eventOptions) {\n if (isInstanceProxy(revenue)) {\n var queue = revenue._q;\n revenue._q = [];\n revenue = convertProxyObjectToRealObject(new Revenue(), queue);\n }\n return _super.prototype.revenue.call(this, revenue, eventOptions);\n };\n return AmplitudeBrowser;\n}(AmplitudeCore);\nexport { AmplitudeBrowser };","import { __awaiter, __generator } from \"tslib\";\nimport { PluginType } from '@amplitude/analytics-types';\nimport { DEFAULT_SESSION_END_EVENT, DEFAULT_SESSION_START_EVENT } from '../constants';\nexport var sessionHandlerPlugin = function () {\n // browserConfig is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var browserConfig;\n // amplitude is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n var amplitude;\n var name = '@amplitude/plugin-session-handler';\n var type = PluginType.BEFORE;\n var setup = function (config, client) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n browserConfig = config;\n amplitude = client;\n return [2 /*return*/];\n });\n });\n };\n\n var execute = function (event) {\n return __awaiter(void 0, void 0, void 0, function () {\n var now, lastEventTime, timeSinceLastEvent;\n return __generator(this, function (_a) {\n now = Date.now();\n if (event.event_type === DEFAULT_SESSION_START_EVENT || event.event_type === DEFAULT_SESSION_END_EVENT) {\n browserConfig.lastEventTime = now;\n return [2 /*return*/, event];\n }\n lastEventTime = browserConfig.lastEventTime || now;\n timeSinceLastEvent = now - lastEventTime;\n if (timeSinceLastEvent > browserConfig.sessionTimeout) {\n // assigns new session\n amplitude.setSessionId(now);\n event.session_id = amplitude.getSessionId();\n event.time = now;\n } // else use existing session\n // updates last event time to extend time-based session\n browserConfig.lastEventTime = now;\n return [2 /*return*/, event];\n });\n });\n };\n return {\n name: name,\n type: type,\n setup: setup,\n execute: execute\n };\n};","export var isFileDownloadTrackingEnabled = function (defaultTracking) {\n if (typeof defaultTracking === 'boolean') {\n return defaultTracking;\n }\n if (defaultTracking === null || defaultTracking === void 0 ? void 0 : defaultTracking.fileDownloads) {\n return true;\n }\n return false;\n};\nexport var isFormInteractionTrackingEnabled = function (defaultTracking) {\n if (typeof defaultTracking === 'boolean') {\n return defaultTracking;\n }\n if (defaultTracking === null || defaultTracking === void 0 ? void 0 : defaultTracking.formInteractions) {\n return true;\n }\n return false;\n};\nexport var isPageViewTrackingEnabled = function (defaultTracking) {\n if (typeof defaultTracking === 'boolean') {\n return defaultTracking;\n }\n if ((defaultTracking === null || defaultTracking === void 0 ? void 0 : defaultTracking.pageViews) === true || (defaultTracking === null || defaultTracking === void 0 ? void 0 : defaultTracking.pageViews) && typeof defaultTracking.pageViews === 'object') {\n return true;\n }\n return false;\n};\nexport var isSessionTrackingEnabled = function (defaultTracking) {\n if (typeof defaultTracking === 'boolean') {\n return defaultTracking;\n }\n if (defaultTracking === null || defaultTracking === void 0 ? void 0 : defaultTracking.sessions) {\n return true;\n }\n return false;\n};\n/**\n * Returns page view tracking config\n *\n * if config.attribution.trackPageViews and config.defaultTracking.pageViews are both TRUE\n * then always track page views\n *\n * if config.attribution.trackPageViews is TRUE and config.defaultTracking.pageViews is FALSE\n * then only track page views on attribution\n *\n * if config.attribution.trackPageViews is FALSE and config.defaultTracking.pageViews is TRUE\n * then always track page views\n *\n * if config.attribution.trackPageViews and config.defaultTracking.pageViews are both FALSE\n * then never track page views\n */\nexport var getPageViewTrackingConfig = function (config) {\n var _a;\n var trackOn = ((_a = config.attribution) === null || _a === void 0 ? void 0 : _a.trackPageViews) ? 'attribution' : function () {\n return false;\n };\n var trackHistoryChanges = undefined;\n var eventType = 'Page View';\n var isDefaultPageViewTrackingEnabled = isPageViewTrackingEnabled(config.defaultTracking);\n if (isDefaultPageViewTrackingEnabled) {\n trackOn = undefined;\n eventType = undefined;\n if (config.defaultTracking && typeof config.defaultTracking === 'object' && config.defaultTracking.pageViews && typeof config.defaultTracking.pageViews === 'object') {\n if ('trackOn' in config.defaultTracking.pageViews) {\n trackOn = config.defaultTracking.pageViews.trackOn;\n }\n if ('trackHistoryChanges' in config.defaultTracking.pageViews) {\n trackHistoryChanges = config.defaultTracking.pageViews.trackHistoryChanges;\n }\n if ('eventType' in config.defaultTracking.pageViews && config.defaultTracking.pageViews.eventType) {\n eventType = config.defaultTracking.pageViews.eventType;\n }\n }\n }\n return {\n trackOn: trackOn,\n trackHistoryChanges: trackHistoryChanges,\n eventType: eventType\n };\n};","import { __awaiter, __generator } from \"tslib\";\nimport { PluginType } from '@amplitude/analytics-types';\nimport { DEFAULT_FILE_DOWNLOAD_EVENT, FILE_EXTENSION, FILE_NAME, LINK_ID, LINK_TEXT, LINK_URL } from '../constants';\nexport var fileDownloadTracking = function () {\n var name = '@amplitude/plugin-file-download-tracking-browser';\n var type = PluginType.ENRICHMENT;\n var setup = function (config, amplitude) {\n return __awaiter(void 0, void 0, void 0, function () {\n var addFileDownloadListener, ext, links, observer;\n return __generator(this, function (_a) {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn('File download tracking requires a later version of @amplitude/analytics-browser. File download events are not tracked.');\n return [2 /*return*/];\n }\n\n addFileDownloadListener = function (a) {\n var url;\n try {\n // eslint-disable-next-line no-restricted-globals\n url = new URL(a.href, window.location.href);\n } catch (_a) {\n /* istanbul ignore next */\n return;\n }\n var result = ext.exec(url.href);\n var fileExtension = result === null || result === void 0 ? void 0 : result[1];\n if (fileExtension) {\n a.addEventListener('click', function () {\n var _a;\n if (fileExtension) {\n amplitude.track(DEFAULT_FILE_DOWNLOAD_EVENT, (_a = {}, _a[FILE_EXTENSION] = fileExtension, _a[FILE_NAME] = url.pathname, _a[LINK_ID] = a.id, _a[LINK_TEXT] = a.text, _a[LINK_URL] = a.href, _a));\n }\n });\n }\n };\n ext = /\\.(pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma)$/;\n links = Array.from(document.getElementsByTagName('a'));\n links.forEach(addFileDownloadListener);\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n mutation.addedNodes.forEach(function (node) {\n if (node.nodeName === 'A') {\n addFileDownloadListener(node);\n }\n if ('querySelectorAll' in node && typeof node.querySelectorAll === 'function') {\n Array.from(node.querySelectorAll('a')).map(addFileDownloadListener);\n }\n });\n });\n });\n observer.observe(document.body, {\n subtree: true,\n childList: true\n });\n }\n return [2 /*return*/];\n });\n });\n };\n\n var execute = function (event) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, event];\n });\n });\n };\n return {\n name: name,\n type: type,\n setup: setup,\n execute: execute\n };\n};","import { __awaiter, __generator } from \"tslib\";\nimport { PluginType } from '@amplitude/analytics-types';\nimport { DEFAULT_FORM_START_EVENT, DEFAULT_FORM_SUBMIT_EVENT, FORM_ID, FORM_NAME, FORM_DESTINATION } from '../constants';\nexport var formInteractionTracking = function () {\n var name = '@amplitude/plugin-form-interaction-tracking-browser';\n var type = PluginType.ENRICHMENT;\n var setup = function (config, amplitude) {\n return __awaiter(void 0, void 0, void 0, function () {\n var addFormInteractionListener, forms, observer;\n return __generator(this, function (_a) {\n /* istanbul ignore if */\n if (!amplitude) {\n // TODO: Add required minimum version of @amplitude/analytics-browser\n config.loggerProvider.warn('Form interaction tracking requires a later version of @amplitude/analytics-browser. Form interaction events are not tracked.');\n return [2 /*return*/];\n }\n\n addFormInteractionListener = function (form) {\n var hasFormChanged = false;\n form.addEventListener('change', function () {\n var _a;\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, (_a = {}, _a[FORM_ID] = form.id, _a[FORM_NAME] = form.name, _a[FORM_DESTINATION] = form.action, _a));\n }\n hasFormChanged = true;\n }, {});\n form.addEventListener('submit', function () {\n var _a, _b;\n if (!hasFormChanged) {\n amplitude.track(DEFAULT_FORM_START_EVENT, (_a = {}, _a[FORM_ID] = form.id, _a[FORM_NAME] = form.name, _a[FORM_DESTINATION] = form.action, _a));\n }\n amplitude.track(DEFAULT_FORM_SUBMIT_EVENT, (_b = {}, _b[FORM_ID] = form.id, _b[FORM_NAME] = form.name, _b[FORM_DESTINATION] = form.action, _b));\n hasFormChanged = false;\n });\n };\n forms = Array.from(document.getElementsByTagName('form'));\n forms.forEach(addFormInteractionListener);\n // Adds listener to anchor tags added after initial load\n /* istanbul ignore else */\n if (typeof MutationObserver !== 'undefined') {\n observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n mutation.addedNodes.forEach(function (node) {\n if (node.nodeName === 'FORM') {\n addFormInteractionListener(node);\n }\n if ('querySelectorAll' in node && typeof node.querySelectorAll === 'function') {\n Array.from(node.querySelectorAll('form')).map(addFormInteractionListener);\n }\n });\n });\n });\n observer.observe(document.body, {\n subtree: true,\n childList: true\n });\n }\n return [2 /*return*/];\n });\n });\n };\n\n var execute = function (event) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, event];\n });\n });\n };\n return {\n name: name,\n type: type,\n setup: setup,\n execute: execute\n };\n};","import { debugWrapper, getClientLogConfig, getClientStates } from '@amplitude/analytics-core';\nimport { AmplitudeBrowser } from './browser-client';\nexport var createInstance = function () {\n var client = new AmplitudeBrowser();\n return {\n init: debugWrapper(client.init.bind(client), 'init', getClientLogConfig(client), getClientStates(client, ['config'])),\n add: debugWrapper(client.add.bind(client), 'add', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.plugins'])),\n remove: debugWrapper(client.remove.bind(client), 'remove', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.plugins'])),\n track: debugWrapper(client.track.bind(client), 'track', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n logEvent: debugWrapper(client.logEvent.bind(client), 'logEvent', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n identify: debugWrapper(client.identify.bind(client), 'identify', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n groupIdentify: debugWrapper(client.groupIdentify.bind(client), 'groupIdentify', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n setGroup: debugWrapper(client.setGroup.bind(client), 'setGroup', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n revenue: debugWrapper(client.revenue.bind(client), 'revenue', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n flush: debugWrapper(client.flush.bind(client), 'flush', getClientLogConfig(client), getClientStates(client, ['config.apiKey', 'timeline.queue.length'])),\n getUserId: debugWrapper(client.getUserId.bind(client), 'getUserId', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId'])),\n setUserId: debugWrapper(client.setUserId.bind(client), 'setUserId', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId'])),\n getDeviceId: debugWrapper(client.getDeviceId.bind(client), 'getDeviceId', getClientLogConfig(client), getClientStates(client, ['config', 'config.deviceId'])),\n setDeviceId: debugWrapper(client.setDeviceId.bind(client), 'setDeviceId', getClientLogConfig(client), getClientStates(client, ['config', 'config.deviceId'])),\n reset: debugWrapper(client.reset.bind(client), 'reset', getClientLogConfig(client), getClientStates(client, ['config', 'config.userId', 'config.deviceId'])),\n getSessionId: debugWrapper(client.getSessionId.bind(client), 'getSessionId', getClientLogConfig(client), getClientStates(client, ['config'])),\n setSessionId: debugWrapper(client.setSessionId.bind(client), 'setSessionId', getClientLogConfig(client), getClientStates(client, ['config'])),\n setOptOut: debugWrapper(client.setOptOut.bind(client), 'setOptOut', getClientLogConfig(client), getClientStates(client, ['config'])),\n setTransport: debugWrapper(client.setTransport.bind(client), 'setTransport', getClientLogConfig(client), getClientStates(client, ['config']))\n };\n};\nexport default createInstance();","export var returnWrapper = function (awaitable) {\n return {\n promise: awaitable || Promise.resolve()\n };\n};","export var PluginType;\n(function (PluginType) {\n PluginType[\"BEFORE\"] = \"before\";\n PluginType[\"ENRICHMENT\"] = \"enrichment\";\n PluginType[\"DESTINATION\"] = \"destination\";\n})(PluginType || (PluginType = {}));","export var VERSION = '0.5.4';","import { __assign, __awaiter, __generator, __rest } from \"tslib\";\nimport { createInstance as createBaseInstance } from '@amplitude/analytics-browser';\nimport { returnWrapper } from '@amplitude/analytics-core';\nimport { webAttributionPlugin } from '@amplitude/plugin-web-attribution-browser';\nimport { context } from './plugins/context';\nexport var createInstance = function () {\n var client = createBaseInstance();\n var _init = function (options) {\n return __awaiter(void 0, void 0, void 0, function () {\n var attribution, pageViewTracking, apiKey, userId, restOfOptions, browserOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n attribution = options.attribution, pageViewTracking = options.pageViewTracking, apiKey = options.apiKey, userId = options.userId, restOfOptions = __rest(options, [\"attribution\", \"pageViewTracking\", \"apiKey\", \"userId\"]);\n browserOptions = restOfOptions;\n if (!!(attribution === null || attribution === void 0 ? void 0 : attribution.disabled)) return [3 /*break*/, 2];\n // Install web attribution plugin\n return [4 /*yield*/, client.add(webAttributionPlugin(client, attribution)).promise];\n case 1:\n // Install web attribution plugin\n _a.sent();\n _a.label = 2;\n case 2:\n // Transform config to disable web attribution plugin in browser SDK\n // Browser SDK has a slightly different implementation of web attribution\n browserOptions.attribution = {\n disabled: true\n };\n return [4 /*yield*/, client.add(context()).promise];\n case 3:\n _a.sent();\n delete browserOptions.defaultTracking;\n if (pageViewTracking === true) {\n browserOptions.defaultTracking = {\n pageViews: {\n eventType: 'Page View'\n }\n };\n } else if (typeof pageViewTracking === 'object' && pageViewTracking) {\n browserOptions.defaultTracking = {\n pageViews: {\n trackOn: pageViewTracking.trackOn,\n trackHistoryChanges: pageViewTracking.trackHistoryChanges,\n eventType: pageViewTracking.eventType || 'Page View'\n }\n };\n }\n return [4 /*yield*/, client.init(options.apiKey, options.userId, browserOptions).promise];\n case 4:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n\n return __assign(__assign({}, client), {\n init: function (apiKey, userId, options) {\n if (options === void 0) {\n options = {};\n }\n return returnWrapper(_init(__assign(__assign({}, options), {\n userId: userId,\n apiKey: apiKey\n })));\n }\n });\n};\nexport default createInstance();","import { __assign, __awaiter, __generator } from \"tslib\";\nimport { PluginType } from '@amplitude/analytics-types';\nimport { VERSION } from '../version';\nexport var context = function () {\n var library = \"amplitude-ma-ts/\".concat(VERSION);\n return {\n name: 'context',\n type: PluginType.ENRICHMENT,\n setup: function () {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, undefined];\n });\n });\n },\n execute: function (context) {\n return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, __assign(__assign({}, context), {\n library: library\n })];\n });\n });\n }\n };\n};","export var IdentifyOperation;\n(function (IdentifyOperation) {\n // Base Operations to set values\n IdentifyOperation[\"SET\"] = \"$set\";\n IdentifyOperation[\"SET_ONCE\"] = \"$setOnce\";\n // Operations around modifying existing values\n IdentifyOperation[\"ADD\"] = \"$add\";\n IdentifyOperation[\"APPEND\"] = \"$append\";\n IdentifyOperation[\"PREPEND\"] = \"$prepend\";\n IdentifyOperation[\"REMOVE\"] = \"$remove\";\n // Operations around appending values *if* they aren't present\n IdentifyOperation[\"PREINSERT\"] = \"$preInsert\";\n IdentifyOperation[\"POSTINSERT\"] = \"$postInsert\";\n // Operations around removing properties/values\n IdentifyOperation[\"UNSET\"] = \"$unset\";\n IdentifyOperation[\"CLEAR_ALL\"] = \"$clearAll\";\n})(IdentifyOperation || (IdentifyOperation = {}));\nexport var RevenueProperty;\n(function (RevenueProperty) {\n RevenueProperty[\"REVENUE_PRODUCT_ID\"] = \"$productId\";\n RevenueProperty[\"REVENUE_QUANTITY\"] = \"$quantity\";\n RevenueProperty[\"REVENUE_PRICE\"] = \"$price\";\n RevenueProperty[\"REVENUE_TYPE\"] = \"$revenueType\";\n RevenueProperty[\"REVENUE\"] = \"$revenue\";\n})(RevenueProperty || (RevenueProperty = {}));\n/**\n * Strings that have special meaning when used as an event's type\n * and have different specifications.\n */\nexport var SpecialEventType;\n(function (SpecialEventType) {\n SpecialEventType[\"IDENTIFY\"] = \"$identify\";\n SpecialEventType[\"GROUP_IDENTIFY\"] = \"$groupidentify\";\n SpecialEventType[\"REVENUE\"] = \"revenue_amount\";\n})(SpecialEventType || (SpecialEventType = {}));","import { __values } from \"tslib\";\nvar MAX_PROPERTY_KEYS = 1000;\nexport var isValidObject = function (properties) {\n if (Object.keys(properties).length > MAX_PROPERTY_KEYS) {\n return false;\n }\n for (var key in properties) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n var value = properties[key];\n if (!isValidProperties(key, value)) return false;\n }\n return true;\n};\nexport var isValidProperties = function (property, value) {\n var e_1, _a;\n if (typeof property !== 'string') return false;\n if (Array.isArray(value)) {\n var isValid = true;\n try {\n for (var value_1 = __values(value), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) {\n var valueElement = value_1_1.value;\n if (Array.isArray(valueElement)) {\n return false;\n } else if (typeof valueElement === 'object') {\n isValid = isValid && isValidObject(valueElement);\n } else if (!['number', 'string'].includes(typeof valueElement)) {\n return false;\n }\n if (!isValid) {\n return false;\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (value_1_1 && !value_1_1.done && (_a = value_1.return)) _a.call(value_1);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n } else if (value === null || value === undefined) {\n return false;\n } else if (typeof value === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n return isValidObject(value);\n } else if (!['number', 'string', 'boolean'].includes(typeof value)) {\n return false;\n }\n return true;\n};","export var LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"None\"] = 0] = \"None\";\n LogLevel[LogLevel[\"Error\"] = 1] = \"Error\";\n LogLevel[LogLevel[\"Warn\"] = 2] = \"Warn\";\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\n LogLevel[LogLevel[\"Debug\"] = 4] = \"Debug\";\n})(LogLevel || (LogLevel = {}));","export var ServerZone;\n(function (ServerZone) {\n ServerZone[\"US\"] = \"US\";\n ServerZone[\"EU\"] = \"EU\";\n})(ServerZone || (ServerZone = {}));","/** The status of an event. */\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent successfully. */\n Status[\"Success\"] = \"success\";\n /** A user or device in the payload is currently rate limited and should try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The sent payload was too large to be processed. */\n Status[\"PayloadTooLarge\"] = \"payload_too_large\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error ocurred during submission. */\n Status[\"Failed\"] = \"failed\";\n /** a server or client side error occuring when a request takes too long and is cancelled */\n Status[\"Timeout\"] = \"Timeout\";\n /** NodeJS runtime environment error.. E.g. disconnected from network */\n Status[\"SystemError\"] = \"SystemError\";\n})(Status || (Status = {}));","export var TransportType;\n(function (TransportType) {\n TransportType[\"XHR\"] = \"xhr\";\n TransportType[\"SendBeacon\"] = \"beacon\";\n TransportType[\"Fetch\"] = \"fetch\";\n})(TransportType || (TransportType = {}));","import { __assign } from \"tslib\";\nimport { RevenueProperty } from '@amplitude/analytics-types';\nimport { isValidObject } from './utils/valid-properties';\nvar Revenue = /** @class */function () {\n function Revenue() {\n this.productId = '';\n this.quantity = 1;\n this.price = 0.0;\n }\n Revenue.prototype.setProductId = function (productId) {\n this.productId = productId;\n return this;\n };\n Revenue.prototype.setQuantity = function (quantity) {\n if (quantity > 0) {\n this.quantity = quantity;\n }\n return this;\n };\n Revenue.prototype.setPrice = function (price) {\n this.price = price;\n return this;\n };\n Revenue.prototype.setRevenueType = function (revenueType) {\n this.revenueType = revenueType;\n return this;\n };\n Revenue.prototype.setRevenue = function (revenue) {\n this.revenue = revenue;\n return this;\n };\n Revenue.prototype.setEventProperties = function (properties) {\n if (isValidObject(properties)) {\n this.properties = properties;\n }\n return this;\n };\n Revenue.prototype.getEventProperties = function () {\n var eventProperties = this.properties ? __assign({}, this.properties) : {};\n eventProperties[RevenueProperty.REVENUE_PRODUCT_ID] = this.productId;\n eventProperties[RevenueProperty.REVENUE_QUANTITY] = this.quantity;\n eventProperties[RevenueProperty.REVENUE_PRICE] = this.price;\n eventProperties[RevenueProperty.REVENUE_TYPE] = this.revenueType;\n eventProperties[RevenueProperty.REVENUE] = this.revenue;\n return eventProperties;\n };\n return Revenue;\n}();\nexport { Revenue };","import { __assign } from \"tslib\";\nimport { IdentifyOperation } from '@amplitude/analytics-types';\nimport { UNSET_VALUE } from './constants';\nimport { isValidProperties } from './utils/valid-properties';\nvar Identify = /** @class */function () {\n function Identify() {\n this._propertySet = new Set();\n this._properties = {};\n }\n Identify.prototype.getUserProperties = function () {\n return __assign({}, this._properties);\n };\n Identify.prototype.set = function (property, value) {\n this._safeSet(IdentifyOperation.SET, property, value);\n return this;\n };\n Identify.prototype.setOnce = function (property, value) {\n this._safeSet(IdentifyOperation.SET_ONCE, property, value);\n return this;\n };\n Identify.prototype.append = function (property, value) {\n this._safeSet(IdentifyOperation.APPEND, property, value);\n return this;\n };\n Identify.prototype.prepend = function (property, value) {\n this._safeSet(IdentifyOperation.PREPEND, property, value);\n return this;\n };\n Identify.prototype.postInsert = function (property, value) {\n this._safeSet(IdentifyOperation.POSTINSERT, property, value);\n return this;\n };\n Identify.prototype.preInsert = function (property, value) {\n this._safeSet(IdentifyOperation.PREINSERT, property, value);\n return this;\n };\n Identify.prototype.remove = function (property, value) {\n this._safeSet(IdentifyOperation.REMOVE, property, value);\n return this;\n };\n Identify.prototype.add = function (property, value) {\n this._safeSet(IdentifyOperation.ADD, property, value);\n return this;\n };\n Identify.prototype.unset = function (property) {\n this._safeSet(IdentifyOperation.UNSET, property, UNSET_VALUE);\n return this;\n };\n Identify.prototype.clearAll = function () {\n // When clear all happens, all properties are unset. Reset the entire object.\n this._properties = {};\n this._properties[IdentifyOperation.CLEAR_ALL] = UNSET_VALUE;\n return this;\n };\n // Returns whether or not this set actually worked.\n Identify.prototype._safeSet = function (operation, property, value) {\n if (this._validate(operation, property, value)) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n var userPropertyMap = this._properties[operation];\n if (userPropertyMap === undefined) {\n userPropertyMap = {};\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this._properties[operation] = userPropertyMap;\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n userPropertyMap[property] = value;\n this._propertySet.add(property);\n return true;\n }\n return false;\n };\n Identify.prototype._validate = function (operation, property, value) {\n if (this._properties[IdentifyOperation.CLEAR_ALL] !== undefined) {\n // clear all already set. Skipping operation;\n return false;\n }\n if (this._propertySet.has(property)) {\n // Property already used. Skipping operation\n return false;\n }\n if (operation === IdentifyOperation.ADD) {\n return typeof value === 'number';\n }\n if (operation !== IdentifyOperation.UNSET && operation !== IdentifyOperation.REMOVE) {\n return isValidProperties(property, value);\n }\n return true;\n };\n return Identify;\n}();\nexport { Identify };","export var UNSET_VALUE = '-';\nexport var AMPLITUDE_PREFIX = 'AMP';\nexport var STORAGE_PREFIX = \"\".concat(AMPLITUDE_PREFIX, \"_unsent\");\nexport var AMPLITUDE_SERVER_URL = 'https://api2.amplitude.com/2/httpapi';\nexport var EU_AMPLITUDE_SERVER_URL = 'https://api.eu.amplitude.com/2/httpapi';\nexport var AMPLITUDE_BATCH_SERVER_URL = 'https://api2.amplitude.com/batch';\nexport var EU_AMPLITUDE_BATCH_SERVER_URL = 'https://api.eu.amplitude.com/batch';","/* eslint-disable @typescript-eslint/unbound-method */\nimport client from './browser-client';\nexport { createInstance } from './browser-client';\nexport var add = client.add,\n flush = client.flush,\n getDeviceId = client.getDeviceId,\n getSessionId = client.getSessionId,\n getUserId = client.getUserId,\n groupIdentify = client.groupIdentify,\n identify = client.identify,\n init = client.init,\n logEvent = client.logEvent,\n remove = client.remove,\n reset = client.reset,\n revenue = client.revenue,\n setDeviceId = client.setDeviceId,\n setGroup = client.setGroup,\n setOptOut = client.setOptOut,\n setSessionId = client.setSessionId,\n setTransport = client.setTransport,\n setUserId = client.setUserId,\n track = client.track;\nexport { runQueuedFunctions } from '@amplitude/analytics-browser';\nexport { Revenue, Identify } from '@amplitude/analytics-core';\nimport * as Types_1 from '@amplitude/analytics-types';\nexport { Types_1 as Types };","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v0.7.33\n Copyright © 2012-2021 Faisal Salman \n MIT License */ /*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment.\n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n \"use strict\";\n\n //////////////\n // Constants\n /////////////\n var LIBVERSION = \"0.7.33\",\n EMPTY = \"\",\n UNKNOWN = \"?\",\n FUNC_TYPE = \"function\",\n UNDEF_TYPE = \"undefined\",\n OBJ_TYPE = \"object\",\n STR_TYPE = \"string\",\n MAJOR = \"major\",\n MODEL = \"model\",\n NAME = \"name\",\n TYPE = \"type\",\n VENDOR = \"vendor\",\n VERSION = \"version\",\n ARCHITECTURE = \"architecture\",\n CONSOLE = \"console\",\n MOBILE = \"mobile\",\n TABLET = \"tablet\",\n SMARTTV = \"smarttv\",\n WEARABLE = \"wearable\",\n EMBEDDED = \"embedded\",\n UA_MAX_LENGTH = 350;\n var AMAZON = \"Amazon\",\n APPLE = \"Apple\",\n ASUS = \"ASUS\",\n BLACKBERRY = \"BlackBerry\",\n BROWSER = \"Browser\",\n CHROME = \"Chrome\",\n EDGE = \"Edge\",\n FIREFOX = \"Firefox\",\n GOOGLE = \"Google\",\n HUAWEI = \"Huawei\",\n LG = \"LG\",\n MICROSOFT = \"Microsoft\",\n MOTOROLA = \"Motorola\",\n OPERA = \"Opera\",\n SAMSUNG = \"Samsung\",\n SHARP = \"Sharp\",\n SONY = \"Sony\",\n XIAOMI = \"Xiaomi\",\n ZEBRA = \"Zebra\",\n FACEBOOK = \"Facebook\";\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i = 0; i < arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n lowerize = function (str) {\n return str.toLowerCase();\n },\n majorize = function (version) {\n return typeof version === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split(\".\")[0] : undefined;\n },\n trim = function (str, len) {\n if (typeof str === STR_TYPE) {\n str = str.replace(/^\\s\\s*/, EMPTY);\n return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n var i = 0,\n j,\n k,\n p,\n q,\n matches,\n match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n var regex = arrays[i],\n // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n matches = regex[j++].exec(ua);\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n strMapper = function (str, map) {\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return i === UNKNOWN ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return i === UNKNOWN ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n \"1.0\": \"/8\",\n 1.2: \"/1\",\n 1.3: \"/3\",\n \"2.0\": \"/412\",\n \"2.0.2\": \"/416\",\n \"2.0.3\": \"/417\",\n \"2.0.4\": \"/419\",\n \"?\": \"/\"\n },\n windowsVersionMap = {\n ME: \"4.90\",\n \"NT 3.11\": \"NT3.51\",\n \"NT 4.0\": \"NT4.0\",\n 2000: \"NT 5.0\",\n XP: [\"NT 5.1\", \"NT 5.2\"],\n Vista: \"NT 6.0\",\n 7: \"NT 6.1\",\n 8: \"NT 6.2\",\n 8.1: \"NT 6.3\",\n 10: [\"NT 6.4\", \"NT 10.0\"],\n RT: \"ARM\"\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n browser: [[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, \"Chrome\"]], [/edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, \"Edge\"]], [\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i,\n // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,\n // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [/opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA + \" Mini\"]], [/\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n // Mixed\n /(kindle)\\/([\\w\\.]+)/i,\n // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,\n // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,\n // Avant/IEMobile/SlimBrowser\n /(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,\n // Baidu Browser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i,\n // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, \"UC\" + BROWSER]], [/microm.+\\bqbcore\\/([\\w\\.]+)/i,\n // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i], [VERSION, [NAME, \"WeChat(Win) Desktop\"]], [/micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, \"WeChat\"]], [/konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, \"Konqueror\"]], [/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, \"IE\"]], [/yabrowser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, \"Yandex\"]], [/(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, \"$1 Secure \" + BROWSER], VERSION], [/\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX + \" Focus\"]], [/\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA + \" Touch\"]], [/coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, \"Coc Coc\"]], [/dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, \"Dolphin\"]], [/coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA + \" Coast\"]], [/miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, \"MIUI \" + BROWSER]], [/fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [/\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, \"360 \" + BROWSER]], [/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i], [[NAME, /(.+)/, \"$1 \" + BROWSER], VERSION], [\n // Oculus/Samsung/Sailfish/Huawei Browser\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, \" \"], VERSION], [/(electron)\\/([\\w\\.]+) safari/i,\n // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,\n // Tesla\n /m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/Baidu App/2345 Browser\n ], [NAME, VERSION], [/(metasr)[\\/ ]?([\\w\\.]+)/i,\n // SouGouBrowser\n /(lbbrowser)/i,\n // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [/safari (line)\\/([\\w\\.]+)/i,\n // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i,\n // Line App for Android\n /(chromium|instagram)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram\n ], [NAME, VERSION], [/\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, \"GSA\"]], [/headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME + \" Headless\"]], [/ wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME + \" WebView\"], VERSION], [/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, \"Android \" + BROWSER]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, \"Mobile Safari\"]], [/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [/(webkit|khtml)\\/([\\w\\.]+)/i], [NAME, VERSION], [\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, \"Netscape\"], VERSION], [/mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX + \" Reality\"]], [/ekiohf.+(flow)\\/([\\w\\.]+)/i,\n // Flow\n /(swiftfox)/i,\n // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i,\n // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,\n // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, VERSION], [/(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]],\n cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, \"amd64\"]], [/(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [/((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, \"ia32\"]], [/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, \"arm64\"]], [/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, \"armhf\"]], [\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i], [[ARCHITECTURE, \"arm\"]], [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [/(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, \"sparc\"]], [/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]],\n device: [[\n //////////////////////////\n // MOBILES & TABLETS\n // Ordered by popularity\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [/\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i, /samsung[- ]([-\\w]+)/i, /sec-(sgh\\w+)/i], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n // Apple\n /((ipod|iphone)\\d+,\\d+)/i // iPod/iPhone model\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [/(ipad\\d+,\\d+)/i // iPad model\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [/\\((ip(?:hone|od)[\\w ]*);/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [/\\((ipad);[-\\w\\),; ]+apple/i,\n // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i, /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [/(macintosh);/i], [MODEL, [VENDOR, APPLE]], [\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [/(?:huawei|honor)([-\\w ]+)[;\\)]/i, /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n // Xiaomi\n /\\b(poco[\\w ]+)(?: bui|\\))/i,\n // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i,\n // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,\n // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,\n // Xiaomi Redmi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, \" \"], [VENDOR, XIAOMI], [TYPE, MOBILE]], [/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ], [[MODEL, /_/g, \" \"], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n // OPPO\n /; (\\w+) bui.+ oppo/i, /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i], [MODEL, [VENDOR, \"OPPO\"], [TYPE, MOBILE]], [\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i, /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i], [MODEL, [VENDOR, \"Vivo\"], [TYPE, MOBILE]], [\n // Realme\n /\\b(rmx[12]\\d{3})(?: bui|;|\\))/i], [MODEL, [VENDOR, \"Realme\"], [TYPE, MOBILE]], [\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i, /\\bmot(?:orola)?[- ](\\w*)/i, /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i, /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i, /\\blg-?([\\d\\w]+) bui/i], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n // Lenovo\n /(ideatab[-\\w ]+)/i, /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i], [MODEL, [VENDOR, \"Lenovo\"], [TYPE, TABLET]], [\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i, /nokia[-_ ]?([-\\w\\.]*)/i], [[MODEL, /_/g, \" \"], [VENDOR, \"Nokia\"], [TYPE, MOBILE]], [\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [/sony tablet [ps]/i, /\\b(?:sony)?sgp\\w+(?: bui|\\))/i], [[MODEL, \"Xperia Tablet\"], [VENDOR, SONY], [TYPE, TABLET]], [\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i, /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i], [MODEL, [VENDOR, \"OnePlus\"], [TYPE, MOBILE]], [\n // Amazon\n /(alexa)webm/i, /(kf[a-z]{2}wi)( bui|\\))/i,\n // Kindle Fire without Silk\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, \"Fire Phone $1\"], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [/\\b((?:bb[a-f]|st[hv])100-\\d)/i, /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, \"HTC\"], [TYPE, TABLET]], [/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,\n // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i, /(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, \" \"], [TYPE, MOBILE]], [\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i], [MODEL, [VENDOR, \"Acer\"], [TYPE, TABLET]], [\n // Meizu\n /droid.+; (m[1-5] note) bui/i, /\\bmz-([-\\w]{2,})/i], [MODEL, [VENDOR, \"Meizu\"], [TYPE, MOBILE]], [\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i,\n // HP iPAQ\n /(asus)-?(\\w+)/i,\n // Asus\n /(microsoft); (lumia[\\w ]+)/i,\n // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i,\n // Lenovo\n /(jolla)/i,\n // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [/(archos) (gamepad2?)/i,\n // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i,\n // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i,\n // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i,\n // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i,\n // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,\n // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i,\n // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i,\n // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [/(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, \"Fairphone\"], [TYPE, MOBILE]], [/(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, \"AT&T\"], [TYPE, MOBILE]], [/\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, \"Siemens\"], [TYPE, MOBILE]], [/\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, \"RCA\"], [TYPE, TABLET]], [/\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, \"Dell\"], [TYPE, TABLET]], [/\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, \"Verizon\"], [TYPE, TABLET]], [/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, \"Barnes & Noble\"], [TYPE, TABLET]], [/\\b(tm\\d{3}\\w+) b/i], [MODEL, [VENDOR, \"NuVision\"], [TYPE, TABLET]], [/\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, \"ZTE\"], [TYPE, TABLET]], [/\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, \"ZTE\"], [TYPE, MOBILE]], [/\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, \"Swiss\"], [TYPE, MOBILE]], [/\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, \"Swiss\"], [TYPE, TABLET]], [/\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, \"Zeki\"], [TYPE, TABLET]], [/\\b([yr]\\d{2}) b/i, /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, \"Dragon Touch\"], MODEL, [TYPE, TABLET]], [/\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, \"Insignia\"], [TYPE, TABLET]], [/\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, \"NextBook\"], [TYPE, TABLET]], [/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, \"Voice\"], MODEL, [TYPE, MOBILE]], [/\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, \"LvTel\"], MODEL, [TYPE, MOBILE]], [/\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, \"Essential\"], [TYPE, MOBILE]], [/\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, \"Envizen\"], [TYPE, TABLET]], [/\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, \"MachSpeed\"], [TYPE, TABLET]], [/\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, \"Rotor\"], [TYPE, TABLET]], [/(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, \"Nvidia\"], [TYPE, TABLET]], [/(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [/(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, \" \"], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i,\n // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [/droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, \"Nvidia\"], [TYPE, CONSOLE]], [/(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [/hbbtv.+maple;(\\d+)/i], [[MODEL, /^/, \"SmartTV\"], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [/(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE + \" TV\"], [TYPE, SMARTTV]], [/crkey/i // Google Chromecast\n ], [[MODEL, CHROME + \"cast\"], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [/droid.+aft(\\w)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [/\\(dtv[\\);].+(aquos)/i, /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]], [/(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [/(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,\n // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [/droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [/droid.+; (wt63?0{2,3})\\)/i], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [/(quest( 2)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [/(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, \"Generic\"]]],\n engine: [[/windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE + \"HTML\"]], [/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, \"Blink\"]], [/(presto)\\/([\\w\\.]+)/i,\n // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,\n // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i,\n // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,\n // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i // iCab\n ], [NAME, VERSION], [/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]],\n os: [[\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [/(windows) nt 6\\.2; (arm)/i,\n // Windows RT\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,\n // Windows Phone\n /(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i], [NAME, [VERSION, strMapper, windowsVersionMap]], [/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i], [[NAME, \"Windows\"], [VERSION, strMapper, windowsVersionMap]], [\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,\n // iOS\n /cfnetwork\\/.+darwin/i], [[VERSION, /_/g, \".\"], [NAME, \"iOS\"]], [/(mac os x) ?([\\w\\. ]*)/i, /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, \"Mac OS\"], [VERSION, /_/g, \".\"]], [\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [\n // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i, /(blackberry)\\w*\\/([\\w\\.]*)/i,\n // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i,\n // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [/\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, \"Symbian\"]], [/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX + \" OS\"]], [/web0s;.+rt(tv)/i, /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, \"webOS\"]], [\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME + \"cast\"]], [/(cros) [\\w]+ ([\\w\\.]+\\w)/i // Chromium OS\n ], [[NAME, \"Chromium OS\"], VERSION], [\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i,\n // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i,\n // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,\n // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i,\n // Mint\n /(mageia|vectorlinux)[; ]/i,\n // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i,\n // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i,\n // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,\n // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [/(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, \"Solaris\"], VERSION], [/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,\n // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,\n // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,\n // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n var _ua = ua || (typeof window !== UNDEF_TYPE && window.navigator && window.navigator.userAgent ? window.navigator.userAgent : EMPTY);\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser.major = majorize(_browser.version);\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n return _os;\n };\n this.getResult = function () {\n return {\n ua: this.getUA(),\n browser: this.getBrowser(),\n engine: this.getEngine(),\n os: this.getOS(),\n device: this.getDevice(),\n cpu: this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof exports !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof define === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n})(typeof window === \"object\" ? window : this);","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nvar currentContext = null;\n// This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\nvar MISSING_VALUE = {};\nvar idCounter = 1;\n// Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\nvar makeSlotClass = function () {\n return (/** @class */function () {\n function Slot() {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n this.id = [\"slot\", idCounter++, Date.now(), Math.random().toString(36).slice(2)].join(\":\");\n }\n Slot.prototype.hasValue = function () {\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context_1.slots) {\n var value = context_1.slots[this.id];\n if (value === MISSING_VALUE) break;\n if (context_1 !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext.slots[this.id] = value;\n }\n return true;\n }\n }\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n return false;\n };\n Slot.prototype.getValue = function () {\n if (this.hasValue()) {\n return currentContext.slots[this.id];\n }\n };\n Slot.prototype.withValue = function (value, callback,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n var _a;\n var slots = (_a = {\n __proto__: null\n }, _a[this.id] = value, _a);\n var parent = currentContext;\n currentContext = {\n parent: parent,\n slots: slots\n };\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n } finally {\n currentContext = parent;\n }\n };\n // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n Slot.bind = function (callback) {\n var context = currentContext;\n return function () {\n var saved = currentContext;\n try {\n currentContext = context;\n return callback.apply(this, arguments);\n } finally {\n currentContext = saved;\n }\n };\n };\n // Immediately run a callback function without any captured context.\n Slot.noContext = function (callback,\n // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n if (currentContext) {\n var saved = currentContext;\n try {\n currentContext = null;\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg, args);\n }\n };\n return Slot;\n }()\n );\n};\n// We store a single global implementation of the Slot class as a permanent\n// non-enumerable symbol property of the Array constructor. This obfuscation\n// does nothing to prevent access to the Slot class, but at least it ensures\n// the implementation (i.e. currentContext) cannot be tampered with, and all\n// copies of the @wry/context package (hopefully just one) will share the\n// same Slot implementation. Since the first copy of the @wry/context package\n// to be imported wins, this technique imposes a very high cost for any\n// future breaking changes to the Slot class.\nvar globalKey = \"@wry/context:Slot\";\nvar host = Array;\nvar Slot = host[globalKey] || function () {\n var Slot = makeSlotClass();\n try {\n Object.defineProperty(host, globalKey, {\n value: host[globalKey] = Slot,\n enumerable: false,\n writable: false,\n configurable: false\n });\n } finally {\n return Slot;\n }\n}();\nvar bind = Slot.bind,\n noContext = Slot.noContext;\nfunction setTimeoutWithContext(callback, delay) {\n return setTimeout(bind(callback), delay);\n}\n// Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\nfunction asyncFromGen(genFn) {\n return function () {\n var gen = genFn.apply(this, arguments);\n var boundNext = bind(gen.next);\n var boundThrow = bind(gen.throw);\n return new Promise(function (resolve, reject) {\n function invoke(method, argument) {\n try {\n var result = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n var next = result.done ? resolve : invokeNext;\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n var invokeNext = function (value) {\n return invoke(boundNext, value);\n };\n var invokeThrow = function (error) {\n return invoke(boundThrow, error);\n };\n invokeNext();\n });\n };\n}\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n}\n// If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\nvar wrappedFibers = [];\nfunction wrapYieldingFiberMethods(Fiber) {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n var wrap = function (obj, method) {\n var fn = obj[method];\n obj[method] = function () {\n return noContext(fn, arguments, this);\n };\n };\n // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n return Fiber;\n}\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };","!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define([], t) : \"object\" == typeof exports ? exports.bowser = t() : e.bowser = t();\n}(this, function () {\n return function (e) {\n var t = {};\n function r(n) {\n if (t[n]) return t[n].exports;\n var i = t[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(i.exports, i, i.exports, r), i.l = !0, i.exports;\n }\n return r.m = e, r.c = t, r.d = function (e, t, n) {\n r.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, r.t = function (e, t) {\n if (1 & t && (e = r(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var i in e) r.d(n, i, function (t) {\n return e[t];\n }.bind(null, i));\n return n;\n }, r.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return r.d(t, \"a\", t), t;\n }, r.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, r.p = \"\", r(r.s = 90);\n }({\n 17: function (e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n = r(18),\n i = function () {\n function e() {}\n return e.getFirstMatch = function (e, t) {\n var r = t.match(e);\n return r && r.length > 0 && r[1] || \"\";\n }, e.getSecondMatch = function (e, t) {\n var r = t.match(e);\n return r && r.length > 1 && r[2] || \"\";\n }, e.matchAndReturnConst = function (e, t, r) {\n if (e.test(t)) return r;\n }, e.getWindowsVersionName = function (e) {\n switch (e) {\n case \"NT\":\n return \"NT\";\n case \"XP\":\n return \"XP\";\n case \"NT 5.0\":\n return \"2000\";\n case \"NT 5.1\":\n return \"XP\";\n case \"NT 5.2\":\n return \"2003\";\n case \"NT 6.0\":\n return \"Vista\";\n case \"NT 6.1\":\n return \"7\";\n case \"NT 6.2\":\n return \"8\";\n case \"NT 6.3\":\n return \"8.1\";\n case \"NT 10.0\":\n return \"10\";\n default:\n return;\n }\n }, e.getMacOSVersionName = function (e) {\n var t = e.split(\".\").splice(0, 2).map(function (e) {\n return parseInt(e, 10) || 0;\n });\n if (t.push(0), 10 === t[0]) switch (t[1]) {\n case 5:\n return \"Leopard\";\n case 6:\n return \"Snow Leopard\";\n case 7:\n return \"Lion\";\n case 8:\n return \"Mountain Lion\";\n case 9:\n return \"Mavericks\";\n case 10:\n return \"Yosemite\";\n case 11:\n return \"El Capitan\";\n case 12:\n return \"Sierra\";\n case 13:\n return \"High Sierra\";\n case 14:\n return \"Mojave\";\n case 15:\n return \"Catalina\";\n default:\n return;\n }\n }, e.getAndroidVersionName = function (e) {\n var t = e.split(\".\").splice(0, 2).map(function (e) {\n return parseInt(e, 10) || 0;\n });\n if (t.push(0), !(1 === t[0] && t[1] < 5)) return 1 === t[0] && t[1] < 6 ? \"Cupcake\" : 1 === t[0] && t[1] >= 6 ? \"Donut\" : 2 === t[0] && t[1] < 2 ? \"Eclair\" : 2 === t[0] && 2 === t[1] ? \"Froyo\" : 2 === t[0] && t[1] > 2 ? \"Gingerbread\" : 3 === t[0] ? \"Honeycomb\" : 4 === t[0] && t[1] < 1 ? \"Ice Cream Sandwich\" : 4 === t[0] && t[1] < 4 ? \"Jelly Bean\" : 4 === t[0] && t[1] >= 4 ? \"KitKat\" : 5 === t[0] ? \"Lollipop\" : 6 === t[0] ? \"Marshmallow\" : 7 === t[0] ? \"Nougat\" : 8 === t[0] ? \"Oreo\" : 9 === t[0] ? \"Pie\" : void 0;\n }, e.getVersionPrecision = function (e) {\n return e.split(\".\").length;\n }, e.compareVersions = function (t, r, n) {\n void 0 === n && (n = !1);\n var i = e.getVersionPrecision(t),\n s = e.getVersionPrecision(r),\n a = Math.max(i, s),\n o = 0,\n u = e.map([t, r], function (t) {\n var r = a - e.getVersionPrecision(t),\n n = t + new Array(r + 1).join(\".0\");\n return e.map(n.split(\".\"), function (e) {\n return new Array(20 - e.length).join(\"0\") + e;\n }).reverse();\n });\n for (n && (o = a - Math.min(i, s)), a -= 1; a >= o;) {\n if (u[0][a] > u[1][a]) return 1;\n if (u[0][a] === u[1][a]) {\n if (a === o) return 0;\n a -= 1;\n } else if (u[0][a] < u[1][a]) return -1;\n }\n }, e.map = function (e, t) {\n var r,\n n = [];\n if (Array.prototype.map) return Array.prototype.map.call(e, t);\n for (r = 0; r < e.length; r += 1) n.push(t(e[r]));\n return n;\n }, e.find = function (e, t) {\n var r, n;\n if (Array.prototype.find) return Array.prototype.find.call(e, t);\n for (r = 0, n = e.length; r < n; r += 1) {\n var i = e[r];\n if (t(i, r)) return i;\n }\n }, e.assign = function (e) {\n for (var t, r, n = e, i = arguments.length, s = new Array(i > 1 ? i - 1 : 0), a = 1; a < i; a++) s[a - 1] = arguments[a];\n if (Object.assign) return Object.assign.apply(Object, [e].concat(s));\n var o = function () {\n var e = s[t];\n \"object\" == typeof e && null !== e && Object.keys(e).forEach(function (t) {\n n[t] = e[t];\n });\n };\n for (t = 0, r = s.length; t < r; t += 1) o();\n return e;\n }, e.getBrowserAlias = function (e) {\n return n.BROWSER_ALIASES_MAP[e];\n }, e.getBrowserTypeByAlias = function (e) {\n return n.BROWSER_MAP[e] || \"\";\n }, e;\n }();\n t.default = i, e.exports = t.default;\n },\n 18: function (e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.ENGINE_MAP = t.OS_MAP = t.PLATFORMS_MAP = t.BROWSER_MAP = t.BROWSER_ALIASES_MAP = void 0;\n t.BROWSER_ALIASES_MAP = {\n \"Amazon Silk\": \"amazon_silk\",\n \"Android Browser\": \"android\",\n Bada: \"bada\",\n BlackBerry: \"blackberry\",\n Chrome: \"chrome\",\n Chromium: \"chromium\",\n Electron: \"electron\",\n Epiphany: \"epiphany\",\n Firefox: \"firefox\",\n Focus: \"focus\",\n Generic: \"generic\",\n \"Google Search\": \"google_search\",\n Googlebot: \"googlebot\",\n \"Internet Explorer\": \"ie\",\n \"K-Meleon\": \"k_meleon\",\n Maxthon: \"maxthon\",\n \"Microsoft Edge\": \"edge\",\n \"MZ Browser\": \"mz\",\n \"NAVER Whale Browser\": \"naver\",\n Opera: \"opera\",\n \"Opera Coast\": \"opera_coast\",\n PhantomJS: \"phantomjs\",\n Puffin: \"puffin\",\n QupZilla: \"qupzilla\",\n QQ: \"qq\",\n QQLite: \"qqlite\",\n Safari: \"safari\",\n Sailfish: \"sailfish\",\n \"Samsung Internet for Android\": \"samsung_internet\",\n SeaMonkey: \"seamonkey\",\n Sleipnir: \"sleipnir\",\n Swing: \"swing\",\n Tizen: \"tizen\",\n \"UC Browser\": \"uc\",\n Vivaldi: \"vivaldi\",\n \"WebOS Browser\": \"webos\",\n WeChat: \"wechat\",\n \"Yandex Browser\": \"yandex\",\n Roku: \"roku\"\n };\n t.BROWSER_MAP = {\n amazon_silk: \"Amazon Silk\",\n android: \"Android Browser\",\n bada: \"Bada\",\n blackberry: \"BlackBerry\",\n chrome: \"Chrome\",\n chromium: \"Chromium\",\n electron: \"Electron\",\n epiphany: \"Epiphany\",\n firefox: \"Firefox\",\n focus: \"Focus\",\n generic: \"Generic\",\n googlebot: \"Googlebot\",\n google_search: \"Google Search\",\n ie: \"Internet Explorer\",\n k_meleon: \"K-Meleon\",\n maxthon: \"Maxthon\",\n edge: \"Microsoft Edge\",\n mz: \"MZ Browser\",\n naver: \"NAVER Whale Browser\",\n opera: \"Opera\",\n opera_coast: \"Opera Coast\",\n phantomjs: \"PhantomJS\",\n puffin: \"Puffin\",\n qupzilla: \"QupZilla\",\n qq: \"QQ Browser\",\n qqlite: \"QQ Browser Lite\",\n safari: \"Safari\",\n sailfish: \"Sailfish\",\n samsung_internet: \"Samsung Internet for Android\",\n seamonkey: \"SeaMonkey\",\n sleipnir: \"Sleipnir\",\n swing: \"Swing\",\n tizen: \"Tizen\",\n uc: \"UC Browser\",\n vivaldi: \"Vivaldi\",\n webos: \"WebOS Browser\",\n wechat: \"WeChat\",\n yandex: \"Yandex Browser\"\n };\n t.PLATFORMS_MAP = {\n tablet: \"tablet\",\n mobile: \"mobile\",\n desktop: \"desktop\",\n tv: \"tv\"\n };\n t.OS_MAP = {\n WindowsPhone: \"Windows Phone\",\n Windows: \"Windows\",\n MacOS: \"macOS\",\n iOS: \"iOS\",\n Android: \"Android\",\n WebOS: \"WebOS\",\n BlackBerry: \"BlackBerry\",\n Bada: \"Bada\",\n Tizen: \"Tizen\",\n Linux: \"Linux\",\n ChromeOS: \"Chrome OS\",\n PlayStation4: \"PlayStation 4\",\n Roku: \"Roku\"\n };\n t.ENGINE_MAP = {\n EdgeHTML: \"EdgeHTML\",\n Blink: \"Blink\",\n Trident: \"Trident\",\n Presto: \"Presto\",\n Gecko: \"Gecko\",\n WebKit: \"WebKit\"\n };\n },\n 90: function (e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(91)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n function a(e, t) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);\n }\n }\n var o = function () {\n function e() {}\n var t, r, n;\n return e.getParser = function (e, t) {\n if (void 0 === t && (t = !1), \"string\" != typeof e) throw new Error(\"UserAgent should be a string\");\n return new i.default(e, t);\n }, e.parse = function (e) {\n return new i.default(e).getResult();\n }, t = e, n = [{\n key: \"BROWSER_MAP\",\n get: function () {\n return s.BROWSER_MAP;\n }\n }, {\n key: \"ENGINE_MAP\",\n get: function () {\n return s.ENGINE_MAP;\n }\n }, {\n key: \"OS_MAP\",\n get: function () {\n return s.OS_MAP;\n }\n }, {\n key: \"PLATFORMS_MAP\",\n get: function () {\n return s.PLATFORMS_MAP;\n }\n }], (r = null) && a(t.prototype, r), n && a(t, n), e;\n }();\n t.default = o, e.exports = t.default;\n },\n 91: function (e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n = u(r(92)),\n i = u(r(93)),\n s = u(r(94)),\n a = u(r(95)),\n o = u(r(17));\n function u(e) {\n return e && e.__esModule ? e : {\n default: e\n };\n }\n var d = function () {\n function e(e, t) {\n if (void 0 === t && (t = !1), null == e || \"\" === e) throw new Error(\"UserAgent parameter can't be empty\");\n this._ua = e, this.parsedResult = {}, !0 !== t && this.parse();\n }\n var t = e.prototype;\n return t.getUA = function () {\n return this._ua;\n }, t.test = function (e) {\n return e.test(this._ua);\n }, t.parseBrowser = function () {\n var e = this;\n this.parsedResult.browser = {};\n var t = o.default.find(n.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.browser = t.describe(this.getUA())), this.parsedResult.browser;\n }, t.getBrowser = function () {\n return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser();\n }, t.getBrowserName = function (e) {\n return e ? String(this.getBrowser().name).toLowerCase() || \"\" : this.getBrowser().name || \"\";\n }, t.getBrowserVersion = function () {\n return this.getBrowser().version;\n }, t.getOS = function () {\n return this.parsedResult.os ? this.parsedResult.os : this.parseOS();\n }, t.parseOS = function () {\n var e = this;\n this.parsedResult.os = {};\n var t = o.default.find(i.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.os = t.describe(this.getUA())), this.parsedResult.os;\n }, t.getOSName = function (e) {\n var t = this.getOS().name;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }, t.getOSVersion = function () {\n return this.getOS().version;\n }, t.getPlatform = function () {\n return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform();\n }, t.getPlatformType = function (e) {\n void 0 === e && (e = !1);\n var t = this.getPlatform().type;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }, t.parsePlatform = function () {\n var e = this;\n this.parsedResult.platform = {};\n var t = o.default.find(s.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.platform = t.describe(this.getUA())), this.parsedResult.platform;\n }, t.getEngine = function () {\n return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine();\n }, t.getEngineName = function (e) {\n return e ? String(this.getEngine().name).toLowerCase() || \"\" : this.getEngine().name || \"\";\n }, t.parseEngine = function () {\n var e = this;\n this.parsedResult.engine = {};\n var t = o.default.find(a.default, function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.engine = t.describe(this.getUA())), this.parsedResult.engine;\n }, t.parse = function () {\n return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this;\n }, t.getResult = function () {\n return o.default.assign({}, this.parsedResult);\n }, t.satisfies = function (e) {\n var t = this,\n r = {},\n n = 0,\n i = {},\n s = 0;\n if (Object.keys(e).forEach(function (t) {\n var a = e[t];\n \"string\" == typeof a ? (i[t] = a, s += 1) : \"object\" == typeof a && (r[t] = a, n += 1);\n }), n > 0) {\n var a = Object.keys(r),\n u = o.default.find(a, function (e) {\n return t.isOS(e);\n });\n if (u) {\n var d = this.satisfies(r[u]);\n if (void 0 !== d) return d;\n }\n var c = o.default.find(a, function (e) {\n return t.isPlatform(e);\n });\n if (c) {\n var f = this.satisfies(r[c]);\n if (void 0 !== f) return f;\n }\n }\n if (s > 0) {\n var l = Object.keys(i),\n h = o.default.find(l, function (e) {\n return t.isBrowser(e, !0);\n });\n if (void 0 !== h) return this.compareVersion(i[h]);\n }\n }, t.isBrowser = function (e, t) {\n void 0 === t && (t = !1);\n var r = this.getBrowserName().toLowerCase(),\n n = e.toLowerCase(),\n i = o.default.getBrowserTypeByAlias(n);\n return t && i && (n = i.toLowerCase()), n === r;\n }, t.compareVersion = function (e) {\n var t = [0],\n r = e,\n n = !1,\n i = this.getBrowserVersion();\n if (\"string\" == typeof i) return \">\" === e[0] || \"<\" === e[0] ? (r = e.substr(1), \"=\" === e[1] ? (n = !0, r = e.substr(2)) : t = [], \">\" === e[0] ? t.push(1) : t.push(-1)) : \"=\" === e[0] ? r = e.substr(1) : \"~\" === e[0] && (n = !0, r = e.substr(1)), t.indexOf(o.default.compareVersions(i, r, n)) > -1;\n }, t.isOS = function (e) {\n return this.getOSName(!0) === String(e).toLowerCase();\n }, t.isPlatform = function (e) {\n return this.getPlatformType(!0) === String(e).toLowerCase();\n }, t.isEngine = function (e) {\n return this.getEngineName(!0) === String(e).toLowerCase();\n }, t.is = function (e, t) {\n return void 0 === t && (t = !1), this.isBrowser(e, t) || this.isOS(e) || this.isPlatform(e);\n }, t.some = function (e) {\n var t = this;\n return void 0 === e && (e = []), e.some(function (e) {\n return t.is(e);\n });\n }, e;\n }();\n t.default = d, e.exports = t.default;\n },\n 92: function (e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n };\n var s = /version\\/(\\d+(\\.?_?\\d+)+)/i,\n a = [{\n test: [/googlebot/i],\n describe: function (e) {\n var t = {\n name: \"Googlebot\"\n },\n r = i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opera/i],\n describe: function (e) {\n var t = {\n name: \"Opera\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opr\\/|opios/i],\n describe: function (e) {\n var t = {\n name: \"Opera\"\n },\n r = i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/SamsungBrowser/i],\n describe: function (e) {\n var t = {\n name: \"Samsung Internet for Android\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Whale/i],\n describe: function (e) {\n var t = {\n name: \"NAVER Whale Browser\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/MZBrowser/i],\n describe: function (e) {\n var t = {\n name: \"MZ Browser\"\n },\n r = i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/focus/i],\n describe: function (e) {\n var t = {\n name: \"Focus\"\n },\n r = i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/swing/i],\n describe: function (e) {\n var t = {\n name: \"Swing\"\n },\n r = i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/coast/i],\n describe: function (e) {\n var t = {\n name: \"Opera Coast\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opt\\/\\d+(?:.?_?\\d+)+/i],\n describe: function (e) {\n var t = {\n name: \"Opera Touch\"\n },\n r = i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/yabrowser/i],\n describe: function (e) {\n var t = {\n name: \"Yandex Browser\"\n },\n r = i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/ucbrowser/i],\n describe: function (e) {\n var t = {\n name: \"UC Browser\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Maxthon|mxios/i],\n describe: function (e) {\n var t = {\n name: \"Maxthon\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/epiphany/i],\n describe: function (e) {\n var t = {\n name: \"Epiphany\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/puffin/i],\n describe: function (e) {\n var t = {\n name: \"Puffin\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sleipnir/i],\n describe: function (e) {\n var t = {\n name: \"Sleipnir\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/k-meleon/i],\n describe: function (e) {\n var t = {\n name: \"K-Meleon\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/micromessenger/i],\n describe: function (e) {\n var t = {\n name: \"WeChat\"\n },\n r = i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qqbrowser/i],\n describe: function (e) {\n var t = {\n name: /qqbrowserlite/i.test(e) ? \"QQ Browser Lite\" : \"QQ Browser\"\n },\n r = i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/msie|trident/i],\n describe: function (e) {\n var t = {\n name: \"Internet Explorer\"\n },\n r = i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/\\sedg\\//i],\n describe: function (e) {\n var t = {\n name: \"Microsoft Edge\"\n },\n r = i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/edg([ea]|ios)/i],\n describe: function (e) {\n var t = {\n name: \"Microsoft Edge\"\n },\n r = i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/vivaldi/i],\n describe: function (e) {\n var t = {\n name: \"Vivaldi\"\n },\n r = i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/seamonkey/i],\n describe: function (e) {\n var t = {\n name: \"SeaMonkey\"\n },\n r = i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sailfish/i],\n describe: function (e) {\n var t = {\n name: \"Sailfish\"\n },\n r = i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/silk/i],\n describe: function (e) {\n var t = {\n name: \"Amazon Silk\"\n },\n r = i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/phantom/i],\n describe: function (e) {\n var t = {\n name: \"PhantomJS\"\n },\n r = i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/slimerjs/i],\n describe: function (e) {\n var t = {\n name: \"SlimerJS\"\n },\n r = i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe: function (e) {\n var t = {\n name: \"BlackBerry\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe: function (e) {\n var t = {\n name: \"WebOS Browser\"\n },\n r = i.default.getFirstMatch(s, e) || i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/bada/i],\n describe: function (e) {\n var t = {\n name: \"Bada\"\n },\n r = i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/tizen/i],\n describe: function (e) {\n var t = {\n name: \"Tizen\"\n },\n r = i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qupzilla/i],\n describe: function (e) {\n var t = {\n name: \"QupZilla\"\n },\n r = i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/firefox|iceweasel|fxios/i],\n describe: function (e) {\n var t = {\n name: \"Firefox\"\n },\n r = i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/electron/i],\n describe: function (e) {\n var t = {\n name: \"Electron\"\n },\n r = i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/MiuiBrowser/i],\n describe: function (e) {\n var t = {\n name: \"Miui\"\n },\n r = i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chromium/i],\n describe: function (e) {\n var t = {\n name: \"Chromium\"\n },\n r = i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chrome|crios|crmo/i],\n describe: function (e) {\n var t = {\n name: \"Chrome\"\n },\n r = i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/GSA/i],\n describe: function (e) {\n var t = {\n name: \"Google Search\"\n },\n r = i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function (e) {\n var t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe: function (e) {\n var t = {\n name: \"Android Browser\"\n },\n r = i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/playstation 4/i],\n describe: function (e) {\n var t = {\n name: \"PlayStation 4\"\n },\n r = i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/safari|applewebkit/i],\n describe: function (e) {\n var t = {\n name: \"Safari\"\n },\n r = i.default.getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/.*/i],\n describe: function (e) {\n var t = -1 !== e.search(\"\\\\(\") ? /^(.*)\\/(.*)[ \\t]\\((.*)/ : /^(.*)\\/(.*) /;\n return {\n name: i.default.getFirstMatch(t, e),\n version: i.default.getSecondMatch(t, e)\n };\n }\n }];\n t.default = a, e.exports = t.default;\n },\n 93: function (e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n var a = [{\n test: [/Roku\\/DVP/],\n describe: function (e) {\n var t = i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i, e);\n return {\n name: s.OS_MAP.Roku,\n version: t\n };\n }\n }, {\n test: [/windows phone/i],\n describe: function (e) {\n var t = i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.WindowsPhone,\n version: t\n };\n }\n }, {\n test: [/windows /i],\n describe: function (e) {\n var t = i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i, e),\n r = i.default.getWindowsVersionName(t);\n return {\n name: s.OS_MAP.Windows,\n version: t,\n versionName: r\n };\n }\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe: function (e) {\n var t = {\n name: s.OS_MAP.iOS\n },\n r = i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/macintosh/i],\n describe: function (e) {\n var t = i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i, e).replace(/[_\\s]/g, \".\"),\n r = i.default.getMacOSVersionName(t),\n n = {\n name: s.OS_MAP.MacOS,\n version: t\n };\n return r && (n.versionName = r), n;\n }\n }, {\n test: [/(ipod|iphone|ipad)/i],\n describe: function (e) {\n var t = i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i, e).replace(/[_\\s]/g, \".\");\n return {\n name: s.OS_MAP.iOS,\n version: t\n };\n }\n }, {\n test: function (e) {\n var t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe: function (e) {\n var t = i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i, e),\n r = i.default.getAndroidVersionName(t),\n n = {\n name: s.OS_MAP.Android,\n version: t\n };\n return r && (n.versionName = r), n;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe: function (e) {\n var t = i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i, e),\n r = {\n name: s.OS_MAP.WebOS\n };\n return t && t.length && (r.version = t), r;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe: function (e) {\n var t = i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i, e) || i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i, e) || i.default.getFirstMatch(/\\bbb(\\d+)/i, e);\n return {\n name: s.OS_MAP.BlackBerry,\n version: t\n };\n }\n }, {\n test: [/bada/i],\n describe: function (e) {\n var t = i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.Bada,\n version: t\n };\n }\n }, {\n test: [/tizen/i],\n describe: function (e) {\n var t = i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.Tizen,\n version: t\n };\n }\n }, {\n test: [/linux/i],\n describe: function () {\n return {\n name: s.OS_MAP.Linux\n };\n }\n }, {\n test: [/CrOS/],\n describe: function () {\n return {\n name: s.OS_MAP.ChromeOS\n };\n }\n }, {\n test: [/PlayStation 4/],\n describe: function (e) {\n var t = i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.PlayStation4,\n version: t\n };\n }\n }];\n t.default = a, e.exports = t.default;\n },\n 94: function (e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n var a = [{\n test: [/googlebot/i],\n describe: function () {\n return {\n type: \"bot\",\n vendor: \"Google\"\n };\n }\n }, {\n test: [/huawei/i],\n describe: function (e) {\n var t = i.default.getFirstMatch(/(can-l01)/i, e) && \"Nova\",\n r = {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Huawei\"\n };\n return t && (r.model = t), r;\n }\n }, {\n test: [/nexus\\s*(?:7|8|9|10).*/i],\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Nexus\"\n };\n }\n }, {\n test: [/ipad/i],\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n };\n }\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n };\n }\n }, {\n test: [/kftt build/i],\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Amazon\",\n model: \"Kindle Fire HD 7\"\n };\n }\n }, {\n test: [/silk/i],\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Amazon\"\n };\n }\n }, {\n test: [/tablet(?! pc)/i],\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.tablet\n };\n }\n }, {\n test: function (e) {\n var t = e.test(/ipod|iphone/i),\n r = e.test(/like (ipod|iphone)/i);\n return t && !r;\n },\n describe: function (e) {\n var t = i.default.getFirstMatch(/(ipod|iphone)/i, e);\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Apple\",\n model: t\n };\n }\n }, {\n test: [/nexus\\s*[0-6].*/i, /galaxy nexus/i],\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Nexus\"\n };\n }\n }, {\n test: [/[^-]mobi/i],\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function (e) {\n return \"blackberry\" === e.getBrowserName(!0);\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"BlackBerry\"\n };\n }\n }, {\n test: function (e) {\n return \"bada\" === e.getBrowserName(!0);\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function (e) {\n return \"windows phone\" === e.getBrowserName();\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Microsoft\"\n };\n }\n }, {\n test: function (e) {\n var t = Number(String(e.getOSVersion()).split(\".\")[0]);\n return \"android\" === e.getOSName(!0) && t >= 3;\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.tablet\n };\n }\n }, {\n test: function (e) {\n return \"android\" === e.getOSName(!0);\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function (e) {\n return \"macos\" === e.getOSName(!0);\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.desktop,\n vendor: \"Apple\"\n };\n }\n }, {\n test: function (e) {\n return \"windows\" === e.getOSName(!0);\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.desktop\n };\n }\n }, {\n test: function (e) {\n return \"linux\" === e.getOSName(!0);\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.desktop\n };\n }\n }, {\n test: function (e) {\n return \"playstation 4\" === e.getOSName(!0);\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.tv\n };\n }\n }, {\n test: function (e) {\n return \"roku\" === e.getOSName(!0);\n },\n describe: function () {\n return {\n type: s.PLATFORMS_MAP.tv\n };\n }\n }];\n t.default = a, e.exports = t.default;\n },\n 95: function (e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.default = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n default: n\n },\n s = r(18);\n var a = [{\n test: function (e) {\n return \"microsoft edge\" === e.getBrowserName(!0);\n },\n describe: function (e) {\n if (/\\sedg\\//i.test(e)) return {\n name: s.ENGINE_MAP.Blink\n };\n var t = i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return {\n name: s.ENGINE_MAP.EdgeHTML,\n version: t\n };\n }\n }, {\n test: [/trident/i],\n describe: function (e) {\n var t = {\n name: s.ENGINE_MAP.Trident\n },\n r = i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function (e) {\n return e.test(/presto/i);\n },\n describe: function (e) {\n var t = {\n name: s.ENGINE_MAP.Presto\n },\n r = i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function (e) {\n var t = e.test(/gecko/i),\n r = e.test(/like gecko/i);\n return t && !r;\n },\n describe: function (e) {\n var t = {\n name: s.ENGINE_MAP.Gecko\n },\n r = i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(apple)?webkit\\/537\\.36/i],\n describe: function () {\n return {\n name: s.ENGINE_MAP.Blink\n };\n }\n }, {\n test: [/(apple)?webkit/i],\n describe: function (e) {\n var t = {\n name: s.ENGINE_MAP.WebKit\n },\n r = i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }];\n t.default = a, e.exports = t.default;\n }\n });\n});","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n var nativeCodeString = '[native code]';\n function classNames() {\n var classes = [];\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = typeof arg;\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n classes.push(arg.toString());\n continue;\n }\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n return classes.join(' ');\n }\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","function r(e) {\n var t,\n f,\n n = \"\";\n if (\"string\" == typeof e || \"number\" == typeof e) n += e;else if (\"object\" == typeof e) if (Array.isArray(e)) for (t = 0; t < e.length; t++) e[t] && (f = r(e[t])) && (n && (n += \" \"), n += f);else for (t in e) e[t] && (n && (n += \" \"), n += t);\n return n;\n}\nexport function clsx() {\n for (var e, t, f = 0, n = \"\"; f < arguments.length;) (e = arguments[f++]) && (t = r(e)) && (n && (n += \" \"), n += t);\n return n;\n}\nexport default clsx;","// Public: Create a new SelectorSet.\nexport default function SelectorSet() {\n // Construct new SelectorSet if called as a function.\n if (!(this instanceof SelectorSet)) {\n return new SelectorSet();\n }\n\n // Public: Number of selectors added to the set\n this.size = 0;\n\n // Internal: Incrementing ID counter\n this.uid = 0;\n\n // Internal: Array of String selectors in the set\n this.selectors = [];\n\n // Internal: Map of selector ids to objects\n this.selectorObjects = {};\n\n // Internal: All Object index String names mapping to Index objects.\n this.indexes = Object.create(this.indexes);\n\n // Internal: Used Object index String names mapping to Index objects.\n this.activeIndexes = [];\n}\n\n// Detect prefixed Element#matches function.\nvar docElem = window.document.documentElement;\nvar matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector;\n\n// Public: Check if element matches selector.\n//\n// Maybe overridden with custom Element.matches function.\n//\n// el - An Element\n// selector - String CSS selector\n//\n// Returns true or false.\nSelectorSet.prototype.matchesSelector = function (el, selector) {\n return matches.call(el, selector);\n};\n\n// Public: Find all elements in the context that match the selector.\n//\n// Maybe overridden with custom querySelectorAll function.\n//\n// selectors - String CSS selectors.\n// context - Element context\n//\n// Returns non-live list of Elements.\nSelectorSet.prototype.querySelectorAll = function (selectors, context) {\n return context.querySelectorAll(selectors);\n};\n\n// Public: Array of indexes.\n//\n// name - Unique String name\n// selector - Function that takes a String selector and returns a String key\n// or undefined if it can't be used by the index.\n// element - Function that takes an Element and returns an Array of String\n// keys that point to indexed values.\n//\nSelectorSet.prototype.indexes = [];\n\n// Index by element id\nvar idRe = /^#((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\nSelectorSet.prototype.indexes.push({\n name: 'ID',\n selector: function matchIdSelector(sel) {\n var m;\n if (m = sel.match(idRe)) {\n return m[0].slice(1);\n }\n },\n element: function getElementId(el) {\n if (el.id) {\n return [el.id];\n }\n }\n});\n\n// Index by all of its class names\nvar classRe = /^\\.((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\nSelectorSet.prototype.indexes.push({\n name: 'CLASS',\n selector: function matchClassSelector(sel) {\n var m;\n if (m = sel.match(classRe)) {\n return m[0].slice(1);\n }\n },\n element: function getElementClassNames(el) {\n var className = el.className;\n if (className) {\n if (typeof className === 'string') {\n return className.split(/\\s/);\n } else if (typeof className === 'object' && 'baseVal' in className) {\n // className is a SVGAnimatedString\n // global SVGAnimatedString is not an exposed global in Opera 12\n return className.baseVal.split(/\\s/);\n }\n }\n }\n});\n\n// Index by tag/node name: `DIV`, `FORM`, `A`\nvar tagRe = /^((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\nSelectorSet.prototype.indexes.push({\n name: 'TAG',\n selector: function matchTagSelector(sel) {\n var m;\n if (m = sel.match(tagRe)) {\n return m[0].toUpperCase();\n }\n },\n element: function getElementTagName(el) {\n return [el.nodeName.toUpperCase()];\n }\n});\n\n// Default index just contains a single array of elements.\nSelectorSet.prototype.indexes['default'] = {\n name: 'UNIVERSAL',\n selector: function () {\n return true;\n },\n element: function () {\n return [true];\n }\n};\n\n// Use ES Maps when supported\nvar Map;\nif (typeof window.Map === 'function') {\n Map = window.Map;\n} else {\n Map = function () {\n function Map() {\n this.map = {};\n }\n Map.prototype.get = function (key) {\n return this.map[key + ' '];\n };\n Map.prototype.set = function (key, value) {\n this.map[key + ' '] = value;\n };\n return Map;\n }();\n}\n\n// Regexps adopted from Sizzle\n// https://github.com/jquery/sizzle/blob/1.7/sizzle.js\n//\nvar chunker = /((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|['\"][^'\"]*['\"]|[^\\[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g;\n\n// Internal: Get indexes for selector.\n//\n// selector - String CSS selector\n//\n// Returns Array of {index, key}.\nfunction parseSelectorIndexes(allIndexes, selector) {\n allIndexes = allIndexes.slice(0).concat(allIndexes['default']);\n var allIndexesLen = allIndexes.length,\n i,\n j,\n m,\n dup,\n rest = selector,\n key,\n index,\n indexes = [];\n do {\n chunker.exec('');\n if (m = chunker.exec(rest)) {\n rest = m[3];\n if (m[2] || !rest) {\n for (i = 0; i < allIndexesLen; i++) {\n index = allIndexes[i];\n if (key = index.selector(m[1])) {\n j = indexes.length;\n dup = false;\n while (j--) {\n if (indexes[j].index === index && indexes[j].key === key) {\n dup = true;\n break;\n }\n }\n if (!dup) {\n indexes.push({\n index: index,\n key: key\n });\n }\n break;\n }\n }\n }\n }\n } while (m);\n return indexes;\n}\n\n// Internal: Find first item in Array that is a prototype of `proto`.\n//\n// ary - Array of objects\n// proto - Prototype of expected item in `ary`\n//\n// Returns object from `ary` if found. Otherwise returns undefined.\nfunction findByPrototype(ary, proto) {\n var i, len, item;\n for (i = 0, len = ary.length; i < len; i++) {\n item = ary[i];\n if (proto.isPrototypeOf(item)) {\n return item;\n }\n }\n}\n\n// Public: Log when added selector falls under the default index.\n//\n// This API should not be considered stable. May change between\n// minor versions.\n//\n// obj - {selector, data} Object\n//\n// SelectorSet.prototype.logDefaultIndexUsed = function(obj) {\n// console.warn(obj.selector, \"could not be indexed\");\n// };\n//\n// Returns nothing.\nSelectorSet.prototype.logDefaultIndexUsed = function () {};\n\n// Public: Add selector to set.\n//\n// selector - String CSS selector\n// data - Optional data Object (default: undefined)\n//\n// Returns nothing.\nSelectorSet.prototype.add = function (selector, data) {\n var obj,\n i,\n indexProto,\n key,\n index,\n objs,\n selectorIndexes,\n selectorIndex,\n indexes = this.activeIndexes,\n selectors = this.selectors,\n selectorObjects = this.selectorObjects;\n if (typeof selector !== 'string') {\n return;\n }\n obj = {\n id: this.uid++,\n selector: selector,\n data: data\n };\n selectorObjects[obj.id] = obj;\n selectorIndexes = parseSelectorIndexes(this.indexes, selector);\n for (i = 0; i < selectorIndexes.length; i++) {\n selectorIndex = selectorIndexes[i];\n key = selectorIndex.key;\n indexProto = selectorIndex.index;\n index = findByPrototype(indexes, indexProto);\n if (!index) {\n index = Object.create(indexProto);\n index.map = new Map();\n indexes.push(index);\n }\n if (indexProto === this.indexes['default']) {\n this.logDefaultIndexUsed(obj);\n }\n objs = index.map.get(key);\n if (!objs) {\n objs = [];\n index.map.set(key, objs);\n }\n objs.push(obj);\n }\n this.size++;\n selectors.push(selector);\n};\n\n// Public: Remove selector from set.\n//\n// selector - String CSS selector\n// data - Optional data Object (default: undefined)\n//\n// Returns nothing.\nSelectorSet.prototype.remove = function (selector, data) {\n if (typeof selector !== 'string') {\n return;\n }\n var selectorIndexes,\n selectorIndex,\n i,\n j,\n k,\n selIndex,\n objs,\n obj,\n indexes = this.activeIndexes,\n selectors = this.selectors = [],\n selectorObjects = this.selectorObjects,\n removedIds = {},\n removeAll = arguments.length === 1;\n selectorIndexes = parseSelectorIndexes(this.indexes, selector);\n for (i = 0; i < selectorIndexes.length; i++) {\n selectorIndex = selectorIndexes[i];\n j = indexes.length;\n while (j--) {\n selIndex = indexes[j];\n if (selectorIndex.index.isPrototypeOf(selIndex)) {\n objs = selIndex.map.get(selectorIndex.key);\n if (objs) {\n k = objs.length;\n while (k--) {\n obj = objs[k];\n if (obj.selector === selector && (removeAll || obj.data === data)) {\n objs.splice(k, 1);\n removedIds[obj.id] = true;\n }\n }\n }\n break;\n }\n }\n }\n for (i in removedIds) {\n delete selectorObjects[i];\n this.size--;\n }\n for (i in selectorObjects) {\n selectors.push(selectorObjects[i].selector);\n }\n};\n\n// Sort by id property handler.\n//\n// a - Selector obj.\n// b - Selector obj.\n//\n// Returns Number.\nfunction sortById(a, b) {\n return a.id - b.id;\n}\n\n// Public: Find all matching decendants of the context element.\n//\n// context - An Element\n//\n// Returns Array of {selector, data, elements} matches.\nSelectorSet.prototype.queryAll = function (context) {\n if (!this.selectors.length) {\n return [];\n }\n var matches = {},\n results = [];\n var els = this.querySelectorAll(this.selectors.join(', '), context);\n var i, j, len, len2, el, m, match, obj;\n for (i = 0, len = els.length; i < len; i++) {\n el = els[i];\n m = this.matches(el);\n for (j = 0, len2 = m.length; j < len2; j++) {\n obj = m[j];\n if (!matches[obj.id]) {\n match = {\n id: obj.id,\n selector: obj.selector,\n data: obj.data,\n elements: []\n };\n matches[obj.id] = match;\n results.push(match);\n } else {\n match = matches[obj.id];\n }\n match.elements.push(el);\n }\n }\n return results.sort(sortById);\n};\n\n// Public: Match element against all selectors in set.\n//\n// el - An Element\n//\n// Returns Array of {selector, data} matches.\nSelectorSet.prototype.matches = function (el) {\n if (!el) {\n return [];\n }\n var i, j, k, len, len2, len3, index, keys, objs, obj, id;\n var indexes = this.activeIndexes,\n matchedIds = {},\n matches = [];\n for (i = 0, len = indexes.length; i < len; i++) {\n index = indexes[i];\n keys = index.element(el);\n if (keys) {\n for (j = 0, len2 = keys.length; j < len2; j++) {\n if (objs = index.map.get(keys[j])) {\n for (k = 0, len3 = objs.length; k < len3; k++) {\n obj = objs[k];\n id = obj.id;\n if (!matchedIds[id] && this.matchesSelector(el, obj.selector)) {\n matchedIds[id] = true;\n matches.push(obj);\n }\n }\n }\n }\n }\n }\n return matches.sort(sortById);\n};","import SelectorSet from 'selector-set';\nvar bubbleEvents = {};\nvar captureEvents = {};\nvar propagationStopped = new WeakMap();\nvar immediatePropagationStopped = new WeakMap();\nvar currentTargets = new WeakMap();\nvar currentTargetDesc = Object.getOwnPropertyDescriptor(Event.prototype, 'currentTarget');\nfunction before(subject, verb, fn) {\n var source = subject[verb];\n subject[verb] = function () {\n fn.apply(subject, arguments);\n return source.apply(subject, arguments);\n };\n return subject;\n}\nfunction matches(selectors, target, reverse) {\n var queue = [];\n var node = target;\n do {\n if (node.nodeType !== 1) break;\n var _matches = selectors.matches(node);\n if (_matches.length) {\n var matched = {\n node: node,\n observers: _matches\n };\n if (reverse) {\n queue.unshift(matched);\n } else {\n queue.push(matched);\n }\n }\n } while (node = node.parentElement);\n return queue;\n}\nfunction trackPropagation() {\n propagationStopped.set(this, true);\n}\nfunction trackImmediate() {\n propagationStopped.set(this, true);\n immediatePropagationStopped.set(this, true);\n}\nfunction getCurrentTarget() {\n return currentTargets.get(this) || null;\n}\nfunction defineCurrentTarget(event, getter) {\n if (!currentTargetDesc) return;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n enumerable: true,\n get: getter || currentTargetDesc.get\n });\n}\nfunction canDispatch(event) {\n try {\n event.eventPhase;\n return true;\n } catch (_) {\n return false;\n }\n}\nfunction dispatch(event) {\n if (!canDispatch(event)) return;\n var events = event.eventPhase === 1 ? captureEvents : bubbleEvents;\n var selectors = events[event.type];\n if (!selectors) return;\n var queue = matches(selectors, event.target, event.eventPhase === 1);\n if (!queue.length) return;\n before(event, 'stopPropagation', trackPropagation);\n before(event, 'stopImmediatePropagation', trackImmediate);\n defineCurrentTarget(event, getCurrentTarget);\n for (var i = 0, len1 = queue.length; i < len1; i++) {\n if (propagationStopped.get(event)) break;\n var matched = queue[i];\n currentTargets.set(event, matched.node);\n for (var j = 0, len2 = matched.observers.length; j < len2; j++) {\n if (immediatePropagationStopped.get(event)) break;\n matched.observers[j].data.call(matched.node, event);\n }\n }\n currentTargets[\"delete\"](event);\n defineCurrentTarget(event);\n}\nfunction on(name, selector, fn) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var capture = options.capture ? true : false;\n var events = capture ? captureEvents : bubbleEvents;\n var selectors = events[name];\n if (!selectors) {\n selectors = new SelectorSet();\n events[name] = selectors;\n document.addEventListener(name, dispatch, capture);\n }\n selectors.add(selector, fn);\n}\nfunction off(name, selector, fn) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var capture = options.capture ? true : false;\n var events = capture ? captureEvents : bubbleEvents;\n var selectors = events[name];\n if (!selectors) return;\n selectors.remove(selector, fn);\n if (selectors.size) return;\n delete events[name];\n document.removeEventListener(name, dispatch, capture);\n}\nfunction fire(target, name, detail) {\n return target.dispatchEvent(new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: detail\n }));\n}\nexport { fire, off, on };","/*! @license DOMPurify 2.4.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.3/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.DOMPurify = factory());\n})(this, function () {\n 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return _construct(Func, _toConsumableArray(args));\n };\n }\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringToString = unapply(String.prototype.toString);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n var regExpTest = unapply(RegExp.prototype.test);\n var typeErrorCreate = unconstruct(TypeError);\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n /* Add properties to a lookup table */\n\n function addToSet(set, array, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n /* Shallow clone an object */\n\n function clone(object) {\n var newObject = create(null);\n var property;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property]) === true) {\n newObject[property] = object[property];\n }\n }\n return newObject;\n }\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n return fallbackValue;\n }\n var html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); // SVG\n\n var svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n var mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']); // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n var text = freeze(['#text']);\n var html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n var svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n var mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n var MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n\n var ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n var TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n var DOCTYPE_NAME = seal(/^html$/i);\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n } // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html) {\n return html;\n },\n createScriptURL: function createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n\n DOMPurify.version = '2.4.3';\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n var hooks = {};\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n /* Allowed attribute names */\n\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n\n var FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n\n var FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n\n var ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n\n var ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n\n var SAFE_FOR_TEMPLATES = false;\n /* Decide if document with ... should be returned */\n\n var WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n\n var SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n\n var FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n\n var RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n\n var RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n\n var RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n\n var SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n\n var SANITIZE_NAMED_PROPS = false;\n var SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n\n var KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n\n var IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n\n var USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n\n var ALLOWED_NAMESPACES = null;\n var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n /* Parsing of strict XHTML documents */\n\n var PARSER_MEDIA_TYPE;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc;\n /* Keep a reference to config to pass to hooks */\n\n var CONFIG = null;\n /* Ideally, do not touch anything below this line */\n\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n\n if (!cfg || _typeof(cfg) !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE; // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = 'ALLOWED_NAMESPACES' in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n } // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']); // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n\n var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n\n var ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n } // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n } // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n } // The only way to switch from SVG to MathML is via\n // and HTML integration points\n\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n } // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n } // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n } // For XHTML and XML documents that support custom namespaces\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n } // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n\n return false;\n };\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n node.removeAttribute(name); // We void attribute values for unremovable \"is\"\" attributes\n\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc;\n var leadingWhitespace;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {// Syntax error if dirtyPayload is invalid xml\n }\n }\n var body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n\n var _isNode = function _isNode(object) {\n return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeElements', currentNode, null);\n /* Check if element is clobbered or can clobber */\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Check if tagname contains Unicode */\n\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n\n var tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Mitigate a problem with templates inside select */\n\n if (tagName === 'select' && regExpTest(/