{"version":3,"file":"contentweb/mntv-vend-default.ab12e52c.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/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/use-combined-reducers/lib/index.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(/