{"version":3,"file":"contentweb/mntv-vend-default.e6e1c210.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/equality/lib/equality.esm.js","/app/apps/contentweb/node_modules/apollo-cache/lib/bundle.esm.js","/app/apps/contentweb/node_modules/@wry/context/lib/context.esm.js","/app/apps/contentweb/node_modules/optimism/lib/bundle.esm.js","/app/apps/contentweb/node_modules/apollo-cache-inmemory/lib/bundle.esm.js","/app/apps/contentweb/node_modules/apollo-client/bundle.esm.js","/app/apps/contentweb/node_modules/apollo-link-http-common/lib/bundle.esm.js","/app/apps/contentweb/node_modules/apollo-link-batch/lib/bundle.esm.js","/app/apps/contentweb/node_modules/apollo-link-batch-http/lib/bundle.esm.js","/app/apps/contentweb/node_modules/apollo-utilities/lib/bundle.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/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/polished/dist/polished.esm.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/ts-invariant/lib/invariant.esm.js","/app/apps/contentweb/node_modules/zen-observable-ts/lib/bundle.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);","var _a = Object.prototype,\n toString = _a.toString,\n hasOwnProperty = _a.hasOwnProperty;\nvar previousComparisons = new Map();\n/**\r\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\r\n */\nfunction equal(a, b) {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\nfunction check(a, b) {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n var aTag = toString.call(a);\n var bTag = toString.call(b);\n // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n if (aTag !== bTag) {\n return false;\n }\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length) return false;\n // Fall through to object case...\n case '[object Object]':\n {\n if (previouslyCompared(a, b)) return true;\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n var keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false;\n // Now make sure they have the same keys.\n for (var k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n // Finally, check deep equality of all child properties.\n for (var k = 0; k < keyCount; ++k) {\n var key = aKeys[k];\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a) return b !== b;\n // Fall through to shared +a === +b case...\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n case '[object RegExp]':\n case '[object String]':\n return a == \"\" + b;\n case '[object Map]':\n case '[object Set]':\n {\n if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n var aIterator = a.entries();\n var isMap = aTag === '[object Map]';\n while (true) {\n var info = aIterator.next();\n if (info.done) break;\n // If a instanceof Set, aValue === aKey.\n var _a = info.value,\n aKey = _a[0],\n aValue = _a[1];\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n // However, we care about deep equality of values only when dealing\n // with Map structures.\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n return true;\n }\n }\n // Otherwise the values are not equal.\n return false;\n}\nfunction previouslyCompared(a, b) {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n var bSet = previousComparisons.get(a);\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b)) return true;\n } else {\n previousComparisons.set(a, bSet = new Set());\n }\n bSet.add(b);\n return false;\n}\nexport default equal;\nexport { equal };","import { getFragmentQueryDocument } from 'apollo-utilities';\nfunction queryFromPojo(obj) {\n var op = {\n kind: 'OperationDefinition',\n operation: 'query',\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery'\n },\n selectionSet: selectionSetFromObj(obj)\n };\n var out = {\n kind: 'Document',\n definitions: [op]\n };\n return out;\n}\nfunction fragmentFromPojo(obj, typename) {\n var frag = {\n kind: 'FragmentDefinition',\n typeCondition: {\n kind: 'NamedType',\n name: {\n kind: 'Name',\n value: typename || '__FakeType'\n }\n },\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery'\n },\n selectionSet: selectionSetFromObj(obj)\n };\n var out = {\n kind: 'Document',\n definitions: [frag]\n };\n return out;\n}\nfunction selectionSetFromObj(obj) {\n if (typeof obj === 'number' || typeof obj === 'boolean' || typeof obj === 'string' || typeof obj === 'undefined' || obj === null) {\n return null;\n }\n if (Array.isArray(obj)) {\n return selectionSetFromObj(obj[0]);\n }\n var selections = [];\n Object.keys(obj).forEach(function (key) {\n var nestedSelSet = selectionSetFromObj(obj[key]);\n var field = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: key\n },\n selectionSet: nestedSelSet || undefined\n };\n selections.push(field);\n });\n var selectionSet = {\n kind: 'SelectionSet',\n selections: selections\n };\n return selectionSet;\n}\nvar justTypenameQuery = {\n kind: 'Document',\n definitions: [{\n kind: 'OperationDefinition',\n operation: 'query',\n name: null,\n variableDefinitions: null,\n directives: [],\n selectionSet: {\n kind: 'SelectionSet',\n selections: [{\n kind: 'Field',\n alias: null,\n name: {\n kind: 'Name',\n value: '__typename'\n },\n arguments: [],\n directives: [],\n selectionSet: null\n }]\n }\n }]\n};\nvar ApolloCache = function () {\n function ApolloCache() {}\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n return this.read({\n query: options.query,\n variables: options.variables,\n optimistic: optimistic\n });\n };\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n return this.read({\n query: getFragmentQueryDocument(options.fragment, options.fragmentName),\n variables: options.variables,\n rootId: options.id,\n optimistic: optimistic\n });\n };\n ApolloCache.prototype.writeQuery = function (options) {\n this.write({\n dataId: 'ROOT_QUERY',\n result: options.data,\n query: options.query,\n variables: options.variables\n });\n };\n ApolloCache.prototype.writeFragment = function (options) {\n this.write({\n dataId: options.id,\n result: options.data,\n variables: options.variables,\n query: getFragmentQueryDocument(options.fragment, options.fragmentName)\n });\n };\n ApolloCache.prototype.writeData = function (_a) {\n var id = _a.id,\n data = _a.data;\n if (typeof id !== 'undefined') {\n var typenameResult = null;\n try {\n typenameResult = this.read({\n rootId: id,\n optimistic: false,\n query: justTypenameQuery\n });\n } catch (e) {}\n var __typename = typenameResult && typenameResult.__typename || '__ClientData';\n var dataToWrite = Object.assign({\n __typename: __typename\n }, data);\n this.writeFragment({\n id: id,\n fragment: fragmentFromPojo(dataToWrite, __typename),\n data: dataToWrite\n });\n } else {\n this.writeQuery({\n query: queryFromPojo(data),\n data: data\n });\n }\n };\n return ApolloCache;\n}();\nvar Cache;\n(function (Cache) {})(Cache || (Cache = {}));\nexport { ApolloCache, Cache };","// 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 };","import { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\nfunction defaultDispose() {}\nvar Cache = /** @class */function () {\n function Cache(max, dispose) {\n if (max === void 0) {\n max = Infinity;\n }\n if (dispose === void 0) {\n dispose = defaultDispose;\n }\n this.max = max;\n this.dispose = dispose;\n this.map = new Map();\n this.newest = null;\n this.oldest = null;\n }\n Cache.prototype.has = function (key) {\n return this.map.has(key);\n };\n Cache.prototype.get = function (key) {\n var entry = this.getEntry(key);\n return entry && entry.value;\n };\n Cache.prototype.getEntry = function (key) {\n var entry = this.map.get(key);\n if (entry && entry !== this.newest) {\n var older = entry.older,\n newer = entry.newer;\n if (newer) {\n newer.older = older;\n }\n if (older) {\n older.newer = newer;\n }\n entry.older = this.newest;\n entry.older.newer = entry;\n entry.newer = null;\n this.newest = entry;\n if (entry === this.oldest) {\n this.oldest = newer;\n }\n }\n return entry;\n };\n Cache.prototype.set = function (key, value) {\n var entry = this.getEntry(key);\n if (entry) {\n return entry.value = value;\n }\n entry = {\n key: key,\n value: value,\n newer: null,\n older: this.newest\n };\n if (this.newest) {\n this.newest.newer = entry;\n }\n this.newest = entry;\n this.oldest = this.oldest || entry;\n this.map.set(key, entry);\n return entry.value;\n };\n Cache.prototype.clean = function () {\n while (this.oldest && this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n };\n Cache.prototype.delete = function (key) {\n var entry = this.map.get(key);\n if (entry) {\n if (entry === this.newest) {\n this.newest = entry.older;\n }\n if (entry === this.oldest) {\n this.oldest = entry.newer;\n }\n if (entry.newer) {\n entry.newer.older = entry.older;\n }\n if (entry.older) {\n entry.older.newer = entry.newer;\n }\n this.map.delete(key);\n this.dispose(entry.value, key);\n return true;\n }\n return false;\n };\n return Cache;\n}();\nvar parentEntrySlot = new Slot();\nvar reusableEmptyArray = [];\nvar emptySetPool = [];\nvar POOL_TARGET_SIZE = 100;\n// Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\nfunction assert(condition, optionalMessage) {\n if (!condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\nfunction valueIs(a, b) {\n var len = a.length;\n return (\n // Unknown values are not equal to each other.\n len > 0 &&\n // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length &&\n // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\nfunction valueGet(value) {\n switch (value.length) {\n case 0:\n throw new Error(\"unknown value\");\n case 1:\n return value[0];\n case 2:\n throw value[1];\n }\n}\nfunction valueCopy(value) {\n return value.slice(0);\n}\nvar Entry = /** @class */function () {\n function Entry(fn, args) {\n this.fn = fn;\n this.args = args;\n this.parents = new Set();\n this.childValues = new Map();\n // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n this.dirtyChildren = null;\n this.dirty = true;\n this.recomputing = false;\n this.value = [];\n ++Entry.count;\n }\n // This is the most important method of the Entry API, because it\n // determines whether the cached this.value can be returned immediately,\n // or must be recomputed. The overall performance of the caching system\n // depends on the truth of the following observations: (1) this.dirty is\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n // (3) valueGet(this.value) is usually returned without recomputation.\n Entry.prototype.recompute = function () {\n assert(!this.recomputing, \"already recomputing\");\n if (!rememberParent(this) && maybeReportOrphan(this)) {\n // The recipient of the entry.reportOrphan callback decided to dispose\n // of this orphan entry by calling entry.dispose(), so we don't need to\n // (and should not) proceed with the recomputation.\n return void 0;\n }\n return mightBeDirty(this) ? reallyRecompute(this) : valueGet(this.value);\n };\n Entry.prototype.setDirty = function () {\n if (this.dirty) return;\n this.dirty = true;\n this.value.length = 0;\n reportDirty(this);\n // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n maybeUnsubscribe(this);\n };\n Entry.prototype.dispose = function () {\n var _this = this;\n forgetChildren(this).forEach(maybeReportOrphan);\n maybeUnsubscribe(this);\n // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n this.parents.forEach(function (parent) {\n parent.setDirty();\n forgetChild(parent, _this);\n });\n };\n Entry.count = 0;\n return Entry;\n}();\nfunction rememberParent(child) {\n var parent = parentEntrySlot.getValue();\n if (parent) {\n child.parents.add(parent);\n if (!parent.childValues.has(child)) {\n parent.childValues.set(child, []);\n }\n if (mightBeDirty(child)) {\n reportDirtyChild(parent, child);\n } else {\n reportCleanChild(parent, child);\n }\n return parent;\n }\n}\nfunction reallyRecompute(entry) {\n // Since this recomputation is likely to re-remember some of this\n // entry's children, we forget our children here but do not call\n // maybeReportOrphan until after the recomputation finishes.\n var originalChildren = forgetChildren(entry);\n // Set entry as the parent entry while calling recomputeNewValue(entry).\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry]);\n if (maybeSubscribe(entry)) {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n }\n // Now that we've had a chance to re-remember any children that were\n // involved in the recomputation, we can safely report any orphan\n // children that remain.\n originalChildren.forEach(maybeReportOrphan);\n return valueGet(entry.value);\n}\nfunction recomputeNewValue(entry) {\n entry.recomputing = true;\n // Set entry.value as unknown.\n entry.value.length = 0;\n try {\n // If entry.fn succeeds, entry.value will become a normal Value.\n entry.value[0] = entry.fn.apply(null, entry.args);\n } catch (e) {\n // If entry.fn throws, entry.value will become exceptional.\n entry.value[1] = e;\n }\n // Either way, this line is always reached.\n entry.recomputing = false;\n}\nfunction mightBeDirty(entry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\nfunction setClean(entry) {\n entry.dirty = false;\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n reportClean(entry);\n}\nfunction reportDirty(child) {\n child.parents.forEach(function (parent) {\n return reportDirtyChild(parent, child);\n });\n}\nfunction reportClean(child) {\n child.parents.forEach(function (parent) {\n return reportCleanChild(parent, child);\n });\n}\n// Let a parent Entry know that one of its children may be dirty.\nfunction reportDirtyChild(parent, child) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n if (!parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set();\n } else if (parent.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n parent.dirtyChildren.add(child);\n reportDirty(parent);\n}\n// Let a parent Entry know that one of its children is no longer dirty.\nfunction reportCleanChild(parent, child) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(!mightBeDirty(child));\n var childValue = parent.childValues.get(child);\n if (childValue.length === 0) {\n parent.childValues.set(child, valueCopy(child.value));\n } else if (!valueIs(childValue, child.value)) {\n parent.setDirty();\n }\n removeDirtyChild(parent, child);\n if (mightBeDirty(parent)) {\n return;\n }\n reportClean(parent);\n}\nfunction removeDirtyChild(parent, child) {\n var dc = parent.dirtyChildren;\n if (dc) {\n dc.delete(child);\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n parent.dirtyChildren = null;\n }\n }\n}\n// If the given entry has a reportOrphan method, and no remaining parents,\n// call entry.reportOrphan and return true iff it returns true. The\n// reportOrphan function should return true to indicate entry.dispose()\n// has been called, and the entry has been removed from any other caches\n// (see index.js for the only current example).\nfunction maybeReportOrphan(entry) {\n return entry.parents.size === 0 && typeof entry.reportOrphan === \"function\" && entry.reportOrphan() === true;\n}\n// Removes all children from this entry and returns an array of the\n// removed children.\nfunction forgetChildren(parent) {\n var children = reusableEmptyArray;\n if (parent.childValues.size > 0) {\n children = [];\n parent.childValues.forEach(function (_value, child) {\n forgetChild(parent, child);\n children.push(child);\n });\n }\n // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n assert(parent.dirtyChildren === null);\n return children;\n}\nfunction forgetChild(parent, child) {\n child.parents.delete(parent);\n parent.childValues.delete(child);\n removeDirtyChild(parent, child);\n}\nfunction maybeSubscribe(entry) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\n entry.unsubscribe = entry.subscribe.apply(null, entry.args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n }\n // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n return true;\n}\nfunction maybeUnsubscribe(entry) {\n var unsubscribe = entry.unsubscribe;\n if (typeof unsubscribe === \"function\") {\n entry.unsubscribe = void 0;\n unsubscribe();\n }\n}\n\n// A trie data structure that holds object keys weakly, yet can also hold\n// non-object keys, unlike the native `WeakMap`.\nvar KeyTrie = /** @class */function () {\n function KeyTrie(weakness) {\n this.weakness = weakness;\n }\n KeyTrie.prototype.lookup = function () {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return this.lookupArray(array);\n };\n KeyTrie.prototype.lookupArray = function (array) {\n var node = this;\n array.forEach(function (key) {\n return node = node.getChildTrie(key);\n });\n return node.data || (node.data = Object.create(null));\n };\n KeyTrie.prototype.getChildTrie = function (key) {\n var map = this.weakness && isObjRef(key) ? this.weak || (this.weak = new WeakMap()) : this.strong || (this.strong = new Map());\n var child = map.get(key);\n if (!child) map.set(key, child = new KeyTrie(this.weakness));\n return child;\n };\n return KeyTrie;\n}();\nfunction isObjRef(value) {\n switch (typeof value) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n case \"function\":\n return true;\n }\n return false;\n}\n\n// The defaultMakeCacheKey function is remarkably powerful, because it gives\n// a unique object for any shallow-identical list of arguments. If you need\n// to implement a custom makeCacheKey function, you may find it helpful to\n// delegate the final work to defaultMakeCacheKey, which is why we export it\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\n// does not support WeakMap, or you have the ability to return a string key.\n// In those cases, just write your own custom makeCacheKey functions.\nvar keyTrie = new KeyTrie(typeof WeakMap === \"function\");\nfunction defaultMakeCacheKey() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return keyTrie.lookupArray(args);\n}\nvar caches = new Set();\nfunction wrap(originalFunction, options) {\n if (options === void 0) {\n options = Object.create(null);\n }\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) {\n return entry.dispose();\n });\n var disposable = !!options.disposable;\n var makeCacheKey = options.makeCacheKey || defaultMakeCacheKey;\n function optimistic() {\n if (disposable && !parentEntrySlot.hasValue()) {\n // If there's no current parent computation, and this wrapped\n // function is disposable (meaning we don't care about entry.value,\n // just dependency tracking), then we can short-cut everything else\n // in this function, because entry.recompute() is going to recycle\n // the entry object without recomputing anything, anyway.\n return void 0;\n }\n var key = makeCacheKey.apply(null, arguments);\n if (key === void 0) {\n return originalFunction.apply(null, arguments);\n }\n var args = Array.prototype.slice.call(arguments);\n var entry = cache.get(key);\n if (entry) {\n entry.args = args;\n } else {\n entry = new Entry(originalFunction, args);\n cache.set(key, entry);\n entry.subscribe = options.subscribe;\n if (disposable) {\n entry.reportOrphan = function () {\n return cache.delete(key);\n };\n }\n }\n var value = entry.recompute();\n // Move this entry to the front of the least-recently used queue,\n // since we just finished computing its value.\n cache.set(key, entry);\n caches.add(cache);\n // Clean up any excess entries in the cache, but only if there is no\n // active parent entry, meaning we're not in the middle of a larger\n // computation that might be flummoxed by the cleaning.\n if (!parentEntrySlot.hasValue()) {\n caches.forEach(function (cache) {\n return cache.clean();\n });\n caches.clear();\n }\n // If options.disposable is truthy, the caller of wrap is telling us\n // they don't care about the result of entry.recompute(), so we should\n // avoid returning the value, so it won't be accidentally used.\n return disposable ? void 0 : value;\n }\n optimistic.dirty = function () {\n var key = makeCacheKey.apply(null, arguments);\n var child = key !== void 0 && cache.get(key);\n if (child) {\n child.setDirty();\n }\n };\n return optimistic;\n}\nexport { KeyTrie, defaultMakeCacheKey, wrap };","import { __assign, __extends } from 'tslib';\nimport { ApolloCache } from 'apollo-cache';\nimport { isTest, getQueryDefinition, assign, getDefaultValues, isEqual, getMainDefinition, getFragmentDefinitions, createFragmentMap, shouldInclude, isField, resultKeyNameFromField, isInlineFragment, mergeDeepArray, argumentsObjectFromField, getDirectiveInfoFromField, maybeDeepFreeze, isIdValue, getStoreKeyName, toIdValue, isJsonValue, canUseWeakMap, getOperationDefinition, isProduction, storeKeyNameFromField, addTypenameToDocument } from 'apollo-utilities';\nimport { wrap, KeyTrie } from 'optimism';\nimport { invariant, InvariantError } from 'ts-invariant';\nvar haveWarned = false;\nfunction shouldWarn() {\n var answer = !haveWarned;\n if (!isTest()) {\n haveWarned = true;\n }\n return answer;\n}\nvar HeuristicFragmentMatcher = function () {\n function HeuristicFragmentMatcher() {}\n HeuristicFragmentMatcher.prototype.ensureReady = function () {\n return Promise.resolve();\n };\n HeuristicFragmentMatcher.prototype.canBypassInit = function () {\n return true;\n };\n HeuristicFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n var obj = context.store.get(idValue.id);\n var isRootQuery = idValue.id === 'ROOT_QUERY';\n if (!obj) {\n return isRootQuery;\n }\n var _a = obj.__typename,\n __typename = _a === void 0 ? isRootQuery && 'Query' : _a;\n if (!__typename) {\n if (shouldWarn()) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"You're using fragments in your queries, but either don't have the addTypename:\\n true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.\\n Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client\\n can accurately match fragments.\");\n process.env.NODE_ENV === \"production\" || invariant.warn('Could not find __typename on Fragment ', typeCondition, obj);\n process.env.NODE_ENV === \"production\" || invariant.warn(\"DEPRECATION WARNING: using fragments without __typename is unsupported behavior \" + \"and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.\");\n }\n return 'heuristic';\n }\n if (__typename === typeCondition) {\n return true;\n }\n if (shouldWarn()) {\n process.env.NODE_ENV === \"production\" || invariant.error('You are using the simple (heuristic) fragment matcher, but your ' + 'queries contain union or interface types. Apollo Client will not be ' + 'able to accurately map fragments. To make this error go away, use ' + 'the `IntrospectionFragmentMatcher` as described in the docs: ' + 'https://www.apollographql.com/docs/react/advanced/fragments.html#fragment-matcher');\n }\n return 'heuristic';\n };\n return HeuristicFragmentMatcher;\n}();\nvar IntrospectionFragmentMatcher = function () {\n function IntrospectionFragmentMatcher(options) {\n if (options && options.introspectionQueryResultData) {\n this.possibleTypesMap = this.parseIntrospectionResult(options.introspectionQueryResultData);\n this.isReady = true;\n } else {\n this.isReady = false;\n }\n this.match = this.match.bind(this);\n }\n IntrospectionFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n process.env.NODE_ENV === \"production\" ? invariant(this.isReady, 1) : invariant(this.isReady, 'FragmentMatcher.match() was called before FragmentMatcher.init()');\n var obj = context.store.get(idValue.id);\n var isRootQuery = idValue.id === 'ROOT_QUERY';\n if (!obj) {\n return isRootQuery;\n }\n var _a = obj.__typename,\n __typename = _a === void 0 ? isRootQuery && 'Query' : _a;\n process.env.NODE_ENV === \"production\" ? invariant(__typename, 2) : invariant(__typename, \"Cannot match fragment because __typename property is missing: \" + JSON.stringify(obj));\n if (__typename === typeCondition) {\n return true;\n }\n var implementingTypes = this.possibleTypesMap[typeCondition];\n if (__typename && implementingTypes && implementingTypes.indexOf(__typename) > -1) {\n return true;\n }\n return false;\n };\n IntrospectionFragmentMatcher.prototype.parseIntrospectionResult = function (introspectionResultData) {\n var typeMap = {};\n introspectionResultData.__schema.types.forEach(function (type) {\n if (type.kind === 'UNION' || type.kind === 'INTERFACE') {\n typeMap[type.name] = type.possibleTypes.map(function (implementingType) {\n return implementingType.name;\n });\n }\n });\n return typeMap;\n };\n return IntrospectionFragmentMatcher;\n}();\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar DepTrackingCache = function () {\n function DepTrackingCache(data) {\n var _this = this;\n if (data === void 0) {\n data = Object.create(null);\n }\n this.data = data;\n this.depend = wrap(function (dataId) {\n return _this.data[dataId];\n }, {\n disposable: true,\n makeCacheKey: function (dataId) {\n return dataId;\n }\n });\n }\n DepTrackingCache.prototype.toObject = function () {\n return this.data;\n };\n DepTrackingCache.prototype.get = function (dataId) {\n this.depend(dataId);\n return this.data[dataId];\n };\n DepTrackingCache.prototype.set = function (dataId, value) {\n var oldValue = this.data[dataId];\n if (value !== oldValue) {\n this.data[dataId] = value;\n this.depend.dirty(dataId);\n }\n };\n DepTrackingCache.prototype.delete = function (dataId) {\n if (hasOwn.call(this.data, dataId)) {\n delete this.data[dataId];\n this.depend.dirty(dataId);\n }\n };\n DepTrackingCache.prototype.clear = function () {\n this.replace(null);\n };\n DepTrackingCache.prototype.replace = function (newData) {\n var _this = this;\n if (newData) {\n Object.keys(newData).forEach(function (dataId) {\n _this.set(dataId, newData[dataId]);\n });\n Object.keys(this.data).forEach(function (dataId) {\n if (!hasOwn.call(newData, dataId)) {\n _this.delete(dataId);\n }\n });\n } else {\n Object.keys(this.data).forEach(function (dataId) {\n _this.delete(dataId);\n });\n }\n };\n return DepTrackingCache;\n}();\nfunction defaultNormalizedCacheFactory(seed) {\n return new DepTrackingCache(seed);\n}\nvar StoreReader = function () {\n function StoreReader(_a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a,\n _c = _b.cacheKeyRoot,\n cacheKeyRoot = _c === void 0 ? new KeyTrie(canUseWeakMap) : _c,\n _d = _b.freezeResults,\n freezeResults = _d === void 0 ? false : _d;\n var _e = this,\n executeStoreQuery = _e.executeStoreQuery,\n executeSelectionSet = _e.executeSelectionSet,\n executeSubSelectedArray = _e.executeSubSelectedArray;\n this.freezeResults = freezeResults;\n this.executeStoreQuery = wrap(function (options) {\n return executeStoreQuery.call(_this, options);\n }, {\n makeCacheKey: function (_a) {\n var query = _a.query,\n rootValue = _a.rootValue,\n contextValue = _a.contextValue,\n variableValues = _a.variableValues,\n fragmentMatcher = _a.fragmentMatcher;\n if (contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(contextValue.store, query, fragmentMatcher, JSON.stringify(variableValues), rootValue.id);\n }\n }\n });\n this.executeSelectionSet = wrap(function (options) {\n return executeSelectionSet.call(_this, options);\n }, {\n makeCacheKey: function (_a) {\n var selectionSet = _a.selectionSet,\n rootValue = _a.rootValue,\n execContext = _a.execContext;\n if (execContext.contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(execContext.contextValue.store, selectionSet, execContext.fragmentMatcher, JSON.stringify(execContext.variableValues), rootValue.id);\n }\n }\n });\n this.executeSubSelectedArray = wrap(function (options) {\n return executeSubSelectedArray.call(_this, options);\n }, {\n makeCacheKey: function (_a) {\n var field = _a.field,\n array = _a.array,\n execContext = _a.execContext;\n if (execContext.contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(execContext.contextValue.store, field, array, JSON.stringify(execContext.variableValues));\n }\n }\n });\n }\n StoreReader.prototype.readQueryFromStore = function (options) {\n return this.diffQueryAgainstStore(__assign(__assign({}, options), {\n returnPartialData: false\n })).result;\n };\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store,\n query = _a.query,\n variables = _a.variables,\n previousResult = _a.previousResult,\n _b = _a.returnPartialData,\n returnPartialData = _b === void 0 ? true : _b,\n _c = _a.rootId,\n rootId = _c === void 0 ? 'ROOT_QUERY' : _c,\n fragmentMatcherFunction = _a.fragmentMatcherFunction,\n config = _a.config;\n var queryDefinition = getQueryDefinition(query);\n variables = assign({}, getDefaultValues(queryDefinition), variables);\n var context = {\n store: store,\n dataIdFromObject: config && config.dataIdFromObject,\n cacheRedirects: config && config.cacheRedirects || {}\n };\n var execResult = this.executeStoreQuery({\n query: query,\n rootValue: {\n type: 'id',\n id: rootId,\n generated: true,\n typename: 'Query'\n },\n contextValue: context,\n variableValues: variables,\n fragmentMatcher: fragmentMatcherFunction\n });\n var hasMissingFields = execResult.missing && execResult.missing.length > 0;\n if (hasMissingFields && !returnPartialData) {\n execResult.missing.forEach(function (info) {\n if (info.tolerable) return;\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(8) : new InvariantError(\"Can't find field \" + info.fieldName + \" on object \" + JSON.stringify(info.object, null, 2) + \".\");\n });\n }\n if (previousResult) {\n if (isEqual(previousResult, execResult.result)) {\n execResult.result = previousResult;\n }\n }\n return {\n result: execResult.result,\n complete: !hasMissingFields\n };\n };\n StoreReader.prototype.executeStoreQuery = function (_a) {\n var query = _a.query,\n rootValue = _a.rootValue,\n contextValue = _a.contextValue,\n variableValues = _a.variableValues,\n _b = _a.fragmentMatcher,\n fragmentMatcher = _b === void 0 ? defaultFragmentMatcher : _b;\n var mainDefinition = getMainDefinition(query);\n var fragments = getFragmentDefinitions(query);\n var fragmentMap = createFragmentMap(fragments);\n var execContext = {\n query: query,\n fragmentMap: fragmentMap,\n contextValue: contextValue,\n variableValues: variableValues,\n fragmentMatcher: fragmentMatcher\n };\n return this.executeSelectionSet({\n selectionSet: mainDefinition.selectionSet,\n rootValue: rootValue,\n execContext: execContext\n });\n };\n StoreReader.prototype.executeSelectionSet = function (_a) {\n var _this = this;\n var selectionSet = _a.selectionSet,\n rootValue = _a.rootValue,\n execContext = _a.execContext;\n var fragmentMap = execContext.fragmentMap,\n contextValue = execContext.contextValue,\n variables = execContext.variableValues;\n var finalResult = {\n result: null\n };\n var objectsToMerge = [];\n var object = contextValue.store.get(rootValue.id);\n var typename = object && object.__typename || rootValue.id === 'ROOT_QUERY' && 'Query' || void 0;\n function handleMissing(result) {\n var _a;\n if (result.missing) {\n finalResult.missing = finalResult.missing || [];\n (_a = finalResult.missing).push.apply(_a, result.missing);\n }\n return result.result;\n }\n selectionSet.selections.forEach(function (selection) {\n var _a;\n if (!shouldInclude(selection, variables)) {\n return;\n }\n if (isField(selection)) {\n var fieldResult = handleMissing(_this.executeField(object, typename, selection, execContext));\n if (typeof fieldResult !== 'undefined') {\n objectsToMerge.push((_a = {}, _a[resultKeyNameFromField(selection)] = fieldResult, _a));\n }\n } else {\n var fragment = void 0;\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n fragment = fragmentMap[selection.name.value];\n if (!fragment) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(9) : new InvariantError(\"No fragment named \" + selection.name.value);\n }\n }\n var typeCondition = fragment.typeCondition && fragment.typeCondition.name.value;\n var match = !typeCondition || execContext.fragmentMatcher(rootValue, typeCondition, contextValue);\n if (match) {\n var fragmentExecResult = _this.executeSelectionSet({\n selectionSet: fragment.selectionSet,\n rootValue: rootValue,\n execContext: execContext\n });\n if (match === 'heuristic' && fragmentExecResult.missing) {\n fragmentExecResult = __assign(__assign({}, fragmentExecResult), {\n missing: fragmentExecResult.missing.map(function (info) {\n return __assign(__assign({}, info), {\n tolerable: true\n });\n })\n });\n }\n objectsToMerge.push(handleMissing(fragmentExecResult));\n }\n }\n });\n finalResult.result = mergeDeepArray(objectsToMerge);\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(finalResult.result);\n }\n return finalResult;\n };\n StoreReader.prototype.executeField = function (object, typename, field, execContext) {\n var variables = execContext.variableValues,\n contextValue = execContext.contextValue;\n var fieldName = field.name.value;\n var args = argumentsObjectFromField(field, variables);\n var info = {\n resultKey: resultKeyNameFromField(field),\n directives: getDirectiveInfoFromField(field, variables)\n };\n var readStoreResult = readStoreResolver(object, typename, fieldName, args, contextValue, info);\n if (Array.isArray(readStoreResult.result)) {\n return this.combineExecResults(readStoreResult, this.executeSubSelectedArray({\n field: field,\n array: readStoreResult.result,\n execContext: execContext\n }));\n }\n if (!field.selectionSet) {\n assertSelectionSetForIdValue(field, readStoreResult.result);\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n maybeDeepFreeze(readStoreResult);\n }\n return readStoreResult;\n }\n if (readStoreResult.result == null) {\n return readStoreResult;\n }\n return this.combineExecResults(readStoreResult, this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: readStoreResult.result,\n execContext: execContext\n }));\n };\n StoreReader.prototype.combineExecResults = function () {\n var execResults = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n execResults[_i] = arguments[_i];\n }\n var missing;\n execResults.forEach(function (execResult) {\n if (execResult.missing) {\n missing = missing || [];\n missing.push.apply(missing, execResult.missing);\n }\n });\n return {\n result: execResults.pop().result,\n missing: missing\n };\n };\n StoreReader.prototype.executeSubSelectedArray = function (_a) {\n var _this = this;\n var field = _a.field,\n array = _a.array,\n execContext = _a.execContext;\n var missing;\n function handleMissing(childResult) {\n if (childResult.missing) {\n missing = missing || [];\n missing.push.apply(missing, childResult.missing);\n }\n return childResult.result;\n }\n array = array.map(function (item) {\n if (item === null) {\n return null;\n }\n if (Array.isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n execContext: execContext\n }));\n }\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: item,\n execContext: execContext\n }));\n }\n assertSelectionSetForIdValue(field, item);\n return item;\n });\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(array);\n }\n return {\n result: array,\n missing: missing\n };\n };\n return StoreReader;\n}();\nfunction assertSelectionSetForIdValue(field, value) {\n if (!field.selectionSet && isIdValue(value)) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(10) : new InvariantError(\"Missing selection set for object of type \" + value.typename + \" returned for query field \" + field.name.value);\n }\n}\nfunction defaultFragmentMatcher() {\n return true;\n}\nfunction assertIdValue(idValue) {\n process.env.NODE_ENV === \"production\" ? invariant(isIdValue(idValue), 11) : invariant(isIdValue(idValue), \"Encountered a sub-selection on the query, but the store doesn't have an object reference. This should never happen during normal use unless you have custom code that is directly manipulating the store; please file an issue.\");\n}\nfunction readStoreResolver(object, typename, fieldName, args, context, _a) {\n var resultKey = _a.resultKey,\n directives = _a.directives;\n var storeKeyName = fieldName;\n if (args || directives) {\n storeKeyName = getStoreKeyName(storeKeyName, args, directives);\n }\n var fieldValue = void 0;\n if (object) {\n fieldValue = object[storeKeyName];\n if (typeof fieldValue === 'undefined' && context.cacheRedirects && typeof typename === 'string') {\n var type = context.cacheRedirects[typename];\n if (type) {\n var resolver = type[fieldName];\n if (resolver) {\n fieldValue = resolver(object, args, {\n getCacheKey: function (storeObj) {\n var id = context.dataIdFromObject(storeObj);\n return id && toIdValue({\n id: id,\n typename: storeObj.__typename\n });\n }\n });\n }\n }\n }\n }\n if (typeof fieldValue === 'undefined') {\n return {\n result: fieldValue,\n missing: [{\n object: object,\n fieldName: storeKeyName,\n tolerable: false\n }]\n };\n }\n if (isJsonValue(fieldValue)) {\n fieldValue = fieldValue.json;\n }\n return {\n result: fieldValue\n };\n}\nvar ObjectCache = function () {\n function ObjectCache(data) {\n if (data === void 0) {\n data = Object.create(null);\n }\n this.data = data;\n }\n ObjectCache.prototype.toObject = function () {\n return this.data;\n };\n ObjectCache.prototype.get = function (dataId) {\n return this.data[dataId];\n };\n ObjectCache.prototype.set = function (dataId, value) {\n this.data[dataId] = value;\n };\n ObjectCache.prototype.delete = function (dataId) {\n this.data[dataId] = void 0;\n };\n ObjectCache.prototype.clear = function () {\n this.data = Object.create(null);\n };\n ObjectCache.prototype.replace = function (newData) {\n this.data = newData || Object.create(null);\n };\n return ObjectCache;\n}();\nfunction defaultNormalizedCacheFactory$1(seed) {\n return new ObjectCache(seed);\n}\nvar WriteError = function (_super) {\n __extends(WriteError, _super);\n function WriteError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'WriteError';\n return _this;\n }\n return WriteError;\n}(Error);\nfunction enhanceErrorWithDocument(error, document) {\n var enhancedError = new WriteError(\"Error writing result to store for query:\\n \" + JSON.stringify(document));\n enhancedError.message += '\\n' + error.message;\n enhancedError.stack = error.stack;\n return enhancedError;\n}\nvar StoreWriter = function () {\n function StoreWriter() {}\n StoreWriter.prototype.writeQueryToStore = function (_a) {\n var query = _a.query,\n result = _a.result,\n _b = _a.store,\n store = _b === void 0 ? defaultNormalizedCacheFactory() : _b,\n variables = _a.variables,\n dataIdFromObject = _a.dataIdFromObject,\n fragmentMatcherFunction = _a.fragmentMatcherFunction;\n return this.writeResultToStore({\n dataId: 'ROOT_QUERY',\n result: result,\n document: query,\n store: store,\n variables: variables,\n dataIdFromObject: dataIdFromObject,\n fragmentMatcherFunction: fragmentMatcherFunction\n });\n };\n StoreWriter.prototype.writeResultToStore = function (_a) {\n var dataId = _a.dataId,\n result = _a.result,\n document = _a.document,\n _b = _a.store,\n store = _b === void 0 ? defaultNormalizedCacheFactory() : _b,\n variables = _a.variables,\n dataIdFromObject = _a.dataIdFromObject,\n fragmentMatcherFunction = _a.fragmentMatcherFunction;\n var operationDefinition = getOperationDefinition(document);\n try {\n return this.writeSelectionSetToStore({\n result: result,\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n context: {\n store: store,\n processedData: {},\n variables: assign({}, getDefaultValues(operationDefinition), variables),\n dataIdFromObject: dataIdFromObject,\n fragmentMap: createFragmentMap(getFragmentDefinitions(document)),\n fragmentMatcherFunction: fragmentMatcherFunction\n }\n });\n } catch (e) {\n throw enhanceErrorWithDocument(e, document);\n }\n };\n StoreWriter.prototype.writeSelectionSetToStore = function (_a) {\n var _this = this;\n var result = _a.result,\n dataId = _a.dataId,\n selectionSet = _a.selectionSet,\n context = _a.context;\n var variables = context.variables,\n store = context.store,\n fragmentMap = context.fragmentMap;\n selectionSet.selections.forEach(function (selection) {\n var _a;\n if (!shouldInclude(selection, variables)) {\n return;\n }\n if (isField(selection)) {\n var resultFieldKey = resultKeyNameFromField(selection);\n var value = result[resultFieldKey];\n if (typeof value !== 'undefined') {\n _this.writeFieldToStore({\n dataId: dataId,\n value: value,\n field: selection,\n context: context\n });\n } else {\n var isDefered = false;\n var isClient = false;\n if (selection.directives && selection.directives.length) {\n isDefered = selection.directives.some(function (directive) {\n return directive.name && directive.name.value === 'defer';\n });\n isClient = selection.directives.some(function (directive) {\n return directive.name && directive.name.value === 'client';\n });\n }\n if (!isDefered && !isClient && context.fragmentMatcherFunction) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"Missing field \" + resultFieldKey + \" in \" + JSON.stringify(result, null, 2).substring(0, 100));\n }\n }\n } else {\n var fragment = void 0;\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n fragment = (fragmentMap || {})[selection.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(fragment, 3) : invariant(fragment, \"No fragment named \" + selection.name.value + \".\");\n }\n var matches = true;\n if (context.fragmentMatcherFunction && fragment.typeCondition) {\n var id = dataId || 'self';\n var idValue = toIdValue({\n id: id,\n typename: undefined\n });\n var fakeContext = {\n store: new ObjectCache((_a = {}, _a[id] = result, _a)),\n cacheRedirects: {}\n };\n var match = context.fragmentMatcherFunction(idValue, fragment.typeCondition.name.value, fakeContext);\n if (!isProduction() && match === 'heuristic') {\n process.env.NODE_ENV === \"production\" || invariant.error('WARNING: heuristic fragment matching going on!');\n }\n matches = !!match;\n }\n if (matches) {\n _this.writeSelectionSetToStore({\n result: result,\n selectionSet: fragment.selectionSet,\n dataId: dataId,\n context: context\n });\n }\n }\n });\n return store;\n };\n StoreWriter.prototype.writeFieldToStore = function (_a) {\n var _b;\n var field = _a.field,\n value = _a.value,\n dataId = _a.dataId,\n context = _a.context;\n var variables = context.variables,\n dataIdFromObject = context.dataIdFromObject,\n store = context.store;\n var storeValue;\n var storeObject;\n var storeFieldName = storeKeyNameFromField(field, variables);\n if (!field.selectionSet || value === null) {\n storeValue = value != null && typeof value === 'object' ? {\n type: 'json',\n json: value\n } : value;\n } else if (Array.isArray(value)) {\n var generatedId = dataId + \".\" + storeFieldName;\n storeValue = this.processArrayValue(value, generatedId, field.selectionSet, context);\n } else {\n var valueDataId = dataId + \".\" + storeFieldName;\n var generated = true;\n if (!isGeneratedId(valueDataId)) {\n valueDataId = '$' + valueDataId;\n }\n if (dataIdFromObject) {\n var semanticId = dataIdFromObject(value);\n process.env.NODE_ENV === \"production\" ? invariant(!semanticId || !isGeneratedId(semanticId), 4) : invariant(!semanticId || !isGeneratedId(semanticId), 'IDs returned by dataIdFromObject cannot begin with the \"$\" character.');\n if (semanticId || typeof semanticId === 'number' && semanticId === 0) {\n valueDataId = semanticId;\n generated = false;\n }\n }\n if (!isDataProcessed(valueDataId, field, context.processedData)) {\n this.writeSelectionSetToStore({\n dataId: valueDataId,\n result: value,\n selectionSet: field.selectionSet,\n context: context\n });\n }\n var typename = value.__typename;\n storeValue = toIdValue({\n id: valueDataId,\n typename: typename\n }, generated);\n storeObject = store.get(dataId);\n var escapedId = storeObject && storeObject[storeFieldName];\n if (escapedId !== storeValue && isIdValue(escapedId)) {\n var hadTypename = escapedId.typename !== undefined;\n var hasTypename = typename !== undefined;\n var typenameChanged = hadTypename && hasTypename && escapedId.typename !== typename;\n process.env.NODE_ENV === \"production\" ? invariant(!generated || escapedId.generated || typenameChanged, 5) : invariant(!generated || escapedId.generated || typenameChanged, \"Store error: the application attempted to write an object with no provided id but the store already contains an id of \" + escapedId.id + \" for this object. The selectionSet that was trying to be written is:\\n\" + JSON.stringify(field));\n process.env.NODE_ENV === \"production\" ? invariant(!hadTypename || hasTypename, 6) : invariant(!hadTypename || hasTypename, \"Store error: the application attempted to write an object with no provided typename but the store already contains an object with typename of \" + escapedId.typename + \" for the object of id \" + escapedId.id + \". The selectionSet that was trying to be written is:\\n\" + JSON.stringify(field));\n if (escapedId.generated) {\n if (typenameChanged) {\n if (!generated) {\n store.delete(escapedId.id);\n }\n } else {\n mergeWithGenerated(escapedId.id, storeValue.id, store);\n }\n }\n }\n }\n storeObject = store.get(dataId);\n if (!storeObject || !isEqual(storeValue, storeObject[storeFieldName])) {\n store.set(dataId, __assign(__assign({}, storeObject), (_b = {}, _b[storeFieldName] = storeValue, _b)));\n }\n };\n StoreWriter.prototype.processArrayValue = function (value, generatedId, selectionSet, context) {\n var _this = this;\n return value.map(function (item, index) {\n if (item === null) {\n return null;\n }\n var itemDataId = generatedId + \".\" + index;\n if (Array.isArray(item)) {\n return _this.processArrayValue(item, itemDataId, selectionSet, context);\n }\n var generated = true;\n if (context.dataIdFromObject) {\n var semanticId = context.dataIdFromObject(item);\n if (semanticId) {\n itemDataId = semanticId;\n generated = false;\n }\n }\n if (!isDataProcessed(itemDataId, selectionSet, context.processedData)) {\n _this.writeSelectionSetToStore({\n dataId: itemDataId,\n result: item,\n selectionSet: selectionSet,\n context: context\n });\n }\n return toIdValue({\n id: itemDataId,\n typename: item.__typename\n }, generated);\n });\n };\n return StoreWriter;\n}();\nfunction isGeneratedId(id) {\n return id[0] === '$';\n}\nfunction mergeWithGenerated(generatedKey, realKey, cache) {\n if (generatedKey === realKey) {\n return false;\n }\n var generated = cache.get(generatedKey);\n var real = cache.get(realKey);\n var madeChanges = false;\n Object.keys(generated).forEach(function (key) {\n var value = generated[key];\n var realValue = real[key];\n if (isIdValue(value) && isGeneratedId(value.id) && isIdValue(realValue) && !isEqual(value, realValue) && mergeWithGenerated(value.id, realValue.id, cache)) {\n madeChanges = true;\n }\n });\n cache.delete(generatedKey);\n var newRealValue = __assign(__assign({}, generated), real);\n if (isEqual(newRealValue, real)) {\n return madeChanges;\n }\n cache.set(realKey, newRealValue);\n return true;\n}\nfunction isDataProcessed(dataId, field, processedData) {\n if (!processedData) {\n return false;\n }\n if (processedData[dataId]) {\n if (processedData[dataId].indexOf(field) >= 0) {\n return true;\n } else {\n processedData[dataId].push(field);\n }\n } else {\n processedData[dataId] = [field];\n }\n return false;\n}\nvar defaultConfig = {\n fragmentMatcher: new HeuristicFragmentMatcher(),\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n freezeResults: false\n};\nfunction defaultDataIdFromObject(result) {\n if (result.__typename) {\n if (result.id !== undefined) {\n return result.__typename + \":\" + result.id;\n }\n if (result._id !== undefined) {\n return result.__typename + \":\" + result._id;\n }\n }\n return null;\n}\nvar hasOwn$1 = Object.prototype.hasOwnProperty;\nvar OptimisticCacheLayer = function (_super) {\n __extends(OptimisticCacheLayer, _super);\n function OptimisticCacheLayer(optimisticId, parent, transaction) {\n var _this = _super.call(this, Object.create(null)) || this;\n _this.optimisticId = optimisticId;\n _this.parent = parent;\n _this.transaction = transaction;\n return _this;\n }\n OptimisticCacheLayer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n OptimisticCacheLayer.prototype.get = function (dataId) {\n return hasOwn$1.call(this.data, dataId) ? this.data[dataId] : this.parent.get(dataId);\n };\n return OptimisticCacheLayer;\n}(ObjectCache);\nvar InMemoryCache = function (_super) {\n __extends(InMemoryCache, _super);\n function InMemoryCache(config) {\n if (config === void 0) {\n config = {};\n }\n var _this = _super.call(this) || this;\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.cacheKeyRoot = new KeyTrie(canUseWeakMap);\n _this.silenceBroadcast = false;\n _this.config = __assign(__assign({}, defaultConfig), config);\n if (_this.config.customResolvers) {\n process.env.NODE_ENV === \"production\" || invariant.warn('customResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating customResolvers in the next major version.');\n _this.config.cacheRedirects = _this.config.customResolvers;\n }\n if (_this.config.cacheResolvers) {\n process.env.NODE_ENV === \"production\" || invariant.warn('cacheResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating cacheResolvers in the next major version.');\n _this.config.cacheRedirects = _this.config.cacheResolvers;\n }\n _this.addTypename = !!_this.config.addTypename;\n _this.data = _this.config.resultCaching ? new DepTrackingCache() : new ObjectCache();\n _this.optimisticData = _this.data;\n _this.storeWriter = new StoreWriter();\n _this.storeReader = new StoreReader({\n cacheKeyRoot: _this.cacheKeyRoot,\n freezeResults: config.freezeResults\n });\n var cache = _this;\n var maybeBroadcastWatch = cache.maybeBroadcastWatch;\n _this.maybeBroadcastWatch = wrap(function (c) {\n return maybeBroadcastWatch.call(_this, c);\n }, {\n makeCacheKey: function (c) {\n if (c.optimistic) {\n return;\n }\n if (c.previousResult) {\n return;\n }\n if (cache.data instanceof DepTrackingCache) {\n return cache.cacheKeyRoot.lookup(c.query, JSON.stringify(c.variables));\n }\n }\n });\n return _this;\n }\n InMemoryCache.prototype.restore = function (data) {\n if (data) this.data.replace(data);\n return this;\n };\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n return (optimistic ? this.optimisticData : this.data).toObject();\n };\n InMemoryCache.prototype.read = function (options) {\n if (typeof options.rootId === 'string' && typeof this.data.get(options.rootId) === 'undefined') {\n return null;\n }\n var fragmentMatcher = this.config.fragmentMatcher;\n var fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n return this.storeReader.readQueryFromStore({\n store: options.optimistic ? this.optimisticData : this.data,\n query: this.transformDocument(options.query),\n variables: options.variables,\n rootId: options.rootId,\n fragmentMatcherFunction: fragmentMatcherFunction,\n previousResult: options.previousResult,\n config: this.config\n }) || null;\n };\n InMemoryCache.prototype.write = function (write) {\n var fragmentMatcher = this.config.fragmentMatcher;\n var fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n this.storeWriter.writeResultToStore({\n dataId: write.dataId,\n result: write.result,\n variables: write.variables,\n document: this.transformDocument(write.query),\n store: this.data,\n dataIdFromObject: this.config.dataIdFromObject,\n fragmentMatcherFunction: fragmentMatcherFunction\n });\n this.broadcastWatches();\n };\n InMemoryCache.prototype.diff = function (query) {\n var fragmentMatcher = this.config.fragmentMatcher;\n var fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n return this.storeReader.diffQueryAgainstStore({\n store: query.optimistic ? this.optimisticData : this.data,\n query: this.transformDocument(query.query),\n variables: query.variables,\n returnPartialData: query.returnPartialData,\n previousResult: query.previousResult,\n fragmentMatcherFunction: fragmentMatcherFunction,\n config: this.config\n });\n };\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n this.watches.add(watch);\n return function () {\n _this.watches.delete(watch);\n };\n };\n InMemoryCache.prototype.evict = function (query) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(7) : new InvariantError(\"eviction is not implemented on InMemory Cache\");\n };\n InMemoryCache.prototype.reset = function () {\n this.data.clear();\n this.broadcastWatches();\n return Promise.resolve();\n };\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var toReapply = [];\n var removedCount = 0;\n var layer = this.optimisticData;\n while (layer instanceof OptimisticCacheLayer) {\n if (layer.optimisticId === idToRemove) {\n ++removedCount;\n } else {\n toReapply.push(layer);\n }\n layer = layer.parent;\n }\n if (removedCount > 0) {\n this.optimisticData = layer;\n while (toReapply.length > 0) {\n var layer_1 = toReapply.pop();\n this.performTransaction(layer_1.transaction, layer_1.optimisticId);\n }\n this.broadcastWatches();\n }\n };\n InMemoryCache.prototype.performTransaction = function (transaction, optimisticId) {\n var _a = this,\n data = _a.data,\n silenceBroadcast = _a.silenceBroadcast;\n this.silenceBroadcast = true;\n if (typeof optimisticId === 'string') {\n this.data = this.optimisticData = new OptimisticCacheLayer(optimisticId, this.optimisticData, transaction);\n }\n try {\n transaction(this);\n } finally {\n this.silenceBroadcast = silenceBroadcast;\n this.data = data;\n }\n this.broadcastWatches();\n };\n InMemoryCache.prototype.recordOptimisticTransaction = function (transaction, id) {\n return this.performTransaction(transaction, id);\n };\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n };\n InMemoryCache.prototype.broadcastWatches = function () {\n var _this = this;\n if (!this.silenceBroadcast) {\n this.watches.forEach(function (c) {\n return _this.maybeBroadcastWatch(c);\n });\n }\n };\n InMemoryCache.prototype.maybeBroadcastWatch = function (c) {\n c.callback(this.diff({\n query: c.query,\n variables: c.variables,\n previousResult: c.previousResult && c.previousResult(),\n optimistic: c.optimistic\n }));\n };\n return InMemoryCache;\n}(ApolloCache);\nexport { HeuristicFragmentMatcher, InMemoryCache, IntrospectionFragmentMatcher, ObjectCache, StoreReader, StoreWriter, WriteError, assertIdValue, defaultDataIdFromObject, defaultNormalizedCacheFactory$1 as defaultNormalizedCacheFactory, enhanceErrorWithDocument };","import { __extends, __assign, __awaiter, __generator } from 'tslib';\nimport { getOperationDefinition, isEqual, tryFunctionOrLogError, cloneDeep, mergeDeep, hasDirectives, removeClientSetsFromDocument, buildQueryFromSelectionSet, getMainDefinition, getFragmentDefinitions, createFragmentMap, mergeDeepArray, resultKeyNameFromField, argumentsObjectFromField, shouldInclude, isField, isInlineFragment, canUseWeakMap, graphQLResultHasError, removeConnectionDirectiveFromDocument, hasClientExports, getDefaultValues, getOperationName } from 'apollo-utilities';\nimport { Observable as Observable$1, execute, ApolloLink } from 'apollo-link';\nimport $$observable from 'symbol-observable';\nimport { InvariantError, invariant } from 'ts-invariant';\nimport { visit, BREAK } from 'graphql/language/visitor';\nvar NetworkStatus;\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\nfunction isNetworkRequestInFlight(networkStatus) {\n return networkStatus < 7;\n}\nvar Observable = function (_super) {\n __extends(Observable, _super);\n function Observable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Observable.prototype[$$observable] = function () {\n return this;\n };\n Observable.prototype['@@observable'] = function () {\n return this;\n };\n return Observable;\n}(Observable$1);\nfunction isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}\nfunction isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (isNonEmptyArray(err.graphQLErrors)) {\n err.graphQLErrors.forEach(function (graphQLError) {\n var errorMessage = graphQLError ? graphQLError.message : 'Error message not found.';\n message += \"GraphQL error: \" + errorMessage + \"\\n\";\n });\n }\n if (err.networkError) {\n message += 'Network error: ' + err.networkError.message + '\\n';\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors,\n networkError = _a.networkError,\n errorMessage = _a.errorMessage,\n extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.graphQLErrors = graphQLErrors || [];\n _this.networkError = networkError || null;\n if (!errorMessage) {\n _this.message = generateErrorMessage(_this);\n } else {\n _this.message = errorMessage;\n }\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error);\nvar FetchType;\n(function (FetchType) {\n FetchType[FetchType[\"normal\"] = 1] = \"normal\";\n FetchType[FetchType[\"refetch\"] = 2] = \"refetch\";\n FetchType[FetchType[\"poll\"] = 3] = \"poll\";\n})(FetchType || (FetchType = {}));\nvar hasError = function (storeValue, policy) {\n if (policy === void 0) {\n policy = 'none';\n }\n return storeValue && (storeValue.networkError || policy === 'none' && isNonEmptyArray(storeValue.graphQLErrors));\n};\nvar ObservableQuery = function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager,\n options = _a.options,\n _b = _a.shouldSubscribe,\n shouldSubscribe = _b === void 0 ? true : _b;\n var _this = _super.call(this, function (observer) {\n return _this.onSubscribe(observer);\n }) || this;\n _this.observers = new Set();\n _this.subscriptions = new Set();\n _this.isTornDown = false;\n _this.options = options;\n _this.variables = options.variables || {};\n _this.queryId = queryManager.generateQueryId();\n _this.shouldSubscribe = shouldSubscribe;\n var opDef = getOperationDefinition(options.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n _this.queryManager = queryManager;\n return _this;\n }\n ObservableQuery.prototype.result = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function (result) {\n resolve(result);\n _this.observers.delete(observer);\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject\n };\n var subscription = _this.subscribe(observer);\n });\n };\n ObservableQuery.prototype.currentResult = function () {\n var result = this.getCurrentResult();\n if (result.data === undefined) {\n result.data = {};\n }\n return result;\n };\n ObservableQuery.prototype.getCurrentResult = function () {\n if (this.isTornDown) {\n var lastResult = this.lastResult;\n return {\n data: !this.lastError && lastResult && lastResult.data || void 0,\n error: this.lastError,\n loading: false,\n networkStatus: NetworkStatus.error\n };\n }\n var _a = this.queryManager.getCurrentQueryResult(this),\n data = _a.data,\n partial = _a.partial;\n var queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n var result;\n var fetchPolicy = this.options.fetchPolicy;\n var isNetworkFetchPolicy = fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n if (queryStoreValue) {\n var networkStatus = queryStoreValue.networkStatus;\n if (hasError(queryStoreValue, this.options.errorPolicy)) {\n return {\n data: void 0,\n loading: false,\n networkStatus: networkStatus,\n error: new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError\n })\n };\n }\n if (queryStoreValue.variables) {\n this.options.variables = __assign(__assign({}, this.options.variables), queryStoreValue.variables);\n this.variables = this.options.variables;\n }\n result = {\n data: data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus\n };\n if (queryStoreValue.graphQLErrors && this.options.errorPolicy === 'all') {\n result.errors = queryStoreValue.graphQLErrors;\n }\n } else {\n var loading = isNetworkFetchPolicy || partial && fetchPolicy !== 'cache-only';\n result = {\n data: data,\n loading: loading,\n networkStatus: loading ? NetworkStatus.loading : NetworkStatus.ready\n };\n }\n if (!partial) {\n this.updateLastResult(__assign(__assign({}, result), {\n stale: false\n }));\n }\n return __assign(__assign({}, result), {\n partial: partial\n });\n };\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult) {\n var snapshot = this.lastResultSnapshot;\n return !(snapshot && newResult && snapshot.networkStatus === newResult.networkStatus && snapshot.stale === newResult.stale && isEqual(snapshot.data, newResult.data));\n };\n ObservableQuery.prototype.getLastResult = function () {\n return this.lastResult;\n };\n ObservableQuery.prototype.getLastError = function () {\n return this.lastError;\n };\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.lastResult;\n delete this.lastResultSnapshot;\n delete this.lastError;\n this.isTornDown = false;\n };\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n var queryStore = this.queryManager.queryStore.get(this.queryId);\n if (queryStore) {\n queryStore.networkError = null;\n queryStore.graphQLErrors = [];\n }\n };\n ObservableQuery.prototype.refetch = function (variables) {\n var fetchPolicy = this.options.fetchPolicy;\n if (fetchPolicy === 'cache-only') {\n return Promise.reject(process.env.NODE_ENV === \"production\" ? new InvariantError(1) : new InvariantError('cache-only fetchPolicy option should not be used together with query refetch.'));\n }\n if (fetchPolicy !== 'no-cache' && fetchPolicy !== 'cache-and-network') {\n fetchPolicy = 'network-only';\n }\n if (!isEqual(this.variables, variables)) {\n this.variables = __assign(__assign({}, this.variables), variables);\n }\n if (!isEqual(this.options.variables, this.variables)) {\n this.options.variables = __assign(__assign({}, this.options.variables), this.variables);\n }\n return this.queryManager.fetchQuery(this.queryId, __assign(__assign({}, this.options), {\n fetchPolicy: fetchPolicy\n }), FetchType.refetch);\n };\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n process.env.NODE_ENV === \"production\" ? invariant(fetchMoreOptions.updateQuery, 2) : invariant(fetchMoreOptions.updateQuery, 'updateQuery option is required. This function defines how to update the query data with the new results.');\n var combinedOptions = __assign(__assign({}, fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign({}, this.options), fetchMoreOptions), {\n variables: __assign(__assign({}, this.variables), fetchMoreOptions.variables)\n })), {\n fetchPolicy: 'network-only'\n });\n var qid = this.queryManager.generateQueryId();\n return this.queryManager.fetchQuery(qid, combinedOptions, FetchType.normal, this.queryId).then(function (fetchMoreResult) {\n _this.updateQuery(function (previousResult) {\n return fetchMoreOptions.updateQuery(previousResult, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables\n });\n });\n _this.queryManager.stopQuery(qid);\n return fetchMoreResult;\n }, function (error) {\n _this.queryManager.stopQuery(qid);\n throw error;\n });\n };\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var subscription = this.queryManager.startGraphQLSubscription({\n query: options.document,\n variables: options.variables\n }).subscribe({\n next: function (subscriptionData) {\n var updateQuery = options.updateQuery;\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables\n });\n });\n }\n },\n error: function (err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n process.env.NODE_ENV === \"production\" || invariant.error('Unhandled GraphQL subscription error', err);\n }\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n ObservableQuery.prototype.setOptions = function (opts) {\n var oldFetchPolicy = this.options.fetchPolicy;\n this.options = __assign(__assign({}, this.options), opts);\n if (opts.pollInterval) {\n this.startPolling(opts.pollInterval);\n } else if (opts.pollInterval === 0) {\n this.stopPolling();\n }\n var fetchPolicy = opts.fetchPolicy;\n return this.setVariables(this.options.variables, oldFetchPolicy !== fetchPolicy && (oldFetchPolicy === 'cache-only' || oldFetchPolicy === 'standby' || fetchPolicy === 'network-only'), opts.fetchResults);\n };\n ObservableQuery.prototype.setVariables = function (variables, tryFetch, fetchResults) {\n if (tryFetch === void 0) {\n tryFetch = false;\n }\n if (fetchResults === void 0) {\n fetchResults = true;\n }\n this.isTornDown = false;\n variables = variables || this.variables;\n if (!tryFetch && isEqual(variables, this.variables)) {\n return this.observers.size && fetchResults ? this.result() : Promise.resolve();\n }\n this.variables = this.options.variables = variables;\n if (!this.observers.size) {\n return Promise.resolve();\n }\n return this.queryManager.fetchQuery(this.queryId, this.options);\n };\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n var _a = queryManager.getQueryWithPreviousResult(this.queryId),\n previousResult = _a.previousResult,\n variables = _a.variables,\n document = _a.document;\n var newResult = tryFunctionOrLogError(function () {\n return mapFn(previousResult, {\n variables: variables\n });\n });\n if (newResult) {\n queryManager.dataStore.markUpdateQueryResult(document, variables, newResult);\n queryManager.broadcastQueries();\n }\n };\n ObservableQuery.prototype.stopPolling = function () {\n this.queryManager.stopPollingQuery(this.queryId);\n this.options.pollInterval = undefined;\n };\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n assertNotCacheFirstOrOnly(this);\n this.options.pollInterval = pollInterval;\n this.queryManager.startPollingQuery(this.options, this.queryId);\n };\n ObservableQuery.prototype.updateLastResult = function (newResult) {\n var previousResult = this.lastResult;\n this.lastResult = newResult;\n this.lastResultSnapshot = this.queryManager.assumeImmutableResults ? newResult : cloneDeep(newResult);\n return previousResult;\n };\n ObservableQuery.prototype.onSubscribe = function (observer) {\n var _this = this;\n try {\n var subObserver = observer._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch (_a) {}\n var first = !this.observers.size;\n this.observers.add(observer);\n if (observer.next && this.lastResult) observer.next(this.lastResult);\n if (observer.error && this.lastError) observer.error(this.lastError);\n if (first) {\n this.setUpQuery();\n }\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n };\n ObservableQuery.prototype.setUpQuery = function () {\n var _this = this;\n var _a = this,\n queryManager = _a.queryManager,\n queryId = _a.queryId;\n if (this.shouldSubscribe) {\n queryManager.addObservableQuery(queryId, this);\n }\n if (this.options.pollInterval) {\n assertNotCacheFirstOrOnly(this);\n queryManager.startPollingQuery(this.options, queryId);\n }\n var onError = function (error) {\n _this.updateLastResult(__assign(__assign({}, _this.lastResult), {\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false\n }));\n iterateObserversSafely(_this.observers, 'error', _this.lastError = error);\n };\n queryManager.observeQuery(queryId, this.options, {\n next: function (result) {\n if (_this.lastError || _this.isDifferentFromLastResult(result)) {\n var previousResult_1 = _this.updateLastResult(result);\n var _a = _this.options,\n query_1 = _a.query,\n variables = _a.variables,\n fetchPolicy_1 = _a.fetchPolicy;\n if (queryManager.transform(query_1).hasClientExports) {\n queryManager.getLocalState().addExportedVariables(query_1, variables).then(function (variables) {\n var previousVariables = _this.variables;\n _this.variables = _this.options.variables = variables;\n if (!result.loading && previousResult_1 && fetchPolicy_1 !== 'cache-only' && queryManager.transform(query_1).serverQuery && !isEqual(previousVariables, variables)) {\n _this.refetch();\n } else {\n iterateObserversSafely(_this.observers, 'next', result);\n }\n });\n } else {\n iterateObserversSafely(_this.observers, 'next', result);\n }\n }\n },\n error: onError\n }).catch(onError);\n };\n ObservableQuery.prototype.tearDownQuery = function () {\n var queryManager = this.queryManager;\n this.isTornDown = true;\n queryManager.stopPollingQuery(this.queryId);\n this.subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n this.subscriptions.clear();\n queryManager.removeObservableQuery(this.queryId);\n queryManager.stopQuery(this.queryId);\n this.observers.clear();\n };\n return ObservableQuery;\n}(Observable);\nfunction defaultSubscriptionObserverErrorCallback(error) {\n process.env.NODE_ENV === \"production\" || invariant.error('Unhandled error', error.message, error.stack);\n}\nfunction iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) {\n return obs[method] && observersWithMethod.push(obs);\n });\n observersWithMethod.forEach(function (obs) {\n return obs[method](argument);\n });\n}\nfunction assertNotCacheFirstOrOnly(obsQuery) {\n var fetchPolicy = obsQuery.options.fetchPolicy;\n process.env.NODE_ENV === \"production\" ? invariant(fetchPolicy !== 'cache-first' && fetchPolicy !== 'cache-only', 3) : invariant(fetchPolicy !== 'cache-first' && fetchPolicy !== 'cache-only', 'Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n}\nvar MutationStore = function () {\n function MutationStore() {\n this.store = {};\n }\n MutationStore.prototype.getStore = function () {\n return this.store;\n };\n MutationStore.prototype.get = function (mutationId) {\n return this.store[mutationId];\n };\n MutationStore.prototype.initMutation = function (mutationId, mutation, variables) {\n this.store[mutationId] = {\n mutation: mutation,\n variables: variables || {},\n loading: true,\n error: null\n };\n };\n MutationStore.prototype.markMutationError = function (mutationId, error) {\n var mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = error;\n }\n };\n MutationStore.prototype.markMutationResult = function (mutationId) {\n var mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = null;\n }\n };\n MutationStore.prototype.reset = function () {\n this.store = {};\n };\n return MutationStore;\n}();\nvar QueryStore = function () {\n function QueryStore() {\n this.store = {};\n }\n QueryStore.prototype.getStore = function () {\n return this.store;\n };\n QueryStore.prototype.get = function (queryId) {\n return this.store[queryId];\n };\n QueryStore.prototype.initQuery = function (query) {\n var previousQuery = this.store[query.queryId];\n process.env.NODE_ENV === \"production\" ? invariant(!previousQuery || previousQuery.document === query.document || isEqual(previousQuery.document, query.document), 19) : invariant(!previousQuery || previousQuery.document === query.document || isEqual(previousQuery.document, query.document), 'Internal Error: may not update existing query string in store');\n var isSetVariables = false;\n var previousVariables = null;\n if (query.storePreviousVariables && previousQuery && previousQuery.networkStatus !== NetworkStatus.loading) {\n if (!isEqual(previousQuery.variables, query.variables)) {\n isSetVariables = true;\n previousVariables = previousQuery.variables;\n }\n }\n var networkStatus;\n if (isSetVariables) {\n networkStatus = NetworkStatus.setVariables;\n } else if (query.isPoll) {\n networkStatus = NetworkStatus.poll;\n } else if (query.isRefetch) {\n networkStatus = NetworkStatus.refetch;\n } else {\n networkStatus = NetworkStatus.loading;\n }\n var graphQLErrors = [];\n if (previousQuery && previousQuery.graphQLErrors) {\n graphQLErrors = previousQuery.graphQLErrors;\n }\n this.store[query.queryId] = {\n document: query.document,\n variables: query.variables,\n previousVariables: previousVariables,\n networkError: null,\n graphQLErrors: graphQLErrors,\n networkStatus: networkStatus,\n metadata: query.metadata\n };\n if (typeof query.fetchMoreForQueryId === 'string' && this.store[query.fetchMoreForQueryId]) {\n this.store[query.fetchMoreForQueryId].networkStatus = NetworkStatus.fetchMore;\n }\n };\n QueryStore.prototype.markQueryResult = function (queryId, result, fetchMoreForQueryId) {\n if (!this.store || !this.store[queryId]) return;\n this.store[queryId].networkError = null;\n this.store[queryId].graphQLErrors = isNonEmptyArray(result.errors) ? result.errors : [];\n this.store[queryId].previousVariables = null;\n this.store[queryId].networkStatus = NetworkStatus.ready;\n if (typeof fetchMoreForQueryId === 'string' && this.store[fetchMoreForQueryId]) {\n this.store[fetchMoreForQueryId].networkStatus = NetworkStatus.ready;\n }\n };\n QueryStore.prototype.markQueryError = function (queryId, error, fetchMoreForQueryId) {\n if (!this.store || !this.store[queryId]) return;\n this.store[queryId].networkError = error;\n this.store[queryId].networkStatus = NetworkStatus.error;\n if (typeof fetchMoreForQueryId === 'string') {\n this.markQueryResultClient(fetchMoreForQueryId, true);\n }\n };\n QueryStore.prototype.markQueryResultClient = function (queryId, complete) {\n var storeValue = this.store && this.store[queryId];\n if (storeValue) {\n storeValue.networkError = null;\n storeValue.previousVariables = null;\n if (complete) {\n storeValue.networkStatus = NetworkStatus.ready;\n }\n }\n };\n QueryStore.prototype.stopQuery = function (queryId) {\n delete this.store[queryId];\n };\n QueryStore.prototype.reset = function (observableQueryIds) {\n var _this = this;\n Object.keys(this.store).forEach(function (queryId) {\n if (observableQueryIds.indexOf(queryId) < 0) {\n _this.stopQuery(queryId);\n } else {\n _this.store[queryId].networkStatus = NetworkStatus.loading;\n }\n });\n };\n return QueryStore;\n}();\nfunction capitalizeFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nvar LocalState = function () {\n function LocalState(_a) {\n var cache = _a.cache,\n client = _a.client,\n resolvers = _a.resolvers,\n fragmentMatcher = _a.fragmentMatcher;\n this.cache = cache;\n if (client) {\n this.client = client;\n }\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n LocalState.prototype.runResolvers = function (_a) {\n var document = _a.document,\n remoteResult = _a.remoteResult,\n context = _a.context,\n variables = _a.variables,\n _b = _a.onlyRunForcedResolvers,\n onlyRunForcedResolvers = _b === void 0 ? false : _b;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_c) {\n if (document) {\n return [2, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) {\n return __assign(__assign({}, remoteResult), {\n data: localResult.result\n });\n })];\n }\n return [2, remoteResult];\n });\n });\n };\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n process.env.NODE_ENV === \"production\" || invariant.warn('Found @client directives in a query but no ApolloClient resolvers ' + 'were specified. This means ApolloClient local resolver handling ' + 'has been disabled, and @client directives will be passed through ' + 'to your link chain.');\n }\n return null;\n };\n LocalState.prototype.serverQuery = function (document) {\n return this.resolvers ? removeClientSetsFromDocument(document) : document;\n };\n LocalState.prototype.prepareContext = function (context) {\n if (context === void 0) {\n context = {};\n }\n var cache = this.cache;\n var newContext = __assign(__assign({}, context), {\n cache: cache,\n getCacheKey: function (obj) {\n if (cache.config) {\n return cache.config.dataIdFromObject(obj);\n } else {\n process.env.NODE_ENV === \"production\" ? invariant(false, 6) : invariant(false, 'To use context.getCacheKey, you need to use a cache that has ' + 'a configurable dataIdFromObject, like apollo-cache-inmemory.');\n }\n }\n });\n return newContext;\n };\n LocalState.prototype.addExportedVariables = function (document, variables, context) {\n if (variables === void 0) {\n variables = {};\n }\n if (context === void 0) {\n context = {};\n }\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (document) {\n return [2, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) {\n return __assign(__assign({}, variables), data.exportedVariables);\n })];\n }\n return [2, __assign({}, variables)];\n });\n });\n };\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function (node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === 'always' && arg.value.kind === 'BooleanValue' && arg.value.value === true;\n });\n if (forceResolvers) {\n return BREAK;\n }\n }\n }\n }\n });\n return forceResolvers;\n };\n LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }).result;\n };\n LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n if (context === void 0) {\n context = {};\n }\n if (variables === void 0) {\n variables = {};\n }\n if (fragmentMatcher === void 0) {\n fragmentMatcher = function () {\n return true;\n };\n }\n if (onlyRunForcedResolvers === void 0) {\n onlyRunForcedResolvers = false;\n }\n return __awaiter(this, void 0, void 0, function () {\n var mainDefinition, fragments, fragmentMap, definitionOperation, defaultOperationType, _a, cache, client, execContext;\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n definitionOperation = mainDefinition.operation;\n defaultOperationType = definitionOperation ? capitalizeFirstLetter(definitionOperation) : 'Query';\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), {\n cache: cache,\n client: client\n }),\n variables: variables,\n fragmentMatcher: fragmentMatcher,\n defaultOperationType: defaultOperationType,\n exportedVariables: {},\n onlyRunForcedResolvers: onlyRunForcedResolvers\n };\n return [2, this.resolveSelectionSet(mainDefinition.selectionSet, rootValue, execContext).then(function (result) {\n return {\n result: result,\n exportedVariables: execContext.exportedVariables\n };\n })];\n });\n });\n };\n LocalState.prototype.resolveSelectionSet = function (selectionSet, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var fragmentMap, context, variables, resultsToMerge, execute;\n var _this = this;\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n execute = function (selection) {\n return __awaiter(_this, void 0, void 0, function () {\n var fragment, typeCondition;\n return __generator(this, function (_a) {\n if (!shouldInclude(selection, variables)) {\n return [2];\n }\n if (isField(selection)) {\n return [2, this.resolveField(selection, rootValue, execContext).then(function (fieldResult) {\n var _a;\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push((_a = {}, _a[resultKeyNameFromField(selection)] = fieldResult, _a));\n }\n })];\n }\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n fragment = fragmentMap[selection.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(fragment, 7) : invariant(fragment, \"No fragment named \" + selection.name.value);\n }\n if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return [2, this.resolveSelectionSet(fragment.selectionSet, rootValue, execContext).then(function (fragmentResult) {\n resultsToMerge.push(fragmentResult);\n })];\n }\n }\n return [2];\n });\n });\n };\n return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n })];\n });\n });\n };\n LocalState.prototype.resolveField = function (field, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n var _this = this;\n return __generator(this, function (_a) {\n variables = execContext.variables;\n fieldName = field.name.value;\n aliasedFieldName = resultKeyNameFromField(field);\n aliasUsed = fieldName !== aliasedFieldName;\n defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n resultPromise = Promise.resolve(defaultResult);\n if (!execContext.onlyRunForcedResolvers || this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(resolve(rootValue, argumentsObjectFromField(field, variables), execContext.context, {\n field: field,\n fragmentMap: execContext.fragmentMap\n }));\n }\n }\n }\n return [2, resultPromise.then(function (result) {\n if (result === void 0) {\n result = defaultResult;\n }\n if (field.directives) {\n field.directives.forEach(function (directive) {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(function (arg) {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n if (!field.selectionSet) {\n return result;\n }\n if (result == null) {\n return result;\n }\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, result, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, result, execContext);\n }\n })];\n });\n });\n };\n LocalState.prototype.resolveSubSelectedArray = function (field, result, execContext) {\n var _this = this;\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, item, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, item, execContext);\n }\n }));\n };\n return LocalState;\n}();\nfunction multiplex(inner) {\n var observers = new Set();\n var sub = null;\n return new Observable(function (observer) {\n observers.add(observer);\n sub = sub || inner.subscribe({\n next: function (value) {\n observers.forEach(function (obs) {\n return obs.next && obs.next(value);\n });\n },\n error: function (error) {\n observers.forEach(function (obs) {\n return obs.error && obs.error(error);\n });\n },\n complete: function () {\n observers.forEach(function (obs) {\n return obs.complete && obs.complete();\n });\n }\n });\n return function () {\n if (observers.delete(observer) && !observers.size && sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n });\n}\nfunction asyncMap(observable, mapFn) {\n return new Observable(function (observer) {\n var next = observer.next,\n error = observer.error,\n complete = observer.complete;\n var activeNextCount = 0;\n var completed = false;\n var handler = {\n next: function (value) {\n ++activeNextCount;\n new Promise(function (resolve) {\n resolve(mapFn(value));\n }).then(function (result) {\n --activeNextCount;\n next && next.call(observer, result);\n completed && handler.complete();\n }, function (e) {\n --activeNextCount;\n error && error.call(observer, e);\n });\n },\n error: function (e) {\n error && error.call(observer, e);\n },\n complete: function () {\n completed = true;\n if (!activeNextCount) {\n complete && complete.call(observer);\n }\n }\n };\n var sub = observable.subscribe(handler);\n return function () {\n return sub.unsubscribe();\n };\n });\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar QueryManager = function () {\n function QueryManager(_a) {\n var link = _a.link,\n _b = _a.queryDeduplication,\n queryDeduplication = _b === void 0 ? false : _b,\n store = _a.store,\n _c = _a.onBroadcast,\n onBroadcast = _c === void 0 ? function () {\n return undefined;\n } : _c,\n _d = _a.ssrMode,\n ssrMode = _d === void 0 ? false : _d,\n _e = _a.clientAwareness,\n clientAwareness = _e === void 0 ? {} : _e,\n localState = _a.localState,\n assumeImmutableResults = _a.assumeImmutableResults;\n this.mutationStore = new MutationStore();\n this.queryStore = new QueryStore();\n this.clientAwareness = {};\n this.idCounter = 1;\n this.queries = new Map();\n this.fetchQueryRejectFns = new Map();\n this.transformCache = new (canUseWeakMap ? WeakMap : Map)();\n this.inFlightLinkObservables = new Map();\n this.pollingInfoByQueryId = new Map();\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.dataStore = store;\n this.onBroadcast = onBroadcast;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({\n cache: store.getCache()\n });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n }\n QueryManager.prototype.stop = function () {\n var _this = this;\n this.queries.forEach(function (_info, queryId) {\n _this.stopQueryNoBroadcast(queryId);\n });\n this.fetchQueryRejectFns.forEach(function (reject) {\n reject(process.env.NODE_ENV === \"production\" ? new InvariantError(8) : new InvariantError('QueryManager stopped while query was in flight'));\n });\n };\n QueryManager.prototype.mutate = function (_a) {\n var mutation = _a.mutation,\n variables = _a.variables,\n optimisticResponse = _a.optimisticResponse,\n updateQueriesByName = _a.updateQueries,\n _b = _a.refetchQueries,\n refetchQueries = _b === void 0 ? [] : _b,\n _c = _a.awaitRefetchQueries,\n awaitRefetchQueries = _c === void 0 ? false : _c,\n updateWithProxyFn = _a.update,\n _d = _a.errorPolicy,\n errorPolicy = _d === void 0 ? 'none' : _d,\n fetchPolicy = _a.fetchPolicy,\n _e = _a.context,\n context = _e === void 0 ? {} : _e;\n return __awaiter(this, void 0, void 0, function () {\n var mutationId, generateUpdateQueriesInfo, self;\n var _this = this;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n process.env.NODE_ENV === \"production\" ? invariant(mutation, 9) : invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.');\n process.env.NODE_ENV === \"production\" ? invariant(!fetchPolicy || fetchPolicy === 'no-cache', 10) : invariant(!fetchPolicy || fetchPolicy === 'no-cache', \"Mutations only support a 'no-cache' fetchPolicy. If you don't want to disable the cache, remove your fetchPolicy setting to proceed with the default mutation behavior.\");\n mutationId = this.generateQueryId();\n mutation = this.transform(mutation).document;\n this.setQuery(mutationId, function () {\n return {\n document: mutation\n };\n });\n variables = this.getVariables(mutation, variables);\n if (!this.transform(mutation).hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(mutation, variables, context)];\n case 1:\n variables = _f.sent();\n _f.label = 2;\n case 2:\n generateUpdateQueriesInfo = function () {\n var ret = {};\n if (updateQueriesByName) {\n _this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n if (observableQuery) {\n var queryName = observableQuery.queryName;\n if (queryName && hasOwnProperty.call(updateQueriesByName, queryName)) {\n ret[queryId] = {\n updater: updateQueriesByName[queryName],\n query: _this.queryStore.get(queryId)\n };\n }\n }\n });\n }\n return ret;\n };\n this.mutationStore.initMutation(mutationId, mutation, variables);\n this.dataStore.markMutationInit({\n mutationId: mutationId,\n document: mutation,\n variables: variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n optimisticResponse: optimisticResponse\n });\n this.broadcastQueries();\n self = this;\n return [2, new Promise(function (resolve, reject) {\n var storeResult;\n var error;\n self.getObservableFromLink(mutation, __assign(__assign({}, context), {\n optimisticResponse: optimisticResponse\n }), variables, false).subscribe({\n next: function (result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors\n });\n return;\n }\n self.mutationStore.markMutationResult(mutationId);\n if (fetchPolicy !== 'no-cache') {\n self.dataStore.markMutationResult({\n mutationId: mutationId,\n result: result,\n document: mutation,\n variables: variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn\n });\n }\n storeResult = result;\n },\n error: function (err) {\n self.mutationStore.markMutationError(mutationId, err);\n self.dataStore.markMutationComplete({\n mutationId: mutationId,\n optimisticResponse: optimisticResponse\n });\n self.broadcastQueries();\n self.setQuery(mutationId, function () {\n return {\n document: null\n };\n });\n reject(new ApolloError({\n networkError: err\n }));\n },\n complete: function () {\n if (error) {\n self.mutationStore.markMutationError(mutationId, error);\n }\n self.dataStore.markMutationComplete({\n mutationId: mutationId,\n optimisticResponse: optimisticResponse\n });\n self.broadcastQueries();\n if (error) {\n reject(error);\n return;\n }\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult);\n }\n var refetchQueryPromises = [];\n if (isNonEmptyArray(refetchQueries)) {\n refetchQueries.forEach(function (refetchQuery) {\n if (typeof refetchQuery === 'string') {\n self.queries.forEach(function (_a) {\n var observableQuery = _a.observableQuery;\n if (observableQuery && observableQuery.queryName === refetchQuery) {\n refetchQueryPromises.push(observableQuery.refetch());\n }\n });\n } else {\n var queryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only'\n };\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n refetchQueryPromises.push(self.query(queryOptions));\n }\n });\n }\n Promise.all(awaitRefetchQueries ? refetchQueryPromises : []).then(function () {\n self.setQuery(mutationId, function () {\n return {\n document: null\n };\n });\n if (errorPolicy === 'ignore' && storeResult && graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n resolve(storeResult);\n });\n }\n });\n })];\n }\n });\n });\n };\n QueryManager.prototype.fetchQuery = function (queryId, options, fetchType, fetchMoreForQueryId) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, metadata, _b, fetchPolicy, _c, context, query, variables, storeResult, isNetworkOnly, needToFetch, _d, complete, result, shouldFetch, requestId, cancel, networkResult;\n var _this = this;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = options.metadata, metadata = _a === void 0 ? null : _a, _b = options.fetchPolicy, fetchPolicy = _b === void 0 ? 'cache-first' : _b, _c = options.context, context = _c === void 0 ? {} : _c;\n query = this.transform(options.query).document;\n variables = this.getVariables(query, options.variables);\n if (!this.transform(query).hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(query, variables, context)];\n case 1:\n variables = _e.sent();\n _e.label = 2;\n case 2:\n options = __assign(__assign({}, options), {\n variables: variables\n });\n isNetworkOnly = fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n needToFetch = isNetworkOnly;\n if (!isNetworkOnly) {\n _d = this.dataStore.getCache().diff({\n query: query,\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }), complete = _d.complete, result = _d.result;\n needToFetch = !complete || fetchPolicy === 'cache-and-network';\n storeResult = result;\n }\n shouldFetch = needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n if (hasDirectives(['live'], query)) shouldFetch = true;\n requestId = this.idCounter++;\n cancel = fetchPolicy !== 'no-cache' ? this.updateQueryWatch(queryId, query, options) : undefined;\n this.setQuery(queryId, function () {\n return {\n document: query,\n lastRequestId: requestId,\n invalidated: true,\n cancel: cancel\n };\n });\n this.invalidate(fetchMoreForQueryId);\n this.queryStore.initQuery({\n queryId: queryId,\n document: query,\n storePreviousVariables: shouldFetch,\n variables: variables,\n isPoll: fetchType === FetchType.poll,\n isRefetch: fetchType === FetchType.refetch,\n metadata: metadata,\n fetchMoreForQueryId: fetchMoreForQueryId\n });\n this.broadcastQueries();\n if (shouldFetch) {\n networkResult = this.fetchRequest({\n requestId: requestId,\n queryId: queryId,\n document: query,\n options: options,\n fetchMoreForQueryId: fetchMoreForQueryId\n }).catch(function (error) {\n if (isApolloError(error)) {\n throw error;\n } else {\n if (requestId >= _this.getQuery(queryId).lastRequestId) {\n _this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n _this.invalidate(queryId);\n _this.invalidate(fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n throw new ApolloError({\n networkError: error\n });\n }\n });\n if (fetchPolicy !== 'cache-and-network') {\n return [2, networkResult];\n }\n networkResult.catch(function () {});\n }\n this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n if (this.transform(query).hasForcedResolvers) {\n return [2, this.localState.runResolvers({\n document: query,\n remoteResult: {\n data: storeResult\n },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true\n }).then(function (result) {\n _this.markQueryResult(queryId, result, options, fetchMoreForQueryId);\n _this.broadcastQueries();\n return result;\n })];\n }\n this.broadcastQueries();\n return [2, {\n data: storeResult\n }];\n }\n });\n });\n };\n QueryManager.prototype.markQueryResult = function (queryId, result, _a, fetchMoreForQueryId) {\n var fetchPolicy = _a.fetchPolicy,\n variables = _a.variables,\n errorPolicy = _a.errorPolicy;\n if (fetchPolicy === 'no-cache') {\n this.setQuery(queryId, function () {\n return {\n newData: {\n result: result.data,\n complete: true\n }\n };\n });\n } else {\n this.dataStore.markQueryResult(result, this.getQuery(queryId).document, variables, fetchMoreForQueryId, errorPolicy === 'ignore' || errorPolicy === 'all');\n }\n };\n QueryManager.prototype.queryListenerForObserver = function (queryId, options, observer) {\n var _this = this;\n function invoke(method, argument) {\n if (observer[method]) {\n try {\n observer[method](argument);\n } catch (e) {\n process.env.NODE_ENV === \"production\" || invariant.error(e);\n }\n } else if (method === 'error') {\n process.env.NODE_ENV === \"production\" || invariant.error(argument);\n }\n }\n return function (queryStoreValue, newData) {\n _this.invalidate(queryId, false);\n if (!queryStoreValue) return;\n var _a = _this.getQuery(queryId),\n observableQuery = _a.observableQuery,\n document = _a.document;\n var fetchPolicy = observableQuery ? observableQuery.options.fetchPolicy : options.fetchPolicy;\n if (fetchPolicy === 'standby') return;\n var loading = isNetworkRequestInFlight(queryStoreValue.networkStatus);\n var lastResult = observableQuery && observableQuery.getLastResult();\n var networkStatusChanged = !!(lastResult && lastResult.networkStatus !== queryStoreValue.networkStatus);\n var shouldNotifyIfLoading = options.returnPartialData || !newData && queryStoreValue.previousVariables || networkStatusChanged && options.notifyOnNetworkStatusChange || fetchPolicy === 'cache-only' || fetchPolicy === 'cache-and-network';\n if (loading && !shouldNotifyIfLoading) {\n return;\n }\n var hasGraphQLErrors = isNonEmptyArray(queryStoreValue.graphQLErrors);\n var errorPolicy = observableQuery && observableQuery.options.errorPolicy || options.errorPolicy || 'none';\n if (errorPolicy === 'none' && hasGraphQLErrors || queryStoreValue.networkError) {\n return invoke('error', new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError\n }));\n }\n try {\n var data = void 0;\n var isMissing = void 0;\n if (newData) {\n if (fetchPolicy !== 'no-cache' && fetchPolicy !== 'network-only') {\n _this.setQuery(queryId, function () {\n return {\n newData: null\n };\n });\n }\n data = newData.result;\n isMissing = !newData.complete;\n } else {\n var lastError = observableQuery && observableQuery.getLastError();\n var errorStatusChanged = errorPolicy !== 'none' && (lastError && lastError.graphQLErrors) !== queryStoreValue.graphQLErrors;\n if (lastResult && lastResult.data && !errorStatusChanged) {\n data = lastResult.data;\n isMissing = false;\n } else {\n var diffResult = _this.dataStore.getCache().diff({\n query: document,\n variables: queryStoreValue.previousVariables || queryStoreValue.variables,\n returnPartialData: true,\n optimistic: true\n });\n data = diffResult.result;\n isMissing = !diffResult.complete;\n }\n }\n var stale = isMissing && !(options.returnPartialData || fetchPolicy === 'cache-only');\n var resultFromStore = {\n data: stale ? lastResult && lastResult.data : data,\n loading: loading,\n networkStatus: queryStoreValue.networkStatus,\n stale: stale\n };\n if (errorPolicy === 'all' && hasGraphQLErrors) {\n resultFromStore.errors = queryStoreValue.graphQLErrors;\n }\n invoke('next', resultFromStore);\n } catch (networkError) {\n invoke('error', new ApolloError({\n networkError: networkError\n }));\n }\n };\n };\n QueryManager.prototype.transform = function (document) {\n var transformCache = this.transformCache;\n if (!transformCache.has(document)) {\n var cache = this.dataStore.getCache();\n var transformed = cache.transformDocument(document);\n var forLink = removeConnectionDirectiveFromDocument(cache.transformForLink(transformed));\n var clientQuery = this.localState.clientQuery(transformed);\n var serverQuery = this.localState.serverQuery(forLink);\n var cacheEntry_1 = {\n document: transformed,\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery: clientQuery,\n serverQuery: serverQuery,\n defaultVars: getDefaultValues(getOperationDefinition(transformed))\n };\n var add = function (doc) {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry_1);\n }\n };\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n return transformCache.get(document);\n };\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.transform(document).defaultVars), variables);\n };\n QueryManager.prototype.watchQuery = function (options, shouldSubscribe) {\n if (shouldSubscribe === void 0) {\n shouldSubscribe = true;\n }\n process.env.NODE_ENV === \"production\" ? invariant(options.fetchPolicy !== 'standby', 11) : invariant(options.fetchPolicy !== 'standby', 'client.watchQuery cannot be called with fetchPolicy set to \"standby\"');\n options.variables = this.getVariables(options.query, options.variables);\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n var transformedOptions = __assign({}, options);\n return new ObservableQuery({\n queryManager: this,\n options: transformedOptions,\n shouldSubscribe: shouldSubscribe\n });\n };\n QueryManager.prototype.query = function (options) {\n var _this = this;\n process.env.NODE_ENV === \"production\" ? invariant(options.query, 12) : invariant(options.query, 'query option is required. You must specify your GraphQL document ' + 'in the query option.');\n process.env.NODE_ENV === \"production\" ? invariant(options.query.kind === 'Document', 13) : invariant(options.query.kind === 'Document', 'You must wrap the query string in a \"gql\" tag.');\n process.env.NODE_ENV === \"production\" ? invariant(!options.returnPartialData, 14) : invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.');\n process.env.NODE_ENV === \"production\" ? invariant(!options.pollInterval, 15) : invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.');\n return new Promise(function (resolve, reject) {\n var watchedQuery = _this.watchQuery(options, false);\n _this.fetchQueryRejectFns.set(\"query:\" + watchedQuery.queryId, reject);\n watchedQuery.result().then(resolve, reject).then(function () {\n return _this.fetchQueryRejectFns.delete(\"query:\" + watchedQuery.queryId);\n });\n });\n };\n QueryManager.prototype.generateQueryId = function () {\n return String(this.idCounter++);\n };\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n this.stopPollingQuery(queryId);\n this.queryStore.stopQuery(queryId);\n this.invalidate(queryId);\n };\n QueryManager.prototype.addQueryListener = function (queryId, listener) {\n this.setQuery(queryId, function (_a) {\n var listeners = _a.listeners;\n listeners.add(listener);\n return {\n invalidated: false\n };\n });\n };\n QueryManager.prototype.updateQueryWatch = function (queryId, document, options) {\n var _this = this;\n var cancel = this.getQuery(queryId).cancel;\n if (cancel) cancel();\n var previousResult = function () {\n var previousResult = null;\n var observableQuery = _this.getQuery(queryId).observableQuery;\n if (observableQuery) {\n var lastResult = observableQuery.getLastResult();\n if (lastResult) {\n previousResult = lastResult.data;\n }\n }\n return previousResult;\n };\n return this.dataStore.getCache().watch({\n query: document,\n variables: options.variables,\n optimistic: true,\n previousResult: previousResult,\n callback: function (newData) {\n _this.setQuery(queryId, function () {\n return {\n invalidated: true,\n newData: newData\n };\n });\n }\n });\n };\n QueryManager.prototype.addObservableQuery = function (queryId, observableQuery) {\n this.setQuery(queryId, function () {\n return {\n observableQuery: observableQuery\n };\n });\n };\n QueryManager.prototype.removeObservableQuery = function (queryId) {\n var cancel = this.getQuery(queryId).cancel;\n this.setQuery(queryId, function () {\n return {\n observableQuery: null\n };\n });\n if (cancel) cancel();\n };\n QueryManager.prototype.clearStore = function () {\n this.fetchQueryRejectFns.forEach(function (reject) {\n reject(process.env.NODE_ENV === \"production\" ? new InvariantError(16) : new InvariantError('Store reset while query was in flight (not completed in link chain)'));\n });\n var resetIds = [];\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n if (observableQuery) resetIds.push(queryId);\n });\n this.queryStore.reset(resetIds);\n this.mutationStore.reset();\n return this.dataStore.reset();\n };\n QueryManager.prototype.resetStore = function () {\n var _this = this;\n return this.clearStore().then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n if (includeStandby === void 0) {\n includeStandby = false;\n }\n var observableQueryPromises = [];\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n if (observableQuery) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n if (fetchPolicy !== 'cache-only' && (includeStandby || fetchPolicy !== 'standby')) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n _this.setQuery(queryId, function () {\n return {\n newData: null\n };\n });\n _this.invalidate(queryId);\n }\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n QueryManager.prototype.observeQuery = function (queryId, options, observer) {\n this.addQueryListener(queryId, this.queryListenerForObserver(queryId, options, observer));\n return this.fetchQuery(queryId, options);\n };\n QueryManager.prototype.startQuery = function (queryId, options, listener) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"The QueryManager.startQuery method has been deprecated\");\n this.addQueryListener(queryId, listener);\n this.fetchQuery(queryId, options).catch(function () {\n return undefined;\n });\n return queryId;\n };\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n var query = _a.query,\n fetchPolicy = _a.fetchPolicy,\n variables = _a.variables;\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n var makeObservable = function (variables) {\n return _this.getObservableFromLink(query, {}, variables, false).map(function (result) {\n if (!fetchPolicy || fetchPolicy !== 'no-cache') {\n _this.dataStore.markSubscriptionResult(result, query, variables);\n _this.broadcastQueries();\n }\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors\n });\n }\n return result;\n });\n };\n if (this.transform(query).hasClientExports) {\n var observablePromise_1 = this.localState.addExportedVariables(query, variables).then(makeObservable);\n return new Observable(function (observer) {\n var sub = null;\n observablePromise_1.then(function (observable) {\n return sub = observable.subscribe(observer);\n }, observer.error);\n return function () {\n return sub && sub.unsubscribe();\n };\n });\n }\n return makeObservable(variables);\n };\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n };\n QueryManager.prototype.removeQuery = function (queryId) {\n this.fetchQueryRejectFns.delete(\"query:\" + queryId);\n this.fetchQueryRejectFns.delete(\"fetchRequest:\" + queryId);\n this.getQuery(queryId).subscriptions.forEach(function (x) {\n return x.unsubscribe();\n });\n this.queries.delete(queryId);\n };\n QueryManager.prototype.getCurrentQueryResult = function (observableQuery, optimistic) {\n if (optimistic === void 0) {\n optimistic = true;\n }\n var _a = observableQuery.options,\n variables = _a.variables,\n query = _a.query,\n fetchPolicy = _a.fetchPolicy,\n returnPartialData = _a.returnPartialData;\n var lastResult = observableQuery.getLastResult();\n var newData = this.getQuery(observableQuery.queryId).newData;\n if (newData && newData.complete) {\n return {\n data: newData.result,\n partial: false\n };\n }\n if (fetchPolicy === 'no-cache' || fetchPolicy === 'network-only') {\n return {\n data: undefined,\n partial: false\n };\n }\n var _b = this.dataStore.getCache().diff({\n query: query,\n variables: variables,\n previousResult: lastResult ? lastResult.data : undefined,\n returnPartialData: true,\n optimistic: optimistic\n }),\n result = _b.result,\n complete = _b.complete;\n return {\n data: complete || returnPartialData ? result : void 0,\n partial: !complete\n };\n };\n QueryManager.prototype.getQueryWithPreviousResult = function (queryIdOrObservable) {\n var observableQuery;\n if (typeof queryIdOrObservable === 'string') {\n var foundObserveableQuery = this.getQuery(queryIdOrObservable).observableQuery;\n process.env.NODE_ENV === \"production\" ? invariant(foundObserveableQuery, 17) : invariant(foundObserveableQuery, \"ObservableQuery with this id doesn't exist: \" + queryIdOrObservable);\n observableQuery = foundObserveableQuery;\n } else {\n observableQuery = queryIdOrObservable;\n }\n var _a = observableQuery.options,\n variables = _a.variables,\n query = _a.query;\n return {\n previousResult: this.getCurrentQueryResult(observableQuery, false).data,\n variables: variables,\n document: query\n };\n };\n QueryManager.prototype.broadcastQueries = function () {\n var _this = this;\n this.onBroadcast();\n this.queries.forEach(function (info, id) {\n if (info.invalidated) {\n info.listeners.forEach(function (listener) {\n if (listener) {\n listener(_this.queryStore.get(id), info.newData);\n }\n });\n }\n });\n };\n QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, deduplication) {\n var _this = this;\n if (deduplication === void 0) {\n deduplication = this.queryDeduplication;\n }\n var observable;\n var serverQuery = this.transform(query).serverQuery;\n if (serverQuery) {\n var _a = this,\n inFlightLinkObservables_1 = _a.inFlightLinkObservables,\n link = _a.link;\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), {\n forceFetch: !deduplication\n }))\n };\n context = operation.context;\n if (deduplication) {\n var byVariables_1 = inFlightLinkObservables_1.get(serverQuery) || new Map();\n inFlightLinkObservables_1.set(serverQuery, byVariables_1);\n var varJson_1 = JSON.stringify(variables);\n observable = byVariables_1.get(varJson_1);\n if (!observable) {\n byVariables_1.set(varJson_1, observable = multiplex(execute(link, operation)));\n var cleanup = function () {\n byVariables_1.delete(varJson_1);\n if (!byVariables_1.size) inFlightLinkObservables_1.delete(serverQuery);\n cleanupSub_1.unsubscribe();\n };\n var cleanupSub_1 = observable.subscribe({\n next: cleanup,\n error: cleanup,\n complete: cleanup\n });\n }\n } else {\n observable = multiplex(execute(link, operation));\n }\n } else {\n observable = Observable.of({\n data: {}\n });\n context = this.prepareContext(context);\n }\n var clientQuery = this.transform(query).clientQuery;\n if (clientQuery) {\n observable = asyncMap(observable, function (result) {\n return _this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context: context,\n variables: variables\n });\n });\n }\n return observable;\n };\n QueryManager.prototype.fetchRequest = function (_a) {\n var _this = this;\n var requestId = _a.requestId,\n queryId = _a.queryId,\n document = _a.document,\n options = _a.options,\n fetchMoreForQueryId = _a.fetchMoreForQueryId;\n var variables = options.variables,\n _b = options.errorPolicy,\n errorPolicy = _b === void 0 ? 'none' : _b,\n fetchPolicy = options.fetchPolicy;\n var resultFromStore;\n var errorsFromStore;\n return new Promise(function (resolve, reject) {\n var observable = _this.getObservableFromLink(document, options.context, variables);\n var fqrfId = \"fetchRequest:\" + queryId;\n _this.fetchQueryRejectFns.set(fqrfId, reject);\n var cleanup = function () {\n _this.fetchQueryRejectFns.delete(fqrfId);\n _this.setQuery(queryId, function (_a) {\n var subscriptions = _a.subscriptions;\n subscriptions.delete(subscription);\n });\n };\n var subscription = observable.map(function (result) {\n if (requestId >= _this.getQuery(queryId).lastRequestId) {\n _this.markQueryResult(queryId, result, options, fetchMoreForQueryId);\n _this.queryStore.markQueryResult(queryId, result, fetchMoreForQueryId);\n _this.invalidate(queryId);\n _this.invalidate(fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n if (errorPolicy === 'none' && isNonEmptyArray(result.errors)) {\n return reject(new ApolloError({\n graphQLErrors: result.errors\n }));\n }\n if (errorPolicy === 'all') {\n errorsFromStore = result.errors;\n }\n if (fetchMoreForQueryId || fetchPolicy === 'no-cache') {\n resultFromStore = result.data;\n } else {\n var _a = _this.dataStore.getCache().diff({\n variables: variables,\n query: document,\n optimistic: false,\n returnPartialData: true\n }),\n result_1 = _a.result,\n complete = _a.complete;\n if (complete || options.returnPartialData) {\n resultFromStore = result_1;\n }\n }\n }).subscribe({\n error: function (error) {\n cleanup();\n reject(error);\n },\n complete: function () {\n cleanup();\n resolve({\n data: resultFromStore,\n errors: errorsFromStore,\n loading: false,\n networkStatus: NetworkStatus.ready,\n stale: false\n });\n }\n });\n _this.setQuery(queryId, function (_a) {\n var subscriptions = _a.subscriptions;\n subscriptions.add(subscription);\n });\n });\n };\n QueryManager.prototype.getQuery = function (queryId) {\n return this.queries.get(queryId) || {\n listeners: new Set(),\n invalidated: false,\n document: null,\n newData: null,\n lastRequestId: 1,\n observableQuery: null,\n subscriptions: new Set()\n };\n };\n QueryManager.prototype.setQuery = function (queryId, updater) {\n var prev = this.getQuery(queryId);\n var newInfo = __assign(__assign({}, prev), updater(prev));\n this.queries.set(queryId, newInfo);\n };\n QueryManager.prototype.invalidate = function (queryId, invalidated) {\n if (invalidated === void 0) {\n invalidated = true;\n }\n if (queryId) {\n this.setQuery(queryId, function () {\n return {\n invalidated: invalidated\n };\n });\n }\n };\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) {\n context = {};\n }\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign({}, newContext), {\n clientAwareness: this.clientAwareness\n });\n };\n QueryManager.prototype.checkInFlight = function (queryId) {\n var query = this.queryStore.get(queryId);\n return query && query.networkStatus !== NetworkStatus.ready && query.networkStatus !== NetworkStatus.error;\n };\n QueryManager.prototype.startPollingQuery = function (options, queryId, listener) {\n var _this = this;\n var pollInterval = options.pollInterval;\n process.env.NODE_ENV === \"production\" ? invariant(pollInterval, 18) : invariant(pollInterval, 'Attempted to start a polling query without a polling interval.');\n if (!this.ssrMode) {\n var info = this.pollingInfoByQueryId.get(queryId);\n if (!info) {\n this.pollingInfoByQueryId.set(queryId, info = {});\n }\n info.interval = pollInterval;\n info.options = __assign(__assign({}, options), {\n fetchPolicy: 'network-only'\n });\n var maybeFetch_1 = function () {\n var info = _this.pollingInfoByQueryId.get(queryId);\n if (info) {\n if (_this.checkInFlight(queryId)) {\n poll_1();\n } else {\n _this.fetchQuery(queryId, info.options, FetchType.poll).then(poll_1, poll_1);\n }\n }\n };\n var poll_1 = function () {\n var info = _this.pollingInfoByQueryId.get(queryId);\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch_1, info.interval);\n }\n };\n if (listener) {\n this.addQueryListener(queryId, listener);\n }\n poll_1();\n }\n return queryId;\n };\n QueryManager.prototype.stopPollingQuery = function (queryId) {\n this.pollingInfoByQueryId.delete(queryId);\n };\n return QueryManager;\n}();\nvar DataStore = function () {\n function DataStore(initialCache) {\n this.cache = initialCache;\n }\n DataStore.prototype.getCache = function () {\n return this.cache;\n };\n DataStore.prototype.markQueryResult = function (result, document, variables, fetchMoreForQueryId, ignoreErrors) {\n if (ignoreErrors === void 0) {\n ignoreErrors = false;\n }\n var writeWithErrors = !graphQLResultHasError(result);\n if (ignoreErrors && graphQLResultHasError(result) && result.data) {\n writeWithErrors = true;\n }\n if (!fetchMoreForQueryId && writeWithErrors) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables\n });\n }\n };\n DataStore.prototype.markSubscriptionResult = function (result, document, variables) {\n if (!graphQLResultHasError(result)) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n query: document,\n variables: variables\n });\n }\n };\n DataStore.prototype.markMutationInit = function (mutation) {\n var _this = this;\n if (mutation.optimisticResponse) {\n var optimistic_1;\n if (typeof mutation.optimisticResponse === 'function') {\n optimistic_1 = mutation.optimisticResponse(mutation.variables);\n } else {\n optimistic_1 = mutation.optimisticResponse;\n }\n this.cache.recordOptimisticTransaction(function (c) {\n var orig = _this.cache;\n _this.cache = c;\n try {\n _this.markMutationResult({\n mutationId: mutation.mutationId,\n result: {\n data: optimistic_1\n },\n document: mutation.document,\n variables: mutation.variables,\n updateQueries: mutation.updateQueries,\n update: mutation.update\n });\n } finally {\n _this.cache = orig;\n }\n }, mutation.mutationId);\n }\n };\n DataStore.prototype.markMutationResult = function (mutation) {\n var _this = this;\n if (!graphQLResultHasError(mutation.result)) {\n var cacheWrites_1 = [{\n result: mutation.result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables\n }];\n var updateQueries_1 = mutation.updateQueries;\n if (updateQueries_1) {\n Object.keys(updateQueries_1).forEach(function (id) {\n var _a = updateQueries_1[id],\n query = _a.query,\n updater = _a.updater;\n var _b = _this.cache.diff({\n query: query.document,\n variables: query.variables,\n returnPartialData: true,\n optimistic: false\n }),\n currentQueryResult = _b.result,\n complete = _b.complete;\n if (complete) {\n var nextQueryResult = tryFunctionOrLogError(function () {\n return updater(currentQueryResult, {\n mutationResult: mutation.result,\n queryName: getOperationName(query.document) || undefined,\n queryVariables: query.variables\n });\n });\n if (nextQueryResult) {\n cacheWrites_1.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: query.document,\n variables: query.variables\n });\n }\n }\n });\n }\n this.cache.performTransaction(function (c) {\n cacheWrites_1.forEach(function (write) {\n return c.write(write);\n });\n var update = mutation.update;\n if (update) {\n tryFunctionOrLogError(function () {\n return update(c, mutation.result);\n });\n }\n });\n }\n };\n DataStore.prototype.markMutationComplete = function (_a) {\n var mutationId = _a.mutationId,\n optimisticResponse = _a.optimisticResponse;\n if (optimisticResponse) {\n this.cache.removeOptimistic(mutationId);\n }\n };\n DataStore.prototype.markUpdateQueryResult = function (document, variables, newResult) {\n this.cache.write({\n result: newResult,\n dataId: 'ROOT_QUERY',\n variables: variables,\n query: document\n });\n };\n DataStore.prototype.reset = function () {\n return this.cache.reset();\n };\n return DataStore;\n}();\nvar version = \"2.6.10\";\nvar hasSuggestedDevtools = false;\nvar ApolloClient = function () {\n function ApolloClient(options) {\n var _this = this;\n this.defaultOptions = {};\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n var cache = options.cache,\n _a = options.ssrMode,\n ssrMode = _a === void 0 ? false : _a,\n _b = options.ssrForceFetchDelay,\n ssrForceFetchDelay = _b === void 0 ? 0 : _b,\n connectToDevTools = options.connectToDevTools,\n _c = options.queryDeduplication,\n queryDeduplication = _c === void 0 ? true : _c,\n defaultOptions = options.defaultOptions,\n _d = options.assumeImmutableResults,\n assumeImmutableResults = _d === void 0 ? false : _d,\n resolvers = options.resolvers,\n typeDefs = options.typeDefs,\n fragmentMatcher = options.fragmentMatcher,\n clientAwarenessName = options.name,\n clientAwarenessVersion = options.version;\n var link = options.link;\n if (!link && resolvers) {\n link = ApolloLink.empty();\n }\n if (!link || !cache) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(4) : new InvariantError(\"In order to initialize Apollo Client, you must specify 'link' and 'cache' properties in the options object.\\n\" + \"These options are part of the upgrade requirements when migrating from Apollo Client 1.x to Apollo Client 2.x.\\n\" + \"For more information, please visit: https://www.apollographql.com/docs/tutorial/client.html#apollo-client-setup\");\n }\n this.link = link;\n this.cache = cache;\n this.store = new DataStore(cache);\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || {};\n this.typeDefs = typeDefs;\n if (ssrForceFetchDelay) {\n setTimeout(function () {\n return _this.disableNetworkFetches = false;\n }, ssrForceFetchDelay);\n }\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n var defaultConnectToDevTools = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && !window.__APOLLO_CLIENT__;\n if (typeof connectToDevTools === 'undefined' ? defaultConnectToDevTools : connectToDevTools && typeof window !== 'undefined') {\n window.__APOLLO_CLIENT__ = this;\n }\n if (!hasSuggestedDevtools && process.env.NODE_ENV !== 'production') {\n hasSuggestedDevtools = true;\n if (typeof window !== 'undefined' && window.document && window.top === window.self) {\n if (typeof window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n if (window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('Chrome') > -1) {\n console.debug('Download the Apollo DevTools ' + 'for a better development experience: ' + 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm');\n }\n }\n }\n }\n this.version = version;\n this.localState = new LocalState({\n cache: cache,\n client: this,\n resolvers: resolvers,\n fragmentMatcher: fragmentMatcher\n });\n this.queryManager = new QueryManager({\n link: this.link,\n store: this.store,\n queryDeduplication: queryDeduplication,\n ssrMode: ssrMode,\n clientAwareness: {\n name: clientAwarenessName,\n version: clientAwarenessVersion\n },\n localState: this.localState,\n assumeImmutableResults: assumeImmutableResults,\n onBroadcast: function () {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager.queryStore.getStore(),\n mutations: _this.queryManager.mutationStore.getStore()\n },\n dataWithOptimisticResults: _this.cache.extract(true)\n });\n }\n }\n });\n }\n ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = __assign(__assign({}, this.defaultOptions.watchQuery), options);\n }\n if (this.disableNetworkFetches && (options.fetchPolicy === 'network-only' || options.fetchPolicy === 'cache-and-network')) {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n return this.queryManager.watchQuery(options);\n };\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = __assign(__assign({}, this.defaultOptions.query), options);\n }\n process.env.NODE_ENV === \"production\" ? invariant(options.fetchPolicy !== 'cache-and-network', 5) : invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' + 'client.query can only return a single result. Please use client.watchQuery ' + 'to receive multiple results from the cache and the network, or consider ' + 'using a different fetchPolicy, such as cache-first or network-only.');\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n return this.queryManager.query(options);\n };\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = __assign(__assign({}, this.defaultOptions.mutate), options);\n }\n return this.queryManager.mutate(options);\n };\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n return this.cache.readQuery(options, optimistic);\n };\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n return this.cache.readFragment(options, optimistic);\n };\n ApolloClient.prototype.writeQuery = function (options) {\n var result = this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n return result;\n };\n ApolloClient.prototype.writeFragment = function (options) {\n var result = this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n return result;\n };\n ApolloClient.prototype.writeData = function (options) {\n var result = this.cache.writeData(options);\n this.queryManager.broadcastQueries();\n return result;\n };\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n ApolloClient.prototype.initQueryManager = function () {\n process.env.NODE_ENV === \"production\" || invariant.warn('Calling the initQueryManager method is no longer necessary, ' + 'and it will be removed from ApolloClient in version 3.0.');\n return this.queryManager;\n };\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore();\n }).then(function () {\n return Promise.all(_this.resetStoreCallbacks.map(function (fn) {\n return fn();\n }));\n }).then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore();\n }).then(function () {\n return Promise.all(_this.clearStoreCallbacks.map(function (fn) {\n return fn();\n }));\n });\n };\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n return ApolloClient;\n}();\nexport default ApolloClient;\nexport { ApolloClient, ApolloError, FetchType, NetworkStatus, ObservableQuery, isApolloError };","import { __assign } from 'tslib';\nimport { print } from 'graphql/language/printer';\nimport { InvariantError } from 'ts-invariant';\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json'\n};\nvar defaultOptions = {\n method: 'POST'\n};\nvar fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions\n};\nvar throwServerError = function (response, result, message) {\n var error = new Error(message);\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\nvar parseAndCheckHttpResponse = function (operations) {\n return function (response) {\n return response.text().then(function (bodyText) {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n var parseError = err;\n parseError.name = 'ServerParseError';\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n return Promise.reject(parseError);\n }\n }).then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \" + response.status);\n }\n if (!Array.isArray(result) && !result.hasOwnProperty('data') && !result.hasOwnProperty('errors')) {\n throwServerError(response, result, \"Server response was missing for query '\" + (Array.isArray(operations) ? operations.map(function (op) {\n return op.operationName;\n }) : operations.operationName) + \"'.\");\n }\n return result;\n });\n };\n};\nvar checkFetcher = function (fetcher) {\n if (!fetcher && typeof fetch === 'undefined') {\n var library = 'unfetch';\n if (typeof window === 'undefined') library = 'node-fetch';\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(1) : new InvariantError(\"\\nfetch is not found globally and no fetcher passed, to fix pass a fetch for\\nyour environment like https://www.npmjs.com/package/\" + library + \".\\n\\nFor example:\\nimport fetch from '\" + library + \"';\\nimport { createHttpLink } from 'apollo-link-http';\\n\\nconst link = createHttpLink({ uri: '/graphql', fetch: fetch });\");\n }\n};\nvar createSignalIfSupported = function () {\n if (typeof AbortController === 'undefined') return {\n controller: false,\n signal: false\n };\n var controller = new AbortController();\n var signal = controller.signal;\n return {\n controller: controller,\n signal: signal\n };\n};\nvar selectHttpOptionsAndBody = function (operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = __assign({}, fallbackConfig.options, {\n headers: fallbackConfig.headers,\n credentials: fallbackConfig.credentials\n });\n var http = fallbackConfig.http;\n configs.forEach(function (config) {\n options = __assign({}, options, config.options, {\n headers: __assign({}, options.headers, config.headers)\n });\n if (config.credentials) options.credentials = config.credentials;\n http = __assign({}, http, config.http);\n });\n var operationName = operation.operationName,\n extensions = operation.extensions,\n variables = operation.variables,\n query = operation.query;\n var body = {\n operationName: operationName,\n variables: variables\n };\n if (http.includeExtensions) body.extensions = extensions;\n if (http.includeQuery) body.query = print(query);\n return {\n options: options,\n body: body\n };\n};\nvar serializeFetchParameter = function (p, label) {\n var serialized;\n try {\n serialized = JSON.stringify(p);\n } catch (e) {\n var parseError = process.env.NODE_ENV === \"production\" ? new InvariantError(2) : new InvariantError(\"Network request failed. \" + label + \" is not serializable: \" + e.message);\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\nvar selectURI = function (operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n if (contextURI) {\n return contextURI;\n } else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n } else {\n return fallbackURI || '/graphql';\n }\n};\nexport { checkFetcher, createSignalIfSupported, fallbackHttpConfig, parseAndCheckHttpResponse, selectHttpOptionsAndBody, selectURI, serializeFetchParameter, throwServerError };","import { __assign, __extends } from 'tslib';\nimport { Observable, ApolloLink } from 'apollo-link';\nvar OperationBatcher = function () {\n function OperationBatcher(_a) {\n var batchInterval = _a.batchInterval,\n batchMax = _a.batchMax,\n batchHandler = _a.batchHandler,\n batchKey = _a.batchKey;\n this.queuedRequests = new Map();\n this.batchInterval = batchInterval;\n this.batchMax = batchMax || 0;\n this.batchHandler = batchHandler;\n this.batchKey = batchKey || function () {\n return '';\n };\n }\n OperationBatcher.prototype.enqueueRequest = function (request) {\n var _this = this;\n var requestCopy = __assign({}, request);\n var queued = false;\n var key = this.batchKey(request.operation);\n if (!requestCopy.observable) {\n requestCopy.observable = new Observable(function (observer) {\n if (!_this.queuedRequests.has(key)) {\n _this.queuedRequests.set(key, []);\n }\n if (!queued) {\n _this.queuedRequests.get(key).push(requestCopy);\n queued = true;\n }\n requestCopy.next = requestCopy.next || [];\n if (observer.next) requestCopy.next.push(observer.next.bind(observer));\n requestCopy.error = requestCopy.error || [];\n if (observer.error) requestCopy.error.push(observer.error.bind(observer));\n requestCopy.complete = requestCopy.complete || [];\n if (observer.complete) requestCopy.complete.push(observer.complete.bind(observer));\n if (_this.queuedRequests.get(key).length === 1) {\n _this.scheduleQueueConsumption(key);\n }\n if (_this.queuedRequests.get(key).length === _this.batchMax) {\n _this.consumeQueue(key);\n }\n });\n }\n return requestCopy.observable;\n };\n OperationBatcher.prototype.consumeQueue = function (key) {\n var requestKey = key || '';\n var queuedRequests = this.queuedRequests.get(requestKey);\n if (!queuedRequests) {\n return;\n }\n this.queuedRequests.delete(requestKey);\n var requests = queuedRequests.map(function (queuedRequest) {\n return queuedRequest.operation;\n });\n var forwards = queuedRequests.map(function (queuedRequest) {\n return queuedRequest.forward;\n });\n var observables = [];\n var nexts = [];\n var errors = [];\n var completes = [];\n queuedRequests.forEach(function (batchableRequest, index) {\n observables.push(batchableRequest.observable);\n nexts.push(batchableRequest.next);\n errors.push(batchableRequest.error);\n completes.push(batchableRequest.complete);\n });\n var batchedObservable = this.batchHandler(requests, forwards) || Observable.of();\n var onError = function (error) {\n errors.forEach(function (rejecters) {\n if (rejecters) {\n rejecters.forEach(function (e) {\n return e(error);\n });\n }\n });\n };\n batchedObservable.subscribe({\n next: function (results) {\n if (!Array.isArray(results)) {\n results = [results];\n }\n if (nexts.length !== results.length) {\n var error = new Error(\"server returned results with length \" + results.length + \", expected length of \" + nexts.length);\n error.result = results;\n return onError(error);\n }\n results.forEach(function (result, index) {\n if (nexts[index]) {\n nexts[index].forEach(function (next) {\n return next(result);\n });\n }\n });\n },\n error: onError,\n complete: function () {\n completes.forEach(function (complete) {\n if (complete) {\n complete.forEach(function (c) {\n return c();\n });\n }\n });\n }\n });\n return observables;\n };\n OperationBatcher.prototype.scheduleQueueConsumption = function (key) {\n var _this = this;\n var requestKey = key || '';\n setTimeout(function () {\n if (_this.queuedRequests.get(requestKey) && _this.queuedRequests.get(requestKey).length) {\n _this.consumeQueue(requestKey);\n }\n }, this.batchInterval);\n };\n return OperationBatcher;\n}();\nvar BatchLink = function (_super) {\n __extends(BatchLink, _super);\n function BatchLink(fetchParams) {\n var _this = _super.call(this) || this;\n var _a = fetchParams || {},\n _b = _a.batchInterval,\n batchInterval = _b === void 0 ? 10 : _b,\n _c = _a.batchMax,\n batchMax = _c === void 0 ? 0 : _c,\n _d = _a.batchHandler,\n batchHandler = _d === void 0 ? function () {\n return null;\n } : _d,\n _e = _a.batchKey,\n batchKey = _e === void 0 ? function () {\n return '';\n } : _e;\n _this.batcher = new OperationBatcher({\n batchInterval: batchInterval,\n batchMax: batchMax,\n batchHandler: batchHandler,\n batchKey: batchKey\n });\n if (fetchParams.batchHandler.length <= 1) {\n _this.request = function (operation) {\n return _this.batcher.enqueueRequest({\n operation: operation\n });\n };\n }\n return _this;\n }\n BatchLink.prototype.request = function (operation, forward) {\n return this.batcher.enqueueRequest({\n operation: operation,\n forward: forward\n });\n };\n return BatchLink;\n}(ApolloLink);\nexport { BatchLink, OperationBatcher };","import { __extends, __rest, __assign } from 'tslib';\nimport { ApolloLink, fromError, Observable } from 'apollo-link';\nimport { checkFetcher, selectURI, selectHttpOptionsAndBody, fallbackHttpConfig, serializeFetchParameter, createSignalIfSupported, parseAndCheckHttpResponse } from 'apollo-link-http-common';\nimport { BatchLink } from 'apollo-link-batch';\nvar BatchHttpLink = function (_super) {\n __extends(BatchHttpLink, _super);\n function BatchHttpLink(fetchParams) {\n var _this = _super.call(this) || this;\n var _a = fetchParams || {},\n _b = _a.uri,\n uri = _b === void 0 ? '/graphql' : _b,\n fetcher = _a.fetch,\n includeExtensions = _a.includeExtensions,\n batchInterval = _a.batchInterval,\n batchMax = _a.batchMax,\n batchKey = _a.batchKey,\n requestOptions = __rest(_a, [\"uri\", \"fetch\", \"includeExtensions\", \"batchInterval\", \"batchMax\", \"batchKey\"]);\n checkFetcher(fetcher);\n if (!fetcher) {\n fetcher = fetch;\n }\n var linkConfig = {\n http: {\n includeExtensions: includeExtensions\n },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers\n };\n _this.batchInterval = batchInterval || 10;\n _this.batchMax = batchMax || 10;\n var batchHandler = function (operations) {\n var chosenURI = selectURI(operations[0], uri);\n var context = operations[0].getContext();\n var clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n var _a = context.clientAwareness,\n name_1 = _a.name,\n version = _a.version;\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: __assign({}, clientAwarenessHeaders, context.headers)\n };\n var optsAndBody = operations.map(function (operation) {\n return selectHttpOptionsAndBody(operation, fallbackHttpConfig, linkConfig, contextConfig);\n });\n var loadedBody = optsAndBody.map(function (_a) {\n var body = _a.body;\n return body;\n });\n var options = optsAndBody[0].options;\n if (options.method === 'GET') {\n return fromError(new Error('apollo-link-batch-http does not support GET requests'));\n }\n try {\n options.body = serializeFetchParameter(loadedBody, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n var controller;\n if (!options.signal) {\n var _b = createSignalIfSupported(),\n _controller = _b.controller,\n signal = _b.signal;\n controller = _controller;\n if (controller) options.signal = signal;\n }\n return new Observable(function (observer) {\n fetcher(chosenURI, options).then(function (response) {\n operations.forEach(function (operation) {\n return operation.setContext({\n response: response\n });\n });\n return response;\n }).then(parseAndCheckHttpResponse(operations)).then(function (result) {\n observer.next(result);\n observer.complete();\n return result;\n }).catch(function (err) {\n if (err.name === 'AbortError') return;\n if (err.result && err.result.errors && err.result.data) {\n observer.next(err.result);\n }\n observer.error(err);\n });\n return function () {\n if (controller) controller.abort();\n };\n });\n };\n batchKey = batchKey || function (operation) {\n var context = operation.getContext();\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: context.headers\n };\n return selectURI(operation, uri) + JSON.stringify(contextConfig);\n };\n _this.batcher = new BatchLink({\n batchInterval: _this.batchInterval,\n batchMax: _this.batchMax,\n batchKey: batchKey,\n batchHandler: batchHandler\n });\n return _this;\n }\n BatchHttpLink.prototype.request = function (operation) {\n return this.batcher.request(operation);\n };\n return BatchHttpLink;\n}(ApolloLink);\nexport { BatchHttpLink };","import { visit } from 'graphql/language/visitor';\nimport { InvariantError, invariant } from 'ts-invariant';\nimport { __assign, __spreadArrays } from 'tslib';\nimport stringify from 'fast-json-stable-stringify';\nexport { equal as isEqual } from '@wry/equality';\nfunction isScalarValue(value) {\n return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1;\n}\nfunction isNumberValue(value) {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\nfunction valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n } else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(17) : new InvariantError(\"The inline argument \\\"\" + name.value + \"\\\" of kind \\\"\" + value.kind + \"\\\"\" + 'is not supported. Use variables instead of inline arguments to ' + 'overcome this limitation.');\n }\n}\nfunction storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n var argObj = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = ['connection', 'include', 'skip', 'client', 'rest', 'export'];\nfunction getStoreKeyName(fieldName, args, directives) {\n if (directives && directives['connection'] && directives['connection']['key']) {\n if (directives['connection']['filter'] && directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter'] ? directives['connection']['filter'] : [];\n filterKeys.sort();\n var queryArgs_1 = args;\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = queryArgs_1[key];\n });\n return directives['connection']['key'] + \"(\" + JSON.stringify(filteredArgs_1) + \")\";\n } else {\n return directives['connection']['key'];\n }\n }\n var completeFieldName = fieldName;\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\" + stringifiedArgs + \")\";\n }\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\" + key + \"(\" + JSON.stringify(directives[key]) + \")\";\n } else {\n completeFieldName += \"@\" + key;\n }\n });\n }\n return completeFieldName;\n}\nfunction argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n return null;\n}\nfunction resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nfunction isField(selection) {\n return selection.kind === 'Field';\n}\nfunction isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}\nfunction isIdValue(idObject) {\n return idObject && idObject.type === 'id' && typeof idObject.generated === 'boolean';\n}\nfunction toIdValue(idConfig, generated) {\n if (generated === void 0) {\n generated = false;\n }\n return __assign({\n type: 'id',\n generated: generated\n }, typeof idConfig === 'string' ? {\n id: idConfig,\n typename: undefined\n } : idConfig);\n}\nfunction isJsonValue(jsonObject) {\n return jsonObject != null && typeof jsonObject === 'object' && jsonObject.type === 'json';\n}\nfunction defaultValueFromVariable(node) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(18) : new InvariantError(\"Variable nodes are not supported by valueFromNode\");\n}\nfunction valueFromNode(node, onVariable) {\n if (onVariable === void 0) {\n onVariable = defaultValueFromVariable;\n }\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'ListValue':\n return node.values.map(function (v) {\n return valueFromNode(v, onVariable);\n });\n case 'ObjectValue':\n {\n var value = {};\n for (var _i = 0, _a = node.fields; _i < _a.length; _i++) {\n var field = _a[_i];\n value[field.name.value] = valueFromNode(field.value, onVariable);\n }\n return value;\n }\n default:\n return node.value;\n }\n}\nfunction getDirectiveInfoFromField(field, variables) {\n if (field.directives && field.directives.length) {\n var directiveObj_1 = {};\n field.directives.forEach(function (directive) {\n directiveObj_1[directive.name.value] = argumentsObjectFromField(directive, variables);\n });\n return directiveObj_1;\n }\n return null;\n}\nfunction shouldInclude(selection, variables) {\n if (variables === void 0) {\n variables = {};\n }\n return getInclusionDirectives(selection.directives).every(function (_a) {\n var directive = _a.directive,\n ifArgument = _a.ifArgument;\n var evaledValue = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables[ifArgument.value.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(evaledValue !== void 0, 13) : invariant(evaledValue !== void 0, \"Invalid variable referenced in @\" + directive.name.value + \" directive.\");\n } else {\n evaledValue = ifArgument.value.value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\nfunction getDirectiveNames(doc) {\n var names = [];\n visit(doc, {\n Directive: function (node) {\n names.push(node.name.value);\n }\n });\n return names;\n}\nfunction hasDirectives(names, doc) {\n return getDirectiveNames(doc).some(function (name) {\n return names.indexOf(name) > -1;\n });\n}\nfunction hasClientExports(document) {\n return document && hasDirectives(['client'], document) && hasDirectives(['export'], document);\n}\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\nfunction getInclusionDirectives(directives) {\n return directives ? directives.filter(isInclusionDirective).map(function (directive) {\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n process.env.NODE_ENV === \"production\" ? invariant(directiveArguments && directiveArguments.length === 1, 14) : invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\" + directiveName + \" directive.\");\n var ifArgument = directiveArguments[0];\n process.env.NODE_ENV === \"production\" ? invariant(ifArgument.name && ifArgument.name.value === 'if', 15) : invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\" + directiveName + \" directive.\");\n var ifValue = ifArgument.value;\n process.env.NODE_ENV === \"production\" ? invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 16) : invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\" + directiveName + \" directive must be a variable or a boolean value.\");\n return {\n directive: directive,\n ifArgument: ifArgument\n };\n }) : [];\n}\nfunction getFragmentQueryDocument(document, fragmentName) {\n var actualFragmentName = fragmentName;\n var fragments = [];\n document.definitions.forEach(function (definition) {\n if (definition.kind === 'OperationDefinition') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(11) : new InvariantError(\"Found a \" + definition.operation + \" operation\" + (definition.name ? \" named '\" + definition.name.value + \"'\" : '') + \". \" + 'No operations are allowed when using a fragment as a query. Only fragments are allowed.');\n }\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n if (typeof actualFragmentName === 'undefined') {\n process.env.NODE_ENV === \"production\" ? invariant(fragments.length === 1, 12) : invariant(fragments.length === 1, \"Found \" + fragments.length + \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\");\n actualFragmentName = fragments[0].name.value;\n }\n var query = __assign(__assign({}, document), {\n definitions: __spreadArrays([{\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [{\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName\n }\n }]\n }\n }], document.definitions)\n });\n return query;\n}\nfunction assign(target) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n sources.forEach(function (source) {\n if (typeof source === 'undefined' || source === null) {\n return;\n }\n Object.keys(source).forEach(function (key) {\n target[key] = source[key];\n });\n });\n return target;\n}\nfunction getMutationDefinition(doc) {\n checkDocument(doc);\n var mutationDef = doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.operation === 'mutation';\n })[0];\n process.env.NODE_ENV === \"production\" ? invariant(mutationDef, 1) : invariant(mutationDef, 'Must contain a mutation definition.');\n return mutationDef;\n}\nfunction checkDocument(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc && doc.kind === 'Document', 2) : invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n var operations = doc.definitions.filter(function (d) {\n return d.kind !== 'FragmentDefinition';\n }).map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(3) : new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\" + definition.kind + \"\\\"\");\n }\n return definition;\n });\n process.env.NODE_ENV === \"production\" ? invariant(operations.length <= 1, 4) : invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \" + operations.length + \" operations\");\n return doc;\n}\nfunction getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition';\n })[0];\n}\nfunction getOperationDefinitionOrDie(document) {\n var def = getOperationDefinition(document);\n process.env.NODE_ENV === \"production\" ? invariant(def, 5) : invariant(def, \"GraphQL document is missing an operation\");\n return def;\n}\nfunction getOperationName(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n }).map(function (x) {\n return x.name.value;\n })[0] || null;\n}\nfunction getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'FragmentDefinition';\n });\n}\nfunction getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n process.env.NODE_ENV === \"production\" ? invariant(queryDef && queryDef.operation === 'query', 6) : invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.');\n return queryDef;\n}\nfunction getFragmentDefinition(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc.kind === 'Document', 7) : invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n process.env.NODE_ENV === \"production\" ? invariant(doc.definitions.length <= 1, 8) : invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.');\n var fragmentDef = doc.definitions[0];\n process.env.NODE_ENV === \"production\" ? invariant(fragmentDef.kind === 'FragmentDefinition', 9) : invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.');\n return fragmentDef;\n}\nfunction getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n if (operation === 'query' || operation === 'mutation' || operation === 'subscription') {\n return definition;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(10) : new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.');\n}\nfunction createFragmentMap(fragments) {\n if (fragments === void 0) {\n fragments = [];\n }\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nfunction getDefaultValues(definition) {\n if (definition && definition.variableDefinitions && definition.variableDefinitions.length) {\n var defaultValues = definition.variableDefinitions.filter(function (_a) {\n var defaultValue = _a.defaultValue;\n return defaultValue;\n }).map(function (_a) {\n var variable = _a.variable,\n defaultValue = _a.defaultValue;\n var defaultValueObj = {};\n valueToObjectRepresentation(defaultValueObj, variable.name, defaultValue);\n return defaultValueObj;\n });\n return assign.apply(void 0, __spreadArrays([{}], defaultValues));\n }\n return {};\n}\nfunction variablesInOperation(operation) {\n var names = new Set();\n if (operation.variableDefinitions) {\n for (var _i = 0, _a = operation.variableDefinitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n names.add(definition.variable.name.value);\n }\n }\n return names;\n}\nfunction filterInPlace(array, test, context) {\n var target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}\nvar TYPENAME_FIELD = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename'\n }\n};\nfunction isEmpty(op, fragments) {\n return op.selectionSet.selections.every(function (selection) {\n return selection.kind === 'FragmentSpread' && isEmpty(fragments[selection.name.value], fragments);\n });\n}\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc))) ? null : doc;\n}\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n return dir.name && dir.name === directive.name.value || dir.test && dir.test(directive);\n });\n };\n}\nfunction removeDirectivesFromDocument(directives, doc) {\n var variablesInUse = Object.create(null);\n var variablesToRemove = [];\n var fragmentSpreadsInUse = Object.create(null);\n var fragmentSpreadsToRemove = [];\n var modifiedDoc = nullIfDocIsEmpty(visit(doc, {\n Variable: {\n enter: function (node, _key, parent) {\n if (parent.kind !== 'VariableDefinition') {\n variablesInUse[node.name.value] = true;\n }\n }\n },\n Field: {\n enter: function (node) {\n if (directives && node.directives) {\n var shouldRemoveField = directives.some(function (directive) {\n return directive.remove;\n });\n if (shouldRemoveField && node.directives && node.directives.some(getDirectiveMatcher(directives))) {\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: arg.value.name.value\n });\n }\n });\n }\n if (node.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) {\n fragmentSpreadsToRemove.push({\n name: frag.name.value\n });\n });\n }\n return null;\n }\n }\n }\n },\n FragmentSpread: {\n enter: function (node) {\n fragmentSpreadsInUse[node.name.value] = true;\n }\n },\n Directive: {\n enter: function (node) {\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n }\n }\n }));\n if (modifiedDoc && filterInPlace(variablesToRemove, function (v) {\n return !variablesInUse[v.name];\n }).length) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n if (modifiedDoc && filterInPlace(fragmentSpreadsToRemove, function (fs) {\n return !fragmentSpreadsInUse[fs.name];\n }).length) {\n modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc);\n }\n return modifiedDoc;\n}\nfunction addTypenameToDocument(doc) {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter: function (node, _key, parent) {\n if (parent && parent.kind === 'OperationDefinition') {\n return;\n }\n var selections = node.selections;\n if (!selections) {\n return;\n }\n var skip = selections.some(function (selection) {\n return isField(selection) && (selection.name.value === '__typename' || selection.name.value.lastIndexOf('__', 0) === 0);\n });\n if (skip) {\n return;\n }\n var field = parent;\n if (isField(field) && field.directives && field.directives.some(function (d) {\n return d.name.value === 'export';\n })) {\n return;\n }\n return __assign(__assign({}, node), {\n selections: __spreadArrays(selections, [TYPENAME_FIELD])\n });\n }\n }\n });\n}\nvar connectionRemoveConfig = {\n test: function (directive) {\n var willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (!directive.arguments || !directive.arguments.some(function (arg) {\n return arg.name.value === 'key';\n })) {\n process.env.NODE_ENV === \"production\" || invariant.warn('Removing an @connection directive even though it does not have a key. ' + 'You may want to use the key parameter to specify a store key.');\n }\n }\n return willRemove;\n }\n};\nfunction removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n return selectionSet && selectionSet.selections && selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n });\n}\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n if (!isField(selection)) {\n return true;\n }\n if (!selection.directives) {\n return false;\n }\n return selection.directives.some(getDirectiveMatcher(directives)) || nestedCheck && hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck);\n}\nfunction getDirectivesFromDocument(directives, doc) {\n checkDocument(doc);\n var parentPath;\n return nullIfDocIsEmpty(visit(doc, {\n SelectionSet: {\n enter: function (node, _key, _parent, path) {\n var currentPath = path.join('-');\n if (!parentPath || currentPath === parentPath || !currentPath.startsWith(parentPath)) {\n if (node.selections) {\n var selectionsWithDirectives = node.selections.filter(function (selection) {\n return hasDirectivesInSelection(directives, selection);\n });\n if (hasDirectivesInSelectionSet(directives, node, false)) {\n parentPath = currentPath;\n }\n return __assign(__assign({}, node), {\n selections: selectionsWithDirectives\n });\n } else {\n return null;\n }\n }\n }\n }\n }));\n}\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value && argument.value.kind === 'Variable' && argument.value.name && (aConfig.name === argument.value.name.value || aConfig.test && aConfig.test(argument));\n });\n };\n}\nfunction removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), {\n variableDefinitions: node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) {\n return arg.name === varDef.variable.name.value;\n });\n })\n });\n }\n },\n Field: {\n enter: function (node) {\n var shouldRemoveField = config.some(function (argConfig) {\n return argConfig.remove;\n });\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n }\n },\n Argument: {\n enter: function (node) {\n if (argMatcher(node)) {\n return null;\n }\n }\n }\n }));\n}\nfunction removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) {\n return def.name === node.name.value;\n })) {\n return null;\n }\n }\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: {\n enter: enter\n },\n FragmentDefinition: {\n enter: enter\n }\n }));\n}\nfunction getAllFragmentSpreadsFromSelectionSet(selectionSet) {\n var allFragments = [];\n selectionSet.selections.forEach(function (selection) {\n if ((isField(selection) || isInlineFragment(selection)) && selection.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) {\n return allFragments.push(frag);\n });\n } else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n return allFragments;\n}\nfunction buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n if (definitionOperation === 'query') {\n return document;\n }\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), {\n operation: 'query'\n });\n }\n }\n });\n return modifiedDoc;\n}\nfunction removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([{\n test: function (directive) {\n return directive.name.value === 'client';\n },\n remove: true\n }], document);\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter: function (node) {\n if (node.selectionSet) {\n var isTypenameOnly = node.selectionSet.selections.every(function (selection) {\n return isField(selection) && selection.name.value === '__typename';\n });\n if (isTypenameOnly) {\n return null;\n }\n }\n }\n }\n });\n }\n return modifiedDoc;\n}\nvar canUseWeakMap = typeof WeakMap === 'function' && !(typeof navigator === 'object' && navigator.product === 'ReactNative');\nvar toString = Object.prototype.toString;\nfunction cloneDeep(value) {\n return cloneDeepHelper(value, new Map());\n}\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\":\n {\n if (seen.has(val)) return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n case \"[object Object]\":\n {\n if (seen.has(val)) return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n default:\n return val;\n }\n}\nfunction getEnv() {\n if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n return process.env.NODE_ENV;\n }\n return 'development';\n}\nfunction isEnv(env) {\n return getEnv() === env;\n}\nfunction isProduction() {\n return isEnv('production') === true;\n}\nfunction isDevelopment() {\n return isEnv('development') === true;\n}\nfunction isTest() {\n return isEnv('test') === true;\n}\nfunction tryFunctionOrLogError(f) {\n try {\n return f();\n } catch (e) {\n if (console.error) {\n console.error(e);\n }\n }\n}\nfunction graphQLResultHasError(result) {\n return result.errors && result.errors.length;\n}\nfunction deepFreeze(o) {\n Object.freeze(o);\n Object.getOwnPropertyNames(o).forEach(function (prop) {\n if (o[prop] !== null && (typeof o[prop] === 'object' || typeof o[prop] === 'function') && !Object.isFrozen(o[prop])) {\n deepFreeze(o[prop]);\n }\n });\n return o;\n}\nfunction maybeDeepFreeze(obj) {\n if (isDevelopment() || isTest()) {\n var symbolIsPolyfilled = typeof Symbol === 'function' && typeof Symbol('') === 'string';\n if (!symbolIsPolyfilled) {\n return deepFreeze(obj);\n }\n }\n return obj;\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction mergeDeep() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n return mergeDeepArray(sources);\n}\nfunction mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n if (count > 1) {\n var pastCopies = [];\n target = shallowCopyForMerge(target, pastCopies);\n for (var i = 1; i < count; ++i) {\n target = mergeHelper(target, sources[i], pastCopies);\n }\n }\n return target;\n}\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\nfunction mergeHelper(target, source, pastCopies) {\n if (isObject(source) && isObject(target)) {\n if (Object.isExtensible && !Object.isExtensible(target)) {\n target = shallowCopyForMerge(target, pastCopies);\n }\n Object.keys(source).forEach(function (sourceKey) {\n var sourceValue = source[sourceKey];\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n if (sourceValue !== targetValue) {\n target[sourceKey] = mergeHelper(shallowCopyForMerge(targetValue, pastCopies), sourceValue, pastCopies);\n }\n } else {\n target[sourceKey] = sourceValue;\n }\n });\n return target;\n }\n return source;\n}\nfunction shallowCopyForMerge(value, pastCopies) {\n if (value !== null && typeof value === 'object' && pastCopies.indexOf(value) < 0) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n } else {\n value = __assign({\n __proto__: Object.getPrototypeOf(value)\n }, value);\n }\n pastCopies.push(value);\n }\n return value;\n}\nvar haveWarned = Object.create({});\nfunction warnOnceInDevelopment(msg, type) {\n if (type === void 0) {\n type = 'warn';\n }\n if (!isProduction() && !haveWarned[msg]) {\n if (!isTest()) {\n haveWarned[msg] = true;\n }\n if (type === 'error') {\n console.error(msg);\n } else {\n console.warn(msg);\n }\n }\n}\nfunction stripSymbols(data) {\n return JSON.parse(JSON.stringify(data));\n}\nexport { addTypenameToDocument, argumentsObjectFromField, assign, buildQueryFromSelectionSet, canUseWeakMap, checkDocument, cloneDeep, createFragmentMap, getDefaultValues, getDirectiveInfoFromField, getDirectiveNames, getDirectivesFromDocument, getEnv, getFragmentDefinition, getFragmentDefinitions, getFragmentQueryDocument, getInclusionDirectives, getMainDefinition, getMutationDefinition, getOperationDefinition, getOperationDefinitionOrDie, getOperationName, getQueryDefinition, getStoreKeyName, graphQLResultHasError, hasClientExports, hasDirectives, isDevelopment, isEnv, isField, isIdValue, isInlineFragment, isJsonValue, isNumberValue, isProduction, isScalarValue, isTest, maybeDeepFreeze, mergeDeep, mergeDeepArray, removeArgumentsFromDocument, removeClientSetsFromDocument, removeConnectionDirectiveFromDocument, removeDirectivesFromDocument, removeFragmentSpreadFromDocument, resultKeyNameFromField, shouldInclude, storeKeyNameFromField, stripSymbols, toIdValue, tryFunctionOrLogError, valueFromNode, valueToObjectRepresentation, variablesInOperation, warnOnceInDevelopment };","!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(/