{"version":3,"file":"contentweb/sm-vend-default.78595b0c.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/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(/