@atlassian/aui 10.0.2 → 10.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aui/aui-css-deprecations.js +1 -1
- package/dist/aui/aui-css-deprecations.js.map +1 -1
- package/dist/aui/aui-prototyping-browserfocus.css +1 -1
- package/dist/aui/aui-prototyping-browserfocus.css.map +1 -1
- package/dist/aui/aui-prototyping-design-tokens-api-full.js +4 -9
- package/dist/aui/aui-prototyping-design-tokens-api-full.js.map +1 -1
- package/dist/aui/aui-prototyping-design-tokens-api.js +4 -9
- package/dist/aui/aui-prototyping-design-tokens-api.js.map +1 -1
- package/dist/aui/aui-prototyping.css +10 -10
- package/dist/aui/aui-prototyping.css.map +1 -1
- package/dist/aui/aui-prototyping.js +12 -12
- package/dist/aui/aui-prototyping.js.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.css +10 -10
- package/dist/aui/aui-prototyping.nodeps.css.map +1 -1
- package/dist/aui/aui-prototyping.nodeps.js +12 -12
- package/dist/aui/aui-prototyping.nodeps.js.map +1 -1
- package/dist/aui/fonts/adgs-icons.eot +0 -0
- package/dist/aui/fonts/adgs-icons.ttf +0 -0
- package/dist/aui/fonts/adgs-icons.woff +0 -0
- package/package.json +1 -1
- package/src/less/aui-buttons.less +4 -2
- package/src/less/imports/aui-theme/theme.less +31 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aui-prototyping-design-tokens-api.js","mappings":"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","sources":["webpack://__auiPrototyping/webpack/universalModuleDefinition","webpack://__auiPrototyping/../../../node_modules/bind-event-listener/dist/bind-all.js","webpack://__auiPrototyping/../../../node_modules/bind-event-listener/dist/bind.js","webpack://__auiPrototyping/../../../node_modules/bind-event-listener/dist/index.js","webpack://__auiPrototyping/../../../node_modules/eventemitter2/lib/eventemitter2.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/typeof.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/regenerator/index.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/CacheKey.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/Diagnostics.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/DnsTxtQuery.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/ErrorBoundary.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/EvaluationTypes.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/EventLogger.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/Hashing.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/InitializeResponse.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/Log.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/MemoKey.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/NetworkConfig.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/NetworkCore.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/NetworkFallbackResolver.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/OverrideAdapter.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/SDKFlags.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/SDKType.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/SafeJs.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/SessionID.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StableID.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigClientBase.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigDataAdapter.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigOptionsCommon.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigPlugin.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigTypeFactories.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigTypes.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigUpdateDetails.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigUser.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StorageProvider.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/TypingUtils.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/UUID.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/UrlConfiguration.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/VisibilityObserving.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/index.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/EvaluationResponseDeltas.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/EvaluationStore.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/Network.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/ParamStoreGetterFactory.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/StatsigClient.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/StatsigEvaluationsDataAdapter.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/index.js","webpack://__auiPrototyping/webpack/bootstrap","webpack://__auiPrototyping/webpack/runtime/compat get default export","webpack://__auiPrototyping/webpack/runtime/define property getters","webpack://__auiPrototyping/webpack/runtime/global","webpack://__auiPrototyping/webpack/runtime/hasOwnProperty shorthand","webpack://__auiPrototyping/webpack/runtime/make namespace object","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/subscriptions/Subscriptions.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/atlassian-context/dist/esm/services/is-fedramp/index.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/atlassian-context/dist/esm/common/constants/index.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/compat/types.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/types.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/utils.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/compat/DynamicConfig.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/compat/Layer.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/version.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/construct.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/fetcher/errors.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/fetcher/Fetcher.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/get.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/NoFetchDataAdapter.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/PersistentOverrideAdapter.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/Client.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/FeatureGates.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/platform-feature-flags/dist/esm/debug.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/platform-feature-flags/dist/esm/resolvers.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/platform-feature-flags/dist/esm/index.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/theme-config.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/artifacts/token-names.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/constants.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-token.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-token-value.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/color-utils.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/theme-state-transformer.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/hash.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-theme-html-attrs.js","webpack://__auiPrototyping/./token-themes-generated/aui-prototyping-design-tokens-theme-import-map.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/theme-loading.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/color-mode-listeners.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/contrast-mode-listeners.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/configure-page.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/custom-theme-loading-utils.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/get-increased-contrast-theme.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/get-theme-preferences.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/set-global-theme.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/enable-global-theme.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-theme-styles.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-ssr-auto-script.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-global-theme.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/theme-mutation-observer.js","webpack://__auiPrototyping/../src/js/aui/internal/globalize.js","webpack://__auiPrototyping/../src/js/aui/design-tokens/design-tokens-init.js","webpack://__auiPrototyping/../src/js/aui/design-tokens/design-tokens.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"@atlassian/aui\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@atlassian/aui\"] = factory();\n\telse\n\t\troot[\"AJS\"] = root[\"AJS\"] || {}, root[\"AJS\"][\"DesignTokens\"] = factory();\n})(window, () => {\nreturn ","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = void 0;\nvar bind_1 = require(\"./bind\");\nfunction toOptions(value) {\n if (typeof value === 'undefined') {\n return undefined;\n }\n if (typeof value === 'boolean') {\n return {\n capture: value,\n };\n }\n return value;\n}\nfunction getBinding(original, sharedOptions) {\n if (sharedOptions == null) {\n return original;\n }\n var binding = __assign(__assign({}, original), { options: __assign(__assign({}, toOptions(sharedOptions)), toOptions(original.options)) });\n return binding;\n}\nfunction bindAll(target, bindings, sharedOptions) {\n var unbinds = bindings.map(function (original) {\n var binding = getBinding(original, sharedOptions);\n return (0, bind_1.bind)(target, binding);\n });\n return function unbindAll() {\n unbinds.forEach(function (unbind) { return unbind(); });\n };\n}\nexports.bindAll = bindAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bind = void 0;\nfunction bind(target, _a) {\n var type = _a.type, listener = _a.listener, options = _a.options;\n target.addEventListener(type, listener, options);\n return function unbind() {\n target.removeEventListener(type, listener, options);\n };\n}\nexports.bind = bind;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = exports.bind = void 0;\nvar bind_1 = require(\"./bind\");\nObject.defineProperty(exports, \"bind\", { enumerable: true, get: function () { return bind_1.bind; } });\nvar bind_all_1 = require(\"./bind-all\");\nObject.defineProperty(exports, \"bindAll\", { enumerable: true, get: function () { return bind_all_1.bindAll; } });\n","/*!\r\n * EventEmitter2\r\n * https://github.com/hij1nx/EventEmitter2\r\n *\r\n * Copyright (c) 2013 hij1nx\r\n * Licensed under the MIT license.\r\n */\r\n;!function(undefined) {\r\n\r\n var isArray = Array.isArray ? Array.isArray : function _isArray(obj) {\r\n return Object.prototype.toString.call(obj) === \"[object Array]\";\r\n };\r\n var defaultMaxListeners = 10;\r\n\r\n function init() {\r\n this._events = {};\r\n if (this._conf) {\r\n configure.call(this, this._conf);\r\n }\r\n }\r\n\r\n function configure(conf) {\r\n if (conf) {\r\n this._conf = conf;\r\n\r\n conf.delimiter && (this.delimiter = conf.delimiter);\r\n this._maxListeners = conf.maxListeners !== undefined ? conf.maxListeners : defaultMaxListeners;\r\n\r\n conf.wildcard && (this.wildcard = conf.wildcard);\r\n conf.newListener && (this.newListener = conf.newListener);\r\n conf.verboseMemoryLeak && (this.verboseMemoryLeak = conf.verboseMemoryLeak);\r\n\r\n if (this.wildcard) {\r\n this.listenerTree = {};\r\n }\r\n } else {\r\n this._maxListeners = defaultMaxListeners;\r\n }\r\n }\r\n\r\n function logPossibleMemoryLeak(count, eventName) {\r\n var errorMsg = '(node) warning: possible EventEmitter memory ' +\r\n 'leak detected. ' + count + ' listeners added. ' +\r\n 'Use emitter.setMaxListeners() to increase limit.';\r\n\r\n if(this.verboseMemoryLeak){\r\n errorMsg += ' Event name: ' + eventName + '.';\r\n }\r\n\r\n if(typeof process !== 'undefined' && process.emitWarning){\r\n var e = new Error(errorMsg);\r\n e.name = 'MaxListenersExceededWarning';\r\n e.emitter = this;\r\n e.count = count;\r\n process.emitWarning(e);\r\n } else {\r\n console.error(errorMsg);\r\n\r\n if (console.trace){\r\n console.trace();\r\n }\r\n }\r\n }\r\n\r\n function EventEmitter(conf) {\r\n this._events = {};\r\n this.newListener = false;\r\n this.verboseMemoryLeak = false;\r\n configure.call(this, conf);\r\n }\r\n EventEmitter.EventEmitter2 = EventEmitter; // backwards compatibility for exporting EventEmitter property\r\n\r\n //\r\n // Attention, function return type now is array, always !\r\n // It has zero elements if no any matches found and one or more\r\n // elements (leafs) if there are matches\r\n //\r\n function searchListenerTree(handlers, type, tree, i) {\r\n if (!tree) {\r\n return [];\r\n }\r\n var listeners=[], leaf, len, branch, xTree, xxTree, isolatedBranch, endReached,\r\n typeLength = type.length, currentType = type[i], nextType = type[i+1];\r\n if (i === typeLength && tree._listeners) {\r\n //\r\n // If at the end of the event(s) list and the tree has listeners\r\n // invoke those listeners.\r\n //\r\n if (typeof tree._listeners === 'function') {\r\n handlers && handlers.push(tree._listeners);\r\n return [tree];\r\n } else {\r\n for (leaf = 0, len = tree._listeners.length; leaf < len; leaf++) {\r\n handlers && handlers.push(tree._listeners[leaf]);\r\n }\r\n return [tree];\r\n }\r\n }\r\n\r\n if ((currentType === '*' || currentType === '**') || tree[currentType]) {\r\n //\r\n // If the event emitted is '*' at this part\r\n // or there is a concrete match at this patch\r\n //\r\n if (currentType === '*') {\r\n for (branch in tree) {\r\n if (branch !== '_listeners' && tree.hasOwnProperty(branch)) {\r\n listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i+1));\r\n }\r\n }\r\n return listeners;\r\n } else if(currentType === '**') {\r\n endReached = (i+1 === typeLength || (i+2 === typeLength && nextType === '*'));\r\n if(endReached && tree._listeners) {\r\n // The next element has a _listeners, add it to the handlers.\r\n listeners = listeners.concat(searchListenerTree(handlers, type, tree, typeLength));\r\n }\r\n\r\n for (branch in tree) {\r\n if (branch !== '_listeners' && tree.hasOwnProperty(branch)) {\r\n if(branch === '*' || branch === '**') {\r\n if(tree[branch]._listeners && !endReached) {\r\n listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], typeLength));\r\n }\r\n listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i));\r\n } else if(branch === nextType) {\r\n listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i+2));\r\n } else {\r\n // No match on this one, shift into the tree but not in the type array.\r\n listeners = listeners.concat(searchListenerTree(handlers, type, tree[branch], i));\r\n }\r\n }\r\n }\r\n return listeners;\r\n }\r\n\r\n listeners = listeners.concat(searchListenerTree(handlers, type, tree[currentType], i+1));\r\n }\r\n\r\n xTree = tree['*'];\r\n if (xTree) {\r\n //\r\n // If the listener tree will allow any match for this part,\r\n // then recursively explore all branches of the tree\r\n //\r\n searchListenerTree(handlers, type, xTree, i+1);\r\n }\r\n\r\n xxTree = tree['**'];\r\n if(xxTree) {\r\n if(i < typeLength) {\r\n if(xxTree._listeners) {\r\n // If we have a listener on a '**', it will catch all, so add its handler.\r\n searchListenerTree(handlers, type, xxTree, typeLength);\r\n }\r\n\r\n // Build arrays of matching next branches and others.\r\n for(branch in xxTree) {\r\n if(branch !== '_listeners' && xxTree.hasOwnProperty(branch)) {\r\n if(branch === nextType) {\r\n // We know the next element will match, so jump twice.\r\n searchListenerTree(handlers, type, xxTree[branch], i+2);\r\n } else if(branch === currentType) {\r\n // Current node matches, move into the tree.\r\n searchListenerTree(handlers, type, xxTree[branch], i+1);\r\n } else {\r\n isolatedBranch = {};\r\n isolatedBranch[branch] = xxTree[branch];\r\n searchListenerTree(handlers, type, { '**': isolatedBranch }, i+1);\r\n }\r\n }\r\n }\r\n } else if(xxTree._listeners) {\r\n // We have reached the end and still on a '**'\r\n searchListenerTree(handlers, type, xxTree, typeLength);\r\n } else if(xxTree['*'] && xxTree['*']._listeners) {\r\n searchListenerTree(handlers, type, xxTree['*'], typeLength);\r\n }\r\n }\r\n\r\n return listeners;\r\n }\r\n\r\n function growListenerTree(type, listener) {\r\n\r\n type = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\r\n\r\n //\r\n // Looks for two consecutive '**', if so, don't add the event at all.\r\n //\r\n for(var i = 0, len = type.length; i+1 < len; i++) {\r\n if(type[i] === '**' && type[i+1] === '**') {\r\n return;\r\n }\r\n }\r\n\r\n var tree = this.listenerTree;\r\n var name = type.shift();\r\n\r\n while (name !== undefined) {\r\n\r\n if (!tree[name]) {\r\n tree[name] = {};\r\n }\r\n\r\n tree = tree[name];\r\n\r\n if (type.length === 0) {\r\n\r\n if (!tree._listeners) {\r\n tree._listeners = listener;\r\n }\r\n else {\r\n if (typeof tree._listeners === 'function') {\r\n tree._listeners = [tree._listeners];\r\n }\r\n\r\n tree._listeners.push(listener);\r\n\r\n if (\r\n !tree._listeners.warned &&\r\n this._maxListeners > 0 &&\r\n tree._listeners.length > this._maxListeners\r\n ) {\r\n tree._listeners.warned = true;\r\n logPossibleMemoryLeak.call(this, tree._listeners.length, name);\r\n }\r\n }\r\n return true;\r\n }\r\n name = type.shift();\r\n }\r\n return true;\r\n }\r\n\r\n // By default EventEmitters will print a warning if more than\r\n // 10 listeners are added to it. This is a useful default which\r\n // helps finding memory leaks.\r\n //\r\n // Obviously not all Emitters should be limited to 10. This function allows\r\n // that to be increased. Set to zero for unlimited.\r\n\r\n EventEmitter.prototype.delimiter = '.';\r\n\r\n EventEmitter.prototype.setMaxListeners = function(n) {\r\n if (n !== undefined) {\r\n this._maxListeners = n;\r\n if (!this._conf) this._conf = {};\r\n this._conf.maxListeners = n;\r\n }\r\n };\r\n\r\n EventEmitter.prototype.event = '';\r\n\r\n\r\n EventEmitter.prototype.once = function(event, fn) {\r\n return this._once(event, fn, false);\r\n };\r\n\r\n EventEmitter.prototype.prependOnceListener = function(event, fn) {\r\n return this._once(event, fn, true);\r\n };\r\n\r\n EventEmitter.prototype._once = function(event, fn, prepend) {\r\n this._many(event, 1, fn, prepend);\r\n return this;\r\n };\r\n\r\n EventEmitter.prototype.many = function(event, ttl, fn) {\r\n return this._many(event, ttl, fn, false);\r\n }\r\n\r\n EventEmitter.prototype.prependMany = function(event, ttl, fn) {\r\n return this._many(event, ttl, fn, true);\r\n }\r\n\r\n EventEmitter.prototype._many = function(event, ttl, fn, prepend) {\r\n var self = this;\r\n\r\n if (typeof fn !== 'function') {\r\n throw new Error('many only accepts instances of Function');\r\n }\r\n\r\n function listener() {\r\n if (--ttl === 0) {\r\n self.off(event, listener);\r\n }\r\n return fn.apply(this, arguments);\r\n }\r\n\r\n listener._origin = fn;\r\n\r\n this._on(event, listener, prepend);\r\n\r\n return self;\r\n };\r\n\r\n EventEmitter.prototype.emit = function() {\r\n\r\n this._events || init.call(this);\r\n\r\n var type = arguments[0];\r\n\r\n if (type === 'newListener' && !this.newListener) {\r\n if (!this._events.newListener) {\r\n return false;\r\n }\r\n }\r\n\r\n var al = arguments.length;\r\n var args,l,i,j;\r\n var handler;\r\n\r\n if (this._all && this._all.length) {\r\n handler = this._all.slice();\r\n if (al > 3) {\r\n args = new Array(al);\r\n for (j = 0; j < al; j++) args[j] = arguments[j];\r\n }\r\n\r\n for (i = 0, l = handler.length; i < l; i++) {\r\n this.event = type;\r\n switch (al) {\r\n case 1:\r\n handler[i].call(this, type);\r\n break;\r\n case 2:\r\n handler[i].call(this, type, arguments[1]);\r\n break;\r\n case 3:\r\n handler[i].call(this, type, arguments[1], arguments[2]);\r\n break;\r\n default:\r\n handler[i].apply(this, args);\r\n }\r\n }\r\n }\r\n\r\n if (this.wildcard) {\r\n handler = [];\r\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\r\n searchListenerTree.call(this, handler, ns, this.listenerTree, 0);\r\n } else {\r\n handler = this._events[type];\r\n if (typeof handler === 'function') {\r\n this.event = type;\r\n switch (al) {\r\n case 1:\r\n handler.call(this);\r\n break;\r\n case 2:\r\n handler.call(this, arguments[1]);\r\n break;\r\n case 3:\r\n handler.call(this, arguments[1], arguments[2]);\r\n break;\r\n default:\r\n args = new Array(al - 1);\r\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\r\n handler.apply(this, args);\r\n }\r\n return true;\r\n } else if (handler) {\r\n // need to make copy of handlers because list can change in the middle\r\n // of emit call\r\n handler = handler.slice();\r\n }\r\n }\r\n\r\n if (handler && handler.length) {\r\n if (al > 3) {\r\n args = new Array(al - 1);\r\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\r\n }\r\n for (i = 0, l = handler.length; i < l; i++) {\r\n this.event = type;\r\n switch (al) {\r\n case 1:\r\n handler[i].call(this);\r\n break;\r\n case 2:\r\n handler[i].call(this, arguments[1]);\r\n break;\r\n case 3:\r\n handler[i].call(this, arguments[1], arguments[2]);\r\n break;\r\n default:\r\n handler[i].apply(this, args);\r\n }\r\n }\r\n return true;\r\n } else if (!this._all && type === 'error') {\r\n if (arguments[1] instanceof Error) {\r\n throw arguments[1]; // Unhandled 'error' event\r\n } else {\r\n throw new Error(\"Uncaught, unspecified 'error' event.\");\r\n }\r\n return false;\r\n }\r\n\r\n return !!this._all;\r\n };\r\n\r\n EventEmitter.prototype.emitAsync = function() {\r\n\r\n this._events || init.call(this);\r\n\r\n var type = arguments[0];\r\n\r\n if (type === 'newListener' && !this.newListener) {\r\n if (!this._events.newListener) { return Promise.resolve([false]); }\r\n }\r\n\r\n var promises= [];\r\n\r\n var al = arguments.length;\r\n var args,l,i,j;\r\n var handler;\r\n\r\n if (this._all) {\r\n if (al > 3) {\r\n args = new Array(al);\r\n for (j = 1; j < al; j++) args[j] = arguments[j];\r\n }\r\n for (i = 0, l = this._all.length; i < l; i++) {\r\n this.event = type;\r\n switch (al) {\r\n case 1:\r\n promises.push(this._all[i].call(this, type));\r\n break;\r\n case 2:\r\n promises.push(this._all[i].call(this, type, arguments[1]));\r\n break;\r\n case 3:\r\n promises.push(this._all[i].call(this, type, arguments[1], arguments[2]));\r\n break;\r\n default:\r\n promises.push(this._all[i].apply(this, args));\r\n }\r\n }\r\n }\r\n\r\n if (this.wildcard) {\r\n handler = [];\r\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\r\n searchListenerTree.call(this, handler, ns, this.listenerTree, 0);\r\n } else {\r\n handler = this._events[type];\r\n }\r\n\r\n if (typeof handler === 'function') {\r\n this.event = type;\r\n switch (al) {\r\n case 1:\r\n promises.push(handler.call(this));\r\n break;\r\n case 2:\r\n promises.push(handler.call(this, arguments[1]));\r\n break;\r\n case 3:\r\n promises.push(handler.call(this, arguments[1], arguments[2]));\r\n break;\r\n default:\r\n args = new Array(al - 1);\r\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\r\n promises.push(handler.apply(this, args));\r\n }\r\n } else if (handler && handler.length) {\r\n handler = handler.slice();\r\n if (al > 3) {\r\n args = new Array(al - 1);\r\n for (j = 1; j < al; j++) args[j - 1] = arguments[j];\r\n }\r\n for (i = 0, l = handler.length; i < l; i++) {\r\n this.event = type;\r\n switch (al) {\r\n case 1:\r\n promises.push(handler[i].call(this));\r\n break;\r\n case 2:\r\n promises.push(handler[i].call(this, arguments[1]));\r\n break;\r\n case 3:\r\n promises.push(handler[i].call(this, arguments[1], arguments[2]));\r\n break;\r\n default:\r\n promises.push(handler[i].apply(this, args));\r\n }\r\n }\r\n } else if (!this._all && type === 'error') {\r\n if (arguments[1] instanceof Error) {\r\n return Promise.reject(arguments[1]); // Unhandled 'error' event\r\n } else {\r\n return Promise.reject(\"Uncaught, unspecified 'error' event.\");\r\n }\r\n }\r\n\r\n return Promise.all(promises);\r\n };\r\n\r\n EventEmitter.prototype.on = function(type, listener) {\r\n return this._on(type, listener, false);\r\n };\r\n\r\n EventEmitter.prototype.prependListener = function(type, listener) {\r\n return this._on(type, listener, true);\r\n };\r\n\r\n EventEmitter.prototype.onAny = function(fn) {\r\n return this._onAny(fn, false);\r\n };\r\n\r\n EventEmitter.prototype.prependAny = function(fn) {\r\n return this._onAny(fn, true);\r\n };\r\n\r\n EventEmitter.prototype.addListener = EventEmitter.prototype.on;\r\n\r\n EventEmitter.prototype._onAny = function(fn, prepend){\r\n if (typeof fn !== 'function') {\r\n throw new Error('onAny only accepts instances of Function');\r\n }\r\n\r\n if (!this._all) {\r\n this._all = [];\r\n }\r\n\r\n // Add the function to the event listener collection.\r\n if(prepend){\r\n this._all.unshift(fn);\r\n }else{\r\n this._all.push(fn);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n EventEmitter.prototype._on = function(type, listener, prepend) {\r\n if (typeof type === 'function') {\r\n this._onAny(type, listener);\r\n return this;\r\n }\r\n\r\n if (typeof listener !== 'function') {\r\n throw new Error('on only accepts instances of Function');\r\n }\r\n this._events || init.call(this);\r\n\r\n // To avoid recursion in the case that type == \"newListeners\"! Before\r\n // adding it to the listeners, first emit \"newListeners\".\r\n this.emit('newListener', type, listener);\r\n\r\n if (this.wildcard) {\r\n growListenerTree.call(this, type, listener);\r\n return this;\r\n }\r\n\r\n if (!this._events[type]) {\r\n // Optimize the case of one listener. Don't need the extra array object.\r\n this._events[type] = listener;\r\n }\r\n else {\r\n if (typeof this._events[type] === 'function') {\r\n // Change to array.\r\n this._events[type] = [this._events[type]];\r\n }\r\n\r\n // If we've already got an array, just add\r\n if(prepend){\r\n this._events[type].unshift(listener);\r\n }else{\r\n this._events[type].push(listener);\r\n }\r\n\r\n // Check for listener leak\r\n if (\r\n !this._events[type].warned &&\r\n this._maxListeners > 0 &&\r\n this._events[type].length > this._maxListeners\r\n ) {\r\n this._events[type].warned = true;\r\n logPossibleMemoryLeak.call(this, this._events[type].length, type);\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n EventEmitter.prototype.off = function(type, listener) {\r\n if (typeof listener !== 'function') {\r\n throw new Error('removeListener only takes instances of Function');\r\n }\r\n\r\n var handlers,leafs=[];\r\n\r\n if(this.wildcard) {\r\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\r\n leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0);\r\n }\r\n else {\r\n // does not use listeners(), so no side effect of creating _events[type]\r\n if (!this._events[type]) return this;\r\n handlers = this._events[type];\r\n leafs.push({_listeners:handlers});\r\n }\r\n\r\n for (var iLeaf=0; iLeaf<leafs.length; iLeaf++) {\r\n var leaf = leafs[iLeaf];\r\n handlers = leaf._listeners;\r\n if (isArray(handlers)) {\r\n\r\n var position = -1;\r\n\r\n for (var i = 0, length = handlers.length; i < length; i++) {\r\n if (handlers[i] === listener ||\r\n (handlers[i].listener && handlers[i].listener === listener) ||\r\n (handlers[i]._origin && handlers[i]._origin === listener)) {\r\n position = i;\r\n break;\r\n }\r\n }\r\n\r\n if (position < 0) {\r\n continue;\r\n }\r\n\r\n if(this.wildcard) {\r\n leaf._listeners.splice(position, 1);\r\n }\r\n else {\r\n this._events[type].splice(position, 1);\r\n }\r\n\r\n if (handlers.length === 0) {\r\n if(this.wildcard) {\r\n delete leaf._listeners;\r\n }\r\n else {\r\n delete this._events[type];\r\n }\r\n }\r\n\r\n this.emit(\"removeListener\", type, listener);\r\n\r\n return this;\r\n }\r\n else if (handlers === listener ||\r\n (handlers.listener && handlers.listener === listener) ||\r\n (handlers._origin && handlers._origin === listener)) {\r\n if(this.wildcard) {\r\n delete leaf._listeners;\r\n }\r\n else {\r\n delete this._events[type];\r\n }\r\n\r\n this.emit(\"removeListener\", type, listener);\r\n }\r\n }\r\n\r\n function recursivelyGarbageCollect(root) {\r\n if (root === undefined) {\r\n return;\r\n }\r\n var keys = Object.keys(root);\r\n for (var i in keys) {\r\n var key = keys[i];\r\n var obj = root[key];\r\n if ((obj instanceof Function) || (typeof obj !== \"object\") || (obj === null))\r\n continue;\r\n if (Object.keys(obj).length > 0) {\r\n recursivelyGarbageCollect(root[key]);\r\n }\r\n if (Object.keys(obj).length === 0) {\r\n delete root[key];\r\n }\r\n }\r\n }\r\n recursivelyGarbageCollect(this.listenerTree);\r\n\r\n return this;\r\n };\r\n\r\n EventEmitter.prototype.offAny = function(fn) {\r\n var i = 0, l = 0, fns;\r\n if (fn && this._all && this._all.length > 0) {\r\n fns = this._all;\r\n for(i = 0, l = fns.length; i < l; i++) {\r\n if(fn === fns[i]) {\r\n fns.splice(i, 1);\r\n this.emit(\"removeListenerAny\", fn);\r\n return this;\r\n }\r\n }\r\n } else {\r\n fns = this._all;\r\n for(i = 0, l = fns.length; i < l; i++)\r\n this.emit(\"removeListenerAny\", fns[i]);\r\n this._all = [];\r\n }\r\n return this;\r\n };\r\n\r\n EventEmitter.prototype.removeListener = EventEmitter.prototype.off;\r\n\r\n EventEmitter.prototype.removeAllListeners = function(type) {\r\n if (arguments.length === 0) {\r\n !this._events || init.call(this);\r\n return this;\r\n }\r\n\r\n if (this.wildcard) {\r\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\r\n var leafs = searchListenerTree.call(this, null, ns, this.listenerTree, 0);\r\n\r\n for (var iLeaf=0; iLeaf<leafs.length; iLeaf++) {\r\n var leaf = leafs[iLeaf];\r\n leaf._listeners = null;\r\n }\r\n }\r\n else if (this._events) {\r\n this._events[type] = null;\r\n }\r\n return this;\r\n };\r\n\r\n EventEmitter.prototype.listeners = function(type) {\r\n if (this.wildcard) {\r\n var handlers = [];\r\n var ns = typeof type === 'string' ? type.split(this.delimiter) : type.slice();\r\n searchListenerTree.call(this, handlers, ns, this.listenerTree, 0);\r\n return handlers;\r\n }\r\n\r\n this._events || init.call(this);\r\n\r\n if (!this._events[type]) this._events[type] = [];\r\n if (!isArray(this._events[type])) {\r\n this._events[type] = [this._events[type]];\r\n }\r\n return this._events[type];\r\n };\r\n\r\n EventEmitter.prototype.eventNames = function(){\r\n return Object.keys(this._events);\r\n }\r\n\r\n EventEmitter.prototype.listenerCount = function(type) {\r\n return this.listeners(type).length;\r\n };\r\n\r\n EventEmitter.prototype.listenersAny = function() {\r\n\r\n if(this._all) {\r\n return this._all;\r\n }\r\n else {\r\n return [];\r\n }\r\n\r\n };\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(function() {\r\n return EventEmitter;\r\n });\r\n } else if (typeof exports === 'object') {\r\n // CommonJS\r\n module.exports = EventEmitter;\r\n }\r\n else {\r\n // Browser global.\r\n window.EventEmitter2 = EventEmitter;\r\n }\r\n}();\r\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","\"use strict\";\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getInstance = exports._getStatsigGlobalFlag = exports._getStatsigGlobal = void 0;\nconst Log_1 = require(\"./Log\");\nconst _getStatsigGlobal = () => {\n // Avoid ReferenceError, which is happening with Cloudflare pages\n try {\n return typeof __STATSIG__ !== 'undefined' ? __STATSIG__ : statsigGlobal;\n }\n catch (e) {\n return statsigGlobal;\n }\n};\nexports._getStatsigGlobal = _getStatsigGlobal;\nconst _getStatsigGlobalFlag = (flag) => {\n return (0, exports._getStatsigGlobal)()[flag];\n};\nexports._getStatsigGlobalFlag = _getStatsigGlobalFlag;\nconst _getInstance = (sdkKey) => {\n const gbl = (0, exports._getStatsigGlobal)();\n if (!sdkKey) {\n if (gbl.instances && Object.keys(gbl.instances).length > 1) {\n Log_1.Log.warn('Call made to Statsig global instance without an SDK key but there is more than one client instance. If you are using mulitple clients, please specify the SDK key.');\n }\n return gbl.firstInstance;\n }\n return gbl.instances && gbl.instances[sdkKey];\n};\nexports._getInstance = _getInstance;\nconst GLOBAL_KEY = '__STATSIG__';\nconst _window = typeof window !== 'undefined' ? window : {};\nconst _global = typeof global !== 'undefined' ? global : {};\nconst _globalThis = typeof globalThis !== 'undefined' ? globalThis : {};\nconst statsigGlobal = (_c = (_b = (_a = _window[GLOBAL_KEY]) !== null && _a !== void 0 ? _a : _global[GLOBAL_KEY]) !== null && _b !== void 0 ? _b : _globalThis[GLOBAL_KEY]) !== null && _c !== void 0 ? _c : {\n instance: exports._getInstance,\n};\n_window[GLOBAL_KEY] = statsigGlobal;\n_global[GLOBAL_KEY] = statsigGlobal;\n_globalThis[GLOBAL_KEY] = statsigGlobal;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getStorageKey = exports._getUserStorageKey = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nfunction _getUserStorageKey(sdkKey, user, customKeyGenerator) {\n var _a;\n if (customKeyGenerator) {\n return customKeyGenerator(sdkKey, user);\n }\n const cids = user && user.customIDs ? user.customIDs : {};\n const parts = [\n `uid:${(_a = user === null || user === void 0 ? void 0 : user.userID) !== null && _a !== void 0 ? _a : ''}`,\n `cids:${Object.keys(cids)\n .sort((leftKey, rightKey) => leftKey.localeCompare(rightKey))\n .map((key) => `${key}-${cids[key]}`)\n .join(',')}`,\n `k:${sdkKey}`,\n ];\n return (0, Hashing_1._DJB2)(parts.join('|'));\n}\nexports._getUserStorageKey = _getUserStorageKey;\nfunction _getStorageKey(sdkKey, user, customKeyGenerator) {\n if (user) {\n return _getUserStorageKey(sdkKey, user, customKeyGenerator);\n }\n return (0, Hashing_1._DJB2)(`k:${sdkKey}`);\n}\nexports._getStorageKey = _getStorageKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._makeDataAdapterResult = exports.DataAdapterCore = void 0;\nconst Log_1 = require(\"./Log\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigUser_1 = require(\"./StatsigUser\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst TypedJsonParse_1 = require(\"./TypedJsonParse\");\nconst CACHE_LIMIT = 10;\nclass DataAdapterCore {\n constructor(_adapterName, _cacheSuffix) {\n this._adapterName = _adapterName;\n this._cacheSuffix = _cacheSuffix;\n this._options = null;\n this._sdkKey = null;\n this._lastModifiedStoreKey = `statsig.last_modified_time.${_cacheSuffix}`;\n this._inMemoryCache = new InMemoryCache();\n }\n attach(sdkKey, options, _network) {\n this._sdkKey = sdkKey;\n this._options = options;\n }\n getDataSync(user) {\n const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n const cacheKey = this._getCacheKey(normalized);\n const inMem = this._inMemoryCache.get(cacheKey, normalized);\n if (inMem) {\n return inMem;\n }\n const cache = this._loadFromCache(cacheKey);\n if (cache) {\n this._inMemoryCache.add(cacheKey, cache);\n return this._inMemoryCache.get(cacheKey, normalized);\n }\n return null;\n }\n setData(data, user) {\n const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n const cacheKey = this._getCacheKey(normalized);\n this._inMemoryCache.add(cacheKey, _makeDataAdapterResult('Bootstrap', data, null, normalized));\n }\n _getDataAsyncImpl(current, user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!StorageProvider_1.Storage.isReady()) {\n yield StorageProvider_1.Storage.isReadyResolver();\n }\n const cache = current !== null && current !== void 0 ? current : this.getDataSync(user);\n const ops = [this._fetchAndPrepFromNetwork(cache, user, options)];\n if (options === null || options === void 0 ? void 0 : options.timeoutMs) {\n ops.push(new Promise((r) => setTimeout(r, options.timeoutMs)).then(() => {\n Log_1.Log.debug('Fetching latest value timed out');\n return null;\n }));\n }\n return yield Promise.race(ops);\n });\n }\n _prefetchDataImpl(user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n const cacheKey = this._getCacheKey(normalized);\n const result = yield this._getDataAsyncImpl(null, normalized, options);\n if (result) {\n this._inMemoryCache.add(cacheKey, Object.assign(Object.assign({}, result), { source: 'Prefetch' }));\n }\n });\n }\n _fetchAndPrepFromNetwork(cachedResult, user, options) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const cachedData = (_a = cachedResult === null || cachedResult === void 0 ? void 0 : cachedResult.data) !== null && _a !== void 0 ? _a : null;\n const isCacheValidFor204 = cachedResult != null &&\n this._isCachedResultValidFor204(cachedResult, user);\n const latest = yield this._fetchFromNetwork(cachedData, user, options, isCacheValidFor204);\n if (!latest) {\n Log_1.Log.debug('No response returned for latest value');\n return null;\n }\n const response = (0, TypedJsonParse_1._typedJsonParse)(latest, 'has_updates', 'Response');\n const sdkKey = this._getSdkKey();\n const stableID = StableID_1.StableID.get(sdkKey);\n let result = null;\n if ((response === null || response === void 0 ? void 0 : response.has_updates) === true) {\n result = _makeDataAdapterResult('Network', latest, stableID, user);\n }\n else if (cachedData && (response === null || response === void 0 ? void 0 : response.has_updates) === false) {\n result = _makeDataAdapterResult('NetworkNotModified', cachedData, stableID, user);\n }\n else {\n return null;\n }\n const cacheKey = this._getCacheKey(user);\n this._inMemoryCache.add(cacheKey, result);\n this._writeToCache(cacheKey, result);\n return result;\n });\n }\n _getSdkKey() {\n if (this._sdkKey != null) {\n return this._sdkKey;\n }\n Log_1.Log.error(`${this._adapterName} is not attached to a Client`);\n return '';\n }\n _loadFromCache(cacheKey) {\n var _a;\n const cache = (_a = StorageProvider_1.Storage.getItem) === null || _a === void 0 ? void 0 : _a.call(StorageProvider_1.Storage, cacheKey);\n if (cache == null) {\n return null;\n }\n const result = (0, TypedJsonParse_1._typedJsonParse)(cache, 'source', 'Cached Result');\n return result ? Object.assign(Object.assign({}, result), { source: 'Cache' }) : null;\n }\n _writeToCache(cacheKey, result) {\n StorageProvider_1.Storage.setItem(cacheKey, JSON.stringify(result));\n this._runLocalStorageCacheEviction(cacheKey);\n }\n _runLocalStorageCacheEviction(cacheKey) {\n var _a;\n const lastModifiedTimeMap = (_a = (0, StorageProvider_1._getObjectFromStorage)(this._lastModifiedStoreKey)) !== null && _a !== void 0 ? _a : {};\n lastModifiedTimeMap[cacheKey] = Date.now();\n const evictable = _getEvictableKey(lastModifiedTimeMap, CACHE_LIMIT);\n if (evictable) {\n delete lastModifiedTimeMap[evictable];\n StorageProvider_1.Storage.removeItem(evictable);\n }\n (0, StorageProvider_1._setObjectInStorage)(this._lastModifiedStoreKey, lastModifiedTimeMap);\n }\n}\nexports.DataAdapterCore = DataAdapterCore;\nfunction _makeDataAdapterResult(source, data, stableID, user) {\n return {\n source,\n data,\n receivedAt: Date.now(),\n stableID,\n fullUserHash: (0, StatsigUser_1._getFullUserHash)(user),\n };\n}\nexports._makeDataAdapterResult = _makeDataAdapterResult;\nclass InMemoryCache {\n constructor() {\n this._data = {};\n }\n get(cacheKey, user) {\n var _a;\n const result = this._data[cacheKey];\n const cached = result === null || result === void 0 ? void 0 : result.stableID;\n const provided = (_a = user === null || user === void 0 ? void 0 : user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID;\n if (provided && cached && provided !== cached) {\n Log_1.Log.warn(\"'StatsigUser.customIDs.stableID' mismatch\");\n return null;\n }\n return result;\n }\n add(cacheKey, value) {\n const oldest = _getEvictableKey(this._data, CACHE_LIMIT - 1);\n if (oldest) {\n delete this._data[oldest];\n }\n this._data[cacheKey] = value;\n }\n merge(values) {\n this._data = Object.assign(Object.assign({}, this._data), values);\n }\n}\nfunction _getEvictableKey(data, limit) {\n const keys = Object.keys(data);\n if (keys.length <= limit) {\n return null;\n }\n return keys.reduce((prevKey, currKey) => {\n const prev = data[prevKey];\n const current = data[currKey];\n if (typeof prev === 'object' && typeof current === 'object') {\n return current.receivedAt < prev.receivedAt ? currKey : prevKey;\n }\n return current < prev ? currKey : prevKey;\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Diagnostics = void 0;\nconst MARKER_MAP = new Map();\nconst ACT_START = 'start';\nconst ACT_END = 'end';\nconst DIAGNOSTICS_EVENT = 'statsig::diagnostics';\nexports.Diagnostics = {\n _getMarkers: (sdkKey) => {\n return MARKER_MAP.get(sdkKey);\n },\n _markInitOverallStart: (sdkKey) => {\n _addMarker(sdkKey, _createMarker({}, ACT_START, 'overall'));\n },\n _markInitOverallEnd: (sdkKey, success, evaluationDetails) => {\n _addMarker(sdkKey, _createMarker({\n success,\n error: success\n ? undefined\n : { name: 'InitializeError', message: 'Failed to initialize' },\n evaluationDetails,\n }, ACT_END, 'overall'));\n },\n _markInitNetworkReqStart: (sdkKey, data) => {\n _addMarker(sdkKey, _createMarker(data, ACT_START, 'initialize', 'network_request'));\n },\n _markInitNetworkReqEnd: (sdkKey, data) => {\n _addMarker(sdkKey, _createMarker(data, ACT_END, 'initialize', 'network_request'));\n },\n _markInitProcessStart: (sdkKey) => {\n _addMarker(sdkKey, _createMarker({}, ACT_START, 'initialize', 'process'));\n },\n _markInitProcessEnd: (sdkKey, data) => {\n _addMarker(sdkKey, _createMarker(data, ACT_END, 'initialize', 'process'));\n },\n _clearMarkers: (sdkKey) => {\n MARKER_MAP.delete(sdkKey);\n },\n _formatError(e) {\n if (!(e && typeof e === 'object')) {\n return;\n }\n return {\n code: _safeGetField(e, 'code'),\n name: _safeGetField(e, 'name'),\n message: _safeGetField(e, 'message'),\n };\n },\n _getDiagnosticsData(res, attempt, body, e) {\n var _a;\n return {\n success: (res === null || res === void 0 ? void 0 : res.ok) === true,\n statusCode: res === null || res === void 0 ? void 0 : res.status,\n sdkRegion: (_a = res === null || res === void 0 ? void 0 : res.headers) === null || _a === void 0 ? void 0 : _a.get('x-statsig-region'),\n isDelta: body.includes('\"is_delta\":true') === true ? true : undefined,\n attempt,\n error: exports.Diagnostics._formatError(e),\n };\n },\n _enqueueDiagnosticsEvent(user, logger, sdk, options) {\n const markers = exports.Diagnostics._getMarkers(sdk);\n if (markers == null || markers.length <= 0) {\n return -1;\n }\n const overallInitDuration = markers[markers.length - 1].timestamp - markers[0].timestamp;\n exports.Diagnostics._clearMarkers(sdk);\n const event = _makeDiagnosticsEvent(user, {\n context: 'initialize',\n markers: markers.slice(),\n statsigOptions: options,\n });\n logger.enqueue(event);\n return overallInitDuration;\n },\n};\nfunction _createMarker(data, action, key, step) {\n return Object.assign({ key: key, action: action, step: step, timestamp: Date.now() }, data);\n}\nfunction _makeDiagnosticsEvent(user, data) {\n const latencyEvent = {\n eventName: DIAGNOSTICS_EVENT,\n user,\n value: null,\n metadata: data,\n time: Date.now(),\n };\n return latencyEvent;\n}\nfunction _addMarker(sdkKey, marker) {\n var _a;\n const markers = (_a = MARKER_MAP.get(sdkKey)) !== null && _a !== void 0 ? _a : [];\n markers.push(marker);\n MARKER_MAP.set(sdkKey, markers);\n}\nfunction _safeGetField(data, field) {\n if (field in data) {\n return data[field];\n }\n return undefined;\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._fetchTxtRecords = void 0;\n// See example: https://github.com/statsig-io/private-js-client-monorepo/pull/340\nconst FEATURE_ASSETS_DNS_QUERY = new Uint8Array([\n 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d,\n 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73,\n 0x03, 0x6f, 0x72, 0x67, 0x00, 0x00, 0x10, 0x00, 0x01,\n]);\nconst DNS_QUERY_ENDPOINT = 'https://cloudflare-dns.com/dns-query';\nconst DOMAIN_CHARS = [\n 'i', // initialize\n 'e', // events\n 'd', // dcs\n];\nconst MAX_START_LOOKUP = 200;\nfunction _fetchTxtRecords(networkFunc) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield networkFunc(DNS_QUERY_ENDPOINT, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/dns-message',\n Accept: 'application/dns-message',\n },\n body: FEATURE_ASSETS_DNS_QUERY,\n });\n if (!response.ok) {\n const err = new Error('Failed to fetch TXT records from DNS');\n err.name = 'DnsTxtFetchError';\n throw err;\n }\n const data = yield response.arrayBuffer();\n const bytes = new Uint8Array(data);\n return _parseDnsResponse(bytes);\n });\n}\nexports._fetchTxtRecords = _fetchTxtRecords;\nfunction _parseDnsResponse(input) {\n // loop until we find the first valid domain char. One of [i=, e=, d=]\n const start = input.findIndex((byte, index) => index < MAX_START_LOOKUP &&\n String.fromCharCode(byte) === '=' &&\n DOMAIN_CHARS.includes(String.fromCharCode(input[index - 1])));\n if (start === -1) {\n const err = new Error('Failed to parse TXT records from DNS');\n err.name = 'DnsTxtParseError';\n throw err;\n }\n // decode the remaining bytes as a string\n let result = '';\n for (let i = start - 1; i < input.length; i++) {\n result += String.fromCharCode(input[i]);\n }\n return result.split(',');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorBoundary = exports.EXCEPTION_ENDPOINT = void 0;\nconst Log_1 = require(\"./Log\");\nconst SDKType_1 = require(\"./SDKType\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nexports.EXCEPTION_ENDPOINT = 'https://statsigapi.net/v1/sdk_exception';\nconst UNKNOWN_ERROR = '[Statsig] UnknownError';\nclass ErrorBoundary {\n constructor(_sdkKey, _options, _emitter, _lastSeenError) {\n this._sdkKey = _sdkKey;\n this._options = _options;\n this._emitter = _emitter;\n this._lastSeenError = _lastSeenError;\n this._seen = new Set();\n }\n wrap(instance) {\n try {\n const obj = instance;\n _getAllInstanceMethodNames(obj).forEach((name) => {\n const original = obj[name];\n if ('$EB' in original) {\n return;\n }\n obj[name] = (...args) => {\n return this._capture(name, () => original.apply(instance, args));\n };\n obj[name].$EB = true;\n });\n }\n catch (err) {\n this._onError('eb:wrap', err);\n }\n }\n logError(tag, error) {\n this._onError(tag, error);\n }\n getLastSeenErrorAndReset() {\n const tempError = this._lastSeenError;\n this._lastSeenError = undefined;\n return tempError !== null && tempError !== void 0 ? tempError : null;\n }\n attachErrorIfNoneExists(error) {\n if (this._lastSeenError) {\n return;\n }\n this._lastSeenError = _resolveError(error);\n }\n _capture(tag, task) {\n try {\n const res = task();\n if (res && res instanceof Promise) {\n return res.catch((err) => this._onError(tag, err));\n }\n return res;\n }\n catch (error) {\n this._onError(tag, error);\n return null;\n }\n }\n _onError(tag, error) {\n try {\n Log_1.Log.warn(`Caught error in ${tag}`, { error });\n const impl = () => __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _f, _g;\n const unwrapped = (error ? error : Error(UNKNOWN_ERROR));\n const isError = unwrapped instanceof Error;\n const name = isError ? unwrapped.name : 'No Name';\n const resolvedError = _resolveError(unwrapped);\n this._lastSeenError = resolvedError;\n if (this._seen.has(name)) {\n return;\n }\n this._seen.add(name);\n if ((_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.preventAllNetworkTraffic) {\n (_c = this._emitter) === null || _c === void 0 ? void 0 : _c.call(this, {\n name: 'error',\n error,\n tag,\n });\n return;\n }\n const sdkType = SDKType_1.SDKType._get(this._sdkKey);\n const statsigMetadata = StatsigMetadata_1.StatsigMetadataProvider.get();\n const info = isError ? unwrapped.stack : _getDescription(unwrapped);\n const body = Object.assign({ tag, exception: name, info, statsigOptions: _getStatsigOptionLoggingCopy(this._options) }, Object.assign(Object.assign({}, statsigMetadata), { sdkType }));\n const func = (_f = (_e = (_d = this._options) === null || _d === void 0 ? void 0 : _d.networkConfig) === null || _e === void 0 ? void 0 : _e.networkOverrideFunc) !== null && _f !== void 0 ? _f : fetch;\n yield func(exports.EXCEPTION_ENDPOINT, {\n method: 'POST',\n headers: {\n 'STATSIG-API-KEY': this._sdkKey,\n 'STATSIG-SDK-TYPE': String(sdkType),\n 'STATSIG-SDK-VERSION': String(statsigMetadata.sdkVersion),\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n });\n (_g = this._emitter) === null || _g === void 0 ? void 0 : _g.call(this, {\n name: 'error',\n error,\n tag,\n });\n });\n impl()\n .then(() => {\n /* noop */\n })\n .catch(() => {\n /* noop */\n });\n }\n catch (_error) {\n /* noop */\n }\n }\n}\nexports.ErrorBoundary = ErrorBoundary;\nfunction _resolveError(error) {\n if (error instanceof Error) {\n return error;\n }\n else if (typeof error === 'string') {\n return new Error(error);\n }\n else {\n return new Error('An unknown error occurred.');\n }\n}\nfunction _getDescription(obj) {\n try {\n return JSON.stringify(obj);\n }\n catch (_a) {\n return UNKNOWN_ERROR;\n }\n}\nfunction _getAllInstanceMethodNames(instance) {\n const names = new Set();\n let proto = Object.getPrototypeOf(instance);\n while (proto && proto !== Object.prototype) {\n Object.getOwnPropertyNames(proto)\n .filter((prop) => typeof (proto === null || proto === void 0 ? void 0 : proto[prop]) === 'function')\n .forEach((name) => names.add(name));\n proto = Object.getPrototypeOf(proto);\n }\n return Array.from(names);\n}\nfunction _getStatsigOptionLoggingCopy(options) {\n if (!options) {\n return {};\n }\n const loggingCopy = {};\n Object.entries(options).forEach(([option, value]) => {\n const valueType = typeof value;\n switch (valueType) {\n case 'number':\n case 'bigint':\n case 'boolean':\n loggingCopy[String(option)] = value;\n break;\n case 'string':\n if (value.length < 50) {\n loggingCopy[String(option)] = value;\n }\n else {\n loggingCopy[String(option)] = 'set';\n }\n break;\n case 'object':\n if (option === 'environment') {\n loggingCopy['environment'] = value;\n }\n else if (option === 'networkConfig') {\n loggingCopy['networkConfig'] = value;\n }\n else {\n loggingCopy[String(option)] = value != null ? 'set' : 'unset';\n }\n break;\n default:\n // Ignore other fields\n }\n });\n return loggingCopy;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventLogger = void 0;\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst StatsigEvent_1 = require(\"./StatsigEvent\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UrlConfiguration_1 = require(\"./UrlConfiguration\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst DEFAULT_QUEUE_SIZE = 100;\nconst DEFAULT_FLUSH_INTERVAL_MS = 10000;\nconst MAX_DEDUPER_KEYS = 1000;\nconst DEDUPER_WINDOW_DURATION_MS = 600000;\nconst MAX_FAILED_LOGS = 500;\nconst QUICK_FLUSH_WINDOW_MS = 200;\nconst EVENT_LOGGER_MAP = {};\nconst RetryFailedLogsTrigger = {\n Startup: 'startup',\n GainedFocus: 'gained_focus',\n};\nclass EventLogger {\n static _safeFlushAndForget(sdkKey) {\n var _a;\n (_a = EVENT_LOGGER_MAP[sdkKey]) === null || _a === void 0 ? void 0 : _a.flush().catch(() => {\n // noop\n });\n }\n static _safeRetryFailedLogs(sdkKey) {\n var _a;\n (_a = EVENT_LOGGER_MAP[sdkKey]) === null || _a === void 0 ? void 0 : _a._retryFailedLogs(RetryFailedLogsTrigger.GainedFocus);\n }\n constructor(_sdkKey, _emitter, _network, _options) {\n var _a, _b;\n this._sdkKey = _sdkKey;\n this._emitter = _emitter;\n this._network = _network;\n this._options = _options;\n this._queue = [];\n this._lastExposureTimeMap = {};\n this._nonExposedChecks = {};\n this._hasRunQuickFlush = false;\n this._creationTime = Date.now();\n this._loggingEnabled =\n (_a = _options === null || _options === void 0 ? void 0 : _options.loggingEnabled) !== null && _a !== void 0 ? _a : ((_options === null || _options === void 0 ? void 0 : _options.disableLogging) === true\n ? StatsigOptionsCommon_1.LoggingEnabledOption.disabled\n : StatsigOptionsCommon_1.LoggingEnabledOption.browserOnly);\n if ((_options === null || _options === void 0 ? void 0 : _options.loggingEnabled) && _options.disableLogging !== undefined) {\n Log_1.Log.warn('Detected both loggingEnabled and disableLogging options. loggingEnabled takes precedence - please remove disableLogging.');\n }\n this._maxQueueSize = (_b = _options === null || _options === void 0 ? void 0 : _options.loggingBufferMaxSize) !== null && _b !== void 0 ? _b : DEFAULT_QUEUE_SIZE;\n const config = _options === null || _options === void 0 ? void 0 : _options.networkConfig;\n this._logEventUrlConfig = new UrlConfiguration_1.UrlConfiguration(NetworkConfig_1.Endpoint._rgstr, config === null || config === void 0 ? void 0 : config.logEventUrl, config === null || config === void 0 ? void 0 : config.api, config === null || config === void 0 ? void 0 : config.logEventFallbackUrls);\n }\n setLogEventCompressionMode(mode) {\n this._network.setLogEventCompressionMode(mode);\n }\n setLoggingEnabled(loggingEnabled) {\n this._loggingEnabled = loggingEnabled;\n }\n enqueue(event) {\n if (!this._shouldLogEvent(event)) {\n return;\n }\n this._normalizeAndAppendEvent(event);\n this._quickFlushIfNeeded();\n if (this._queue.length > this._maxQueueSize) {\n EventLogger._safeFlushAndForget(this._sdkKey);\n }\n }\n incrementNonExposureCount(name) {\n var _a;\n const current = (_a = this._nonExposedChecks[name]) !== null && _a !== void 0 ? _a : 0;\n this._nonExposedChecks[name] = current + 1;\n }\n reset() {\n this._lastExposureTimeMap = {};\n }\n start() {\n var _a;\n const isServerEnv = (0, SafeJs_1._isServerEnv)();\n if (isServerEnv && ((_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingEnabled) !== 'always') {\n return;\n }\n EVENT_LOGGER_MAP[this._sdkKey] = this;\n if (!isServerEnv) {\n (0, VisibilityObserving_1._subscribeToVisiblityChanged)((visibility) => {\n if (visibility === 'background') {\n EventLogger._safeFlushAndForget(this._sdkKey);\n }\n else if (visibility === 'foreground') {\n EventLogger._safeRetryFailedLogs(this._sdkKey);\n }\n });\n }\n this._retryFailedLogs(RetryFailedLogsTrigger.Startup);\n this._startBackgroundFlushInterval();\n }\n stop() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._flushIntervalId) {\n clearInterval(this._flushIntervalId);\n this._flushIntervalId = null;\n }\n delete EVENT_LOGGER_MAP[this._sdkKey];\n yield this.flush();\n });\n }\n flush() {\n return __awaiter(this, void 0, void 0, function* () {\n this._appendAndResetNonExposedChecks();\n if (this._queue.length === 0) {\n return;\n }\n const events = this._queue;\n this._queue = [];\n yield this._sendEvents(events);\n });\n }\n /**\n * We 'Quick Flush' following the very first event enqueued\n * within the quick flush window\n */\n _quickFlushIfNeeded() {\n if (this._hasRunQuickFlush) {\n return;\n }\n this._hasRunQuickFlush = true;\n if (Date.now() - this._creationTime > QUICK_FLUSH_WINDOW_MS) {\n return;\n }\n setTimeout(() => EventLogger._safeFlushAndForget(this._sdkKey), QUICK_FLUSH_WINDOW_MS);\n }\n _shouldLogEvent(event) {\n var _a;\n if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingEnabled) !== 'always' && (0, SafeJs_1._isServerEnv)()) {\n return false;\n }\n if (!(0, StatsigEvent_1._isExposureEvent)(event)) {\n return true;\n }\n const user = event.user ? event.user : { statsigEnvironment: undefined };\n const userKey = (0, CacheKey_1._getUserStorageKey)(this._sdkKey, user);\n const metadata = event.metadata ? event.metadata : {};\n const key = [\n event.eventName,\n userKey,\n metadata['gate'],\n metadata['config'],\n metadata['ruleID'],\n metadata['allocatedExperiment'],\n metadata['parameterName'],\n String(metadata['isExplicitParameter']),\n metadata['reason'],\n ].join('|');\n const previous = this._lastExposureTimeMap[key];\n const now = Date.now();\n if (previous && now - previous < DEDUPER_WINDOW_DURATION_MS) {\n return false;\n }\n if (Object.keys(this._lastExposureTimeMap).length > MAX_DEDUPER_KEYS) {\n this._lastExposureTimeMap = {};\n }\n this._lastExposureTimeMap[key] = now;\n return true;\n }\n _sendEvents(events) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n if (this._loggingEnabled === 'disabled') {\n this._saveFailedLogsToStorage(events);\n return false;\n }\n try {\n const isClosing = (0, VisibilityObserving_1._isUnloading)();\n const shouldUseBeacon = isClosing &&\n this._network.isBeaconSupported() &&\n ((_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.networkOverrideFunc) == null;\n this._emitter({\n name: 'pre_logs_flushed',\n events,\n });\n const response = shouldUseBeacon\n ? this._sendEventsViaBeacon(events)\n : yield this._sendEventsViaPost(events);\n if (response.success) {\n this._emitter({\n name: 'logs_flushed',\n events,\n });\n return true;\n }\n else {\n Log_1.Log.warn('Failed to flush events.');\n this._saveFailedLogsToStorage(events);\n return false;\n }\n }\n catch (_c) {\n Log_1.Log.warn('Failed to flush events.');\n return false;\n }\n });\n }\n _sendEventsViaPost(events) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this._network.post(this._getRequestData(events));\n const code = (_a = result === null || result === void 0 ? void 0 : result.code) !== null && _a !== void 0 ? _a : -1;\n return { success: code >= 200 && code < 300 };\n });\n }\n _sendEventsViaBeacon(events) {\n return {\n success: this._network.beacon(this._getRequestData(events)),\n };\n }\n _getRequestData(events) {\n return {\n sdkKey: this._sdkKey,\n data: {\n events,\n },\n urlConfig: this._logEventUrlConfig,\n retries: 3,\n isCompressable: true,\n params: {\n [NetworkConfig_1.NetworkParam.EventCount]: String(events.length),\n },\n credentials: 'same-origin',\n };\n }\n _saveFailedLogsToStorage(events) {\n while (events.length > MAX_FAILED_LOGS) {\n events.shift();\n }\n const storageKey = this._getStorageKey();\n try {\n (0, StorageProvider_1._setObjectInStorage)(storageKey, events);\n }\n catch (_a) {\n Log_1.Log.warn('Unable to save failed logs to storage');\n }\n }\n _retryFailedLogs(trigger) {\n const storageKey = this._getStorageKey();\n (() => __awaiter(this, void 0, void 0, function* () {\n if (!StorageProvider_1.Storage.isReady()) {\n yield StorageProvider_1.Storage.isReadyResolver();\n }\n const events = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n if (!events) {\n return;\n }\n if (trigger === RetryFailedLogsTrigger.Startup) {\n StorageProvider_1.Storage.removeItem(storageKey);\n }\n const isSuccess = yield this._sendEvents(events);\n if (isSuccess && trigger === RetryFailedLogsTrigger.GainedFocus) {\n StorageProvider_1.Storage.removeItem(storageKey);\n }\n }))().catch(() => {\n Log_1.Log.warn('Failed to flush stored logs');\n });\n }\n _getStorageKey() {\n return `statsig.failed_logs.${(0, Hashing_1._DJB2)(this._sdkKey)}`;\n }\n _normalizeAndAppendEvent(event) {\n if (event.user) {\n event.user = Object.assign({}, event.user);\n delete event.user.privateAttributes;\n }\n const extras = {};\n const currentPage = this._getCurrentPageUrl();\n if (currentPage) {\n extras.statsigMetadata = { currentPage };\n }\n const final = Object.assign(Object.assign({}, event), extras);\n Log_1.Log.debug('Enqueued Event:', final);\n this._queue.push(final);\n }\n _appendAndResetNonExposedChecks() {\n if (Object.keys(this._nonExposedChecks).length === 0) {\n return;\n }\n this._normalizeAndAppendEvent({\n eventName: 'statsig::non_exposed_checks',\n user: null,\n time: Date.now(),\n metadata: {\n checks: Object.assign({}, this._nonExposedChecks),\n },\n });\n this._nonExposedChecks = {};\n }\n _getCurrentPageUrl() {\n var _a;\n if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.includeCurrentPageUrlWithEvents) === false) {\n return;\n }\n return (0, SafeJs_1._getCurrentPageUrlSafe)();\n }\n _startBackgroundFlushInterval() {\n var _a, _b;\n const flushInterval = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingIntervalMs) !== null && _b !== void 0 ? _b : DEFAULT_FLUSH_INTERVAL_MS;\n const intervalId = setInterval(() => {\n const logger = EVENT_LOGGER_MAP[this._sdkKey];\n if (!logger || logger._flushIntervalId !== intervalId) {\n clearInterval(intervalId);\n }\n else {\n EventLogger._safeFlushAndForget(this._sdkKey);\n }\n }, flushInterval);\n this._flushIntervalId = intervalId;\n }\n}\nexports.EventLogger = EventLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getSortedObject = exports._DJB2Object = exports._DJB2 = void 0;\nconst TypingUtils_1 = require(\"./TypingUtils\");\nconst _DJB2 = (value) => {\n let hash = 0;\n for (let i = 0; i < value.length; i++) {\n const character = value.charCodeAt(i);\n hash = (hash << 5) - hash + character;\n hash = hash & hash; // Convert to 32bit integer\n }\n return String(hash >>> 0);\n};\nexports._DJB2 = _DJB2;\nconst _DJB2Object = (value, maxLevels) => {\n return (0, exports._DJB2)(JSON.stringify((0, exports._getSortedObject)(value, maxLevels)));\n};\nexports._DJB2Object = _DJB2Object;\nconst _getSortedObject = (object, maxDepth) => {\n if (object == null) {\n return null;\n }\n const keys = Object.keys(object).sort();\n const sortedObject = {};\n keys.forEach((key) => {\n const value = object[key];\n if (maxDepth === 0 || (0, TypingUtils_1._typeOf)(value) !== 'object') {\n sortedObject[key] = value;\n return;\n }\n sortedObject[key] = (0, exports._getSortedObject)(value, maxDepth != null ? maxDepth - 1 : maxDepth);\n });\n return sortedObject;\n};\nexports._getSortedObject = _getSortedObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\n/* eslint-disable no-console */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Log = exports.LogLevel = void 0;\n// intentionally spaced for formatting\nconst DEBUG = ' DEBUG ';\nconst _INFO = ' INFO ';\nconst _WARN = ' WARN ';\nconst ERROR = ' ERROR ';\nfunction addTag(args) {\n args.unshift('[Statsig]');\n return args; // ['[Statsig]', ...args];\n}\nexports.LogLevel = {\n None: 0,\n Error: 1,\n Warn: 2,\n Info: 3,\n Debug: 4,\n};\nclass Log {\n static info(...args) {\n if (Log.level >= exports.LogLevel.Info) {\n console.info(_INFO, ...addTag(args));\n }\n }\n static debug(...args) {\n if (Log.level >= exports.LogLevel.Debug) {\n console.debug(DEBUG, ...addTag(args));\n }\n }\n static warn(...args) {\n if (Log.level >= exports.LogLevel.Warn) {\n console.warn(_WARN, ...addTag(args));\n }\n }\n static error(...args) {\n if (Log.level >= exports.LogLevel.Error) {\n console.error(ERROR, ...addTag(args));\n }\n }\n}\nexports.Log = Log;\nLog.level = exports.LogLevel.Warn;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMemoKey = exports.MemoPrefix = void 0;\nexports.MemoPrefix = {\n _gate: 'g',\n _dynamicConfig: 'c',\n _experiment: 'e',\n _layer: 'l',\n _paramStore: 'p',\n};\nconst EXIST_KEYS = new Set([\n// Add keys that should be memoized based only on their existence, not their value\n]);\nconst DO_NOT_MEMO_KEYS = new Set([\n // Add keys that if exist, should not be memoized\n 'userPersistedValues',\n]);\nfunction createMemoKey(prefix, name, options) {\n let cacheKey = `${prefix}|${name}`;\n if (!options) {\n return cacheKey;\n }\n for (const key of Object.keys(options)) {\n if (DO_NOT_MEMO_KEYS.has(key)) {\n return undefined;\n }\n if (EXIST_KEYS.has(key)) {\n cacheKey += `|${key}=true`;\n }\n else {\n cacheKey += `|${key}=${options[key]}`;\n }\n }\n return cacheKey;\n}\nexports.createMemoKey = createMemoKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkParam = exports.NetworkDefault = exports.Endpoint = void 0;\nexports.Endpoint = {\n _initialize: 'initialize',\n _rgstr: 'rgstr',\n _download_config_specs: 'download_config_specs',\n};\nexports.NetworkDefault = {\n [exports.Endpoint._rgstr]: 'https://prodregistryv2.org/v1',\n [exports.Endpoint._initialize]: 'https://featureassets.org/v1',\n [exports.Endpoint._download_config_specs]: 'https://api.statsigcdn.com/v1',\n};\nexports.NetworkParam = {\n EventCount: 'ec',\n SdkKey: 'k',\n SdkType: 'st',\n SdkVersion: 'sv',\n Time: 't',\n SessionID: 'sid',\n StatsigEncoded: 'se',\n IsGzipped: 'gz',\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkCore = void 0;\nrequire(\"./$_StatsigGlobal\");\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst Diagnostics_1 = require(\"./Diagnostics\");\nconst Log_1 = require(\"./Log\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst NetworkFallbackResolver_1 = require(\"./NetworkFallbackResolver\");\nconst SDKFlags_1 = require(\"./SDKFlags\");\nconst SDKType_1 = require(\"./SDKType\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigClientEventEmitter_1 = require(\"./StatsigClientEventEmitter\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst DEFAULT_TIMEOUT_MS = 10000;\nconst BACKOFF_BASE_MS = 500;\nconst BACKOFF_MAX_MS = 30000;\nconst RATE_LIMIT_WINDOW_MS = 1000;\nconst RATE_LIMIT_MAX_REQ_COUNT = 50;\nconst LEAK_RATE = RATE_LIMIT_MAX_REQ_COUNT / RATE_LIMIT_WINDOW_MS;\nconst RETRYABLE_CODES = new Set([408, 500, 502, 503, 504, 522, 524, 599]);\nclass NetworkCore {\n constructor(options, _emitter) {\n this._emitter = _emitter;\n this._errorBoundary = null;\n this._timeout = DEFAULT_TIMEOUT_MS;\n this._netConfig = {};\n this._options = {};\n this._leakyBucket = {};\n this._lastUsedInitUrl = null;\n if (options) {\n this._options = options;\n }\n if (this._options.networkConfig) {\n this._netConfig = this._options.networkConfig;\n }\n if (this._netConfig.networkTimeoutMs) {\n this._timeout = this._netConfig.networkTimeoutMs;\n }\n this._fallbackResolver = new NetworkFallbackResolver_1.NetworkFallbackResolver(this._options);\n this.setLogEventCompressionMode(this._getLogEventCompressionMode(options));\n }\n setLogEventCompressionMode(mode) {\n this._options.logEventCompressionMode = mode;\n }\n setErrorBoundary(errorBoundary) {\n this._errorBoundary = errorBoundary;\n this._errorBoundary.wrap(this);\n this._errorBoundary.wrap(this._fallbackResolver);\n this._fallbackResolver.setErrorBoundary(errorBoundary);\n }\n isBeaconSupported() {\n return (typeof navigator !== 'undefined' &&\n typeof navigator.sendBeacon === 'function');\n }\n getLastUsedInitUrlAndReset() {\n const tempUrl = this._lastUsedInitUrl;\n this._lastUsedInitUrl = null;\n return tempUrl;\n }\n beacon(args) {\n if (!_ensureValidSdkKey(args)) {\n return false;\n }\n const argsInternal = this._getInternalRequestArgs('POST', args);\n const url = this._getPopulatedURL(argsInternal);\n const nav = navigator;\n return nav.sendBeacon.bind(nav)(url, argsInternal.body);\n }\n post(args) {\n return __awaiter(this, void 0, void 0, function* () {\n const argsInternal = this._getInternalRequestArgs('POST', args);\n this._tryEncodeBody(argsInternal);\n yield this._tryToCompressBody(argsInternal);\n return this._sendRequest(argsInternal);\n });\n }\n get(args) {\n const argsInternal = this._getInternalRequestArgs('GET', args);\n return this._sendRequest(argsInternal);\n }\n _sendRequest(args) {\n var _a, _b, _c, _d;\n return __awaiter(this, void 0, void 0, function* () {\n if (!_ensureValidSdkKey(args)) {\n return null;\n }\n if (this._netConfig.preventAllNetworkTraffic) {\n return null;\n }\n const { method, body, retries, attempt } = args;\n const endpoint = args.urlConfig.endpoint;\n if (this._isRateLimited(endpoint)) {\n Log_1.Log.warn(`Request to ${endpoint} was blocked because you are making requests too frequently.`);\n return null;\n }\n const currentAttempt = attempt !== null && attempt !== void 0 ? attempt : 1;\n const abortController = typeof AbortController !== 'undefined' ? new AbortController() : null;\n const timeoutHandle = setTimeout(() => {\n abortController === null || abortController === void 0 ? void 0 : abortController.abort(`Timeout of ${this._timeout}ms expired.`);\n }, this._timeout);\n const populatedUrl = this._getPopulatedURL(args);\n let response = null;\n const keepalive = (0, VisibilityObserving_1._isUnloading)();\n try {\n const config = {\n method,\n body,\n headers: Object.assign({}, args.headers),\n signal: abortController === null || abortController === void 0 ? void 0 : abortController.signal,\n priority: args.priority,\n keepalive,\n };\n _tryMarkInitStart(args, currentAttempt);\n const bucket = this._leakyBucket[endpoint];\n if (bucket) {\n bucket.lastRequestTime = Date.now();\n this._leakyBucket[endpoint] = bucket;\n }\n const func = (_a = this._netConfig.networkOverrideFunc) !== null && _a !== void 0 ? _a : fetch;\n response = yield func(populatedUrl, config);\n clearTimeout(timeoutHandle);\n if (!response.ok) {\n const text = yield response.text().catch(() => 'No Text');\n const err = new Error(`NetworkError: ${populatedUrl} ${text}`);\n err.name = 'NetworkError';\n throw err;\n }\n const text = yield response.text();\n _tryMarkInitEnd(args, response, currentAttempt, text);\n this._fallbackResolver.tryBumpExpiryTime(args.sdkKey, args.urlConfig);\n return {\n body: text,\n code: response.status,\n };\n }\n catch (error) {\n const errorMessage = _getErrorMessage(abortController, error);\n const timedOut = _didTimeout(abortController);\n _tryMarkInitEnd(args, response, currentAttempt, '', error);\n const fallbackUpdated = yield this._fallbackResolver.tryFetchUpdatedFallbackInfo(args.sdkKey, args.urlConfig, errorMessage, timedOut);\n if (fallbackUpdated) {\n args.fallbackUrl = this._fallbackResolver.getActiveFallbackUrl(args.sdkKey, args.urlConfig);\n }\n if (!retries ||\n currentAttempt > retries ||\n !RETRYABLE_CODES.has((_b = response === null || response === void 0 ? void 0 : response.status) !== null && _b !== void 0 ? _b : 500)) {\n (_c = this._emitter) === null || _c === void 0 ? void 0 : _c.call(this, {\n name: 'error',\n error,\n tag: StatsigClientEventEmitter_1.ErrorTag.NetworkError,\n requestArgs: args,\n });\n const formattedErrorMsg = `A networking error occurred during ${method} request to ${populatedUrl}.`;\n Log_1.Log.error(formattedErrorMsg, errorMessage, error);\n (_d = this._errorBoundary) === null || _d === void 0 ? void 0 : _d.attachErrorIfNoneExists(formattedErrorMsg);\n return null;\n }\n yield _exponentialBackoff(currentAttempt);\n return this._sendRequest(Object.assign(Object.assign({}, args), { retries, attempt: currentAttempt + 1 }));\n }\n });\n }\n _getLogEventCompressionMode(options) {\n // Handle backward compatibility for deprecated disableCompression flag\n let compressionMode = options === null || options === void 0 ? void 0 : options.logEventCompressionMode;\n if (!compressionMode && (options === null || options === void 0 ? void 0 : options.disableCompression) === true) {\n compressionMode = StatsigOptionsCommon_1.LogEventCompressionMode.Disabled;\n }\n // Default to enabled if unset\n if (!compressionMode) {\n compressionMode = StatsigOptionsCommon_1.LogEventCompressionMode.Enabled;\n }\n return compressionMode;\n }\n _isRateLimited(endpoint) {\n var _a;\n const now = Date.now();\n const bucket = (_a = this._leakyBucket[endpoint]) !== null && _a !== void 0 ? _a : {\n count: 0,\n lastRequestTime: now,\n };\n const elapsed = now - bucket.lastRequestTime;\n const leakedRequests = Math.floor(elapsed * LEAK_RATE);\n bucket.count = Math.max(0, bucket.count - leakedRequests);\n if (bucket.count >= RATE_LIMIT_MAX_REQ_COUNT) {\n return true;\n }\n bucket.count += 1;\n bucket.lastRequestTime = now;\n this._leakyBucket[endpoint] = bucket;\n return false;\n }\n _getPopulatedURL(args) {\n var _a;\n const url = (_a = args.fallbackUrl) !== null && _a !== void 0 ? _a : args.urlConfig.getUrl();\n if (args.urlConfig.endpoint === NetworkConfig_1.Endpoint._initialize ||\n args.urlConfig.endpoint === NetworkConfig_1.Endpoint._download_config_specs) {\n this._lastUsedInitUrl = url;\n }\n const params = Object.assign({ [NetworkConfig_1.NetworkParam.SdkKey]: args.sdkKey, [NetworkConfig_1.NetworkParam.SdkType]: SDKType_1.SDKType._get(args.sdkKey), [NetworkConfig_1.NetworkParam.SdkVersion]: StatsigMetadata_1.SDK_VERSION, [NetworkConfig_1.NetworkParam.Time]: String(Date.now()), [NetworkConfig_1.NetworkParam.SessionID]: SessionID_1.SessionID.get(args.sdkKey) }, args.params);\n const query = Object.keys(params)\n .map((key) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`;\n })\n .join('&');\n return `${url}${query ? `?${query}` : ''}`;\n }\n _tryEncodeBody(args) {\n var _a;\n const win = (0, SafeJs_1._getWindowSafe)();\n const body = args.body;\n if (!args.isStatsigEncodable ||\n this._options.disableStatsigEncoding ||\n typeof body !== 'string' ||\n (0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-encode') != null ||\n !(win === null || win === void 0 ? void 0 : win.btoa)) {\n return;\n }\n try {\n args.body = win.btoa(body).split('').reverse().join('');\n args.params = Object.assign(Object.assign({}, ((_a = args.params) !== null && _a !== void 0 ? _a : {})), { [NetworkConfig_1.NetworkParam.StatsigEncoded]: '1' });\n }\n catch (e) {\n Log_1.Log.warn(`Request encoding failed for ${args.urlConfig.getUrl()}`, e);\n }\n }\n _tryToCompressBody(args) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const body = args.body;\n if (typeof body !== 'string' || !_allowCompression(args, this._options)) {\n return;\n }\n try {\n const bytes = new TextEncoder().encode(body);\n const stream = new CompressionStream('gzip');\n const writer = stream.writable.getWriter();\n writer.write(bytes).catch(Log_1.Log.error);\n writer.close().catch(Log_1.Log.error);\n const reader = stream.readable.getReader();\n const chunks = [];\n let result;\n // eslint-disable-next-line no-await-in-loop\n while (!(result = yield reader.read()).done) {\n chunks.push(result.value);\n }\n const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n const combined = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n args.body = combined;\n args.params = Object.assign(Object.assign({}, ((_a = args.params) !== null && _a !== void 0 ? _a : {})), { [NetworkConfig_1.NetworkParam.IsGzipped]: '1' });\n }\n catch (e) {\n Log_1.Log.warn(`Request compression failed for ${args.urlConfig.getUrl()}`, e);\n }\n });\n }\n _getInternalRequestArgs(method, args) {\n const fallbackUrl = this._fallbackResolver.getActiveFallbackUrl(args.sdkKey, args.urlConfig);\n const result = Object.assign(Object.assign({}, args), { method,\n fallbackUrl });\n if ('data' in args) {\n _populateRequestBody(result, args.data);\n }\n return result;\n }\n}\nexports.NetworkCore = NetworkCore;\nconst _ensureValidSdkKey = (args) => {\n if (!args.sdkKey) {\n Log_1.Log.warn('Unable to make request without an SDK key');\n return false;\n }\n return true;\n};\nconst _populateRequestBody = (args, data) => {\n const { sdkKey, fallbackUrl } = args;\n const stableID = StableID_1.StableID.get(sdkKey);\n const sessionID = SessionID_1.SessionID.get(sdkKey);\n const sdkType = SDKType_1.SDKType._get(sdkKey);\n args.body = JSON.stringify(Object.assign(Object.assign({}, data), { statsigMetadata: Object.assign(Object.assign({}, StatsigMetadata_1.StatsigMetadataProvider.get()), { stableID,\n sessionID,\n sdkType,\n fallbackUrl }) }));\n};\nfunction _allowCompression(args, options) {\n if (!args.isCompressable) {\n return false;\n }\n // Never compress if 'no-compress' is set globally or required APIs are unavailable\n if ((0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-compress') != null ||\n typeof CompressionStream === 'undefined' ||\n typeof TextEncoder === 'undefined') {\n return false;\n }\n const isProxy = args.urlConfig.customUrl != null || args.urlConfig.fallbackUrls != null;\n const flagEnabled = SDKFlags_1.SDKFlags.get(args.sdkKey, 'enable_log_event_compression') === true;\n switch (options.logEventCompressionMode) {\n case StatsigOptionsCommon_1.LogEventCompressionMode.Disabled:\n return false;\n case StatsigOptionsCommon_1.LogEventCompressionMode.Enabled:\n // Only compress through proxy if flag is explicitly on\n if (isProxy && !flagEnabled) {\n return false;\n }\n return true;\n case StatsigOptionsCommon_1.LogEventCompressionMode.Forced:\n return true;\n default:\n return false;\n }\n}\nfunction _getErrorMessage(controller, error) {\n if ((controller === null || controller === void 0 ? void 0 : controller.signal.aborted) &&\n typeof controller.signal.reason === 'string') {\n return controller.signal.reason;\n }\n if (typeof error === 'string') {\n return error;\n }\n if (error instanceof Error) {\n return `${error.name}: ${error.message}`;\n }\n return 'Unknown Error';\n}\nfunction _didTimeout(controller) {\n const timeout = (controller === null || controller === void 0 ? void 0 : controller.signal.aborted) &&\n typeof controller.signal.reason === 'string' &&\n controller.signal.reason.includes('Timeout');\n return timeout || false;\n}\nfunction _tryMarkInitStart(args, attempt) {\n if (args.urlConfig.endpoint !== NetworkConfig_1.Endpoint._initialize) {\n return;\n }\n Diagnostics_1.Diagnostics._markInitNetworkReqStart(args.sdkKey, {\n attempt,\n });\n}\nfunction _tryMarkInitEnd(args, response, attempt, body, err) {\n if (args.urlConfig.endpoint !== NetworkConfig_1.Endpoint._initialize) {\n return;\n }\n Diagnostics_1.Diagnostics._markInitNetworkReqEnd(args.sdkKey, Diagnostics_1.Diagnostics._getDiagnosticsData(response, attempt, body, err));\n}\nfunction _exponentialBackoff(attempt) {\n return __awaiter(this, void 0, void 0, function* () {\n // 1*1*1000 1s\n // 2*2*1000 4s\n // 3*3*1000 9s\n // 4*4*1000 16s\n // 5*5*1000 25s\n yield new Promise((r) => setTimeout(r, Math.min(BACKOFF_BASE_MS * (attempt * attempt), BACKOFF_MAX_MS)));\n });\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._isDomainFailure = exports.NetworkFallbackResolver = void 0;\nconst DnsTxtQuery_1 = require(\"./DnsTxtQuery\");\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst DEFAULT_TTL_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\nconst COOLDOWN_TIME_MS = 4 * 60 * 60 * 1000; // 4 hours\nclass NetworkFallbackResolver {\n constructor(options) {\n var _a;\n this._fallbackInfo = null;\n this._errorBoundary = null;\n this._dnsQueryCooldowns = {};\n this._networkOverrideFunc = (_a = options.networkConfig) === null || _a === void 0 ? void 0 : _a.networkOverrideFunc;\n }\n setErrorBoundary(errorBoundary) {\n this._errorBoundary = errorBoundary;\n }\n tryBumpExpiryTime(sdkKey, urlConfig) {\n var _a;\n const info = (_a = this._fallbackInfo) === null || _a === void 0 ? void 0 : _a[urlConfig.endpoint];\n if (!info) {\n return;\n }\n info.expiryTime = Date.now() + DEFAULT_TTL_MS;\n _tryWriteFallbackInfoToCache(sdkKey, Object.assign(Object.assign({}, this._fallbackInfo), { [urlConfig.endpoint]: info }));\n }\n getActiveFallbackUrl(sdkKey, urlConfig) {\n var _a, _b;\n if (urlConfig.customUrl != null && urlConfig.fallbackUrls != null) {\n return null;\n }\n let info = this._fallbackInfo;\n if (info == null) {\n info = (_a = _readFallbackInfoFromCache(sdkKey)) !== null && _a !== void 0 ? _a : {};\n this._fallbackInfo = info;\n }\n const entry = info[urlConfig.endpoint];\n if (!entry ||\n Date.now() > ((_b = entry.expiryTime) !== null && _b !== void 0 ? _b : 0) ||\n urlConfig.getChecksum() !== entry.urlConfigChecksum) {\n delete info[urlConfig.endpoint];\n this._fallbackInfo = info;\n _tryWriteFallbackInfoToCache(sdkKey, this._fallbackInfo);\n return null;\n }\n if (entry.url) {\n return entry.url;\n }\n return null;\n }\n tryFetchUpdatedFallbackInfo(sdkKey, urlConfig, errorMessage, timedOut) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n if (!_isDomainFailure(errorMessage, timedOut)) {\n return false;\n }\n const canUseNetworkFallbacks = urlConfig.customUrl == null && urlConfig.fallbackUrls == null;\n const urls = canUseNetworkFallbacks\n ? yield this._tryFetchFallbackUrlsFromNetwork(urlConfig)\n : urlConfig.fallbackUrls;\n const newUrl = this._pickNewFallbackUrl((_a = this._fallbackInfo) === null || _a === void 0 ? void 0 : _a[urlConfig.endpoint], urls);\n if (!newUrl) {\n return false;\n }\n this._updateFallbackInfoWithNewUrl(sdkKey, urlConfig, newUrl);\n return true;\n }\n catch (error) {\n (_b = this._errorBoundary) === null || _b === void 0 ? void 0 : _b.logError('tryFetchUpdatedFallbackInfo', error);\n return false;\n }\n });\n }\n _updateFallbackInfoWithNewUrl(sdkKey, urlConfig, newUrl) {\n var _a, _b, _c;\n const newFallbackInfo = {\n urlConfigChecksum: urlConfig.getChecksum(),\n url: newUrl,\n expiryTime: Date.now() + DEFAULT_TTL_MS,\n previous: [],\n };\n const endpoint = urlConfig.endpoint;\n const previousInfo = (_a = this._fallbackInfo) === null || _a === void 0 ? void 0 : _a[endpoint];\n if (previousInfo) {\n newFallbackInfo.previous.push(...previousInfo.previous);\n }\n if (newFallbackInfo.previous.length > 10) {\n newFallbackInfo.previous = [];\n }\n const previousUrl = (_c = (_b = this._fallbackInfo) === null || _b === void 0 ? void 0 : _b[endpoint]) === null || _c === void 0 ? void 0 : _c.url;\n if (previousUrl != null) {\n newFallbackInfo.previous.push(previousUrl);\n }\n this._fallbackInfo = Object.assign(Object.assign({}, this._fallbackInfo), { [endpoint]: newFallbackInfo });\n _tryWriteFallbackInfoToCache(sdkKey, this._fallbackInfo);\n }\n _tryFetchFallbackUrlsFromNetwork(urlConfig) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const cooldown = this._dnsQueryCooldowns[urlConfig.endpoint];\n if (cooldown && Date.now() < cooldown) {\n return null;\n }\n this._dnsQueryCooldowns[urlConfig.endpoint] = Date.now() + COOLDOWN_TIME_MS;\n const result = [];\n const records = yield (0, DnsTxtQuery_1._fetchTxtRecords)((_a = this._networkOverrideFunc) !== null && _a !== void 0 ? _a : fetch);\n const path = _extractPathFromUrl(urlConfig.defaultUrl);\n for (const record of records) {\n if (!record.startsWith(urlConfig.endpointDnsKey + '=')) {\n continue;\n }\n const parts = record.split('=');\n if (parts.length > 1) {\n let baseUrl = parts[1];\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.slice(0, -1);\n }\n result.push(`https://${baseUrl}${path}`);\n }\n }\n return result;\n });\n }\n _pickNewFallbackUrl(currentFallbackInfo, urls) {\n var _a;\n if (urls == null) {\n return null;\n }\n const previouslyUsed = new Set((_a = currentFallbackInfo === null || currentFallbackInfo === void 0 ? void 0 : currentFallbackInfo.previous) !== null && _a !== void 0 ? _a : []);\n const currentFallbackUrl = currentFallbackInfo === null || currentFallbackInfo === void 0 ? void 0 : currentFallbackInfo.url;\n let found = null;\n for (const loopUrl of urls) {\n const url = loopUrl.endsWith('/') ? loopUrl.slice(0, -1) : loopUrl;\n if (!previouslyUsed.has(loopUrl) && url !== currentFallbackUrl) {\n found = url;\n break;\n }\n }\n return found;\n }\n}\nexports.NetworkFallbackResolver = NetworkFallbackResolver;\nfunction _isDomainFailure(errorMsg, timedOut) {\n var _a;\n const lowerErrorMsg = (_a = errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.toLowerCase()) !== null && _a !== void 0 ? _a : '';\n return (timedOut ||\n lowerErrorMsg.includes('uncaught exception') ||\n lowerErrorMsg.includes('failed to fetch') ||\n lowerErrorMsg.includes('networkerror when attempting to fetch resource'));\n}\nexports._isDomainFailure = _isDomainFailure;\nfunction _getFallbackInfoStorageKey(sdkKey) {\n return `statsig.network_fallback.${(0, Hashing_1._DJB2)(sdkKey)}`;\n}\nfunction _tryWriteFallbackInfoToCache(sdkKey, info) {\n const hashKey = _getFallbackInfoStorageKey(sdkKey);\n if (!info || Object.keys(info).length === 0) {\n StorageProvider_1.Storage.removeItem(hashKey);\n return;\n }\n StorageProvider_1.Storage.setItem(hashKey, JSON.stringify(info));\n}\nfunction _readFallbackInfoFromCache(sdkKey) {\n const hashKey = _getFallbackInfoStorageKey(sdkKey);\n const data = StorageProvider_1.Storage.getItem(hashKey);\n if (!data) {\n return null;\n }\n try {\n return JSON.parse(data);\n }\n catch (_a) {\n Log_1.Log.error('Failed to parse FallbackInfo');\n return null;\n }\n}\nfunction _extractPathFromUrl(urlString) {\n try {\n const url = new URL(urlString);\n return url.pathname;\n }\n catch (error) {\n return null;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDKFlags = void 0;\nconst FLAGMAP = {};\nexports.SDKFlags = {\n setFlags: (sdkKey, flags) => {\n FLAGMAP[sdkKey] = flags;\n },\n get: (sdkKey, flagKey) => {\n var _a, _b;\n return (_b = (_a = FLAGMAP[sdkKey]) === null || _a === void 0 ? void 0 : _a[flagKey]) !== null && _b !== void 0 ? _b : false;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDKType = void 0;\nconst SDK_CLIENT = {};\nlet suffix;\nexports.SDKType = {\n _get: (sdkKey) => {\n var _a;\n return ((_a = SDK_CLIENT[sdkKey]) !== null && _a !== void 0 ? _a : 'js-mono') + (suffix !== null && suffix !== void 0 ? suffix : '');\n },\n _setClientType(sdkKey, client) {\n SDK_CLIENT[sdkKey] = client;\n },\n _setBindingType(binding) {\n if (!suffix || suffix === '-react') {\n suffix = '-' + binding;\n }\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getUnloadEvent = exports._getCurrentPageUrlSafe = exports._addDocumentEventListenerSafe = exports._addWindowEventListenerSafe = exports._isServerEnv = exports._getDocumentSafe = exports._getWindowSafe = void 0;\nconst _getWindowSafe = () => {\n return typeof window !== 'undefined' ? window : null;\n};\nexports._getWindowSafe = _getWindowSafe;\nconst _getDocumentSafe = () => {\n var _a;\n const win = (0, exports._getWindowSafe)();\n return (_a = win === null || win === void 0 ? void 0 : win.document) !== null && _a !== void 0 ? _a : null;\n};\nexports._getDocumentSafe = _getDocumentSafe;\nconst _isServerEnv = () => {\n if ((0, exports._getDocumentSafe)() !== null) {\n return false;\n }\n const isNode = typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null;\n const isVercel = typeof EdgeRuntime === 'string';\n return isVercel || isNode;\n};\nexports._isServerEnv = _isServerEnv;\nconst _addWindowEventListenerSafe = (key, listener) => {\n const win = (0, exports._getWindowSafe)();\n if (typeof (win === null || win === void 0 ? void 0 : win.addEventListener) === 'function') {\n win.addEventListener(key, listener);\n }\n};\nexports._addWindowEventListenerSafe = _addWindowEventListenerSafe;\nconst _addDocumentEventListenerSafe = (key, listener) => {\n const doc = (0, exports._getDocumentSafe)();\n if (typeof (doc === null || doc === void 0 ? void 0 : doc.addEventListener) === 'function') {\n doc.addEventListener(key, listener);\n }\n};\nexports._addDocumentEventListenerSafe = _addDocumentEventListenerSafe;\nconst _getCurrentPageUrlSafe = () => {\n var _a;\n try {\n return (_a = (0, exports._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location.href.split(/[?#]/)[0];\n }\n catch (_b) {\n return;\n }\n};\nexports._getCurrentPageUrlSafe = _getCurrentPageUrlSafe;\nconst _getUnloadEvent = () => {\n const win = (0, exports._getWindowSafe)();\n if (!win) {\n return 'beforeunload';\n }\n const eventType = 'onpagehide' in win ? 'pagehide' : 'beforeunload';\n return eventType;\n};\nexports._getUnloadEvent = _getUnloadEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigSession = exports.SessionID = void 0;\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Log_1 = require(\"./Log\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UUID_1 = require(\"./UUID\");\nconst MAX_SESSION_IDLE_TIME = 30 * 60 * 1000; // 30 minutes\nconst MAX_SESSION_AGE = 4 * 60 * 60 * 1000; // 4 hours\nconst PROMISE_MAP = {};\nexports.SessionID = {\n get: (sdkKey) => {\n return exports.StatsigSession.get(sdkKey).data.sessionID;\n },\n};\nexports.StatsigSession = {\n get: (sdkKey) => {\n if (PROMISE_MAP[sdkKey] == null) {\n PROMISE_MAP[sdkKey] = _loadSession(sdkKey);\n }\n const session = PROMISE_MAP[sdkKey];\n return _bumpSession(session);\n },\n overrideInitialSessionID: (override, sdkKey) => {\n PROMISE_MAP[sdkKey] = _overrideSessionId(override, sdkKey);\n },\n};\nfunction _loadSession(sdkKey) {\n let data = _loadFromStorage(sdkKey);\n const now = Date.now();\n if (!data) {\n data = {\n sessionID: (0, UUID_1.getUUID)(),\n startTime: now,\n lastUpdate: now,\n };\n }\n return {\n data,\n sdkKey,\n };\n}\nfunction _overrideSessionId(override, sdkKey) {\n const now = Date.now();\n return {\n data: {\n sessionID: override,\n startTime: now,\n lastUpdate: now,\n },\n sdkKey,\n };\n}\nfunction _bumpSession(session) {\n const now = Date.now();\n const data = session.data;\n const sdkKey = session.sdkKey;\n if (_isIdle(data) || _hasRunTooLong(data)) {\n data.sessionID = (0, UUID_1.getUUID)();\n data.startTime = now;\n const client = __STATSIG__ === null || __STATSIG__ === void 0 ? void 0 : __STATSIG__.instance(sdkKey);\n if (client) {\n client.$emt({ name: 'session_expired' });\n }\n }\n data.lastUpdate = now;\n _persistToStorage(data, session.sdkKey);\n clearTimeout(session.idleTimeoutID);\n clearTimeout(session.ageTimeoutID);\n const lifetime = now - data.startTime;\n session.idleTimeoutID = _createSessionTimeout(sdkKey, MAX_SESSION_IDLE_TIME);\n session.ageTimeoutID = _createSessionTimeout(sdkKey, MAX_SESSION_AGE - lifetime);\n return session;\n}\nfunction _createSessionTimeout(sdkKey, duration) {\n return setTimeout(() => {\n var _a;\n const client = (_a = (0, __StatsigGlobal_1._getStatsigGlobal)()) === null || _a === void 0 ? void 0 : _a.instance(sdkKey);\n if (client) {\n client.$emt({ name: 'session_expired' });\n }\n }, duration);\n}\nfunction _isIdle({ lastUpdate }) {\n return Date.now() - lastUpdate > MAX_SESSION_IDLE_TIME;\n}\nfunction _hasRunTooLong({ startTime }) {\n return Date.now() - startTime > MAX_SESSION_AGE;\n}\nfunction _getSessionIDStorageKey(sdkKey) {\n return `statsig.session_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nfunction _persistToStorage(session, sdkKey) {\n const storageKey = _getSessionIDStorageKey(sdkKey);\n try {\n (0, StorageProvider_1._setObjectInStorage)(storageKey, session);\n }\n catch (e) {\n Log_1.Log.warn('Failed to save SessionID');\n }\n}\nfunction _loadFromStorage(sdkKey) {\n const storageKey = _getSessionIDStorageKey(sdkKey);\n return (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StableID = void 0;\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UUID_1 = require(\"./UUID\");\nconst PROMISE_MAP = {};\nconst COOKIE_ENABLED_MAP = {};\nconst DISABLED_MAP = {};\nexports.StableID = {\n cookiesEnabled: false,\n randomID: Math.random().toString(36),\n get: (sdkKey) => {\n if (DISABLED_MAP[sdkKey]) {\n return null;\n }\n if (PROMISE_MAP[sdkKey] != null) {\n return PROMISE_MAP[sdkKey];\n }\n let stableID = null;\n stableID = _loadFromCookie(sdkKey);\n if (stableID != null) {\n PROMISE_MAP[sdkKey] = stableID;\n _persistToStorage(stableID, sdkKey);\n return stableID;\n }\n stableID = _loadFromStorage(sdkKey);\n if (stableID == null) {\n stableID = (0, UUID_1.getUUID)();\n }\n _persistToStorage(stableID, sdkKey);\n _persistToCookie(stableID, sdkKey);\n PROMISE_MAP[sdkKey] = stableID;\n return stableID;\n },\n setOverride: (override, sdkKey) => {\n PROMISE_MAP[sdkKey] = override;\n _persistToStorage(override, sdkKey);\n _persistToCookie(override, sdkKey);\n },\n _setCookiesEnabled: (sdkKey, cookiesEnabled) => {\n COOKIE_ENABLED_MAP[sdkKey] = cookiesEnabled;\n },\n _setDisabled: (sdkKey, disabled) => {\n DISABLED_MAP[sdkKey] = disabled;\n },\n};\nfunction _getStableIDStorageKey(sdkKey) {\n return `statsig.stable_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nfunction _persistToStorage(stableID, sdkKey) {\n const storageKey = _getStableIDStorageKey(sdkKey);\n try {\n (0, StorageProvider_1._setObjectInStorage)(storageKey, stableID);\n }\n catch (e) {\n Log_1.Log.warn('Failed to save StableID to storage');\n }\n}\nfunction _loadFromStorage(sdkKey) {\n const storageKey = _getStableIDStorageKey(sdkKey);\n return (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n}\nfunction _loadFromCookie(sdkKey) {\n if (!COOKIE_ENABLED_MAP[sdkKey] || (0, SafeJs_1._getDocumentSafe)() == null) {\n return null;\n }\n const cookies = document.cookie.split(';');\n for (const cookie of cookies) {\n const [key, value] = cookie.trim().split('=');\n if (key === _getCookieName(sdkKey)) {\n return decodeURIComponent(value);\n }\n }\n return null;\n}\nfunction _persistToCookie(stableID, sdkKey) {\n if (!COOKIE_ENABLED_MAP[sdkKey] || !document) {\n return;\n }\n const expiryDate = new Date();\n expiryDate.setFullYear(expiryDate.getFullYear() + 1);\n document.cookie = `${_getCookieName(sdkKey)}=${encodeURIComponent(stableID)}; expires=${expiryDate.toUTCString()}; path=/`;\n}\nfunction _getCookieName(sdkKey) {\n return `statsig.stable_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigClientBase = void 0;\nrequire(\"./$_StatsigGlobal\");\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst ErrorBoundary_1 = require(\"./ErrorBoundary\");\nconst EventLogger_1 = require(\"./EventLogger\");\nconst Log_1 = require(\"./Log\");\nconst MemoKey_1 = require(\"./MemoKey\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst MAX_MEMO_CACHE_SIZE = 3000;\nclass StatsigClientBase {\n constructor(sdkKey, adapter, network, options) {\n var _a, _b, _c, _d;\n this.loadingStatus = 'Uninitialized';\n this._initializePromise = null;\n this._listeners = {};\n const emitter = this.$emt.bind(this);\n (options === null || options === void 0 ? void 0 : options.logLevel) != null && (Log_1.Log.level = options.logLevel);\n (options === null || options === void 0 ? void 0 : options.disableStorage) && StorageProvider_1.Storage._setDisabled(true);\n (options === null || options === void 0 ? void 0 : options.initialSessionID) &&\n SessionID_1.StatsigSession.overrideInitialSessionID(options.initialSessionID, sdkKey);\n (options === null || options === void 0 ? void 0 : options.storageProvider) && StorageProvider_1.Storage._setProvider(options.storageProvider);\n (options === null || options === void 0 ? void 0 : options.enableCookies) &&\n StableID_1.StableID._setCookiesEnabled(sdkKey, options.enableCookies);\n (options === null || options === void 0 ? void 0 : options.disableStableID) && StableID_1.StableID._setDisabled(sdkKey, true);\n this._sdkKey = sdkKey;\n this._options = options !== null && options !== void 0 ? options : {};\n this._memoCache = {};\n this.overrideAdapter = (_a = options === null || options === void 0 ? void 0 : options.overrideAdapter) !== null && _a !== void 0 ? _a : null;\n this._logger = new EventLogger_1.EventLogger(sdkKey, emitter, network, options);\n this._errorBoundary = new ErrorBoundary_1.ErrorBoundary(sdkKey, options, emitter);\n this._errorBoundary.wrap(this);\n this._errorBoundary.wrap(adapter);\n this._errorBoundary.wrap(this._logger);\n network.setErrorBoundary(this._errorBoundary);\n this.dataAdapter = adapter;\n this.dataAdapter.attach(sdkKey, options, network);\n this.storageProvider = StorageProvider_1.Storage;\n (_d = (_c = (_b = this.overrideAdapter) === null || _b === void 0 ? void 0 : _b.loadFromStorage) === null || _c === void 0 ? void 0 : _c.call(_b)) === null || _d === void 0 ? void 0 : _d.catch((e) => this._errorBoundary.logError('OA::loadFromStorage', e));\n this._primeReadyRipcord();\n _assignGlobalInstance(sdkKey, this);\n }\n /**\n * Updates runtime configuration options for the SDK, allowing toggling of certain behaviors such as logging and storage to comply with user preferences or regulations such as GDPR.\n *\n * @param {StatsigRuntimeMutableOptions} options - The configuration options that dictate the runtime behavior of the SDK.\n */\n updateRuntimeOptions(options) {\n if (options.loggingEnabled) {\n this._options.loggingEnabled = options.loggingEnabled;\n this._logger.setLoggingEnabled(options.loggingEnabled);\n }\n else if (options.disableLogging != null) {\n this._options.disableLogging = options.disableLogging;\n this._logger.setLoggingEnabled(options.disableLogging ? 'disabled' : 'browser-only');\n }\n if (options.disableStorage != null) {\n this._options.disableStorage = options.disableStorage;\n StorageProvider_1.Storage._setDisabled(options.disableStorage);\n }\n if (options.enableCookies != null) {\n this._options.enableCookies = options.enableCookies;\n StableID_1.StableID._setCookiesEnabled(this._sdkKey, options.enableCookies);\n }\n if (options.logEventCompressionMode) {\n this._logger.setLogEventCompressionMode(options.logEventCompressionMode);\n }\n else if (options.disableCompression) {\n this._logger.setLogEventCompressionMode(StatsigOptionsCommon_1.LogEventCompressionMode.Disabled);\n }\n }\n /**\n * Flushes any currently queued events.\n */\n flush() {\n return this._logger.flush();\n }\n /**\n * Gracefully shuts down the SDK, ensuring that all pending events are send before the SDK stops.\n * This function emits a 'pre_shutdown' event and then waits for the logger to complete its shutdown process.\n *\n * @returns {Promise<void>} A promise that resolves when all shutdown procedures, including logging shutdown, have been completed.\n */\n shutdown() {\n return __awaiter(this, void 0, void 0, function* () {\n this.$emt({ name: 'pre_shutdown' });\n this._setStatus('Uninitialized', null);\n this._initializePromise = null;\n yield this._logger.stop();\n });\n }\n /**\n * Subscribes a callback function to a specific {@link StatsigClientEvent} or all StatsigClientEvents if the wildcard '*' is used.\n * Once subscribed, the listener callback will be invoked whenever the specified event is emitted.\n *\n * @param {StatsigClientEventName} event - The name of the event to subscribe to, or '*' to subscribe to all events.\n * @param {StatsigClientEventCallback<T>} listener - The callback function to execute when the event occurs. The function receives event-specific data as its parameter.\n * @see {@link off} for unsubscribing from events.\n */\n on(event, listener) {\n if (!this._listeners[event]) {\n this._listeners[event] = [];\n }\n this._listeners[event].push(listener);\n }\n /**\n * Unsubscribes a previously registered callback function from a specific {@link StatsigClientEvent} or all StatsigClientEvents if the wildcard '*' is used.\n *\n * @param {StatsigClientEventName} event - The name of the event from which to unsubscribe, or '*' to unsubscribe from all events.\n * @param {StatsigClientEventCallback<T>} listener - The callback function to remove from the event's notification list.\n * @see {@link on} for subscribing to events.\n */\n off(event, listener) {\n if (this._listeners[event]) {\n const index = this._listeners[event].indexOf(listener);\n if (index !== -1) {\n this._listeners[event].splice(index, 1);\n }\n }\n }\n $on(event, listener) {\n listener.__isInternal = true;\n this.on(event, listener);\n }\n $emt(event) {\n var _a;\n const barrier = (listener) => {\n try {\n listener(event);\n }\n catch (error) {\n if (listener.__isInternal === true) {\n this._errorBoundary.logError(`__emit:${event.name}`, error);\n return;\n }\n Log_1.Log.error(`An error occurred in a StatsigClientEvent listener. This is not an issue with Statsig.`, event);\n }\n };\n if (this._listeners[event.name]) {\n this._listeners[event.name].forEach((l) => barrier(l));\n }\n (_a = this._listeners['*']) === null || _a === void 0 ? void 0 : _a.forEach(barrier);\n }\n _setStatus(newStatus, values) {\n this.loadingStatus = newStatus;\n this._memoCache = {};\n this.$emt({ name: 'values_updated', status: newStatus, values });\n }\n _enqueueExposure(name, exposure, options) {\n if ((options === null || options === void 0 ? void 0 : options.disableExposureLog) === true) {\n this._logger.incrementNonExposureCount(name);\n return;\n }\n this._logger.enqueue(exposure);\n }\n _memoize(prefix, fn) {\n return (name, options) => {\n if (this._options.disableEvaluationMemoization) {\n return fn(name, options);\n }\n const memoKey = (0, MemoKey_1.createMemoKey)(prefix, name, options);\n if (!memoKey) {\n return fn(name, options);\n }\n if (!(memoKey in this._memoCache)) {\n if (Object.keys(this._memoCache).length >= MAX_MEMO_CACHE_SIZE) {\n this._memoCache = {};\n }\n this._memoCache[memoKey] = fn(name, options);\n }\n return this._memoCache[memoKey];\n };\n }\n}\nexports.StatsigClientBase = StatsigClientBase;\nfunction _assignGlobalInstance(sdkKey, client) {\n var _a;\n if ((0, SafeJs_1._isServerEnv)()) {\n return;\n }\n const statsigGlobal = (0, __StatsigGlobal_1._getStatsigGlobal)();\n const instances = (_a = statsigGlobal.instances) !== null && _a !== void 0 ? _a : {};\n const inst = client;\n if (instances[sdkKey] != null) {\n Log_1.Log.warn('Creating multiple Statsig clients with the same SDK key can lead to unexpected behavior. Multi-instance support requires different SDK keys.');\n }\n instances[sdkKey] = inst;\n if (!statsigGlobal.firstInstance) {\n statsigGlobal.firstInstance = inst;\n }\n statsigGlobal.instances = instances;\n __STATSIG__ = statsigGlobal;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorTag = void 0;\nexports.ErrorTag = {\n NetworkError: 'NetworkError',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataAdapterCachePrefix = void 0;\nexports.DataAdapterCachePrefix = 'statsig.cached';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._createLayerParameterExposure = exports._createConfigExposure = exports._mapExposures = exports._createGateExposure = exports._isExposureEvent = void 0;\nconst CONFIG_EXPOSURE_NAME = 'statsig::config_exposure';\nconst GATE_EXPOSURE_NAME = 'statsig::gate_exposure';\nconst LAYER_EXPOSURE_NAME = 'statsig::layer_exposure';\nconst _createExposure = (eventName, user, details, metadata, secondaryExposures) => {\n if (details.bootstrapMetadata) {\n metadata['bootstrapMetadata'] = details.bootstrapMetadata;\n }\n return {\n eventName,\n user,\n value: null,\n metadata: _addEvaluationDetailsToMetadata(details, metadata),\n secondaryExposures,\n time: Date.now(),\n };\n};\nconst _isExposureEvent = ({ eventName, }) => {\n return (eventName === GATE_EXPOSURE_NAME ||\n eventName === CONFIG_EXPOSURE_NAME ||\n eventName === LAYER_EXPOSURE_NAME);\n};\nexports._isExposureEvent = _isExposureEvent;\nconst _createGateExposure = (user, gate, exposureMapping) => {\n var _a, _b, _c;\n const metadata = {\n gate: gate.name,\n gateValue: String(gate.value),\n ruleID: gate.ruleID,\n };\n if (((_a = gate.__evaluation) === null || _a === void 0 ? void 0 : _a.version) != null) {\n metadata['configVersion'] = gate.__evaluation.version;\n }\n return _createExposure(GATE_EXPOSURE_NAME, user, gate.details, metadata, _mapExposures((_c = (_b = gate.__evaluation) === null || _b === void 0 ? void 0 : _b.secondary_exposures) !== null && _c !== void 0 ? _c : [], exposureMapping));\n};\nexports._createGateExposure = _createGateExposure;\nfunction _mapExposures(exposures, exposureMapping) {\n return exposures\n .map((exposure) => {\n if (typeof exposure === 'string') {\n return (exposureMapping !== null && exposureMapping !== void 0 ? exposureMapping : {})[exposure];\n }\n return exposure;\n })\n .filter((exposure) => exposure != null);\n}\nexports._mapExposures = _mapExposures;\nconst _createConfigExposure = (user, config, exposureMapping) => {\n var _a, _b, _c, _d;\n const metadata = {\n config: config.name,\n ruleID: config.ruleID,\n };\n if (((_a = config.__evaluation) === null || _a === void 0 ? void 0 : _a.version) != null) {\n metadata['configVersion'] = config.__evaluation.version;\n }\n if (((_b = config.__evaluation) === null || _b === void 0 ? void 0 : _b.passed) != null) {\n metadata['rulePassed'] = String(config.__evaluation.passed);\n }\n return _createExposure(CONFIG_EXPOSURE_NAME, user, config.details, metadata, _mapExposures((_d = (_c = config.__evaluation) === null || _c === void 0 ? void 0 : _c.secondary_exposures) !== null && _d !== void 0 ? _d : [], exposureMapping));\n};\nexports._createConfigExposure = _createConfigExposure;\nconst _createLayerParameterExposure = (user, layer, parameterName, exposureMapping) => {\n var _a, _b, _c, _d, _e, _f;\n const evaluation = layer.__evaluation;\n const isExplicit = ((_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.explicit_parameters) === null || _a === void 0 ? void 0 : _a.includes(parameterName)) === true;\n let allocatedExperiment = '';\n let secondaryExposures = (_b = evaluation === null || evaluation === void 0 ? void 0 : evaluation.undelegated_secondary_exposures) !== null && _b !== void 0 ? _b : [];\n if (isExplicit) {\n allocatedExperiment = (_c = evaluation.allocated_experiment_name) !== null && _c !== void 0 ? _c : '';\n secondaryExposures = evaluation.secondary_exposures;\n }\n const parameterRuleIDs = (_d = layer.__evaluation) === null || _d === void 0 ? void 0 : _d.parameter_rule_ids;\n const metadata = {\n config: layer.name,\n parameterName,\n ruleID: (_e = parameterRuleIDs === null || parameterRuleIDs === void 0 ? void 0 : parameterRuleIDs[parameterName]) !== null && _e !== void 0 ? _e : layer.ruleID,\n allocatedExperiment,\n isExplicitParameter: String(isExplicit),\n };\n if (((_f = layer.__evaluation) === null || _f === void 0 ? void 0 : _f.version) != null) {\n metadata['configVersion'] = layer.__evaluation.version;\n }\n return _createExposure(LAYER_EXPOSURE_NAME, user, layer.details, metadata, _mapExposures(secondaryExposures, exposureMapping));\n};\nexports._createLayerParameterExposure = _createLayerParameterExposure;\nconst _addEvaluationDetailsToMetadata = (details, metadata) => {\n metadata['reason'] = details.reason;\n if (details.lcut) {\n metadata['lcut'] = String(details.lcut);\n }\n if (details.receivedAt) {\n metadata['receivedAt'] = String(details.receivedAt);\n }\n return metadata;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.17.2';\nlet metadata = {\n sdkVersion: exports.SDK_VERSION,\n sdkType: 'js-mono', // js-mono is overwritten by Precomp and OnDevice clients\n};\nexports.StatsigMetadataProvider = {\n get: () => metadata,\n add: (additions) => {\n metadata = Object.assign(Object.assign({}, metadata), additions);\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingEnabledOption = exports.LogEventCompressionMode = void 0;\nexports.LogEventCompressionMode = {\n /** Do not compress request bodies */\n Disabled: 'd',\n /** Compress request bodies unless a network proxy is configured */\n Enabled: 'e',\n /** Always compress request bodies, even when a proxy is configured */\n Forced: 'f',\n};\nexports.LoggingEnabledOption = {\n disabled: 'disabled',\n browserOnly: 'browser-only',\n always: 'always',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._makeTypedGet = exports._mergeOverride = exports._makeLayer = exports._makeExperiment = exports._makeDynamicConfig = exports._makeFeatureGate = void 0;\nconst Log_1 = require(\"./Log\");\nconst TypingUtils_1 = require(\"./TypingUtils\");\nfunction _makeEvaluation(name, details, evaluation, value) {\n var _a;\n return {\n name,\n details,\n ruleID: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.rule_id) !== null && _a !== void 0 ? _a : '',\n __evaluation: evaluation,\n value,\n };\n}\nfunction _makeFeatureGate(name, details, evaluation) {\n var _a;\n return Object.assign(Object.assign({}, _makeEvaluation(name, details, evaluation, (evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) === true)), { idType: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type) !== null && _a !== void 0 ? _a : null });\n}\nexports._makeFeatureGate = _makeFeatureGate;\nfunction _makeDynamicConfig(name, details, evaluation) {\n var _a;\n const value = (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, _makeEvaluation(name, details, evaluation, value)), { get: _makeTypedGet(name, evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) });\n}\nexports._makeDynamicConfig = _makeDynamicConfig;\nfunction _makeExperiment(name, details, evaluation) {\n var _a;\n const result = _makeDynamicConfig(name, details, evaluation);\n return Object.assign(Object.assign({}, result), { groupName: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.group_name) !== null && _a !== void 0 ? _a : null });\n}\nexports._makeExperiment = _makeExperiment;\nfunction _makeLayer(name, details, evaluation, exposeFunc) {\n var _a, _b;\n return Object.assign(Object.assign({}, _makeEvaluation(name, details, evaluation, undefined)), { get: _makeTypedGet(name, evaluation === null || evaluation === void 0 ? void 0 : evaluation.value, exposeFunc), groupName: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.group_name) !== null && _a !== void 0 ? _a : null, __value: (_b = evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) !== null && _b !== void 0 ? _b : {} });\n}\nexports._makeLayer = _makeLayer;\nfunction _mergeOverride(original, overridden, value, exposeFunc) {\n return Object.assign(Object.assign(Object.assign({}, original), overridden), { get: _makeTypedGet(original.name, value, exposeFunc) });\n}\nexports._mergeOverride = _mergeOverride;\nfunction _makeTypedGet(name, value, exposeFunc) {\n return (param, fallback) => {\n var _a;\n const found = (_a = value === null || value === void 0 ? void 0 : value[param]) !== null && _a !== void 0 ? _a : null;\n if (found == null) {\n return (fallback !== null && fallback !== void 0 ? fallback : null);\n }\n if (fallback != null && !(0, TypingUtils_1._isTypeMatch)(found, fallback)) {\n Log_1.Log.warn(`Parameter type mismatch. '${name}.${param}' was found to be type '${typeof found}' but fallback/return type is '${typeof fallback}'. See https://docs.statsig.com/client/javascript-sdk/#typed-getters`);\n return (fallback !== null && fallback !== void 0 ? fallback : null);\n }\n exposeFunc === null || exposeFunc === void 0 ? void 0 : exposeFunc(param);\n return found;\n };\n}\nexports._makeTypedGet = _makeTypedGet;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UPDATE_DETAIL_ERROR_MESSAGES = exports.createUpdateDetails = void 0;\nconst createUpdateDetails = (success, source, initDuration, error, sourceUrl, warnings) => {\n return {\n duration: initDuration,\n source,\n success,\n error,\n sourceUrl,\n warnings,\n };\n};\nexports.createUpdateDetails = createUpdateDetails;\nexports.UPDATE_DETAIL_ERROR_MESSAGES = {\n NO_NETWORK_DATA: 'No data was returned from the network. This may be due to a network timeout if a timeout value was specified in the options or ad blocker error.',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getFullUserHash = exports._normalizeUser = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nfunction _normalizeUser(original, options, fallbackEnvironment) {\n try {\n const copy = JSON.parse(JSON.stringify(original));\n if (options != null && options.environment != null) {\n copy.statsigEnvironment = options.environment;\n }\n else if (fallbackEnvironment != null) {\n copy.statsigEnvironment = { tier: fallbackEnvironment };\n }\n return copy;\n }\n catch (error) {\n Log_1.Log.error('Failed to JSON.stringify user');\n return { statsigEnvironment: undefined };\n }\n}\nexports._normalizeUser = _normalizeUser;\nfunction _getFullUserHash(user) {\n return user ? (0, Hashing_1._DJB2Object)(user) : null;\n}\nexports._getFullUserHash = _getFullUserHash;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._setObjectInStorage = exports._getObjectFromStorage = exports.Storage = void 0;\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst inMemoryStore = {};\nconst _inMemoryProvider = {\n isReady: () => true,\n isReadyResolver: () => null,\n getProviderName: () => 'InMemory',\n getItem: (key) => inMemoryStore[key] ? inMemoryStore[key] : null,\n setItem: (key, value) => {\n inMemoryStore[key] = value;\n },\n removeItem: (key) => {\n delete inMemoryStore[key];\n },\n getAllKeys: () => Object.keys(inMemoryStore),\n};\nlet _localStorageProvider = null;\ntry {\n const win = (0, SafeJs_1._getWindowSafe)();\n if (win &&\n win.localStorage &&\n typeof win.localStorage.getItem === 'function') {\n _localStorageProvider = {\n isReady: () => true,\n isReadyResolver: () => null,\n getProviderName: () => 'LocalStorage',\n getItem: (key) => win.localStorage.getItem(key),\n setItem: (key, value) => win.localStorage.setItem(key, value),\n removeItem: (key) => win.localStorage.removeItem(key),\n getAllKeys: () => Object.keys(win.localStorage),\n };\n }\n}\ncatch (error) {\n Log_1.Log.warn('Failed to setup localStorageProvider.');\n}\nlet _main = _localStorageProvider !== null && _localStorageProvider !== void 0 ? _localStorageProvider : _inMemoryProvider;\nlet _current = _main;\nfunction _inMemoryBreaker(action) {\n try {\n return action();\n }\n catch (error) {\n if (error instanceof Error && error.name === 'SecurityError') {\n exports.Storage._setProvider(_inMemoryProvider);\n return null;\n }\n if (error instanceof Error && error.name === 'QuotaExceededError') {\n const allKeys = exports.Storage.getAllKeys();\n const statsigKeys = allKeys.filter((key) => key.startsWith('statsig.'));\n error.message = `${error.message}. Statsig Keys: ${statsigKeys.length}`;\n }\n throw error;\n }\n}\nexports.Storage = {\n isReady: () => _current.isReady(),\n isReadyResolver: () => _current.isReadyResolver(),\n getProviderName: () => _current.getProviderName(),\n getItem: (key) => _inMemoryBreaker(() => _current.getItem(key)),\n setItem: (key, value) => _inMemoryBreaker(() => _current.setItem(key, value)),\n removeItem: (key) => _current.removeItem(key),\n getAllKeys: () => _current.getAllKeys(),\n // StorageProviderManagment\n _setProvider: (newProvider) => {\n _main = newProvider;\n _current = newProvider;\n },\n _setDisabled: (isDisabled) => {\n if (isDisabled) {\n _current = _inMemoryProvider;\n }\n else {\n _current = _main;\n }\n },\n};\nfunction _getObjectFromStorage(key) {\n const value = exports.Storage.getItem(key);\n return JSON.parse(value !== null && value !== void 0 ? value : 'null');\n}\nexports._getObjectFromStorage = _getObjectFromStorage;\nfunction _setObjectInStorage(key, obj) {\n exports.Storage.setItem(key, JSON.stringify(obj));\n}\nexports._setObjectInStorage = _setObjectInStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._typedJsonParse = void 0;\nconst Log_1 = require(\"./Log\");\n/**\n *\n * @param {string} data The values to parse into T\n * @param {string} guard A field that must exists on the parsed object for the parse to be valid\n * @param {string} error An error to print via Log.error() when parsing fails\n * @returns {T | null} The parse object T or null if it failed\n */\nfunction _typedJsonParse(data, guard, typeName) {\n try {\n const result = JSON.parse(data);\n if (result &&\n typeof result === 'object' &&\n guard in result) {\n return result;\n }\n }\n catch (_a) {\n // noop\n }\n Log_1.Log.error(`Failed to parse ${typeName}`);\n return null;\n}\nexports._typedJsonParse = _typedJsonParse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._isTypeMatch = exports._typeOf = void 0;\nfunction _typeOf(input) {\n return Array.isArray(input) ? 'array' : typeof input;\n}\nexports._typeOf = _typeOf;\nfunction _isTypeMatch(a, b) {\n const typeOf = (x) => (Array.isArray(x) ? 'array' : typeof x);\n return typeOf(a) === typeOf(b);\n}\nexports._isTypeMatch = _isTypeMatch;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUUID = void 0;\nfunction getUUID() {\n if (typeof crypto !== 'undefined' &&\n typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n let d = new Date().getTime();\n let d2 = (typeof performance !== 'undefined' &&\n performance.now &&\n performance.now() * 1000) ||\n 0;\n const y = '89ab'[Math.floor(Math.random() * 4)];\n return `xxxxxxxx-xxxx-4xxx-${y}xxx-xxxxxxxxxxxx`.replace(/[xy]/g, (c) => {\n let r = Math.random() * 16;\n if (d > 0) {\n r = (d + r) % 16 | 0;\n d = Math.floor(d / 16);\n }\n else {\n r = (d2 + r) % 16 | 0;\n d2 = Math.floor(d2 / 16);\n }\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16);\n });\n}\nexports.getUUID = getUUID;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlConfiguration = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst ENDPOINT_DNS_KEY_MAP = {\n [NetworkConfig_1.Endpoint._initialize]: 'i',\n [NetworkConfig_1.Endpoint._rgstr]: 'e',\n [NetworkConfig_1.Endpoint._download_config_specs]: 'd',\n};\nclass UrlConfiguration {\n constructor(endpoint, customUrl, customApi, fallbackUrls) {\n this.customUrl = null;\n this.fallbackUrls = null;\n this.endpoint = endpoint;\n this.endpointDnsKey = ENDPOINT_DNS_KEY_MAP[endpoint];\n if (customUrl) {\n this.customUrl = customUrl;\n }\n if (!customUrl && customApi) {\n this.customUrl = customApi.endsWith('/')\n ? `${customApi}${endpoint}`\n : `${customApi}/${endpoint}`;\n }\n if (fallbackUrls) {\n this.fallbackUrls = fallbackUrls;\n }\n const defaultApi = NetworkConfig_1.NetworkDefault[endpoint];\n this.defaultUrl = `${defaultApi}/${endpoint}`;\n }\n getUrl() {\n var _a;\n return (_a = this.customUrl) !== null && _a !== void 0 ? _a : this.defaultUrl;\n }\n getChecksum() {\n var _a;\n const fallbacks = ((_a = this.fallbackUrls) !== null && _a !== void 0 ? _a : []).sort().join(',');\n return (0, Hashing_1._DJB2)(this.customUrl + fallbacks);\n }\n}\nexports.UrlConfiguration = UrlConfiguration;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._notifyVisibilityChanged = exports._subscribeToVisiblityChanged = exports._isUnloading = exports._isCurrentlyVisible = void 0;\nconst SafeJs_1 = require(\"./SafeJs\");\nconst FOREGROUND = 'foreground';\nconst BACKGROUND = 'background';\nconst LISTENERS = [];\nlet current = FOREGROUND;\nlet isUnloading = false;\nconst _isCurrentlyVisible = () => {\n return current === FOREGROUND;\n};\nexports._isCurrentlyVisible = _isCurrentlyVisible;\nconst _isUnloading = () => isUnloading;\nexports._isUnloading = _isUnloading;\nconst _subscribeToVisiblityChanged = (listener) => {\n LISTENERS.unshift(listener);\n};\nexports._subscribeToVisiblityChanged = _subscribeToVisiblityChanged;\nconst _notifyVisibilityChanged = (visibility) => {\n if (visibility === current) {\n return;\n }\n current = visibility;\n LISTENERS.forEach((l) => l(visibility));\n};\nexports._notifyVisibilityChanged = _notifyVisibilityChanged;\n(0, SafeJs_1._addWindowEventListenerSafe)('focus', () => {\n isUnloading = false;\n (0, exports._notifyVisibilityChanged)(FOREGROUND);\n});\n(0, SafeJs_1._addWindowEventListenerSafe)('blur', () => (0, exports._notifyVisibilityChanged)(BACKGROUND));\n(0, SafeJs_1._addDocumentEventListenerSafe)('visibilitychange', () => {\n (0, exports._notifyVisibilityChanged)(document.visibilityState === 'visible' ? FOREGROUND : BACKGROUND);\n});\n(0, SafeJs_1._addWindowEventListenerSafe)((0, SafeJs_1._getUnloadEvent)(), () => {\n isUnloading = true;\n (0, exports._notifyVisibilityChanged)(BACKGROUND);\n});\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = exports.Log = exports.EventLogger = exports.Diagnostics = void 0;\n/** Statsig Global should go first */\nrequire(\"./$_StatsigGlobal\");\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst Diagnostics_1 = require(\"./Diagnostics\");\nObject.defineProperty(exports, \"Diagnostics\", { enumerable: true, get: function () { return Diagnostics_1.Diagnostics; } });\nconst EventLogger_1 = require(\"./EventLogger\");\nObject.defineProperty(exports, \"EventLogger\", { enumerable: true, get: function () { return EventLogger_1.EventLogger; } });\nconst Log_1 = require(\"./Log\");\nObject.defineProperty(exports, \"Log\", { enumerable: true, get: function () { return Log_1.Log; } });\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nObject.defineProperty(exports, \"Storage\", { enumerable: true, get: function () { return StorageProvider_1.Storage; } });\n__exportStar(require(\"./$_StatsigGlobal\"), exports);\n__exportStar(require(\"./CacheKey\"), exports);\n__exportStar(require(\"./ClientInterfaces\"), exports);\n__exportStar(require(\"./DataAdapterCore\"), exports);\n__exportStar(require(\"./Diagnostics\"), exports);\n__exportStar(require(\"./DownloadConfigSpecsResponse\"), exports);\n__exportStar(require(\"./ErrorBoundary\"), exports);\n__exportStar(require(\"./EvaluationOptions\"), exports);\n__exportStar(require(\"./EvaluationTypes\"), exports);\n__exportStar(require(\"./Hashing\"), exports);\n__exportStar(require(\"./InitializeResponse\"), exports);\n__exportStar(require(\"./Log\"), exports);\n__exportStar(require(\"./MemoKey\"), exports);\n__exportStar(require(\"./NetworkConfig\"), exports);\n__exportStar(require(\"./NetworkCore\"), exports);\n__exportStar(require(\"./OverrideAdapter\"), exports);\n__exportStar(require(\"./ParamStoreTypes\"), exports);\n__exportStar(require(\"./SafeJs\"), exports);\n__exportStar(require(\"./SDKType\"), exports);\n__exportStar(require(\"./SessionID\"), exports);\n__exportStar(require(\"./StableID\"), exports);\n__exportStar(require(\"./StatsigClientBase\"), exports);\n__exportStar(require(\"./StatsigClientEventEmitter\"), exports);\n__exportStar(require(\"./StatsigDataAdapter\"), exports);\n__exportStar(require(\"./StatsigEvent\"), exports);\n__exportStar(require(\"./StatsigMetadata\"), exports);\n__exportStar(require(\"./StatsigOptionsCommon\"), exports);\n__exportStar(require(\"./StatsigPlugin\"), exports);\n__exportStar(require(\"./StatsigTypeFactories\"), exports);\n__exportStar(require(\"./StatsigTypes\"), exports);\n__exportStar(require(\"./StatsigUser\"), exports);\n__exportStar(require(\"./StorageProvider\"), exports);\n__exportStar(require(\"./TypedJsonParse\"), exports);\n__exportStar(require(\"./TypingUtils\"), exports);\n__exportStar(require(\"./UrlConfiguration\"), exports);\n__exportStar(require(\"./UUID\"), exports);\n__exportStar(require(\"./VisibilityObserving\"), exports);\n__exportStar(require(\"./StatsigUpdateDetails\"), exports);\n__exportStar(require(\"./SDKFlags\"), exports);\nObject.assign((0, __StatsigGlobal_1._getStatsigGlobal)(), { Log: Log_1.Log, SDK_VERSION: StatsigMetadata_1.SDK_VERSION });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._resolveDeltasResponse = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst MAX_DELTAS_SORT_DEPTH = 2;\nfunction _resolveDeltasResponse(cache, deltasString) {\n const deltas = (0, client_core_1._typedJsonParse)(deltasString, 'checksum', 'DeltasEvaluationResponse');\n if (!deltas) {\n return {\n hadBadDeltaChecksum: true,\n };\n }\n const merged = _mergeDeltasIntoCache(cache, deltas);\n const resolved = _handleDeletedEntries(merged);\n const actualChecksum = (0, client_core_1._DJB2Object)({\n feature_gates: resolved.feature_gates,\n dynamic_configs: resolved.dynamic_configs,\n layer_configs: resolved.layer_configs,\n }, MAX_DELTAS_SORT_DEPTH);\n const isMatch = actualChecksum === deltas.checksumV2;\n if (!isMatch) {\n return {\n hadBadDeltaChecksum: true,\n badChecksum: actualChecksum,\n badMergedConfigs: resolved,\n badFullResponse: deltas.deltas_full_response,\n };\n }\n return JSON.stringify(resolved);\n}\nexports._resolveDeltasResponse = _resolveDeltasResponse;\nfunction _mergeDeltasIntoCache(cache, deltas) {\n return Object.assign(Object.assign(Object.assign({}, cache), deltas), { feature_gates: Object.assign(Object.assign({}, cache.feature_gates), deltas.feature_gates), layer_configs: Object.assign(Object.assign({}, cache.layer_configs), deltas.layer_configs), dynamic_configs: Object.assign(Object.assign({}, cache.dynamic_configs), deltas.dynamic_configs) });\n}\nfunction _handleDeletedEntries(deltas) {\n const result = deltas;\n _deleteEntriesInRecord(deltas.deleted_gates, result.feature_gates);\n delete result.deleted_gates;\n _deleteEntriesInRecord(deltas.deleted_configs, result.dynamic_configs);\n delete result.deleted_configs;\n _deleteEntriesInRecord(deltas.deleted_layers, result.layer_configs);\n delete result.deleted_layers;\n return result;\n}\nfunction _deleteEntriesInRecord(keys, values) {\n keys === null || keys === void 0 ? void 0 : keys.forEach((key) => {\n delete values[key];\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nclass EvaluationStore {\n constructor(_sdkKey) {\n this._sdkKey = _sdkKey;\n this._rawValues = null;\n this._values = null;\n this._source = 'Uninitialized';\n this._lcut = 0;\n this._receivedAt = 0;\n this._bootstrapMetadata = null;\n this._warnings = new Set();\n }\n reset() {\n this._values = null;\n this._rawValues = null;\n this._source = 'Loading';\n this._lcut = 0;\n this._receivedAt = 0;\n this._bootstrapMetadata = null;\n }\n finalize() {\n if (this._values) {\n return;\n }\n this._source = 'NoValues';\n }\n getValues() {\n return this._rawValues\n ? (0, client_core_1._typedJsonParse)(this._rawValues, 'has_updates', 'EvaluationStoreValues')\n : null;\n }\n setValues(result, user) {\n var _a;\n if (!result) {\n return false;\n }\n const values = (0, client_core_1._typedJsonParse)(result.data, 'has_updates', 'EvaluationResponse');\n if (values == null) {\n return false;\n }\n this._source = result.source;\n if ((values === null || values === void 0 ? void 0 : values.has_updates) !== true) {\n return true;\n }\n this._rawValues = result.data;\n this._lcut = values.time;\n this._receivedAt = result.receivedAt;\n this._values = values;\n this._bootstrapMetadata = this._extractBootstrapMetadata(result.source, values);\n if (result.source && values.user) {\n this._setWarningState(user, values);\n }\n client_core_1.SDKFlags.setFlags(this._sdkKey, (_a = values.sdk_flags) !== null && _a !== void 0 ? _a : {});\n return true;\n }\n getWarnings() {\n if (this._warnings.size === 0) {\n return undefined;\n }\n return Array.from(this._warnings);\n }\n getGate(name) {\n var _a;\n return this._getDetailedStoreResult((_a = this._values) === null || _a === void 0 ? void 0 : _a.feature_gates, name);\n }\n getConfig(name) {\n var _a;\n return this._getDetailedStoreResult((_a = this._values) === null || _a === void 0 ? void 0 : _a.dynamic_configs, name);\n }\n getLayer(name) {\n var _a;\n return this._getDetailedStoreResult((_a = this._values) === null || _a === void 0 ? void 0 : _a.layer_configs, name);\n }\n getParamStore(name) {\n var _a;\n return this._getDetailedStoreResult((_a = this._values) === null || _a === void 0 ? void 0 : _a.param_stores, name);\n }\n getSource() {\n return this._source;\n }\n getExposureMapping() {\n var _a;\n return (_a = this._values) === null || _a === void 0 ? void 0 : _a.exposures;\n }\n _extractBootstrapMetadata(source, values) {\n if (source !== 'Bootstrap') {\n return null;\n }\n const bootstrapMetadata = {};\n if (values.user) {\n bootstrapMetadata.user = values.user;\n }\n if (values.sdkInfo) {\n bootstrapMetadata.generatorSDKInfo = values.sdkInfo;\n }\n bootstrapMetadata.lcut = values.time;\n return bootstrapMetadata;\n }\n _getDetailedStoreResult(lookup, name) {\n let result = null;\n if (lookup) {\n result = lookup[name] ? lookup[name] : lookup[(0, client_core_1._DJB2)(name)];\n }\n return {\n result,\n details: this._getDetails(result == null),\n };\n }\n _setWarningState(user, values) {\n var _a, _b;\n const stableID = client_core_1.StableID.get(this._sdkKey);\n if (((_a = user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID) !== stableID && // don't throw if they're both undefined\n (((_b = user.customIDs) === null || _b === void 0 ? void 0 : _b.stableID) || stableID)) {\n this._warnings.add('StableIDMismatch');\n return;\n }\n if ('user' in values) {\n const bootstrapUser = values['user'];\n if ((0, client_core_1._getFullUserHash)(user) !== (0, client_core_1._getFullUserHash)(bootstrapUser)) {\n this._warnings.add('PartialUserMatch');\n }\n }\n }\n getCurrentSourceDetails() {\n if (this._source === 'Uninitialized' || this._source === 'NoValues') {\n return { reason: this._source };\n }\n const sourceDetails = {\n reason: this._source,\n lcut: this._lcut,\n receivedAt: this._receivedAt,\n };\n if (this._warnings.size > 0) {\n sourceDetails.warnings = Array.from(this._warnings);\n }\n return sourceDetails;\n }\n _getDetails(isUnrecognized) {\n var _a, _b;\n const sourceDetails = this.getCurrentSourceDetails();\n let reason = sourceDetails.reason;\n const warnings = (_a = sourceDetails.warnings) !== null && _a !== void 0 ? _a : [];\n if (this._source === 'Bootstrap' && warnings.length > 0) {\n reason = reason + warnings[0];\n }\n if (reason !== 'Uninitialized' && reason !== 'NoValues') {\n const subreason = isUnrecognized ? 'Unrecognized' : 'Recognized';\n reason = `${reason}:${subreason}`;\n }\n const bootstrapMetadata = this._source === 'Bootstrap'\n ? (_b = this._bootstrapMetadata) !== null && _b !== void 0 ? _b : undefined\n : undefined;\n if (bootstrapMetadata) {\n sourceDetails.bootstrapMetadata = bootstrapMetadata;\n }\n return Object.assign(Object.assign({}, sourceDetails), { reason });\n }\n}\nexports.default = EvaluationStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst EvaluationResponseDeltas_1 = require(\"./EvaluationResponseDeltas\");\nclass StatsigNetwork extends client_core_1.NetworkCore {\n constructor(options, emitter) {\n super(options, emitter);\n const config = options === null || options === void 0 ? void 0 : options.networkConfig;\n this._option = options;\n this._initializeUrlConfig = new client_core_1.UrlConfiguration(client_core_1.Endpoint._initialize, config === null || config === void 0 ? void 0 : config.initializeUrl, config === null || config === void 0 ? void 0 : config.api, config === null || config === void 0 ? void 0 : config.initializeFallbackUrls);\n }\n fetchEvaluations(sdkKey, current, priority, user, isCacheValidFor204) {\n var _a, _b, _c, _d, _e, _f;\n return __awaiter(this, void 0, void 0, function* () {\n const cache = current\n ? (0, client_core_1._typedJsonParse)(current, 'has_updates', 'InitializeResponse')\n : null;\n let data = {\n user,\n hash: (_c = (_b = (_a = this._option) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.initializeHashAlgorithm) !== null && _c !== void 0 ? _c : 'djb2',\n deltasResponseRequested: false,\n full_checksum: null,\n };\n if (cache === null || cache === void 0 ? void 0 : cache.has_updates) {\n const hasHashChanged = (cache === null || cache === void 0 ? void 0 : cache.hash_used) !==\n ((_f = (_e = (_d = this._option) === null || _d === void 0 ? void 0 : _d.networkConfig) === null || _e === void 0 ? void 0 : _e.initializeHashAlgorithm) !== null && _f !== void 0 ? _f : 'djb2');\n data = Object.assign(Object.assign({}, data), { sinceTime: isCacheValidFor204 && !hasHashChanged ? cache.time : 0, previousDerivedFields: 'derived_fields' in cache && isCacheValidFor204\n ? cache.derived_fields\n : {}, deltasResponseRequested: true, full_checksum: cache.full_checksum, partialUserMatchSinceTime: !hasHashChanged ? cache.time : 0 });\n }\n return this._fetchEvaluations(sdkKey, cache, data, priority);\n });\n }\n _fetchEvaluations(sdkKey, cache, data, priority) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield this.post({\n sdkKey,\n urlConfig: this._initializeUrlConfig,\n data,\n retries: 2,\n isStatsigEncodable: true,\n priority,\n });\n if ((response === null || response === void 0 ? void 0 : response.code) === 204) {\n return '{\"has_updates\": false}';\n }\n if ((response === null || response === void 0 ? void 0 : response.code) !== 200) {\n return (_a = response === null || response === void 0 ? void 0 : response.body) !== null && _a !== void 0 ? _a : null;\n }\n if ((cache === null || cache === void 0 ? void 0 : cache.has_updates) !== true ||\n ((_b = response.body) === null || _b === void 0 ? void 0 : _b.includes('\"is_delta\":true')) !== true ||\n data.deltasResponseRequested !== true) {\n return response.body;\n }\n const result = (0, EvaluationResponseDeltas_1._resolveDeltasResponse)(cache, response.body);\n if (typeof result === 'string') {\n return result;\n }\n // retry without deltas\n return this._fetchEvaluations(sdkKey, cache, Object.assign(Object.assign(Object.assign({}, data), result), { deltasResponseRequested: false }), priority);\n });\n }\n}\nexports.default = StatsigNetwork;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._makeParamStoreGetter = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst NO_EXPOSURE_OPT = {\n disableExposureLog: true,\n};\nfunction _shouldLogExposure(options) {\n return options == null || options.disableExposureLog === false;\n}\nfunction _shouldReturnFallback(value, fallback) {\n return fallback != null && !(0, client_core_1._isTypeMatch)(value, fallback);\n}\nfunction _getMappedStaticValue(param, _options) {\n return param.value;\n}\nfunction _getMappedGateValue(client, param, options) {\n const gate = client.getFeatureGate(param.gate_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n if (gate.value) {\n return param.pass_value;\n }\n return param.fail_value;\n}\nfunction _getMappedDynamicConfigValue(client, param, fallback, options) {\n const config = client.getDynamicConfig(param.config_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n const value = config.get(param.param_name);\n if (_shouldReturnFallback(value, fallback)) {\n return fallback;\n }\n return value;\n}\nfunction _getMappedExperimentValue(client, param, fallback, options) {\n const experiment = client.getExperiment(param.experiment_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n const value = experiment.get(param.param_name);\n if (_shouldReturnFallback(value, fallback)) {\n return fallback;\n }\n return value;\n}\nfunction _getMappedLayerValue(client, param, fallback, options) {\n const layer = client.getLayer(param.layer_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n const value = layer.get(param.param_name);\n if (_shouldReturnFallback(value, fallback)) {\n return fallback;\n }\n return value;\n}\nfunction _makeParamStoreGetter(client, config, options) {\n return (paramName, fallback) => {\n if (config == null) {\n return fallback;\n }\n const param = config[paramName];\n if (param == null ||\n (fallback != null && (0, client_core_1._typeOf)(fallback) !== param.param_type)) {\n return fallback;\n }\n switch (param.ref_type) {\n case 'static':\n return _getMappedStaticValue(param, options);\n case 'gate':\n return _getMappedGateValue(client, param, options);\n case 'dynamic_config':\n return _getMappedDynamicConfigValue(client, param, fallback, options);\n case 'experiment':\n return _getMappedExperimentValue(client, param, fallback, options);\n case 'layer':\n return _getMappedLayerValue(client, param, fallback, options);\n default:\n return fallback;\n }\n };\n}\nexports._makeParamStoreGetter = _makeParamStoreGetter;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst EvaluationStore_1 = require(\"./EvaluationStore\");\nconst Network_1 = require(\"./Network\");\nconst ParamStoreGetterFactory_1 = require(\"./ParamStoreGetterFactory\");\nconst StatsigEvaluationsDataAdapter_1 = require(\"./StatsigEvaluationsDataAdapter\");\nclass StatsigClient extends client_core_1.StatsigClientBase {\n /**\n * Retrieves an instance of the StatsigClient based on the provided SDK key.\n * If no SDK key is provided, the method returns the most recently created instance of the StatsigClient.\n * The method ensures that each unique SDK key corresponds to a single instance of StatsigClient, effectively implementing a singleton pattern for each key.\n *\n * @param {string} [sdkKey] - Optional. The SDK key used to identify a specific instance of the StatsigClient. If omitted, the method returns the last created instance.\n * @returns {StatsigClient|undefined} Returns the StatsigClient instance associated with the given SDK key, or undefined if no instance is associated with the key or if no key is provided and no instances exist.\n */\n static instance(sdkKey) {\n const instance = (0, client_core_1._getStatsigGlobal)().instance(sdkKey);\n if (instance instanceof StatsigClient) {\n return instance;\n }\n client_core_1.Log.warn((0, client_core_1._isServerEnv)()\n ? 'StatsigClient.instance is not supported in server environments'\n : 'Unable to find StatsigClient instance');\n return new StatsigClient(sdkKey !== null && sdkKey !== void 0 ? sdkKey : '', {});\n }\n /**\n * StatsigClient constructor\n *\n * @param {string} sdkKey A Statsig client SDK key. eg \"client-xyz123...\"\n * @param {StatsigUser} user StatsigUser object containing various attributes related to a user.\n * @param {StatsigOptions | null} options StatsigOptions, used to customize the behavior of the SDK.\n */\n constructor(sdkKey, user, options = null) {\n var _a, _b;\n client_core_1.SDKType._setClientType(sdkKey, 'javascript-client');\n const network = new Network_1.default(options, (e) => {\n this.$emt(e);\n });\n super(sdkKey, (_a = options === null || options === void 0 ? void 0 : options.dataAdapter) !== null && _a !== void 0 ? _a : new StatsigEvaluationsDataAdapter_1.StatsigEvaluationsDataAdapter(), network, options);\n /**\n * Retrieves the value of a feature gate for the current user, represented as a {@link FeatureGate} object.\n *\n * @param {string} name - The name of the feature gate to retrieve.\n * @param {FeatureGateEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {FeatureGate} - The {@link FeatureGate} object representing the gate's current evaluation results for the user.\n */\n this.getFeatureGate = this._memoize(client_core_1.MemoPrefix._gate, this._getFeatureGateImpl.bind(this));\n /**\n * Retrieves the value of a dynamic config for the current user.\n *\n * @param {string} name The name of the dynamic config to get.\n * @param {DynamicConfigEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {DynamicConfig} - The {@link DynamicConfig} object representing the dynamic configs's current evaluation results for the user.\n */\n this.getDynamicConfig = this._memoize(client_core_1.MemoPrefix._dynamicConfig, this._getDynamicConfigImpl.bind(this));\n /**\n * Retrieves the value of a experiment for the current user.\n *\n * @param {string} name The name of the experiment to get.\n * @param {ExperimentEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {Experiment} - The {@link Experiment} object representing the experiments's current evaluation results for the user.\n */\n this.getExperiment = this._memoize(client_core_1.MemoPrefix._experiment, this._getExperimentImpl.bind(this));\n /**\n * Retrieves the value of a layer for the current user.\n *\n * @param {string} name The name of the layer to get.\n * @param {LayerEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {Layer} - The {@link Layer} object representing the layers's current evaluation results for the user.\n */\n this.getLayer = this._memoize(client_core_1.MemoPrefix._layer, this._getLayerImpl.bind(this));\n /**\n * Retrieves the value of a parameter store for the current user.\n *\n * @param {string} name The name of the parameter store to get.\n * @param {ParameterStoreEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {ParameterStore} - The {@link ParameterStore} object representing the parameter store's current mappings for the user.\n */\n this.getParameterStore = this._memoize(client_core_1.MemoPrefix._paramStore, this._getParameterStoreImpl.bind(this));\n this._store = new EvaluationStore_1.default(sdkKey);\n this._network = network;\n this._user = this._configureUser(user, options);\n const plugins = (_b = options === null || options === void 0 ? void 0 : options.plugins) !== null && _b !== void 0 ? _b : [];\n for (const plugin of plugins) {\n plugin.bind(this);\n }\n }\n /**\n * Initializes the StatsigClient using cached values. This method sets up the client synchronously by utilizing previously cached values.\n * After initialization, cache values are updated in the background for future use, either in subsequent sessions or when `updateUser` is called.\n * This is useful for quickly starting with the last-known-good configurations while refreshing data to keep settings up-to-date.\n *\n * @see {@link initializeAsync} for the asynchronous version of this method.\n */\n initializeSync(options) {\n var _a;\n if (this.loadingStatus !== 'Uninitialized') {\n return (0, client_core_1.createUpdateDetails)(true, this._store.getSource(), -1, null, null, ['MultipleInitializations', ...((_a = this._store.getWarnings()) !== null && _a !== void 0 ? _a : [])]);\n }\n this._logger.start();\n return this.updateUserSync(this._user, options);\n }\n /**\n * Initializes the StatsigClient asynchronously by first using cached values and then updating to the latest values from the network.\n * Once the network values are fetched, they replace the existing cached values. If this method's promise is not awaited,\n * there might be a transition from cached to network values during the session, which can affect consistency.\n * This method is useful when it's acceptable to begin with potentially stale data and switch to the latest configuration as it becomes available.\n *\n * @param {AsyncUpdateOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {Promise<void>} A promise that resolves once the client is fully initialized with the latest values from the network or a timeout (if set) is hit.\n * @see {@link initializeSync} for the synchronous version of this method.\n */\n initializeAsync(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._initializePromise) {\n return this._initializePromise;\n }\n this._initializePromise = this._initializeAsyncImpl(options);\n return this._initializePromise;\n });\n }\n /**\n * Synchronously updates the user in the Statsig client and switches the internal state to use cached values for the newly specified user.\n * After the initial switch to cached values, this method updates these values in the background, preparing them for future sessions or subsequent calls to updateUser.\n * This method ensures the client is quickly ready with available data.\n *\n * @param {StatsigUser} user - The new StatsigUser for which the client should update its internal state.\n * @see {@link updateUserAsync} for the asynchronous version of this method.\n */\n updateUserSync(user, options) {\n var _a;\n const startTime = performance.now();\n const warnings = [...((_a = this._store.getWarnings()) !== null && _a !== void 0 ? _a : [])];\n this._resetForUser(user);\n const result = this.dataAdapter.getDataSync(this._user);\n if (result == null) {\n warnings.push('NoCachedValues');\n }\n this._store.setValues(result, this._user);\n this._finalizeUpdate(result);\n const disable = options === null || options === void 0 ? void 0 : options.disableBackgroundCacheRefresh;\n if (disable === true ||\n (disable == null && (result === null || result === void 0 ? void 0 : result.source) === 'Bootstrap')) {\n return (0, client_core_1.createUpdateDetails)(true, this._store.getSource(), performance.now() - startTime, this._errorBoundary.getLastSeenErrorAndReset(), this._network.getLastUsedInitUrlAndReset(), warnings);\n }\n this._runPostUpdate(result !== null && result !== void 0 ? result : null, this._user);\n return (0, client_core_1.createUpdateDetails)(true, this._store.getSource(), performance.now() - startTime, this._errorBoundary.getLastSeenErrorAndReset(), this._network.getLastUsedInitUrlAndReset(), warnings);\n }\n /**\n * Asynchronously updates the user in the Statsig client by initially using cached values and then fetching the latest values from the network.\n * When the latest values are fetched, they replace the cached values. If the promise returned by this method is not awaited,\n * the client's state may shift from cached to updated network values during the session, potentially affecting consistency.\n * This method is best used in scenarios where up-to-date configuration is critical and initial delays are acceptable.\n *\n * @param {StatsigUser} user - The new StatsigUser for which the client should update its internal state.\n * @param {AsyncUpdateOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {Promise<void>} A promise that resolves once the client is fully updated with the latest values from the network or a timeout (if set) is hit.\n * @see {@link updateUserSync} for the synchronous version of this method.\n */\n updateUserAsync(user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n this._resetForUser(user);\n const initiator = this._user;\n client_core_1.Diagnostics._markInitOverallStart(this._sdkKey);\n let result = this.dataAdapter.getDataSync(initiator);\n this._store.setValues(result, this._user);\n this._setStatus('Loading', result);\n result = yield this.dataAdapter.getDataAsync(result, initiator, options);\n // ensure the user hasn't changed while we were waiting\n if (initiator !== this._user) {\n return (0, client_core_1.createUpdateDetails)(false, this._store.getSource(), -1, new Error('User changed during update'), this._network.getLastUsedInitUrlAndReset());\n }\n let isUsingNetworkValues = false;\n if (result != null) {\n client_core_1.Diagnostics._markInitProcessStart(this._sdkKey);\n isUsingNetworkValues = this._store.setValues(result, this._user);\n client_core_1.Diagnostics._markInitProcessEnd(this._sdkKey, {\n success: isUsingNetworkValues,\n });\n }\n this._finalizeUpdate(result);\n if (!isUsingNetworkValues) {\n this._errorBoundary.attachErrorIfNoneExists(client_core_1.UPDATE_DETAIL_ERROR_MESSAGES.NO_NETWORK_DATA);\n this.$emt({ name: 'initialization_failure' });\n }\n client_core_1.Diagnostics._markInitOverallEnd(this._sdkKey, isUsingNetworkValues, this._store.getCurrentSourceDetails());\n const initDuration = client_core_1.Diagnostics._enqueueDiagnosticsEvent(this._user, this._logger, this._sdkKey, this._options);\n return (0, client_core_1.createUpdateDetails)(isUsingNetworkValues, this._store.getSource(), initDuration, this._errorBoundary.getLastSeenErrorAndReset(), this._network.getLastUsedInitUrlAndReset(), this._store.getWarnings());\n });\n }\n /**\n * Retrieves a synchronous context containing data currently being used by the SDK. Represented as a {@link PrecomputedEvaluationsContext} object.\n *\n * @returns {PrecomputedEvaluationsContext} The current synchronous context for the this StatsigClient instance.\n */\n getContext() {\n return {\n sdkKey: this._sdkKey,\n options: this._options,\n values: this._store.getValues(),\n user: JSON.parse(JSON.stringify(this._user)),\n errorBoundary: this._errorBoundary,\n session: client_core_1.StatsigSession.get(this._sdkKey),\n stableID: client_core_1.StableID.get(this._sdkKey),\n };\n }\n /**\n * Retrieves the value of a feature gate for the current user, represented as a simple boolean.\n *\n * @param {string} name - The name of the feature gate to retrieve.\n * @param {FeatureGateEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {boolean} - The boolean value representing the gate's current evaluation results for the user.\n */\n checkGate(name, options) {\n return this.getFeatureGate(name, options).value;\n }\n /**\n * Logs an event to the internal logging system. This function allows logging by either passing a fully formed event object or by specifying the event name with optional value and metadata.\n *\n * @param {StatsigEvent|string} eventOrName - The event object conforming to the StatsigEvent interface, or the name of the event as a string.\n * @param {string|number} value - Optional. The value associated with the event, which can be a string or a number. This parameter is ignored if the first parameter is a StatsigEvent object.\n * @param {Record<string, string>} metadata - Optional. A key-value record containing metadata about the event. This is also ignored if the first parameter is an event object.\n */\n logEvent(eventOrName, value, metadata) {\n const event = typeof eventOrName === 'string'\n ? {\n eventName: eventOrName,\n value,\n metadata,\n }\n : eventOrName;\n this.$emt({\n name: 'log_event_called',\n event,\n });\n this._logger.enqueue(Object.assign(Object.assign({}, event), { user: this._user, time: Date.now() }));\n }\n _primeReadyRipcord() {\n this.$on('error', () => {\n this.loadingStatus === 'Loading' && this._finalizeUpdate(null);\n });\n }\n _initializeAsyncImpl(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!client_core_1.Storage.isReady()) {\n yield client_core_1.Storage.isReadyResolver();\n }\n this._logger.start();\n return this.updateUserAsync(this._user, options);\n });\n }\n _finalizeUpdate(values) {\n this._store.finalize();\n this._setStatus('Ready', values);\n }\n _runPostUpdate(current, user) {\n this.dataAdapter\n .getDataAsync(current, user, { priority: 'low' })\n .catch((err) => {\n client_core_1.Log.error('An error occurred after update.', err);\n });\n }\n _resetForUser(user) {\n this._logger.reset();\n this._store.reset();\n this._user = this._configureUser(user, this._options);\n }\n _configureUser(originalUser, options) {\n var _a;\n const user = (0, client_core_1._normalizeUser)(originalUser, options);\n const stableIdOverride = (_a = user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID;\n if (stableIdOverride) {\n client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey);\n }\n return user;\n }\n _getFeatureGateImpl(name, options) {\n var _a, _b;\n const { result: evaluation, details } = this._store.getGate(name);\n const gate = (0, client_core_1._makeFeatureGate)(name, details, evaluation);\n const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getGateOverride) === null || _b === void 0 ? void 0 : _b.call(_a, gate, this._user, options);\n const result = overridden !== null && overridden !== void 0 ? overridden : gate;\n this._enqueueExposure(name, (0, client_core_1._createGateExposure)(this._user, result, this._store.getExposureMapping()), options);\n this.$emt({ name: 'gate_evaluation', gate: result });\n return result;\n }\n _getDynamicConfigImpl(name, options) {\n var _a, _b;\n const { result: evaluation, details } = this._store.getConfig(name);\n const config = (0, client_core_1._makeDynamicConfig)(name, details, evaluation);\n const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getDynamicConfigOverride) === null || _b === void 0 ? void 0 : _b.call(_a, config, this._user, options);\n const result = overridden !== null && overridden !== void 0 ? overridden : config;\n this._enqueueExposure(name, (0, client_core_1._createConfigExposure)(this._user, result, this._store.getExposureMapping()), options);\n this.$emt({ name: 'dynamic_config_evaluation', dynamicConfig: result });\n return result;\n }\n _getExperimentImpl(name, options) {\n var _a, _b, _c, _d;\n const { result: evaluation, details } = this._store.getConfig(name);\n const experiment = (0, client_core_1._makeExperiment)(name, details, evaluation);\n if (experiment.__evaluation != null) {\n experiment.__evaluation.secondary_exposures = (0, client_core_1._mapExposures)((_b = (_a = experiment.__evaluation) === null || _a === void 0 ? void 0 : _a.secondary_exposures) !== null && _b !== void 0 ? _b : [], this._store.getExposureMapping());\n }\n const overridden = (_d = (_c = this.overrideAdapter) === null || _c === void 0 ? void 0 : _c.getExperimentOverride) === null || _d === void 0 ? void 0 : _d.call(_c, experiment, this._user, options);\n const result = overridden !== null && overridden !== void 0 ? overridden : experiment;\n this._enqueueExposure(name, (0, client_core_1._createConfigExposure)(this._user, result, this._store.getExposureMapping()), options);\n this.$emt({ name: 'experiment_evaluation', experiment: result });\n return result;\n }\n _getLayerImpl(name, options) {\n var _a, _b, _c;\n const { result: evaluation, details } = this._store.getLayer(name);\n const layer = (0, client_core_1._makeLayer)(name, details, evaluation);\n const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getLayerOverride) === null || _b === void 0 ? void 0 : _b.call(_a, layer, this._user, options);\n if (options === null || options === void 0 ? void 0 : options.disableExposureLog) {\n this._logger.incrementNonExposureCount(name);\n }\n const result = (0, client_core_1._mergeOverride)(layer, overridden, (_c = overridden === null || overridden === void 0 ? void 0 : overridden.__value) !== null && _c !== void 0 ? _c : layer.__value, (param) => {\n if (options === null || options === void 0 ? void 0 : options.disableExposureLog) {\n return;\n }\n this._enqueueExposure(name, (0, client_core_1._createLayerParameterExposure)(this._user, result, param, this._store.getExposureMapping()), options);\n });\n this.$emt({ name: 'layer_evaluation', layer: result });\n return result;\n }\n _getParameterStoreImpl(name, options) {\n var _a, _b;\n const { result: configuration, details } = this._store.getParamStore(name);\n this._logger.incrementNonExposureCount(name);\n const paramStore = {\n name,\n details: details,\n __configuration: configuration,\n get: (0, ParamStoreGetterFactory_1._makeParamStoreGetter)(this, configuration, options),\n };\n const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getParamStoreOverride) === null || _b === void 0 ? void 0 : _b.call(_a, paramStore, options);\n if (overridden != null) {\n paramStore.__configuration = overridden.config;\n paramStore.details = overridden.details;\n paramStore.get = (0, ParamStoreGetterFactory_1._makeParamStoreGetter)(this, overridden.config, options);\n }\n return paramStore;\n }\n}\nexports.default = StatsigClient;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigEvaluationsDataAdapter = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst Network_1 = require(\"./Network\");\nclass StatsigEvaluationsDataAdapter extends client_core_1.DataAdapterCore {\n constructor() {\n super('EvaluationsDataAdapter', 'evaluations');\n this._network = null;\n this._options = null;\n }\n attach(sdkKey, options, network) {\n super.attach(sdkKey, options, network);\n if (network !== null && network instanceof Network_1.default) {\n this._network = network;\n }\n else {\n this._network = new Network_1.default(options !== null && options !== void 0 ? options : {});\n }\n }\n getDataAsync(current, user, options) {\n return this._getDataAsyncImpl(current, (0, client_core_1._normalizeUser)(user, this._options), options);\n }\n prefetchData(user, options) {\n return this._prefetchDataImpl(user, options);\n }\n setData(data) {\n const values = (0, client_core_1._typedJsonParse)(data, 'has_updates', 'data');\n if (values && 'user' in values) {\n super.setData(data, values.user);\n }\n else {\n client_core_1.Log.error('StatsigUser not found. You may be using an older server SDK version. Please upgrade your SDK or use setDataLegacy.');\n }\n }\n setDataLegacy(data, user) {\n super.setData(data, user);\n }\n _fetchFromNetwork(current, user, options, isCacheValidFor204) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield ((_a = this._network) === null || _a === void 0 ? void 0 : _a.fetchEvaluations(this._getSdkKey(), current, options === null || options === void 0 ? void 0 : options.priority, user, isCacheValidFor204));\n return result !== null && result !== void 0 ? result : null;\n });\n }\n _getCacheKey(user) {\n var _a;\n const key = (0, client_core_1._getStorageKey)(this._getSdkKey(), user, (_a = this._options) === null || _a === void 0 ? void 0 : _a.customUserCacheKeyFunc);\n return `${client_core_1.DataAdapterCachePrefix}.${this._cacheSuffix}.${key}`;\n }\n _isCachedResultValidFor204(result, user) {\n return (result.fullUserHash != null &&\n result.fullUserHash === (0, client_core_1._getFullUserHash)(user));\n }\n}\nexports.StatsigEvaluationsDataAdapter = StatsigEvaluationsDataAdapter;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigClient = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst StatsigClient_1 = require(\"./StatsigClient\");\nexports.StatsigClient = StatsigClient_1.default;\n__exportStar(require(\"@statsig/client-core\"), exports);\nconst __STATSIG__ = Object.assign((0, client_core_1._getStatsigGlobal)(), {\n StatsigClient: StatsigClient_1.default,\n});\nexports.default = __STATSIG__;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default 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}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default 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}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default 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}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { EventEmitter2 } from 'eventemitter2';\nexport var ALL_FEATURE_VALUES = '@all-features';\nvar Subscriptions = /*#__PURE__*/function () {\n function Subscriptions() {\n _classCallCheck(this, Subscriptions);\n _defineProperty(this, \"eventToValue\", new Map());\n this.emitter = new EventEmitter2();\n }\n return _createClass(Subscriptions, [{\n key: \"onGateUpdated\",\n value: function onGateUpdated(gateName, callback, checkGate, options) {\n var _this = this;\n var value = checkGate(gateName, _objectSpread(_objectSpread({}, options), {}, {\n fireGateExposure: false\n }));\n if (this.eventToValue.get(callback) === undefined) {\n this.eventToValue.set(callback, value);\n }\n var wrapCallback = function wrapCallback() {\n var value = checkGate(gateName, _objectSpread(_objectSpread({}, options), {}, {\n fireGateExposure: false\n }));\n var existingValue = _this.eventToValue.get(callback);\n if (existingValue !== value) {\n _this.eventToValue.set(callback, value);\n callback(value);\n }\n };\n this.emitter.on(gateName, wrapCallback);\n return function () {\n _this.emitter.off(gateName, wrapCallback);\n };\n }\n }, {\n key: \"onExperimentValueUpdated\",\n value: function onExperimentValueUpdated(experimentName, parameterName, defaultValue, callback, getExperimentValue, options) {\n var _this2 = this;\n var experimentEventName = \"\".concat(experimentName, \".\").concat(parameterName);\n var value = getExperimentValue(experimentName, parameterName, defaultValue, _objectSpread(_objectSpread({}, options), {}, {\n fireExperimentExposure: false\n }));\n if (this.eventToValue.get(callback) === undefined) {\n this.eventToValue.set(callback, value);\n }\n var wrapCallback = function wrapCallback() {\n var value = getExperimentValue(experimentName, parameterName, defaultValue, _objectSpread(_objectSpread({}, options), {}, {\n fireExperimentExposure: false\n }));\n var existingValue = _this2.eventToValue.get(callback);\n if (existingValue !== value) {\n _this2.eventToValue.set(callback, value);\n callback(value);\n }\n };\n this.emitter.on(experimentEventName, wrapCallback);\n return function () {\n _this2.emitter.off(experimentEventName, wrapCallback);\n };\n }\n }, {\n key: \"onAnyUpdated\",\n value: function onAnyUpdated(callback) {\n var _this3 = this;\n this.emitter.on(ALL_FEATURE_VALUES, callback);\n return function () {\n _this3.emitter.off(ALL_FEATURE_VALUES, callback);\n };\n }\n }, {\n key: \"anyUpdated\",\n value: function anyUpdated() {\n var _this4 = this;\n this.emitter.emit(ALL_FEATURE_VALUES);\n this.emitter.eventNames().filter(function (name) {\n return name !== ALL_FEATURE_VALUES;\n }).forEach(function (event) {\n _this4.emitter.emit(event);\n });\n }\n }]);\n}();\nexport { Subscriptions as default };","import { FEDRAMP_MODERATE } from '../../common/constants';\n\n/**\n * Caution: Consider Alternatives Use of this function is not recommended as a long term solution, as it creates an assumption\n * there are no other isolated environments than just FedRAMP Moderate. You are encouraged to consider alternate solutions,\n * such as Statsig or environment configuration, that don’t require creating a hard dependency between your code features\n * and the FedRAMP environment.\n * See [go-is-fedramp](https://go.atlassian.com/is-fedramp)\n */\nexport function isFedRamp() {\n var _global$location;\n var global = globalThis;\n // MICROS_PERIMETER is already used by few products, so we need to keep it for backward compatibility\n var env = global.MICROS_PERIMETER || global.UNSAFE_ATL_CONTEXT_BOUNDARY;\n if (env) {\n return env === FEDRAMP_MODERATE;\n }\n var matches = (_global$location = global.location) === null || _global$location === void 0 || (_global$location = _global$location.hostname) === null || _global$location === void 0 ? void 0 : _global$location.match(/atlassian-us-gov-mod\\.(com|net)|atlassian-us-gov\\.(com|net)|atlassian-fex\\.(com|net)|atlassian-stg-fedm\\.(com|net)/);\n return matches ? matches.length > 0 : false;\n}","export var FEDRAMP_MODERATE = 'fedramp-moderate';\nexport var COMMERCIAL = 'commercial';\nexport var FEDRAMP_FEDEX = 'fedramp-fedex';\nexport var STAGING = 'stg';\nexport var PRODUCTION = 'prod';\nexport var DEV = 'dev';","// Reference: https://github.com/statsig-io/js-lite/blob/main/src/StatsigStore.ts\n\nexport var EvaluationReason = /*#__PURE__*/function (EvaluationReason) {\n // Order is important since the logic for migrating from a new client reason to an old one\n // returns the first which is a substring of the new client reason\n EvaluationReason[\"Error\"] = \"Error\";\n EvaluationReason[\"LocalOverride\"] = \"LocalOverride\";\n EvaluationReason[\"Unrecognized\"] = \"Unrecognized\";\n EvaluationReason[\"Uninitialized\"] = \"Uninitialized\";\n EvaluationReason[\"NetworkNotModified\"] = \"NetworkNotModified\";\n EvaluationReason[\"Network\"] = \"Network\";\n EvaluationReason[\"InvalidBootstrap\"] = \"InvalidBootstrap\";\n EvaluationReason[\"Bootstrap\"] = \"Bootstrap\";\n EvaluationReason[\"Cache\"] = \"Cache\";\n // For when we could not migrate the reason from the new client\n EvaluationReason[\"Unknown\"] = \"Unknown\";\n return EvaluationReason;\n}({});\n\n// Reference: https://github.com/statsig-io/js-lite/blob/main/src/StatsigSDKOptions.ts","/**\n * The identifiers for the user. Options are restricted to the set that is currently supported.\n */\n\n/**\n * Base client options. Does not include any options specific to providers\n * @interface BaseClientOptions\n * @property {FeatureGateEnvironment} environment - The environment for the client.\n * @property {string} targetApp - The target app for the client.\n * @property {AnalyticsWebClient} analyticsWebClient - The analytics web client.\n * @property {PerimeterType} perimeter - The perimeter for the client.\n */\n\n/**\n * The options for the client.\n * @interface ClientOptions\n * @extends {BaseClientOptions}\n * @property {string} apiKey - The API key for the client.\n * @property {fetchTimeoutMs} fetchTimeoutMs - The timeout for the fetch request in milliseconds. Defaults to 5000.\n * @property {boolean} useGatewayURL - Whether to use the gateway URL. Defaults to false.\n */\n\n/**\n * The custom attributes for the user.\n */\n\nexport var FeatureGateEnvironment = /*#__PURE__*/function (FeatureGateEnvironment) {\n FeatureGateEnvironment[\"Development\"] = \"development\";\n FeatureGateEnvironment[\"Staging\"] = \"staging\";\n FeatureGateEnvironment[\"Production\"] = \"production\";\n return FeatureGateEnvironment;\n}({});\n\n// If adding new values here, please check FeatureGates.getDefaultPerimeter to make sure it still returns something sensible.\nexport var PerimeterType = /*#__PURE__*/function (PerimeterType) {\n PerimeterType[\"COMMERCIAL\"] = \"commercial\";\n PerimeterType[\"FEDRAMP_MODERATE\"] = \"fedramp-moderate\";\n return PerimeterType;\n}({});\nexport var NON_BOOLEAN_VALUE = 'non_boolean';\n\n// Type magic to get the JSDoc comments from the Client class methods to appear on the static\n// methods in FeatureGates where the property name and function type are identical","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"api\", \"disableCurrentPageLogging\", \"loggingIntervalMillis\", \"loggingBufferMaxSize\", \"localMode\", \"eventLoggingApi\", \"eventLoggingApiForRetries\", \"disableLocalStorage\", \"ignoreWindowUndefined\", \"disableAllLogging\", \"initTimeoutMs\", \"disableNetworkKeepalive\", \"overrideStableID\", \"disableErrorLogging\", \"disableAutoMetricsLogging\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { isFedRamp } from '@atlaskit/atlassian-context';\nimport { EvaluationReason } from './compat/types';\nimport { PerimeterType } from './types';\nexport var getOptionsWithDefaults = function getOptionsWithDefaults(options) {\n return _objectSpread({\n /**\n * If more federal PerimeterTypes are added in the future, this should be updated so\n * that isFedRamp() === true always returns the strictest perimeter.\n */\n perimeter: isFedRamp() ? PerimeterType.FEDRAMP_MODERATE : PerimeterType.COMMERCIAL\n }, options);\n};\nexport var shallowEquals = function shallowEquals(objectA, objectB) {\n if (!objectA && !objectB) {\n return true;\n }\n if (!objectA || !objectB) {\n return false;\n }\n var aEntries = Object.entries(objectA);\n var bEntries = Object.entries(objectB);\n if (aEntries.length !== bEntries.length) {\n return false;\n }\n var ascendingKeyOrder = function ascendingKeyOrder(_ref, _ref2) {\n var _ref3 = _slicedToArray(_ref, 1),\n key1 = _ref3[0];\n var _ref4 = _slicedToArray(_ref2, 1),\n key2 = _ref4[0];\n return key1.localeCompare(key2);\n };\n aEntries.sort(ascendingKeyOrder);\n bEntries.sort(ascendingKeyOrder);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n aValue = _aEntries$i[1];\n var _bEntries$i = _slicedToArray(bEntries[i], 2),\n bValue = _bEntries$i[1];\n if (aValue !== bValue) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * This method creates an instance of StatsigUser from the given set of identifiers and\n * attributes.\n */\nexport var toStatsigUser = function toStatsigUser(identifiers, customAttributes) {\n var user = {\n customIDs: identifiers,\n custom: customAttributes\n };\n if (identifiers.atlassianAccountId) {\n user.userID = identifiers.atlassianAccountId;\n }\n return user;\n};\nexport var migrateInitializationOptions = function migrateInitializationOptions(options) {\n var api = options.api,\n disableCurrentPageLogging = options.disableCurrentPageLogging,\n loggingIntervalMillis = options.loggingIntervalMillis,\n loggingBufferMaxSize = options.loggingBufferMaxSize,\n localMode = options.localMode,\n eventLoggingApi = options.eventLoggingApi,\n eventLoggingApiForRetries = options.eventLoggingApiForRetries,\n disableLocalStorage = options.disableLocalStorage,\n ignoreWindowUndefined = options.ignoreWindowUndefined,\n disableAllLogging = options.disableAllLogging,\n _initTimeoutMs = options.initTimeoutMs,\n _disableNetworkKeepalive = options.disableNetworkKeepalive,\n _overrideStableID = options.overrideStableID,\n _disableErrorLogging = options.disableErrorLogging,\n _disableAutoMetricsLogging = options.disableAutoMetricsLogging,\n rest = _objectWithoutProperties(options, _excluded);\n return _objectSpread(_objectSpread({}, rest), {}, {\n networkConfig: {\n api: api,\n logEventUrl: eventLoggingApi ? eventLoggingApi + 'rgstr' : undefined,\n logEventFallbackUrls: eventLoggingApiForRetries ? [eventLoggingApiForRetries] : undefined,\n preventAllNetworkTraffic: localMode || !ignoreWindowUndefined && typeof window === 'undefined'\n },\n includeCurrentPageUrlWithEvents: !disableCurrentPageLogging,\n loggingIntervalMs: loggingIntervalMillis,\n loggingBufferMaxSize: loggingBufferMaxSize,\n disableStorage: disableLocalStorage === undefined ? localMode : disableLocalStorage,\n disableLogging: disableAllLogging === undefined ? localMode : disableAllLogging\n });\n};\nvar evaluationReasonMappings = Object.entries(EvaluationReason).map(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n key = _ref6[0],\n value = _ref6[1];\n return [key.toLowerCase(), value];\n});\nexport var migrateEvaluationDetails = function migrateEvaluationDetails(details) {\n var _evaluationReasonMapp, _evaluationReasonMapp2, _details$receivedAt;\n var reasonLower = details.reason.toLowerCase();\n return {\n reason: (_evaluationReasonMapp = (_evaluationReasonMapp2 = evaluationReasonMappings.find(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 1),\n key = _ref8[0];\n return reasonLower.includes(key);\n })) === null || _evaluationReasonMapp2 === void 0 ? void 0 : _evaluationReasonMapp2[1]) !== null && _evaluationReasonMapp !== void 0 ? _evaluationReasonMapp : EvaluationReason.Unknown,\n time: (_details$receivedAt = details.receivedAt) !== null && _details$receivedAt !== void 0 ? _details$receivedAt : Date.now()\n };\n};\nexport var migrateSecondaryExposures = function migrateSecondaryExposures(secondaryExposures) {\n return secondaryExposures.map(function (exposure) {\n if (typeof exposure === 'string') {\n // This should ideally have gateValue and ruleID fields too, but it's not possible for us\n // to determine the correct values for these.\n return {\n gate: exposure\n };\n }\n return exposure;\n });\n};","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport { migrateEvaluationDetails, migrateSecondaryExposures } from '../utils';\n// Reference: https://github.com/statsig-io/js-lite/blob/main/src/DynamicConfig.ts\nexport var DynamicConfig = /*#__PURE__*/function () {\n function DynamicConfig(configName, configValue, ruleID, evaluationDetails) {\n var secondaryExposures = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var allocatedExperimentName = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';\n var onDefaultValueFallback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n _classCallCheck(this, DynamicConfig);\n this.value = configValue;\n this._name = configName;\n this._ruleID = ruleID;\n this._secondaryExposures = secondaryExposures;\n this._allocatedExperimentName = allocatedExperimentName;\n this._evaluationDetails = evaluationDetails;\n this._onDefaultValueFallback = onDefaultValueFallback;\n }\n return _createClass(DynamicConfig, [{\n key: \"get\",\n value: function get(key, defaultValue, typeGuard) {\n var _this$_onDefaultValue2;\n var val = this.getValue(key, defaultValue);\n if (val == null) {\n return defaultValue;\n }\n var expectedType = Array.isArray(defaultValue) ? 'array' : _typeof(defaultValue);\n var actualType = Array.isArray(val) ? 'array' : _typeof(val);\n if (typeGuard) {\n var _this$_onDefaultValue;\n if (typeGuard(val)) {\n this.fireExposure(key);\n return val;\n }\n (_this$_onDefaultValue = this._onDefaultValueFallback) === null || _this$_onDefaultValue === void 0 || _this$_onDefaultValue.call(this, this, key, expectedType, actualType);\n return defaultValue;\n }\n if (defaultValue == null || expectedType === actualType) {\n this.fireExposure(key);\n return val;\n }\n (_this$_onDefaultValue2 = this._onDefaultValueFallback) === null || _this$_onDefaultValue2 === void 0 || _this$_onDefaultValue2.call(this, this, key, expectedType, actualType);\n return defaultValue;\n }\n }, {\n key: \"getValue\",\n value: function getValue(key, defaultValue) {\n if (key == null) {\n return this.value;\n }\n if (defaultValue == null) {\n defaultValue = null;\n }\n if (this.value[key] == null) {\n return defaultValue;\n }\n this.fireExposure(key);\n return this.value[key];\n }\n }, {\n key: \"fireExposure\",\n value: function fireExposure(key) {\n // Call the wrapped experiment's get method to fire exposure\n if (this.experiment) {\n this.experiment.get(key);\n }\n }\n }], [{\n key: \"fromExperiment\",\n value: function fromExperiment(experiment) {\n var _experiment$__evaluat, _experiment$__evaluat2, _experiment$groupName;\n var config = new DynamicConfig(experiment.name, experiment.value, experiment.ruleID, migrateEvaluationDetails(experiment.details), migrateSecondaryExposures((_experiment$__evaluat = (_experiment$__evaluat2 = experiment.__evaluation) === null || _experiment$__evaluat2 === void 0 ? void 0 : _experiment$__evaluat2.secondary_exposures) !== null && _experiment$__evaluat !== void 0 ? _experiment$__evaluat : []), (_experiment$groupName = experiment.groupName) !== null && _experiment$groupName !== void 0 ? _experiment$groupName : undefined);\n config.experiment = experiment;\n return config;\n }\n\n /** @deprecated - do not use, this is still exported for backwards compatibility but will be removed in the next major version */\n }]);\n}();","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport { migrateEvaluationDetails, migrateSecondaryExposures } from '../utils';\n// Reference: https://github.com/statsig-io/js-lite/blob/main/src/Layer.ts\nexport var Layer = /*#__PURE__*/function () {\n function Layer(name, layerValue, ruleID, evaluationDetails) {\n var logParameterFunction = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var secondaryExposures = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n var undelegatedSecondaryExposures = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : [];\n var allocatedExperimentName = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';\n var explicitParameters = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : [];\n _classCallCheck(this, Layer);\n this._logParameterFunction = logParameterFunction;\n this._name = name;\n this._value = JSON.parse(JSON.stringify(layerValue !== null && layerValue !== void 0 ? layerValue : {}));\n this._ruleID = ruleID !== null && ruleID !== void 0 ? ruleID : '';\n this._evaluationDetails = evaluationDetails;\n this._secondaryExposures = secondaryExposures;\n this._undelegatedSecondaryExposures = undelegatedSecondaryExposures;\n this._allocatedExperimentName = allocatedExperimentName;\n this._explicitParameters = explicitParameters;\n }\n return _createClass(Layer, [{\n key: \"get\",\n value: function get(key, defaultValue, typeGuard) {\n var _this = this;\n var val = this._value[key];\n if (val == null) {\n return defaultValue;\n }\n var logAndReturn = function logAndReturn() {\n _this._logLayerParameterExposure(key);\n return val;\n };\n if (typeGuard) {\n return typeGuard(val) ? logAndReturn() : defaultValue;\n }\n if (defaultValue == null) {\n return logAndReturn();\n }\n if (_typeof(val) === _typeof(defaultValue) && Array.isArray(defaultValue) === Array.isArray(val)) {\n return logAndReturn();\n }\n return defaultValue;\n }\n }, {\n key: \"getValue\",\n value: function getValue(key, defaultValue) {\n // eslint-disable-next-line eqeqeq\n if (defaultValue == undefined) {\n defaultValue = null;\n }\n var val = this._value[key];\n if (val != null) {\n this._logLayerParameterExposure(key);\n }\n return val !== null && val !== void 0 ? val : defaultValue;\n }\n }, {\n key: \"_logLayerParameterExposure\",\n value: function _logLayerParameterExposure(parameterName) {\n var _this$_logParameterFu;\n (_this$_logParameterFu = this._logParameterFunction) === null || _this$_logParameterFu === void 0 || _this$_logParameterFu.call(this, this, parameterName);\n }\n }], [{\n key: \"fromLayer\",\n value: function fromLayer(layer) {\n var _layer$__evaluation$s, _layer$__evaluation, _layer$__evaluation$u, _layer$__evaluation2, _layer$__evaluation3, _layer$__evaluation4;\n var value = new Layer(layer.name, layer.__value, layer.ruleID, migrateEvaluationDetails(layer.details), function (_layer, parameterName) {\n return layer.get(parameterName);\n }, migrateSecondaryExposures((_layer$__evaluation$s = (_layer$__evaluation = layer.__evaluation) === null || _layer$__evaluation === void 0 ? void 0 : _layer$__evaluation.secondary_exposures) !== null && _layer$__evaluation$s !== void 0 ? _layer$__evaluation$s : []), migrateSecondaryExposures((_layer$__evaluation$u = (_layer$__evaluation2 = layer.__evaluation) === null || _layer$__evaluation2 === void 0 ? void 0 : _layer$__evaluation2.undelegated_secondary_exposures) !== null && _layer$__evaluation$u !== void 0 ? _layer$__evaluation$u : []), (_layer$__evaluation3 = layer.__evaluation) === null || _layer$__evaluation3 === void 0 ? void 0 : _layer$__evaluation3.allocated_experiment_name, (_layer$__evaluation4 = layer.__evaluation) === null || _layer$__evaluation4 === void 0 ? void 0 : _layer$__evaluation4.explicit_parameters);\n return value;\n }\n\n /** @deprecated - do not use, this is still exported for backwards compatibility but will be removed in the next major version */\n\n /** @deprecated - do not use, this is still exported for backwards compatibility but will be removed in the next major version */\n }]);\n}();","/// <reference types=\"node\" />\nexport var CLIENT_VERSION = \"5.3.1\";","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\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}","export default 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}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import _createClass from \"@babel/runtime/helpers/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _wrapNativeSuper from \"@babel/runtime/helpers/wrapNativeSuper\";\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nexport var ResponseError = /*#__PURE__*/function (_Error) {\n function ResponseError(message) {\n _classCallCheck(this, ResponseError);\n return _callSuper(this, ResponseError, [message]);\n }\n _inherits(ResponseError, _Error);\n return _createClass(ResponseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { FeatureGateEnvironment, PerimeterType } from '../types';\nimport { CLIENT_VERSION } from '../version';\nimport { ResponseError } from './errors';\nvar DEFAULT_REQUEST_TIMEOUT_MS = 5000;\nexport var PROD_BASE_URL = 'https://api.atlassian.com/flags';\nexport var STAGING_BASE_URL = 'https://api.stg.atlassian.com/flags';\nexport var DEV_BASE_URL = 'https://api.dev.atlassian.com/flags';\nexport var FEDM_STAGING_BASE_URL = 'https://api.stg.atlassian-us-gov-mod.com/flags';\nexport var FEDM_PROD_BASE_URL = 'https://api.atlassian-us-gov-mod.com/flags';\nexport var GATEWAY_BASE_URL = '/gateway/api/flags';\nvar Fetcher = /*#__PURE__*/function () {\n function Fetcher() {\n _classCallCheck(this, Fetcher);\n }\n return _createClass(Fetcher, null, [{\n key: \"fetchClientSdk\",\n value: function () {\n var _fetchClientSdk = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fetcherOptions) {\n var targetApp, url;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n targetApp = fetcherOptions.targetApp;\n url = \"/api/v2/frontend/clientSdkKey/\".concat(targetApp);\n _context.prev = 2;\n _context.next = 5;\n return this.fetchRequest(url, 'GET', fetcherOptions);\n case 5:\n return _context.abrupt(\"return\", _context.sent);\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](2);\n if (!(_context.t0 instanceof Error)) {\n _context.next = 12;\n break;\n }\n throw _context.t0;\n case 12:\n throw Error('Failed to retrieve client sdk key');\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[2, 8]]);\n }));\n function fetchClientSdk(_x) {\n return _fetchClientSdk.apply(this, arguments);\n }\n return fetchClientSdk;\n }()\n }, {\n key: \"fetchExperimentValues\",\n value: function () {\n var _fetchExperimentValues = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(fetcherOptions, identifiers, customAttributes) {\n var requestBody;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n requestBody = {\n identifiers: identifiers,\n customAttributes: customAttributes,\n targetApp: fetcherOptions.targetApp\n };\n _context2.prev = 1;\n _context2.next = 4;\n return this.fetchRequest('/api/v2/frontend/experimentValues', 'POST', fetcherOptions, requestBody);\n case 4:\n return _context2.abrupt(\"return\", _context2.sent);\n case 7:\n _context2.prev = 7;\n _context2.t0 = _context2[\"catch\"](1);\n if (!(_context2.t0 instanceof Error)) {\n _context2.next = 11;\n break;\n }\n throw _context2.t0;\n case 11:\n throw Error('Failed to retrieve experiment values');\n case 12:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this, [[1, 7]]);\n }));\n function fetchExperimentValues(_x2, _x3, _x4) {\n return _fetchExperimentValues.apply(this, arguments);\n }\n return fetchExperimentValues;\n }()\n }, {\n key: \"handleResponseError\",\n value: function () {\n var _handleResponseError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(response) {\n var body;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n if (response.ok) {\n _context3.next = 5;\n break;\n }\n _context3.next = 3;\n return response.text();\n case 3:\n body = _context3.sent;\n throw new ResponseError(\"Non 2xx response status received, status: \".concat(response.status, \", body: \").concat(JSON.stringify(body)));\n case 5:\n if (!(response.status === 204)) {\n _context3.next = 7;\n break;\n }\n throw new ResponseError('Unexpected 204 response');\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function handleResponseError(_x5) {\n return _handleResponseError.apply(this, arguments);\n }\n return handleResponseError;\n }()\n }, {\n key: \"extractResponseBody\",\n value: function () {\n var _extractResponseBody = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(response) {\n var value;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return response.text();\n case 2:\n value = _context4.sent;\n return _context4.abrupt(\"return\", JSON.parse(value));\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n function extractResponseBody(_x6) {\n return _extractResponseBody.apply(this, arguments);\n }\n return extractResponseBody;\n }()\n }, {\n key: \"getBaseUrl\",\n value: function getBaseUrl(serviceEnv) {\n var useGatewayUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var perimeter = arguments.length > 2 ? arguments[2] : undefined;\n if (useGatewayUrl) {\n return GATEWAY_BASE_URL;\n }\n if (perimeter === PerimeterType.FEDRAMP_MODERATE) {\n switch (serviceEnv) {\n case FeatureGateEnvironment.Production:\n return FEDM_PROD_BASE_URL;\n case FeatureGateEnvironment.Staging:\n return FEDM_STAGING_BASE_URL;\n default:\n throw new Error(\"Invalid environment \\\"\".concat(serviceEnv, \"\\\" for \\\"\").concat(perimeter, \"\\\" perimeter\"));\n }\n } else if (perimeter === PerimeterType.COMMERCIAL) {\n switch (serviceEnv) {\n case FeatureGateEnvironment.Development:\n return DEV_BASE_URL;\n case FeatureGateEnvironment.Staging:\n return STAGING_BASE_URL;\n default:\n return PROD_BASE_URL;\n }\n } else {\n throw new Error(\"Invalid perimeter \\\"\".concat(perimeter, \"\\\"\"));\n }\n }\n }, {\n key: \"fetchRequest\",\n value: function () {\n var _fetchRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(path, method, fetcherOptions, body) {\n var baseUrl, fetchTimeout, abortSignal, abortController, response;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n baseUrl = Fetcher.getBaseUrl(fetcherOptions.environment, fetcherOptions.useGatewayURL, fetcherOptions.perimeter);\n fetchTimeout = fetcherOptions.fetchTimeoutMs || DEFAULT_REQUEST_TIMEOUT_MS;\n if (AbortSignal.timeout) {\n abortSignal = AbortSignal.timeout(fetchTimeout);\n } else if (AbortController) {\n abortController = new AbortController();\n abortSignal = abortController.signal;\n setTimeout(function () {\n return abortController.abort();\n }, fetchTimeout);\n }\n _context5.next = 5;\n return fetch(\"\".concat(baseUrl).concat(path), _objectSpread({\n method: method,\n headers: {\n 'Content-Type': 'application/json',\n 'X-Client-Name': 'feature-gate-js-client',\n 'X-Client-Version': CLIENT_VERSION,\n 'X-API-KEY': fetcherOptions.apiKey\n },\n signal: abortSignal\n }, body && {\n body: JSON.stringify(body)\n }));\n case 5:\n response = _context5.sent;\n _context5.next = 8;\n return this.handleResponseError(response);\n case 8:\n _context5.next = 10;\n return this.extractResponseBody(response);\n case 10:\n return _context5.abrupt(\"return\", _context5.sent);\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function fetchRequest(_x7, _x8, _x9, _x10) {\n return _fetchRequest.apply(this, arguments);\n }\n return fetchRequest;\n }()\n }]);\n}();\nexport { Fetcher as default };","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _get from \"@babel/runtime/helpers/get\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && \"function\" == typeof p ? function (t) { return p.apply(e, t); } : p; }\nimport { _getFullUserHash, _getStorageKey, DataAdapterCachePrefix, DataAdapterCore, StableID } from '@statsig/js-client';\n\n/**\n * Data adapter which only uses bootstrap data and will never fetch from network or cache.\n * We do this because we control the fetching of bootstrap data from FFS in Client.ts whereas the\n * default data adapter fetches from Statsig servers.\n */\nexport var NoFetchDataAdapter = /*#__PURE__*/function (_DataAdapterCore) {\n function NoFetchDataAdapter() {\n var _this;\n _classCallCheck(this, NoFetchDataAdapter);\n _this = _callSuper(this, NoFetchDataAdapter, ['NoFetchDataAdapter', 'nofetch']);\n _defineProperty(_this, \"bootstrapResult\", null);\n return _this;\n }\n\n /**\n * Make sure to call this **before** calling `initializeAsync` or `updateUserAsync` but\n * after the Statsig client has been created!\n */\n _inherits(NoFetchDataAdapter, _DataAdapterCore);\n return _createClass(NoFetchDataAdapter, [{\n key: \"setBootstrapData\",\n value: function setBootstrapData(data) {\n this.bootstrapResult = data ? {\n source: 'Bootstrap',\n data: JSON.stringify(data),\n receivedAt: Date.now(),\n stableID: StableID.get(this._getSdkKey()),\n fullUserHash: null\n } : null;\n }\n }, {\n key: \"prefetchData\",\n value: function () {\n var _prefetchData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_user, _options) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function prefetchData(_x, _x2) {\n return _prefetchData.apply(this, arguments);\n }\n return prefetchData;\n }()\n }, {\n key: \"getDataAsync\",\n value: function () {\n var _getDataAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_current, user, _options) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", this.bootstrapResult && _objectSpread(_objectSpread({}, this.bootstrapResult), {}, {\n fullUserHash: _getFullUserHash(user)\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function getDataAsync(_x3, _x4, _x5) {\n return _getDataAsync.apply(this, arguments);\n }\n return getDataAsync;\n }()\n }, {\n key: \"getDataSync\",\n value: function getDataSync(user) {\n return this.bootstrapResult && _objectSpread(_objectSpread({}, this.bootstrapResult), {}, {\n fullUserHash: _getFullUserHash(user)\n });\n }\n }, {\n key: \"_fetchFromNetwork\",\n value: function () {\n var _fetchFromNetwork2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_current, _user, _options) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", null);\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function _fetchFromNetwork(_x6, _x7, _x8) {\n return _fetchFromNetwork2.apply(this, arguments);\n }\n return _fetchFromNetwork;\n }()\n }, {\n key: \"_getCacheKey\",\n value: function _getCacheKey(user) {\n // Same logic as default data adapter\n // https://github.com/statsig-io/js-client-monorepo/blob/main/packages/js-client/src/StatsigEvaluationsDataAdapter.ts\n var key = _getStorageKey(this._getSdkKey(), user);\n return \"\".concat(DataAdapterCachePrefix, \".\").concat(this._cacheSuffix, \".\").concat(key);\n }\n }, {\n key: \"_isCachedResultValidFor204\",\n value: function _isCachedResultValidFor204(_result, _user) {\n return false;\n }\n }, {\n key: \"setDataLegacy\",\n value: function setDataLegacy(data, user) {\n _superPropGet(NoFetchDataAdapter, \"setData\", this, 3)([data, user]);\n }\n\n // Do not stringify options property since that includes this adapter and will\n // cause a circular reference when Statsig sends diagnostic events and including\n // values is not necessary and makes the result huge\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = _objectSpread({}, this);\n delete result._options;\n delete result._inMemoryCache;\n delete result.bootstrapResult;\n return result;\n }\n }]);\n}(DataAdapterCore);","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { _DJB2, _makeTypedGet } from '@statsig/client-core';\nvar LOCAL_OVERRIDE_REASON = 'LocalOverride:Recognized';\nexport var LOCAL_STORAGE_KEY = 'STATSIG_OVERRIDES';\nvar LEGACY_LOCAL_STORAGE_KEY = 'STATSIG_JS_LITE_LOCAL_OVERRIDES';\nvar makeEmptyStore = function makeEmptyStore() {\n return {\n gates: {},\n configs: {},\n layers: {}\n };\n};\nvar djb2MapKey = function djb2MapKey(hash, kind) {\n return kind + ':' + hash;\n};\n\n/**\n * Custom implementation of `@statsig/js-local-overrides` package with support for local storage\n * so we can keep the existing behavior where overrides are cached locally. Also designed for\n * compatibility with the old override system (eg. no `experiments` field, `configs` is used\n * instead).\n *\n * [Reference](https://github.com/statsig-io/js-client-monorepo/blob/main/packages/js-local-overrides/src/LocalOverrideAdapter.ts)\n */\nexport var PersistentOverrideAdapter = /*#__PURE__*/function () {\n function PersistentOverrideAdapter(localStorageKey) {\n _classCallCheck(this, PersistentOverrideAdapter);\n this._overrides = makeEmptyStore();\n this._djb2Map = new Map();\n this._localStorageKey = localStorageKey;\n }\n return _createClass(PersistentOverrideAdapter, [{\n key: \"parseStoredOverrides\",\n value: function parseStoredOverrides(localStorageKey) {\n try {\n var json = window.localStorage.getItem(localStorageKey);\n if (!json) {\n return makeEmptyStore();\n }\n return JSON.parse(json);\n } catch (_unused) {\n return makeEmptyStore();\n }\n }\n }, {\n key: \"mergeOverrides\",\n value: function mergeOverrides() {\n var merged = makeEmptyStore();\n for (var _len = arguments.length, allOverrides = new Array(_len), _key = 0; _key < _len; _key++) {\n allOverrides[_key] = arguments[_key];\n }\n for (var _i = 0, _allOverrides = allOverrides; _i < _allOverrides.length; _i++) {\n var overrides = _allOverrides[_i];\n for (var _i2 = 0, _Object$entries = Object.entries((_overrides$gates = overrides.gates) !== null && _overrides$gates !== void 0 ? _overrides$gates : {}); _i2 < _Object$entries.length; _i2++) {\n var _overrides$gates;\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),\n name = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n merged.gates[name] = value;\n }\n for (var _i3 = 0, _Object$entries2 = Object.entries((_overrides$configs = overrides.configs) !== null && _overrides$configs !== void 0 ? _overrides$configs : {}); _i3 < _Object$entries2.length; _i3++) {\n var _overrides$configs;\n var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),\n _name = _Object$entries2$_i[0],\n _value = _Object$entries2$_i[1];\n merged.configs[_name] = _value;\n }\n for (var _i4 = 0, _Object$entries3 = Object.entries((_overrides$layers = overrides.layers) !== null && _overrides$layers !== void 0 ? _overrides$layers : {}); _i4 < _Object$entries3.length; _i4++) {\n var _overrides$layers;\n var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2),\n _name2 = _Object$entries3$_i[0],\n _value2 = _Object$entries3$_i[1];\n merged.layers[_name2] = _value2;\n }\n }\n return merged;\n }\n }, {\n key: \"initFromStoredOverrides\",\n value: function initFromStoredOverrides() {\n var storedOverrides = this.mergeOverrides(this._overrides, this.parseStoredOverrides(LEGACY_LOCAL_STORAGE_KEY), this.parseStoredOverrides(this._localStorageKey));\n\n // Clear data from legacy local storage key now we've read from it.\n // This prevents things being stuck in there that are always read but never written to.\n try {\n window.localStorage.removeItem(LEGACY_LOCAL_STORAGE_KEY);\n } catch (_unused2) {\n // ignored - window is not defined in non-browser environments, and we don't save things there\n // (things like SSR, etc)\n }\n\n // In version 4.24.0 we introduced hashes in this override adapter, but had a bug which would cause\n // multiple hashes to continue being created. This code here removes these hashes since we've moved\n // to using a more reliable and easier to maintain map in `_djb2Map`.\n for (var _i5 = 0, _Object$values = Object.values(storedOverrides); _i5 < _Object$values.length; _i5++) {\n var container = _Object$values[_i5];\n var allKeys = new Set(Object.keys(container));\n var _iterator = _createForOfIteratorHelper(allKeys),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var name = _step.value;\n var hash = _DJB2(name);\n if (allKeys.has(hash)) {\n delete container[hash];\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n this.applyOverrides(storedOverrides);\n }\n }, {\n key: \"saveOverrides\",\n value: function saveOverrides() {\n try {\n window.localStorage.setItem(this._localStorageKey, JSON.stringify(this._overrides));\n } catch (_unused3) {\n // ignored - window is not defined in non-browser environments, and we don't save things there\n // (things like SSR, etc)\n }\n }\n }, {\n key: \"getOverrides\",\n value: function getOverrides() {\n return this.mergeOverrides(this._overrides);\n }\n }, {\n key: \"applyOverrides\",\n value: function applyOverrides(overrides) {\n var newOverrides = _objectSpread(_objectSpread({}, makeEmptyStore()), overrides);\n this._djb2Map.clear();\n for (var _i6 = 0, _Object$entries4 = Object.entries(newOverrides); _i6 < _Object$entries4.length; _i6++) {\n var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i6], 2),\n containerName = _Object$entries4$_i[0],\n container = _Object$entries4$_i[1];\n for (var _i7 = 0, _Object$entries5 = Object.entries(container); _i7 < _Object$entries5.length; _i7++) {\n var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i7], 2),\n name = _Object$entries5$_i[0],\n value = _Object$entries5$_i[1];\n this._djb2Map.set(djb2MapKey(_DJB2(name), containerName), value);\n }\n }\n this._overrides = newOverrides;\n }\n }, {\n key: \"setOverrides\",\n value: function setOverrides(overrides) {\n this.applyOverrides(overrides);\n this.saveOverrides();\n }\n }, {\n key: \"overrideGate\",\n value: function overrideGate(name, value) {\n this._overrides.gates[name] = value;\n this._djb2Map.set(djb2MapKey(_DJB2(name), 'gates'), value);\n this.saveOverrides();\n }\n }, {\n key: \"removeGateOverride\",\n value: function removeGateOverride(name) {\n delete this._overrides.gates[name];\n this._djb2Map.delete(djb2MapKey(_DJB2(name), 'gates'));\n this.saveOverrides();\n }\n }, {\n key: \"getGateOverride\",\n value: function getGateOverride(current, _user) {\n var _this$_overrides$gate;\n var overridden = (_this$_overrides$gate = this._overrides.gates[current.name]) !== null && _this$_overrides$gate !== void 0 ? _this$_overrides$gate : this._djb2Map.get(djb2MapKey(current.name, 'gates'));\n if (overridden == null) {\n return null;\n }\n return _objectSpread(_objectSpread({}, current), {}, {\n value: overridden,\n details: _objectSpread(_objectSpread({}, current.details), {}, {\n reason: LOCAL_OVERRIDE_REASON\n })\n });\n }\n }, {\n key: \"overrideDynamicConfig\",\n value: function overrideDynamicConfig(name, value) {\n this._overrides.configs[name] = value;\n this._djb2Map.set(djb2MapKey(_DJB2(name), 'configs'), value);\n this.saveOverrides();\n }\n }, {\n key: \"removeDynamicConfigOverride\",\n value: function removeDynamicConfigOverride(name) {\n delete this._overrides.configs[name];\n this._djb2Map.delete(djb2MapKey(_DJB2(name), 'configs'));\n this.saveOverrides();\n }\n }, {\n key: \"getDynamicConfigOverride\",\n value: function getDynamicConfigOverride(current, _user) {\n return this._getConfigOverride(current, this._overrides.configs);\n }\n }, {\n key: \"overrideExperiment\",\n value: function overrideExperiment(name, value) {\n this._overrides.configs[name] = value;\n this._djb2Map.set(djb2MapKey(_DJB2(name), 'configs'), value);\n this.saveOverrides();\n }\n }, {\n key: \"removeExperimentOverride\",\n value: function removeExperimentOverride(name) {\n delete this._overrides.configs[name];\n this._djb2Map.delete(djb2MapKey(_DJB2(name), 'configs'));\n this.saveOverrides();\n }\n }, {\n key: \"getExperimentOverride\",\n value: function getExperimentOverride(current, _user) {\n return this._getConfigOverride(current, this._overrides.configs);\n }\n }, {\n key: \"overrideLayer\",\n value: function overrideLayer(name, value) {\n this._overrides.layers[name] = value;\n this._djb2Map.set(djb2MapKey(_DJB2(name), 'layers'), value);\n this.saveOverrides();\n }\n }, {\n key: \"removeLayerOverride\",\n value: function removeLayerOverride(name) {\n delete this._overrides.layers[name];\n this._djb2Map.delete(djb2MapKey(_DJB2(name), 'layers'));\n this.saveOverrides();\n }\n }, {\n key: \"removeAllOverrides\",\n value: function removeAllOverrides() {\n this._overrides = makeEmptyStore();\n try {\n window.localStorage.removeItem(this._localStorageKey);\n } catch (_unused4) {\n // ignored - window is not defined in non-browser environments, and we don't save things there\n // (things like SSR, etc)\n }\n }\n }, {\n key: \"getLayerOverride\",\n value: function getLayerOverride(current, _user) {\n var _this$_overrides$laye;\n var overridden = (_this$_overrides$laye = this._overrides.layers[current.name]) !== null && _this$_overrides$laye !== void 0 ? _this$_overrides$laye : this._djb2Map.get(djb2MapKey(current.name, 'layers'));\n if (overridden == null) {\n return null;\n }\n return _objectSpread(_objectSpread({}, current), {}, {\n __value: overridden,\n get: _makeTypedGet(current.name, overridden),\n details: _objectSpread(_objectSpread({}, current.details), {}, {\n reason: LOCAL_OVERRIDE_REASON\n })\n });\n }\n }, {\n key: \"_getConfigOverride\",\n value: function _getConfigOverride(current, lookup) {\n var _lookup$current$name;\n var overridden = (_lookup$current$name = lookup[current.name]) !== null && _lookup$current$name !== void 0 ? _lookup$current$name : this._djb2Map.get(djb2MapKey(current.name, 'configs'));\n if (overridden == null) {\n return null;\n }\n return _objectSpread(_objectSpread({}, current), {}, {\n value: overridden,\n get: _makeTypedGet(current.name, overridden),\n details: _objectSpread(_objectSpread({}, current.details), {}, {\n reason: LOCAL_OVERRIDE_REASON\n })\n });\n }\n }]);\n}();","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"sdkKey\", \"environment\", \"updateUserCompletionCallback\", \"perimeter\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { _makeLayer, StableID, StatsigClient } from '@statsig/js-client';\nimport Subscriptions from '../subscriptions';\nimport { DynamicConfig } from './compat/DynamicConfig';\nimport { Layer } from './compat/Layer';\nimport { EvaluationReason } from './compat/types';\nimport Fetcher from './fetcher';\nimport { NoFetchDataAdapter } from './NoFetchDataAdapter';\nimport { LOCAL_STORAGE_KEY, PersistentOverrideAdapter } from './PersistentOverrideAdapter';\nimport { FeatureGateEnvironment, PerimeterType } from './types';\nimport { getOptionsWithDefaults, migrateInitializationOptions, shallowEquals, toStatsigUser } from './utils';\nimport { CLIENT_VERSION } from './version';\nvar DEFAULT_CLIENT_KEY = 'client-default-key';\n// default event logging api is Atlassian proxy rather than Statsig's domain, to avoid ad blockers\nvar DEFAULT_EVENT_LOGGING_API = 'https://xp.atlassian.com/v1/rgstr';\nexport var Client = /*#__PURE__*/function () {\n function Client() {\n var _this = this;\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$localStorageKey = _ref.localStorageKey,\n localStorageKey = _ref$localStorageKey === void 0 ? LOCAL_STORAGE_KEY : _ref$localStorageKey,\n overrideAdapter = _ref.overrideAdapter;\n _classCallCheck(this, Client);\n _defineProperty(this, \"initPromise\", null);\n /** True if an initialize method was called and completed successfully. */\n _defineProperty(this, \"initCompleted\", false);\n /**\n * True if an initialize method was called and completed, meaning the client is now usable.\n * However if there was an error during initialization it may have initialized with default\n * values. Use {@link initCompleted} to check for this.\n */\n _defineProperty(this, \"initWithDefaults\", false);\n _defineProperty(this, \"hasCheckGateErrorOccurred\", false);\n _defineProperty(this, \"hasGetExperimentErrorOccurred\", false);\n _defineProperty(this, \"hasGetExperimentValueErrorOccurred\", false);\n _defineProperty(this, \"hasGetLayerErrorOccurred\", false);\n _defineProperty(this, \"hasGetLayerValueErrorOccurred\", false);\n _defineProperty(this, \"subscriptions\", new Subscriptions());\n _defineProperty(this, \"dataAdapter\", new NoFetchDataAdapter());\n /**\n * Call this if modifying the values being served by the Statsig library since it has its own\n * memoization cache which will not be updated if the values are changed outside of the library.\n */\n _defineProperty(this, \"statsigValuesUpdated\", function () {\n if (_this.user) {\n // Trigger a reset of the memoize cache\n _this.statsigClient.updateUserSync(_this.user, {\n disableBackgroundCacheRefresh: true\n });\n }\n _this.subscriptions.anyUpdated();\n });\n this.overrideAdapter = overrideAdapter || new PersistentOverrideAdapter(localStorageKey);\n }\n\n /**\n * @description\n * This method initializes the client using a network call to fetch the bootstrap values.\n * If the client is inialized with an `analyticsWebClient`, it will send an operational event\n * to GASv3 with the following attributes:\n * - targetApp: the target app of the client\n * - clientVersion: the version of the client\n * - success: whether the initialization was successful\n * - startTime: the time when the initialization started\n * - totalTime: the total time it took to initialize the client\n * - apiKey: the api key used to initialize the client\n * @param clientOptions {ClientOptions}\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n * @returns {Promise<void>}\n */\n return _createClass(Client, [{\n key: \"initialize\",\n value: (function () {\n var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(clientOptions, identifiers, customAttributes) {\n var _this2 = this;\n var clientOptionsWithDefaults, startTime;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n clientOptionsWithDefaults = getOptionsWithDefaults(clientOptions);\n if (!this.initPromise) {\n _context.next = 4;\n break;\n }\n if (!shallowEquals(clientOptionsWithDefaults, this.initOptions)) {\n // eslint-disable-next-line no-console\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return _context.abrupt(\"return\", this.initPromise);\n case 4:\n startTime = performance.now();\n this.initOptions = clientOptionsWithDefaults;\n this.initPromise = this.init(clientOptionsWithDefaults, identifiers, customAttributes).then(function () {\n _this2.initCompleted = true;\n _this2.initWithDefaults = true;\n }).finally(function () {\n var endTime = performance.now();\n var totalTime = endTime - startTime;\n _this2.fireClientEvent(startTime, totalTime, 'initialize', _this2.initCompleted, clientOptionsWithDefaults.apiKey);\n });\n return _context.abrupt(\"return\", this.initPromise);\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function initialize(_x, _x2, _x3) {\n return _initialize.apply(this, arguments);\n }\n return initialize;\n }()\n /**\n * @description\n * This method initializes the client using the provider given to call to fetch the bootstrap values.\n * If the client is initialized with an `analyticsWebClient`, it will send an operational event\n * to GASv3 with the following attributes:\n * - targetApp: the target app of the client\n * - clientVersion: the version of the client\n * - success: whether the initialization was successful\n * - startTime: the time when the initialization started\n * - totalTime: the total time it took to initialize the client\n * - apiKey: the api key used to initialize the client\n * @param clientOptions {ClientOptions}\n * @param provider {Provider}\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n * @returns {Promise<void>}\n */\n )\n }, {\n key: \"initializeWithProvider\",\n value: (function () {\n var _initializeWithProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(clientOptions, provider, identifiers, customAttributes) {\n var _this3 = this;\n var clientOptionsWithDefaults, startTime;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n clientOptionsWithDefaults = getOptionsWithDefaults(clientOptions);\n if (!this.initPromise) {\n _context2.next = 4;\n break;\n }\n if (!shallowEquals(clientOptionsWithDefaults, this.initOptions)) {\n // eslint-disable-next-line no-console\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return _context2.abrupt(\"return\", this.initPromise);\n case 4:\n startTime = performance.now();\n this.initOptions = clientOptionsWithDefaults;\n this.provider = provider;\n this.provider.setClientVersion(CLIENT_VERSION);\n if (this.provider.setApplyUpdateCallback) {\n this.provider.setApplyUpdateCallback(this.applyUpdateCallback.bind(this));\n }\n this.initPromise = this.initWithProvider(clientOptionsWithDefaults, provider, identifiers, customAttributes).then(function () {\n _this3.initCompleted = true;\n _this3.initWithDefaults = true;\n }).finally(function () {\n var endTime = performance.now();\n var totalTime = endTime - startTime;\n _this3.fireClientEvent(startTime, totalTime, 'initializeWithProvider', _this3.initCompleted, provider.getApiKey ? provider.getApiKey() : undefined);\n });\n return _context2.abrupt(\"return\", this.initPromise);\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function initializeWithProvider(_x4, _x5, _x6, _x7) {\n return _initializeWithProvider.apply(this, arguments);\n }\n return initializeWithProvider;\n }())\n }, {\n key: \"applyUpdateCallback\",\n value: function applyUpdateCallback(experimentsResult) {\n try {\n if (this.initCompleted || this.initWithDefaults) {\n this.assertInitialized(this.statsigClient);\n this.dataAdapter.setBootstrapData(experimentsResult.experimentValues);\n this.dataAdapter.setData(JSON.stringify(experimentsResult.experimentValues));\n this.statsigValuesUpdated();\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn('Error when attempting to apply update', error);\n }\n }\n }, {\n key: \"fireClientEvent\",\n value: function fireClientEvent(startTime, totalTime, action, success) {\n var _analyticsWebClient,\n _this4 = this;\n var apiKey = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;\n (_analyticsWebClient = this.initOptions.analyticsWebClient) === null || _analyticsWebClient === void 0 || _analyticsWebClient.then(function (analyticsWebClient) {\n var attributes = _objectSpread({\n targetApp: _this4.initOptions.targetApp,\n clientVersion: CLIENT_VERSION,\n success: success,\n startTime: startTime,\n totalTime: totalTime\n }, apiKey && {\n apiKey: apiKey\n });\n analyticsWebClient.sendOperationalEvent({\n action: action,\n actionSubject: 'featureGatesClient',\n attributes: attributes,\n tags: ['measurement'],\n source: '@atlaskit/feature-gate-js-client'\n });\n }).catch(function (err) {\n if (_this4.initOptions.environment !== FeatureGateEnvironment.Production) {\n // eslint-disable-next-line no-console\n console.error('Analytics web client promise did not resolve', err);\n }\n });\n }\n }, {\n key: \"initializeFromValues\",\n value: function () {\n var _initializeFromValues = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(clientOptions, identifiers, customAttributes) {\n var _this5 = this;\n var initializeValues,\n clientOptionsWithDefaults,\n startTime,\n _args3 = arguments;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n initializeValues = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {};\n clientOptionsWithDefaults = getOptionsWithDefaults(clientOptions);\n if (!this.initPromise) {\n _context3.next = 5;\n break;\n }\n if (!shallowEquals(clientOptionsWithDefaults, this.initOptions)) {\n // eslint-disable-next-line no-console\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return _context3.abrupt(\"return\", this.initPromise);\n case 5:\n // This makes sure the new Statsig client behaves like the old when bootstrap data is\n // passed, and `has_updates` isn't specified (which happens a lot in product integration tests).\n if (!Object.prototype.hasOwnProperty.call(initializeValues, 'has_updates')) {\n initializeValues['has_updates'] = true;\n }\n startTime = performance.now();\n this.initOptions = clientOptionsWithDefaults;\n this.initPromise = this.initFromValues(clientOptionsWithDefaults, identifiers, customAttributes, initializeValues).then(function () {\n _this5.initCompleted = true;\n _this5.initWithDefaults = true;\n }).finally(function () {\n var endTime = performance.now();\n var totalTime = endTime - startTime;\n _this5.fireClientEvent(startTime, totalTime, 'initializeFromValues', _this5.initCompleted);\n });\n return _context3.abrupt(\"return\", this.initPromise);\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, this);\n }));\n function initializeFromValues(_x8, _x9, _x10) {\n return _initializeFromValues.apply(this, arguments);\n }\n return initializeFromValues;\n }()\n }, {\n key: \"assertInitialized\",\n value: function assertInitialized(statsigClient) {\n if (!statsigClient) {\n throw new Error('Client must be initialized before using this method');\n }\n }\n\n /**\n * This method updates the user using a network call to fetch the new set of values.\n * @param fetchOptions {FetcherOptions}\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n */\n }, {\n key: \"updateUser\",\n value: (function () {\n var _updateUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(fetchOptions, identifiers, customAttributes) {\n var fetchOptionsWithDefaults, initializeValuesProducer;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n this.assertInitialized(this.statsigClient);\n fetchOptionsWithDefaults = getOptionsWithDefaults(fetchOptions);\n initializeValuesProducer = function initializeValuesProducer() {\n return Fetcher.fetchExperimentValues(fetchOptionsWithDefaults, identifiers, customAttributes).then(function (_ref2) {\n var experimentValues = _ref2.experimentValues,\n customAttributes = _ref2.customAttributes;\n return {\n experimentValues: experimentValues,\n customAttributesFromFetch: customAttributes\n };\n });\n };\n _context4.next = 5;\n return this.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, this);\n }));\n function updateUser(_x11, _x12, _x13) {\n return _updateUser.apply(this, arguments);\n }\n return updateUser;\n }()\n /**\n * This method updates the user using the provider given on initialisation to get the new set of\n * values.\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n */\n )\n }, {\n key: \"updateUserWithProvider\",\n value: (function () {\n var _updateUserWithProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(identifiers, customAttributes) {\n var _this6 = this;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n this.assertInitialized(this.statsigClient);\n if (this.provider) {\n _context5.next = 3;\n break;\n }\n throw new Error('Cannot update user using provider as the client was not initialised with a provider');\n case 3:\n _context5.next = 5;\n return this.provider.setProfile(this.initOptions, identifiers, customAttributes);\n case 5:\n _context5.next = 7;\n return this.updateUserUsingInitializeValuesProducer(function () {\n return _this6.provider.getExperimentValues();\n }, identifiers, customAttributes);\n case 7:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function updateUserWithProvider(_x14, _x15) {\n return _updateUserWithProvider.apply(this, arguments);\n }\n return updateUserWithProvider;\n }()\n /**\n * This method updates the user given a new set of bootstrap values obtained from one of the\n * server-side SDKs.\n *\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n * @param initializeValues {Record<string,unknown>}\n */\n )\n }, {\n key: \"updateUserWithValues\",\n value: (function () {\n var _updateUserWithValues = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(identifiers, customAttributes) {\n var initializeValues,\n initializeValuesProducer,\n _args6 = arguments;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n initializeValues = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {};\n this.assertInitialized(this.statsigClient);\n initializeValuesProducer = function initializeValuesProducer() {\n return Promise.resolve({\n experimentValues: initializeValues,\n customAttributesFromFetch: customAttributes\n });\n };\n _context6.next = 5;\n return this.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this);\n }));\n function updateUserWithValues(_x16, _x17) {\n return _updateUserWithValues.apply(this, arguments);\n }\n return updateUserWithValues;\n }())\n }, {\n key: \"initializeCalled\",\n value: function initializeCalled() {\n return this.initPromise != null;\n }\n }, {\n key: \"initializeCompleted\",\n value: function initializeCompleted() {\n return this.initCompleted;\n }\n\n /**\n * Returns the value for a feature gate. Returns false if there are errors.\n * @param {string} gateName - The name of the feature gate.\n * @param {Object} options\n * @param {boolean} options.fireGateExposure\n * Whether or not to fire the exposure event for the gate. Defaults to true.\n * To log an exposure event manually at a later time, use {@link Client.manuallyLogGateExposure}\n * (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n */\n }, {\n key: \"checkGate\",\n value: function checkGate(gateName) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n try {\n this.assertInitialized(this.statsigClient);\n var _options$fireGateExpo = options.fireGateExposure,\n fireGateExposure = _options$fireGateExpo === void 0 ? true : _options$fireGateExpo;\n return this.statsigClient.checkGate(gateName, {\n disableExposureLog: !fireGateExposure\n });\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasCheckGateErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred checking the feature gate. Only the first occurrence of this error is logged.',\n gateName: gateName,\n error: error\n });\n this.hasCheckGateErrorOccurred = true;\n }\n return false;\n }\n }\n }, {\n key: \"isGateExist\",\n value: function isGateExist(gateName) {\n try {\n this.assertInitialized(this.statsigClient);\n var gate = this.statsigClient.getFeatureGate(gateName, {\n disableExposureLog: true\n });\n return !gate.details.reason.includes('Unrecognized');\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to check FeatureGate: \".concat(error));\n // in case of error report true to avoid false positives.\n return true;\n }\n }\n }, {\n key: \"isExperimentExist\",\n value: function isExperimentExist(experimentName) {\n try {\n this.assertInitialized(this.statsigClient);\n var config = this.statsigClient.getExperiment(experimentName, {\n disableExposureLog: true\n });\n return !config.details.reason.includes('Unrecognized');\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to check Experiment: \".concat(error));\n // in case of error report true to avoid false positives.\n return true;\n }\n }\n\n /**\n * Manually log a gate exposure (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * This is useful if you have evaluated a gate earlier via {@link Client.checkGate} where\n * <code>options.fireGateExposure</code> is false.\n * @param gateName\n */\n }, {\n key: \"manuallyLogGateExposure\",\n value: function manuallyLogGateExposure(gateName) {\n this.assertInitialized(this.statsigClient);\n // This is the approach recommended in the docs\n // https://docs.statsig.com/client/javascript-sdk/#manual-exposures-\n this.statsigClient.checkGate(gateName);\n }\n\n /**\n * Returns the entire config for a given experiment.\n *\n * @param {string} experimentName - The name of the experiment\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event\n * for the experiment. Defaults to true. To log an exposure event manually at a later time, use\n * {@link Client.manuallyLogExperimentExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * @returns The config for an experiment\n * @example\n * ```ts\n * const experimentConfig = client.getExperiment('example-experiment-name');\n * const backgroundColor: string = experimentConfig.get('backgroundColor', 'yellow');\n * ```\n */\n }, {\n key: \"getExperiment\",\n value: function getExperiment(experimentName) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n try {\n this.assertInitialized(this.statsigClient);\n var _options$fireExperime = options.fireExperimentExposure,\n fireExperimentExposure = _options$fireExperime === void 0 ? true : _options$fireExperime;\n return DynamicConfig.fromExperiment(this.statsigClient.getExperiment(experimentName, {\n disableExposureLog: !fireExperimentExposure\n }));\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasGetExperimentErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the experiment. Only the first occurrence of this error is logged.',\n experimentName: experimentName,\n error: error\n });\n this.hasGetExperimentErrorOccurred = true;\n }\n\n // Return a default value\n return new DynamicConfig(experimentName, {}, '', {\n time: Date.now(),\n reason: EvaluationReason.Error\n });\n }\n }\n\n /**\n * Returns the value of a given parameter in an experiment config.\n *\n * @template T\n * @param {string} experimentName - The name of the experiment\n * @param {string} parameterName - The name of the parameter to fetch from the experiment config\n * @param {T} defaultValue - The value to serve if the experiment or parameter do not exist, or\n * if the returned value does not match the expected type.\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event\n * for the experiment. Defaults to true. To log an exposure event manually at a later time, use\n * {@link Client.manuallyLogExperimentExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-))\n * @param {function} options.typeGuard - A function that asserts that the return value has the\n * expected type. If this function returns false, then the default value will be returned\n * instead. This can be set to protect your code from unexpected values being set remotely. By\n * default, this will be done by asserting that the default value and value are the same primitive\n * type.\n * @returns The value of the parameter if the experiment and parameter both exist, otherwise the\n * default value.\n * @example\n ``` ts\n type ValidColor = 'blue' | 'red' | 'yellow';\n type ValidColorTypeCheck = (value: unknown) => value is ValidColor;\n \t const isValidColor: ValidColorTypeCheck =\n \t\t(value: unknown) => typeof value === 'string' && ['blue', 'red', 'yellow'].includes(value);\n \t const buttonColor: ValidColor = client.getExperimentValue(\n \t\t'example-experiment-name',\n \t\t'backgroundColor',\n \t\t'yellow',\n \t\t{\n \t\t\t\ttypeGuard: isValidColor\n \t\t}\n );\n ```\n */\n }, {\n key: \"getExperimentValue\",\n value: function getExperimentValue(experimentName, parameterName, defaultValue) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var experiment = this.getExperiment(experimentName, options);\n try {\n var typeGuard = options.typeGuard;\n return experiment.get(parameterName, defaultValue, typeGuard);\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasGetExperimentValueErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the experiment value. Only the first occurrence of this error is logged.',\n experimentName: experimentName,\n defaultValue: defaultValue,\n options: options,\n error: error\n });\n this.hasGetExperimentValueErrorOccurred = true;\n }\n return defaultValue;\n }\n }\n\n /**\n * Manually log an experiment exposure (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * This is useful if you have evaluated an experiment earlier via {@link Client.getExperimentValue} or\n * {@link Client.getExperiment} where <code>options.fireExperimentExposure</code> is false.\n * @param experimentName\n */\n }, {\n key: \"manuallyLogExperimentExposure\",\n value: function manuallyLogExperimentExposure(experimentName) {\n this.assertInitialized(this.statsigClient);\n // This is the approach recommended in the docs\n // https://docs.statsig.com/client/javascript-sdk/#manual-exposures-\n this.statsigClient.getExperiment(experimentName);\n }\n\n /**\n * Manually log a layer exposure (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * This is useful if you have evaluated a layer earlier via {@link Client.getLayerValue} where <code>options.fireExperimentExposure</code> is false.\n * @param layerName\n * @param parameterName\n */\n }, {\n key: \"manuallyLogLayerExposure\",\n value: function manuallyLogLayerExposure(layerName, parameterName) {\n var _this$statsigClient$g;\n this.assertInitialized(this.statsigClient);\n // This is the approach recommended in the docs\n // https://docs.statsig.com/client/javascript-sdk/#manual-exposures-\n (_this$statsigClient$g = this.statsigClient.getLayer(layerName)) === null || _this$statsigClient$g === void 0 || _this$statsigClient$g.get(parameterName);\n }\n }, {\n key: \"shutdownStatsig\",\n value: function shutdownStatsig() {\n this.assertInitialized(this.statsigClient);\n this.statsigClient.shutdown();\n }\n\n /**\n * Adds a new override for the given gate.\n *\n * This method is additive, meaning you can call it multiple times with different gate names to\n * build your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_OVERRIDES` key in localStorage, so they\n * will continue to affect every client that is initialized on the same domain after this method\n * is called. If you are using this API for testing purposes, you should call\n * {@link Client.clearGateOverride} after your tests are completed to remove this\n * localStorage entry.\n *\n * @param {string} gateName\n * @param {boolean} value\n */\n }, {\n key: \"overrideGate\",\n value: function overrideGate(gateName, value) {\n this.overrideAdapter.overrideGate(gateName, value);\n // Trigger a reset of the memoized gate value\n if (this.user) {\n var _this$statsigClient;\n (_this$statsigClient = this.statsigClient) === null || _this$statsigClient === void 0 || _this$statsigClient.updateUserSync(this.user, {\n disableBackgroundCacheRefresh: true\n });\n }\n this.statsigValuesUpdated();\n }\n\n /**\n * Removes any overrides that have been set for the given gate.\n */\n }, {\n key: \"clearGateOverride\",\n value: function clearGateOverride(gateName) {\n this.overrideAdapter.removeGateOverride(gateName);\n this.statsigValuesUpdated();\n }\n\n /**\n * Adds a new override for the given config (or experiment).\n *\n * This method is additive, meaning you can call it multiple times with different experiment\n * names to build your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_OVERRIDES` key in localStorage, so they\n * will continue to affect every client that is initialized on the same domain after this method\n * is called. If you are using this API for testing purposes, you should call\n * {@link Client.clearConfigOverride} after your tests are completed to remove this\n * localStorage entry.\n *\n * @param {string} experimentName\n * @param {object} values\n */\n }, {\n key: \"overrideConfig\",\n value: function overrideConfig(experimentName, values) {\n this.overrideAdapter.overrideDynamicConfig(experimentName, values);\n this.statsigValuesUpdated();\n }\n\n /**\n * Removes any overrides that have been set for the given experiment.\n * @param {string} experimentName\n */\n }, {\n key: \"clearConfigOverride\",\n value: function clearConfigOverride(experimentName) {\n this.overrideAdapter.removeDynamicConfigOverride(experimentName);\n this.statsigValuesUpdated();\n }\n\n /**\n * Set overrides for gates, experiments and layers in batch.\n *\n * Note that these overrides are **not** additive and will completely replace any that have been\n * added via prior calls to {@link Client.overrideConfig} or\n * {@link Client.overrideGate}.\n *\n * Overrides are persisted to the `STATSIG_OVERRIDES` key in localStorage, so they\n * will continue to affect every client that is initialized on the same domain after this method\n * is called. If you are using this API for testing purposes, you should call\n * {@link Client.clearAllOverrides} after your tests are completed to remove this\n * localStorage entry.\n */\n }, {\n key: \"setOverrides\",\n value: function setOverrides(overrides) {\n this.overrideAdapter.setOverrides(overrides);\n this.statsigValuesUpdated();\n }\n\n /**\n * @returns The current overrides for gates, configs (including experiments) and layers.\n */\n }, {\n key: \"getOverrides\",\n value: function getOverrides() {\n return this.overrideAdapter.getOverrides();\n }\n\n /**\n * Clears overrides for all gates, configs (including experiments) and layers.\n */\n }, {\n key: \"clearAllOverrides\",\n value: function clearAllOverrides() {\n this.overrideAdapter.removeAllOverrides();\n this.statsigValuesUpdated();\n }\n\n /**\n * Returns whether the given identifiers and customAttributes align with the current\n * set that is being used by the client.\n *\n * If this method returns false, then the {@link Client.updateUser},\n * {@link Client.updateUserWithValues} or {@link Client.updateUserWithProvider}\n * methods can be used to re-align these values.\n *\n * @param identifiers\n * @param customAttributes\n * @returns a flag indicating whether the clients current configuration aligns with the given values\n */\n }, {\n key: \"isCurrentUser\",\n value: function isCurrentUser(identifiers, customAttributes) {\n return shallowEquals(this.currentIdentifiers, identifiers) && shallowEquals(this.currentAttributes, customAttributes);\n }\n\n /**\n * Subscribe to updates where the given callback will be called with the current checkGate value\n * @param gateName\n * @param callback\n * @param options\n * @returns off function to unsubscribe from updates\n */\n }, {\n key: \"onGateUpdated\",\n value: function onGateUpdated(gateName, callback) {\n var _this7 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var wrapCallback = function wrapCallback(value) {\n var _options$fireGateExpo2 = options.fireGateExposure,\n fireGateExposure = _options$fireGateExpo2 === void 0 ? true : _options$fireGateExpo2;\n if (fireGateExposure) {\n _this7.manuallyLogGateExposure(gateName);\n }\n try {\n callback(value);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Error calling callback for gate \".concat(gateName, \" with value \").concat(value), error);\n }\n };\n return this.subscriptions.onGateUpdated(gateName, wrapCallback, this.checkGate.bind(this), options);\n }\n\n /**\n * Subscribe to updates where the given callback will be called with the current experiment value\n * @param experimentName\n * @param parameterName\n * @param defaultValue\n * @param callback\n * @param options\n * @returns off function to unsubscribe from updates\n */\n }, {\n key: \"onExperimentValueUpdated\",\n value: function onExperimentValueUpdated(experimentName, parameterName, defaultValue, callback) {\n var _this8 = this;\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var wrapCallback = function wrapCallback(value) {\n var _options$fireExperime2 = options.fireExperimentExposure,\n fireExperimentExposure = _options$fireExperime2 === void 0 ? true : _options$fireExperime2;\n if (fireExperimentExposure) {\n _this8.manuallyLogExperimentExposure(experimentName);\n }\n try {\n callback(value);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Error calling callback for experiment \".concat(experimentName, \" with value \").concat(value), error);\n }\n };\n return this.subscriptions.onExperimentValueUpdated(experimentName, parameterName, defaultValue, wrapCallback, this.getExperimentValue.bind(this), options);\n }\n\n /**\n * Subscribe so on any update the callback will be called.\n * NOTE: The callback will be called whenever the values are updated even if the values have not\n * changed.\n * @param callback\n * @returns off function to unsubscribe from updates\n */\n }, {\n key: \"onAnyUpdated\",\n value: function onAnyUpdated(callback) {\n return this.subscriptions.onAnyUpdated(callback);\n }\n\n /**\n * This method initializes the client using a network call to fetch the bootstrap values for the\n * given user.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @private\n */\n }, {\n key: \"init\",\n value: (function () {\n var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(clientOptions, identifiers, customAttributes) {\n var fromValuesClientOptions, experimentValues, customAttributesFromResult, clientSdkKeyPromise, experimentValuesPromise, _yield$Promise$all, _yield$Promise$all2, experimentValuesResult;\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n fromValuesClientOptions = _objectSpread({}, clientOptions);\n _context7.prev = 1;\n // If client sdk key fetch fails, an error would be thrown and handled instead of waiting for\n // the experiment values request to be settled, and it will fall back to use default values.\n clientSdkKeyPromise = Fetcher.fetchClientSdk(clientOptions).then(function (value) {\n return fromValuesClientOptions.sdkKey = value.clientSdkKey;\n });\n experimentValuesPromise = Fetcher.fetchExperimentValues(clientOptions, identifiers, customAttributes); // Only wait for the experiment values request to finish and try to initialise the client\n // with experiment values if both requests are successful. Else an error would be thrown and\n // handled by the catch\n _context7.next = 6;\n return Promise.all([clientSdkKeyPromise, experimentValuesPromise]);\n case 6:\n _yield$Promise$all = _context7.sent;\n _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);\n experimentValuesResult = _yield$Promise$all2[1];\n experimentValues = experimentValuesResult.experimentValues;\n customAttributesFromResult = experimentValuesResult.customAttributes;\n _context7.next = 20;\n break;\n case 13:\n _context7.prev = 13;\n _context7.t0 = _context7[\"catch\"](1);\n if (_context7.t0 instanceof Error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to fetch the Feature Gates client values, error: \".concat(_context7.t0 === null || _context7.t0 === void 0 ? void 0 : _context7.t0.message));\n }\n // eslint-disable-next-line no-console\n console.warn(\"Initialising Statsig client without values\");\n _context7.next = 19;\n return this.initFromValues(fromValuesClientOptions, identifiers, customAttributes);\n case 19:\n throw _context7.t0;\n case 20:\n return _context7.abrupt(\"return\", this.initFromValues(fromValuesClientOptions, identifiers, customAttributesFromResult, experimentValues));\n case 21:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, this, [[1, 13]]);\n }));\n function init(_x18, _x19, _x20) {\n return _init.apply(this, arguments);\n }\n return init;\n }())\n }, {\n key: \"initWithProvider\",\n value: function () {\n var _initWithProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(baseClientOptions, provider, identifiers, customAttributes) {\n var fromValuesClientOptions, experimentValues, customAttributesFromResult, clientSdkKeyPromise, experimentValuesPromise, _yield$Promise$all3, _yield$Promise$all4, experimentValuesResult;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n fromValuesClientOptions = _objectSpread(_objectSpread({}, baseClientOptions), {}, {\n disableCurrentPageLogging: true\n });\n _context8.prev = 1;\n _context8.next = 4;\n return provider.setProfile(baseClientOptions, identifiers, customAttributes);\n case 4:\n // If client sdk key fetch fails, an error would be thrown and handled instead of waiting for\n // the experiment values request to be settled, and it will fall back to use default values.\n clientSdkKeyPromise = provider.getClientSdkKey().then(function (value) {\n return fromValuesClientOptions.sdkKey = value;\n });\n experimentValuesPromise = provider.getExperimentValues(); // Only wait for the experiment values request to finish and try to initialise the client\n // with experiment values if both requests are successful. Else an error would be thrown and\n // handled by the catch\n _context8.next = 8;\n return Promise.all([clientSdkKeyPromise, experimentValuesPromise]);\n case 8:\n _yield$Promise$all3 = _context8.sent;\n _yield$Promise$all4 = _slicedToArray(_yield$Promise$all3, 2);\n experimentValuesResult = _yield$Promise$all4[1];\n experimentValues = experimentValuesResult.experimentValues;\n customAttributesFromResult = experimentValuesResult.customAttributesFromFetch;\n _context8.next = 22;\n break;\n case 15:\n _context8.prev = 15;\n _context8.t0 = _context8[\"catch\"](1);\n if (_context8.t0 instanceof Error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to fetch the Feature Gates client values, error: \".concat(_context8.t0 === null || _context8.t0 === void 0 ? void 0 : _context8.t0.message));\n }\n // eslint-disable-next-line no-console\n console.warn(\"Initialising Statsig client without values\");\n _context8.next = 21;\n return this.initFromValues(fromValuesClientOptions, identifiers, customAttributes);\n case 21:\n throw _context8.t0;\n case 22:\n return _context8.abrupt(\"return\", this.initFromValues(fromValuesClientOptions, identifiers, customAttributesFromResult, experimentValues));\n case 23:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, this, [[1, 15]]);\n }));\n function initWithProvider(_x21, _x22, _x23, _x24) {\n return _initWithProvider.apply(this, arguments);\n }\n return initWithProvider;\n }()\n /**\n * This method initializes the client using a set of boostrap values obtained from one of the\n * server-side SDKs.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @param initializeValues\n * @private\n */\n }, {\n key: \"initFromValues\",\n value: (function () {\n var _initFromValues = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(clientOptions, identifiers, customAttributes) {\n var _newClientOptions$net;\n var initializeValues,\n newClientOptions,\n sdkKey,\n environment,\n _updateUserCompletionCallback,\n _perimeter,\n restClientOptions,\n statsigOptions,\n _args9 = arguments;\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n initializeValues = _args9.length > 3 && _args9[3] !== undefined ? _args9[3] : {};\n this.overrideAdapter.initFromStoredOverrides();\n this.currentIdentifiers = identifiers;\n this.currentAttributes = customAttributes;\n newClientOptions = migrateInitializationOptions(clientOptions);\n if (!newClientOptions.sdkKey) {\n newClientOptions.sdkKey = DEFAULT_CLIENT_KEY;\n }\n if (!((_newClientOptions$net = newClientOptions.networkConfig) !== null && _newClientOptions$net !== void 0 && _newClientOptions$net.logEventUrl)) {\n newClientOptions.networkConfig = _objectSpread(_objectSpread({}, newClientOptions.networkConfig), {}, {\n logEventUrl: DEFAULT_EVENT_LOGGING_API\n });\n }\n if (newClientOptions.perimeter === PerimeterType.FEDRAMP_MODERATE) {\n // disable all logging in FedRAMP to prevent egress of sensitive data\n newClientOptions.disableLogging = true;\n }\n sdkKey = newClientOptions.sdkKey, environment = newClientOptions.environment, _updateUserCompletionCallback = newClientOptions.updateUserCompletionCallback, _perimeter = newClientOptions.perimeter, restClientOptions = _objectWithoutProperties(newClientOptions, _excluded);\n this.user = toStatsigUser(identifiers, customAttributes);\n statsigOptions = _objectSpread(_objectSpread({}, restClientOptions), {}, {\n environment: {\n tier: environment\n },\n includeCurrentPageUrlWithEvents: false,\n dataAdapter: this.dataAdapter,\n overrideAdapter: this.overrideAdapter\n }); // Statsig validates the provided stableId against their own cookie, so we either need\n // to update the cookie to match, or disable the validation completely.\n if (identifiers.stableId) {\n StableID.setOverride(identifiers.stableId, sdkKey);\n } else {\n statsigOptions.disableStableID = true;\n }\n _context9.prev = 12;\n this.statsigClient = new StatsigClient(sdkKey, this.user, statsigOptions);\n this.dataAdapter.setBootstrapData(initializeValues);\n _context9.next = 17;\n return this.statsigClient.initializeAsync();\n case 17:\n _context9.next = 29;\n break;\n case 19:\n _context9.prev = 19;\n _context9.t0 = _context9[\"catch\"](12);\n if (_context9.t0 instanceof Error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to initialise the Statsig client, error: \".concat(_context9.t0 === null || _context9.t0 === void 0 ? void 0 : _context9.t0.message));\n }\n // eslint-disable-next-line no-console\n console.warn(\"Initialising Statsig client with default sdk key and without values\");\n this.statsigClient = new StatsigClient(DEFAULT_CLIENT_KEY, this.user, statsigOptions);\n this.dataAdapter.setBootstrapData();\n _context9.next = 27;\n return this.statsigClient.initializeAsync();\n case 27:\n this.initWithDefaults = true;\n throw _context9.t0;\n case 29:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, this, [[12, 19]]);\n }));\n function initFromValues(_x25, _x26, _x27) {\n return _initFromValues.apply(this, arguments);\n }\n return initFromValues;\n }()\n /**\n * This method updates the user for this client with the bootstrap values returned from a given\n * Promise.\n * It uses the customAttributes from fetching experiment values to update the Statsig user but\n * uses the customAttributes from given input to check if the user has changed.\n *\n * @param {Identifiers} identifiers\n * @param {CustomAttributes} customAttributes\n * @param {Promise<InitializeValues>} getInitializeValues\n * @private\n */\n )\n }, {\n key: \"updateUserUsingInitializeValuesProducer\",\n value: (function () {\n var _updateUserUsingInitializeValuesProducer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(getInitializeValues, identifiers, customAttributes) {\n var _this9 = this;\n var originalInitPromise, initializeValuesPromise, updateUserPromise;\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n this.assertInitialized(this.statsigClient);\n if (this.initPromise) {\n _context11.next = 3;\n break;\n }\n throw new Error('The client must be initialized before you can update the user.');\n case 3:\n if (!this.isCurrentUser(identifiers, customAttributes)) {\n _context11.next = 5;\n break;\n }\n return _context11.abrupt(\"return\", this.initPromise);\n case 5:\n // Wait for the current initialize/update to finish\n originalInitPromise = this.initPromise;\n _context11.prev = 6;\n _context11.next = 9;\n return this.initPromise;\n case 9:\n _context11.next = 13;\n break;\n case 11:\n _context11.prev = 11;\n _context11.t0 = _context11[\"catch\"](6);\n case 13:\n initializeValuesPromise = getInitializeValues();\n updateUserPromise = this.updateStatsigClientUser(initializeValuesPromise, identifiers, customAttributes); // We replace the init promise here since we are essentially re-initializing the client at this\n // point. Any subsequent calls to await client.initialize() or client.updateUser()\n // will now also await this user update.\n this.initPromise = updateUserPromise.catch( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10() {\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n // If the update failed then it changed nothing, so revert back to the original promise.\n _this9.initPromise = originalInitPromise;\n\n // Set the user profile again to revert back to the current user\n if (!_this9.provider) {\n _context10.next = 4;\n break;\n }\n _context10.next = 4;\n return _this9.provider.setProfile(_this9.initOptions, _this9.currentIdentifiers, _this9.currentAttributes);\n case 4:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10);\n })));\n return _context11.abrupt(\"return\", updateUserPromise);\n case 17:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, this, [[6, 11]]);\n }));\n function updateUserUsingInitializeValuesProducer(_x28, _x29, _x30) {\n return _updateUserUsingInitializeValuesProducer.apply(this, arguments);\n }\n return updateUserUsingInitializeValuesProducer;\n }()\n /**\n * This method updates the user on the nested Statsig client\n *\n * @param identifiers\n * @param customAttributes\n * @param initializeValuesPromise\n * @private\n */\n )\n }, {\n key: \"updateStatsigClientUser\",\n value: (function () {\n var _updateStatsigClientUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(initializeValuesPromise, identifiers, customAttributes) {\n var _this$initOptions, _this$initOptions$upd;\n var initializeValues, user, _updateUserCompletion, _ref4, errMsg, success, errorMessage;\n return _regeneratorRuntime.wrap(function _callee12$(_context12) {\n while (1) switch (_context12.prev = _context12.next) {\n case 0:\n this.assertInitialized(this.statsigClient);\n _context12.prev = 1;\n _context12.next = 4;\n return initializeValuesPromise;\n case 4:\n initializeValues = _context12.sent;\n user = toStatsigUser(identifiers, initializeValues.customAttributesFromFetch);\n _context12.next = 13;\n break;\n case 8:\n _context12.prev = 8;\n _context12.t0 = _context12[\"catch\"](1);\n // Make sure the updateUserCompletionCallback is called for any errors in our custom code.\n // This is not necessary for the updateUserWithValues call, because the Statsig client will\n // already invoke the callback itself.\n errMsg = _context12.t0 instanceof Error ? _context12.t0.message : JSON.stringify(_context12.t0);\n (_updateUserCompletion = (_ref4 = this.initOptions).updateUserCompletionCallback) === null || _updateUserCompletion === void 0 || _updateUserCompletion.call(_ref4, false, errMsg);\n throw _context12.t0;\n case 13:\n success = true;\n errorMessage = null;\n _context12.prev = 15;\n this.dataAdapter.setBootstrapData(initializeValues.experimentValues);\n this.user = user;\n _context12.next = 20;\n return this.statsigClient.updateUserAsync(this.user);\n case 20:\n _context12.next = 26;\n break;\n case 22:\n _context12.prev = 22;\n _context12.t1 = _context12[\"catch\"](15);\n success = false;\n errorMessage = String(_context12.t1);\n case 26:\n (_this$initOptions = this.initOptions) === null || _this$initOptions === void 0 || (_this$initOptions$upd = _this$initOptions.updateUserCompletionCallback) === null || _this$initOptions$upd === void 0 || _this$initOptions$upd.call(_this$initOptions, success, errorMessage);\n if (!success) {\n _context12.next = 33;\n break;\n }\n this.currentIdentifiers = identifiers;\n this.currentAttributes = customAttributes;\n this.subscriptions.anyUpdated();\n _context12.next = 34;\n break;\n case 33:\n throw new Error('Failed to update user. An unexpected error occured.');\n case 34:\n case \"end\":\n return _context12.stop();\n }\n }, _callee12, this, [[1, 8], [15, 22]]);\n }));\n function updateStatsigClientUser(_x31, _x32, _x33) {\n return _updateStatsigClientUser.apply(this, arguments);\n }\n return updateStatsigClientUser;\n }())\n }, {\n key: \"getPackageVersion\",\n value:\n /**\n * @returns string version of the current package in semver style.\n */\n function getPackageVersion() {\n return CLIENT_VERSION;\n }\n\n /**\n * Returns a specified layer otherwise returns an empty layer as a default value if the layer doesn't exist.\n *\n * @param {string} layerName - The name of the layer\n * @param {Object} options\n * @param {boolean} options.fireLayerExposure - Whether or not to fire the exposure event for the\n * layer. Defaults to true. To log an exposure event manually at a later time, use\n * {@link Client.manuallyLogLayerExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * @returns A layer\n * @example\n * ```ts\n * const layer = client.getLayer('example-layer-name');\n * const exampletitle: string = layer.get(\"title\", \"Welcome to Statsig!\");\n * ```\n */\n }, {\n key: \"getLayer\",\n value: function getLayer( /** The name of the layer */\n layerName) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n try {\n this.assertInitialized(this.statsigClient);\n var _options$fireLayerExp = options.fireLayerExposure,\n fireLayerExposure = _options$fireLayerExp === void 0 ? true : _options$fireLayerExp;\n return Layer.fromLayer(this.statsigClient.getLayer(layerName, {\n disableExposureLog: !fireLayerExposure\n }));\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasGetLayerErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the layer. Only the first occurrence of this error is logged.',\n layerName: layerName,\n error: error\n });\n this.hasGetLayerErrorOccurred = true;\n }\n\n // Return a default value\n return Layer.fromLayer(_makeLayer(layerName, {\n reason: 'Error'\n }, null));\n }\n }\n\n /**\n * Returns the value of a given parameter in a layer config.\n *\n * @template T\n * @param {string} layerName - The name of the layer\n * @param {string} parameterName - The name of the parameter to fetch from the layer config\n * @param {T} defaultValue - The value to serve if the layer or parameter do not exist, or if the\n * returned value does not match the expected type.\n * @param {Object} options\n * @param {boolean} options.fireLayerExposure - Whether or not to fire the exposure event for the\n * layer. Defaults to true. To log an exposure event manually at a later time, use\n * {@link Client.manuallyLogLayerExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-))\n * @param {function} options.typeGuard - A function that asserts that the return value has the expected type. If this function returns false, then the default value will be returned instead. This can be set to protect your code from unexpected values being set remotely. By default, this will be done by asserting that the default value and value are the same primitive type.\n * @returns The value of the parameter if the layer and parameter both exist, otherwise the default value.\n * @example\n * ``` ts\n * type ValidColor = 'blue' | 'red' | 'yellow';\n * type ValidColorTypeCheck = (value: unknown) => value is ValidColor;\n *\n * const isValidColor: ValidColorTypeCheck =\n * (value: unknown) => typeof value === 'string' && ['blue', 'red', 'yellow'].includes(value);\n *\n * const buttonColor: ValidColor = client.getLayerValue(\n * 'example-layer-name',\n * 'backgroundColor',\n * 'yellow',\n * {\n * typeGuard: isValidColor\n * }\n * );\n * ```\n */\n }, {\n key: \"getLayerValue\",\n value: function getLayerValue(layerName, parameterName, defaultValue) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var layer = this.getLayer(layerName, options);\n try {\n var typeGuard = options.typeGuard;\n return layer.get(parameterName, defaultValue, typeGuard);\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasGetLayerValueErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the layer value. Only the first occurrence of this error is logged.',\n layerName: layerName,\n defaultValue: defaultValue,\n options: options,\n error: error\n });\n this.hasGetLayerValueErrorOccurred = true;\n }\n return defaultValue;\n }\n }\n }]);\n}();","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _FeatureGates;\nimport { Client } from './Client';\nimport { CLIENT_VERSION } from './version';\nexport { EvaluationReason } from './compat/types';\nexport { DynamicConfig } from './compat/DynamicConfig';\nexport { FeatureGateEnvironment, PerimeterType } from './types';\nexport { CLIENT_VERSION } from './version';\n/**\n * Access the FeatureGates object via the default export.\n * ```ts\n * import FeatureGates from '@atlaskit/feature-gate-js-client';\n * ```\n */\nvar FeatureGates = /*#__PURE__*/function () {\n function FeatureGates() {\n _classCallCheck(this, FeatureGates);\n }\n return _createClass(FeatureGates, null, [{\n key: \"isGateExists\",\n value: function isGateExists(gateName) {\n return this.client.isGateExist(gateName);\n }\n }, {\n key: \"isExperimentExists\",\n value: function isExperimentExists(experimentName) {\n return this.client.isExperimentExist(experimentName);\n }\n }]);\n}();\n_FeatureGates = FeatureGates;\n_defineProperty(FeatureGates, \"client\", new Client());\n_defineProperty(FeatureGates, \"hasCheckGateErrorOccurred\", false);\n_defineProperty(FeatureGates, \"hasGetExperimentValueErrorOccurred\", false);\n_defineProperty(FeatureGates, \"checkGate\", function (gateName, options) {\n try {\n // Check if the CRITERION override mechanism is available\n if (typeof window !== 'undefined' && window.__CRITERION__ && typeof window.__CRITERION__.getFeatureFlagOverride === 'function') {\n // Attempt to retrieve an override value for the feature gate\n var overrideValue = window.__CRITERION__.getFeatureFlagOverride(gateName);\n // If an override value is found, return it immediately\n if (overrideValue !== undefined) {\n return overrideValue;\n }\n }\n } catch (error) {\n // Log the first occurrence of the error\n if (!_FeatureGates.hasCheckGateErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred checking the feature gate from criterion override. Only the first occurrence of this error is logged.',\n gateName: gateName,\n error: error\n });\n _FeatureGates.hasCheckGateErrorOccurred = true;\n }\n }\n\n // Proceed with the main logic if no override is found\n return _FeatureGates.client.checkGate(gateName, options);\n});\n_defineProperty(FeatureGates, \"getExperimentValue\", function (experimentName, parameterName, defaultValue, options) {\n try {\n // Check if the CRITERION override mechanism is available\n if (typeof window !== 'undefined' && window.__CRITERION__ && typeof window.__CRITERION__.getExperimentValueOverride === 'function') {\n var overrideValue = window.__CRITERION__.getExperimentValueOverride(experimentName, parameterName);\n if (overrideValue !== undefined && overrideValue !== null) {\n return overrideValue;\n }\n }\n } catch (error) {\n // Log the first occurrence of the error\n if (!_FeatureGates.hasGetExperimentValueErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the experiment value from criterion override. Only the first occurrence of this error is logged.',\n experimentName: experimentName,\n defaultValue: defaultValue,\n options: options,\n error: error\n });\n _FeatureGates.hasGetExperimentValueErrorOccurred = true;\n }\n return defaultValue;\n }\n\n // Proceed with the main logic if no override is found\n return _FeatureGates.client.getExperimentValue(experimentName, parameterName, defaultValue, options);\n});\n_defineProperty(FeatureGates, \"initializeCalled\", _FeatureGates.client.initializeCalled.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"initializeCompleted\", _FeatureGates.client.initializeCompleted.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"initialize\", _FeatureGates.client.initialize.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"initializeWithProvider\", _FeatureGates.client.initializeWithProvider.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"initializeFromValues\", _FeatureGates.client.initializeFromValues.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"manuallyLogGateExposure\", _FeatureGates.client.manuallyLogGateExposure.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getExperiment\", _FeatureGates.client.getExperiment.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"manuallyLogExperimentExposure\", _FeatureGates.client.manuallyLogExperimentExposure.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"manuallyLogLayerExposure\", _FeatureGates.client.manuallyLogLayerExposure.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"shutdownStatsig\", _FeatureGates.client.shutdownStatsig.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"overrideGate\", _FeatureGates.client.overrideGate.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"clearGateOverride\", _FeatureGates.client.clearGateOverride.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"overrideConfig\", _FeatureGates.client.overrideConfig.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"clearConfigOverride\", _FeatureGates.client.clearConfigOverride.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"setOverrides\", _FeatureGates.client.setOverrides.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getOverrides\", _FeatureGates.client.getOverrides.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"clearAllOverrides\", _FeatureGates.client.clearAllOverrides.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"isCurrentUser\", _FeatureGates.client.isCurrentUser.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"onGateUpdated\", _FeatureGates.client.onGateUpdated.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"onExperimentValueUpdated\", _FeatureGates.client.onExperimentValueUpdated.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"onAnyUpdated\", _FeatureGates.client.onAnyUpdated.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"updateUser\", _FeatureGates.client.updateUser.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"updateUserWithProvider\", _FeatureGates.client.updateUserWithProvider.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"updateUserWithValues\", _FeatureGates.client.updateUserWithValues.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getPackageVersion\", _FeatureGates.client.getPackageVersion.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getLayer\", _FeatureGates.client.getLayer.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getLayerValue\", _FeatureGates.client.getLayerValue.bind(_FeatureGates.client));\nvar boundFGJS = FeatureGates;\n\n// This makes it possible to get a reference to the FeatureGates client at runtime.\n// This is important for overriding values in Cypress tests, as there needs to be a\n// way to get the exact instance for a window in order to mock some of its methods.\nif (typeof window !== 'undefined') {\n if (window.__FEATUREGATES_JS__ === undefined) {\n window.__FEATUREGATES_JS__ = FeatureGates;\n } else {\n var _boundFGJS, _boundFGJS$getPackage;\n boundFGJS = window.__FEATUREGATES_JS__;\n var boundVersion = ((_boundFGJS = boundFGJS) === null || _boundFGJS === void 0 || (_boundFGJS$getPackage = _boundFGJS.getPackageVersion) === null || _boundFGJS$getPackage === void 0 ? void 0 : _boundFGJS$getPackage.call(_boundFGJS)) || '4.10.0 or earlier';\n if (boundVersion !== CLIENT_VERSION) {\n var message = \"Multiple versions of FeatureGateClients found on the current page.\\n The currently bound version is \".concat(boundVersion, \" when module version \").concat(CLIENT_VERSION, \" was loading.\");\n // eslint-disable-next-line no-console\n console.warn(message);\n }\n }\n}\n\n/**\n * @property {FeatureGates} FeatureGate default export\n */\nexport default boundFGJS;","var _process, _process2;\n// We can't rely on NODE_ENV === 'test' if its value is already configured by the consumer to some other value, so better to use JEST_WORKER_ID\n// https://jestjs.io/docs/environment-variables#jest_worker_id\nvar TESTS_MODE = (globalThis === null || globalThis === void 0 || (_process = globalThis.process) === null || _process === void 0 || (_process = _process.env) === null || _process === void 0 ? void 0 : _process.JEST_WORKER_ID) !== undefined;\nvar DEBUG_MODE = !TESTS_MODE && (globalThis === null || globalThis === void 0 || (_process2 = globalThis.process) === null || _process2 === void 0 || (_process2 = _process2.env) === null || _process2 === void 0 ? void 0 : _process2.NODE_ENV) !== 'production';\nexport var debug = function debug() {\n var _console;\n if (!DEBUG_MODE) {\n return;\n }\n\n // eslint-disable-next-line no-console\n (_console = console).debug.apply(_console, arguments);\n};","import FeatureGates from '@atlaskit/feature-gate-js-client';\nimport { debug } from './debug';\nvar pkgName = '@atlaskit/platform-feature-flags';\nexport var PFF_GLOBAL_KEY = '__PLATFORM_FEATURE_FLAGS__';\nvar hasProcessEnv = typeof process !== 'undefined' && typeof process.env !== 'undefined';\n\n// FF global overrides can be configured by test runners or Storybook\nvar ENV_ENABLE_PLATFORM_FF = hasProcessEnv ?\n// Use global \"process\" variable and process.env['FLAG_NAME'] syntax, so it can be replaced by webpack DefinePlugin\nprocess.env['ENABLE_PLATFORM_FF'] === 'true' : false;\n\n// STORYBOOK_ENABLE_PLATFORM_FF is included as storybook only allows env vars prefixed with STORYBOOK\n// https://github.com/storybookjs/storybook/issues/12270\n\nvar ENV_STORYBOOK_ENABLE_PLATFORM_FF = hasProcessEnv ?\n// Use global \"process\" variable and process.env['FLAG_NAME'] syntax, so it can be replaced by webpack DefinePlugin\nprocess.env['STORYBOOK_ENABLE_PLATFORM_FF'] === 'true' : false;\nvar ENABLE_GLOBAL_PLATFORM_FF_OVERRIDE = ENV_ENABLE_PLATFORM_FF || ENV_STORYBOOK_ENABLE_PLATFORM_FF;\nvar DEFAULT_PFF_GLOBAL = {\n booleanResolver: undefined\n};\nvar globalVar = typeof window !== 'undefined' ? window : globalThis;\nglobalVar[PFF_GLOBAL_KEY] = globalVar[PFF_GLOBAL_KEY] || DEFAULT_PFF_GLOBAL;\nexport function setBooleanResolver(resolver) {\n globalVar[PFF_GLOBAL_KEY].booleanResolver = resolver;\n}\nexport function resolveBooleanFlag(flagKey) {\n if (ENABLE_GLOBAL_PLATFORM_FF_OVERRIDE) {\n debug('[%s]: The feature flags were enabled while running tests. The flag \"%s\" will be always enabled.', pkgName, flagKey);\n return true;\n }\n try {\n var _globalVar$PFF_GLOBAL, _globalVar$PFF_GLOBAL2, _globalVar$PFF_GLOBAL3;\n // booleanResolver will be empty for products like Trello, Elevate, Recruit etc.\n // Currently only Confluence, Jira and Bitbucket has set it.\n if (((_globalVar$PFF_GLOBAL = globalVar[PFF_GLOBAL_KEY]) === null || _globalVar$PFF_GLOBAL === void 0 ? void 0 : _globalVar$PFF_GLOBAL.booleanResolver) === undefined || ((_globalVar$PFF_GLOBAL2 = globalVar[PFF_GLOBAL_KEY]) === null || _globalVar$PFF_GLOBAL2 === void 0 ? void 0 : _globalVar$PFF_GLOBAL2.booleanResolver) === null) {\n // eslint-disable-next-line @atlaskit/platform/use-recommended-utils\n return FeatureGates.checkGate(flagKey);\n }\n var result = (_globalVar$PFF_GLOBAL3 = globalVar[PFF_GLOBAL_KEY]) === null || _globalVar$PFF_GLOBAL3 === void 0 ? void 0 : _globalVar$PFF_GLOBAL3.booleanResolver(flagKey);\n if (typeof result !== 'boolean') {\n // eslint-disable-next-line no-console\n console.warn(\"\".concat(flagKey, \" resolved to a non-boolean value, returning false for safety\"));\n return false;\n }\n return result;\n } catch (e) {\n return false;\n }\n}","import { setBooleanResolver, resolveBooleanFlag } from './resolvers';\n\n/**\n * This creates a boolean flag resolver that allows calls to `getBooleanFF` inside of Platform components to use a Product's\n * feature flag client and LD project, rather than installing a feature flag client of their own, or passing those flags in via props.\n *\n * @param flagResolver\n */\nexport function setBooleanFeatureFlagResolver(flagResolver) {\n setBooleanResolver(flagResolver);\n}\n\n/**\n * Returns the value of a feature flag. If the flag does not resolve, it returns the \"false\" as a default value.\n *\n * @deprecated Use {@link fg} function instead.\n * @param name\n */\nexport function getBooleanFF(name) {\n return resolveBooleanFlag(name);\n}\n\n/**\n * Returns the value of a feature flag. If the flag does not resolve, it returns the \"false\" as a default value.\n *\n * @param name\n */\nexport function fg(name) {\n return resolveBooleanFlag(name);\n}","import { fg } from '@atlaskit/platform-feature-flags';\n\n/**\n * This file contains the source of truth for themes and all associated meta data.\n */\n\n/**\n * Themes: The internal identifier of a theme.\n * These ids are what the actual theme files/folders are called.\n * style-dictionary will attempt to locate these in the file-system.\n */\n\n/**\n * ThemeOverrides: The internal identifier of a theme override. Which are themes that contain\n * a subset of tokens intended to override an existing theme. These ids are what the actual\n * theme files/folders are called. style-dictionary will attempt to locate these in the file-system.\n * Theme overrides are temporary and there may not be any defined at times.\n */\n\n/**\n * Theme kinds: The type of theme.\n * Some themes are entirely focused on Color, whilst others are purely focused on spacing.\n * In the future other types may be introduced such as typography.\n */\n\n/**\n * Theme modes: The general purpose of a theme.\n * This attr is used to apply the appropriate system-preference option\n * It may also be used as a selector for mode-specific overrides such as light/dark images.\n * The idea is there may exist many color themes, but every theme must either fit into light or dark.\n */\nexport var themeColorModes = ['light', 'dark', 'auto'];\n/**\n * Contrast preferences: The system contrast preference\n */\nvar themeContrastModes = ['more', 'no-preference', 'auto'];\n/**\n * Theme ids: The value that will be mounted to the DOM as a data attr\n * For example: `data-theme=\"light:light dark:dark spacing:spacing\"\n *\n * These ids must be kebab case\n */\nexport var themeIds = ['light-increased-contrast', 'light', 'light-future', 'light-brand-refresh', 'dark', 'dark-future', 'dark-increased-contrast', 'dark-brand-refresh', 'legacy-light', 'legacy-dark', 'spacing', 'shape', 'typography-adg3', 'typography-modernized', 'typography-refreshed'];\n/**\n * Theme override ids: the equivalent of themeIds for theme overrides.\n * Theme overrides are temporary and there may not be any defined at times.\n */\nvar themeOverrideIds = [];\nexport var themeIdsWithOverrides = [].concat(themeIds, themeOverrideIds);\n\n/**\n * Theme to use a base. This will create the theme as\n * an extension with all token values marked as optional\n * to allow tokens to be overridden as required.\n */\n\n/**\n * Palettes: The set of base tokens a given theme may be populated with.\n * For example: legacy light & dark themes use the \"legacyPalette\" containing colors from our\n * previous color set.\n */\n\n/**\n * ThemeConfig: the source of truth for all theme meta-data.\n * This object should be used whenever interfacing with themes.\n */\n\nvar themeConfig = {\n 'atlassian-light': {\n id: 'light',\n displayName: 'Light Theme',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n }\n },\n 'atlassian-light-future': {\n id: 'light-future',\n displayName: 'Future Light Theme',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n },\n override: 'light'\n },\n 'atlassian-light-increased-contrast': {\n id: 'light-increased-contrast',\n displayName: 'Light Theme (increased contrast)',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n },\n extends: 'light',\n increasesContrastFor: 'light'\n },\n 'atlassian-dark': {\n id: 'dark',\n displayName: 'Dark Theme',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n }\n },\n 'atlassian-dark-future': {\n id: 'dark-future',\n displayName: 'Future Dark Theme',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n },\n override: 'light'\n },\n 'atlassian-dark-increased-contrast': {\n id: 'dark-increased-contrast',\n displayName: 'Dark Theme (increased contrast)',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n },\n extends: 'dark',\n increasesContrastFor: 'dark'\n },\n 'atlassian-legacy-light': {\n id: 'legacy-light',\n displayName: 'Light Theme (legacy)',\n palette: 'legacyPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n }\n },\n 'atlassian-legacy-dark': {\n id: 'legacy-dark',\n displayName: 'Dark Theme (legacy)',\n palette: 'legacyPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n }\n },\n 'atlassian-spacing': {\n id: 'spacing',\n displayName: 'Atlassian Spacing',\n palette: 'spacingScale',\n attributes: {\n type: 'spacing'\n }\n },\n 'atlassian-typography-adg3': {\n id: 'typography-adg3',\n displayName: 'ADG3 Typography',\n palette: 'typographyPalette',\n attributes: {\n type: 'typography'\n }\n },\n 'atlassian-shape': {\n id: 'shape',\n displayName: 'Atlassian Shape',\n palette: 'shapePalette',\n attributes: {\n type: 'shape'\n }\n },\n 'atlassian-typography-modernized': {\n id: 'typography-modernized',\n displayName: 'Atlassian Typography (Modernized)',\n palette: 'typographyPalette',\n attributes: {\n type: 'typography'\n }\n },\n 'atlassian-typography-refreshed': {\n id: 'typography-refreshed',\n displayName: 'Atlassian Typography (Refreshed)',\n palette: 'typographyPalette',\n attributes: {\n type: 'typography'\n }\n },\n 'atlassian-light-brand-refresh': {\n id: 'light-brand-refresh',\n displayName: 'Light theme (Brand refresh)',\n palette: 'brandRefreshPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n }\n },\n 'atlassian-dark-brand-refresh': {\n id: 'dark-brand-refresh',\n displayName: 'Dark theme (Brand refresh)',\n palette: 'brandRefreshPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n }\n }\n};\n\n/**\n * ThemeOptionsSchema: additional configuration options used to customize Atlassian's themes\n */\n\n/**\n * ThemeState: the standard representation of an app's current theme and preferences\n */\n\n/**\n * Can't evaluate typography feature flags at the module level,\n * it will always resolve to false when server side rendered or when flags are loaded async.\n */\n\n/**\n * themeStateDefaults: the default values for ThemeState used by theming utilities\n */\nexport var themeStateDefaults = {\n colorMode: 'auto',\n contrastMode: 'auto',\n dark: 'dark',\n light: 'light',\n shape: undefined,\n spacing: 'spacing',\n typography: function typography() {\n if (fg('platform-default-typography-modernized')) {\n return 'typography-modernized';\n }\n return undefined;\n },\n UNSAFE_themeOptions: undefined\n};\n\n/**\n * Represents theme state once mounted to the page\n * (the page doesn't have an \"auto\" color mode, it's either light or dark)\n */\n\nexport default themeConfig;","/**\n * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}\n * @codegen <<SignedSource::02412877f3dbfda4dbaee7a917f24b6c>>\n * @codegenCommand yarn build tokens\n */\nvar tokens = {\n 'color.text': '--ds-text',\n 'color.text.accent.lime': '--ds-text-accent-lime',\n 'color.text.accent.lime.bolder': '--ds-text-accent-lime-bolder',\n 'color.text.accent.red': '--ds-text-accent-red',\n 'color.text.accent.red.bolder': '--ds-text-accent-red-bolder',\n 'color.text.accent.orange': '--ds-text-accent-orange',\n 'color.text.accent.orange.bolder': '--ds-text-accent-orange-bolder',\n 'color.text.accent.yellow': '--ds-text-accent-yellow',\n 'color.text.accent.yellow.bolder': '--ds-text-accent-yellow-bolder',\n 'color.text.accent.green': '--ds-text-accent-green',\n 'color.text.accent.green.bolder': '--ds-text-accent-green-bolder',\n 'color.text.accent.teal': '--ds-text-accent-teal',\n 'color.text.accent.teal.bolder': '--ds-text-accent-teal-bolder',\n 'color.text.accent.blue': '--ds-text-accent-blue',\n 'color.text.accent.blue.bolder': '--ds-text-accent-blue-bolder',\n 'color.text.accent.purple': '--ds-text-accent-purple',\n 'color.text.accent.purple.bolder': '--ds-text-accent-purple-bolder',\n 'color.text.accent.magenta': '--ds-text-accent-magenta',\n 'color.text.accent.magenta.bolder': '--ds-text-accent-magenta-bolder',\n 'color.text.accent.gray': '--ds-text-accent-gray',\n 'color.text.accent.gray.bolder': '--ds-text-accent-gray-bolder',\n 'color.text.disabled': '--ds-text-disabled',\n 'color.text.inverse': '--ds-text-inverse',\n 'color.text.selected': '--ds-text-selected',\n 'color.text.brand': '--ds-text-brand',\n 'color.text.danger': '--ds-text-danger',\n 'color.text.warning': '--ds-text-warning',\n 'color.text.warning.inverse': '--ds-text-warning-inverse',\n 'color.text.success': '--ds-text-success',\n 'color.text.discovery': '--ds-text-discovery',\n 'color.text.information': '--ds-text-information',\n 'color.text.subtlest': '--ds-text-subtlest',\n 'color.text.subtle': '--ds-text-subtle',\n 'color.link': '--ds-link',\n 'color.link.pressed': '--ds-link-pressed',\n 'color.link.visited': '--ds-link-visited',\n 'color.link.visited.pressed': '--ds-link-visited-pressed',\n 'color.icon': '--ds-icon',\n 'color.icon.accent.lime': '--ds-icon-accent-lime',\n 'color.icon.accent.red': '--ds-icon-accent-red',\n 'color.icon.accent.orange': '--ds-icon-accent-orange',\n 'color.icon.accent.yellow': '--ds-icon-accent-yellow',\n 'color.icon.accent.green': '--ds-icon-accent-green',\n 'color.icon.accent.teal': '--ds-icon-accent-teal',\n 'color.icon.accent.blue': '--ds-icon-accent-blue',\n 'color.icon.accent.purple': '--ds-icon-accent-purple',\n 'color.icon.accent.magenta': '--ds-icon-accent-magenta',\n 'color.icon.accent.gray': '--ds-icon-accent-gray',\n 'color.icon.disabled': '--ds-icon-disabled',\n 'color.icon.inverse': '--ds-icon-inverse',\n 'color.icon.selected': '--ds-icon-selected',\n 'color.icon.brand': '--ds-icon-brand',\n 'color.icon.danger': '--ds-icon-danger',\n 'color.icon.warning': '--ds-icon-warning',\n 'color.icon.warning.inverse': '--ds-icon-warning-inverse',\n 'color.icon.success': '--ds-icon-success',\n 'color.icon.discovery': '--ds-icon-discovery',\n 'color.icon.information': '--ds-icon-information',\n 'color.icon.subtlest': '--ds-icon-subtlest',\n 'color.icon.subtle': '--ds-icon-subtle',\n 'color.border': '--ds-border',\n 'color.border.accent.lime': '--ds-border-accent-lime',\n 'color.border.accent.red': '--ds-border-accent-red',\n 'color.border.accent.orange': '--ds-border-accent-orange',\n 'color.border.accent.yellow': '--ds-border-accent-yellow',\n 'color.border.accent.green': '--ds-border-accent-green',\n 'color.border.accent.teal': '--ds-border-accent-teal',\n 'color.border.accent.blue': '--ds-border-accent-blue',\n 'color.border.accent.purple': '--ds-border-accent-purple',\n 'color.border.accent.magenta': '--ds-border-accent-magenta',\n 'color.border.accent.gray': '--ds-border-accent-gray',\n 'color.border.disabled': '--ds-border-disabled',\n 'color.border.focused': '--ds-border-focused',\n 'color.border.input': '--ds-border-input',\n 'color.border.inverse': '--ds-border-inverse',\n 'color.border.selected': '--ds-border-selected',\n 'color.border.brand': '--ds-border-brand',\n 'color.border.danger': '--ds-border-danger',\n 'color.border.warning': '--ds-border-warning',\n 'color.border.success': '--ds-border-success',\n 'color.border.discovery': '--ds-border-discovery',\n 'color.border.information': '--ds-border-information',\n 'color.border.bold': '--ds-border-bold',\n 'color.background.accent.lime.subtlest': '--ds-background-accent-lime-subtlest',\n 'color.background.accent.lime.subtlest.hovered': '--ds-background-accent-lime-subtlest-hovered',\n 'color.background.accent.lime.subtlest.pressed': '--ds-background-accent-lime-subtlest-pressed',\n 'color.background.accent.lime.subtler': '--ds-background-accent-lime-subtler',\n 'color.background.accent.lime.subtler.hovered': '--ds-background-accent-lime-subtler-hovered',\n 'color.background.accent.lime.subtler.pressed': '--ds-background-accent-lime-subtler-pressed',\n 'color.background.accent.lime.subtle': '--ds-background-accent-lime-subtle',\n 'color.background.accent.lime.subtle.hovered': '--ds-background-accent-lime-subtle-hovered',\n 'color.background.accent.lime.subtle.pressed': '--ds-background-accent-lime-subtle-pressed',\n 'color.background.accent.lime.bolder': '--ds-background-accent-lime-bolder',\n 'color.background.accent.lime.bolder.hovered': '--ds-background-accent-lime-bolder-hovered',\n 'color.background.accent.lime.bolder.pressed': '--ds-background-accent-lime-bolder-pressed',\n 'color.background.accent.red.subtlest': '--ds-background-accent-red-subtlest',\n 'color.background.accent.red.subtlest.hovered': '--ds-background-accent-red-subtlest-hovered',\n 'color.background.accent.red.subtlest.pressed': '--ds-background-accent-red-subtlest-pressed',\n 'color.background.accent.red.subtler': '--ds-background-accent-red-subtler',\n 'color.background.accent.red.subtler.hovered': '--ds-background-accent-red-subtler-hovered',\n 'color.background.accent.red.subtler.pressed': '--ds-background-accent-red-subtler-pressed',\n 'color.background.accent.red.subtle': '--ds-background-accent-red-subtle',\n 'color.background.accent.red.subtle.hovered': '--ds-background-accent-red-subtle-hovered',\n 'color.background.accent.red.subtle.pressed': '--ds-background-accent-red-subtle-pressed',\n 'color.background.accent.red.bolder': '--ds-background-accent-red-bolder',\n 'color.background.accent.red.bolder.hovered': '--ds-background-accent-red-bolder-hovered',\n 'color.background.accent.red.bolder.pressed': '--ds-background-accent-red-bolder-pressed',\n 'color.background.accent.orange.subtlest': '--ds-background-accent-orange-subtlest',\n 'color.background.accent.orange.subtlest.hovered': '--ds-background-accent-orange-subtlest-hovered',\n 'color.background.accent.orange.subtlest.pressed': '--ds-background-accent-orange-subtlest-pressed',\n 'color.background.accent.orange.subtler': '--ds-background-accent-orange-subtler',\n 'color.background.accent.orange.subtler.hovered': '--ds-background-accent-orange-subtler-hovered',\n 'color.background.accent.orange.subtler.pressed': '--ds-background-accent-orange-subtler-pressed',\n 'color.background.accent.orange.subtle': '--ds-background-accent-orange-subtle',\n 'color.background.accent.orange.subtle.hovered': '--ds-background-accent-orange-subtle-hovered',\n 'color.background.accent.orange.subtle.pressed': '--ds-background-accent-orange-subtle-pressed',\n 'color.background.accent.orange.bolder': '--ds-background-accent-orange-bolder',\n 'color.background.accent.orange.bolder.hovered': '--ds-background-accent-orange-bolder-hovered',\n 'color.background.accent.orange.bolder.pressed': '--ds-background-accent-orange-bolder-pressed',\n 'color.background.accent.yellow.subtlest': '--ds-background-accent-yellow-subtlest',\n 'color.background.accent.yellow.subtlest.hovered': '--ds-background-accent-yellow-subtlest-hovered',\n 'color.background.accent.yellow.subtlest.pressed': '--ds-background-accent-yellow-subtlest-pressed',\n 'color.background.accent.yellow.subtler': '--ds-background-accent-yellow-subtler',\n 'color.background.accent.yellow.subtler.hovered': '--ds-background-accent-yellow-subtler-hovered',\n 'color.background.accent.yellow.subtler.pressed': '--ds-background-accent-yellow-subtler-pressed',\n 'color.background.accent.yellow.subtle': '--ds-background-accent-yellow-subtle',\n 'color.background.accent.yellow.subtle.hovered': '--ds-background-accent-yellow-subtle-hovered',\n 'color.background.accent.yellow.subtle.pressed': '--ds-background-accent-yellow-subtle-pressed',\n 'color.background.accent.yellow.bolder': '--ds-background-accent-yellow-bolder',\n 'color.background.accent.yellow.bolder.hovered': '--ds-background-accent-yellow-bolder-hovered',\n 'color.background.accent.yellow.bolder.pressed': '--ds-background-accent-yellow-bolder-pressed',\n 'color.background.accent.green.subtlest': '--ds-background-accent-green-subtlest',\n 'color.background.accent.green.subtlest.hovered': '--ds-background-accent-green-subtlest-hovered',\n 'color.background.accent.green.subtlest.pressed': '--ds-background-accent-green-subtlest-pressed',\n 'color.background.accent.green.subtler': '--ds-background-accent-green-subtler',\n 'color.background.accent.green.subtler.hovered': '--ds-background-accent-green-subtler-hovered',\n 'color.background.accent.green.subtler.pressed': '--ds-background-accent-green-subtler-pressed',\n 'color.background.accent.green.subtle': '--ds-background-accent-green-subtle',\n 'color.background.accent.green.subtle.hovered': '--ds-background-accent-green-subtle-hovered',\n 'color.background.accent.green.subtle.pressed': '--ds-background-accent-green-subtle-pressed',\n 'color.background.accent.green.bolder': '--ds-background-accent-green-bolder',\n 'color.background.accent.green.bolder.hovered': '--ds-background-accent-green-bolder-hovered',\n 'color.background.accent.green.bolder.pressed': '--ds-background-accent-green-bolder-pressed',\n 'color.background.accent.teal.subtlest': '--ds-background-accent-teal-subtlest',\n 'color.background.accent.teal.subtlest.hovered': '--ds-background-accent-teal-subtlest-hovered',\n 'color.background.accent.teal.subtlest.pressed': '--ds-background-accent-teal-subtlest-pressed',\n 'color.background.accent.teal.subtler': '--ds-background-accent-teal-subtler',\n 'color.background.accent.teal.subtler.hovered': '--ds-background-accent-teal-subtler-hovered',\n 'color.background.accent.teal.subtler.pressed': '--ds-background-accent-teal-subtler-pressed',\n 'color.background.accent.teal.subtle': '--ds-background-accent-teal-subtle',\n 'color.background.accent.teal.subtle.hovered': '--ds-background-accent-teal-subtle-hovered',\n 'color.background.accent.teal.subtle.pressed': '--ds-background-accent-teal-subtle-pressed',\n 'color.background.accent.teal.bolder': '--ds-background-accent-teal-bolder',\n 'color.background.accent.teal.bolder.hovered': '--ds-background-accent-teal-bolder-hovered',\n 'color.background.accent.teal.bolder.pressed': '--ds-background-accent-teal-bolder-pressed',\n 'color.background.accent.blue.subtlest': '--ds-background-accent-blue-subtlest',\n 'color.background.accent.blue.subtlest.hovered': '--ds-background-accent-blue-subtlest-hovered',\n 'color.background.accent.blue.subtlest.pressed': '--ds-background-accent-blue-subtlest-pressed',\n 'color.background.accent.blue.subtler': '--ds-background-accent-blue-subtler',\n 'color.background.accent.blue.subtler.hovered': '--ds-background-accent-blue-subtler-hovered',\n 'color.background.accent.blue.subtler.pressed': '--ds-background-accent-blue-subtler-pressed',\n 'color.background.accent.blue.subtle': '--ds-background-accent-blue-subtle',\n 'color.background.accent.blue.subtle.hovered': '--ds-background-accent-blue-subtle-hovered',\n 'color.background.accent.blue.subtle.pressed': '--ds-background-accent-blue-subtle-pressed',\n 'color.background.accent.blue.bolder': '--ds-background-accent-blue-bolder',\n 'color.background.accent.blue.bolder.hovered': '--ds-background-accent-blue-bolder-hovered',\n 'color.background.accent.blue.bolder.pressed': '--ds-background-accent-blue-bolder-pressed',\n 'color.background.accent.purple.subtlest': '--ds-background-accent-purple-subtlest',\n 'color.background.accent.purple.subtlest.hovered': '--ds-background-accent-purple-subtlest-hovered',\n 'color.background.accent.purple.subtlest.pressed': '--ds-background-accent-purple-subtlest-pressed',\n 'color.background.accent.purple.subtler': '--ds-background-accent-purple-subtler',\n 'color.background.accent.purple.subtler.hovered': '--ds-background-accent-purple-subtler-hovered',\n 'color.background.accent.purple.subtler.pressed': '--ds-background-accent-purple-subtler-pressed',\n 'color.background.accent.purple.subtle': '--ds-background-accent-purple-subtle',\n 'color.background.accent.purple.subtle.hovered': '--ds-background-accent-purple-subtle-hovered',\n 'color.background.accent.purple.subtle.pressed': '--ds-background-accent-purple-subtle-pressed',\n 'color.background.accent.purple.bolder': '--ds-background-accent-purple-bolder',\n 'color.background.accent.purple.bolder.hovered': '--ds-background-accent-purple-bolder-hovered',\n 'color.background.accent.purple.bolder.pressed': '--ds-background-accent-purple-bolder-pressed',\n 'color.background.accent.magenta.subtlest': '--ds-background-accent-magenta-subtlest',\n 'color.background.accent.magenta.subtlest.hovered': '--ds-background-accent-magenta-subtlest-hovered',\n 'color.background.accent.magenta.subtlest.pressed': '--ds-background-accent-magenta-subtlest-pressed',\n 'color.background.accent.magenta.subtler': '--ds-background-accent-magenta-subtler',\n 'color.background.accent.magenta.subtler.hovered': '--ds-background-accent-magenta-subtler-hovered',\n 'color.background.accent.magenta.subtler.pressed': '--ds-background-accent-magenta-subtler-pressed',\n 'color.background.accent.magenta.subtle': '--ds-background-accent-magenta-subtle',\n 'color.background.accent.magenta.subtle.hovered': '--ds-background-accent-magenta-subtle-hovered',\n 'color.background.accent.magenta.subtle.pressed': '--ds-background-accent-magenta-subtle-pressed',\n 'color.background.accent.magenta.bolder': '--ds-background-accent-magenta-bolder',\n 'color.background.accent.magenta.bolder.hovered': '--ds-background-accent-magenta-bolder-hovered',\n 'color.background.accent.magenta.bolder.pressed': '--ds-background-accent-magenta-bolder-pressed',\n 'color.background.accent.gray.subtlest': '--ds-background-accent-gray-subtlest',\n 'color.background.accent.gray.subtlest.hovered': '--ds-background-accent-gray-subtlest-hovered',\n 'color.background.accent.gray.subtlest.pressed': '--ds-background-accent-gray-subtlest-pressed',\n 'color.background.accent.gray.subtler': '--ds-background-accent-gray-subtler',\n 'color.background.accent.gray.subtler.hovered': '--ds-background-accent-gray-subtler-hovered',\n 'color.background.accent.gray.subtler.pressed': '--ds-background-accent-gray-subtler-pressed',\n 'color.background.accent.gray.subtle': '--ds-background-accent-gray-subtle',\n 'color.background.accent.gray.subtle.hovered': '--ds-background-accent-gray-subtle-hovered',\n 'color.background.accent.gray.subtle.pressed': '--ds-background-accent-gray-subtle-pressed',\n 'color.background.accent.gray.bolder': '--ds-background-accent-gray-bolder',\n 'color.background.accent.gray.bolder.hovered': '--ds-background-accent-gray-bolder-hovered',\n 'color.background.accent.gray.bolder.pressed': '--ds-background-accent-gray-bolder-pressed',\n 'color.background.disabled': '--ds-background-disabled',\n 'color.background.input': '--ds-background-input',\n 'color.background.input.hovered': '--ds-background-input-hovered',\n 'color.background.input.pressed': '--ds-background-input-pressed',\n 'color.background.inverse.subtle': '--ds-background-inverse-subtle',\n 'color.background.inverse.subtle.hovered': '--ds-background-inverse-subtle-hovered',\n 'color.background.inverse.subtle.pressed': '--ds-background-inverse-subtle-pressed',\n 'color.background.neutral': '--ds-background-neutral',\n 'color.background.neutral.hovered': '--ds-background-neutral-hovered',\n 'color.background.neutral.pressed': '--ds-background-neutral-pressed',\n 'color.background.neutral.subtle': '--ds-background-neutral-subtle',\n 'color.background.neutral.subtle.hovered': '--ds-background-neutral-subtle-hovered',\n 'color.background.neutral.subtle.pressed': '--ds-background-neutral-subtle-pressed',\n 'color.background.neutral.bold': '--ds-background-neutral-bold',\n 'color.background.neutral.bold.hovered': '--ds-background-neutral-bold-hovered',\n 'color.background.neutral.bold.pressed': '--ds-background-neutral-bold-pressed',\n 'color.background.selected': '--ds-background-selected',\n 'color.background.selected.hovered': '--ds-background-selected-hovered',\n 'color.background.selected.pressed': '--ds-background-selected-pressed',\n 'color.background.selected.bold': '--ds-background-selected-bold',\n 'color.background.selected.bold.hovered': '--ds-background-selected-bold-hovered',\n 'color.background.selected.bold.pressed': '--ds-background-selected-bold-pressed',\n 'color.background.brand.subtlest': '--ds-background-brand-subtlest',\n 'color.background.brand.subtlest.hovered': '--ds-background-brand-subtlest-hovered',\n 'color.background.brand.subtlest.pressed': '--ds-background-brand-subtlest-pressed',\n 'color.background.brand.bold': '--ds-background-brand-bold',\n 'color.background.brand.bold.hovered': '--ds-background-brand-bold-hovered',\n 'color.background.brand.bold.pressed': '--ds-background-brand-bold-pressed',\n 'color.background.brand.boldest': '--ds-background-brand-boldest',\n 'color.background.brand.boldest.hovered': '--ds-background-brand-boldest-hovered',\n 'color.background.brand.boldest.pressed': '--ds-background-brand-boldest-pressed',\n 'color.background.danger': '--ds-background-danger',\n 'color.background.danger.hovered': '--ds-background-danger-hovered',\n 'color.background.danger.pressed': '--ds-background-danger-pressed',\n 'color.background.danger.bold': '--ds-background-danger-bold',\n 'color.background.danger.bold.hovered': '--ds-background-danger-bold-hovered',\n 'color.background.danger.bold.pressed': '--ds-background-danger-bold-pressed',\n 'color.background.warning': '--ds-background-warning',\n 'color.background.warning.hovered': '--ds-background-warning-hovered',\n 'color.background.warning.pressed': '--ds-background-warning-pressed',\n 'color.background.warning.bold': '--ds-background-warning-bold',\n 'color.background.warning.bold.hovered': '--ds-background-warning-bold-hovered',\n 'color.background.warning.bold.pressed': '--ds-background-warning-bold-pressed',\n 'color.background.success': '--ds-background-success',\n 'color.background.success.hovered': '--ds-background-success-hovered',\n 'color.background.success.pressed': '--ds-background-success-pressed',\n 'color.background.success.bold': '--ds-background-success-bold',\n 'color.background.success.bold.hovered': '--ds-background-success-bold-hovered',\n 'color.background.success.bold.pressed': '--ds-background-success-bold-pressed',\n 'color.background.discovery': '--ds-background-discovery',\n 'color.background.discovery.hovered': '--ds-background-discovery-hovered',\n 'color.background.discovery.pressed': '--ds-background-discovery-pressed',\n 'color.background.discovery.bold': '--ds-background-discovery-bold',\n 'color.background.discovery.bold.hovered': '--ds-background-discovery-bold-hovered',\n 'color.background.discovery.bold.pressed': '--ds-background-discovery-bold-pressed',\n 'color.background.information': '--ds-background-information',\n 'color.background.information.hovered': '--ds-background-information-hovered',\n 'color.background.information.pressed': '--ds-background-information-pressed',\n 'color.background.information.bold': '--ds-background-information-bold',\n 'color.background.information.bold.hovered': '--ds-background-information-bold-hovered',\n 'color.background.information.bold.pressed': '--ds-background-information-bold-pressed',\n 'color.blanket': '--ds-blanket',\n 'color.blanket.selected': '--ds-blanket-selected',\n 'color.blanket.danger': '--ds-blanket-danger',\n 'color.interaction.hovered': '--ds-interaction-hovered',\n 'color.interaction.pressed': '--ds-interaction-pressed',\n 'color.skeleton': '--ds-skeleton',\n 'color.skeleton.subtle': '--ds-skeleton-subtle',\n 'color.chart.categorical.1': '--ds-chart-categorical-1',\n 'color.chart.categorical.1.hovered': '--ds-chart-categorical-1-hovered',\n 'color.chart.categorical.2': '--ds-chart-categorical-2',\n 'color.chart.categorical.2.hovered': '--ds-chart-categorical-2-hovered',\n 'color.chart.categorical.3': '--ds-chart-categorical-3',\n 'color.chart.categorical.3.hovered': '--ds-chart-categorical-3-hovered',\n 'color.chart.categorical.4': '--ds-chart-categorical-4',\n 'color.chart.categorical.4.hovered': '--ds-chart-categorical-4-hovered',\n 'color.chart.categorical.5': '--ds-chart-categorical-5',\n 'color.chart.categorical.5.hovered': '--ds-chart-categorical-5-hovered',\n 'color.chart.categorical.6': '--ds-chart-categorical-6',\n 'color.chart.categorical.6.hovered': '--ds-chart-categorical-6-hovered',\n 'color.chart.categorical.7': '--ds-chart-categorical-7',\n 'color.chart.categorical.7.hovered': '--ds-chart-categorical-7-hovered',\n 'color.chart.categorical.8': '--ds-chart-categorical-8',\n 'color.chart.categorical.8.hovered': '--ds-chart-categorical-8-hovered',\n 'color.chart.lime.bold': '--ds-chart-lime-bold',\n 'color.chart.lime.bold.hovered': '--ds-chart-lime-bold-hovered',\n 'color.chart.lime.bolder': '--ds-chart-lime-bolder',\n 'color.chart.lime.bolder.hovered': '--ds-chart-lime-bolder-hovered',\n 'color.chart.lime.boldest': '--ds-chart-lime-boldest',\n 'color.chart.lime.boldest.hovered': '--ds-chart-lime-boldest-hovered',\n 'color.chart.neutral': '--ds-chart-neutral',\n 'color.chart.neutral.hovered': '--ds-chart-neutral-hovered',\n 'color.chart.red.bold': '--ds-chart-red-bold',\n 'color.chart.red.bold.hovered': '--ds-chart-red-bold-hovered',\n 'color.chart.red.bolder': '--ds-chart-red-bolder',\n 'color.chart.red.bolder.hovered': '--ds-chart-red-bolder-hovered',\n 'color.chart.red.boldest': '--ds-chart-red-boldest',\n 'color.chart.red.boldest.hovered': '--ds-chart-red-boldest-hovered',\n 'color.chart.orange.bold': '--ds-chart-orange-bold',\n 'color.chart.orange.bold.hovered': '--ds-chart-orange-bold-hovered',\n 'color.chart.orange.bolder': '--ds-chart-orange-bolder',\n 'color.chart.orange.bolder.hovered': '--ds-chart-orange-bolder-hovered',\n 'color.chart.orange.boldest': '--ds-chart-orange-boldest',\n 'color.chart.orange.boldest.hovered': '--ds-chart-orange-boldest-hovered',\n 'color.chart.yellow.bold': '--ds-chart-yellow-bold',\n 'color.chart.yellow.bold.hovered': '--ds-chart-yellow-bold-hovered',\n 'color.chart.yellow.bolder': '--ds-chart-yellow-bolder',\n 'color.chart.yellow.bolder.hovered': '--ds-chart-yellow-bolder-hovered',\n 'color.chart.yellow.boldest': '--ds-chart-yellow-boldest',\n 'color.chart.yellow.boldest.hovered': '--ds-chart-yellow-boldest-hovered',\n 'color.chart.green.bold': '--ds-chart-green-bold',\n 'color.chart.green.bold.hovered': '--ds-chart-green-bold-hovered',\n 'color.chart.green.bolder': '--ds-chart-green-bolder',\n 'color.chart.green.bolder.hovered': '--ds-chart-green-bolder-hovered',\n 'color.chart.green.boldest': '--ds-chart-green-boldest',\n 'color.chart.green.boldest.hovered': '--ds-chart-green-boldest-hovered',\n 'color.chart.teal.bold': '--ds-chart-teal-bold',\n 'color.chart.teal.bold.hovered': '--ds-chart-teal-bold-hovered',\n 'color.chart.teal.bolder': '--ds-chart-teal-bolder',\n 'color.chart.teal.bolder.hovered': '--ds-chart-teal-bolder-hovered',\n 'color.chart.teal.boldest': '--ds-chart-teal-boldest',\n 'color.chart.teal.boldest.hovered': '--ds-chart-teal-boldest-hovered',\n 'color.chart.blue.bold': '--ds-chart-blue-bold',\n 'color.chart.blue.bold.hovered': '--ds-chart-blue-bold-hovered',\n 'color.chart.blue.bolder': '--ds-chart-blue-bolder',\n 'color.chart.blue.bolder.hovered': '--ds-chart-blue-bolder-hovered',\n 'color.chart.blue.boldest': '--ds-chart-blue-boldest',\n 'color.chart.blue.boldest.hovered': '--ds-chart-blue-boldest-hovered',\n 'color.chart.purple.bold': '--ds-chart-purple-bold',\n 'color.chart.purple.bold.hovered': '--ds-chart-purple-bold-hovered',\n 'color.chart.purple.bolder': '--ds-chart-purple-bolder',\n 'color.chart.purple.bolder.hovered': '--ds-chart-purple-bolder-hovered',\n 'color.chart.purple.boldest': '--ds-chart-purple-boldest',\n 'color.chart.purple.boldest.hovered': '--ds-chart-purple-boldest-hovered',\n 'color.chart.magenta.bold': '--ds-chart-magenta-bold',\n 'color.chart.magenta.bold.hovered': '--ds-chart-magenta-bold-hovered',\n 'color.chart.magenta.bolder': '--ds-chart-magenta-bolder',\n 'color.chart.magenta.bolder.hovered': '--ds-chart-magenta-bolder-hovered',\n 'color.chart.magenta.boldest': '--ds-chart-magenta-boldest',\n 'color.chart.magenta.boldest.hovered': '--ds-chart-magenta-boldest-hovered',\n 'color.chart.gray.bold': '--ds-chart-gray-bold',\n 'color.chart.gray.bold.hovered': '--ds-chart-gray-bold-hovered',\n 'color.chart.gray.bolder': '--ds-chart-gray-bolder',\n 'color.chart.gray.bolder.hovered': '--ds-chart-gray-bolder-hovered',\n 'color.chart.gray.boldest': '--ds-chart-gray-boldest',\n 'color.chart.gray.boldest.hovered': '--ds-chart-gray-boldest-hovered',\n 'color.chart.brand': '--ds-chart-brand',\n 'color.chart.brand.hovered': '--ds-chart-brand-hovered',\n 'color.chart.danger': '--ds-chart-danger',\n 'color.chart.danger.hovered': '--ds-chart-danger-hovered',\n 'color.chart.danger.bold': '--ds-chart-danger-bold',\n 'color.chart.danger.bold.hovered': '--ds-chart-danger-bold-hovered',\n 'color.chart.warning': '--ds-chart-warning',\n 'color.chart.warning.hovered': '--ds-chart-warning-hovered',\n 'color.chart.warning.bold': '--ds-chart-warning-bold',\n 'color.chart.warning.bold.hovered': '--ds-chart-warning-bold-hovered',\n 'color.chart.success': '--ds-chart-success',\n 'color.chart.success.hovered': '--ds-chart-success-hovered',\n 'color.chart.success.bold': '--ds-chart-success-bold',\n 'color.chart.success.bold.hovered': '--ds-chart-success-bold-hovered',\n 'color.chart.discovery': '--ds-chart-discovery',\n 'color.chart.discovery.hovered': '--ds-chart-discovery-hovered',\n 'color.chart.discovery.bold': '--ds-chart-discovery-bold',\n 'color.chart.discovery.bold.hovered': '--ds-chart-discovery-bold-hovered',\n 'color.chart.information': '--ds-chart-information',\n 'color.chart.information.hovered': '--ds-chart-information-hovered',\n 'color.chart.information.bold': '--ds-chart-information-bold',\n 'color.chart.information.bold.hovered': '--ds-chart-information-bold-hovered',\n 'elevation.surface': '--ds-surface',\n 'elevation.surface.hovered': '--ds-surface-hovered',\n 'elevation.surface.pressed': '--ds-surface-pressed',\n 'elevation.surface.overlay': '--ds-surface-overlay',\n 'elevation.surface.overlay.hovered': '--ds-surface-overlay-hovered',\n 'elevation.surface.overlay.pressed': '--ds-surface-overlay-pressed',\n 'elevation.surface.raised': '--ds-surface-raised',\n 'elevation.surface.raised.hovered': '--ds-surface-raised-hovered',\n 'elevation.surface.raised.pressed': '--ds-surface-raised-pressed',\n 'elevation.surface.sunken': '--ds-surface-sunken',\n 'elevation.shadow.overflow': '--ds-shadow-overflow',\n 'elevation.shadow.overflow.perimeter': '--ds-shadow-overflow-perimeter',\n 'elevation.shadow.overflow.spread': '--ds-shadow-overflow-spread',\n 'elevation.shadow.overlay': '--ds-shadow-overlay',\n 'elevation.shadow.raised': '--ds-shadow-raised',\n 'opacity.disabled': '--ds-opacity-disabled',\n 'opacity.loading': '--ds-opacity-loading',\n 'utility.UNSAFE.textTransformUppercase': '--ds-UNSAFE-textTransformUppercase',\n 'utility.UNSAFE.transparent': '--ds-UNSAFE-transparent',\n 'utility.elevation.surface.current': '--ds-elevation-surface-current',\n 'border.radius.050': '--ds-border-radius-050',\n 'border.radius': '--ds-border-radius',\n 'border.radius.100': '--ds-border-radius-100',\n 'border.radius.200': '--ds-border-radius-200',\n 'border.radius.300': '--ds-border-radius-300',\n 'border.radius.400': '--ds-border-radius-400',\n 'border.radius.circle': '--ds-border-radius-circle',\n 'border.width': '--ds-border-width',\n 'border.width.0': '--ds-border-width-0',\n 'border.width.indicator': '--ds-border-width-indicator',\n 'border.width.outline': '--ds-border-width-outline',\n 'space.0': '--ds-space-0',\n 'space.025': '--ds-space-025',\n 'space.050': '--ds-space-050',\n 'space.075': '--ds-space-075',\n 'space.100': '--ds-space-100',\n 'space.150': '--ds-space-150',\n 'space.200': '--ds-space-200',\n 'space.250': '--ds-space-250',\n 'space.300': '--ds-space-300',\n 'space.400': '--ds-space-400',\n 'space.500': '--ds-space-500',\n 'space.600': '--ds-space-600',\n 'space.800': '--ds-space-800',\n 'space.1000': '--ds-space-1000',\n 'space.negative.025': '--ds-space-negative-025',\n 'space.negative.050': '--ds-space-negative-050',\n 'space.negative.075': '--ds-space-negative-075',\n 'space.negative.100': '--ds-space-negative-100',\n 'space.negative.150': '--ds-space-negative-150',\n 'space.negative.200': '--ds-space-negative-200',\n 'space.negative.250': '--ds-space-negative-250',\n 'space.negative.300': '--ds-space-negative-300',\n 'space.negative.400': '--ds-space-negative-400',\n 'font.heading.xxlarge': '--ds-font-heading-xxlarge',\n 'font.heading.xlarge': '--ds-font-heading-xlarge',\n 'font.heading.large': '--ds-font-heading-large',\n 'font.heading.medium': '--ds-font-heading-medium',\n 'font.heading.small': '--ds-font-heading-small',\n 'font.heading.xsmall': '--ds-font-heading-xsmall',\n 'font.heading.xxsmall': '--ds-font-heading-xxsmall',\n 'font.body.large': '--ds-font-body-large',\n 'font.body': '--ds-font-body',\n 'font.body.small': '--ds-font-body-small',\n 'font.body.UNSAFE_small': '--ds-font-body-UNSAFE_small',\n 'font.code': '--ds-font-code',\n 'font.weight.regular': '--ds-font-weight-regular',\n 'font.weight.medium': '--ds-font-weight-medium',\n 'font.weight.semibold': '--ds-font-weight-semibold',\n 'font.weight.bold': '--ds-font-weight-bold',\n 'font.family.heading': '--ds-font-family-heading',\n 'font.family.body': '--ds-font-family-body',\n 'font.family.code': '--ds-font-family-code',\n 'font.family.brand.heading': '--ds-font-family-brand-heading',\n 'font.family.brand.body': '--ds-font-family-brand-body'\n};\nexport default tokens;","export var THEME_DATA_ATTRIBUTE = 'data-theme';\nexport var COLOR_MODE_ATTRIBUTE = 'data-color-mode';\nexport var CONTRAST_MODE_ATTRIBUTE = 'data-contrast-mode';\nexport var CUSTOM_THEME_ATTRIBUTE = 'data-custom-theme';\nexport var CSS_PREFIX = 'ds';\nexport var CSS_VAR_FULL = ['opacity', 'font', 'space', 'border'];\nexport var TOKEN_NOT_FOUND_CSS_VAR = \"--\".concat(CSS_PREFIX, \"-token-not-found\");\nexport var CURRENT_SURFACE_CSS_VAR = \"--\".concat(CSS_PREFIX, \"-elevation-surface-current\");","import warnOnce from '@atlaskit/ds-lib/warn-once';\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport tokens from './artifacts/token-names';\nimport { TOKEN_NOT_FOUND_CSS_VAR } from './constants';\n/**\n * Takes a dot-separated token name and an optional fallback, and returns the CSS custom property for the corresponding token.\n * This should be used to implement design decisions throughout your application.\n *\n * Note: With `@atlaskit/babel-plugin-tokens`, this function can be pre-compiled and a fallback value automatically inserted.\n *\n * @param {string} path - A dot-separated token name (example: `'color.background.brand'` or `'spacing.scale.100'`).\n * @param {string} [fallback] - The fallback value that should render when token CSS is not present in your app.\n *\n * @example\n * ```\n * <div\n * css={{\n * backgroundColor: token('elevation.surface.raised', N0),\n * boxShadow: token('elevation.shadow.raised', `0 20px 32px -8px ${N50A}, 0 0 1px ${N60A}`),\n * padding: token('spacing.scale.100', '8px'),\n * fontWeight: token('font.weight.regular', '400'),\n * }}\n * />\n * ```\n *\n */\nfunction token(path, fallback) {\n var token = tokens[path];\n if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n if (!token) {\n warnOnce(\"Unknown token id at path: \".concat(path, \" in @atlaskit/tokens\"));\n }\n if (token === '--ds-icon-subtlest' && !fg('platform-component-visual-refresh')) {\n warnOnce(\"Token \\\"color.icon.subtlest\\\" is only available when feature flag \\\"platform-component-visual-refresh\\\" is on, don't use it if the flag can't be turned on on this page\");\n }\n }\n\n // if the token is not found - replacing it with variable name without any value, to avoid it being undefined which would result in invalid css\n if (!token) {\n token = TOKEN_NOT_FOUND_CSS_VAR;\n }\n var tokenCall = fallback ? \"var(\".concat(token, \", \").concat(fallback, \")\") : \"var(\".concat(token, \")\");\n return tokenCall;\n}\nexport default token;","import warnOnce from '@atlaskit/ds-lib/warn-once';\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport tokens from './artifacts/token-names';\n/**\n * Takes a dot-separated token name and and an optional fallback, and returns the current computed CSS value for the\n * resulting CSS Custom Property.\n * This should be used for when the CSS cascade isn't available, eg. `<canvas>` elements, JS charting libraries, etc.\n *\n * Note: these values change depending on the theme so consider pairing them with `useThemeObserver` in React, or the\n * `ThemeMutationObserver` class elsewhere.\n *\n * @param {string} path - A dot-separated token name (example: `'color.background.brand'` or `'spacing.scale.100'`).\n * @param {string} [fallback] - The fallback value that should render when token CSS is not present in your app.\n *\n * @example\n * ```\n * const theme = useThemeObserver();\n *\n * useEffect(() => {\n * const lineColor = getTokenValue('color.background.accent.blue.subtle', B400);\n * }, [theme]);\n * ```\n *\n */\nfunction getTokenValue(tokenId) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var token = tokens[tokenId];\n var tokenValue = fallback;\n if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n if (!token) {\n warnOnce(\"Unknown token id at path: \".concat(tokenId, \" in @atlaskit/tokens\"));\n }\n if (token === '--ds-icon-subtlest' && !fg('platform-component-visual-refresh')) {\n warnOnce(\"Token \\\"color.icon.subtlest\\\" is only available when feature flag \\\"platform-component-visual-refresh\\\" is on, don't use it if the flag can't be turned on on this page\");\n }\n }\n if (typeof window === 'undefined') {\n return tokenValue;\n }\n tokenValue = window.getComputedStyle(document.documentElement).getPropertyValue(token).trim();\n tokenValue = tokenValue || fallback;\n return tokenValue;\n}\nexport default getTokenValue;","// valid hex color with 6 digits\nexport var isValidBrandHex = function isValidBrandHex(hex) {\n return /^#[0-9A-F]{6}$/i.test(hex);\n};\n\n// valid hex color with 4, 6 or 8 digits\nvar isValidHex = function isValidHex(hex) {\n return /^#([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);\n};\nexport function rgbToHex(r, g, b) {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n}\nexport function getAlpha(hex) {\n if (hex.length === 9) {\n var int = parseInt(hex.slice(7, 9), 16) / 255;\n return Number(parseFloat(int.toString()).toFixed(2));\n }\n return 1;\n}\nexport function hexToRgbA(hex) {\n if (!isValidHex(hex)) {\n throw new Error('Invalid HEX');\n }\n var c;\n c = hex.substring(1).split('');\n if (c.length === 3) {\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\n }\n c = '0x' + c.join('');\n return [c >> 16 & 255, c >> 8 & 255, c & 255, getAlpha(hex)];\n}\nexport function hexToRgb(hex) {\n if (!isValidHex(hex)) {\n throw new Error('Invalid HEX');\n }\n var c;\n c = hex.substring(1).split('');\n if (c.length === 3) {\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\n }\n c = '0x' + c.join('');\n return [c >> 16 & 255, c >> 8 & 255, c & 255];\n}\nexport function hexToHSL(hex) {\n if (!isValidHex(hex)) {\n throw new Error('Invalid HEX');\n }\n var r = 0,\n g = 0,\n b = 0;\n if (hex.length === 4) {\n r = '0x' + hex[1] + hex[1];\n g = '0x' + hex[2] + hex[2];\n b = '0x' + hex[3] + hex[3];\n } else if (hex.length === 7) {\n r = '0x' + hex[1] + hex[2];\n g = '0x' + hex[3] + hex[4];\n b = '0x' + hex[5] + hex[6];\n }\n // Then to HSL\n r /= 255;\n g /= 255;\n b /= 255;\n var cmin = Math.min(r, g, b),\n cmax = Math.max(r, g, b),\n delta = cmax - cmin,\n h = 0,\n s = 0,\n l = 0;\n if (delta === 0) {\n h = 0;\n } else if (cmax === r) {\n h = (g - b) / delta % 6;\n } else if (cmax === g) {\n h = (b - r) / delta + 2;\n } else {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n if (h < 0) {\n h += 360;\n }\n l = (cmax + cmin) / 2;\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n return [h, s, l];\n}\nexport function HSLToRGB(h, s, l) {\n s /= 100;\n l /= 100;\n var k = function k(n) {\n return (n + h / 30) % 12;\n };\n var a = s * Math.min(l, 1 - l);\n var f = function f(n) {\n return l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n };\n return [255 * f(0), 255 * f(8), 255 * f(4)];\n}\nexport function relativeLuminanceW3C(r, g, b) {\n var RsRGB = r / 255;\n var GsRGB = g / 255;\n var BsRGB = b / 255;\n var R = RsRGB <= 0.03928 ? RsRGB / 12.92 : Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n var G = GsRGB <= 0.03928 ? GsRGB / 12.92 : Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n var B = BsRGB <= 0.03928 ? BsRGB / 12.92 : Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n\n // For the sRGB colorspace, the relative luminance of a color is defined as:\n var L = 0.2126 * R + 0.7152 * G + 0.0722 * B;\n return L;\n}\nexport function getContrastRatio(foreground, background) {\n if (!isValidHex(foreground) || !isValidHex(background)) {\n throw new Error('Invalid HEX');\n }\n var foregroundRgb = hexToRgb(foreground);\n var backgroundRgb = hexToRgb(background);\n var foregroundLuminance = relativeLuminanceW3C(foregroundRgb[0], foregroundRgb[1], foregroundRgb[2]);\n var backgroundLuminance = relativeLuminanceW3C(backgroundRgb[0], backgroundRgb[1], backgroundRgb[2]);\n // calculate the color contrast ratio\n var brightest = Math.max(foregroundLuminance, backgroundLuminance);\n var darkest = Math.min(foregroundLuminance, backgroundLuminance);\n return (brightest + 0.05) / (darkest + 0.05);\n}\nexport function deltaE(rgbA, rgbB) {\n var labA = rgbToLab(rgbA);\n var labB = rgbToLab(rgbB);\n var deltaL = labA[0] - labB[0];\n var deltaA = labA[1] - labB[1];\n var deltaB = labA[2] - labB[2];\n var c1 = Math.sqrt(labA[1] * labA[1] + labA[2] * labA[2]);\n var c2 = Math.sqrt(labB[1] * labB[1] + labB[2] * labB[2]);\n var deltaC = c1 - c2;\n var deltaH = deltaA * deltaA + deltaB * deltaB - deltaC * deltaC;\n deltaH = deltaH < 0 ? 0 : Math.sqrt(deltaH);\n var sc = 1.0 + 0.045 * c1;\n var sh = 1.0 + 0.015 * c1;\n var deltaLKlsl = deltaL / 1.0;\n var deltaCkcsc = deltaC / sc;\n var deltaHkhsh = deltaH / sh;\n var i = deltaLKlsl * deltaLKlsl + deltaCkcsc * deltaCkcsc + deltaHkhsh * deltaHkhsh;\n return i < 0 ? 0 : Math.sqrt(i);\n}\nfunction rgbToLab(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n x,\n y,\n z;\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n x = (r * 0.4124 + g * 0.3576 + b * 0.1805) / 0.95047;\n y = (r * 0.2126 + g * 0.7152 + b * 0.0722) / 1.0;\n z = (r * 0.0193 + g * 0.1192 + b * 0.9505) / 1.08883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n return [116 * y - 16, 500 * (x - y), 200 * (y - z)];\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { themeIds } from './theme-config';\nvar themeKinds = ['light', 'dark', 'spacing', 'typography', 'shape'];\nvar customThemeOptions = 'UNSAFE_themeOptions';\nvar isThemeKind = function isThemeKind(themeKind) {\n return themeKinds.find(function (kind) {\n return kind === themeKind;\n }) !== undefined;\n};\nvar isThemeIds = function isThemeIds(themeId) {\n return themeIds.find(function (id) {\n return id === themeId;\n }) !== undefined;\n};\nvar isColorMode = function isColorMode(modeId) {\n return ['light', 'dark', 'auto'].includes(modeId);\n};\n/**\n * Converts a string that is formatted for the `data-theme` HTML attribute\n * to an object that can be passed to `setGlobalTheme`.\n *\n * @param {string} themes The themes that should be applied.\n *\n * @example\n * ```\n * themeStringToObject('dark:dark light:legacy-light spacing:spacing');\n * // returns { dark: 'dark', light: 'legacy-light', spacing: 'spacing' }\n * ```\n */\nexport var themeStringToObject = function themeStringToObject(themeState) {\n return themeState.split(' ').map(function (theme) {\n return theme.split(/:([^]*)/);\n }).reduce(function (themeObject, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n kind = _ref2[0],\n id = _ref2[1];\n if (kind === 'colorMode' && isColorMode(id)) {\n themeObject[kind] = id;\n }\n if (isThemeKind(kind) && isThemeIds(id)) {\n // @ts-expect-error FIXME - this is a valid ts error\n themeObject[kind] = id;\n }\n if (kind === customThemeOptions) {\n try {\n themeObject[customThemeOptions] = JSON.parse(id);\n } catch (e) {\n new Error('Invalid custom theme string');\n }\n }\n return themeObject;\n }, {});\n};\n\n/**\n * Converts a theme object to a string formatted for the `data-theme` HTML attribute.\n *\n * @param {object} themes The themes that should be applied.\n *\n * @example\n * ```\n * themeObjectToString({ dark: 'dark', light: 'legacy-light', spacing: 'spacing' });\n * // returns 'dark:dark light:legacy-light spacing:spacing'\n * ```\n */\nexport var themeObjectToString = function themeObjectToString(themeState) {\n return Object.entries(themeState).reduce(function (themeString, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n kind = _ref4[0],\n id = _ref4[1];\n if (\n // colorMode theme state\n kind === 'colorMode' && typeof id === 'string' && isColorMode(id) ||\n // custom theme state\n kind === customThemeOptions && _typeof(id) === 'object' ||\n // other theme states\n isThemeKind(kind) && typeof id === 'string' && isThemeIds(id)) {\n return themeString + \"\".concat(themeString ? ' ' : '') + \"\".concat(kind, \":\").concat(_typeof(id) === 'object' ? JSON.stringify(id) : id);\n }\n return themeString;\n }, '');\n};","export var hash = function hash(str) {\n var hash = 0;\n for (var i = 0; i < str.length; i++) {\n var char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash &= hash; // Convert to 32bit integer\n }\n return new Uint32Array([hash])[0].toString(36);\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport { COLOR_MODE_ATTRIBUTE, CONTRAST_MODE_ATTRIBUTE, CUSTOM_THEME_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from './constants';\nimport { themeStateDefaults } from './theme-config';\nimport { themeObjectToString } from './theme-state-transformer';\nimport { isValidBrandHex } from './utils/color-utils';\nimport { hash } from './utils/hash';\nvar defaultColorMode = 'light';\nvar defaultContrastMode = 'no-preference';\n\n/**\n * Server-side rendering utility. Generates the valid HTML attributes for a given theme.\n * Note: this utility does not handle automatic theme switching.\n *\n * @param {Object<string, string>} themeOptions - Theme options object\n * @param {string} themeState.colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.dark The color theme to be applied when the color mode resolves to 'dark'.\n * @param {string} themeState.light The color theme to be applied when the color mode resolves to 'light'.\n * @param {string} themeState.spacing The spacing theme to be applied.\n * @param {string} themeState.typography The typography theme to be applied.\n * @param {Object} themeState.UNSAFE_themeOptions The custom branding options to be used for custom theme generation\n *\n * @returns {Object} Object of HTML attributes to be applied to the document root\n */\nvar getThemeHtmlAttrs = function getThemeHtmlAttrs() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$colorMode = _ref.colorMode,\n colorMode = _ref$colorMode === void 0 ? themeStateDefaults['colorMode'] : _ref$colorMode,\n _ref$dark = _ref.dark,\n dark = _ref$dark === void 0 ? themeStateDefaults['dark'] : _ref$dark,\n _ref$light = _ref.light,\n light = _ref$light === void 0 ? themeStateDefaults['light'] : _ref$light,\n _ref$contrastMode = _ref.contrastMode,\n contrastMode = _ref$contrastMode === void 0 ? themeStateDefaults['contrastMode'] : _ref$contrastMode,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? themeStateDefaults['shape'] : _ref$shape,\n _ref$spacing = _ref.spacing,\n spacing = _ref$spacing === void 0 ? themeStateDefaults['spacing'] : _ref$spacing,\n _ref$typography = _ref.typography,\n typography = _ref$typography === void 0 ? themeStateDefaults['typography']() : _ref$typography,\n _ref$UNSAFE_themeOpti = _ref.UNSAFE_themeOptions,\n UNSAFE_themeOptions = _ref$UNSAFE_themeOpti === void 0 ? themeStateDefaults['UNSAFE_themeOptions'] : _ref$UNSAFE_themeOpti;\n var themeAttribute = themeObjectToString({\n dark: dark,\n light: light,\n shape: shape,\n spacing: spacing,\n typography: typography\n });\n var result = _defineProperty(_defineProperty({}, THEME_DATA_ATTRIBUTE, themeAttribute), COLOR_MODE_ATTRIBUTE, colorMode === 'auto' ? defaultColorMode : colorMode);\n if (fg('platform_increased-contrast-themes')) {\n result = _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, CONTRAST_MODE_ATTRIBUTE, contrastMode === 'auto' ? defaultContrastMode : contrastMode));\n }\n if (UNSAFE_themeOptions && isValidBrandHex(UNSAFE_themeOptions.brandColor)) {\n var optionString = JSON.stringify(UNSAFE_themeOptions);\n var uniqueId = hash(optionString);\n result[CUSTOM_THEME_ATTRIBUTE] = uniqueId;\n }\n return result;\n};\nexport default getThemeHtmlAttrs;","export default {\n\t'light': () => (() => {}),\n\t'light-future': () => (() => {}),\n\t'dark': () => (() => {}),\n\t'dark-future': () => (() => {}),\n\t'legacy-light': () => (() => {}),\n\t'legacy-dark': () => (() => {}),\n\t'spacing': () => (() => {}),\n\t'shape': () => (() => {}),\n\t'typography-adg3': () => (() => {}),\n\t'typography-modernized': () => (() => {}),\n\t'typography-refreshed': () => (() => {}),\n};","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport themeImportMap from '../artifacts/theme-import-map';\nimport { CUSTOM_THEME_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from '../constants';\nexport var loadAndAppendThemeCss = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(themeId) {\n var themeCss, style;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!document.head.querySelector(\"style[\".concat(THEME_DATA_ATTRIBUTE, \"=\\\"\").concat(themeId, \"\\\"]:not([\").concat(CUSTOM_THEME_ATTRIBUTE, \"])\"))) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\");\n case 2:\n if (themeId) {\n _context.next = 4;\n break;\n }\n return _context.abrupt(\"return\");\n case 4:\n _context.next = 6;\n return loadThemeCss(themeId);\n case 6:\n themeCss = _context.sent;\n style = document.createElement('style');\n style.textContent = themeCss;\n style.dataset.theme = themeId;\n document.head.appendChild(style);\n case 11:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function loadAndAppendThemeCss(_x) {\n return _ref.apply(this, arguments);\n };\n}();\nexport var loadThemeCss = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(themeId) {\n var _yield$themeImportMap, themeCss;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if ((themeId === 'light' || themeId === 'dark') && fg('platform-component-visual-refresh')) {\n themeId += '-brand-refresh';\n }\n _context2.next = 3;\n return themeImportMap[themeId]();\n case 3:\n _yield$themeImportMap = _context2.sent;\n themeCss = _yield$themeImportMap.default;\n return _context2.abrupt(\"return\", themeCss);\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function loadThemeCss(_x2) {\n return _ref2.apply(this, arguments);\n };\n}();\nexport var darkModeMediaQuery = '(prefers-color-scheme: dark)';\nexport var moreContrastMediaQuery = '(prefers-contrast: more)';","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { bind as _bind } from 'bind-event-listener';\nimport { COLOR_MODE_ATTRIBUTE } from '../constants';\nimport { darkModeMediaQuery } from './theme-loading';\nvar isMatchMediaAvailable = typeof window !== 'undefined' && 'matchMedia' in window;\n\n/**\n * Updates the current theme when the system theme changes. Should be bound\n * to an event listener listening on the '(prefers-color-scheme: dark)' query\n * @param e The event representing a change in system theme.\n */\nfunction checkNativeListener(e) {\n var element = document.documentElement;\n element.setAttribute(COLOR_MODE_ATTRIBUTE, e.matches ? 'dark' : 'light');\n}\nvar darkModeMql = isMatchMediaAvailable && window.matchMedia(darkModeMediaQuery);\nvar ColorModeObserver = /*#__PURE__*/function () {\n function ColorModeObserver() {\n _classCallCheck(this, ColorModeObserver);\n _defineProperty(this, \"unbindThemeChangeListener\", null);\n }\n return _createClass(ColorModeObserver, [{\n key: \"getColorMode\",\n value: function getColorMode() {\n if (!darkModeMql) {\n return 'light';\n }\n return darkModeMql !== null && darkModeMql !== void 0 && darkModeMql.matches ? 'dark' : 'light';\n }\n }, {\n key: \"bind\",\n value: function bind() {\n if (darkModeMql && this.unbindThemeChangeListener === null) {\n this.unbindThemeChangeListener = _bind(darkModeMql, {\n type: 'change',\n listener: checkNativeListener\n });\n }\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n if (this.unbindThemeChangeListener) {\n this.unbindThemeChangeListener();\n this.unbindThemeChangeListener = null;\n }\n }\n }]);\n}();\n/**\n * A singleton color mode observer - binds \"auto\" switching logic to a single `mediaQueryList` listener\n * that can be unbound by any consumer when no longer needed.\n */\nvar SingletonColorModeObserver = new ColorModeObserver();\nexport default SingletonColorModeObserver;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { bind as _bind } from 'bind-event-listener';\nimport { CONTRAST_MODE_ATTRIBUTE } from '../constants';\nimport { moreContrastMediaQuery } from './theme-loading';\nvar isMatchMediaAvailable = typeof window !== 'undefined' && 'matchMedia' in window;\n\n/**\n * Updates the current theme when the system contrast preference changes. Should be bound\n * to an event listener listening on the '(prefers-contrast: more)' query\n * @param e The event representing a change in system theme.\n */\nfunction checkNativeListener(e) {\n var element = document.documentElement;\n element.setAttribute(CONTRAST_MODE_ATTRIBUTE, e.matches ? 'more' : 'no-preference');\n}\nvar contrastModeMql = isMatchMediaAvailable && window.matchMedia(moreContrastMediaQuery);\nvar ContrastModeObserver = /*#__PURE__*/function () {\n function ContrastModeObserver() {\n _classCallCheck(this, ContrastModeObserver);\n _defineProperty(this, \"unbindContrastChangeListener\", null);\n }\n return _createClass(ContrastModeObserver, [{\n key: \"getContrastMode\",\n value: function getContrastMode() {\n if (!contrastModeMql) {\n return 'no-preference';\n }\n return contrastModeMql !== null && contrastModeMql !== void 0 && contrastModeMql.matches ? 'more' : 'no-preference';\n }\n }, {\n key: \"bind\",\n value: function bind() {\n if (contrastModeMql && this.unbindContrastChangeListener === null) {\n this.unbindContrastChangeListener = _bind(contrastModeMql, {\n type: 'change',\n listener: checkNativeListener\n });\n }\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n if (this.unbindContrastChangeListener) {\n this.unbindContrastChangeListener();\n this.unbindContrastChangeListener = null;\n }\n }\n }]);\n}();\n/**\n * A singleton contrast mode observer - binds \"auto\" switching logic to a single `mediaQueryList` listener\n * that can be unbound by any consumer when no longer needed.\n */\nvar SingletonContrastModeObserver = new ContrastModeObserver();\nexport default SingletonContrastModeObserver;","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport getThemeHtmlAttrs from '../get-theme-html-attrs';\nimport ColorModeObserver from './color-mode-listeners';\nimport ContrastModeObserver from './contrast-mode-listeners';\n\n/**\n * Given ThemeState, sets appropriate html attributes on the documentElement,\n * adds a listener to keep colorMode updated, and returns a function to unbind.\n */\nexport default function configurePage(themeState) {\n if (themeState.colorMode === 'auto') {\n // Set colorMode based on the user preference\n themeState.colorMode = ColorModeObserver.getColorMode();\n // Bind a listener (if one doesn't already exist) to keep colorMode updated\n ColorModeObserver.bind();\n } else {\n ColorModeObserver.unbind();\n }\n if (fg('platform_increased-contrast-themes')) {\n if (themeState.contrastMode === 'auto') {\n // Set contrastMode based on the user preference\n themeState.contrastMode = ContrastModeObserver.getContrastMode();\n // Bind a listener (if one doesn't already exist) to keep contrastMode updated\n ContrastModeObserver.bind();\n } else {\n ContrastModeObserver.unbind();\n }\n }\n var themeAttributes = getThemeHtmlAttrs(themeState);\n Object.entries(themeAttributes).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n document.documentElement.setAttribute(key, value);\n });\n return function () {\n ColorModeObserver.unbind();\n if (fg('platform_increased-contrast-themes')) {\n ContrastModeObserver.unbind();\n }\n };\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default 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}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport tokens from '../artifacts/token-names';\nimport { CUSTOM_THEME_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from '../constants';\nimport { hash } from './hash';\nexport function findMissingCustomStyleElements(UNSAFE_themeOptions, mode) {\n var optionString = JSON.stringify(UNSAFE_themeOptions);\n var uniqueId = hash(optionString);\n var attrOfMissingCustomStyles = [];\n (mode === 'auto' ? ['light', 'dark'] : [mode]).forEach(function (themeId) {\n var element = document.head.querySelector(\"style[\".concat(CUSTOM_THEME_ATTRIBUTE, \"=\\\"\").concat(uniqueId, \"\\\"][\").concat(THEME_DATA_ATTRIBUTE, \"=\\\"\").concat(themeId, \"\\\"]\"));\n if (element) {\n // Append the existing custom styles to take precedence over others\n document.head.appendChild(element);\n } else {\n attrOfMissingCustomStyles.push(themeId);\n }\n });\n return attrOfMissingCustomStyles;\n}\nexport function limitSizeOfCustomStyleElements(sizeThreshold) {\n var styleTags = _toConsumableArray(Array.from(document.head.querySelectorAll(\"style[\".concat(CUSTOM_THEME_ATTRIBUTE, \"][\").concat(THEME_DATA_ATTRIBUTE, \"]\"))));\n if (styleTags.length < sizeThreshold) {\n return;\n }\n styleTags.slice(0, styleTags.length - (sizeThreshold - 1)).forEach(function (element) {\n return element.remove();\n });\n}\nexport function reduceTokenMap(tokenMap, themeRamp) {\n return Object.entries(tokenMap).reduce(function (acc, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cssVar = tokens[key];\n return cssVar ? \"\".concat(acc, \"\\n \").concat(cssVar, \": \").concat(typeof value === 'string' ? value : themeRamp[value], \";\") : acc;\n }, '');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport themeConfig from '../theme-config';\n\n/**\n * Finds any matching increased contrast theme available for a selected theme.\n */\nexport default function getIncreasedContrastTheme(themeId) {\n var _Object$entries$find;\n return (_Object$entries$find = Object.entries(themeConfig).find(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n increasesContrastFor = _ref2[1].increasesContrastFor;\n return increasesContrastFor === themeId;\n })) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[1].id;\n}","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport getIncreasedContrastTheme from './get-increased-contrast-theme';\nexport var getThemePreferences = function getThemePreferences(themeState) {\n var colorMode = themeState.colorMode,\n contrastMode = themeState.contrastMode,\n dark = themeState.dark,\n light = themeState.light,\n shape = themeState.shape,\n spacing = themeState.spacing,\n typography = themeState.typography;\n var autoColorModeThemes = [light, dark];\n var themePreferences = [];\n if (colorMode === 'auto') {\n if (contrastMode !== 'no-preference' && fg('platform_increased-contrast-themes')) {\n autoColorModeThemes.forEach(function (normalTheme) {\n var increasedContrastTheme = getIncreasedContrastTheme(normalTheme);\n if (increasedContrastTheme) {\n autoColorModeThemes.push(increasedContrastTheme);\n }\n });\n }\n themePreferences.push.apply(themePreferences, autoColorModeThemes);\n } else {\n themePreferences.push(themeState[colorMode]);\n if (contrastMode !== 'no-preference' && fg('platform_increased-contrast-themes')) {\n var increasedContrastTheme = getIncreasedContrastTheme(themeState[colorMode]);\n if (increasedContrastTheme) {\n themePreferences.push(increasedContrastTheme);\n }\n }\n }\n [shape, spacing, typography].forEach(function (themeId) {\n if (themeId) {\n themePreferences.push(themeId);\n }\n });\n return _toConsumableArray(new Set(themePreferences));\n};\nexport var getThemeOverridePreferences = function getThemeOverridePreferences(_themeState) {\n var themeOverridePreferences = [];\n return _toConsumableArray(new Set(themeOverridePreferences));\n};","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport { themeStateDefaults } from './theme-config';\nimport { isValidBrandHex } from './utils/color-utils';\nimport configurePage from './utils/configure-page';\nimport { findMissingCustomStyleElements } from './utils/custom-theme-loading-utils';\nimport { getThemeOverridePreferences, getThemePreferences } from './utils/get-theme-preferences';\nimport { loadAndAppendThemeCss } from './utils/theme-loading';\n\n/**\n * Sets the theme globally at runtime. This updates the `data-theme` and `data-color-mode` attributes on your page's <html> tag.\n *\n * @param {Object<string, string>} themeState The themes and color mode that should be applied.\n * @param {string} themeState.colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.contrastMode The contrast mode theme to be applied. If set to `auto`, the theme applied will be determined by the OS setting.set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.dark The color theme to be applied when the color mode resolves to 'dark'.\n * @param {string} themeState.light The color theme to be applied when the color mode resolves to 'light'.\n * @param {string} themeState.shape The shape theme to be applied.\n * @param {string} themeState.spacing The spacing theme to be applied.\n * @param {string} themeState.typography The typography theme to be applied.\n * @param {Object} themeState.UNSAFE_themeOptions The custom branding options to be used for custom theme generation\n * @param {function} themeLoader Callback function used to override the default theme loading functionality.\n *\n * @returns A Promise of an unbind function, that can be used to stop listening for changes to system theme.\n *\n * @example\n * ```\n * setGlobalTheme({colorMode: 'auto', light: 'light', dark: 'dark', spacing: 'spacing'});\n * ```\n */\nvar setGlobalTheme = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var _ref2,\n _ref2$colorMode,\n colorMode,\n _ref2$contrastMode,\n contrastMode,\n _ref2$dark,\n dark,\n _ref2$light,\n light,\n _ref2$shape,\n shape,\n _ref2$spacing,\n spacing,\n _ref2$typography,\n typography,\n _ref2$UNSAFE_themeOpt,\n UNSAFE_themeOptions,\n themeLoader,\n themeState,\n themePreferences,\n loadingStrategy,\n loadingTasks,\n mode,\n attrOfMissingCustomStyles,\n themeOverridePreferences,\n _iterator,\n _step,\n themeId,\n autoUnbind,\n _args3 = arguments;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _ref2 = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {}, _ref2$colorMode = _ref2.colorMode, colorMode = _ref2$colorMode === void 0 ? themeStateDefaults['colorMode'] : _ref2$colorMode, _ref2$contrastMode = _ref2.contrastMode, contrastMode = _ref2$contrastMode === void 0 ? themeStateDefaults['contrastMode'] : _ref2$contrastMode, _ref2$dark = _ref2.dark, dark = _ref2$dark === void 0 ? themeStateDefaults['dark'] : _ref2$dark, _ref2$light = _ref2.light, light = _ref2$light === void 0 ? themeStateDefaults['light'] : _ref2$light, _ref2$shape = _ref2.shape, shape = _ref2$shape === void 0 ? themeStateDefaults['shape'] : _ref2$shape, _ref2$spacing = _ref2.spacing, spacing = _ref2$spacing === void 0 ? themeStateDefaults['spacing'] : _ref2$spacing, _ref2$typography = _ref2.typography, typography = _ref2$typography === void 0 ? themeStateDefaults['typography']() : _ref2$typography, _ref2$UNSAFE_themeOpt = _ref2.UNSAFE_themeOptions, UNSAFE_themeOptions = _ref2$UNSAFE_themeOpt === void 0 ? themeStateDefaults['UNSAFE_themeOptions'] : _ref2$UNSAFE_themeOpt;\n themeLoader = _args3.length > 1 ? _args3[1] : undefined;\n // CLEANUP: Remove. This blocks application of increased contrast themes\n // without the feature flag enabled.\n if (!fg('platform_increased-contrast-themes')) {\n if (light === 'light-increased-contrast') {\n light = 'light';\n }\n if (dark === 'dark-increased-contrast') {\n dark = 'dark';\n }\n }\n themeState = {\n colorMode: colorMode,\n contrastMode: contrastMode,\n dark: dark,\n light: light,\n shape: shape,\n spacing: spacing,\n typography: typography,\n UNSAFE_themeOptions: themeLoader ? undefined : UNSAFE_themeOptions\n }; // Determine what to load and loading strategy\n themePreferences = getThemePreferences(themeState);\n loadingStrategy = themeLoader ? themeLoader : loadAndAppendThemeCss; // Load standard themes\n loadingTasks = themePreferences.map( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(themeId) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return loadingStrategy(themeId);\n case 2:\n return _context.abrupt(\"return\", _context.sent);\n case 3:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }()); // Load custom themes if needed\n if (!themeLoader && UNSAFE_themeOptions && isValidBrandHex(UNSAFE_themeOptions === null || UNSAFE_themeOptions === void 0 ? void 0 : UNSAFE_themeOptions.brandColor)) {\n mode = colorMode || themeStateDefaults['colorMode'];\n attrOfMissingCustomStyles = findMissingCustomStyleElements(UNSAFE_themeOptions, mode);\n if (attrOfMissingCustomStyles.length > 0) {\n // Load custom theme styles\n loadingTasks.push(_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var _yield$import, loadAndAppendCustomThemeCss;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return import( /* webpackChunkName: \"@atlaskit-internal_atlassian-custom-theme\" */\n './custom-theme');\n case 2:\n _yield$import = _context2.sent;\n loadAndAppendCustomThemeCss = _yield$import.loadAndAppendCustomThemeCss;\n loadAndAppendCustomThemeCss({\n colorMode: attrOfMissingCustomStyles.length === 2 ? 'auto' :\n // only load the missing custom theme styles\n attrOfMissingCustomStyles[0],\n UNSAFE_themeOptions: UNSAFE_themeOptions\n });\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }))());\n }\n }\n _context3.next = 10;\n return Promise.all(loadingTasks);\n case 10:\n // Load override themes after standard themes\n themeOverridePreferences = getThemeOverridePreferences(themeState);\n _iterator = _createForOfIteratorHelper(themeOverridePreferences);\n _context3.prev = 12;\n _iterator.s();\n case 14:\n if ((_step = _iterator.n()).done) {\n _context3.next = 20;\n break;\n }\n themeId = _step.value;\n _context3.next = 18;\n return loadingStrategy(themeId);\n case 18:\n _context3.next = 14;\n break;\n case 20:\n _context3.next = 25;\n break;\n case 22:\n _context3.prev = 22;\n _context3.t0 = _context3[\"catch\"](12);\n _iterator.e(_context3.t0);\n case 25:\n _context3.prev = 25;\n _iterator.f();\n return _context3.finish(25);\n case 28:\n autoUnbind = configurePage(themeState);\n return _context3.abrupt(\"return\", autoUnbind);\n case 30:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[12, 22, 25, 28]]);\n }));\n return function setGlobalTheme() {\n return _ref.apply(this, arguments);\n };\n}();\nexport default setGlobalTheme;","import { themeStateDefaults } from './theme-config';\nimport configurePage from './utils/configure-page';\nimport { getThemePreferences } from './utils/get-theme-preferences';\n\n/**\n * Synchronously sets the theme globally at runtime. Themes are not loaded;\n * use `getThemeStyles` and other server-side utilities to generate and load them.\n *\n * @param {Object<string, string>} themeState The themes and color mode that should be applied.\n * @param {string} themeState.colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.dark The color theme to be applied when the color mode resolves to 'dark'.\n * @param {string} themeState.light The color theme to be applied when the color mode resolves to 'light'.\n * @param {string} themeState.shape The shape theme to be applied.\n * @param {string} themeState.spacing The spacing theme to be applied.\n * @param {string} themeState.typography The typography theme to be applied.\n * @param {Object} themeState.UNSAFE_themeOptions The custom branding options to be used for custom theme generation\n * @param {function} themeLoader Callback function used to override the default theme loading functionality.\n *\n * @returns An unbind function, that can be used to stop listening for changes to system theme.\n *\n * @example\n * ```\n * enableGlobalTheme({colorMode: 'auto', light: 'light', dark: 'dark', spacing: 'spacing'});\n * ```\n */\nvar enableGlobalTheme = function enableGlobalTheme() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$colorMode = _ref.colorMode,\n colorMode = _ref$colorMode === void 0 ? themeStateDefaults['colorMode'] : _ref$colorMode,\n _ref$contrastMode = _ref.contrastMode,\n contrastMode = _ref$contrastMode === void 0 ? themeStateDefaults['contrastMode'] : _ref$contrastMode,\n _ref$dark = _ref.dark,\n dark = _ref$dark === void 0 ? themeStateDefaults['dark'] : _ref$dark,\n _ref$light = _ref.light,\n light = _ref$light === void 0 ? themeStateDefaults['light'] : _ref$light,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? themeStateDefaults['shape'] : _ref$shape,\n _ref$spacing = _ref.spacing,\n spacing = _ref$spacing === void 0 ? themeStateDefaults['spacing'] : _ref$spacing,\n _ref$typography = _ref.typography,\n typography = _ref$typography === void 0 ? themeStateDefaults['typography']() : _ref$typography,\n _ref$UNSAFE_themeOpti = _ref.UNSAFE_themeOptions,\n UNSAFE_themeOptions = _ref$UNSAFE_themeOpti === void 0 ? themeStateDefaults['UNSAFE_themeOptions'] : _ref$UNSAFE_themeOpti;\n var themeLoader = arguments.length > 1 ? arguments[1] : undefined;\n var themeState = {\n colorMode: colorMode,\n contrastMode: contrastMode,\n dark: dark,\n light: light,\n shape: shape,\n spacing: spacing,\n typography: typography,\n UNSAFE_themeOptions: themeLoader ? undefined : UNSAFE_themeOptions\n };\n\n // Determine what to load and call theme loader\n var themePreferences = getThemePreferences(themeState);\n if (themeLoader) {\n themePreferences.map(function (themeId) {\n return themeLoader(themeId);\n });\n }\n var autoUnbind = configurePage(themeState);\n return autoUnbind;\n};\nexport default enableGlobalTheme;","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport { themeIdsWithOverrides, themeStateDefaults } from './theme-config';\nimport { isValidBrandHex } from './utils/color-utils';\nimport { getThemeOverridePreferences, getThemePreferences } from './utils/get-theme-preferences';\nimport { loadThemeCss } from './utils/theme-loading';\n/**\n * Takes an object containing theme preferences, and returns an array of objects for use in applying styles to the document head.\n * Only supplies the color themes necessary for initial render, based on the current themeState. I.e. if in light mode, dark mode themes are not returned.\n *\n * @param {Object<string, string>} themeState The themes and color mode that should be applied.\n * @param {string} themeState.colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.dark The color theme to be applied when the color mode resolves to 'dark'.\n * @param {string} themeState.light The color theme to be applied when the color mode resolves to 'light'.\n * @param {string} themeState.shape The shape theme to be applied.\n * @param {string} themeState.spacing The spacing theme to be applied.\n * @param {string} themeState.typography The typography theme to be applied.\n * @param {Object} themeState.UNSAFE_themeOptions The custom branding options to be used for custom theme generation\n *\n * @returns A Promise of an object array, containing theme IDs, data-attributes to attach to the theme, and the theme CSS.\n * If an error is encountered while loading themes, the themes array will be empty.\n */\nvar getThemeStyles = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(preferences) {\n var themePreferences, themeOverridePreferences, themeState, results;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n themeOverridePreferences = [];\n if (preferences === 'all') {\n themePreferences = themeIdsWithOverrides;\n\n // CLEANUP: Remove\n if (!fg('platform_increased-contrast-themes')) {\n themePreferences = themePreferences.filter(function (n) {\n return n !== 'light-increased-contrast' && n !== 'dark-increased-contrast';\n });\n }\n themePreferences = themePreferences.filter(function (n) {\n return n !== 'light-brand-refresh' && n !== 'dark-brand-refresh';\n });\n } else {\n themeState = {\n colorMode: (preferences === null || preferences === void 0 ? void 0 : preferences.colorMode) || themeStateDefaults['colorMode'],\n contrastMode: (preferences === null || preferences === void 0 ? void 0 : preferences.contrastMode) || themeStateDefaults['contrastMode'],\n dark: (preferences === null || preferences === void 0 ? void 0 : preferences.dark) || themeStateDefaults['dark'],\n light: (preferences === null || preferences === void 0 ? void 0 : preferences.light) || themeStateDefaults['light'],\n shape: (preferences === null || preferences === void 0 ? void 0 : preferences.shape) || themeStateDefaults['shape'],\n spacing: (preferences === null || preferences === void 0 ? void 0 : preferences.spacing) || themeStateDefaults['spacing'],\n typography: (preferences === null || preferences === void 0 ? void 0 : preferences.typography) || themeStateDefaults['typography']()\n };\n themePreferences = getThemePreferences(themeState);\n themeOverridePreferences = getThemeOverridePreferences(themeState);\n }\n _context3.next = 4;\n return Promise.all([].concat(_toConsumableArray([].concat(_toConsumableArray(themePreferences), _toConsumableArray(themeOverridePreferences)).map( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(themeId) {\n var css;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return loadThemeCss(themeId);\n case 3:\n css = _context.sent;\n return _context.abrupt(\"return\", {\n id: themeId,\n attrs: {\n 'data-theme': themeId\n },\n css: css\n });\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n return _context.abrupt(\"return\", undefined);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 7]]);\n }));\n return function (_x2) {\n return _ref2.apply(this, arguments);\n };\n }())), [\n // Add custom themes if they're present\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var _preferences$UNSAFE_t;\n var _yield$import, getCustomThemeStyles, customThemeStyles;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(preferences !== 'all' && preferences !== null && preferences !== void 0 && preferences.UNSAFE_themeOptions && isValidBrandHex(preferences === null || preferences === void 0 || (_preferences$UNSAFE_t = preferences.UNSAFE_themeOptions) === null || _preferences$UNSAFE_t === void 0 ? void 0 : _preferences$UNSAFE_t.brandColor))) {\n _context2.next = 15;\n break;\n }\n _context2.prev = 1;\n _context2.next = 4;\n return import( /* webpackChunkName: \"@atlaskit-internal_atlassian-custom-theme\" */\n './custom-theme');\n case 4:\n _yield$import = _context2.sent;\n getCustomThemeStyles = _yield$import.getCustomThemeStyles;\n _context2.next = 8;\n return getCustomThemeStyles({\n colorMode: (preferences === null || preferences === void 0 ? void 0 : preferences.colorMode) || themeStateDefaults['colorMode'],\n UNSAFE_themeOptions: preferences === null || preferences === void 0 ? void 0 : preferences.UNSAFE_themeOptions\n });\n case 8:\n customThemeStyles = _context2.sent;\n return _context2.abrupt(\"return\", customThemeStyles);\n case 12:\n _context2.prev = 12;\n _context2.t0 = _context2[\"catch\"](1);\n return _context2.abrupt(\"return\", undefined);\n case 15:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[1, 12]]);\n }))()]));\n case 4:\n results = _context3.sent;\n return _context3.abrupt(\"return\", results.flat().filter(function (theme) {\n return theme !== undefined;\n }));\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function getThemeStyles(_x) {\n return _ref.apply(this, arguments);\n };\n}();\nexport default getThemeStyles;","import { fg } from '@atlaskit/platform-feature-flags';\nimport { COLOR_MODE_ATTRIBUTE, CONTRAST_MODE_ATTRIBUTE } from './constants';\nimport { darkModeMediaQuery, moreContrastMediaQuery } from './utils/theme-loading';\n\n/**\n * Provides a script that, when executed before paint, sets the `data-color-mode` attribute based on the current system theme,\n * to enable SSR support for automatic theme switching, avoid a flash of un-themed content on first paint.\n *\n * @param {string} colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n *\n * @returns {string} A string to be added to the innerHTML of a script tag in the document head\n */\nvar getSSRAutoScript = function getSSRAutoScript(colorMode, contrastMode) {\n if (colorMode !== 'auto' && contrastMode !== 'auto') {\n return undefined;\n }\n var setColorMode = colorMode === 'auto' ? \"\\n try {\\n const darkModeMql = window.matchMedia('\".concat(darkModeMediaQuery, \"');\\n const colorMode = darkModeMql.matches ? 'dark' : 'light';\\n document.documentElement.setAttribute('\").concat(COLOR_MODE_ATTRIBUTE, \"', colorMode);\\n } catch (e) {}\") : '';\n var setContrastMode = contrastMode === 'auto' && fg('platform_increased-contrast-themes') ? \"\\n try {\\n const contrastModeMql = window.matchMedia('\".concat(moreContrastMediaQuery, \"');\\n const contrastMode = contrastModeMql.matches ? 'more' : 'no-preference';\\n document.documentElement.setAttribute('\").concat(CONTRAST_MODE_ATTRIBUTE, \"', contrastMode);\\n } catch (e) {}\") : '';\n return \"(() => {\".concat(setColorMode).concat(setContrastMode, \"})()\");\n};\nexport default getSSRAutoScript;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { COLOR_MODE_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from './constants';\nimport { themeColorModes } from './theme-config';\nimport { themeStringToObject } from './theme-state-transformer';\nvar isThemeColorMode = function isThemeColorMode(colorMode) {\n return themeColorModes.find(function (mode) {\n return mode === colorMode;\n }) !== undefined;\n};\nvar getGlobalTheme = function getGlobalTheme() {\n if (typeof document === 'undefined') {\n return {};\n }\n var element = document.documentElement;\n var colorMode = element.getAttribute(COLOR_MODE_ATTRIBUTE) || '';\n var theme = element.getAttribute(THEME_DATA_ATTRIBUTE) || '';\n return _objectSpread(_objectSpread({}, themeStringToObject(theme)), isThemeColorMode(colorMode) && {\n colorMode: colorMode\n });\n};\nexport default getGlobalTheme;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { COLOR_MODE_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from './constants';\nimport getGlobalTheme from './get-global-theme';\n/**\n * A MutationObserver which watches the `<html>` element for changes to the theme.\n *\n * In React, use the {@link useThemeObserver `useThemeObserver`} hook instead.\n *\n * @param {function} callback - A callback function which fires when the theme changes.\n *\n * @example\n * ```\n * const observer = new ThemeMutationObserver((theme) => {});\n * observer.observe();\n * ```\n */\nvar ThemeMutationObserver = /*#__PURE__*/function () {\n function ThemeMutationObserver(callback) {\n _classCallCheck(this, ThemeMutationObserver);\n _defineProperty(this, \"legacyObserver\", null);\n this.callback = callback;\n ThemeMutationObserver.callbacks.add(callback);\n }\n return _createClass(ThemeMutationObserver, [{\n key: \"observe\",\n value: function observe() {\n if (!ThemeMutationObserver.observer) {\n ThemeMutationObserver.observer = new MutationObserver(function () {\n var theme = getGlobalTheme();\n ThemeMutationObserver.callbacks.forEach(function (callback) {\n return callback(theme);\n });\n });\n // Observer only needs to be configured once\n ThemeMutationObserver.observer.observe(document.documentElement, {\n attributeFilter: [THEME_DATA_ATTRIBUTE, COLOR_MODE_ATTRIBUTE]\n });\n }\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n if (this.callback) {\n ThemeMutationObserver.callbacks.delete(this.callback);\n }\n if (ThemeMutationObserver.callbacks.size === 0 && ThemeMutationObserver.observer) {\n ThemeMutationObserver.observer.disconnect();\n ThemeMutationObserver.observer = null;\n }\n }\n }]);\n}();\n_defineProperty(ThemeMutationObserver, \"observer\", null);\n_defineProperty(ThemeMutationObserver, \"callbacks\", new Set());\nexport { ThemeMutationObserver as default };","const NAMESPACE = 'AJS';\nconst I18N_OBJECT_NAME = 'I18n';\n\nfunction initNamespace() {\n if (typeof window[NAMESPACE] !== 'object') {\n window[NAMESPACE] = {};\n }\n}\n\n/**\n * Makes given value available globally under window[NAMESPACE][name] attribute.\n * Keep in mind that this is needed for p2-plugin where chunks of AUI\n * can be loaded separately.\n *\n * In order for global namespace to work in `aui.prototyping.js` and\n * `aui.prototyping.nodeps.js` the proper exports need to be added to:\n * `packages/core/entry/aui.batch.prototyping.js`\n *\n * @param {string} name Name of the attribute\n * @param {any} value Value to expose globally\n * @returns exposed value\n */\nexport default function globalize(name, value) {\n initNamespace();\n\n return (window[NAMESPACE][name] = value);\n}\n\nexport function globalizeI18n(localI18n) {\n initNamespace();\n\n if (typeof window[NAMESPACE][I18N_OBJECT_NAME] !== 'object') {\n window[NAMESPACE][I18N_OBJECT_NAME] = {};\n }\n\n const globalI18n = window[NAMESPACE][I18N_OBJECT_NAME];\n\n for (const property in localI18n) {\n // AUI-5431 Add to global namespace, but do not override what is set by the WRM\n if (typeof globalI18n[property] === 'undefined') {\n globalI18n[property] = localI18n[property];\n }\n }\n\n return globalI18n;\n}\n","import { setGlobalTheme } from '@atlaskit/tokens';\n\nif (document.documentElement.hasAttribute('data-color-mode-auto')) {\n setGlobalTheme({ colorMode: 'auto' });\n}\n","import * as Tokens from '@atlaskit/tokens';\nimport globalize from '../internal/globalize';\n\nimport './design-tokens-init';\n\n// Export for NPM bundle, for which Webpack automatically puts those functions under AJS.DesignTokens\nexport const { setGlobalTheme } = Tokens;\n\n// Export for p2-plugin bundle, where we need to do put those functions under AJS.DesignTokens manually\nglobalize('DesignTokens', {\n setGlobalTheme,\n});\n"],"names":["root","factory","exports","module","define","amd","window","__assign","this","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","defineProperty","value","bindAll","bind_1","toOptions","capture","target","bindings","sharedOptions","unbinds","map","original","binding","options","getBinding","bind","forEach","unbind","_a","type","listener","addEventListener","removeEventListener","enumerable","get","bind_all_1","undefined","isArray","Array","obj","toString","defaultMaxListeners","init","_events","_conf","configure","conf","delimiter","_maxListeners","maxListeners","wildcard","newListener","verboseMemoryLeak","listenerTree","logPossibleMemoryLeak","count","eventName","errorMsg","process","emitWarning","e","Error","name","emitter","console","error","trace","EventEmitter","searchListenerTree","handlers","tree","leaf","len","branch","xTree","xxTree","isolatedBranch","endReached","listeners","typeLength","currentType","nextType","_listeners","push","concat","growListenerTree","split","slice","shift","warned","EventEmitter2","setMaxListeners","event","once","fn","_once","prependOnceListener","prepend","_many","many","ttl","prependMany","self","off","_origin","_on","emit","args","l","j","handler","al","_all","ns","emitAsync","Promise","resolve","promises","reject","all","on","prependListener","onAny","_onAny","prependAny","addListener","unshift","leafs","iLeaf","position","splice","recursivelyGarbageCollect","keys","key","Function","offAny","fns","removeListener","removeAllListeners","eventNames","listenerCount","listenersAny","_typeof","_regeneratorRuntime","__esModule","Op","hasOwn","desc","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","configurable","writable","err","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","arg","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","method","_invoke","AsyncIterator","PromiseImpl","invoke","record","result","__await","then","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","iter","val","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","_b","_c","_getInstance","_getStatsigGlobalFlag","_getStatsigGlobal","Log_1","__STATSIG__","statsigGlobal","flag","sdkKey","gbl","instances","Log","warn","firstInstance","GLOBAL_KEY","_window","_global","g","_globalThis","instance","_getStorageKey","_getUserStorageKey","Hashing_1","user","customKeyGenerator","cids","customIDs","parts","userID","sort","leftKey","rightKey","localeCompare","join","_DJB2","__awaiter","thisArg","_arguments","P","fulfilled","step","rejected","_makeDataAdapterResult","DataAdapterCore","StableID_1","StatsigUser_1","StorageProvider_1","TypedJsonParse_1","source","data","stableID","receivedAt","Date","now","fullUserHash","_getFullUserHash","_adapterName","_cacheSuffix","_options","_sdkKey","_lastModifiedStoreKey","_inMemoryCache","InMemoryCache","attach","_network","getDataSync","normalized","_normalizeUser","cacheKey","_getCacheKey","inMem","cache","_loadFromCache","add","setData","_getDataAsyncImpl","current","Storage","isReady","isReadyResolver","ops","_fetchAndPrepFromNetwork","timeoutMs","r","setTimeout","debug","race","_prefetchDataImpl","cachedResult","cachedData","isCacheValidFor204","_isCachedResultValidFor204","latest","_fetchFromNetwork","response","_typedJsonParse","_getSdkKey","StableID","has_updates","_writeToCache","getItem","setItem","JSON","stringify","_runLocalStorageCacheEviction","lastModifiedTimeMap","_getObjectFromStorage","evictable","_getEvictableKey","removeItem","_setObjectInStorage","_data","cached","provided","oldest","CACHE_LIMIT","merge","limit","reduce","prevKey","currKey","Diagnostics","MARKER_MAP","Map","ACT_START","ACT_END","DIAGNOSTICS_EVENT","_createMarker","action","timestamp","_addMarker","marker","markers","set","_safeGetField","field","_getMarkers","_markInitOverallStart","_markInitOverallEnd","success","evaluationDetails","message","_markInitNetworkReqStart","_markInitNetworkReqEnd","_markInitProcessStart","_markInitProcessEnd","_clearMarkers","delete","_formatError","code","_getDiagnosticsData","res","attempt","body","ok","statusCode","status","sdkRegion","headers","isDelta","includes","_enqueueDiagnosticsEvent","logger","sdk","overallInitDuration","latencyEvent","metadata","time","_makeDiagnosticsEvent","statsigOptions","enqueue","_fetchTxtRecords","FEATURE_ASSETS_DNS_QUERY","Uint8Array","DOMAIN_CHARS","MAX_START_LOOKUP","networkFunc","Accept","arrayBuffer","input","start","findIndex","byte","index","String","fromCharCode","_parseDnsResponse","ErrorBoundary","EXCEPTION_ENDPOINT","SDKType_1","StatsigMetadata_1","UNKNOWN_ERROR","_resolveError","_getStatsigOptionLoggingCopy","loggingCopy","entries","option","_emitter","_lastSeenError","_seen","Set","names","proto","getOwnPropertyNames","filter","prop","from","_getAllInstanceMethodNames","_capture","$EB","_onError","logError","tag","getLastSeenErrorAndReset","tempError","attachErrorIfNoneExists","task","catch","_d","_e","_f","_g","isError","resolvedError","has","networkConfig","preventAllNetworkTraffic","sdkType","SDKType","_get","statsigMetadata","StatsigMetadataProvider","stack","_getDescription","func","networkOverrideFunc","fetch","sdkVersion","impl","_error","EventLogger","CacheKey_1","NetworkConfig_1","SafeJs_1","StatsigEvent_1","StatsigOptionsCommon_1","UrlConfiguration_1","VisibilityObserving_1","EVENT_LOGGER_MAP","RetryFailedLogsTrigger","_safeFlushAndForget","flush","_safeRetryFailedLogs","_retryFailedLogs","_queue","_lastExposureTimeMap","_nonExposedChecks","_hasRunQuickFlush","_creationTime","_loggingEnabled","loggingEnabled","disableLogging","LoggingEnabledOption","disabled","browserOnly","_maxQueueSize","loggingBufferMaxSize","config","_logEventUrlConfig","UrlConfiguration","Endpoint","_rgstr","logEventUrl","api","logEventFallbackUrls","setLogEventCompressionMode","mode","setLoggingEnabled","_shouldLogEvent","_normalizeAndAppendEvent","_quickFlushIfNeeded","incrementNonExposureCount","isServerEnv","_isServerEnv","_subscribeToVisiblityChanged","visibility","_startBackgroundFlushInterval","_flushIntervalId","clearInterval","_appendAndResetNonExposedChecks","events","_sendEvents","_isExposureEvent","statsigEnvironment","userKey","previous","_saveFailedLogsToStorage","shouldUseBeacon","_isUnloading","isBeaconSupported","_sendEventsViaBeacon","_sendEventsViaPost","post","_getRequestData","beacon","urlConfig","retries","isCompressable","params","NetworkParam","EventCount","credentials","storageKey","trigger","privateAttributes","extras","currentPage","_getCurrentPageUrl","final","checks","includeCurrentPageUrlWithEvents","_getCurrentPageUrlSafe","flushInterval","loggingIntervalMs","intervalId","setInterval","_getSortedObject","_DJB2Object","TypingUtils_1","hash","charCodeAt","maxLevels","maxDepth","sortedObject","_typeOf","LogLevel","addTag","None","Warn","Info","Debug","level","createMemoKey","MemoPrefix","_gate","_dynamicConfig","_experiment","_layer","_paramStore","EXIST_KEYS","DO_NOT_MEMO_KEYS","prefix","NetworkDefault","_initialize","_download_config_specs","SdkKey","SdkType","SdkVersion","Time","SessionID","StatsigEncoded","IsGzipped","NetworkCore","__StatsigGlobal_1","Diagnostics_1","NetworkFallbackResolver_1","SDKFlags_1","SessionID_1","StatsigClientEventEmitter_1","RETRYABLE_CODES","_errorBoundary","_timeout","_netConfig","_leakyBucket","_lastUsedInitUrl","networkTimeoutMs","_fallbackResolver","NetworkFallbackResolver","_getLogEventCompressionMode","logEventCompressionMode","setErrorBoundary","errorBoundary","navigator","sendBeacon","getLastUsedInitUrlAndReset","tempUrl","_ensureValidSdkKey","argsInternal","_getInternalRequestArgs","url","_getPopulatedURL","nav","_tryEncodeBody","_tryToCompressBody","_sendRequest","endpoint","_isRateLimited","currentAttempt","abortController","AbortController","timeoutHandle","abort","populatedUrl","keepalive","signal","priority","_tryMarkInitStart","bucket","lastRequestTime","clearTimeout","text","_tryMarkInitEnd","tryBumpExpiryTime","errorMessage","controller","aborted","reason","_getErrorMessage","timedOut","tryFetchUpdatedFallbackInfo","fallbackUrl","getActiveFallbackUrl","ErrorTag","NetworkError","requestArgs","formattedErrorMsg","Math","min","_exponentialBackoff","compressionMode","disableCompression","LogEventCompressionMode","Disabled","Enabled","elapsed","leakedRequests","floor","RATE_LIMIT_MAX_REQ_COUNT","max","getUrl","SDK_VERSION","query","encodeURIComponent","win","_getWindowSafe","isStatsigEncodable","disableStatsigEncoding","btoa","CompressionStream","TextEncoder","isProxy","customUrl","fallbackUrls","flagEnabled","SDKFlags","Forced","_allowCompression","bytes","encode","stream","writer","getWriter","write","close","reader","readable","getReader","chunks","read","totalLength","acc","chunk","combined","offset","_populateRequestBody","sessionID","_isDomainFailure","DnsTxtQuery_1","DEFAULT_TTL_MS","lowerErrorMsg","toLowerCase","_getFallbackInfoStorageKey","_tryWriteFallbackInfoToCache","hashKey","_fallbackInfo","_dnsQueryCooldowns","_networkOverrideFunc","expiryTime","parse","_readFallbackInfoFromCache","getChecksum","urlConfigChecksum","urls","_tryFetchFallbackUrlsFromNetwork","newUrl","_pickNewFallbackUrl","_updateFallbackInfoWithNewUrl","newFallbackInfo","previousInfo","previousUrl","cooldown","records","path","urlString","URL","pathname","_extractPathFromUrl","defaultUrl","startsWith","endpointDnsKey","baseUrl","endsWith","currentFallbackInfo","previouslyUsed","currentFallbackUrl","found","loopUrl","FLAGMAP","setFlags","flags","flagKey","SDK_CLIENT","suffix","_setClientType","client","_setBindingType","_getUnloadEvent","_addDocumentEventListenerSafe","_addWindowEventListenerSafe","_getDocumentSafe","document","isNode","versions","node","EdgeRuntime","doc","location","href","StatsigSession","UUID_1","MAX_SESSION_IDLE_TIME","MAX_SESSION_AGE","PROMISE_MAP","_createSessionTimeout","duration","$emt","_getSessionIDStorageKey","_loadFromStorage","getUUID","startTime","lastUpdate","_loadSession","session","_isIdle","_hasRunTooLong","_persistToStorage","idleTimeoutID","ageTimeoutID","lifetime","_bumpSession","overrideInitialSessionID","override","_overrideSessionId","COOKIE_ENABLED_MAP","DISABLED_MAP","_getStableIDStorageKey","_persistToCookie","expiryDate","setFullYear","getFullYear","cookie","_getCookieName","toUTCString","cookiesEnabled","randomID","random","cookies","trim","decodeURIComponent","_loadFromCookie","setOverride","_setCookiesEnabled","_setDisabled","StatsigClientBase","ErrorBoundary_1","EventLogger_1","MemoKey_1","adapter","network","loadingStatus","_initializePromise","logLevel","disableStorage","initialSessionID","storageProvider","_setProvider","enableCookies","disableStableID","_memoCache","overrideAdapter","_logger","dataAdapter","loadFromStorage","_primeReadyRipcord","inst","_assignGlobalInstance","updateRuntimeOptions","shutdown","_setStatus","indexOf","$on","__isInternal","barrier","newStatus","_enqueueExposure","exposure","disableExposureLog","_memoize","disableEvaluationMemoization","memoKey","DataAdapterCachePrefix","_createLayerParameterExposure","_createConfigExposure","_mapExposures","_createGateExposure","CONFIG_EXPOSURE_NAME","GATE_EXPOSURE_NAME","LAYER_EXPOSURE_NAME","_createExposure","details","secondaryExposures","bootstrapMetadata","_addEvaluationDetailsToMetadata","exposures","exposureMapping","gate","gateValue","ruleID","__evaluation","version","secondary_exposures","passed","layer","parameterName","evaluation","isExplicit","explicit_parameters","allocatedExperiment","undelegated_secondary_exposures","allocated_experiment_name","parameterRuleIDs","parameter_rule_ids","isExplicitParameter","lcut","additions","always","_makeTypedGet","_mergeOverride","_makeLayer","_makeExperiment","_makeDynamicConfig","_makeFeatureGate","_makeEvaluation","rule_id","exposeFunc","param","fallback","_isTypeMatch","idType","id_type","groupName","group_name","__value","overridden","UPDATE_DETAIL_ERROR_MESSAGES","createUpdateDetails","initDuration","sourceUrl","warnings","NO_NETWORK_DATA","fallbackEnvironment","copy","environment","tier","inMemoryStore","_inMemoryProvider","getProviderName","getAllKeys","_localStorageProvider","localStorage","_main","_current","_inMemoryBreaker","statsigKeys","newProvider","isDisabled","guard","typeName","a","b","typeOf","x","crypto","randomUUID","d","getTime","d2","performance","replace","c","ENDPOINT_DNS_KEY_MAP","customApi","defaultApi","fallbacks","_notifyVisibilityChanged","_isCurrentlyVisible","FOREGROUND","BACKGROUND","LISTENERS","isUnloading","visibilityState","__createBinding","o","m","k","k2","getOwnPropertyDescriptor","__exportStar","_resolveDeltasResponse","client_core_1","_deleteEntriesInRecord","deltasString","deltas","hadBadDeltaChecksum","resolved","deleted_gates","feature_gates","deleted_configs","dynamic_configs","deleted_layers","layer_configs","_handleDeletedEntries","_mergeDeltasIntoCache","actualChecksum","checksumV2","badChecksum","badMergedConfigs","badFullResponse","deltas_full_response","_rawValues","_values","_source","_lcut","_receivedAt","_bootstrapMetadata","_warnings","finalize","getValues","setValues","_extractBootstrapMetadata","_setWarningState","sdk_flags","getWarnings","size","getGate","_getDetailedStoreResult","getConfig","getLayer","getParamStore","param_stores","getSource","getExposureMapping","sdkInfo","generatorSDKInfo","lookup","_getDetails","bootstrapUser","getCurrentSourceDetails","sourceDetails","isUnrecognized","EvaluationResponseDeltas_1","StatsigNetwork","super","_option","_initializeUrlConfig","initializeUrl","initializeFallbackUrls","fetchEvaluations","initializeHashAlgorithm","deltasResponseRequested","full_checksum","hasHashChanged","hash_used","sinceTime","previousDerivedFields","derived_fields","partialUserMatchSinceTime","_fetchEvaluations","_makeParamStoreGetter","NO_EXPOSURE_OPT","_shouldLogExposure","_shouldReturnFallback","paramName","param_type","ref_type","_getMappedStaticValue","getFeatureGate","gate_name","pass_value","fail_value","_getMappedGateValue","getDynamicConfig","config_name","param_name","_getMappedDynamicConfigValue","getExperiment","experiment_name","_getMappedExperimentValue","layer_name","_getMappedLayerValue","EvaluationStore_1","Network_1","ParamStoreGetterFactory_1","StatsigEvaluationsDataAdapter_1","StatsigClient","default","StatsigEvaluationsDataAdapter","_getFeatureGateImpl","_getDynamicConfigImpl","_getExperimentImpl","_getLayerImpl","getParameterStore","_getParameterStoreImpl","_store","_user","_configureUser","plugins","plugin","initializeSync","updateUserSync","initializeAsync","_initializeAsyncImpl","_resetForUser","_finalizeUpdate","disable","disableBackgroundCacheRefresh","_runPostUpdate","updateUserAsync","initiator","getDataAsync","isUsingNetworkValues","getContext","checkGate","logEvent","eventOrName","originalUser","stableIdOverride","getGateOverride","getDynamicConfigOverride","dynamicConfig","experiment","getExperimentOverride","getLayerOverride","configuration","paramStore","__configuration","getParamStoreOverride","prefetchData","setDataLegacy","customUserCacheKeyFunc","StatsigClient_1","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","_classCallCheck","Constructor","_toPropertyKey","hint","prim","toPrimitive","Number","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_defineProperty","_objectWithoutProperties","excluded","sourceKeys","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_arrayLikeToArray","arr","arr2","_unsupportedIterableToArray","minLen","test","_slicedToArray","_i","_s","_x","_r","_arr","_n","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","ownKeys","_objectSpread","getOwnPropertyDescriptors","defineProperties","ALL_FEATURE_VALUES","Subscriptions","gateName","callback","_this","fireGateExposure","eventToValue","wrapCallback","experimentName","defaultValue","getExperimentValue","_this2","experimentEventName","fireExperimentExposure","_this3","_this4","isFedRamp","_global$location","global","env","MICROS_PERIMETER","UNSAFE_ATL_CONTEXT_BOUNDARY","matches","hostname","match","EvaluationReason","FeatureGateEnvironment","PerimeterType","_excluded","getOptionsWithDefaults","perimeter","FEDRAMP_MODERATE","COMMERCIAL","shallowEquals","objectA","objectB","aEntries","bEntries","ascendingKeyOrder","_ref","_ref2","key1","key2","toStatsigUser","identifiers","customAttributes","custom","atlassianAccountId","migrateInitializationOptions","disableCurrentPageLogging","loggingIntervalMillis","localMode","eventLoggingApi","eventLoggingApiForRetries","disableLocalStorage","ignoreWindowUndefined","disableAllLogging","initTimeoutMs","disableNetworkKeepalive","overrideStableID","disableErrorLogging","disableAutoMetricsLogging","evaluationReasonMappings","_ref5","_ref6","migrateEvaluationDetails","_evaluationReasonMapp","_evaluationReasonMapp2","_details$receivedAt","reasonLower","find","_ref7","Unknown","migrateSecondaryExposures","DynamicConfig","configName","configValue","allocatedExperimentName","onDefaultValueFallback","_name","_ruleID","_secondaryExposures","_allocatedExperimentName","_evaluationDetails","_onDefaultValueFallback","typeGuard","_this$_onDefaultValue2","getValue","_this$_onDefaultValue","expectedType","actualType","fireExposure","_experiment$__evaluat","_experiment$__evaluat2","_experiment$groupName","Layer","layerValue","logParameterFunction","undelegatedSecondaryExposures","explicitParameters","_logParameterFunction","_value","_undelegatedSecondaryExposures","_explicitParameters","logAndReturn","_logLayerParameterExposure","_this$_logParameterFu","_layer$__evaluation$s","_layer$__evaluation","_layer$__evaluation$u","_layer$__evaluation2","_layer$__evaluation3","_layer$__evaluation4","CLIENT_VERSION","_possibleConstructorReturn","ReferenceError","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_construct","Parent","Class","Reflect","construct","sham","Proxy","Boolean","valueOf","_wrapNativeSuper","_cache","Wrapper","_callSuper","ResponseError","_Error","Fetcher","_fetchClientSdk","_callee","fetcherOptions","targetApp","_context","fetchRequest","t0","_fetchExperimentValues","_callee2","requestBody","_context2","_x2","_x3","_x4","_handleResponseError","_callee3","_context3","_x5","_extractResponseBody","_callee4","_context4","_x6","serviceEnv","Production","Staging","Development","_fetchRequest","_callee5","fetchTimeout","abortSignal","_context5","getBaseUrl","useGatewayURL","fetchTimeoutMs","AbortSignal","timeout","apiKey","handleResponseError","extractResponseBody","_x7","_x8","_x9","_x10","property","receiver","base","NoFetchDataAdapter","_DataAdapterCore","bootstrapResult","_prefetchData","_getDataAsync","_fetchFromNetwork2","_result","_createForOfIteratorHelper","F","f","u","return","LOCAL_OVERRIDE_REASON","LEGACY_LOCAL_STORAGE_KEY","djb2MapKey","kind","PersistentOverrideAdapter","localStorageKey","_overrides","gates","configs","layers","_djb2Map","_localStorageKey","json","_unused","merged","_len","allOverrides","_key","_allOverrides","overrides","_i2","_Object$entries","_overrides$gates","_Object$entries$_i","_i3","_Object$entries2","_overrides$configs","_Object$entries2$_i","_i4","_Object$entries3","_overrides$layers","_Object$entries3$_i","_name2","_value2","storedOverrides","mergeOverrides","parseStoredOverrides","_unused2","_i5","_Object$values","_step","container","allKeys","_iterator","applyOverrides","_unused3","newOverrides","clear","_i6","_Object$entries4","_Object$entries4$_i","containerName","_i7","_Object$entries5","_Object$entries5$_i","saveOverrides","_this$_overrides$gate","_getConfigOverride","_unused4","_this$_overrides$laye","_lookup$current$name","_FeatureGates","DEFAULT_CLIENT_KEY","Client","_ref$localStorageKey","statsigClient","subscriptions","anyUpdated","clientOptions","clientOptionsWithDefaults","initPromise","initOptions","initCompleted","initWithDefaults","finally","totalTime","fireClientEvent","_initializeWithProvider","provider","setClientVersion","setApplyUpdateCallback","applyUpdateCallback","initWithProvider","getApiKey","experimentsResult","assertInitialized","setBootstrapData","experimentValues","statsigValuesUpdated","_analyticsWebClient","analyticsWebClient","attributes","clientVersion","sendOperationalEvent","actionSubject","tags","_initializeFromValues","initializeValues","_this5","_args3","initFromValues","_updateUser","fetchOptions","fetchOptionsWithDefaults","initializeValuesProducer","fetchExperimentValues","customAttributesFromFetch","updateUserUsingInitializeValuesProducer","_x11","_x12","_x13","_updateUserWithProvider","_this6","setProfile","getExperimentValues","_x14","_x15","_updateUserWithValues","_callee6","_args6","_context6","_x16","_x17","_options$fireGateExpo","hasCheckGateErrorOccurred","msg","_options$fireExperime","fromExperiment","hasGetExperimentErrorOccurred","hasGetExperimentValueErrorOccurred","layerName","_this$statsigClient$g","_this$statsigClient","overrideGate","removeGateOverride","overrideDynamicConfig","removeDynamicConfigOverride","setOverrides","getOverrides","removeAllOverrides","currentIdentifiers","currentAttributes","_this7","onGateUpdated","_options$fireGateExpo2","manuallyLogGateExposure","_this8","onExperimentValueUpdated","_options$fireExperime2","manuallyLogExperimentExposure","onAnyUpdated","_init","_callee7","fromValuesClientOptions","customAttributesFromResult","clientSdkKeyPromise","experimentValuesPromise","_yield$Promise$all","_yield$Promise$all2","experimentValuesResult","_context7","fetchClientSdk","clientSdkKey","_x18","_x19","_x20","_initWithProvider","_callee8","baseClientOptions","_yield$Promise$all3","_yield$Promise$all4","_context8","getClientSdkKey","_x21","_x22","_x23","_x24","_initFromValues","_callee9","_newClientOptions$net","newClientOptions","restClientOptions","_args9","_context9","initFromStoredOverrides","updateUserCompletionCallback","stableId","_x25","_x26","_x27","_updateUserUsingInitializeValuesProducer","_callee11","getInitializeValues","originalInitPromise","initializeValuesPromise","updateUserPromise","_this9","_context11","isCurrentUser","updateStatsigClientUser","_callee10","_context10","_x28","_x29","_x30","_updateStatsigClientUser","_callee12","_this$initOptions","_this$initOptions$upd","_updateUserCompletion","_ref4","errMsg","_context12","t1","_x31","_x32","_x33","_options$fireLayerExp","fireLayerExposure","fromLayer","hasGetLayerErrorOccurred","hasGetLayerValueErrorOccurred","FeatureGates","isGateExist","isExperimentExist","__CRITERION__","getFeatureFlagOverride","overrideValue","getExperimentValueOverride","initializeCalled","initializeCompleted","initialize","initializeWithProvider","initializeFromValues","manuallyLogLayerExposure","shutdownStatsig","clearGateOverride","overrideConfig","clearConfigOverride","clearAllOverrides","updateUser","updateUserWithProvider","updateUserWithValues","getPackageVersion","getLayerValue","boundFGJS","__FEATUREGATES_JS__","_boundFGJS","_boundFGJS$getPackage","boundVersion","_process","_process2","DEBUG_MODE","JEST_WORKER_ID","NODE_ENV","_console","pkgName","PFF_GLOBAL_KEY","hasProcessEnv","ENABLE_GLOBAL_PLATFORM_FF_OVERRIDE","DEFAULT_PFF_GLOBAL","booleanResolver","globalVar","resolveBooleanFlag","_globalVar$PFF_GLOBAL","_globalVar$PFF_GLOBAL2","_globalVar$PFF_GLOBAL3","fg","themeColorModes","themeIds","themeIdsWithOverrides","themeStateDefaults","colorMode","contrastMode","dark","light","shape","spacing","typography","UNSAFE_themeOptions","id","palette","extends","increasesContrastFor","THEME_DATA_ATTRIBUTE","COLOR_MODE_ATTRIBUTE","CONTRAST_MODE_ATTRIBUTE","CUSTOM_THEME_ATTRIBUTE","TOKEN_NOT_FOUND_CSS_VAR","CURRENT_SURFACE_CSS_VAR","token","tokenId","tokenValue","getComputedStyle","documentElement","getPropertyValue","isValidBrandHex","hex","themeKinds","customThemeOptions","isThemeKind","themeKind","isThemeIds","themeId","isColorMode","modeId","themeStringToObject","themeState","theme","themeObject","themeObjectToString","themeString","_ref3","str","Uint32Array","_ref$colorMode","_ref$dark","_ref$light","_ref$contrastMode","_ref$shape","_ref$spacing","_ref$typography","_ref$UNSAFE_themeOpti","themeAttribute","brandColor","optionString","uniqueId","light-future","dark-future","legacy-light","legacy-dark","typography-adg3","typography-modernized","typography-refreshed","loadAndAppendThemeCss","themeCss","style","head","querySelector","loadThemeCss","createElement","textContent","dataset","appendChild","_yield$themeImportMap","darkModeMediaQuery","moreContrastMediaQuery","checkNativeListener","setAttribute","darkModeMql","matchMedia","ColorModeObserver","unbindThemeChangeListener","contrastModeMql","ContrastModeObserver","unbindContrastChangeListener","configurePage","getColorMode","getContrastMode","themeAttributes","_toConsumableArray","findMissingCustomStyleElements","attrOfMissingCustomStyles","element","getIncreasedContrastTheme","_Object$entries$find","getThemePreferences","autoColorModeThemes","themePreferences","normalTheme","increasedContrastTheme","getThemeOverridePreferences","_themeState","_ref2$colorMode","_ref2$contrastMode","_ref2$dark","_ref2$light","_ref2$shape","_ref2$spacing","_ref2$typography","_ref2$UNSAFE_themeOpt","themeLoader","loadingStrategy","loadingTasks","themeOverridePreferences","autoUnbind","_yield$import","loadAndAppendCustomThemeCss","preferences","results","css","attrs","_preferences$UNSAFE_t","getCustomThemeStyles","customThemeStyles","flat","setColorMode","setContrastMode","getAttribute","isThemeColorMode","ThemeMutationObserver","callbacks","observer","MutationObserver","observe","attributeFilter","disconnect","NAMESPACE","initNamespace","hasAttribute","setGlobalTheme","Tokens"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"aui-prototyping-design-tokens-api.js","mappings":"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","sources":["webpack://__auiPrototyping/webpack/universalModuleDefinition","webpack://__auiPrototyping/../../../node_modules/bind-event-listener/dist/bind-all.js","webpack://__auiPrototyping/../../../node_modules/bind-event-listener/dist/bind.js","webpack://__auiPrototyping/../../../node_modules/bind-event-listener/dist/index.js","webpack://__auiPrototyping/../../../node_modules/eventemitter3/index.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/regenerator.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/typeof.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/regenerator/index.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/CacheKey.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/Diagnostics.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/DnsTxtQuery.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/ErrorBoundary.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/EvaluationTypes.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/EventLogger.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/Hashing.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/InitializeResponse.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/Log.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/MemoKey.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/NetworkConfig.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/NetworkCore.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/NetworkFallbackResolver.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/OverrideAdapter.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/SDKFlags.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/SDKType.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/SafeJs.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/SessionID.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/SizeOf.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StableID.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigClientBase.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigDataAdapter.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigOptionsCommon.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigPlugin.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigTypeFactories.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigTypes.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigUpdateDetails.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StatsigUser.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/StorageProvider.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/TypingUtils.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/UUID.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/UrlConfiguration.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/VisibilityObserving.js","webpack://__auiPrototyping/../../../node_modules/@statsig/client-core/src/index.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/EvaluationResponseDeltas.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/EvaluationStore.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/Network.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/ParamStoreGetterFactory.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/StatsigClient.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/StatsigEvaluationsDataAdapter.js","webpack://__auiPrototyping/../../../node_modules/@statsig/js-client/src/index.js","webpack://__auiPrototyping/webpack/bootstrap","webpack://__auiPrototyping/webpack/runtime/compat get default export","webpack://__auiPrototyping/webpack/runtime/define property getters","webpack://__auiPrototyping/webpack/runtime/global","webpack://__auiPrototyping/webpack/runtime/hasOwnProperty shorthand","webpack://__auiPrototyping/webpack/runtime/make namespace object","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/subscriptions/Subscriptions.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/atlassian-context/dist/esm/services/host-based-lookup/is-fedramp/index.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/atlassian-context/dist/esm/common/constants/host-based-lookup/constants/index.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/compat/types.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/types.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/utils.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/compat/DynamicConfig.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/compat/Layer.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/version.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/construct.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/fetcher/errors.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/fetcher/Fetcher.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/get.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/NoFetchDataAdapter.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/PersistentOverrideAdapter.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/Client.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/feature-gate-js-client/dist/esm/client/FeatureGates.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/platform-feature-flags/dist/esm/debug.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/platform-feature-flags/dist/esm/resolvers.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/platform-feature-flags/dist/esm/index.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/theme-config.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/artifacts/token-names.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/constants.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-token.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-token-value.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/color-utils.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/theme-state-transformer.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/hash.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-theme-html-attrs.js","webpack://__auiPrototyping/./token-themes-generated/aui-prototyping-design-tokens-theme-import-map.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/theme-loading.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/color-mode-listeners.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/contrast-mode-listeners.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/configure-page.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://__auiPrototyping/../../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/custom-theme-loading-utils.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/get-increased-contrast-theme.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/utils/get-theme-preferences.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/set-global-theme.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/enable-global-theme.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-theme-styles.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-ssr-auto-script.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/get-global-theme.js","webpack://__auiPrototyping/../../../node_modules/@atlaskit/tokens/dist/esm/theme-mutation-observer.js","webpack://__auiPrototyping/../src/js/aui/internal/globalize.js","webpack://__auiPrototyping/../src/js/aui/design-tokens/design-tokens-init.js","webpack://__auiPrototyping/../src/js/aui/design-tokens/design-tokens.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"@atlassian/aui\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@atlassian/aui\"] = factory();\n\telse\n\t\troot[\"AJS\"] = root[\"AJS\"] || {}, root[\"AJS\"][\"DesignTokens\"] = factory();\n})(window, () => {\nreturn ","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = void 0;\nvar bind_1 = require(\"./bind\");\nfunction toOptions(value) {\n if (typeof value === 'undefined') {\n return undefined;\n }\n if (typeof value === 'boolean') {\n return {\n capture: value,\n };\n }\n return value;\n}\nfunction getBinding(original, sharedOptions) {\n if (sharedOptions == null) {\n return original;\n }\n var binding = __assign(__assign({}, original), { options: __assign(__assign({}, toOptions(sharedOptions)), toOptions(original.options)) });\n return binding;\n}\nfunction bindAll(target, bindings, sharedOptions) {\n var unbinds = bindings.map(function (original) {\n var binding = getBinding(original, sharedOptions);\n return (0, bind_1.bind)(target, binding);\n });\n return function unbindAll() {\n unbinds.forEach(function (unbind) { return unbind(); });\n };\n}\nexports.bindAll = bindAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bind = void 0;\nfunction bind(target, _a) {\n var type = _a.type, listener = _a.listener, options = _a.options;\n target.addEventListener(type, listener, options);\n return function unbind() {\n target.removeEventListener(type, listener, options);\n };\n}\nexports.bind = bind;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = exports.bind = void 0;\nvar bind_1 = require(\"./bind\");\nObject.defineProperty(exports, \"bind\", { enumerable: true, get: function () { return bind_1.bind; } });\nvar bind_all_1 = require(\"./bind-all\");\nObject.defineProperty(exports, \"bindAll\", { enumerable: true, get: function () { return bind_all_1.bindAll; } });\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","\"use strict\";\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getInstance = exports._getStatsigGlobalFlag = exports._getStatsigGlobal = void 0;\nconst Log_1 = require(\"./Log\");\nconst _getStatsigGlobal = () => {\n // Avoid ReferenceError, which is happening with Cloudflare pages\n try {\n return typeof __STATSIG__ !== 'undefined' ? __STATSIG__ : statsigGlobal;\n }\n catch (e) {\n return statsigGlobal;\n }\n};\nexports._getStatsigGlobal = _getStatsigGlobal;\nconst _getStatsigGlobalFlag = (flag) => {\n return (0, exports._getStatsigGlobal)()[flag];\n};\nexports._getStatsigGlobalFlag = _getStatsigGlobalFlag;\nconst _getInstance = (sdkKey) => {\n const gbl = (0, exports._getStatsigGlobal)();\n if (!sdkKey) {\n if (gbl.instances && Object.keys(gbl.instances).length > 1) {\n Log_1.Log.warn('Call made to Statsig global instance without an SDK key but there is more than one client instance. If you are using mulitple clients, please specify the SDK key.');\n }\n return gbl.firstInstance;\n }\n return gbl.instances && gbl.instances[sdkKey];\n};\nexports._getInstance = _getInstance;\nconst GLOBAL_KEY = '__STATSIG__';\nconst _window = typeof window !== 'undefined' ? window : {};\nconst _global = typeof global !== 'undefined' ? global : {};\nconst _globalThis = typeof globalThis !== 'undefined' ? globalThis : {};\nconst statsigGlobal = (_c = (_b = (_a = _window[GLOBAL_KEY]) !== null && _a !== void 0 ? _a : _global[GLOBAL_KEY]) !== null && _b !== void 0 ? _b : _globalThis[GLOBAL_KEY]) !== null && _c !== void 0 ? _c : {\n instance: exports._getInstance,\n};\n_window[GLOBAL_KEY] = statsigGlobal;\n_global[GLOBAL_KEY] = statsigGlobal;\n_globalThis[GLOBAL_KEY] = statsigGlobal;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getStorageKey = exports._getUserStorageKey = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nfunction _getUserStorageKey(sdkKey, user, customKeyGenerator) {\n var _a;\n if (customKeyGenerator) {\n return customKeyGenerator(sdkKey, user);\n }\n const cids = user && user.customIDs ? user.customIDs : {};\n const parts = [\n `uid:${(_a = user === null || user === void 0 ? void 0 : user.userID) !== null && _a !== void 0 ? _a : ''}`,\n `cids:${Object.keys(cids)\n .sort((leftKey, rightKey) => leftKey.localeCompare(rightKey))\n .map((key) => `${key}-${cids[key]}`)\n .join(',')}`,\n `k:${sdkKey}`,\n ];\n return (0, Hashing_1._DJB2)(parts.join('|'));\n}\nexports._getUserStorageKey = _getUserStorageKey;\nfunction _getStorageKey(sdkKey, user, customKeyGenerator) {\n if (user) {\n return _getUserStorageKey(sdkKey, user, customKeyGenerator);\n }\n return (0, Hashing_1._DJB2)(`k:${sdkKey}`);\n}\nexports._getStorageKey = _getStorageKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._makeDataAdapterResult = exports.DataAdapterCore = void 0;\nconst Log_1 = require(\"./Log\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigUser_1 = require(\"./StatsigUser\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst TypedJsonParse_1 = require(\"./TypedJsonParse\");\nconst CACHE_LIMIT = 10;\nconst MAX_CACHE_WRITE_ATTEMPTS = 8;\nclass DataAdapterCore {\n constructor(_adapterName, _cacheSuffix) {\n this._adapterName = _adapterName;\n this._cacheSuffix = _cacheSuffix;\n this._options = null;\n this._sdkKey = null;\n this._cacheLimit = CACHE_LIMIT;\n this._lastModifiedStoreKey = `statsig.last_modified_time.${_cacheSuffix}`;\n this._inMemoryCache = new InMemoryCache();\n }\n attach(sdkKey, options, _network) {\n this._sdkKey = sdkKey;\n this._options = options;\n }\n getDataSync(user) {\n const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n const cacheKey = this._getCacheKey(normalized);\n const inMem = this._inMemoryCache.get(cacheKey, normalized);\n if (inMem && this._getIsCacheValueValid(inMem)) {\n return inMem;\n }\n const cache = this._loadFromCache(cacheKey);\n if (cache && this._getIsCacheValueValid(cache)) {\n this._inMemoryCache.add(cacheKey, cache, this._cacheLimit);\n return this._inMemoryCache.get(cacheKey, normalized);\n }\n return null;\n }\n setData(data, user) {\n const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n const cacheKey = this._getCacheKey(normalized);\n this._inMemoryCache.add(cacheKey, _makeDataAdapterResult('Bootstrap', data, null, normalized), this._cacheLimit);\n }\n _getIsCacheValueValid(current) {\n return (current.stableID == null ||\n current.stableID === StableID_1.StableID.get(this._getSdkKey()));\n }\n _getDataAsyncImpl(current, user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!StorageProvider_1.Storage.isReady()) {\n yield StorageProvider_1.Storage.isReadyResolver();\n }\n const cache = current !== null && current !== void 0 ? current : this.getDataSync(user);\n const ops = [this._fetchAndPrepFromNetwork(cache, user, options)];\n if (options === null || options === void 0 ? void 0 : options.timeoutMs) {\n ops.push(new Promise((r) => setTimeout(r, options.timeoutMs)).then(() => {\n Log_1.Log.debug('Fetching latest value timed out');\n return null;\n }));\n }\n return yield Promise.race(ops);\n });\n }\n _prefetchDataImpl(user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n const cacheKey = this._getCacheKey(normalized);\n const result = yield this._getDataAsyncImpl(null, normalized, options);\n if (result) {\n this._inMemoryCache.add(cacheKey, Object.assign(Object.assign({}, result), { source: 'Prefetch' }), this._cacheLimit);\n }\n });\n }\n _fetchAndPrepFromNetwork(cachedResult, user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const cachedData = (_a = cachedResult === null || cachedResult === void 0 ? void 0 : cachedResult.data) !== null && _a !== void 0 ? _a : null;\n const isCacheValidFor204 = cachedResult != null &&\n this._isCachedResultValidFor204(cachedResult, user);\n const latest = yield this._fetchFromNetwork(cachedData, user, options, isCacheValidFor204);\n if (!latest) {\n Log_1.Log.debug('No response returned for latest value');\n return null;\n }\n const response = (0, TypedJsonParse_1._typedJsonParse)(latest, 'has_updates', 'Response');\n const sdkKey = this._getSdkKey();\n const stableID = StableID_1.StableID.get(sdkKey);\n let result = null;\n if ((response === null || response === void 0 ? void 0 : response.has_updates) === true) {\n result = _makeDataAdapterResult('Network', latest, stableID, user);\n }\n else if (cachedData && (response === null || response === void 0 ? void 0 : response.has_updates) === false) {\n result = _makeDataAdapterResult('NetworkNotModified', cachedData, stableID, user);\n }\n else {\n return null;\n }\n const cacheKey = this._getCacheKey(user);\n this._inMemoryCache.add(cacheKey, result, this._cacheLimit);\n this._writeToCache(cacheKey, result);\n return result;\n });\n }\n _getSdkKey() {\n if (this._sdkKey != null) {\n return this._sdkKey;\n }\n Log_1.Log.error(`${this._adapterName} is not attached to a Client`);\n return '';\n }\n _loadFromCache(cacheKey) {\n var _a;\n const cache = (_a = StorageProvider_1.Storage.getItem) === null || _a === void 0 ? void 0 : _a.call(StorageProvider_1.Storage, cacheKey);\n if (cache == null) {\n return null;\n }\n const result = (0, TypedJsonParse_1._typedJsonParse)(cache, 'source', 'Cached Result');\n return result ? Object.assign(Object.assign({}, result), { source: 'Cache' }) : null;\n }\n _writeToCache(cacheKey, result) {\n const resultString = JSON.stringify(result);\n for (let i = 0; i < MAX_CACHE_WRITE_ATTEMPTS; i++) {\n try {\n StorageProvider_1.Storage.setItem(cacheKey, resultString);\n break;\n }\n catch (error) {\n if (!(error instanceof Error) ||\n error.name !== 'QuotaExceededError' ||\n this._cacheLimit <= 1) {\n throw error;\n }\n this._cacheLimit = Math.ceil(this._cacheLimit / 2);\n this._runLocalStorageCacheEviction(cacheKey, this._cacheLimit - 1);\n }\n }\n this._runLocalStorageCacheEviction(cacheKey);\n }\n _runLocalStorageCacheEviction(cacheKey, cacheLimit = this._cacheLimit) {\n var _a;\n const lastModifiedTimeMap = (_a = (0, StorageProvider_1._getObjectFromStorage)(this._lastModifiedStoreKey)) !== null && _a !== void 0 ? _a : {};\n lastModifiedTimeMap[cacheKey] = Date.now();\n const evictableKeys = _getEvictableKeys(lastModifiedTimeMap, cacheLimit);\n for (const evictable of evictableKeys) {\n delete lastModifiedTimeMap[evictable];\n StorageProvider_1.Storage.removeItem(evictable);\n }\n (0, StorageProvider_1._setObjectInStorage)(this._lastModifiedStoreKey, lastModifiedTimeMap);\n }\n}\nexports.DataAdapterCore = DataAdapterCore;\nfunction _makeDataAdapterResult(source, data, stableID, user) {\n return {\n source,\n data,\n receivedAt: Date.now(),\n stableID,\n fullUserHash: (0, StatsigUser_1._getFullUserHash)(user),\n };\n}\nexports._makeDataAdapterResult = _makeDataAdapterResult;\nclass InMemoryCache {\n constructor() {\n this._data = {};\n }\n get(cacheKey, user) {\n var _a;\n const result = this._data[cacheKey];\n const cached = result === null || result === void 0 ? void 0 : result.stableID;\n const provided = (_a = user === null || user === void 0 ? void 0 : user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID;\n if (provided && cached && provided !== cached) {\n Log_1.Log.warn(\"'StatsigUser.customIDs.stableID' mismatch\");\n return null;\n }\n return result;\n }\n add(cacheKey, value, cacheLimit) {\n const evictableKeys = _getEvictableKeys(this._data, cacheLimit - 1);\n for (const evictable of evictableKeys) {\n delete this._data[evictable];\n }\n this._data[cacheKey] = value;\n }\n merge(values) {\n this._data = Object.assign(Object.assign({}, this._data), values);\n }\n}\nfunction _getEvictableKeys(data, limit) {\n const keys = Object.keys(data);\n if (keys.length <= limit) {\n return [];\n }\n if (limit === 0) {\n return keys;\n }\n return keys\n .sort((keyA, keyB) => {\n const valueA = data[keyA];\n const valueB = data[keyB];\n if (typeof valueA === 'object' && typeof valueB === 'object') {\n return valueA.receivedAt - valueB.receivedAt;\n }\n return valueA - valueB;\n })\n .slice(0, keys.length - limit);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Diagnostics = void 0;\nconst MARKER_MAP = new Map();\nconst ACT_START = 'start';\nconst ACT_END = 'end';\nconst DIAGNOSTICS_EVENT = 'statsig::diagnostics';\nexports.Diagnostics = {\n _getMarkers: (sdkKey) => {\n return MARKER_MAP.get(sdkKey);\n },\n _markInitOverallStart: (sdkKey) => {\n _addMarker(sdkKey, _createMarker({}, ACT_START, 'overall'));\n },\n _markInitOverallEnd: (sdkKey, success, evaluationDetails) => {\n _addMarker(sdkKey, _createMarker({\n success,\n error: success\n ? undefined\n : { name: 'InitializeError', message: 'Failed to initialize' },\n evaluationDetails,\n }, ACT_END, 'overall'));\n },\n _markInitNetworkReqStart: (sdkKey, data) => {\n _addMarker(sdkKey, _createMarker(data, ACT_START, 'initialize', 'network_request'));\n },\n _markInitNetworkReqEnd: (sdkKey, data) => {\n _addMarker(sdkKey, _createMarker(data, ACT_END, 'initialize', 'network_request'));\n },\n _markInitProcessStart: (sdkKey) => {\n _addMarker(sdkKey, _createMarker({}, ACT_START, 'initialize', 'process'));\n },\n _markInitProcessEnd: (sdkKey, data) => {\n _addMarker(sdkKey, _createMarker(data, ACT_END, 'initialize', 'process'));\n },\n _clearMarkers: (sdkKey) => {\n MARKER_MAP.delete(sdkKey);\n },\n _formatError(e) {\n if (!(e && typeof e === 'object')) {\n return;\n }\n return {\n code: _safeGetField(e, 'code'),\n name: _safeGetField(e, 'name'),\n message: _safeGetField(e, 'message'),\n };\n },\n _getDiagnosticsData(res, attempt, body, e) {\n var _a;\n return {\n success: (res === null || res === void 0 ? void 0 : res.ok) === true,\n statusCode: res === null || res === void 0 ? void 0 : res.status,\n sdkRegion: (_a = res === null || res === void 0 ? void 0 : res.headers) === null || _a === void 0 ? void 0 : _a.get('x-statsig-region'),\n isDelta: body.includes('\"is_delta\":true') === true ? true : undefined,\n attempt,\n error: exports.Diagnostics._formatError(e),\n };\n },\n _enqueueDiagnosticsEvent(user, logger, sdk, options) {\n const markers = exports.Diagnostics._getMarkers(sdk);\n if (markers == null || markers.length <= 0) {\n return -1;\n }\n const overallInitDuration = markers[markers.length - 1].timestamp - markers[0].timestamp;\n exports.Diagnostics._clearMarkers(sdk);\n const event = _makeDiagnosticsEvent(user, {\n context: 'initialize',\n markers: markers.slice(),\n statsigOptions: options,\n });\n logger.enqueue(event);\n return overallInitDuration;\n },\n};\nfunction _createMarker(data, action, key, step) {\n return Object.assign({ key: key, action: action, step: step, timestamp: Date.now() }, data);\n}\nfunction _makeDiagnosticsEvent(user, data) {\n const latencyEvent = {\n eventName: DIAGNOSTICS_EVENT,\n user,\n value: null,\n metadata: data,\n time: Date.now(),\n };\n return latencyEvent;\n}\nfunction _addMarker(sdkKey, marker) {\n var _a;\n const markers = (_a = MARKER_MAP.get(sdkKey)) !== null && _a !== void 0 ? _a : [];\n markers.push(marker);\n MARKER_MAP.set(sdkKey, markers);\n}\nfunction _safeGetField(data, field) {\n if (field in data) {\n return data[field];\n }\n return undefined;\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._fetchTxtRecords = void 0;\n// See example: https://github.com/statsig-io/private-js-client-monorepo/pull/340\nconst FEATURE_ASSETS_DNS_QUERY = new Uint8Array([\n 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d,\n 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73,\n 0x03, 0x6f, 0x72, 0x67, 0x00, 0x00, 0x10, 0x00, 0x01,\n]);\nconst DNS_QUERY_ENDPOINT = 'https://cloudflare-dns.com/dns-query';\nconst DOMAIN_CHARS = [\n 'i', // initialize\n 'e', // events\n 'd', // dcs\n];\nconst MAX_START_LOOKUP = 200;\nfunction _fetchTxtRecords(networkFunc) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield networkFunc(DNS_QUERY_ENDPOINT, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/dns-message',\n Accept: 'application/dns-message',\n },\n body: FEATURE_ASSETS_DNS_QUERY,\n });\n if (!response.ok) {\n const err = new Error('Failed to fetch TXT records from DNS');\n err.name = 'DnsTxtFetchError';\n throw err;\n }\n const data = yield response.arrayBuffer();\n const bytes = new Uint8Array(data);\n return _parseDnsResponse(bytes);\n });\n}\nexports._fetchTxtRecords = _fetchTxtRecords;\nfunction _parseDnsResponse(input) {\n // loop until we find the first valid domain char. One of [i=, e=, d=]\n const start = input.findIndex((byte, index) => index < MAX_START_LOOKUP &&\n String.fromCharCode(byte) === '=' &&\n DOMAIN_CHARS.includes(String.fromCharCode(input[index - 1])));\n if (start === -1) {\n const err = new Error('Failed to parse TXT records from DNS');\n err.name = 'DnsTxtParseError';\n throw err;\n }\n // decode the remaining bytes as a string\n let result = '';\n for (let i = start - 1; i < input.length; i++) {\n result += String.fromCharCode(input[i]);\n }\n return result.split(',');\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorBoundary = exports.EXCEPTION_ENDPOINT = void 0;\nconst Log_1 = require(\"./Log\");\nconst SDKType_1 = require(\"./SDKType\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nexports.EXCEPTION_ENDPOINT = 'https://statsigapi.net/v1/sdk_exception';\nconst UNKNOWN_ERROR = '[Statsig] UnknownError';\nclass ErrorBoundary {\n constructor(_sdkKey, _options, _emitter, _lastSeenError) {\n this._sdkKey = _sdkKey;\n this._options = _options;\n this._emitter = _emitter;\n this._lastSeenError = _lastSeenError;\n this._seen = new Set();\n }\n wrap(instance, namePrefix) {\n try {\n const obj = instance;\n _getAllInstanceMethodNames(obj).forEach((name) => {\n const original = obj[name];\n if ('$EB' in original) {\n return;\n }\n obj[name] = (...args) => {\n return this._capture(namePrefix ? `${namePrefix}:${name}` : name, () => original.apply(instance, args));\n };\n obj[name].$EB = true;\n });\n }\n catch (err) {\n this._onError('eb:wrap', err);\n }\n }\n logError(tag, error) {\n this._onError(tag, error);\n }\n getLastSeenErrorAndReset() {\n const tempError = this._lastSeenError;\n this._lastSeenError = undefined;\n return tempError !== null && tempError !== void 0 ? tempError : null;\n }\n attachErrorIfNoneExists(error) {\n if (this._lastSeenError) {\n return;\n }\n this._lastSeenError = _resolveError(error);\n }\n _capture(tag, task) {\n try {\n const res = task();\n if (res && res instanceof Promise) {\n return res.catch((err) => this._onError(tag, err));\n }\n return res;\n }\n catch (error) {\n this._onError(tag, error);\n return null;\n }\n }\n _onError(tag, error) {\n try {\n Log_1.Log.warn(`Caught error in ${tag}`, { error });\n const impl = () => __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _f, _g;\n const unwrapped = (error ? error : Error(UNKNOWN_ERROR));\n const isError = unwrapped instanceof Error;\n const name = isError ? unwrapped.name : 'No Name';\n const resolvedError = _resolveError(unwrapped);\n this._lastSeenError = resolvedError;\n if (this._seen.has(name)) {\n return;\n }\n this._seen.add(name);\n if ((_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.preventAllNetworkTraffic) {\n (_c = this._emitter) === null || _c === void 0 ? void 0 : _c.call(this, {\n name: 'error',\n error,\n tag,\n });\n return;\n }\n const sdkType = SDKType_1.SDKType._get(this._sdkKey);\n const statsigMetadata = StatsigMetadata_1.StatsigMetadataProvider.get();\n const info = isError ? unwrapped.stack : _getDescription(unwrapped);\n const body = Object.assign({ tag, exception: name, info, statsigOptions: _getStatsigOptionLoggingCopy(this._options) }, Object.assign(Object.assign({}, statsigMetadata), { sdkType }));\n const func = (_f = (_e = (_d = this._options) === null || _d === void 0 ? void 0 : _d.networkConfig) === null || _e === void 0 ? void 0 : _e.networkOverrideFunc) !== null && _f !== void 0 ? _f : fetch;\n yield func(exports.EXCEPTION_ENDPOINT, {\n method: 'POST',\n headers: {\n 'STATSIG-API-KEY': this._sdkKey,\n 'STATSIG-SDK-TYPE': String(sdkType),\n 'STATSIG-SDK-VERSION': String(statsigMetadata.sdkVersion),\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n });\n (_g = this._emitter) === null || _g === void 0 ? void 0 : _g.call(this, {\n name: 'error',\n error,\n tag,\n });\n });\n impl()\n .then(() => {\n /* noop */\n })\n .catch(() => {\n /* noop */\n });\n }\n catch (_error) {\n /* noop */\n }\n }\n}\nexports.ErrorBoundary = ErrorBoundary;\nfunction _resolveError(error) {\n if (error instanceof Error) {\n return error;\n }\n else if (typeof error === 'string') {\n return new Error(error);\n }\n else {\n return new Error('An unknown error occurred.');\n }\n}\nfunction _getDescription(obj) {\n try {\n return JSON.stringify(obj);\n }\n catch (_a) {\n return UNKNOWN_ERROR;\n }\n}\nfunction _getAllInstanceMethodNames(instance) {\n const names = new Set();\n let proto = Object.getPrototypeOf(instance);\n while (proto && proto !== Object.prototype) {\n Object.getOwnPropertyNames(proto)\n .filter((prop) => typeof (proto === null || proto === void 0 ? void 0 : proto[prop]) === 'function')\n .forEach((name) => names.add(name));\n proto = Object.getPrototypeOf(proto);\n }\n return Array.from(names);\n}\nfunction _getStatsigOptionLoggingCopy(options) {\n if (!options) {\n return {};\n }\n const loggingCopy = {};\n Object.keys(options).forEach((key) => {\n const option = key;\n const value = options[option];\n const valueType = typeof value;\n switch (valueType) {\n case 'number':\n case 'bigint':\n case 'boolean':\n loggingCopy[String(option)] = value;\n break;\n case 'string':\n if (value.length < 50) {\n loggingCopy[String(option)] = value;\n }\n else {\n loggingCopy[String(option)] = 'set';\n }\n break;\n case 'object':\n if (option === 'environment') {\n loggingCopy['environment'] = value;\n }\n else if (option === 'networkConfig') {\n loggingCopy['networkConfig'] = value;\n }\n else {\n loggingCopy[String(option)] = value != null ? 'set' : 'unset';\n }\n break;\n default:\n // Ignore other fields\n }\n });\n return loggingCopy;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventLogger = void 0;\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst StatsigEvent_1 = require(\"./StatsigEvent\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UrlConfiguration_1 = require(\"./UrlConfiguration\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst DEFAULT_QUEUE_SIZE = 100;\nconst DEFAULT_FLUSH_INTERVAL_MS = 10000;\nconst MAX_DEDUPER_KEYS = 1000;\nconst DEDUPER_WINDOW_DURATION_MS = 600000;\nconst MAX_FAILED_LOGS = 500;\nconst QUICK_FLUSH_WINDOW_MS = 200;\nconst EVENT_LOGGER_MAP = {};\nconst RetryFailedLogsTrigger = {\n Startup: 'startup',\n GainedFocus: 'gained_focus',\n};\nclass EventLogger {\n static _safeFlushAndForget(sdkKey) {\n var _a;\n (_a = EVENT_LOGGER_MAP[sdkKey]) === null || _a === void 0 ? void 0 : _a.flush().catch(() => {\n // noop\n });\n }\n static _safeRetryFailedLogs(sdkKey) {\n var _a;\n (_a = EVENT_LOGGER_MAP[sdkKey]) === null || _a === void 0 ? void 0 : _a._retryFailedLogs(RetryFailedLogsTrigger.GainedFocus);\n }\n constructor(_sdkKey, _emitter, _network, _options) {\n var _a, _b;\n this._sdkKey = _sdkKey;\n this._emitter = _emitter;\n this._network = _network;\n this._options = _options;\n this._queue = [];\n this._lastExposureTimeMap = {};\n this._nonExposedChecks = {};\n this._hasRunQuickFlush = false;\n this._creationTime = Date.now();\n this._loggingEnabled =\n (_a = _options === null || _options === void 0 ? void 0 : _options.loggingEnabled) !== null && _a !== void 0 ? _a : ((_options === null || _options === void 0 ? void 0 : _options.disableLogging) === true\n ? StatsigOptionsCommon_1.LoggingEnabledOption.disabled\n : StatsigOptionsCommon_1.LoggingEnabledOption.browserOnly);\n if ((_options === null || _options === void 0 ? void 0 : _options.loggingEnabled) && _options.disableLogging !== undefined) {\n Log_1.Log.warn('Detected both loggingEnabled and disableLogging options. loggingEnabled takes precedence - please remove disableLogging.');\n }\n this._maxQueueSize = (_b = _options === null || _options === void 0 ? void 0 : _options.loggingBufferMaxSize) !== null && _b !== void 0 ? _b : DEFAULT_QUEUE_SIZE;\n const config = _options === null || _options === void 0 ? void 0 : _options.networkConfig;\n this._logEventUrlConfig = new UrlConfiguration_1.UrlConfiguration(NetworkConfig_1.Endpoint._rgstr, config === null || config === void 0 ? void 0 : config.logEventUrl, config === null || config === void 0 ? void 0 : config.api, config === null || config === void 0 ? void 0 : config.logEventFallbackUrls);\n }\n setLogEventCompressionMode(mode) {\n this._network.setLogEventCompressionMode(mode);\n }\n setLoggingEnabled(loggingEnabled) {\n if (this._loggingEnabled === 'disabled' && loggingEnabled !== 'disabled') {\n // load any pre consented events into memory\n const storageKey = this._getStorageKey();\n const events = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n if (events) {\n this._queue.push(...events);\n }\n StorageProvider_1.Storage.removeItem(storageKey);\n }\n this._loggingEnabled = loggingEnabled;\n }\n enqueue(event) {\n if (!this._shouldLogEvent(event)) {\n return;\n }\n this._normalizeAndAppendEvent(event);\n this._quickFlushIfNeeded();\n if (this._queue.length > this._maxQueueSize) {\n EventLogger._safeFlushAndForget(this._sdkKey);\n }\n }\n incrementNonExposureCount(name) {\n var _a;\n const current = (_a = this._nonExposedChecks[name]) !== null && _a !== void 0 ? _a : 0;\n this._nonExposedChecks[name] = current + 1;\n }\n reset() {\n // attempt to flush any remaining events\n this.flush().catch(() => {\n // noop\n });\n this._lastExposureTimeMap = {};\n }\n start() {\n var _a;\n const isServerEnv = (0, SafeJs_1._isServerEnv)();\n if (isServerEnv && ((_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingEnabled) !== 'always') {\n return;\n }\n EVENT_LOGGER_MAP[this._sdkKey] = this;\n if (!isServerEnv) {\n (0, VisibilityObserving_1._subscribeToVisiblityChanged)((visibility) => {\n if (visibility === 'background') {\n EventLogger._safeFlushAndForget(this._sdkKey);\n }\n else if (visibility === 'foreground') {\n EventLogger._safeRetryFailedLogs(this._sdkKey);\n }\n });\n }\n this._retryFailedLogs(RetryFailedLogsTrigger.Startup);\n this._startBackgroundFlushInterval();\n }\n stop() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._flushIntervalId) {\n clearInterval(this._flushIntervalId);\n this._flushIntervalId = null;\n }\n delete EVENT_LOGGER_MAP[this._sdkKey];\n yield this.flush();\n });\n }\n flush() {\n return __awaiter(this, void 0, void 0, function* () {\n this._appendAndResetNonExposedChecks();\n if (this._queue.length === 0) {\n return;\n }\n const events = this._queue;\n this._queue = [];\n yield this._sendEvents(events);\n });\n }\n /**\n * We 'Quick Flush' following the very first event enqueued\n * within the quick flush window\n */\n _quickFlushIfNeeded() {\n if (this._hasRunQuickFlush) {\n return;\n }\n this._hasRunQuickFlush = true;\n if (Date.now() - this._creationTime > QUICK_FLUSH_WINDOW_MS) {\n return;\n }\n setTimeout(() => EventLogger._safeFlushAndForget(this._sdkKey), QUICK_FLUSH_WINDOW_MS);\n }\n _shouldLogEvent(event) {\n var _a;\n if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingEnabled) !== 'always' && (0, SafeJs_1._isServerEnv)()) {\n return false;\n }\n if (!(0, StatsigEvent_1._isExposureEvent)(event)) {\n return true;\n }\n const user = event.user ? event.user : { statsigEnvironment: undefined };\n const userKey = (0, CacheKey_1._getUserStorageKey)(this._sdkKey, user);\n const metadata = event.metadata ? event.metadata : {};\n const key = [\n event.eventName,\n userKey,\n metadata['gate'],\n metadata['config'],\n metadata['ruleID'],\n metadata['allocatedExperiment'],\n metadata['parameterName'],\n String(metadata['isExplicitParameter']),\n metadata['reason'],\n ].join('|');\n const previous = this._lastExposureTimeMap[key];\n const now = Date.now();\n if (previous && now - previous < DEDUPER_WINDOW_DURATION_MS) {\n return false;\n }\n if (Object.keys(this._lastExposureTimeMap).length > MAX_DEDUPER_KEYS) {\n this._lastExposureTimeMap = {};\n }\n this._lastExposureTimeMap[key] = now;\n return true;\n }\n _sendEvents(events) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n if (this._loggingEnabled === 'disabled') {\n this._saveFailedLogsToStorage(events);\n return false;\n }\n try {\n const isClosing = (0, VisibilityObserving_1._isUnloading)();\n const shouldUseBeacon = isClosing &&\n this._network.isBeaconSupported() &&\n ((_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.networkOverrideFunc) == null;\n this._emitter({\n name: 'pre_logs_flushed',\n events,\n });\n const response = shouldUseBeacon\n ? this._sendEventsViaBeacon(events)\n : yield this._sendEventsViaPost(events);\n if (response.success) {\n this._emitter({\n name: 'logs_flushed',\n events,\n });\n return true;\n }\n else {\n Log_1.Log.warn('Failed to flush events.');\n this._saveFailedLogsToStorage(events);\n return false;\n }\n }\n catch (_c) {\n Log_1.Log.warn('Failed to flush events.');\n return false;\n }\n });\n }\n _sendEventsViaPost(events) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const result = yield this._network.post(this._getRequestData(events));\n const code = (_a = result === null || result === void 0 ? void 0 : result.code) !== null && _a !== void 0 ? _a : -1;\n return { success: code >= 200 && code < 300 };\n });\n }\n _sendEventsViaBeacon(events) {\n return {\n success: this._network.beacon(this._getRequestData(events)),\n };\n }\n _getRequestData(events) {\n return {\n sdkKey: this._sdkKey,\n data: {\n events,\n },\n urlConfig: this._logEventUrlConfig,\n retries: 3,\n isCompressable: true,\n params: {\n [NetworkConfig_1.NetworkParam.EventCount]: String(events.length),\n },\n credentials: 'same-origin',\n };\n }\n _saveFailedLogsToStorage(events) {\n while (events.length > MAX_FAILED_LOGS) {\n events.shift();\n }\n const storageKey = this._getStorageKey();\n try {\n const savedEvents = this._getFailedLogsFromStorage(storageKey);\n (0, StorageProvider_1._setObjectInStorage)(storageKey, [...savedEvents, ...events]);\n }\n catch (_a) {\n Log_1.Log.warn('Unable to save failed logs to storage');\n }\n }\n _getFailedLogsFromStorage(storageKey) {\n let savedEvents = [];\n try {\n const retrieved = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n if (Array.isArray(retrieved)) {\n savedEvents = retrieved;\n }\n return savedEvents;\n }\n catch (_a) {\n return [];\n }\n }\n _retryFailedLogs(trigger) {\n const storageKey = this._getStorageKey();\n (() => __awaiter(this, void 0, void 0, function* () {\n if (!StorageProvider_1.Storage.isReady()) {\n yield StorageProvider_1.Storage.isReadyResolver();\n }\n const events = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n if (!events) {\n return;\n }\n if (trigger === RetryFailedLogsTrigger.Startup) {\n StorageProvider_1.Storage.removeItem(storageKey);\n }\n const isSuccess = yield this._sendEvents(events);\n if (isSuccess && trigger === RetryFailedLogsTrigger.GainedFocus) {\n StorageProvider_1.Storage.removeItem(storageKey);\n }\n }))().catch(() => {\n Log_1.Log.warn('Failed to flush stored logs');\n });\n }\n _getStorageKey() {\n return `statsig.failed_logs.${(0, Hashing_1._DJB2)(this._sdkKey)}`;\n }\n _normalizeAndAppendEvent(event) {\n if (event.user) {\n event.user = Object.assign({}, event.user);\n delete event.user.privateAttributes;\n }\n const extras = {};\n const currentPage = this._getCurrentPageUrl();\n if (currentPage) {\n extras.statsigMetadata = { currentPage };\n }\n const final = Object.assign(Object.assign({}, event), extras);\n Log_1.Log.debug('Enqueued Event:', final);\n this._queue.push(final);\n }\n _appendAndResetNonExposedChecks() {\n if (Object.keys(this._nonExposedChecks).length === 0) {\n return;\n }\n this._normalizeAndAppendEvent({\n eventName: 'statsig::non_exposed_checks',\n user: null,\n time: Date.now(),\n metadata: {\n checks: Object.assign({}, this._nonExposedChecks),\n },\n });\n this._nonExposedChecks = {};\n }\n _getCurrentPageUrl() {\n var _a;\n if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.includeCurrentPageUrlWithEvents) === false) {\n return;\n }\n return (0, SafeJs_1._getCurrentPageUrlSafe)();\n }\n _startBackgroundFlushInterval() {\n var _a, _b;\n const flushInterval = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingIntervalMs) !== null && _b !== void 0 ? _b : DEFAULT_FLUSH_INTERVAL_MS;\n const intervalId = setInterval(() => {\n const logger = EVENT_LOGGER_MAP[this._sdkKey];\n if (!logger || logger._flushIntervalId !== intervalId) {\n clearInterval(intervalId);\n }\n else {\n EventLogger._safeFlushAndForget(this._sdkKey);\n }\n }, flushInterval);\n this._flushIntervalId = intervalId;\n }\n}\nexports.EventLogger = EventLogger;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getSortedObject = exports._DJB2Object = exports._DJB2 = void 0;\nconst TypingUtils_1 = require(\"./TypingUtils\");\nconst _DJB2 = (value) => {\n let hash = 0;\n for (let i = 0; i < value.length; i++) {\n const character = value.charCodeAt(i);\n hash = (hash << 5) - hash + character;\n hash = hash & hash; // Convert to 32bit integer\n }\n return String(hash >>> 0);\n};\nexports._DJB2 = _DJB2;\nconst _DJB2Object = (value, maxLevels) => {\n return (0, exports._DJB2)(JSON.stringify((0, exports._getSortedObject)(value, maxLevels)));\n};\nexports._DJB2Object = _DJB2Object;\nconst _getSortedObject = (object, maxDepth) => {\n if (object == null) {\n return null;\n }\n const keys = Object.keys(object).sort();\n const sortedObject = {};\n keys.forEach((key) => {\n const value = object[key];\n if (maxDepth === 0 || (0, TypingUtils_1._typeOf)(value) !== 'object') {\n sortedObject[key] = value;\n return;\n }\n sortedObject[key] = (0, exports._getSortedObject)(value, maxDepth != null ? maxDepth - 1 : maxDepth);\n });\n return sortedObject;\n};\nexports._getSortedObject = _getSortedObject;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\n/* eslint-disable no-console */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Log = exports.LogLevel = void 0;\n// intentionally spaced for formatting\nconst DEBUG = ' DEBUG ';\nconst _INFO = ' INFO ';\nconst _WARN = ' WARN ';\nconst ERROR = ' ERROR ';\nfunction addTag(args) {\n args.unshift('[Statsig]');\n return args; // ['[Statsig]', ...args];\n}\nexports.LogLevel = {\n None: 0,\n Error: 1,\n Warn: 2,\n Info: 3,\n Debug: 4,\n};\nclass Log {\n static info(...args) {\n if (Log.level >= exports.LogLevel.Info) {\n console.info(_INFO, ...addTag(args));\n }\n }\n static debug(...args) {\n if (Log.level >= exports.LogLevel.Debug) {\n console.debug(DEBUG, ...addTag(args));\n }\n }\n static warn(...args) {\n if (Log.level >= exports.LogLevel.Warn) {\n console.warn(_WARN, ...addTag(args));\n }\n }\n static error(...args) {\n if (Log.level >= exports.LogLevel.Error) {\n console.error(ERROR, ...addTag(args));\n }\n }\n}\nexports.Log = Log;\nLog.level = exports.LogLevel.Warn;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createMemoKey = exports.MemoPrefix = void 0;\nexports.MemoPrefix = {\n _gate: 'g',\n _dynamicConfig: 'c',\n _experiment: 'e',\n _configList: 'cl',\n _layer: 'l',\n _paramStore: 'p',\n};\nconst EXIST_KEYS = new Set([\n// Add keys that should be memoized based only on their existence, not their value\n]);\nconst DO_NOT_MEMO_KEYS = new Set([\n // Add keys that if exist, should not be memoized\n 'userPersistedValues',\n]);\nfunction createMemoKey(prefix, name, options) {\n let cacheKey = `${prefix}|${name}`;\n if (!options) {\n return cacheKey;\n }\n for (const key of Object.keys(options)) {\n if (DO_NOT_MEMO_KEYS.has(key)) {\n return undefined;\n }\n if (EXIST_KEYS.has(key)) {\n cacheKey += `|${key}=true`;\n }\n else {\n cacheKey += `|${key}=${options[key]}`;\n }\n }\n return cacheKey;\n}\nexports.createMemoKey = createMemoKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkParam = exports.NetworkDefault = exports.Endpoint = void 0;\nexports.Endpoint = {\n _initialize: 'initialize',\n _rgstr: 'rgstr',\n _download_config_specs: 'download_config_specs',\n};\nexports.NetworkDefault = {\n [exports.Endpoint._rgstr]: 'https://prodregistryv2.org/v1',\n [exports.Endpoint._initialize]: 'https://featureassets.org/v1',\n [exports.Endpoint._download_config_specs]: 'https://api.statsigcdn.com/v1',\n};\nexports.NetworkParam = {\n EventCount: 'ec',\n SdkKey: 'k',\n SdkType: 'st',\n SdkVersion: 'sv',\n Time: 't',\n SessionID: 'sid',\n StatsigEncoded: 'se',\n IsGzipped: 'gz',\n};\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NetworkCore = void 0;\nrequire(\"./$_StatsigGlobal\");\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst Diagnostics_1 = require(\"./Diagnostics\");\nconst Log_1 = require(\"./Log\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst NetworkFallbackResolver_1 = require(\"./NetworkFallbackResolver\");\nconst SDKFlags_1 = require(\"./SDKFlags\");\nconst SDKType_1 = require(\"./SDKType\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigClientEventEmitter_1 = require(\"./StatsigClientEventEmitter\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst DEFAULT_TIMEOUT_MS = 10000;\nconst BACKOFF_BASE_MS = 500;\nconst BACKOFF_MAX_MS = 30000;\nconst RATE_LIMIT_WINDOW_MS = 1000;\nconst RATE_LIMIT_MAX_REQ_COUNT = 50;\nconst LEAK_RATE = RATE_LIMIT_MAX_REQ_COUNT / RATE_LIMIT_WINDOW_MS;\nconst RETRYABLE_CODES = new Set([408, 500, 502, 503, 504, 522, 524, 599]);\nclass NetworkCore {\n constructor(options, _emitter) {\n this._emitter = _emitter;\n this._errorBoundary = null;\n this._timeout = DEFAULT_TIMEOUT_MS;\n this._netConfig = {};\n this._options = {};\n this._leakyBucket = {};\n this._lastUsedInitUrl = null;\n if (options) {\n this._options = options;\n }\n if (this._options.networkConfig) {\n this._netConfig = this._options.networkConfig;\n }\n if (this._netConfig.networkTimeoutMs) {\n this._timeout = this._netConfig.networkTimeoutMs;\n }\n this._fallbackResolver = new NetworkFallbackResolver_1.NetworkFallbackResolver(this._options);\n this.setLogEventCompressionMode(this._getLogEventCompressionMode(options));\n }\n setLogEventCompressionMode(mode) {\n this._options.logEventCompressionMode = mode;\n }\n setErrorBoundary(errorBoundary) {\n this._errorBoundary = errorBoundary;\n this._errorBoundary.wrap(this);\n this._errorBoundary.wrap(this._fallbackResolver);\n this._fallbackResolver.setErrorBoundary(errorBoundary);\n }\n isBeaconSupported() {\n return (typeof navigator !== 'undefined' &&\n typeof navigator.sendBeacon === 'function');\n }\n getLastUsedInitUrlAndReset() {\n const tempUrl = this._lastUsedInitUrl;\n this._lastUsedInitUrl = null;\n return tempUrl;\n }\n beacon(args) {\n if (!_ensureValidSdkKey(args)) {\n return false;\n }\n const argsInternal = this._getInternalRequestArgs('POST', args);\n const url = this._getPopulatedURL(argsInternal);\n const nav = navigator;\n return nav.sendBeacon.bind(nav)(url, argsInternal.body);\n }\n post(args) {\n return __awaiter(this, void 0, void 0, function* () {\n const argsInternal = this._getInternalRequestArgs('POST', args);\n this._tryEncodeBody(argsInternal);\n yield this._tryToCompressBody(argsInternal);\n return this._sendRequest(argsInternal);\n });\n }\n get(args) {\n const argsInternal = this._getInternalRequestArgs('GET', args);\n return this._sendRequest(argsInternal);\n }\n _sendRequest(args) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n if (!_ensureValidSdkKey(args)) {\n return null;\n }\n if (this._netConfig.preventAllNetworkTraffic) {\n return null;\n }\n const { method, body, retries, attempt } = args;\n const endpoint = args.urlConfig.endpoint;\n if (this._isRateLimited(endpoint)) {\n Log_1.Log.warn(`Request to ${endpoint} was blocked because you are making requests too frequently.`);\n return null;\n }\n const currentAttempt = attempt !== null && attempt !== void 0 ? attempt : 1;\n let reqTimedOut = false;\n const populatedUrl = this._getPopulatedURL(args);\n let response = null;\n const keepalive = (0, VisibilityObserving_1._isUnloading)();\n try {\n const config = {\n method,\n body,\n headers: Object.assign({}, args.headers),\n priority: args.priority,\n keepalive,\n };\n _tryMarkInitStart(args, currentAttempt);\n const bucket = this._leakyBucket[endpoint];\n if (bucket) {\n bucket.lastRequestTime = Date.now();\n this._leakyBucket[endpoint] = bucket;\n }\n const func = (_a = this._netConfig.networkOverrideFunc) !== null && _a !== void 0 ? _a : fetch;\n let timeoutId;\n response = yield Promise.race([\n func(populatedUrl, config).finally(() => clearTimeout(timeoutId)),\n new Promise((_, reject) => {\n timeoutId = setTimeout(() => {\n reqTimedOut = true;\n reject(new Error(`Timeout of ${this._timeout}ms expired.`));\n }, this._timeout);\n }),\n ]);\n if (!response.ok) {\n const text = yield response.text().catch(() => 'No Text');\n const err = new Error(`NetworkError: ${populatedUrl} ${text}`);\n err.name = 'NetworkError';\n throw err;\n }\n const text = yield response.text();\n _tryMarkInitEnd(args, response, currentAttempt, text);\n this._fallbackResolver.tryBumpExpiryTime(args.sdkKey, args.urlConfig);\n return {\n body: text,\n code: response.status,\n };\n }\n catch (error) {\n const errorMessage = _getErrorMessage(error);\n const timedOut = _didTimeout(errorMessage !== null && errorMessage !== void 0 ? errorMessage : '', reqTimedOut);\n _tryMarkInitEnd(args, response, currentAttempt, '', error);\n const fallbackUpdated = yield this._fallbackResolver.tryFetchUpdatedFallbackInfo(args.sdkKey, args.urlConfig, errorMessage, timedOut);\n if (fallbackUpdated) {\n args.fallbackUrl = this._fallbackResolver.getActiveFallbackUrl(args.sdkKey, args.urlConfig);\n }\n if (!retries ||\n currentAttempt > retries ||\n !RETRYABLE_CODES.has((_b = response === null || response === void 0 ? void 0 : response.status) !== null && _b !== void 0 ? _b : 500)) {\n (_c = this._emitter) === null || _c === void 0 ? void 0 : _c.call(this, {\n name: 'error',\n error,\n tag: StatsigClientEventEmitter_1.ErrorTag.NetworkError,\n requestArgs: args,\n });\n const formattedErrorMsg = `A networking error occurred during ${method} request to ${populatedUrl}.`;\n Log_1.Log.error(formattedErrorMsg, errorMessage, error);\n (_d = this._errorBoundary) === null || _d === void 0 ? void 0 : _d.attachErrorIfNoneExists(formattedErrorMsg);\n return null;\n }\n yield _exponentialBackoff(currentAttempt);\n return this._sendRequest(Object.assign(Object.assign({}, args), { retries, attempt: currentAttempt + 1 }));\n }\n });\n }\n _getLogEventCompressionMode(options) {\n // Handle backward compatibility for deprecated disableCompression flag\n let compressionMode = options === null || options === void 0 ? void 0 : options.logEventCompressionMode;\n if (!compressionMode && (options === null || options === void 0 ? void 0 : options.disableCompression) === true) {\n compressionMode = StatsigOptionsCommon_1.LogEventCompressionMode.Disabled;\n }\n // Default to enabled if unset\n if (!compressionMode) {\n compressionMode = StatsigOptionsCommon_1.LogEventCompressionMode.Enabled;\n }\n return compressionMode;\n }\n _isRateLimited(endpoint) {\n var _a;\n const now = Date.now();\n const bucket = (_a = this._leakyBucket[endpoint]) !== null && _a !== void 0 ? _a : {\n count: 0,\n lastRequestTime: now,\n };\n const elapsed = now - bucket.lastRequestTime;\n const leakedRequests = Math.floor(elapsed * LEAK_RATE);\n bucket.count = Math.max(0, bucket.count - leakedRequests);\n if (bucket.count >= RATE_LIMIT_MAX_REQ_COUNT) {\n return true;\n }\n bucket.count += 1;\n bucket.lastRequestTime = now;\n this._leakyBucket[endpoint] = bucket;\n return false;\n }\n _getPopulatedURL(args) {\n var _a;\n const url = (_a = args.fallbackUrl) !== null && _a !== void 0 ? _a : args.urlConfig.getUrl();\n if (args.urlConfig.endpoint === NetworkConfig_1.Endpoint._initialize ||\n args.urlConfig.endpoint === NetworkConfig_1.Endpoint._download_config_specs) {\n this._lastUsedInitUrl = url;\n }\n const params = Object.assign({ [NetworkConfig_1.NetworkParam.SdkKey]: args.sdkKey, [NetworkConfig_1.NetworkParam.SdkType]: SDKType_1.SDKType._get(args.sdkKey), [NetworkConfig_1.NetworkParam.SdkVersion]: StatsigMetadata_1.SDK_VERSION, [NetworkConfig_1.NetworkParam.Time]: String(Date.now()), [NetworkConfig_1.NetworkParam.SessionID]: SessionID_1.SessionID.get(args.sdkKey) }, args.params);\n const query = Object.keys(params)\n .map((key) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`;\n })\n .join('&');\n return `${url}${query ? `?${query}` : ''}`;\n }\n _tryEncodeBody(args) {\n var _a;\n const win = (0, SafeJs_1._getWindowSafe)();\n const body = args.body;\n if (!args.isStatsigEncodable ||\n this._options.disableStatsigEncoding ||\n typeof body !== 'string' ||\n (0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-encode') != null ||\n !(win === null || win === void 0 ? void 0 : win.btoa)) {\n return;\n }\n try {\n args.body = win.btoa(body).split('').reverse().join('');\n args.params = Object.assign(Object.assign({}, ((_a = args.params) !== null && _a !== void 0 ? _a : {})), { [NetworkConfig_1.NetworkParam.StatsigEncoded]: '1' });\n }\n catch (e) {\n Log_1.Log.warn(`Request encoding failed for ${args.urlConfig.getUrl()}`, e);\n }\n }\n _tryToCompressBody(args) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const body = args.body;\n if (typeof body !== 'string' || !_allowCompression(args, this._options)) {\n return;\n }\n try {\n const bytes = new TextEncoder().encode(body);\n const stream = new CompressionStream('gzip');\n const writer = stream.writable.getWriter();\n writer.write(bytes).catch(Log_1.Log.error);\n writer.close().catch(Log_1.Log.error);\n const reader = stream.readable.getReader();\n const chunks = [];\n let result;\n // eslint-disable-next-line no-await-in-loop\n while (!(result = yield reader.read()).done) {\n chunks.push(result.value);\n }\n const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n const combined = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n args.body = combined;\n args.params = Object.assign(Object.assign({}, ((_a = args.params) !== null && _a !== void 0 ? _a : {})), { [NetworkConfig_1.NetworkParam.IsGzipped]: '1' });\n }\n catch (e) {\n Log_1.Log.warn(`Request compression failed for ${args.urlConfig.getUrl()}`, e);\n }\n });\n }\n _getInternalRequestArgs(method, args) {\n const fallbackUrl = this._fallbackResolver.getActiveFallbackUrl(args.sdkKey, args.urlConfig);\n const result = Object.assign(Object.assign({}, args), { method,\n fallbackUrl });\n if ('data' in args) {\n _populateRequestBody(result, args.data);\n }\n return result;\n }\n}\nexports.NetworkCore = NetworkCore;\nconst _ensureValidSdkKey = (args) => {\n if (!args.sdkKey) {\n Log_1.Log.warn('Unable to make request without an SDK key');\n return false;\n }\n return true;\n};\nconst _populateRequestBody = (args, data) => {\n const { sdkKey, fallbackUrl } = args;\n const stableID = StableID_1.StableID.get(sdkKey);\n const sessionID = SessionID_1.SessionID.get(sdkKey);\n const sdkType = SDKType_1.SDKType._get(sdkKey);\n args.body = JSON.stringify(Object.assign(Object.assign({}, data), { statsigMetadata: Object.assign(Object.assign({}, StatsigMetadata_1.StatsigMetadataProvider.get()), { stableID,\n sessionID,\n sdkType,\n fallbackUrl }) }));\n};\nfunction _allowCompression(args, options) {\n if (!args.isCompressable) {\n return false;\n }\n // Never compress if 'no-compress' is set globally or required APIs are unavailable\n if ((0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-compress') != null ||\n typeof CompressionStream === 'undefined' ||\n typeof TextEncoder === 'undefined') {\n return false;\n }\n const isProxy = args.urlConfig.customUrl != null || args.urlConfig.fallbackUrls != null;\n const flagEnabled = SDKFlags_1.SDKFlags.get(args.sdkKey, 'enable_log_event_compression') === true;\n switch (options.logEventCompressionMode) {\n case StatsigOptionsCommon_1.LogEventCompressionMode.Disabled:\n return false;\n case StatsigOptionsCommon_1.LogEventCompressionMode.Enabled:\n // Only compress through proxy if flag is explicitly on\n if (isProxy && !flagEnabled) {\n return false;\n }\n return true;\n case StatsigOptionsCommon_1.LogEventCompressionMode.Forced:\n return true;\n default:\n return false;\n }\n}\nfunction _getErrorMessage(error) {\n if (typeof error === 'string') {\n return error;\n }\n if (error instanceof Error) {\n return `${error.name}: ${error.message}`;\n }\n return 'Unknown Error';\n}\nfunction _didTimeout(errorMsg, abortedByTimeout) {\n const timeout = errorMsg.includes('Timeout'); // probably not needed but just in case\n return timeout || abortedByTimeout;\n}\nfunction _tryMarkInitStart(args, attempt) {\n if (args.urlConfig.endpoint !== NetworkConfig_1.Endpoint._initialize) {\n return;\n }\n Diagnostics_1.Diagnostics._markInitNetworkReqStart(args.sdkKey, {\n attempt,\n });\n}\nfunction _tryMarkInitEnd(args, response, attempt, body, err) {\n if (args.urlConfig.endpoint !== NetworkConfig_1.Endpoint._initialize) {\n return;\n }\n Diagnostics_1.Diagnostics._markInitNetworkReqEnd(args.sdkKey, Diagnostics_1.Diagnostics._getDiagnosticsData(response, attempt, body, err));\n}\nfunction _exponentialBackoff(attempt) {\n return __awaiter(this, void 0, void 0, function* () {\n // 1*1*1000 1s\n // 2*2*1000 4s\n // 3*3*1000 9s\n // 4*4*1000 16s\n // 5*5*1000 25s\n yield new Promise((r) => setTimeout(r, Math.min(BACKOFF_BASE_MS * (attempt * attempt), BACKOFF_MAX_MS)));\n });\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._isDomainFailure = exports.NetworkFallbackResolver = void 0;\nconst DnsTxtQuery_1 = require(\"./DnsTxtQuery\");\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst DEFAULT_TTL_MS = 7 * 24 * 60 * 60 * 1000; // 7 days\nconst COOLDOWN_TIME_MS = 4 * 60 * 60 * 1000; // 4 hours\nclass NetworkFallbackResolver {\n constructor(options) {\n var _a;\n this._fallbackInfo = null;\n this._errorBoundary = null;\n this._dnsQueryCooldowns = {};\n this._networkOverrideFunc = (_a = options.networkConfig) === null || _a === void 0 ? void 0 : _a.networkOverrideFunc;\n }\n setErrorBoundary(errorBoundary) {\n this._errorBoundary = errorBoundary;\n }\n tryBumpExpiryTime(sdkKey, urlConfig) {\n var _a;\n const info = (_a = this._fallbackInfo) === null || _a === void 0 ? void 0 : _a[urlConfig.endpoint];\n if (!info) {\n return;\n }\n info.expiryTime = Date.now() + DEFAULT_TTL_MS;\n _tryWriteFallbackInfoToCache(sdkKey, Object.assign(Object.assign({}, this._fallbackInfo), { [urlConfig.endpoint]: info }));\n }\n getActiveFallbackUrl(sdkKey, urlConfig) {\n var _a, _b;\n if (urlConfig.customUrl != null && urlConfig.fallbackUrls != null) {\n return null;\n }\n let info = this._fallbackInfo;\n if (info == null) {\n info = (_a = _readFallbackInfoFromCache(sdkKey)) !== null && _a !== void 0 ? _a : {};\n this._fallbackInfo = info;\n }\n const entry = info[urlConfig.endpoint];\n if (!entry ||\n Date.now() > ((_b = entry.expiryTime) !== null && _b !== void 0 ? _b : 0) ||\n urlConfig.getChecksum() !== entry.urlConfigChecksum) {\n delete info[urlConfig.endpoint];\n this._fallbackInfo = info;\n _tryWriteFallbackInfoToCache(sdkKey, this._fallbackInfo);\n return null;\n }\n if (entry.url) {\n return entry.url;\n }\n return null;\n }\n tryFetchUpdatedFallbackInfo(sdkKey, urlConfig, errorMessage, timedOut) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n try {\n if (!_isDomainFailure(errorMessage, timedOut)) {\n return false;\n }\n const canUseNetworkFallbacks = urlConfig.customUrl == null && urlConfig.fallbackUrls == null;\n const urls = canUseNetworkFallbacks\n ? yield this._tryFetchFallbackUrlsFromNetwork(urlConfig)\n : urlConfig.fallbackUrls;\n const newUrl = this._pickNewFallbackUrl((_a = this._fallbackInfo) === null || _a === void 0 ? void 0 : _a[urlConfig.endpoint], urls);\n if (!newUrl) {\n return false;\n }\n this._updateFallbackInfoWithNewUrl(sdkKey, urlConfig, newUrl);\n return true;\n }\n catch (error) {\n (_b = this._errorBoundary) === null || _b === void 0 ? void 0 : _b.logError('tryFetchUpdatedFallbackInfo', error);\n return false;\n }\n });\n }\n _updateFallbackInfoWithNewUrl(sdkKey, urlConfig, newUrl) {\n var _a, _b, _c;\n const newFallbackInfo = {\n urlConfigChecksum: urlConfig.getChecksum(),\n url: newUrl,\n expiryTime: Date.now() + DEFAULT_TTL_MS,\n previous: [],\n };\n const endpoint = urlConfig.endpoint;\n const previousInfo = (_a = this._fallbackInfo) === null || _a === void 0 ? void 0 : _a[endpoint];\n if (previousInfo) {\n newFallbackInfo.previous.push(...previousInfo.previous);\n }\n if (newFallbackInfo.previous.length > 10) {\n newFallbackInfo.previous = [];\n }\n const previousUrl = (_c = (_b = this._fallbackInfo) === null || _b === void 0 ? void 0 : _b[endpoint]) === null || _c === void 0 ? void 0 : _c.url;\n if (previousUrl != null) {\n newFallbackInfo.previous.push(previousUrl);\n }\n this._fallbackInfo = Object.assign(Object.assign({}, this._fallbackInfo), { [endpoint]: newFallbackInfo });\n _tryWriteFallbackInfoToCache(sdkKey, this._fallbackInfo);\n }\n _tryFetchFallbackUrlsFromNetwork(urlConfig) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const cooldown = this._dnsQueryCooldowns[urlConfig.endpoint];\n if (cooldown && Date.now() < cooldown) {\n return null;\n }\n this._dnsQueryCooldowns[urlConfig.endpoint] = Date.now() + COOLDOWN_TIME_MS;\n const result = [];\n const records = yield (0, DnsTxtQuery_1._fetchTxtRecords)((_a = this._networkOverrideFunc) !== null && _a !== void 0 ? _a : fetch);\n const path = _extractPathFromUrl(urlConfig.defaultUrl);\n for (const record of records) {\n if (!record.startsWith(urlConfig.endpointDnsKey + '=')) {\n continue;\n }\n const parts = record.split('=');\n if (parts.length > 1) {\n let baseUrl = parts[1];\n if (baseUrl.endsWith('/')) {\n baseUrl = baseUrl.slice(0, -1);\n }\n result.push(`https://${baseUrl}${path}`);\n }\n }\n return result;\n });\n }\n _pickNewFallbackUrl(currentFallbackInfo, urls) {\n var _a;\n if (urls == null) {\n return null;\n }\n const previouslyUsed = new Set((_a = currentFallbackInfo === null || currentFallbackInfo === void 0 ? void 0 : currentFallbackInfo.previous) !== null && _a !== void 0 ? _a : []);\n const currentFallbackUrl = currentFallbackInfo === null || currentFallbackInfo === void 0 ? void 0 : currentFallbackInfo.url;\n let found = null;\n for (const loopUrl of urls) {\n const url = loopUrl.endsWith('/') ? loopUrl.slice(0, -1) : loopUrl;\n if (!previouslyUsed.has(loopUrl) && url !== currentFallbackUrl) {\n found = url;\n break;\n }\n }\n return found;\n }\n}\nexports.NetworkFallbackResolver = NetworkFallbackResolver;\nfunction _isDomainFailure(errorMsg, timedOut) {\n var _a;\n const lowerErrorMsg = (_a = errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.toLowerCase()) !== null && _a !== void 0 ? _a : '';\n return (timedOut ||\n lowerErrorMsg.includes('uncaught exception') ||\n lowerErrorMsg.includes('failed to fetch') ||\n lowerErrorMsg.includes('networkerror when attempting to fetch resource'));\n}\nexports._isDomainFailure = _isDomainFailure;\nfunction _getFallbackInfoStorageKey(sdkKey) {\n return `statsig.network_fallback.${(0, Hashing_1._DJB2)(sdkKey)}`;\n}\nfunction _tryWriteFallbackInfoToCache(sdkKey, info) {\n const hashKey = _getFallbackInfoStorageKey(sdkKey);\n if (!info || Object.keys(info).length === 0) {\n StorageProvider_1.Storage.removeItem(hashKey);\n return;\n }\n StorageProvider_1.Storage.setItem(hashKey, JSON.stringify(info));\n}\nfunction _readFallbackInfoFromCache(sdkKey) {\n const hashKey = _getFallbackInfoStorageKey(sdkKey);\n const data = StorageProvider_1.Storage.getItem(hashKey);\n if (!data) {\n return null;\n }\n try {\n return JSON.parse(data);\n }\n catch (_a) {\n Log_1.Log.error('Failed to parse FallbackInfo');\n return null;\n }\n}\nfunction _extractPathFromUrl(urlString) {\n try {\n const url = new URL(urlString);\n return url.pathname;\n }\n catch (error) {\n return null;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDKFlags = void 0;\nconst FLAGMAP = {};\nexports.SDKFlags = {\n setFlags: (sdkKey, flags) => {\n FLAGMAP[sdkKey] = flags;\n },\n get: (sdkKey, flagKey) => {\n var _a, _b;\n return (_b = (_a = FLAGMAP[sdkKey]) === null || _a === void 0 ? void 0 : _a[flagKey]) !== null && _b !== void 0 ? _b : false;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SDKType = void 0;\nconst SDK_CLIENT = {};\nlet suffix;\nexports.SDKType = {\n _get: (sdkKey) => {\n var _a;\n return ((_a = SDK_CLIENT[sdkKey]) !== null && _a !== void 0 ? _a : 'js-mono') + (suffix !== null && suffix !== void 0 ? suffix : '');\n },\n _setClientType(sdkKey, client) {\n SDK_CLIENT[sdkKey] = client;\n },\n _setBindingType(binding) {\n if (!suffix || suffix === '-react') {\n suffix = '-' + binding;\n }\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getUnloadEvent = exports._getCurrentPageUrlSafe = exports._addDocumentEventListenerSafe = exports._addWindowEventListenerSafe = exports._isServerEnv = exports._getDocumentSafe = exports._getWindowSafe = void 0;\nconst _getWindowSafe = () => {\n return typeof window !== 'undefined' ? window : null;\n};\nexports._getWindowSafe = _getWindowSafe;\nconst _getDocumentSafe = () => {\n var _a;\n const win = (0, exports._getWindowSafe)();\n return (_a = win === null || win === void 0 ? void 0 : win.document) !== null && _a !== void 0 ? _a : null;\n};\nexports._getDocumentSafe = _getDocumentSafe;\nconst _isServerEnv = () => {\n if ((0, exports._getDocumentSafe)() !== null) {\n return false;\n }\n const isNode = typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null;\n const isVercel = typeof EdgeRuntime === 'string';\n return isVercel || isNode;\n};\nexports._isServerEnv = _isServerEnv;\nconst _addWindowEventListenerSafe = (key, listener) => {\n const win = (0, exports._getWindowSafe)();\n if (typeof (win === null || win === void 0 ? void 0 : win.addEventListener) === 'function') {\n win.addEventListener(key, listener);\n }\n};\nexports._addWindowEventListenerSafe = _addWindowEventListenerSafe;\nconst _addDocumentEventListenerSafe = (key, listener) => {\n const doc = (0, exports._getDocumentSafe)();\n if (typeof (doc === null || doc === void 0 ? void 0 : doc.addEventListener) === 'function') {\n doc.addEventListener(key, listener);\n }\n};\nexports._addDocumentEventListenerSafe = _addDocumentEventListenerSafe;\nconst _getCurrentPageUrlSafe = () => {\n var _a;\n try {\n return (_a = (0, exports._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location.href.split(/[?#]/)[0];\n }\n catch (_b) {\n return;\n }\n};\nexports._getCurrentPageUrlSafe = _getCurrentPageUrlSafe;\nconst _getUnloadEvent = () => {\n const win = (0, exports._getWindowSafe)();\n if (!win) {\n return 'beforeunload';\n }\n const eventType = 'onpagehide' in win ? 'pagehide' : 'beforeunload';\n return eventType;\n};\nexports._getUnloadEvent = _getUnloadEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigSession = exports.SessionID = void 0;\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Log_1 = require(\"./Log\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UUID_1 = require(\"./UUID\");\nconst MAX_SESSION_IDLE_TIME = 30 * 60 * 1000; // 30 minutes\nconst MAX_SESSION_AGE = 4 * 60 * 60 * 1000; // 4 hours\nconst PROMISE_MAP = {};\nexports.SessionID = {\n get: (sdkKey) => {\n return exports.StatsigSession.get(sdkKey).data.sessionID;\n },\n};\nexports.StatsigSession = {\n get: (sdkKey) => {\n if (PROMISE_MAP[sdkKey] == null) {\n PROMISE_MAP[sdkKey] = _loadSession(sdkKey);\n }\n const session = PROMISE_MAP[sdkKey];\n return _bumpSession(session);\n },\n overrideInitialSessionID: (override, sdkKey) => {\n PROMISE_MAP[sdkKey] = _overrideSessionId(override, sdkKey);\n },\n};\nfunction _loadSession(sdkKey) {\n let data = _loadFromStorage(sdkKey);\n const now = Date.now();\n if (!data) {\n data = {\n sessionID: (0, UUID_1.getUUID)(),\n startTime: now,\n lastUpdate: now,\n };\n }\n return {\n data,\n sdkKey,\n };\n}\nfunction _overrideSessionId(override, sdkKey) {\n const now = Date.now();\n return {\n data: {\n sessionID: override,\n startTime: now,\n lastUpdate: now,\n },\n sdkKey,\n };\n}\nfunction _bumpSession(session) {\n const now = Date.now();\n const data = session.data;\n const sdkKey = session.sdkKey;\n if (_isIdle(data) || _hasRunTooLong(data)) {\n data.sessionID = (0, UUID_1.getUUID)();\n data.startTime = now;\n const client = __STATSIG__ === null || __STATSIG__ === void 0 ? void 0 : __STATSIG__.instance(sdkKey);\n if (client) {\n client.$emt({ name: 'session_expired' });\n }\n }\n data.lastUpdate = now;\n _persistToStorage(data, session.sdkKey);\n clearTimeout(session.idleTimeoutID);\n clearTimeout(session.ageTimeoutID);\n const lifetime = now - data.startTime;\n session.idleTimeoutID = _createSessionTimeout(sdkKey, MAX_SESSION_IDLE_TIME);\n session.ageTimeoutID = _createSessionTimeout(sdkKey, MAX_SESSION_AGE - lifetime);\n return session;\n}\nfunction _createSessionTimeout(sdkKey, duration) {\n return setTimeout(() => {\n var _a;\n const client = (_a = (0, __StatsigGlobal_1._getStatsigGlobal)()) === null || _a === void 0 ? void 0 : _a.instance(sdkKey);\n if (client) {\n client.$emt({ name: 'session_expired' });\n }\n }, duration);\n}\nfunction _isIdle({ lastUpdate }) {\n return Date.now() - lastUpdate > MAX_SESSION_IDLE_TIME;\n}\nfunction _hasRunTooLong({ startTime }) {\n return Date.now() - startTime > MAX_SESSION_AGE;\n}\nfunction _getSessionIDStorageKey(sdkKey) {\n return `statsig.session_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nfunction _persistToStorage(session, sdkKey) {\n const storageKey = _getSessionIDStorageKey(sdkKey);\n try {\n (0, StorageProvider_1._setObjectInStorage)(storageKey, session);\n }\n catch (e) {\n Log_1.Log.warn('Failed to save SessionID');\n }\n}\nfunction _loadFromStorage(sdkKey) {\n const storageKey = _getSessionIDStorageKey(sdkKey);\n return (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._fastApproxSizeOf = void 0;\nconst CURLY_AND_SQUARE_BRACKET_SIZE = 2; // [] for array, {} for object\nconst APPROX_ADDITIONAL_SIZE = 1; // additional size for comma and stuff\nconst _fastApproxSizeOf = (obj, max) => {\n let size = 0;\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const value = obj[key];\n size += key.length;\n if (typeof value === 'object' && value !== null) {\n size += (0, exports._fastApproxSizeOf)(value, max) + CURLY_AND_SQUARE_BRACKET_SIZE;\n }\n else {\n size += String(value).length + APPROX_ADDITIONAL_SIZE;\n }\n if (size >= max) {\n // exit early if we've exceeded the max\n return size;\n }\n }\n return size;\n};\nexports._fastApproxSizeOf = _fastApproxSizeOf;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getCookieName = exports.StableID = void 0;\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UUID_1 = require(\"./UUID\");\nconst PROMISE_MAP = {};\nconst COOKIE_ENABLED_MAP = {};\nconst DISABLED_MAP = {};\nexports.StableID = {\n cookiesEnabled: false,\n randomID: Math.random().toString(36),\n get: (sdkKey) => {\n if (DISABLED_MAP[sdkKey]) {\n return null;\n }\n if (PROMISE_MAP[sdkKey] != null) {\n return PROMISE_MAP[sdkKey];\n }\n let stableID = null;\n stableID = _loadFromCookie(sdkKey);\n if (stableID != null) {\n PROMISE_MAP[sdkKey] = stableID;\n _persistToStorage(stableID, sdkKey);\n return stableID;\n }\n stableID = _loadFromStorage(sdkKey);\n if (stableID == null) {\n stableID = (0, UUID_1.getUUID)();\n }\n _persistToStorage(stableID, sdkKey);\n _persistToCookie(stableID, sdkKey);\n PROMISE_MAP[sdkKey] = stableID;\n return stableID;\n },\n setOverride: (override, sdkKey) => {\n PROMISE_MAP[sdkKey] = override;\n _persistToStorage(override, sdkKey);\n _persistToCookie(override, sdkKey);\n },\n _setCookiesEnabled: (sdkKey, cookiesEnabled) => {\n COOKIE_ENABLED_MAP[sdkKey] = cookiesEnabled;\n },\n _setDisabled: (sdkKey, disabled) => {\n DISABLED_MAP[sdkKey] = disabled;\n },\n};\nfunction _getStableIDStorageKey(sdkKey) {\n return `statsig.stable_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nfunction _persistToStorage(stableID, sdkKey) {\n const storageKey = _getStableIDStorageKey(sdkKey);\n try {\n (0, StorageProvider_1._setObjectInStorage)(storageKey, stableID);\n }\n catch (e) {\n Log_1.Log.warn('Failed to save StableID to storage');\n }\n}\nfunction _loadFromStorage(sdkKey) {\n const storageKey = _getStableIDStorageKey(sdkKey);\n return (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n}\nfunction _loadFromCookie(sdkKey) {\n if (!COOKIE_ENABLED_MAP[sdkKey] || (0, SafeJs_1._getDocumentSafe)() == null) {\n return null;\n }\n const cookies = document.cookie.split(';');\n for (const cookie of cookies) {\n const [key, value] = cookie.trim().split('=');\n if (key === getCookieName(sdkKey)) {\n return decodeURIComponent(value);\n }\n }\n return null;\n}\nfunction _persistToCookie(stableID, sdkKey) {\n if (!COOKIE_ENABLED_MAP[sdkKey] || (0, SafeJs_1._getDocumentSafe)() == null) {\n return;\n }\n const expiryDate = new Date();\n expiryDate.setFullYear(expiryDate.getFullYear() + 1);\n document.cookie = `${getCookieName(sdkKey)}=${encodeURIComponent(stableID)}; expires=${expiryDate.toUTCString()}; path=/`;\n}\nfunction getCookieName(sdkKey) {\n return `statsig.stable_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nexports.getCookieName = getCookieName;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigClientBase = void 0;\nrequire(\"./$_StatsigGlobal\");\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst ErrorBoundary_1 = require(\"./ErrorBoundary\");\nconst EventLogger_1 = require(\"./EventLogger\");\nconst Log_1 = require(\"./Log\");\nconst MemoKey_1 = require(\"./MemoKey\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst MAX_MEMO_CACHE_SIZE = 3000;\nclass StatsigClientBase {\n constructor(sdkKey, adapter, network, options) {\n var _a, _b, _c, _d;\n this.loadingStatus = 'Uninitialized';\n this._initializePromise = null;\n this._listeners = {};\n const emitter = this.$emt.bind(this);\n (options === null || options === void 0 ? void 0 : options.logLevel) != null && (Log_1.Log.level = options.logLevel);\n (options === null || options === void 0 ? void 0 : options.disableStorage) && StorageProvider_1.Storage._setDisabled(true);\n (options === null || options === void 0 ? void 0 : options.initialSessionID) &&\n SessionID_1.StatsigSession.overrideInitialSessionID(options.initialSessionID, sdkKey);\n (options === null || options === void 0 ? void 0 : options.storageProvider) && StorageProvider_1.Storage._setProvider(options.storageProvider);\n (options === null || options === void 0 ? void 0 : options.enableCookies) &&\n StableID_1.StableID._setCookiesEnabled(sdkKey, options.enableCookies);\n (options === null || options === void 0 ? void 0 : options.disableStableID) && StableID_1.StableID._setDisabled(sdkKey, true);\n this._sdkKey = sdkKey;\n this._options = options !== null && options !== void 0 ? options : {};\n this._memoCache = {};\n this.overrideAdapter = (_a = options === null || options === void 0 ? void 0 : options.overrideAdapter) !== null && _a !== void 0 ? _a : null;\n this._logger = new EventLogger_1.EventLogger(sdkKey, emitter, network, options);\n this._errorBoundary = new ErrorBoundary_1.ErrorBoundary(sdkKey, options, emitter);\n this._errorBoundary.wrap(this);\n this._errorBoundary.wrap(adapter);\n this._errorBoundary.wrap(this._logger);\n network.setErrorBoundary(this._errorBoundary);\n this.dataAdapter = adapter;\n this.dataAdapter.attach(sdkKey, options, network);\n this.storageProvider = StorageProvider_1.Storage;\n (_d = (_c = (_b = this.overrideAdapter) === null || _b === void 0 ? void 0 : _b.loadFromStorage) === null || _c === void 0 ? void 0 : _c.call(_b)) === null || _d === void 0 ? void 0 : _d.catch((e) => this._errorBoundary.logError('OA::loadFromStorage', e));\n this._primeReadyRipcord();\n _assignGlobalInstance(sdkKey, this);\n }\n /**\n * Updates runtime configuration options for the SDK, allowing toggling of certain behaviors such as logging and storage to comply with user preferences or regulations such as GDPR.\n *\n * @param {StatsigRuntimeMutableOptions} options - The configuration options that dictate the runtime behavior of the SDK.\n */\n updateRuntimeOptions(options) {\n if (options.loggingEnabled) {\n this._options.loggingEnabled = options.loggingEnabled;\n this._logger.setLoggingEnabled(options.loggingEnabled);\n }\n else if (options.disableLogging != null) {\n this._options.disableLogging = options.disableLogging;\n this._logger.setLoggingEnabled(options.disableLogging ? 'disabled' : 'browser-only');\n }\n if (options.disableStorage != null) {\n this._options.disableStorage = options.disableStorage;\n StorageProvider_1.Storage._setDisabled(options.disableStorage);\n }\n if (options.enableCookies != null) {\n this._options.enableCookies = options.enableCookies;\n StableID_1.StableID._setCookiesEnabled(this._sdkKey, options.enableCookies);\n }\n if (options.logEventCompressionMode) {\n this._logger.setLogEventCompressionMode(options.logEventCompressionMode);\n }\n else if (options.disableCompression) {\n this._logger.setLogEventCompressionMode(StatsigOptionsCommon_1.LogEventCompressionMode.Disabled);\n }\n }\n /**\n * Flushes any currently queued events.\n */\n flush() {\n return this._logger.flush();\n }\n /**\n * Gracefully shuts down the SDK, ensuring that all pending events are send before the SDK stops.\n * This function emits a 'pre_shutdown' event and then waits for the logger to complete its shutdown process.\n *\n * @returns {Promise<void>} A promise that resolves when all shutdown procedures, including logging shutdown, have been completed.\n */\n shutdown() {\n return __awaiter(this, void 0, void 0, function* () {\n this.$emt({ name: 'pre_shutdown' });\n this._setStatus('Uninitialized', null);\n this._initializePromise = null;\n yield this._logger.stop();\n });\n }\n /**\n * Subscribes a callback function to a specific {@link StatsigClientEvent} or all StatsigClientEvents if the wildcard '*' is used.\n * Once subscribed, the listener callback will be invoked whenever the specified event is emitted.\n *\n * @param {StatsigClientEventName} event - The name of the event to subscribe to, or '*' to subscribe to all events.\n * @param {StatsigClientEventCallback<T>} listener - The callback function to execute when the event occurs. The function receives event-specific data as its parameter.\n * @see {@link off} for unsubscribing from events.\n */\n on(event, listener) {\n if (!this._listeners[event]) {\n this._listeners[event] = [];\n }\n this._listeners[event].push(listener);\n }\n /**\n * Unsubscribes a previously registered callback function from a specific {@link StatsigClientEvent} or all StatsigClientEvents if the wildcard '*' is used.\n *\n * @param {StatsigClientEventName} event - The name of the event from which to unsubscribe, or '*' to unsubscribe from all events.\n * @param {StatsigClientEventCallback<T>} listener - The callback function to remove from the event's notification list.\n * @see {@link on} for subscribing to events.\n */\n off(event, listener) {\n if (this._listeners[event]) {\n const index = this._listeners[event].indexOf(listener);\n if (index !== -1) {\n this._listeners[event].splice(index, 1);\n }\n }\n }\n $on(event, listener) {\n listener.__isInternal = true;\n this.on(event, listener);\n }\n $emt(event) {\n var _a;\n const barrier = (listener) => {\n try {\n listener(event);\n }\n catch (error) {\n if (listener.__isInternal === true) {\n this._errorBoundary.logError(`__emit:${event.name}`, error);\n return;\n }\n Log_1.Log.error(`An error occurred in a StatsigClientEvent listener. This is not an issue with Statsig.`, event);\n }\n };\n if (this._listeners[event.name]) {\n this._listeners[event.name].forEach((l) => barrier(l));\n }\n (_a = this._listeners['*']) === null || _a === void 0 ? void 0 : _a.forEach(barrier);\n }\n _setStatus(newStatus, values) {\n this.loadingStatus = newStatus;\n this._memoCache = {};\n this.$emt({ name: 'values_updated', status: newStatus, values });\n }\n _enqueueExposure(name, exposure, options) {\n if ((options === null || options === void 0 ? void 0 : options.disableExposureLog) === true) {\n this._logger.incrementNonExposureCount(name);\n return;\n }\n this._logger.enqueue(exposure);\n }\n _memoize(prefix, fn) {\n return (name, options) => {\n if (this._options.disableEvaluationMemoization) {\n return fn(name, options);\n }\n const memoKey = (0, MemoKey_1.createMemoKey)(prefix, name, options);\n if (!memoKey) {\n return fn(name, options);\n }\n if (!(memoKey in this._memoCache)) {\n if (Object.keys(this._memoCache).length >= MAX_MEMO_CACHE_SIZE) {\n this._memoCache = {};\n }\n this._memoCache[memoKey] = fn(name, options);\n }\n return this._memoCache[memoKey];\n };\n }\n}\nexports.StatsigClientBase = StatsigClientBase;\nfunction _assignGlobalInstance(sdkKey, client) {\n var _a;\n if ((0, SafeJs_1._isServerEnv)()) {\n return;\n }\n const statsigGlobal = (0, __StatsigGlobal_1._getStatsigGlobal)();\n const instances = (_a = statsigGlobal.instances) !== null && _a !== void 0 ? _a : {};\n const inst = client;\n if (instances[sdkKey] != null) {\n Log_1.Log.warn('Creating multiple Statsig clients with the same SDK key can lead to unexpected behavior. Multi-instance support requires different SDK keys.');\n }\n instances[sdkKey] = inst;\n if (!statsigGlobal.firstInstance) {\n statsigGlobal.firstInstance = inst;\n }\n statsigGlobal.instances = instances;\n __STATSIG__ = statsigGlobal;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorTag = void 0;\nexports.ErrorTag = {\n NetworkError: 'NetworkError',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataAdapterCachePrefix = void 0;\nexports.DataAdapterCachePrefix = 'statsig.cached';\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._createLayerParameterExposure = exports._createConfigExposure = exports._mapExposures = exports._createGateExposure = exports._isExposureEvent = void 0;\nconst CONFIG_EXPOSURE_NAME = 'statsig::config_exposure';\nconst GATE_EXPOSURE_NAME = 'statsig::gate_exposure';\nconst LAYER_EXPOSURE_NAME = 'statsig::layer_exposure';\nconst _createExposure = (eventName, user, details, metadata, secondaryExposures) => {\n if (details.bootstrapMetadata) {\n metadata['bootstrapMetadata'] = details.bootstrapMetadata;\n }\n return {\n eventName,\n user,\n value: null,\n metadata: _addEvaluationDetailsToMetadata(details, metadata),\n secondaryExposures,\n time: Date.now(),\n };\n};\nconst _isExposureEvent = ({ eventName, }) => {\n return (eventName === GATE_EXPOSURE_NAME ||\n eventName === CONFIG_EXPOSURE_NAME ||\n eventName === LAYER_EXPOSURE_NAME);\n};\nexports._isExposureEvent = _isExposureEvent;\nconst _createGateExposure = (user, gate, exposureMapping) => {\n var _a, _b, _c;\n const metadata = {\n gate: gate.name,\n gateValue: String(gate.value),\n ruleID: gate.ruleID,\n };\n if (((_a = gate.__evaluation) === null || _a === void 0 ? void 0 : _a.version) != null) {\n metadata['configVersion'] = gate.__evaluation.version;\n }\n return _createExposure(GATE_EXPOSURE_NAME, user, gate.details, metadata, _mapExposures((_c = (_b = gate.__evaluation) === null || _b === void 0 ? void 0 : _b.secondary_exposures) !== null && _c !== void 0 ? _c : [], exposureMapping));\n};\nexports._createGateExposure = _createGateExposure;\nfunction _mapExposures(exposures, exposureMapping) {\n return exposures\n .map((exposure) => {\n if (typeof exposure === 'string') {\n return (exposureMapping !== null && exposureMapping !== void 0 ? exposureMapping : {})[exposure];\n }\n return exposure;\n })\n .filter((exposure) => exposure != null);\n}\nexports._mapExposures = _mapExposures;\nconst _createConfigExposure = (user, config, exposureMapping) => {\n var _a, _b, _c, _d;\n const metadata = {\n config: config.name,\n ruleID: config.ruleID,\n };\n if (((_a = config.__evaluation) === null || _a === void 0 ? void 0 : _a.version) != null) {\n metadata['configVersion'] = config.__evaluation.version;\n }\n if (((_b = config.__evaluation) === null || _b === void 0 ? void 0 : _b.passed) != null) {\n metadata['rulePassed'] = String(config.__evaluation.passed);\n }\n return _createExposure(CONFIG_EXPOSURE_NAME, user, config.details, metadata, _mapExposures((_d = (_c = config.__evaluation) === null || _c === void 0 ? void 0 : _c.secondary_exposures) !== null && _d !== void 0 ? _d : [], exposureMapping));\n};\nexports._createConfigExposure = _createConfigExposure;\nconst _createLayerParameterExposure = (user, layer, parameterName, exposureMapping) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const evaluation = layer.__evaluation;\n const isExplicit = ((_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.explicit_parameters) === null || _a === void 0 ? void 0 : _a.includes(parameterName)) === true;\n let allocatedExperiment = '';\n let secondaryExposures = (_b = evaluation === null || evaluation === void 0 ? void 0 : evaluation.undelegated_secondary_exposures) !== null && _b !== void 0 ? _b : [];\n if (isExplicit) {\n allocatedExperiment = (_c = evaluation.allocated_experiment_name) !== null && _c !== void 0 ? _c : '';\n secondaryExposures = (_d = evaluation.secondary_exposures) !== null && _d !== void 0 ? _d : [];\n }\n const parameterRuleIDs = (_e = layer.__evaluation) === null || _e === void 0 ? void 0 : _e.parameter_rule_ids;\n const metadata = {\n config: layer.name,\n parameterName,\n ruleID: (_f = parameterRuleIDs === null || parameterRuleIDs === void 0 ? void 0 : parameterRuleIDs[parameterName]) !== null && _f !== void 0 ? _f : layer.ruleID,\n allocatedExperiment,\n isExplicitParameter: String(isExplicit),\n };\n if (((_g = layer.__evaluation) === null || _g === void 0 ? void 0 : _g.version) != null) {\n metadata['configVersion'] = layer.__evaluation.version;\n }\n return _createExposure(LAYER_EXPOSURE_NAME, user, layer.details, metadata, _mapExposures(secondaryExposures, exposureMapping));\n};\nexports._createLayerParameterExposure = _createLayerParameterExposure;\nconst _addEvaluationDetailsToMetadata = (details, metadata) => {\n metadata['reason'] = details.reason;\n if (details.lcut) {\n metadata['lcut'] = String(details.lcut);\n }\n if (details.receivedAt) {\n metadata['receivedAt'] = String(details.receivedAt);\n }\n return metadata;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.26.0';\nlet metadata = {\n sdkVersion: exports.SDK_VERSION,\n sdkType: 'js-mono', // js-mono is overwritten by Precomp and OnDevice clients\n};\nexports.StatsigMetadataProvider = {\n get: () => metadata,\n add: (additions) => {\n metadata = Object.assign(Object.assign({}, metadata), additions);\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LoggingEnabledOption = exports.LogEventCompressionMode = void 0;\nexports.LogEventCompressionMode = {\n /** Do not compress request bodies */\n Disabled: 'd',\n /** Compress request bodies unless a network proxy is configured */\n Enabled: 'e',\n /** Always compress request bodies, even when a proxy is configured */\n Forced: 'f',\n};\nexports.LoggingEnabledOption = {\n disabled: 'disabled',\n browserOnly: 'browser-only',\n always: 'always',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._makeTypedGet = exports._mergeOverride = exports._makeLayer = exports._makeExperiment = exports._makeDynamicConfig = exports._makeFeatureGate = void 0;\nconst Log_1 = require(\"./Log\");\nconst TypingUtils_1 = require(\"./TypingUtils\");\nfunction _makeEvaluation(name, details, evaluation, value) {\n var _a;\n return {\n name,\n details,\n ruleID: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.rule_id) !== null && _a !== void 0 ? _a : '',\n __evaluation: evaluation,\n value,\n };\n}\nfunction _makeFeatureGate(name, details, evaluation) {\n var _a;\n return Object.assign(Object.assign({}, _makeEvaluation(name, details, evaluation, (evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) === true)), { idType: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type) !== null && _a !== void 0 ? _a : null });\n}\nexports._makeFeatureGate = _makeFeatureGate;\nfunction _makeDynamicConfig(name, details, evaluation) {\n var _a;\n const value = (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) !== null && _a !== void 0 ? _a : {};\n return Object.assign(Object.assign({}, _makeEvaluation(name, details, evaluation, value)), { get: _makeTypedGet(name, evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) });\n}\nexports._makeDynamicConfig = _makeDynamicConfig;\nfunction _makeExperiment(name, details, evaluation) {\n var _a;\n const result = _makeDynamicConfig(name, details, evaluation);\n return Object.assign(Object.assign({}, result), { groupName: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.group_name) !== null && _a !== void 0 ? _a : null });\n}\nexports._makeExperiment = _makeExperiment;\nfunction _makeLayer(name, details, evaluation, exposeFunc) {\n var _a, _b;\n return Object.assign(Object.assign({}, _makeEvaluation(name, details, evaluation, undefined)), { get: _makeTypedGet(name, evaluation === null || evaluation === void 0 ? void 0 : evaluation.value, exposeFunc), groupName: (_a = evaluation === null || evaluation === void 0 ? void 0 : evaluation.group_name) !== null && _a !== void 0 ? _a : null, __value: (_b = evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) !== null && _b !== void 0 ? _b : {} });\n}\nexports._makeLayer = _makeLayer;\nfunction _mergeOverride(original, overridden, value, exposeFunc) {\n return Object.assign(Object.assign(Object.assign({}, original), overridden), { get: _makeTypedGet(original.name, value, exposeFunc) });\n}\nexports._mergeOverride = _mergeOverride;\nfunction _makeTypedGet(name, value, exposeFunc) {\n return (param, fallback) => {\n var _a;\n const found = (_a = value === null || value === void 0 ? void 0 : value[param]) !== null && _a !== void 0 ? _a : null;\n if (found == null) {\n return (fallback !== null && fallback !== void 0 ? fallback : null);\n }\n if (fallback != null && !(0, TypingUtils_1._isTypeMatch)(found, fallback)) {\n Log_1.Log.warn(`Parameter type mismatch. '${name}.${param}' was found to be type '${typeof found}' but fallback/return type is '${typeof fallback}'. See https://docs.statsig.com/client/javascript-sdk/#typed-getters`);\n return (fallback !== null && fallback !== void 0 ? fallback : null);\n }\n exposeFunc === null || exposeFunc === void 0 ? void 0 : exposeFunc(param);\n return found;\n };\n}\nexports._makeTypedGet = _makeTypedGet;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UPDATE_DETAIL_ERROR_MESSAGES = exports.createUpdateDetails = void 0;\nconst createUpdateDetails = (success, source, initDuration, error, sourceUrl, warnings) => {\n return {\n duration: initDuration,\n source,\n success,\n error,\n sourceUrl,\n warnings,\n };\n};\nexports.createUpdateDetails = createUpdateDetails;\nexports.UPDATE_DETAIL_ERROR_MESSAGES = {\n NO_NETWORK_DATA: 'No data was returned from the network. This may be due to a network timeout if a timeout value was specified in the options or ad blocker error.',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getFullUserHash = exports._normalizeUser = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nfunction _normalizeUser(original, options, fallbackEnvironment) {\n try {\n const copy = JSON.parse(JSON.stringify(original));\n if (options != null && options.environment != null) {\n copy.statsigEnvironment = options.environment;\n }\n else if (fallbackEnvironment != null) {\n copy.statsigEnvironment = { tier: fallbackEnvironment };\n }\n return copy;\n }\n catch (error) {\n Log_1.Log.error('Failed to JSON.stringify user');\n return { statsigEnvironment: undefined };\n }\n}\nexports._normalizeUser = _normalizeUser;\nfunction _getFullUserHash(user) {\n return user ? (0, Hashing_1._DJB2Object)(user) : null;\n}\nexports._getFullUserHash = _getFullUserHash;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._setObjectInStorage = exports._getObjectFromStorage = exports.Storage = void 0;\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst inMemoryStore = {};\nconst _inMemoryProvider = {\n isReady: () => true,\n isReadyResolver: () => null,\n getProviderName: () => 'InMemory',\n getItem: (key) => inMemoryStore[key] ? inMemoryStore[key] : null,\n setItem: (key, value) => {\n inMemoryStore[key] = value;\n },\n removeItem: (key) => {\n delete inMemoryStore[key];\n },\n getAllKeys: () => Object.keys(inMemoryStore),\n};\nlet _localStorageProvider = null;\ntry {\n const win = (0, SafeJs_1._getWindowSafe)();\n if (win &&\n win.localStorage &&\n typeof win.localStorage.getItem === 'function') {\n _localStorageProvider = {\n isReady: () => true,\n isReadyResolver: () => null,\n getProviderName: () => 'LocalStorage',\n getItem: (key) => win.localStorage.getItem(key),\n setItem: (key, value) => win.localStorage.setItem(key, value),\n removeItem: (key) => win.localStorage.removeItem(key),\n getAllKeys: () => Object.keys(win.localStorage),\n };\n }\n}\ncatch (error) {\n Log_1.Log.warn('Failed to setup localStorageProvider.');\n}\nlet _main = _localStorageProvider !== null && _localStorageProvider !== void 0 ? _localStorageProvider : _inMemoryProvider;\nlet _current = _main;\nfunction _inMemoryBreaker(action) {\n try {\n return action();\n }\n catch (error) {\n if (error instanceof Error && error.name === 'SecurityError') {\n exports.Storage._setProvider(_inMemoryProvider);\n return null;\n }\n if (error instanceof Error && error.name === 'QuotaExceededError') {\n const allKeys = exports.Storage.getAllKeys();\n const statsigKeys = allKeys.filter((key) => key.startsWith('statsig.'));\n error.message = `${error.message}. Statsig Keys: ${statsigKeys.length}`;\n }\n throw error;\n }\n}\nexports.Storage = {\n isReady: () => _current.isReady(),\n isReadyResolver: () => _current.isReadyResolver(),\n getProviderName: () => _current.getProviderName(),\n getItem: (key) => _inMemoryBreaker(() => _current.getItem(key)),\n setItem: (key, value) => _inMemoryBreaker(() => _current.setItem(key, value)),\n removeItem: (key) => _current.removeItem(key),\n getAllKeys: () => _current.getAllKeys(),\n // StorageProviderManagment\n _setProvider: (newProvider) => {\n _main = newProvider;\n _current = newProvider;\n },\n _setDisabled: (isDisabled) => {\n if (isDisabled) {\n _current = _inMemoryProvider;\n }\n else {\n _current = _main;\n }\n },\n};\nfunction _getObjectFromStorage(key) {\n const value = exports.Storage.getItem(key);\n return JSON.parse(value !== null && value !== void 0 ? value : 'null');\n}\nexports._getObjectFromStorage = _getObjectFromStorage;\nfunction _setObjectInStorage(key, obj) {\n exports.Storage.setItem(key, JSON.stringify(obj));\n}\nexports._setObjectInStorage = _setObjectInStorage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._typedJsonParse = void 0;\nconst Log_1 = require(\"./Log\");\n/**\n *\n * @param {string} data The values to parse into T\n * @param {string} guard A field that must exists on the parsed object for the parse to be valid\n * @param {string} error An error to print via Log.error() when parsing fails\n * @returns {T | null} The parse object T or null if it failed\n */\nfunction _typedJsonParse(data, guard, typeName) {\n try {\n const result = JSON.parse(data);\n if (result &&\n typeof result === 'object' &&\n guard in result) {\n return result;\n }\n }\n catch (_a) {\n // noop\n }\n Log_1.Log.error(`Failed to parse ${typeName}`);\n return null;\n}\nexports._typedJsonParse = _typedJsonParse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._isTypeMatch = exports._typeOf = void 0;\nfunction _typeOf(input) {\n return Array.isArray(input) ? 'array' : typeof input;\n}\nexports._typeOf = _typeOf;\nfunction _isTypeMatch(a, b) {\n const typeOf = (x) => Array.isArray(x) ? 'array' : x === null ? 'null' : typeof x;\n return typeOf(a) === typeOf(b);\n}\nexports._isTypeMatch = _isTypeMatch;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getUUID = void 0;\nfunction getUUID() {\n if (typeof crypto !== 'undefined' &&\n typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n let d = new Date().getTime();\n let d2 = (typeof performance !== 'undefined' &&\n performance.now &&\n performance.now() * 1000) ||\n 0;\n const y = '89ab'[Math.floor(Math.random() * 4)];\n return `xxxxxxxx-xxxx-4xxx-${y}xxx-xxxxxxxxxxxx`.replace(/[xy]/g, (c) => {\n let r = Math.random() * 16;\n if (d > 0) {\n r = (d + r) % 16 | 0;\n d = Math.floor(d / 16);\n }\n else {\n r = (d2 + r) % 16 | 0;\n d2 = Math.floor(d2 / 16);\n }\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16);\n });\n}\nexports.getUUID = getUUID;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlConfiguration = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst ENDPOINT_DNS_KEY_MAP = {\n [NetworkConfig_1.Endpoint._initialize]: 'i',\n [NetworkConfig_1.Endpoint._rgstr]: 'e',\n [NetworkConfig_1.Endpoint._download_config_specs]: 'd',\n};\nclass UrlConfiguration {\n constructor(endpoint, customUrl, customApi, fallbackUrls) {\n this.customUrl = null;\n this.fallbackUrls = null;\n this.endpoint = endpoint;\n this.endpointDnsKey = ENDPOINT_DNS_KEY_MAP[endpoint];\n if (customUrl) {\n this.customUrl = customUrl;\n }\n if (!customUrl && customApi) {\n this.customUrl = customApi.endsWith('/')\n ? `${customApi}${endpoint}`\n : `${customApi}/${endpoint}`;\n }\n if (fallbackUrls) {\n this.fallbackUrls = fallbackUrls;\n }\n const defaultApi = NetworkConfig_1.NetworkDefault[endpoint];\n this.defaultUrl = `${defaultApi}/${endpoint}`;\n }\n getUrl() {\n var _a;\n return (_a = this.customUrl) !== null && _a !== void 0 ? _a : this.defaultUrl;\n }\n getChecksum() {\n var _a;\n const fallbacks = ((_a = this.fallbackUrls) !== null && _a !== void 0 ? _a : []).sort().join(',');\n return (0, Hashing_1._DJB2)(this.customUrl + fallbacks);\n }\n}\nexports.UrlConfiguration = UrlConfiguration;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._notifyVisibilityChanged = exports._subscribeToVisiblityChanged = exports._isUnloading = exports._isCurrentlyVisible = void 0;\nconst SafeJs_1 = require(\"./SafeJs\");\nconst FOREGROUND = 'foreground';\nconst BACKGROUND = 'background';\nconst LISTENERS = [];\nlet current = FOREGROUND;\nlet isUnloading = false;\nconst _isCurrentlyVisible = () => {\n return current === FOREGROUND;\n};\nexports._isCurrentlyVisible = _isCurrentlyVisible;\nconst _isUnloading = () => isUnloading;\nexports._isUnloading = _isUnloading;\nconst _subscribeToVisiblityChanged = (listener) => {\n LISTENERS.unshift(listener);\n};\nexports._subscribeToVisiblityChanged = _subscribeToVisiblityChanged;\nconst _notifyVisibilityChanged = (visibility) => {\n if (visibility === current) {\n return;\n }\n current = visibility;\n LISTENERS.forEach((l) => l(visibility));\n};\nexports._notifyVisibilityChanged = _notifyVisibilityChanged;\n(0, SafeJs_1._addWindowEventListenerSafe)('focus', () => {\n isUnloading = false;\n (0, exports._notifyVisibilityChanged)(FOREGROUND);\n});\n(0, SafeJs_1._addWindowEventListenerSafe)('blur', () => (0, exports._notifyVisibilityChanged)(BACKGROUND));\n(0, SafeJs_1._addDocumentEventListenerSafe)('visibilitychange', () => {\n (0, exports._notifyVisibilityChanged)(document.visibilityState === 'visible' ? FOREGROUND : BACKGROUND);\n});\n(0, SafeJs_1._addWindowEventListenerSafe)((0, SafeJs_1._getUnloadEvent)(), () => {\n isUnloading = true;\n (0, exports._notifyVisibilityChanged)(BACKGROUND);\n});\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Storage = exports.Log = exports.EventLogger = exports.Diagnostics = void 0;\n/** Statsig Global should go first */\nrequire(\"./$_StatsigGlobal\");\nconst __StatsigGlobal_1 = require(\"./$_StatsigGlobal\");\nconst Diagnostics_1 = require(\"./Diagnostics\");\nObject.defineProperty(exports, \"Diagnostics\", { enumerable: true, get: function () { return Diagnostics_1.Diagnostics; } });\nconst EventLogger_1 = require(\"./EventLogger\");\nObject.defineProperty(exports, \"EventLogger\", { enumerable: true, get: function () { return EventLogger_1.EventLogger; } });\nconst Log_1 = require(\"./Log\");\nObject.defineProperty(exports, \"Log\", { enumerable: true, get: function () { return Log_1.Log; } });\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nObject.defineProperty(exports, \"Storage\", { enumerable: true, get: function () { return StorageProvider_1.Storage; } });\n__exportStar(require(\"./$_StatsigGlobal\"), exports);\n__exportStar(require(\"./CacheKey\"), exports);\n__exportStar(require(\"./ClientInterfaces\"), exports);\n__exportStar(require(\"./DataAdapterCore\"), exports);\n__exportStar(require(\"./Diagnostics\"), exports);\n__exportStar(require(\"./DownloadConfigSpecsResponse\"), exports);\n__exportStar(require(\"./ErrorBoundary\"), exports);\n__exportStar(require(\"./EvaluationOptions\"), exports);\n__exportStar(require(\"./EvaluationTypes\"), exports);\n__exportStar(require(\"./Hashing\"), exports);\n__exportStar(require(\"./InitializeResponse\"), exports);\n__exportStar(require(\"./Log\"), exports);\n__exportStar(require(\"./MemoKey\"), exports);\n__exportStar(require(\"./NetworkConfig\"), exports);\n__exportStar(require(\"./NetworkCore\"), exports);\n__exportStar(require(\"./OverrideAdapter\"), exports);\n__exportStar(require(\"./ParamStoreTypes\"), exports);\n__exportStar(require(\"./SafeJs\"), exports);\n__exportStar(require(\"./SDKType\"), exports);\n__exportStar(require(\"./SessionID\"), exports);\n__exportStar(require(\"./SizeOf\"), exports);\n__exportStar(require(\"./StableID\"), exports);\n__exportStar(require(\"./StatsigClientBase\"), exports);\n__exportStar(require(\"./StatsigClientEventEmitter\"), exports);\n__exportStar(require(\"./StatsigDataAdapter\"), exports);\n__exportStar(require(\"./StatsigEvent\"), exports);\n__exportStar(require(\"./StatsigMetadata\"), exports);\n__exportStar(require(\"./StatsigOptionsCommon\"), exports);\n__exportStar(require(\"./StatsigPlugin\"), exports);\n__exportStar(require(\"./StatsigTypeFactories\"), exports);\n__exportStar(require(\"./StatsigTypes\"), exports);\n__exportStar(require(\"./StatsigUser\"), exports);\n__exportStar(require(\"./StorageProvider\"), exports);\n__exportStar(require(\"./TypedJsonParse\"), exports);\n__exportStar(require(\"./TypingUtils\"), exports);\n__exportStar(require(\"./UrlConfiguration\"), exports);\n__exportStar(require(\"./UUID\"), exports);\n__exportStar(require(\"./VisibilityObserving\"), exports);\n__exportStar(require(\"./StatsigUpdateDetails\"), exports);\n__exportStar(require(\"./SDKFlags\"), exports);\nObject.assign((0, __StatsigGlobal_1._getStatsigGlobal)(), { Log: Log_1.Log, SDK_VERSION: StatsigMetadata_1.SDK_VERSION });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._resolveDeltasResponse = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst MAX_DELTAS_SORT_DEPTH = 2;\nfunction _resolveDeltasResponse(cache, deltasString) {\n const deltas = (0, client_core_1._typedJsonParse)(deltasString, 'checksum', 'DeltasEvaluationResponse');\n if (!deltas) {\n return {\n hadBadDeltaChecksum: true,\n };\n }\n const merged = _mergeDeltasIntoCache(cache, deltas);\n const resolved = _handleDeletedEntries(merged);\n const actualChecksum = (0, client_core_1._DJB2Object)({\n feature_gates: resolved.feature_gates,\n dynamic_configs: resolved.dynamic_configs,\n layer_configs: resolved.layer_configs,\n }, MAX_DELTAS_SORT_DEPTH);\n const isMatch = actualChecksum === deltas.checksumV2;\n if (!isMatch) {\n return {\n hadBadDeltaChecksum: true,\n badChecksum: actualChecksum,\n badMergedConfigs: resolved,\n badFullResponse: deltas.deltas_full_response,\n };\n }\n return JSON.stringify(resolved);\n}\nexports._resolveDeltasResponse = _resolveDeltasResponse;\nfunction _mergeDeltasIntoCache(cache, deltas) {\n return Object.assign(Object.assign(Object.assign({}, cache), deltas), { feature_gates: Object.assign(Object.assign({}, cache.feature_gates), deltas.feature_gates), layer_configs: Object.assign(Object.assign({}, cache.layer_configs), deltas.layer_configs), dynamic_configs: Object.assign(Object.assign({}, cache.dynamic_configs), deltas.dynamic_configs) });\n}\nfunction _handleDeletedEntries(deltas) {\n const result = deltas;\n _deleteEntriesInRecord(deltas.deleted_gates, result.feature_gates);\n delete result.deleted_gates;\n _deleteEntriesInRecord(deltas.deleted_configs, result.dynamic_configs);\n delete result.deleted_configs;\n _deleteEntriesInRecord(deltas.deleted_layers, result.layer_configs);\n delete result.deleted_layers;\n return result;\n}\nfunction _deleteEntriesInRecord(keys, values) {\n keys === null || keys === void 0 ? void 0 : keys.forEach((key) => {\n delete values[key];\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nclass EvaluationStore {\n constructor(_sdkKey) {\n this._sdkKey = _sdkKey;\n this._rawValues = null;\n this._values = null;\n this._source = 'Uninitialized';\n this._lcut = 0;\n this._receivedAt = 0;\n this._bootstrapMetadata = null;\n this._warnings = new Set();\n }\n reset() {\n this._values = null;\n this._rawValues = null;\n this._source = 'Loading';\n this._lcut = 0;\n this._receivedAt = 0;\n this._bootstrapMetadata = null;\n this._warnings.clear();\n }\n finalize() {\n if (this._values) {\n return;\n }\n this._source = 'NoValues';\n }\n getValues() {\n return this._rawValues\n ? (0, client_core_1._typedJsonParse)(this._rawValues, 'has_updates', 'EvaluationStoreValues')\n : null;\n }\n setValues(result, user) {\n var _a, _b;\n if (!result) {\n return false;\n }\n const values = (0, client_core_1._typedJsonParse)(result.data, 'has_updates', 'EvaluationResponse');\n if (values == null) {\n return false;\n }\n this._source = result.source;\n if ((values === null || values === void 0 ? void 0 : values.has_updates) !== true) {\n return true;\n }\n const updatedLcut = (_a = values.time) !== null && _a !== void 0 ? _a : 0;\n if (updatedLcut < this._lcut) {\n return true;\n }\n this._rawValues = result.data;\n this._lcut = values.time;\n this._receivedAt = result.receivedAt;\n this._values = values;\n this._bootstrapMetadata = this._extractBootstrapMetadata(result.source, values);\n if (result.source && values.user) {\n this._setWarningState(user, values);\n }\n client_core_1.SDKFlags.setFlags(this._sdkKey, (_b = values.sdk_flags) !== null && _b !== void 0 ? _b : {});\n return true;\n }\n getWarnings() {\n if (this._warnings.size === 0) {\n return undefined;\n }\n return Array.from(this._warnings);\n }\n getGate(name) {\n var _a;\n return this._getDetailedStoreResult((_a = this._values) === null || _a === void 0 ? void 0 : _a.feature_gates, name);\n }\n getConfig(name) {\n var _a;\n return this._getDetailedStoreResult((_a = this._values) === null || _a === void 0 ? void 0 : _a.dynamic_configs, name);\n }\n getConfigList() {\n var _a;\n if (!((_a = this._values) === null || _a === void 0 ? void 0 : _a.dynamic_configs)) {\n return [];\n }\n return Object.values(this._values.dynamic_configs).map((config) => config.name);\n }\n getLayer(name) {\n var _a;\n return this._getDetailedStoreResult((_a = this._values) === null || _a === void 0 ? void 0 : _a.layer_configs, name);\n }\n getParamStore(name) {\n var _a;\n return this._getDetailedStoreResult((_a = this._values) === null || _a === void 0 ? void 0 : _a.param_stores, name);\n }\n getSource() {\n return this._source;\n }\n getExposureMapping() {\n var _a;\n return (_a = this._values) === null || _a === void 0 ? void 0 : _a.exposures;\n }\n _extractBootstrapMetadata(source, values) {\n if (source !== 'Bootstrap') {\n return null;\n }\n const bootstrapMetadata = {};\n if (values.user) {\n bootstrapMetadata.user = values.user;\n }\n if (values.sdkInfo) {\n bootstrapMetadata.generatorSDKInfo = values.sdkInfo;\n }\n bootstrapMetadata.lcut = values.time;\n return bootstrapMetadata;\n }\n _getDetailedStoreResult(lookup, name) {\n let result = null;\n if (lookup) {\n result = lookup[name] ? lookup[name] : lookup[(0, client_core_1._DJB2)(name)];\n }\n return {\n result,\n details: this._getDetails(result == null),\n };\n }\n _setWarningState(user, values) {\n var _a, _b;\n const stableID = client_core_1.StableID.get(this._sdkKey);\n if (((_a = user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID) !== stableID && // don't throw if they're both undefined\n (((_b = user.customIDs) === null || _b === void 0 ? void 0 : _b.stableID) || stableID)) {\n this._warnings.add('StableIDMismatch');\n return;\n }\n if ('user' in values) {\n const bootstrapUser = values['user'];\n const userForComparison = Object.assign(Object.assign({}, user), { analyticsOnlyMetadata: undefined, privateAttributes: undefined });\n if ((0, client_core_1._getFullUserHash)(userForComparison) !== (0, client_core_1._getFullUserHash)(bootstrapUser)) {\n this._warnings.add('PartialUserMatch');\n }\n }\n }\n getCurrentSourceDetails() {\n if (this._source === 'Uninitialized' || this._source === 'NoValues') {\n return { reason: this._source };\n }\n const sourceDetails = {\n reason: this._source,\n lcut: this._lcut,\n receivedAt: this._receivedAt,\n };\n if (this._warnings.size > 0) {\n sourceDetails.warnings = Array.from(this._warnings);\n }\n return sourceDetails;\n }\n _getDetails(isUnrecognized) {\n var _a, _b;\n const sourceDetails = this.getCurrentSourceDetails();\n let reason = sourceDetails.reason;\n const warnings = (_a = sourceDetails.warnings) !== null && _a !== void 0 ? _a : [];\n if (this._source === 'Bootstrap' && warnings.length > 0) {\n reason = reason + warnings[0];\n }\n if (reason !== 'Uninitialized' && reason !== 'NoValues') {\n const subreason = isUnrecognized ? 'Unrecognized' : 'Recognized';\n reason = `${reason}:${subreason}`;\n }\n const bootstrapMetadata = this._source === 'Bootstrap'\n ? (_b = this._bootstrapMetadata) !== null && _b !== void 0 ? _b : undefined\n : undefined;\n if (bootstrapMetadata) {\n sourceDetails.bootstrapMetadata = bootstrapMetadata;\n }\n return Object.assign(Object.assign({}, sourceDetails), { reason });\n }\n}\nexports.default = EvaluationStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst EvaluationResponseDeltas_1 = require(\"./EvaluationResponseDeltas\");\nclass StatsigNetwork extends client_core_1.NetworkCore {\n constructor(options, emitter) {\n super(options, emitter);\n const config = options === null || options === void 0 ? void 0 : options.networkConfig;\n this._option = options;\n this._initializeUrlConfig = new client_core_1.UrlConfiguration(client_core_1.Endpoint._initialize, config === null || config === void 0 ? void 0 : config.initializeUrl, config === null || config === void 0 ? void 0 : config.api, config === null || config === void 0 ? void 0 : config.initializeFallbackUrls);\n }\n fetchEvaluations(sdkKey, current, priority, user, isCacheValidFor204) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _f;\n const cache = current\n ? (0, client_core_1._typedJsonParse)(current, 'has_updates', 'InitializeResponse')\n : null;\n let data = {\n user,\n hash: (_c = (_b = (_a = this._option) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.initializeHashAlgorithm) !== null && _c !== void 0 ? _c : 'djb2',\n deltasResponseRequested: false,\n full_checksum: null,\n };\n if (cache === null || cache === void 0 ? void 0 : cache.has_updates) {\n const hasHashChanged = (cache === null || cache === void 0 ? void 0 : cache.hash_used) !==\n ((_f = (_e = (_d = this._option) === null || _d === void 0 ? void 0 : _d.networkConfig) === null || _e === void 0 ? void 0 : _e.initializeHashAlgorithm) !== null && _f !== void 0 ? _f : 'djb2');\n data = Object.assign(Object.assign({}, data), { sinceTime: isCacheValidFor204 && !hasHashChanged ? cache.time : 0, previousDerivedFields: 'derived_fields' in cache && isCacheValidFor204\n ? cache.derived_fields\n : {}, deltasResponseRequested: true, full_checksum: cache.full_checksum, partialUserMatchSinceTime: !hasHashChanged ? cache.time : 0 });\n }\n return this._fetchEvaluations(sdkKey, cache, data, priority);\n });\n }\n _fetchEvaluations(sdkKey, cache, data, priority) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const response = yield this.post({\n sdkKey,\n urlConfig: this._initializeUrlConfig,\n data,\n retries: 2,\n isStatsigEncodable: true,\n priority,\n });\n if ((response === null || response === void 0 ? void 0 : response.code) === 204) {\n return '{\"has_updates\": false}';\n }\n if ((response === null || response === void 0 ? void 0 : response.code) !== 200) {\n return (_a = response === null || response === void 0 ? void 0 : response.body) !== null && _a !== void 0 ? _a : null;\n }\n if ((cache === null || cache === void 0 ? void 0 : cache.has_updates) !== true ||\n ((_b = response.body) === null || _b === void 0 ? void 0 : _b.includes('\"is_delta\":true')) !== true ||\n data.deltasResponseRequested !== true) {\n return response.body;\n }\n const result = (0, EvaluationResponseDeltas_1._resolveDeltasResponse)(cache, response.body);\n if (typeof result === 'string') {\n return result;\n }\n // retry without deltas\n return this._fetchEvaluations(sdkKey, cache, Object.assign(Object.assign(Object.assign({}, data), result), { deltasResponseRequested: false }), priority);\n });\n }\n}\nexports.default = StatsigNetwork;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._makeParamStoreGetter = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst NO_EXPOSURE_OPT = {\n disableExposureLog: true,\n};\nfunction _shouldLogExposure(options) {\n return options == null || options.disableExposureLog === false;\n}\nfunction _shouldReturnFallback(value, fallback) {\n return fallback != null && !(0, client_core_1._isTypeMatch)(value, fallback);\n}\nfunction _getMappedStaticValue(param, _options) {\n return param.value;\n}\nfunction _getMappedGateValue(client, param, options) {\n const gate = client.getFeatureGate(param.gate_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n if (gate.value) {\n return param.pass_value;\n }\n return param.fail_value;\n}\nfunction _getMappedDynamicConfigValue(client, param, fallback, options) {\n const config = client.getDynamicConfig(param.config_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n const value = config.get(param.param_name);\n if (_shouldReturnFallback(value, fallback)) {\n return fallback;\n }\n return value;\n}\nfunction _getMappedExperimentValue(client, param, fallback, options) {\n const experiment = client.getExperiment(param.experiment_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n const value = experiment.get(param.param_name);\n if (_shouldReturnFallback(value, fallback)) {\n return fallback;\n }\n return value;\n}\nfunction _getMappedLayerValue(client, param, fallback, options) {\n const layer = client.getLayer(param.layer_name, _shouldLogExposure(options) ? undefined : NO_EXPOSURE_OPT);\n const value = layer.get(param.param_name);\n if (_shouldReturnFallback(value, fallback)) {\n return fallback;\n }\n return value;\n}\nfunction _makeParamStoreGetter(client, config, options) {\n return (paramName, fallback) => {\n if (config == null) {\n return fallback;\n }\n const param = config[paramName];\n if (param == null ||\n (fallback != null && (0, client_core_1._typeOf)(fallback) !== param.param_type)) {\n return fallback;\n }\n switch (param.ref_type) {\n case 'static':\n return _getMappedStaticValue(param, options);\n case 'gate':\n return _getMappedGateValue(client, param, options);\n case 'dynamic_config':\n return _getMappedDynamicConfigValue(client, param, fallback, options);\n case 'experiment':\n return _getMappedExperimentValue(client, param, fallback, options);\n case 'layer':\n return _getMappedLayerValue(client, param, fallback, options);\n default:\n return fallback;\n }\n };\n}\nexports._makeParamStoreGetter = _makeParamStoreGetter;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst EvaluationStore_1 = require(\"./EvaluationStore\");\nconst Network_1 = require(\"./Network\");\nconst ParamStoreGetterFactory_1 = require(\"./ParamStoreGetterFactory\");\nconst StatsigEvaluationsDataAdapter_1 = require(\"./StatsigEvaluationsDataAdapter\");\nclass StatsigClient extends client_core_1.StatsigClientBase {\n /**\n * Retrieves an instance of the StatsigClient based on the provided SDK key.\n * If no SDK key is provided, the method returns the most recently created instance of the StatsigClient.\n * The method ensures that each unique SDK key corresponds to a single instance of StatsigClient, effectively implementing a singleton pattern for each key.\n * If no instance exists for the given SDK key, a new StatsigClient instance will be created and returned.\n *\n * @param {string} [sdkKey] - Optional. The SDK key used to identify a specific instance of the StatsigClient. If omitted, the method returns the last created instance.\n * @returns {StatsigClient} Returns the StatsigClient instance associated with the given SDK key, creating a new one if needed.\n */\n static instance(sdkKey) {\n const instance = (0, client_core_1._getStatsigGlobal)().instance(sdkKey);\n if (instance instanceof StatsigClient) {\n return instance;\n }\n client_core_1.Log.warn((0, client_core_1._isServerEnv)()\n ? 'StatsigClient.instance is not supported in server environments'\n : 'Unable to find StatsigClient instance');\n return new StatsigClient(sdkKey !== null && sdkKey !== void 0 ? sdkKey : '', {});\n }\n /**\n * StatsigClient constructor\n *\n * @param {string} sdkKey A Statsig client SDK key. eg \"client-xyz123...\"\n * @param {StatsigUser} user StatsigUser object containing various attributes related to a user.\n * @param {StatsigOptions | null} options StatsigOptions, used to customize the behavior of the SDK.\n */\n constructor(sdkKey, user, options = null) {\n var _a, _b;\n client_core_1.SDKType._setClientType(sdkKey, 'javascript-client');\n const network = new Network_1.default(options, (e) => {\n this.$emt(e);\n });\n super(sdkKey, (_a = options === null || options === void 0 ? void 0 : options.dataAdapter) !== null && _a !== void 0 ? _a : new StatsigEvaluationsDataAdapter_1.StatsigEvaluationsDataAdapter(), network, options);\n this._possibleFirstTouchMetadata = {};\n /**\n * Retrieves the value of a feature gate for the current user, represented as a {@link FeatureGate} object.\n *\n * @param {string} name - The name of the feature gate to retrieve.\n * @param {FeatureGateEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {FeatureGate} - The {@link FeatureGate} object representing the gate's current evaluation results for the user.\n */\n this.getFeatureGate = this._memoize(client_core_1.MemoPrefix._gate, this._getFeatureGateImpl.bind(this));\n /**\n * Retrieves the value of a dynamic config for the current user.\n *\n * @param {string} name The name of the dynamic config to get.\n * @param {DynamicConfigEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {DynamicConfig} - The {@link DynamicConfig} object representing the dynamic configs's current evaluation results for the user.\n */\n this.getDynamicConfig = this._memoize(client_core_1.MemoPrefix._dynamicConfig, this._getDynamicConfigImpl.bind(this));\n /**\n * Retrieves the value of a experiment for the current user.\n *\n * @param {string} name The name of the experiment to get.\n * @param {ExperimentEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {Experiment} - The {@link Experiment} object representing the experiments's current evaluation results for the user.\n */\n this.getExperiment = this._memoize(client_core_1.MemoPrefix._experiment, this._getExperimentImpl.bind(this));\n /**\n * Retrieves the list of all Dynamic Configs and Experiments for the current user.\n *\n * @returns {string[]} The list of all Dynamic Config and Experiment names for the current user. Note - these will be hashed unless you've disabled hashing.\n * This is intended to be used for debugging.\n */\n this.getConfigList = this._memoize(client_core_1.MemoPrefix._configList, this._getConfigListImpl.bind(this));\n /**\n * Retrieves the value of a layer for the current user.\n *\n * @param {string} name The name of the layer to get.\n * @param {LayerEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {Layer} - The {@link Layer} object representing the layers's current evaluation results for the user.\n */\n this.getLayer = this._memoize(client_core_1.MemoPrefix._layer, this._getLayerImpl.bind(this));\n /**\n * Retrieves the value of a parameter store for the current user.\n *\n * @param {string} name The name of the parameter store to get.\n * @param {ParameterStoreEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {ParameterStore} - The {@link ParameterStore} object representing the parameter store's current mappings for the user.\n */\n this.getParameterStore = this._memoize(client_core_1.MemoPrefix._paramStore, this._getParameterStoreImpl.bind(this));\n this._store = new EvaluationStore_1.default(sdkKey);\n this._network = network;\n this._user = this._configureUser(user, options);\n this._sdkInstanceID = (0, client_core_1.getUUID)();\n const plugins = (_b = options === null || options === void 0 ? void 0 : options.plugins) !== null && _b !== void 0 ? _b : [];\n for (const plugin of plugins) {\n plugin.bind(this);\n }\n }\n /**\n * Initializes the StatsigClient using cached values. This method sets up the client synchronously by utilizing previously cached values.\n * After initialization, cache values are updated in the background for future use, either in subsequent sessions or when `updateUser` is called.\n * This is useful for quickly starting with the last-known-good configurations while refreshing data to keep settings up-to-date.\n *\n * @see {@link initializeAsync} for the asynchronous version of this method.\n */\n initializeSync(options) {\n var _a;\n if (this.loadingStatus !== 'Uninitialized') {\n return (0, client_core_1.createUpdateDetails)(true, this._store.getSource(), -1, null, null, ['MultipleInitializations', ...((_a = this._store.getWarnings()) !== null && _a !== void 0 ? _a : [])]);\n }\n this._logger.start();\n return this.updateUserSync(this._user, options);\n }\n /**\n * Initializes the StatsigClient asynchronously by first using cached values and then updating to the latest values from the network.\n * Once the network values are fetched, they replace the existing cached values. If this method's promise is not awaited,\n * there might be a transition from cached to network values during the session, which can affect consistency.\n * This method is useful when it's acceptable to begin with potentially stale data and switch to the latest configuration as it becomes available.\n *\n * @param {AsyncUpdateOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {Promise<void>} A promise that resolves once the client is fully initialized with the latest values from the network or a timeout (if set) is hit.\n * @see {@link initializeSync} for the synchronous version of this method.\n */\n initializeAsync(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._initializePromise) {\n return this._initializePromise;\n }\n this._initializePromise = this._initializeAsyncImpl(options);\n return this._initializePromise;\n });\n }\n /**\n * Synchronously updates the user in the Statsig client and switches the internal state to use cached values for the newly specified user.\n * After the initial switch to cached values, this method updates these values in the background, preparing them for future sessions or subsequent calls to updateUser.\n * This method ensures the client is quickly ready with available data.\n *\n * @param {StatsigUser} user - The new StatsigUser for which the client should update its internal state.\n * @see {@link updateUserAsync} for the asynchronous version of this method.\n */\n updateUserSync(user, options) {\n const startTime = performance.now();\n try {\n return this._updateUserSyncImpl(user, options, startTime);\n }\n catch (e) {\n const err = e instanceof Error ? e : new Error(String(e));\n return this._createErrorUpdateDetails(err, startTime);\n }\n }\n _updateUserSyncImpl(user, options, startTime) {\n var _a;\n const warnings = [...((_a = this._store.getWarnings()) !== null && _a !== void 0 ? _a : [])];\n this._resetForUser(user);\n const result = this.dataAdapter.getDataSync(this._user);\n if (result == null) {\n warnings.push('NoCachedValues');\n }\n this._store.setValues(result, this._user);\n this._finalizeUpdate(result);\n const disable = options === null || options === void 0 ? void 0 : options.disableBackgroundCacheRefresh;\n if (disable === true ||\n (disable == null && (result === null || result === void 0 ? void 0 : result.source) === 'Bootstrap')) {\n return (0, client_core_1.createUpdateDetails)(true, this._store.getSource(), performance.now() - startTime, this._errorBoundary.getLastSeenErrorAndReset(), this._network.getLastUsedInitUrlAndReset(), warnings);\n }\n this._runPostUpdate(result !== null && result !== void 0 ? result : null, this._user);\n return (0, client_core_1.createUpdateDetails)(true, this._store.getSource(), performance.now() - startTime, this._errorBoundary.getLastSeenErrorAndReset(), this._network.getLastUsedInitUrlAndReset(), warnings);\n }\n /**\n * Asynchronously updates the user in the Statsig client by initially using cached values and then fetching the latest values from the network.\n * When the latest values are fetched, they replace the cached values. If the promise returned by this method is not awaited,\n * the client's state may shift from cached to updated network values during the session, potentially affecting consistency.\n * This method is best used in scenarios where up-to-date configuration is critical and initial delays are acceptable.\n *\n * @param {StatsigUser} user - The new StatsigUser for which the client should update its internal state.\n * @param {AsyncUpdateOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {Promise<void>} A promise that resolves once the client is fully updated with the latest values from the network or a timeout (if set) is hit.\n * @see {@link updateUserSync} for the synchronous version of this method.\n */\n updateUserAsync(user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const startTime = performance.now();\n try {\n return yield this._updateUserAsyncImpl(user, options);\n }\n catch (e) {\n const err = e instanceof Error ? e : new Error(String(e));\n return this._createErrorUpdateDetails(err, startTime);\n }\n });\n }\n _updateUserAsyncImpl(user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n this._resetForUser(user);\n const initiator = this._user;\n client_core_1.Diagnostics._markInitOverallStart(this._sdkKey);\n let result = this.dataAdapter.getDataSync(initiator);\n this._store.setValues(result, this._user);\n this._setStatus('Loading', result);\n result = yield this.dataAdapter.getDataAsync(result, initiator, options);\n // ensure the user hasn't changed while we were waiting\n if (initiator !== this._user) {\n return (0, client_core_1.createUpdateDetails)(false, this._store.getSource(), -1, new Error('User changed during update'), this._network.getLastUsedInitUrlAndReset());\n }\n let isUsingNetworkValues = false;\n if (result != null) {\n client_core_1.Diagnostics._markInitProcessStart(this._sdkKey);\n isUsingNetworkValues = this._store.setValues(result, this._user);\n client_core_1.Diagnostics._markInitProcessEnd(this._sdkKey, {\n success: isUsingNetworkValues,\n });\n }\n this._finalizeUpdate(result);\n if (!isUsingNetworkValues) {\n this._errorBoundary.attachErrorIfNoneExists(client_core_1.UPDATE_DETAIL_ERROR_MESSAGES.NO_NETWORK_DATA);\n this.$emt({ name: 'initialization_failure' });\n }\n client_core_1.Diagnostics._markInitOverallEnd(this._sdkKey, isUsingNetworkValues, this._store.getCurrentSourceDetails());\n const initDuration = client_core_1.Diagnostics._enqueueDiagnosticsEvent(this._user, this._logger, this._sdkKey, this._options);\n return (0, client_core_1.createUpdateDetails)(isUsingNetworkValues, this._store.getSource(), initDuration, this._errorBoundary.getLastSeenErrorAndReset(), this._network.getLastUsedInitUrlAndReset(), this._store.getWarnings());\n });\n }\n /**\n * Retrieves a synchronous context containing data currently being used by the SDK. Represented as a {@link PrecomputedEvaluationsContext} object.\n *\n * @returns {PrecomputedEvaluationsContext} The current synchronous context for the this StatsigClient instance.\n */\n getContext() {\n return {\n sdkKey: this._sdkKey,\n options: this._options,\n values: this._store.getValues(),\n user: JSON.parse(JSON.stringify(this._user)),\n errorBoundary: this._errorBoundary,\n session: client_core_1.StatsigSession.get(this._sdkKey),\n stableID: client_core_1.StableID.get(this._sdkKey),\n sdkInstanceID: this._sdkInstanceID,\n };\n }\n /**\n * Retrieves the value of a feature gate for the current user, represented as a simple boolean.\n *\n * @param {string} name - The name of the feature gate to retrieve.\n * @param {FeatureGateEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {boolean} - The boolean value representing the gate's current evaluation results for the user.\n */\n checkGate(name, options) {\n return this.getFeatureGate(name, options).value;\n }\n /**\n * Logs an event to the internal logging system. This function allows logging by either passing a fully formed event object or by specifying the event name with optional value and metadata.\n *\n * @param {StatsigEvent|string} eventOrName - The event object conforming to the StatsigEvent interface, or the name of the event as a string.\n * @param {string|number} value - Optional. The value associated with the event, which can be a string or a number. This parameter is ignored if the first parameter is a StatsigEvent object.\n * @param {Record<string, string>} metadata - Optional. A key-value record containing metadata about the event. This is also ignored if the first parameter is an event object.\n */\n logEvent(eventOrName, value, metadata) {\n const event = typeof eventOrName === 'string'\n ? {\n eventName: eventOrName,\n value,\n metadata,\n }\n : eventOrName;\n this.$emt({\n name: 'log_event_called',\n event,\n });\n this._logger.enqueue(Object.assign(Object.assign({}, event), { user: this._user, time: Date.now() }));\n }\n /**\n * Updates the user with analytics only metadata. This will override any existing analytics only metadata.\n *\n * @param {Record<string, string | number | boolean>} metadata - The metadata to add to the user.\n */\n updateUserWithAnalyticsOnlyMetadata(metadata) {\n this._user = this._configureUser(Object.assign(Object.assign({}, this._user), { analyticsOnlyMetadata: metadata }), this._options);\n }\n _primeReadyRipcord() {\n this.$on('error', () => {\n this.loadingStatus === 'Loading' && this._finalizeUpdate(null);\n });\n }\n _initializeAsyncImpl(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!client_core_1.Storage.isReady()) {\n yield client_core_1.Storage.isReadyResolver();\n }\n this._logger.start();\n return this.updateUserAsync(this._user, options);\n });\n }\n _createErrorUpdateDetails(error, startTime) {\n var _a;\n return (0, client_core_1.createUpdateDetails)(false, this._store.getSource(), performance.now() - startTime, error, null, [...((_a = this._store.getWarnings()) !== null && _a !== void 0 ? _a : [])]);\n }\n _finalizeUpdate(values) {\n this._store.finalize();\n this._setStatus('Ready', values);\n }\n _runPostUpdate(current, user) {\n this.dataAdapter\n .getDataAsync(current, user, { priority: 'low' })\n .catch((err) => {\n client_core_1.Log.error('An error occurred after update.', err);\n });\n }\n _resetForUser(user) {\n this._logger.reset();\n this._store.reset();\n this._user = this._configureUser(user, this._options);\n }\n _configureUser(originalUser, options) {\n var _a, _b, _c;\n const user = (0, client_core_1._normalizeUser)(originalUser, options);\n const stableIdOverride = (_a = user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID;\n if (stableIdOverride) {\n const readyPromise = (_c = (_b = this.storageProvider).isReadyResolver) === null || _c === void 0 ? void 0 : _c.call(_b);\n if (readyPromise) {\n readyPromise.then(() => client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey), () => client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey));\n }\n else {\n client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey);\n }\n }\n // Only attach first touch metadata if it's not empty\n if (Object.keys(this._possibleFirstTouchMetadata).length > 0) {\n user.analyticsOnlyMetadata = Object.assign(Object.assign({}, user.analyticsOnlyMetadata), this._possibleFirstTouchMetadata);\n }\n return user;\n }\n _getFeatureGateImpl(name, options) {\n var _a, _b;\n const { result: evaluation, details } = this._store.getGate(name);\n const gate = (0, client_core_1._makeFeatureGate)(name, details, evaluation);\n const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getGateOverride) === null || _b === void 0 ? void 0 : _b.call(_a, gate, this._user, options);\n const result = overridden !== null && overridden !== void 0 ? overridden : gate;\n this._enqueueExposure(name, (0, client_core_1._createGateExposure)(this._user, result, this._store.getExposureMapping()), options);\n this.$emt({ name: 'gate_evaluation', gate: result });\n return result;\n }\n _getDynamicConfigImpl(name, options) {\n var _a, _b;\n const { result: evaluation, details } = this._store.getConfig(name);\n const config = (0, client_core_1._makeDynamicConfig)(name, details, evaluation);\n const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getDynamicConfigOverride) === null || _b === void 0 ? void 0 : _b.call(_a, config, this._user, options);\n const result = overridden !== null && overridden !== void 0 ? overridden : config;\n this._enqueueExposure(name, (0, client_core_1._createConfigExposure)(this._user, result, this._store.getExposureMapping()), options);\n this.$emt({ name: 'dynamic_config_evaluation', dynamicConfig: result });\n return result;\n }\n _getExperimentImpl(name, options) {\n var _a, _b, _c, _d;\n const { result: evaluation, details } = this._store.getConfig(name);\n const experiment = (0, client_core_1._makeExperiment)(name, details, evaluation);\n if (experiment.__evaluation != null) {\n experiment.__evaluation.secondary_exposures = (0, client_core_1._mapExposures)((_b = (_a = experiment.__evaluation) === null || _a === void 0 ? void 0 : _a.secondary_exposures) !== null && _b !== void 0 ? _b : [], this._store.getExposureMapping());\n }\n const overridden = (_d = (_c = this.overrideAdapter) === null || _c === void 0 ? void 0 : _c.getExperimentOverride) === null || _d === void 0 ? void 0 : _d.call(_c, experiment, this._user, options);\n const result = overridden !== null && overridden !== void 0 ? overridden : experiment;\n this._enqueueExposure(name, (0, client_core_1._createConfigExposure)(this._user, result, this._store.getExposureMapping()), options);\n this.$emt({ name: 'experiment_evaluation', experiment: result });\n return result;\n }\n _getConfigListImpl() {\n return this._store.getConfigList();\n }\n _getLayerImpl(name, options) {\n var _a, _b, _c;\n const { result: evaluation, details } = this._store.getLayer(name);\n const layer = (0, client_core_1._makeLayer)(name, details, evaluation);\n const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getLayerOverride) === null || _b === void 0 ? void 0 : _b.call(_a, layer, this._user, options);\n if (options === null || options === void 0 ? void 0 : options.disableExposureLog) {\n this._logger.incrementNonExposureCount(name);\n }\n const result = (0, client_core_1._mergeOverride)(layer, overridden, (_c = overridden === null || overridden === void 0 ? void 0 : overridden.__value) !== null && _c !== void 0 ? _c : layer.__value, (param) => {\n if (options === null || options === void 0 ? void 0 : options.disableExposureLog) {\n return;\n }\n this._enqueueExposure(name, (0, client_core_1._createLayerParameterExposure)(this._user, result, param, this._store.getExposureMapping()), options);\n });\n this.$emt({ name: 'layer_evaluation', layer: result });\n return result;\n }\n _getParameterStoreImpl(name, options) {\n var _a, _b;\n const { result: configuration, details } = this._store.getParamStore(name);\n this._logger.incrementNonExposureCount(name);\n const paramStore = {\n name,\n details: details,\n __configuration: configuration,\n get: (0, ParamStoreGetterFactory_1._makeParamStoreGetter)(this, configuration, options),\n };\n const overridden = (_b = (_a = this.overrideAdapter) === null || _a === void 0 ? void 0 : _a.getParamStoreOverride) === null || _b === void 0 ? void 0 : _b.call(_a, paramStore, options);\n if (overridden != null) {\n paramStore.__configuration = overridden.config;\n paramStore.details = overridden.details;\n paramStore.get = (0, ParamStoreGetterFactory_1._makeParamStoreGetter)(this, overridden.config, options);\n }\n return paramStore;\n }\n}\nexports.default = StatsigClient;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigEvaluationsDataAdapter = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst Network_1 = require(\"./Network\");\nclass StatsigEvaluationsDataAdapter extends client_core_1.DataAdapterCore {\n constructor() {\n super('EvaluationsDataAdapter', 'evaluations');\n this._network = null;\n this._options = null;\n }\n attach(sdkKey, options, network) {\n super.attach(sdkKey, options, network);\n if (network !== null && network instanceof Network_1.default) {\n this._network = network;\n }\n else {\n this._network = new Network_1.default(options !== null && options !== void 0 ? options : {});\n }\n }\n getDataAsync(current, user, options) {\n return this._getDataAsyncImpl(current, (0, client_core_1._normalizeUser)(user, this._options), options);\n }\n prefetchData(user, options) {\n return this._prefetchDataImpl(user, options);\n }\n setData(data) {\n const values = (0, client_core_1._typedJsonParse)(data, 'has_updates', 'data');\n if (values && 'user' in values) {\n super.setData(data, values.user);\n }\n else {\n client_core_1.Log.error('StatsigUser not found. You may be using an older server SDK version. Please upgrade your SDK or use setDataLegacy.');\n }\n }\n setDataLegacy(data, user) {\n super.setData(data, user);\n }\n _fetchFromNetwork(current, user, options, isCacheValidFor204) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const result = yield ((_a = this._network) === null || _a === void 0 ? void 0 : _a.fetchEvaluations(this._getSdkKey(), current, options === null || options === void 0 ? void 0 : options.priority, user, isCacheValidFor204));\n return result !== null && result !== void 0 ? result : null;\n });\n }\n _getCacheKey(user) {\n var _a;\n const key = (0, client_core_1._getStorageKey)(this._getSdkKey(), user, (_a = this._options) === null || _a === void 0 ? void 0 : _a.customUserCacheKeyFunc);\n return `${client_core_1.DataAdapterCachePrefix}.${this._cacheSuffix}.${key}`;\n }\n _isCachedResultValidFor204(result, user) {\n return (result.fullUserHash != null &&\n result.fullUserHash === (0, client_core_1._getFullUserHash)(user));\n }\n}\nexports.StatsigEvaluationsDataAdapter = StatsigEvaluationsDataAdapter;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigClient = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst StatsigClient_1 = require(\"./StatsigClient\");\nexports.StatsigClient = StatsigClient_1.default;\n__exportStar(require(\"@statsig/client-core\"), exports);\nconst __STATSIG__ = Object.assign((0, client_core_1._getStatsigGlobal)(), {\n StatsigClient: StatsigClient_1.default,\n});\nexports.default = __STATSIG__;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport EventEmitter from 'eventemitter3';\nexport var ALL_FEATURE_VALUES = '@all-features';\nvar Subscriptions = /*#__PURE__*/function () {\n function Subscriptions() {\n _classCallCheck(this, Subscriptions);\n _defineProperty(this, \"eventToValue\", new Map());\n this.emitter = new EventEmitter();\n }\n return _createClass(Subscriptions, [{\n key: \"onGateUpdated\",\n value: function onGateUpdated(gateName, callback, checkGate, options) {\n var _this = this;\n var value = checkGate(gateName, _objectSpread(_objectSpread({}, options), {}, {\n fireGateExposure: false\n }));\n if (this.eventToValue.get(callback) === undefined) {\n this.eventToValue.set(callback, value);\n }\n var wrapCallback = function wrapCallback() {\n var value = checkGate(gateName, _objectSpread(_objectSpread({}, options), {}, {\n fireGateExposure: false\n }));\n var existingValue = _this.eventToValue.get(callback);\n if (existingValue !== value) {\n _this.eventToValue.set(callback, value);\n callback(value);\n }\n };\n this.emitter.on(gateName, wrapCallback);\n return function () {\n _this.emitter.off(gateName, wrapCallback);\n };\n }\n }, {\n key: \"onExperimentValueUpdated\",\n value: function onExperimentValueUpdated(experimentName, parameterName, defaultValue, callback, getExperimentValue, options) {\n var _this2 = this;\n var experimentEventName = \"\".concat(experimentName, \".\").concat(parameterName);\n var value = getExperimentValue(experimentName, parameterName, defaultValue, _objectSpread(_objectSpread({}, options), {}, {\n fireExperimentExposure: false\n }));\n if (this.eventToValue.get(callback) === undefined) {\n this.eventToValue.set(callback, value);\n }\n var wrapCallback = function wrapCallback() {\n var value = getExperimentValue(experimentName, parameterName, defaultValue, _objectSpread(_objectSpread({}, options), {}, {\n fireExperimentExposure: false\n }));\n var existingValue = _this2.eventToValue.get(callback);\n if (existingValue !== value) {\n _this2.eventToValue.set(callback, value);\n callback(value);\n }\n };\n this.emitter.on(experimentEventName, wrapCallback);\n return function () {\n _this2.emitter.off(experimentEventName, wrapCallback);\n };\n }\n }, {\n key: \"onAnyUpdated\",\n value: function onAnyUpdated(callback) {\n var _this3 = this;\n this.emitter.on(ALL_FEATURE_VALUES, callback);\n return function () {\n _this3.emitter.off(ALL_FEATURE_VALUES, callback);\n };\n }\n }, {\n key: \"anyUpdated\",\n value: function anyUpdated() {\n var _this4 = this;\n this.emitter.emit(ALL_FEATURE_VALUES);\n this.emitter.eventNames().filter(function (name) {\n return name !== ALL_FEATURE_VALUES;\n }).forEach(function (event) {\n _this4.emitter.emit(event);\n });\n }\n }]);\n}();\nexport { Subscriptions as default };","import { FEDRAMP_MODERATE } from '../../../common/constants/host-based-lookup/constants';\n\n/**\n * Caution: Consider Alternatives Use of this function is not recommended as a long term solution, as it creates an assumption\n * there are no other isolated environments than just FedRAMP Moderate. You are encouraged to consider alternate solutions,\n * such as Statsig or environment configuration, that don't require creating a hard dependency between your code features\n * and the FedRAMP environment.\n * See [go-is-fedramp](https://go.atlassian.com/is-fedramp)\n */\nexport function isFedRamp() {\n var _global$location;\n var global = globalThis;\n // MICROS_PERIMETER is already used by few products, so we need to keep it for backward compatibility\n var env = global.MICROS_PERIMETER || global.UNSAFE_ATL_CONTEXT_BOUNDARY;\n if (env) {\n return env === FEDRAMP_MODERATE;\n }\n var matches = (_global$location = global.location) === null || _global$location === void 0 || (_global$location = _global$location.hostname) === null || _global$location === void 0 ? void 0 : _global$location.match(/atlassian-us-gov-mod\\.(com|net)|atlassian-us-gov\\.(com|net)|atlassian-fex\\.(com|net)|atlassian-stg-fedm\\.(com|net)/);\n return matches ? matches.length > 0 : false;\n}","export var FEDRAMP_MODERATE = 'fedramp-moderate';\nexport var COMMERCIAL = 'commercial';\nexport var FEDRAMP_FEDEX = 'fedramp-fedex';\nexport var STAGING = 'stg';\nexport var PRODUCTION = 'prod';\nexport var DEV = 'dev';","// Reference: https://github.com/statsig-io/js-lite/blob/main/src/StatsigStore.ts\n\nexport var EvaluationReason = /*#__PURE__*/function (EvaluationReason) {\n // Order is important since the logic for migrating from a new client reason to an old one\n // returns the first which is a substring of the new client reason\n EvaluationReason[\"Error\"] = \"Error\";\n EvaluationReason[\"LocalOverride\"] = \"LocalOverride\";\n EvaluationReason[\"Unrecognized\"] = \"Unrecognized\";\n EvaluationReason[\"Uninitialized\"] = \"Uninitialized\";\n EvaluationReason[\"NetworkNotModified\"] = \"NetworkNotModified\";\n EvaluationReason[\"Network\"] = \"Network\";\n EvaluationReason[\"InvalidBootstrap\"] = \"InvalidBootstrap\";\n EvaluationReason[\"Bootstrap\"] = \"Bootstrap\";\n EvaluationReason[\"Cache\"] = \"Cache\";\n // For when we could not migrate the reason from the new client\n EvaluationReason[\"Unknown\"] = \"Unknown\";\n return EvaluationReason;\n}({});\n\n// Reference: https://github.com/statsig-io/js-lite/blob/main/src/StatsigSDKOptions.ts","/**\n * The identifiers for the user. Options are restricted to the set that is currently supported.\n */\n\n/**\n * Base client options. Does not include any options specific to providers\n * @interface BaseClientOptions\n * @property {FeatureGateEnvironment} environment - The environment for the client.\n * @property {string} targetApp - The target app for the client.\n * @property {AnalyticsWebClient} analyticsWebClient - The analytics web client.\n * @property {PerimeterType} perimeter - The perimeter for the client.\n */\n\n/**\n * The options for the client.\n * @interface ClientOptions\n * @extends {BaseClientOptions}\n * @property {string} apiKey - The API key for the client.\n * @property {fetchTimeoutMs} fetchTimeoutMs - The timeout for the fetch request in milliseconds. Defaults to 5000.\n * @property {boolean} useGatewayURL - Whether to use the gateway URL. Defaults to false.\n */\n\n/**\n * The custom attributes for the user.\n */\n\nexport var FeatureGateEnvironment = /*#__PURE__*/function (FeatureGateEnvironment) {\n FeatureGateEnvironment[\"Development\"] = \"development\";\n FeatureGateEnvironment[\"Staging\"] = \"staging\";\n FeatureGateEnvironment[\"Production\"] = \"production\";\n return FeatureGateEnvironment;\n}({});\n\n// If adding new values here, please check FeatureGates.getDefaultPerimeter to make sure it still returns something sensible.\nexport var PerimeterType = /*#__PURE__*/function (PerimeterType) {\n PerimeterType[\"COMMERCIAL\"] = \"commercial\";\n PerimeterType[\"FEDRAMP_MODERATE\"] = \"fedramp-moderate\";\n return PerimeterType;\n}({});\nexport var NON_BOOLEAN_VALUE = 'non_boolean';\n\n// Type magic to get the JSDoc comments from the Client class methods to appear on the static\n// methods in FeatureGates where the property name and function type are identical","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"api\", \"disableCurrentPageLogging\", \"loggingIntervalMillis\", \"loggingBufferMaxSize\", \"localMode\", \"eventLoggingApi\", \"eventLoggingApiForRetries\", \"disableLocalStorage\", \"ignoreWindowUndefined\", \"disableAllLogging\", \"initTimeoutMs\", \"disableNetworkKeepalive\", \"overrideStableID\", \"disableErrorLogging\", \"disableAutoMetricsLogging\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { isFedRamp } from '@atlaskit/atlassian-context';\nimport { EvaluationReason } from './compat/types';\nimport { PerimeterType } from './types';\nexport var getOptionsWithDefaults = function getOptionsWithDefaults(options) {\n return _objectSpread({\n /**\n * If more federal PerimeterTypes are added in the future, this should be updated so\n * that isFedRamp() === true always returns the strictest perimeter.\n */\n perimeter: isFedRamp() ? PerimeterType.FEDRAMP_MODERATE : PerimeterType.COMMERCIAL\n }, options);\n};\nexport var shallowEquals = function shallowEquals(objectA, objectB) {\n if (!objectA && !objectB) {\n return true;\n }\n if (!objectA || !objectB) {\n return false;\n }\n var aEntries = Object.entries(objectA);\n var bEntries = Object.entries(objectB);\n if (aEntries.length !== bEntries.length) {\n return false;\n }\n var ascendingKeyOrder = function ascendingKeyOrder(_ref, _ref2) {\n var _ref3 = _slicedToArray(_ref, 1),\n key1 = _ref3[0];\n var _ref4 = _slicedToArray(_ref2, 1),\n key2 = _ref4[0];\n return key1.localeCompare(key2);\n };\n aEntries.sort(ascendingKeyOrder);\n bEntries.sort(ascendingKeyOrder);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n aValue = _aEntries$i[1];\n var _bEntries$i = _slicedToArray(bEntries[i], 2),\n bValue = _bEntries$i[1];\n if (aValue !== bValue) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * This method creates an instance of StatsigUser from the given set of identifiers and\n * attributes.\n */\nexport var toStatsigUser = function toStatsigUser(identifiers, customAttributes) {\n var user = {\n customIDs: identifiers,\n custom: customAttributes\n };\n if (identifiers.atlassianAccountId) {\n user.userID = identifiers.atlassianAccountId;\n }\n return user;\n};\nexport var migrateInitializationOptions = function migrateInitializationOptions(options) {\n var api = options.api,\n disableCurrentPageLogging = options.disableCurrentPageLogging,\n loggingIntervalMillis = options.loggingIntervalMillis,\n loggingBufferMaxSize = options.loggingBufferMaxSize,\n localMode = options.localMode,\n eventLoggingApi = options.eventLoggingApi,\n eventLoggingApiForRetries = options.eventLoggingApiForRetries,\n disableLocalStorage = options.disableLocalStorage,\n ignoreWindowUndefined = options.ignoreWindowUndefined,\n disableAllLogging = options.disableAllLogging,\n _initTimeoutMs = options.initTimeoutMs,\n _disableNetworkKeepalive = options.disableNetworkKeepalive,\n _overrideStableID = options.overrideStableID,\n _disableErrorLogging = options.disableErrorLogging,\n _disableAutoMetricsLogging = options.disableAutoMetricsLogging,\n rest = _objectWithoutProperties(options, _excluded);\n return _objectSpread(_objectSpread({}, rest), {}, {\n networkConfig: {\n api: api,\n logEventUrl: eventLoggingApi ? eventLoggingApi + 'rgstr' : undefined,\n logEventFallbackUrls: eventLoggingApiForRetries ? [eventLoggingApiForRetries] : undefined,\n preventAllNetworkTraffic: localMode || !ignoreWindowUndefined && typeof window === 'undefined'\n },\n includeCurrentPageUrlWithEvents: !disableCurrentPageLogging,\n loggingIntervalMs: loggingIntervalMillis,\n loggingBufferMaxSize: loggingBufferMaxSize,\n disableStorage: disableLocalStorage === undefined ? localMode : disableLocalStorage,\n disableLogging: disableAllLogging === undefined ? localMode : disableAllLogging\n });\n};\nvar evaluationReasonMappings = Object.entries(EvaluationReason).map(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n key = _ref6[0],\n value = _ref6[1];\n return [key.toLowerCase(), value];\n});\nexport var migrateEvaluationDetails = function migrateEvaluationDetails(details) {\n var _evaluationReasonMapp, _evaluationReasonMapp2, _details$receivedAt;\n var reasonLower = details.reason.toLowerCase();\n return {\n reason: (_evaluationReasonMapp = (_evaluationReasonMapp2 = evaluationReasonMappings.find(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 1),\n key = _ref8[0];\n return reasonLower.includes(key);\n })) === null || _evaluationReasonMapp2 === void 0 ? void 0 : _evaluationReasonMapp2[1]) !== null && _evaluationReasonMapp !== void 0 ? _evaluationReasonMapp : EvaluationReason.Unknown,\n time: (_details$receivedAt = details.receivedAt) !== null && _details$receivedAt !== void 0 ? _details$receivedAt : Date.now()\n };\n};\nexport var migrateSecondaryExposures = function migrateSecondaryExposures(secondaryExposures) {\n return secondaryExposures.map(function (exposure) {\n if (typeof exposure === 'string') {\n // This should ideally have gateValue and ruleID fields too, but it's not possible for us\n // to determine the correct values for these.\n return {\n gate: exposure\n };\n }\n return exposure;\n });\n};","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport { migrateEvaluationDetails, migrateSecondaryExposures } from '../utils';\n// Reference: https://github.com/statsig-io/js-lite/blob/main/src/DynamicConfig.ts\nexport var DynamicConfig = /*#__PURE__*/function () {\n function DynamicConfig(configName, configValue, ruleID, evaluationDetails) {\n var secondaryExposures = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var allocatedExperimentName = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : '';\n var onDefaultValueFallback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;\n _classCallCheck(this, DynamicConfig);\n this.value = configValue;\n this._name = configName;\n this._ruleID = ruleID;\n this._secondaryExposures = secondaryExposures;\n this._allocatedExperimentName = allocatedExperimentName;\n this._evaluationDetails = evaluationDetails;\n this._onDefaultValueFallback = onDefaultValueFallback;\n }\n return _createClass(DynamicConfig, [{\n key: \"get\",\n value: function get(key, defaultValue, typeGuard) {\n var _this$_onDefaultValue2;\n var val = this.getValue(key, defaultValue);\n if (val == null) {\n return defaultValue;\n }\n var expectedType = Array.isArray(defaultValue) ? 'array' : _typeof(defaultValue);\n var actualType = Array.isArray(val) ? 'array' : _typeof(val);\n if (typeGuard) {\n var _this$_onDefaultValue;\n if (typeGuard(val)) {\n this.fireExposure(key);\n return val;\n }\n (_this$_onDefaultValue = this._onDefaultValueFallback) === null || _this$_onDefaultValue === void 0 || _this$_onDefaultValue.call(this, this, key, expectedType, actualType);\n return defaultValue;\n }\n if (defaultValue == null || expectedType === actualType) {\n this.fireExposure(key);\n return val;\n }\n (_this$_onDefaultValue2 = this._onDefaultValueFallback) === null || _this$_onDefaultValue2 === void 0 || _this$_onDefaultValue2.call(this, this, key, expectedType, actualType);\n return defaultValue;\n }\n }, {\n key: \"getValue\",\n value: function getValue(key, defaultValue) {\n if (key == null) {\n return this.value;\n }\n if (defaultValue == null) {\n defaultValue = null;\n }\n if (this.value[key] == null) {\n return defaultValue;\n }\n this.fireExposure(key);\n return this.value[key];\n }\n }, {\n key: \"fireExposure\",\n value: function fireExposure(key) {\n // Call the wrapped experiment's get method to fire exposure\n if (this.experiment) {\n this.experiment.get(key);\n }\n }\n }], [{\n key: \"fromExperiment\",\n value: function fromExperiment(experiment) {\n var _experiment$__evaluat, _experiment$__evaluat2, _experiment$groupName;\n var config = new DynamicConfig(experiment.name, experiment.value, experiment.ruleID, migrateEvaluationDetails(experiment.details), migrateSecondaryExposures((_experiment$__evaluat = (_experiment$__evaluat2 = experiment.__evaluation) === null || _experiment$__evaluat2 === void 0 ? void 0 : _experiment$__evaluat2.secondary_exposures) !== null && _experiment$__evaluat !== void 0 ? _experiment$__evaluat : []), (_experiment$groupName = experiment.groupName) !== null && _experiment$groupName !== void 0 ? _experiment$groupName : undefined);\n config.experiment = experiment;\n return config;\n }\n\n /** @deprecated - do not use, this is still exported for backwards compatibility but will be removed in the next major version */\n }]);\n}();","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport { migrateEvaluationDetails, migrateSecondaryExposures } from '../utils';\n// Reference: https://github.com/statsig-io/js-lite/blob/main/src/Layer.ts\nexport var Layer = /*#__PURE__*/function () {\n function Layer(name, layerValue, ruleID, evaluationDetails) {\n var logParameterFunction = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n var secondaryExposures = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n var undelegatedSecondaryExposures = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : [];\n var allocatedExperimentName = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : '';\n var explicitParameters = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : [];\n _classCallCheck(this, Layer);\n this._logParameterFunction = logParameterFunction;\n this._name = name;\n this._value = JSON.parse(JSON.stringify(layerValue !== null && layerValue !== void 0 ? layerValue : {}));\n this._ruleID = ruleID !== null && ruleID !== void 0 ? ruleID : '';\n this._evaluationDetails = evaluationDetails;\n this._secondaryExposures = secondaryExposures;\n this._undelegatedSecondaryExposures = undelegatedSecondaryExposures;\n this._allocatedExperimentName = allocatedExperimentName;\n this._explicitParameters = explicitParameters;\n }\n return _createClass(Layer, [{\n key: \"get\",\n value: function get(key, defaultValue, typeGuard) {\n var _this = this;\n var val = this._value[key];\n if (val == null) {\n return defaultValue;\n }\n var logAndReturn = function logAndReturn() {\n _this._logLayerParameterExposure(key);\n return val;\n };\n if (typeGuard) {\n return typeGuard(val) ? logAndReturn() : defaultValue;\n }\n if (defaultValue == null) {\n return logAndReturn();\n }\n if (_typeof(val) === _typeof(defaultValue) && Array.isArray(defaultValue) === Array.isArray(val)) {\n return logAndReturn();\n }\n return defaultValue;\n }\n }, {\n key: \"getValue\",\n value: function getValue(key, defaultValue) {\n // eslint-disable-next-line eqeqeq\n if (defaultValue == undefined) {\n defaultValue = null;\n }\n var val = this._value[key];\n if (val != null) {\n this._logLayerParameterExposure(key);\n }\n return val !== null && val !== void 0 ? val : defaultValue;\n }\n }, {\n key: \"_logLayerParameterExposure\",\n value: function _logLayerParameterExposure(parameterName) {\n var _this$_logParameterFu;\n (_this$_logParameterFu = this._logParameterFunction) === null || _this$_logParameterFu === void 0 || _this$_logParameterFu.call(this, this, parameterName);\n }\n }], [{\n key: \"fromLayer\",\n value: function fromLayer(layer) {\n var _layer$__evaluation$s, _layer$__evaluation, _layer$__evaluation$u, _layer$__evaluation2, _layer$__evaluation3, _layer$__evaluation4;\n var value = new Layer(layer.name, layer.__value, layer.ruleID, migrateEvaluationDetails(layer.details), function (_layer, parameterName) {\n return layer.get(parameterName);\n }, migrateSecondaryExposures((_layer$__evaluation$s = (_layer$__evaluation = layer.__evaluation) === null || _layer$__evaluation === void 0 ? void 0 : _layer$__evaluation.secondary_exposures) !== null && _layer$__evaluation$s !== void 0 ? _layer$__evaluation$s : []), migrateSecondaryExposures((_layer$__evaluation$u = (_layer$__evaluation2 = layer.__evaluation) === null || _layer$__evaluation2 === void 0 ? void 0 : _layer$__evaluation2.undelegated_secondary_exposures) !== null && _layer$__evaluation$u !== void 0 ? _layer$__evaluation$u : []), (_layer$__evaluation3 = layer.__evaluation) === null || _layer$__evaluation3 === void 0 ? void 0 : _layer$__evaluation3.allocated_experiment_name, (_layer$__evaluation4 = layer.__evaluation) === null || _layer$__evaluation4 === void 0 ? void 0 : _layer$__evaluation4.explicit_parameters);\n return value;\n }\n\n /** @deprecated - do not use, this is still exported for backwards compatibility but will be removed in the next major version */\n\n /** @deprecated - do not use, this is still exported for backwards compatibility but will be removed in the next major version */\n }]);\n}();","/// <reference types=\"node\" />\nexport var CLIENT_VERSION = \"0.0.0-development\";","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import _createClass from \"@babel/runtime/helpers/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _wrapNativeSuper from \"@babel/runtime/helpers/wrapNativeSuper\";\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nexport var ResponseError = /*#__PURE__*/function (_Error) {\n function ResponseError(message) {\n _classCallCheck(this, ResponseError);\n return _callSuper(this, ResponseError, [message]);\n }\n _inherits(ResponseError, _Error);\n return _createClass(ResponseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { FeatureGateEnvironment, PerimeterType } from '../types';\nimport { CLIENT_VERSION } from '../version';\nimport { ResponseError } from './errors';\nvar DEFAULT_REQUEST_TIMEOUT_MS = 5000;\nexport var PROD_BASE_URL = 'https://api.atlassian.com/flags';\nexport var STAGING_BASE_URL = 'https://api.stg.atlassian.com/flags';\nexport var DEV_BASE_URL = 'https://api.dev.atlassian.com/flags';\nexport var FEDM_STAGING_BASE_URL = 'https://api.stg.atlassian-us-gov-mod.com/flags';\nexport var FEDM_PROD_BASE_URL = 'https://api.atlassian-us-gov-mod.com/flags';\nexport var IC_FFS_BASE_URL = 'https://atlassian-statsig-proxy-archetype.atl-paas.%s.atl-ic.net';\nexport var IC_STAGING_BASE_DOMAIN_URL = 'oasis-stg.com/flags';\nexport var IC_PROD_BASE_DOMAIN_URL = 'atlassian-isolated.net/flags';\nexport var GATEWAY_BASE_URL = '/gateway/api/flags';\nvar Fetcher = /*#__PURE__*/function () {\n function Fetcher() {\n _classCallCheck(this, Fetcher);\n }\n return _createClass(Fetcher, null, [{\n key: \"fetchClientSdk\",\n value: function () {\n var _fetchClientSdk = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(fetcherOptions) {\n var targetApp, url;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n targetApp = fetcherOptions.targetApp;\n url = \"/api/v2/frontend/clientSdkKey/\".concat(targetApp);\n _context.prev = 2;\n _context.next = 5;\n return this.fetchRequest(url, 'GET', fetcherOptions);\n case 5:\n return _context.abrupt(\"return\", _context.sent);\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](2);\n if (!(_context.t0 instanceof Error)) {\n _context.next = 12;\n break;\n }\n throw _context.t0;\n case 12:\n throw Error('Failed to retrieve client sdk key');\n case 13:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[2, 8]]);\n }));\n function fetchClientSdk(_x) {\n return _fetchClientSdk.apply(this, arguments);\n }\n return fetchClientSdk;\n }()\n }, {\n key: \"fetchExperimentValues\",\n value: function () {\n var _fetchExperimentValues = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(fetcherOptions, identifiers, customAttributes) {\n var requestBody;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n requestBody = {\n identifiers: identifiers,\n customAttributes: customAttributes,\n targetApp: fetcherOptions.targetApp\n };\n _context2.prev = 1;\n _context2.next = 4;\n return this.fetchRequest('/api/v2/frontend/experimentValues', 'POST', fetcherOptions, requestBody);\n case 4:\n return _context2.abrupt(\"return\", _context2.sent);\n case 7:\n _context2.prev = 7;\n _context2.t0 = _context2[\"catch\"](1);\n if (!(_context2.t0 instanceof Error)) {\n _context2.next = 11;\n break;\n }\n throw _context2.t0;\n case 11:\n throw Error('Failed to retrieve experiment values');\n case 12:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this, [[1, 7]]);\n }));\n function fetchExperimentValues(_x2, _x3, _x4) {\n return _fetchExperimentValues.apply(this, arguments);\n }\n return fetchExperimentValues;\n }()\n }, {\n key: \"handleResponseError\",\n value: function () {\n var _handleResponseError = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(response) {\n var body;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n if (response.ok) {\n _context3.next = 5;\n break;\n }\n _context3.next = 3;\n return response.text();\n case 3:\n body = _context3.sent;\n throw new ResponseError(\"Non 2xx response status received, status: \".concat(response.status, \", body: \").concat(JSON.stringify(body)));\n case 5:\n if (!(response.status === 204)) {\n _context3.next = 7;\n break;\n }\n throw new ResponseError('Unexpected 204 response');\n case 7:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function handleResponseError(_x5) {\n return _handleResponseError.apply(this, arguments);\n }\n return handleResponseError;\n }()\n }, {\n key: \"extractResponseBody\",\n value: function () {\n var _extractResponseBody = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(response) {\n var value;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return response.text();\n case 2:\n value = _context4.sent;\n return _context4.abrupt(\"return\", JSON.parse(value));\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n function extractResponseBody(_x6) {\n return _extractResponseBody.apply(this, arguments);\n }\n return extractResponseBody;\n }()\n }, {\n key: \"getBaseUrl\",\n value: function getBaseUrl(serviceEnv) {\n var useGatewayUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var perimeter = arguments.length > 2 ? arguments[2] : undefined;\n var isolationContextId = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n if (useGatewayUrl) {\n return GATEWAY_BASE_URL;\n }\n if (perimeter === PerimeterType.FEDRAMP_MODERATE) {\n switch (serviceEnv) {\n case FeatureGateEnvironment.Production:\n return FEDM_PROD_BASE_URL;\n case FeatureGateEnvironment.Staging:\n return FEDM_STAGING_BASE_URL;\n default:\n throw new Error(\"Invalid environment \\\"\".concat(serviceEnv, \"\\\" for \\\"\").concat(perimeter, \"\\\" perimeter\"));\n }\n } else if (perimeter === PerimeterType.COMMERCIAL) {\n switch (serviceEnv) {\n case FeatureGateEnvironment.Development:\n return DEV_BASE_URL;\n case FeatureGateEnvironment.Staging:\n var apiUrl = this.getApiUrl(isolationContextId);\n if (apiUrl !== null) {\n return apiUrl;\n }\n return STAGING_BASE_URL;\n default:\n var prodApiUrl = this.getApiUrl(isolationContextId);\n if (prodApiUrl !== null) {\n return prodApiUrl;\n }\n return PROD_BASE_URL;\n }\n } else {\n throw new Error(\"Invalid perimeter \\\"\".concat(perimeter, \"\\\"\"));\n }\n }\n }, {\n key: \"fetchRequest\",\n value: function () {\n var _fetchRequest = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(path, method, fetcherOptions, body) {\n var baseUrl, fetchTimeout, abortSignal, abortController, response;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n baseUrl = Fetcher.getBaseUrl(fetcherOptions.environment, fetcherOptions.useGatewayURL, fetcherOptions.perimeter, fetcherOptions.isolationContextId);\n fetchTimeout = fetcherOptions.fetchTimeoutMs || DEFAULT_REQUEST_TIMEOUT_MS;\n if (AbortSignal.timeout) {\n abortSignal = AbortSignal.timeout(fetchTimeout);\n } else if (AbortController) {\n abortController = new AbortController();\n abortSignal = abortController.signal;\n setTimeout(function () {\n return abortController.abort();\n }, fetchTimeout);\n }\n _context5.next = 5;\n return fetch(\"\".concat(baseUrl).concat(path), _objectSpread({\n method: method,\n headers: {\n 'Content-Type': 'application/json',\n 'X-Client-Name': 'feature-gate-js-client',\n 'X-Client-Version': CLIENT_VERSION,\n 'X-API-KEY': fetcherOptions.apiKey\n },\n signal: abortSignal\n }, body && {\n body: JSON.stringify(body)\n }));\n case 5:\n response = _context5.sent;\n _context5.next = 8;\n return this.handleResponseError(response);\n case 8:\n _context5.next = 10;\n return this.extractResponseBody(response);\n case 10:\n return _context5.abrupt(\"return\", _context5.sent);\n case 11:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function fetchRequest(_x7, _x8, _x9, _x0) {\n return _fetchRequest.apply(this, arguments);\n }\n return fetchRequest;\n }()\n }, {\n key: \"getApiUrl\",\n value: function getApiUrl(isolationContextId) {\n var window = this.getWindowLocation();\n if (window === undefined) {\n //this is needed when this SDK is used for SSR or plugin use cases where secret keys not available to use backend SDKs\n if (!isolationContextId) {\n return null;\n }\n return IC_FFS_BASE_URL.replace('%s', isolationContextId);\n }\n var protocol = window.protocol,\n hostname = window.hostname;\n\n // Match last subdomain fragment before oasis-stg.com\n var oasisMatch = hostname.match(/([^.]+)\\.oasis-stg\\.com$/);\n if (oasisMatch) {\n return \"\".concat(protocol, \"//api.\").concat(oasisMatch[1], \".\").concat(IC_STAGING_BASE_DOMAIN_URL);\n }\n\n // Match last subdomain fragment before atlassian-isolated.net\n var isolatedMatch = hostname.match(/([^.]+)\\.atlassian-isolated\\.net$/);\n if (isolatedMatch) {\n return \"\".concat(protocol, \"//api.\").concat(isolatedMatch[1], \".\").concat(IC_PROD_BASE_DOMAIN_URL);\n }\n return null;\n }\n }, {\n key: \"getWindowLocation\",\n value: function getWindowLocation() {\n if (typeof window !== 'undefined' && window.location) {\n return window.location;\n }\n return undefined;\n }\n }]);\n}();\nexport { Fetcher as default };","import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _get from \"@babel/runtime/helpers/get\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && \"function\" == typeof p ? function (t) { return p.apply(e, t); } : p; }\nimport { _getFullUserHash, _getStorageKey, DataAdapterCachePrefix, DataAdapterCore, StableID } from '@statsig/js-client';\n\n/**\n * Data adapter which only uses bootstrap data and will never fetch from network or cache.\n * We do this because we control the fetching of bootstrap data from FFS in Client.ts whereas the\n * default data adapter fetches from Statsig servers.\n */\nexport var NoFetchDataAdapter = /*#__PURE__*/function (_DataAdapterCore) {\n function NoFetchDataAdapter() {\n var _this;\n _classCallCheck(this, NoFetchDataAdapter);\n _this = _callSuper(this, NoFetchDataAdapter, ['NoFetchDataAdapter', 'nofetch']);\n _defineProperty(_this, \"bootstrapResult\", null);\n return _this;\n }\n\n /**\n * Make sure to call this **before** calling `initializeAsync` or `updateUserAsync` but\n * after the Statsig client has been created!\n */\n _inherits(NoFetchDataAdapter, _DataAdapterCore);\n return _createClass(NoFetchDataAdapter, [{\n key: \"setBootstrapData\",\n value: function setBootstrapData(data) {\n this.bootstrapResult = data ? {\n source: 'Bootstrap',\n data: JSON.stringify(data),\n receivedAt: Date.now(),\n stableID: StableID.get(this._getSdkKey()),\n fullUserHash: null\n } : null;\n }\n }, {\n key: \"prefetchData\",\n value: function () {\n var _prefetchData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_user, _options) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n function prefetchData(_x, _x2) {\n return _prefetchData.apply(this, arguments);\n }\n return prefetchData;\n }()\n }, {\n key: \"getDataAsync\",\n value: function () {\n var _getDataAsync = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_current, user, _options) {\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt(\"return\", this.bootstrapResult && _objectSpread(_objectSpread({}, this.bootstrapResult), {}, {\n fullUserHash: _getFullUserHash(user)\n }));\n case 1:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function getDataAsync(_x3, _x4, _x5) {\n return _getDataAsync.apply(this, arguments);\n }\n return getDataAsync;\n }()\n }, {\n key: \"getDataSync\",\n value: function getDataSync(user) {\n return this.bootstrapResult && _objectSpread(_objectSpread({}, this.bootstrapResult), {}, {\n fullUserHash: _getFullUserHash(user)\n });\n }\n }, {\n key: \"_fetchFromNetwork\",\n value: function () {\n var _fetchFromNetwork2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(_current, _user, _options) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", null);\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n function _fetchFromNetwork(_x6, _x7, _x8) {\n return _fetchFromNetwork2.apply(this, arguments);\n }\n return _fetchFromNetwork;\n }()\n }, {\n key: \"_getCacheKey\",\n value: function _getCacheKey(user) {\n // Same logic as default data adapter\n // https://github.com/statsig-io/js-client-monorepo/blob/main/packages/js-client/src/StatsigEvaluationsDataAdapter.ts\n var key = _getStorageKey(this._getSdkKey(), user);\n return \"\".concat(DataAdapterCachePrefix, \".\").concat(this._cacheSuffix, \".\").concat(key);\n }\n }, {\n key: \"_isCachedResultValidFor204\",\n value: function _isCachedResultValidFor204(_result, _user) {\n return false;\n }\n }, {\n key: \"setDataLegacy\",\n value: function setDataLegacy(data, user) {\n _superPropGet(NoFetchDataAdapter, \"setData\", this, 3)([data, user]);\n }\n\n // Do not stringify options property since that includes this adapter and will\n // cause a circular reference when Statsig sends diagnostic events and including\n // values is not necessary and makes the result huge\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = _objectSpread({}, this);\n delete result._options;\n delete result._inMemoryCache;\n delete result.bootstrapResult;\n return result;\n }\n }]);\n}(DataAdapterCore);","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { _DJB2, _makeTypedGet } from '@statsig/client-core';\nvar LOCAL_OVERRIDE_REASON = 'LocalOverride:Recognized';\nexport var LOCAL_STORAGE_KEY = 'STATSIG_OVERRIDES';\nvar LEGACY_LOCAL_STORAGE_KEY = 'STATSIG_JS_LITE_LOCAL_OVERRIDES';\nvar makeEmptyStore = function makeEmptyStore() {\n return {\n gates: {},\n configs: {},\n layers: {}\n };\n};\nvar djb2MapKey = function djb2MapKey(hash, kind) {\n return kind + ':' + hash;\n};\n\n/**\n * Custom implementation of `@statsig/js-local-overrides` package with support for local storage\n * so we can keep the existing behavior where overrides are cached locally. Also designed for\n * compatibility with the old override system (eg. no `experiments` field, `configs` is used\n * instead).\n *\n * [Reference](https://github.com/statsig-io/js-client-monorepo/blob/main/packages/js-local-overrides/src/LocalOverrideAdapter.ts)\n */\nexport var PersistentOverrideAdapter = /*#__PURE__*/function () {\n function PersistentOverrideAdapter(localStorageKey) {\n _classCallCheck(this, PersistentOverrideAdapter);\n this._overrides = makeEmptyStore();\n this._djb2Map = new Map();\n this._localStorageKey = localStorageKey;\n }\n return _createClass(PersistentOverrideAdapter, [{\n key: \"parseStoredOverrides\",\n value: function parseStoredOverrides(localStorageKey) {\n try {\n var json = window.localStorage.getItem(localStorageKey);\n if (!json) {\n return makeEmptyStore();\n }\n return JSON.parse(json);\n } catch (_unused) {\n return makeEmptyStore();\n }\n }\n }, {\n key: \"mergeOverrides\",\n value: function mergeOverrides() {\n var merged = makeEmptyStore();\n for (var _len = arguments.length, allOverrides = new Array(_len), _key = 0; _key < _len; _key++) {\n allOverrides[_key] = arguments[_key];\n }\n for (var _i = 0, _allOverrides = allOverrides; _i < _allOverrides.length; _i++) {\n var overrides = _allOverrides[_i];\n for (var _i2 = 0, _Object$entries = Object.entries((_overrides$gates = overrides.gates) !== null && _overrides$gates !== void 0 ? _overrides$gates : {}); _i2 < _Object$entries.length; _i2++) {\n var _overrides$gates;\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),\n name = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n merged.gates[name] = value;\n }\n for (var _i3 = 0, _Object$entries2 = Object.entries((_overrides$configs = overrides.configs) !== null && _overrides$configs !== void 0 ? _overrides$configs : {}); _i3 < _Object$entries2.length; _i3++) {\n var _overrides$configs;\n var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),\n _name = _Object$entries2$_i[0],\n _value = _Object$entries2$_i[1];\n merged.configs[_name] = _value;\n }\n for (var _i4 = 0, _Object$entries3 = Object.entries((_overrides$layers = overrides.layers) !== null && _overrides$layers !== void 0 ? _overrides$layers : {}); _i4 < _Object$entries3.length; _i4++) {\n var _overrides$layers;\n var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2),\n _name2 = _Object$entries3$_i[0],\n _value2 = _Object$entries3$_i[1];\n merged.layers[_name2] = _value2;\n }\n }\n return merged;\n }\n }, {\n key: \"initFromStoredOverrides\",\n value: function initFromStoredOverrides() {\n var storedOverrides = this.mergeOverrides(this._overrides, this.parseStoredOverrides(LEGACY_LOCAL_STORAGE_KEY), this.parseStoredOverrides(this._localStorageKey));\n\n // Clear data from legacy local storage key now we've read from it.\n // This prevents things being stuck in there that are always read but never written to.\n try {\n window.localStorage.removeItem(LEGACY_LOCAL_STORAGE_KEY);\n } catch (_unused2) {\n // ignored - window is not defined in non-browser environments, and we don't save things there\n // (things like SSR, etc)\n }\n\n // In version 4.24.0 we introduced hashes in this override adapter, but had a bug which would cause\n // multiple hashes to continue being created. This code here removes these hashes since we've moved\n // to using a more reliable and easier to maintain map in `_djb2Map`.\n for (var _i5 = 0, _Object$values = Object.values(storedOverrides); _i5 < _Object$values.length; _i5++) {\n var container = _Object$values[_i5];\n var allKeys = new Set(Object.keys(container));\n var _iterator = _createForOfIteratorHelper(allKeys),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var name = _step.value;\n var hash = _DJB2(name);\n if (allKeys.has(hash)) {\n delete container[hash];\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n this.applyOverrides(storedOverrides);\n }\n }, {\n key: \"saveOverrides\",\n value: function saveOverrides() {\n try {\n window.localStorage.setItem(this._localStorageKey, JSON.stringify(this._overrides));\n } catch (_unused3) {\n // ignored - window is not defined in non-browser environments, and we don't save things there\n // (things like SSR, etc)\n }\n }\n }, {\n key: \"getOverrides\",\n value: function getOverrides() {\n return this.mergeOverrides(this._overrides);\n }\n }, {\n key: \"applyOverrides\",\n value: function applyOverrides(overrides) {\n var newOverrides = _objectSpread(_objectSpread({}, makeEmptyStore()), overrides);\n this._djb2Map.clear();\n for (var _i6 = 0, _Object$entries4 = Object.entries(newOverrides); _i6 < _Object$entries4.length; _i6++) {\n var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i6], 2),\n containerName = _Object$entries4$_i[0],\n container = _Object$entries4$_i[1];\n for (var _i7 = 0, _Object$entries5 = Object.entries(container); _i7 < _Object$entries5.length; _i7++) {\n var _Object$entries5$_i = _slicedToArray(_Object$entries5[_i7], 2),\n name = _Object$entries5$_i[0],\n value = _Object$entries5$_i[1];\n this._djb2Map.set(djb2MapKey(_DJB2(name), containerName), value);\n }\n }\n this._overrides = newOverrides;\n }\n }, {\n key: \"setOverrides\",\n value: function setOverrides(overrides) {\n this.applyOverrides(overrides);\n this.saveOverrides();\n }\n }, {\n key: \"overrideGate\",\n value: function overrideGate(name, value) {\n this._overrides.gates[name] = value;\n this._djb2Map.set(djb2MapKey(_DJB2(name), 'gates'), value);\n this.saveOverrides();\n }\n }, {\n key: \"removeGateOverride\",\n value: function removeGateOverride(name) {\n delete this._overrides.gates[name];\n this._djb2Map.delete(djb2MapKey(_DJB2(name), 'gates'));\n this.saveOverrides();\n }\n }, {\n key: \"getGateOverride\",\n value: function getGateOverride(current, _user) {\n var _this$_overrides$gate;\n var overridden = (_this$_overrides$gate = this._overrides.gates[current.name]) !== null && _this$_overrides$gate !== void 0 ? _this$_overrides$gate : this._djb2Map.get(djb2MapKey(current.name, 'gates'));\n if (overridden == null) {\n return null;\n }\n return _objectSpread(_objectSpread({}, current), {}, {\n value: overridden,\n details: _objectSpread(_objectSpread({}, current.details), {}, {\n reason: LOCAL_OVERRIDE_REASON\n })\n });\n }\n }, {\n key: \"overrideDynamicConfig\",\n value: function overrideDynamicConfig(name, value) {\n this._overrides.configs[name] = value;\n this._djb2Map.set(djb2MapKey(_DJB2(name), 'configs'), value);\n this.saveOverrides();\n }\n }, {\n key: \"removeDynamicConfigOverride\",\n value: function removeDynamicConfigOverride(name) {\n delete this._overrides.configs[name];\n this._djb2Map.delete(djb2MapKey(_DJB2(name), 'configs'));\n this.saveOverrides();\n }\n }, {\n key: \"getDynamicConfigOverride\",\n value: function getDynamicConfigOverride(current, _user) {\n return this._getConfigOverride(current, this._overrides.configs);\n }\n }, {\n key: \"overrideExperiment\",\n value: function overrideExperiment(name, value) {\n this._overrides.configs[name] = value;\n this._djb2Map.set(djb2MapKey(_DJB2(name), 'configs'), value);\n this.saveOverrides();\n }\n }, {\n key: \"removeExperimentOverride\",\n value: function removeExperimentOverride(name) {\n delete this._overrides.configs[name];\n this._djb2Map.delete(djb2MapKey(_DJB2(name), 'configs'));\n this.saveOverrides();\n }\n }, {\n key: \"getExperimentOverride\",\n value: function getExperimentOverride(current, _user) {\n return this._getConfigOverride(current, this._overrides.configs);\n }\n }, {\n key: \"overrideLayer\",\n value: function overrideLayer(name, value) {\n this._overrides.layers[name] = value;\n this._djb2Map.set(djb2MapKey(_DJB2(name), 'layers'), value);\n this.saveOverrides();\n }\n }, {\n key: \"removeLayerOverride\",\n value: function removeLayerOverride(name) {\n delete this._overrides.layers[name];\n this._djb2Map.delete(djb2MapKey(_DJB2(name), 'layers'));\n this.saveOverrides();\n }\n }, {\n key: \"removeAllOverrides\",\n value: function removeAllOverrides() {\n this._overrides = makeEmptyStore();\n try {\n window.localStorage.removeItem(this._localStorageKey);\n } catch (_unused4) {\n // ignored - window is not defined in non-browser environments, and we don't save things there\n // (things like SSR, etc)\n }\n }\n }, {\n key: \"getLayerOverride\",\n value: function getLayerOverride(current, _user) {\n var _this$_overrides$laye;\n var overridden = (_this$_overrides$laye = this._overrides.layers[current.name]) !== null && _this$_overrides$laye !== void 0 ? _this$_overrides$laye : this._djb2Map.get(djb2MapKey(current.name, 'layers'));\n if (overridden == null) {\n return null;\n }\n return _objectSpread(_objectSpread({}, current), {}, {\n __value: overridden,\n get: _makeTypedGet(current.name, overridden),\n details: _objectSpread(_objectSpread({}, current.details), {}, {\n reason: LOCAL_OVERRIDE_REASON\n })\n });\n }\n }, {\n key: \"_getConfigOverride\",\n value: function _getConfigOverride(current, lookup) {\n var _lookup$current$name;\n var overridden = (_lookup$current$name = lookup[current.name]) !== null && _lookup$current$name !== void 0 ? _lookup$current$name : this._djb2Map.get(djb2MapKey(current.name, 'configs'));\n if (overridden == null) {\n return null;\n }\n return _objectSpread(_objectSpread({}, current), {}, {\n value: overridden,\n get: _makeTypedGet(current.name, overridden),\n details: _objectSpread(_objectSpread({}, current.details), {}, {\n reason: LOCAL_OVERRIDE_REASON\n })\n });\n }\n }]);\n}();","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"sdkKey\", \"environment\", \"updateUserCompletionCallback\", \"perimeter\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { _makeLayer, LogEventCompressionMode, StableID, StatsigClient } from '@statsig/js-client';\nimport Subscriptions from '../subscriptions';\nimport { DynamicConfig } from './compat/DynamicConfig';\nimport { Layer } from './compat/Layer';\nimport { EvaluationReason } from './compat/types';\nimport Fetcher from './fetcher';\nimport { NoFetchDataAdapter } from './NoFetchDataAdapter';\nimport { LOCAL_STORAGE_KEY, PersistentOverrideAdapter } from './PersistentOverrideAdapter';\nimport { FeatureGateEnvironment, PerimeterType } from './types';\nimport { getOptionsWithDefaults, migrateInitializationOptions, shallowEquals, toStatsigUser } from './utils';\nimport { CLIENT_VERSION } from './version';\nvar DEFAULT_CLIENT_KEY = 'client-default-key';\n// default event logging api is Atlassian proxy rather than Statsig's domain, to avoid ad blockers\nvar DEFAULT_EVENT_LOGGING_API = 'https://xp.atlassian.com/v1/rgstr';\nexport var Client = /*#__PURE__*/function () {\n function Client() {\n var _this = this;\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$localStorageKey = _ref.localStorageKey,\n localStorageKey = _ref$localStorageKey === void 0 ? LOCAL_STORAGE_KEY : _ref$localStorageKey,\n overrideAdapter = _ref.overrideAdapter;\n _classCallCheck(this, Client);\n _defineProperty(this, \"initPromise\", null);\n /** True if an initialize method was called and completed successfully. */\n _defineProperty(this, \"initCompleted\", false);\n /**\n * True if an initialize method was called and completed, meaning the client is now usable.\n * However if there was an error during initialization it may have initialized with default\n * values. Use {@link initCompleted} to check for this.\n */\n _defineProperty(this, \"initWithDefaults\", false);\n _defineProperty(this, \"hasCheckGateErrorOccurred\", false);\n _defineProperty(this, \"hasGetExperimentErrorOccurred\", false);\n _defineProperty(this, \"hasGetExperimentValueErrorOccurred\", false);\n _defineProperty(this, \"hasGetLayerErrorOccurred\", false);\n _defineProperty(this, \"hasGetLayerValueErrorOccurred\", false);\n _defineProperty(this, \"subscriptions\", new Subscriptions());\n _defineProperty(this, \"dataAdapter\", new NoFetchDataAdapter());\n /**\n * Call this if modifying the values being served by the Statsig library since it has its own\n * memoization cache which will not be updated if the values are changed outside of the library.\n */\n _defineProperty(this, \"statsigValuesUpdated\", function () {\n if (_this.user) {\n // Trigger a reset of the memoize cache\n _this.statsigClient.updateUserSync(_this.user, {\n disableBackgroundCacheRefresh: true\n });\n }\n _this.subscriptions.anyUpdated();\n });\n this.overrideAdapter = overrideAdapter || new PersistentOverrideAdapter(localStorageKey);\n }\n\n /**\n * @description\n * This method initializes the client using a network call to fetch the bootstrap values.\n * If the client is inialized with an `analyticsWebClient`, it will send an operational event\n * to GASv3 with the following attributes:\n * - targetApp: the target app of the client\n * - clientVersion: the version of the client\n * - success: whether the initialization was successful\n * - startTime: the time when the initialization started\n * - totalTime: the total time it took to initialize the client\n * - apiKey: the api key used to initialize the client\n * @param clientOptions {ClientOptions}\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n * @returns {Promise<void>}\n */\n return _createClass(Client, [{\n key: \"initialize\",\n value: (function () {\n var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(clientOptions, identifiers, customAttributes) {\n var _this2 = this;\n var clientOptionsWithDefaults, startTime;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n clientOptionsWithDefaults = getOptionsWithDefaults(clientOptions);\n if (!this.initPromise) {\n _context.next = 4;\n break;\n }\n if (!shallowEquals(clientOptionsWithDefaults, this.initOptions)) {\n // eslint-disable-next-line no-console\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return _context.abrupt(\"return\", this.initPromise);\n case 4:\n startTime = performance.now();\n this.initOptions = clientOptionsWithDefaults;\n this.initPromise = this.init(clientOptionsWithDefaults, identifiers, customAttributes).then(function () {\n _this2.initCompleted = true;\n _this2.initWithDefaults = true;\n }).finally(function () {\n var endTime = performance.now();\n var totalTime = endTime - startTime;\n _this2.fireClientEvent(startTime, totalTime, 'initialize', _this2.initCompleted, clientOptionsWithDefaults.apiKey);\n });\n return _context.abrupt(\"return\", this.initPromise);\n case 8:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this);\n }));\n function initialize(_x, _x2, _x3) {\n return _initialize.apply(this, arguments);\n }\n return initialize;\n }()\n /**\n * @description\n * This method initializes the client using the provider given to call to fetch the bootstrap values.\n * If the client is initialized with an `analyticsWebClient`, it will send an operational event\n * to GASv3 with the following attributes:\n * - targetApp: the target app of the client\n * - clientVersion: the version of the client\n * - success: whether the initialization was successful\n * - startTime: the time when the initialization started\n * - totalTime: the total time it took to initialize the client\n * - apiKey: the api key used to initialize the client\n * @param clientOptions {ClientOptions}\n * @param provider {Provider}\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n * @returns {Promise<void>}\n */\n )\n }, {\n key: \"initializeWithProvider\",\n value: (function () {\n var _initializeWithProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(clientOptions, provider, identifiers, customAttributes) {\n var _this3 = this;\n var clientOptionsWithDefaults, startTime;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n clientOptionsWithDefaults = getOptionsWithDefaults(clientOptions);\n if (!this.initPromise) {\n _context2.next = 4;\n break;\n }\n if (!shallowEquals(clientOptionsWithDefaults, this.initOptions)) {\n // eslint-disable-next-line no-console\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return _context2.abrupt(\"return\", this.initPromise);\n case 4:\n startTime = performance.now();\n this.initOptions = clientOptionsWithDefaults;\n this.provider = provider;\n this.provider.setClientVersion(CLIENT_VERSION);\n if (this.provider.setApplyUpdateCallback) {\n this.provider.setApplyUpdateCallback(this.applyUpdateCallback.bind(this));\n }\n this.initPromise = this.initWithProvider(clientOptionsWithDefaults, provider, identifiers, customAttributes).then(function () {\n _this3.initCompleted = true;\n _this3.initWithDefaults = true;\n }).finally(function () {\n var endTime = performance.now();\n var totalTime = endTime - startTime;\n _this3.fireClientEvent(startTime, totalTime, 'initializeWithProvider', _this3.initCompleted, provider.getApiKey ? provider.getApiKey() : undefined);\n });\n return _context2.abrupt(\"return\", this.initPromise);\n case 11:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function initializeWithProvider(_x4, _x5, _x6, _x7) {\n return _initializeWithProvider.apply(this, arguments);\n }\n return initializeWithProvider;\n }())\n }, {\n key: \"applyUpdateCallback\",\n value: function applyUpdateCallback(experimentsResult) {\n try {\n if (this.initCompleted || this.initWithDefaults) {\n this.assertInitialized(this.statsigClient);\n this.dataAdapter.setBootstrapData(experimentsResult.experimentValues);\n this.dataAdapter.setData(JSON.stringify(experimentsResult.experimentValues));\n this.statsigValuesUpdated();\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn('Error when attempting to apply update', error);\n }\n }\n }, {\n key: \"fireClientEvent\",\n value: function fireClientEvent(startTime, totalTime, action, success) {\n var _analyticsWebClient,\n _this4 = this;\n var apiKey = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : undefined;\n (_analyticsWebClient = this.initOptions.analyticsWebClient) === null || _analyticsWebClient === void 0 || _analyticsWebClient.then(function (analyticsWebClient) {\n var attributes = _objectSpread({\n targetApp: _this4.initOptions.targetApp,\n clientVersion: CLIENT_VERSION,\n success: success,\n startTime: startTime,\n totalTime: totalTime\n }, apiKey && {\n apiKey: apiKey\n });\n analyticsWebClient.sendOperationalEvent({\n action: action,\n actionSubject: 'featureGatesClient',\n attributes: attributes,\n tags: ['measurement'],\n source: '@atlaskit/feature-gate-js-client'\n });\n }).catch(function (err) {\n if (_this4.initOptions.environment !== FeatureGateEnvironment.Production) {\n // eslint-disable-next-line no-console\n console.error('Analytics web client promise did not resolve', err);\n }\n });\n }\n }, {\n key: \"initializeFromValues\",\n value: function () {\n var _initializeFromValues = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(clientOptions, identifiers, customAttributes) {\n var _this5 = this;\n var initializeValues,\n clientOptionsWithDefaults,\n startTime,\n _args3 = arguments;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n initializeValues = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {};\n clientOptionsWithDefaults = getOptionsWithDefaults(clientOptions);\n if (!this.initPromise) {\n _context3.next = 5;\n break;\n }\n if (!shallowEquals(clientOptionsWithDefaults, this.initOptions)) {\n // eslint-disable-next-line no-console\n console.warn('Feature Gates client already initialized with different options. New options were not applied.');\n }\n return _context3.abrupt(\"return\", this.initPromise);\n case 5:\n // This makes sure the new Statsig client behaves like the old when bootstrap data is\n // passed, and `has_updates` isn't specified (which happens a lot in product integration tests).\n if (!Object.prototype.hasOwnProperty.call(initializeValues, 'has_updates')) {\n initializeValues['has_updates'] = true;\n }\n startTime = performance.now();\n this.initOptions = clientOptionsWithDefaults;\n this.initPromise = this.initFromValues(clientOptionsWithDefaults, identifiers, customAttributes, initializeValues).then(function () {\n _this5.initCompleted = true;\n _this5.initWithDefaults = true;\n }).finally(function () {\n var endTime = performance.now();\n var totalTime = endTime - startTime;\n _this5.fireClientEvent(startTime, totalTime, 'initializeFromValues', _this5.initCompleted);\n });\n return _context3.abrupt(\"return\", this.initPromise);\n case 10:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, this);\n }));\n function initializeFromValues(_x8, _x9, _x0) {\n return _initializeFromValues.apply(this, arguments);\n }\n return initializeFromValues;\n }()\n }, {\n key: \"assertInitialized\",\n value: function assertInitialized(statsigClient) {\n if (!statsigClient) {\n throw new Error('Client must be initialized before using this method');\n }\n }\n\n /**\n * This method updates the user using a network call to fetch the new set of values.\n * @param fetchOptions {FetcherOptions}\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n */\n }, {\n key: \"updateUser\",\n value: (function () {\n var _updateUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(fetchOptions, identifiers, customAttributes) {\n var fetchOptionsWithDefaults, initializeValuesProducer;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n this.assertInitialized(this.statsigClient);\n fetchOptionsWithDefaults = getOptionsWithDefaults(fetchOptions);\n initializeValuesProducer = function initializeValuesProducer() {\n return Fetcher.fetchExperimentValues(fetchOptionsWithDefaults, identifiers, customAttributes).then(function (_ref2) {\n var experimentValues = _ref2.experimentValues,\n customAttributes = _ref2.customAttributes;\n return {\n experimentValues: experimentValues,\n customAttributesFromFetch: customAttributes\n };\n });\n };\n _context4.next = 5;\n return this.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n case 5:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4, this);\n }));\n function updateUser(_x1, _x10, _x11) {\n return _updateUser.apply(this, arguments);\n }\n return updateUser;\n }()\n /**\n * This method updates the user using the provider given on initialisation to get the new set of\n * values.\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n */\n )\n }, {\n key: \"updateUserWithProvider\",\n value: (function () {\n var _updateUserWithProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(identifiers, customAttributes) {\n var _this6 = this;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n this.assertInitialized(this.statsigClient);\n if (this.provider) {\n _context5.next = 3;\n break;\n }\n throw new Error('Cannot update user using provider as the client was not initialised with a provider');\n case 3:\n _context5.next = 5;\n return this.provider.setProfile(this.initOptions, identifiers, customAttributes);\n case 5:\n _context5.next = 7;\n return this.updateUserUsingInitializeValuesProducer(function () {\n return _this6.provider.getExperimentValues();\n }, identifiers, customAttributes);\n case 7:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5, this);\n }));\n function updateUserWithProvider(_x12, _x13) {\n return _updateUserWithProvider.apply(this, arguments);\n }\n return updateUserWithProvider;\n }()\n /**\n * This method updates the user given a new set of bootstrap values obtained from one of the\n * server-side SDKs.\n *\n * @param identifiers {Identifiers}\n * @param customAttributes {CustomAttributes}\n * @param initializeValues {Record<string,unknown>}\n */\n )\n }, {\n key: \"updateUserWithValues\",\n value: (function () {\n var _updateUserWithValues = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(identifiers, customAttributes) {\n var initializeValues,\n initializeValuesProducer,\n _args6 = arguments;\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n initializeValues = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : {};\n this.assertInitialized(this.statsigClient);\n initializeValuesProducer = function initializeValuesProducer() {\n return Promise.resolve({\n experimentValues: initializeValues,\n customAttributesFromFetch: customAttributes\n });\n };\n _context6.next = 5;\n return this.updateUserUsingInitializeValuesProducer(initializeValuesProducer, identifiers, customAttributes);\n case 5:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6, this);\n }));\n function updateUserWithValues(_x14, _x15) {\n return _updateUserWithValues.apply(this, arguments);\n }\n return updateUserWithValues;\n }())\n }, {\n key: \"initializeCalled\",\n value: function initializeCalled() {\n return this.initPromise != null;\n }\n }, {\n key: \"initializeCompleted\",\n value: function initializeCompleted() {\n return this.initCompleted;\n }\n }, {\n key: \"waitUntilInitializeCompleted\",\n value: function () {\n var _waitUntilInitializeCompleted = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n if (this.initPromise) {\n _context7.next = 2;\n break;\n }\n throw new Error('The client must be initialized before you can wait until initialized.');\n case 2:\n if (!this.initCompleted) {\n _context7.next = 4;\n break;\n }\n return _context7.abrupt(\"return\");\n case 4:\n _context7.next = 6;\n return this.initPromise;\n case 6:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7, this);\n }));\n function waitUntilInitializeCompleted() {\n return _waitUntilInitializeCompleted.apply(this, arguments);\n }\n return waitUntilInitializeCompleted;\n }()\n /**\n * Returns the value for a feature gate. Returns false if there are errors.\n * @param {string} gateName - The name of the feature gate.\n * @param {Object} options\n * @param {boolean} options.fireGateExposure\n * Whether or not to fire the exposure event for the gate. Defaults to true.\n * To log an exposure event manually at a later time, use {@link Client.manuallyLogGateExposure}\n * (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n */\n }, {\n key: \"checkGate\",\n value: function checkGate(gateName) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n try {\n this.assertInitialized(this.statsigClient);\n var _options$fireGateExpo = options.fireGateExposure,\n fireGateExposure = _options$fireGateExpo === void 0 ? true : _options$fireGateExpo;\n return this.statsigClient.checkGate(gateName, {\n disableExposureLog: !fireGateExposure\n });\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasCheckGateErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred checking the feature gate. Only the first occurrence of this error is logged.',\n gateName: gateName,\n error: error\n });\n this.hasCheckGateErrorOccurred = true;\n }\n return false;\n }\n }\n }, {\n key: \"isGateExist\",\n value: function isGateExist(gateName) {\n try {\n this.assertInitialized(this.statsigClient);\n var gate = this.statsigClient.getFeatureGate(gateName, {\n disableExposureLog: true\n });\n return !gate.details.reason.includes('Unrecognized');\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to check FeatureGate: \".concat(error));\n // in case of error report true to avoid false positives.\n return true;\n }\n }\n }, {\n key: \"isExperimentExist\",\n value: function isExperimentExist(experimentName) {\n try {\n this.assertInitialized(this.statsigClient);\n var config = this.statsigClient.getExperiment(experimentName, {\n disableExposureLog: true\n });\n return !config.details.reason.includes('Unrecognized');\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to check Experiment: \".concat(error));\n // in case of error report true to avoid false positives.\n return true;\n }\n }\n\n /**\n * Manually log a gate exposure (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * This is useful if you have evaluated a gate earlier via {@link Client.checkGate} where\n * <code>options.fireGateExposure</code> is false.\n * @param gateName\n */\n }, {\n key: \"manuallyLogGateExposure\",\n value: function manuallyLogGateExposure(gateName) {\n this.assertInitialized(this.statsigClient);\n // This is the approach recommended in the docs\n // https://docs.statsig.com/client/javascript-sdk/#manual-exposures-\n this.statsigClient.checkGate(gateName);\n }\n\n /**\n * Returns the entire config for a given experiment.\n *\n * @param {string} experimentName - The name of the experiment\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event\n * for the experiment. Defaults to true. To log an exposure event manually at a later time, use\n * {@link Client.manuallyLogExperimentExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * @returns The config for an experiment\n * @example\n * ```ts\n * const experimentConfig = client.getExperiment('example-experiment-name');\n * const backgroundColor: string = experimentConfig.get('backgroundColor', 'yellow');\n * ```\n */\n }, {\n key: \"getExperiment\",\n value: function getExperiment(experimentName) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n try {\n this.assertInitialized(this.statsigClient);\n var _options$fireExperime = options.fireExperimentExposure,\n fireExperimentExposure = _options$fireExperime === void 0 ? true : _options$fireExperime;\n return DynamicConfig.fromExperiment(this.statsigClient.getExperiment(experimentName, {\n disableExposureLog: !fireExperimentExposure\n }));\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasGetExperimentErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the experiment. Only the first occurrence of this error is logged.',\n experimentName: experimentName,\n error: error\n });\n this.hasGetExperimentErrorOccurred = true;\n }\n\n // Return a default value\n return new DynamicConfig(experimentName, {}, '', {\n time: Date.now(),\n reason: EvaluationReason.Error\n });\n }\n }\n\n /**\n * Returns the value of a given parameter in an experiment config.\n *\n * @template T\n * @param {string} experimentName - The name of the experiment\n * @param {string} parameterName - The name of the parameter to fetch from the experiment config\n * @param {T} defaultValue - The value to serve if the experiment or parameter do not exist, or\n * if the returned value does not match the expected type.\n * @param {Object} options\n * @param {boolean} options.fireExperimentExposure - Whether or not to fire the exposure event\n * for the experiment. Defaults to true. To log an exposure event manually at a later time, use\n * {@link Client.manuallyLogExperimentExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-))\n * @param {function} options.typeGuard - A function that asserts that the return value has the\n * expected type. If this function returns false, then the default value will be returned\n * instead. This can be set to protect your code from unexpected values being set remotely. By\n * default, this will be done by asserting that the default value and value are the same primitive\n * type.\n * @returns The value of the parameter if the experiment and parameter both exist, otherwise the\n * default value.\n * @example\n ``` ts\n type ValidColor = 'blue' | 'red' | 'yellow';\n type ValidColorTypeCheck = (value: unknown) => value is ValidColor;\n \t const isValidColor: ValidColorTypeCheck =\n \t\t(value: unknown) => typeof value === 'string' && ['blue', 'red', 'yellow'].includes(value);\n \t const buttonColor: ValidColor = client.getExperimentValue(\n \t\t'example-experiment-name',\n \t\t'backgroundColor',\n \t\t'yellow',\n \t\t{\n \t\t\t\ttypeGuard: isValidColor\n \t\t}\n );\n ```\n */\n }, {\n key: \"getExperimentValue\",\n value: function getExperimentValue(experimentName, parameterName, defaultValue) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var experiment = this.getExperiment(experimentName, options);\n try {\n var typeGuard = options.typeGuard;\n return experiment.get(parameterName, defaultValue, typeGuard);\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasGetExperimentValueErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the experiment value. Only the first occurrence of this error is logged.',\n experimentName: experimentName,\n defaultValue: defaultValue,\n options: options,\n error: error\n });\n this.hasGetExperimentValueErrorOccurred = true;\n }\n return defaultValue;\n }\n }\n\n /**\n * Manually log an experiment exposure (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * This is useful if you have evaluated an experiment earlier via {@link Client.getExperimentValue} or\n * {@link Client.getExperiment} where <code>options.fireExperimentExposure</code> is false.\n * @param experimentName\n */\n }, {\n key: \"manuallyLogExperimentExposure\",\n value: function manuallyLogExperimentExposure(experimentName) {\n this.assertInitialized(this.statsigClient);\n // This is the approach recommended in the docs\n // https://docs.statsig.com/client/javascript-sdk/#manual-exposures-\n this.statsigClient.getExperiment(experimentName);\n }\n\n /**\n * Manually log a layer exposure (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * This is useful if you have evaluated a layer earlier via {@link Client.getLayerValue} where <code>options.fireExperimentExposure</code> is false.\n * @param layerName\n * @param parameterName\n */\n }, {\n key: \"manuallyLogLayerExposure\",\n value: function manuallyLogLayerExposure(layerName, parameterName) {\n var _this$statsigClient$g;\n this.assertInitialized(this.statsigClient);\n // This is the approach recommended in the docs\n // https://docs.statsig.com/client/javascript-sdk/#manual-exposures-\n (_this$statsigClient$g = this.statsigClient.getLayer(layerName)) === null || _this$statsigClient$g === void 0 || _this$statsigClient$g.get(parameterName);\n }\n }, {\n key: \"shutdownStatsig\",\n value: function shutdownStatsig() {\n this.assertInitialized(this.statsigClient);\n this.statsigClient.shutdown();\n }\n\n /**\n * Adds a new override for the given gate.\n *\n * This method is additive, meaning you can call it multiple times with different gate names to\n * build your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_OVERRIDES` key in localStorage, so they\n * will continue to affect every client that is initialized on the same domain after this method\n * is called. If you are using this API for testing purposes, you should call\n * {@link Client.clearGateOverride} after your tests are completed to remove this\n * localStorage entry.\n *\n * @param {string} gateName\n * @param {boolean} value\n */\n }, {\n key: \"overrideGate\",\n value: function overrideGate(gateName, value) {\n this.overrideAdapter.overrideGate(gateName, value);\n // Trigger a reset of the memoized gate value\n if (this.user) {\n var _this$statsigClient;\n (_this$statsigClient = this.statsigClient) === null || _this$statsigClient === void 0 || _this$statsigClient.updateUserSync(this.user, {\n disableBackgroundCacheRefresh: true\n });\n }\n this.statsigValuesUpdated();\n }\n\n /**\n * Removes any overrides that have been set for the given gate.\n */\n }, {\n key: \"clearGateOverride\",\n value: function clearGateOverride(gateName) {\n this.overrideAdapter.removeGateOverride(gateName);\n this.statsigValuesUpdated();\n }\n\n /**\n * Adds a new override for the given config (or experiment).\n *\n * This method is additive, meaning you can call it multiple times with different experiment\n * names to build your full set of overrides.\n *\n * Overrides are persisted to the `STATSIG_OVERRIDES` key in localStorage, so they\n * will continue to affect every client that is initialized on the same domain after this method\n * is called. If you are using this API for testing purposes, you should call\n * {@link Client.clearConfigOverride} after your tests are completed to remove this\n * localStorage entry.\n *\n * @param {string} experimentName\n * @param {object} values\n */\n }, {\n key: \"overrideConfig\",\n value: function overrideConfig(experimentName, values) {\n this.overrideAdapter.overrideDynamicConfig(experimentName, values);\n this.statsigValuesUpdated();\n }\n\n /**\n * Removes any overrides that have been set for the given experiment.\n * @param {string} experimentName\n */\n }, {\n key: \"clearConfigOverride\",\n value: function clearConfigOverride(experimentName) {\n this.overrideAdapter.removeDynamicConfigOverride(experimentName);\n this.statsigValuesUpdated();\n }\n\n /**\n * Set overrides for gates, experiments and layers in batch.\n *\n * Note that these overrides are **not** additive and will completely replace any that have been\n * added via prior calls to {@link Client.overrideConfig} or\n * {@link Client.overrideGate}.\n *\n * Overrides are persisted to the `STATSIG_OVERRIDES` key in localStorage, so they\n * will continue to affect every client that is initialized on the same domain after this method\n * is called. If you are using this API for testing purposes, you should call\n * {@link Client.clearAllOverrides} after your tests are completed to remove this\n * localStorage entry.\n */\n }, {\n key: \"setOverrides\",\n value: function setOverrides(overrides) {\n this.overrideAdapter.setOverrides(overrides);\n this.statsigValuesUpdated();\n }\n\n /**\n * @returns The current overrides for gates, configs (including experiments) and layers.\n */\n }, {\n key: \"getOverrides\",\n value: function getOverrides() {\n return this.overrideAdapter.getOverrides();\n }\n\n /**\n * Clears overrides for all gates, configs (including experiments) and layers.\n */\n }, {\n key: \"clearAllOverrides\",\n value: function clearAllOverrides() {\n this.overrideAdapter.removeAllOverrides();\n this.statsigValuesUpdated();\n }\n\n /**\n * Returns whether the given identifiers and customAttributes align with the current\n * set that is being used by the client.\n *\n * If this method returns false, then the {@link Client.updateUser},\n * {@link Client.updateUserWithValues} or {@link Client.updateUserWithProvider}\n * methods can be used to re-align these values.\n *\n * @param identifiers\n * @param customAttributes\n * @returns a flag indicating whether the clients current configuration aligns with the given values\n */\n }, {\n key: \"isCurrentUser\",\n value: function isCurrentUser(identifiers, customAttributes) {\n return shallowEquals(this.currentIdentifiers, identifiers) && shallowEquals(this.currentAttributes, customAttributes);\n }\n\n /**\n * Subscribe to updates where the given callback will be called with the current checkGate value\n * @param gateName\n * @param callback\n * @param options\n * @returns off function to unsubscribe from updates\n */\n }, {\n key: \"onGateUpdated\",\n value: function onGateUpdated(gateName, callback) {\n var _this7 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var wrapCallback = function wrapCallback(value) {\n var _options$fireGateExpo2 = options.fireGateExposure,\n fireGateExposure = _options$fireGateExpo2 === void 0 ? true : _options$fireGateExpo2;\n if (fireGateExposure) {\n _this7.manuallyLogGateExposure(gateName);\n }\n try {\n callback(value);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Error calling callback for gate \".concat(gateName, \" with value \").concat(value), error);\n }\n };\n return this.subscriptions.onGateUpdated(gateName, wrapCallback, this.checkGate.bind(this), options);\n }\n\n /**\n * Subscribe to updates where the given callback will be called with the current experiment value\n * @param experimentName\n * @param parameterName\n * @param defaultValue\n * @param callback\n * @param options\n * @returns off function to unsubscribe from updates\n */\n }, {\n key: \"onExperimentValueUpdated\",\n value: function onExperimentValueUpdated(experimentName, parameterName, defaultValue, callback) {\n var _this8 = this;\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};\n var wrapCallback = function wrapCallback(value) {\n var _options$fireExperime2 = options.fireExperimentExposure,\n fireExperimentExposure = _options$fireExperime2 === void 0 ? true : _options$fireExperime2;\n if (fireExperimentExposure) {\n _this8.manuallyLogExperimentExposure(experimentName);\n }\n try {\n callback(value);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Error calling callback for experiment \".concat(experimentName, \" with value \").concat(value), error);\n }\n };\n return this.subscriptions.onExperimentValueUpdated(experimentName, parameterName, defaultValue, wrapCallback, this.getExperimentValue.bind(this), options);\n }\n\n /**\n * Subscribe so on any update the callback will be called.\n * NOTE: The callback will be called whenever the values are updated even if the values have not\n * changed.\n * @param callback\n * @returns off function to unsubscribe from updates\n */\n }, {\n key: \"onAnyUpdated\",\n value: function onAnyUpdated(callback) {\n return this.subscriptions.onAnyUpdated(callback);\n }\n\n /**\n * This method initializes the client using a network call to fetch the bootstrap values for the\n * given user.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @private\n */\n }, {\n key: \"init\",\n value: (function () {\n var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(clientOptions, identifiers, customAttributes) {\n var fromValuesClientOptions, experimentValues, customAttributesFromResult, clientSdkKeyPromise, experimentValuesPromise, _yield$Promise$all, _yield$Promise$all2, experimentValuesResult;\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) switch (_context8.prev = _context8.next) {\n case 0:\n fromValuesClientOptions = _objectSpread({}, clientOptions);\n _context8.prev = 1;\n // If client sdk key fetch fails, an error would be thrown and handled instead of waiting for\n // the experiment values request to be settled, and it will fall back to use default values.\n clientSdkKeyPromise = Fetcher.fetchClientSdk(clientOptions).then(function (value) {\n return fromValuesClientOptions.sdkKey = value.clientSdkKey;\n });\n experimentValuesPromise = Fetcher.fetchExperimentValues(clientOptions, identifiers, customAttributes); // Only wait for the experiment values request to finish and try to initialise the client\n // with experiment values if both requests are successful. Else an error would be thrown and\n // handled by the catch\n _context8.next = 6;\n return Promise.all([clientSdkKeyPromise, experimentValuesPromise]);\n case 6:\n _yield$Promise$all = _context8.sent;\n _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);\n experimentValuesResult = _yield$Promise$all2[1];\n experimentValues = experimentValuesResult.experimentValues;\n customAttributesFromResult = experimentValuesResult.customAttributes;\n _context8.next = 20;\n break;\n case 13:\n _context8.prev = 13;\n _context8.t0 = _context8[\"catch\"](1);\n if (_context8.t0 instanceof Error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to fetch the Feature Gates client values, error: \".concat(_context8.t0 === null || _context8.t0 === void 0 ? void 0 : _context8.t0.message));\n }\n // eslint-disable-next-line no-console\n console.warn(\"Initialising Statsig client without values\");\n _context8.next = 19;\n return this.initFromValues(fromValuesClientOptions, identifiers, customAttributes);\n case 19:\n throw _context8.t0;\n case 20:\n return _context8.abrupt(\"return\", this.initFromValues(fromValuesClientOptions, identifiers, customAttributesFromResult, experimentValues));\n case 21:\n case \"end\":\n return _context8.stop();\n }\n }, _callee8, this, [[1, 13]]);\n }));\n function init(_x16, _x17, _x18) {\n return _init.apply(this, arguments);\n }\n return init;\n }())\n }, {\n key: \"initWithProvider\",\n value: function () {\n var _initWithProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(baseClientOptions, provider, identifiers, customAttributes) {\n var fromValuesClientOptions, experimentValues, customAttributesFromResult, clientSdkKeyPromise, experimentValuesPromise, _yield$Promise$all3, _yield$Promise$all4, experimentValuesResult;\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) switch (_context9.prev = _context9.next) {\n case 0:\n fromValuesClientOptions = _objectSpread(_objectSpread({}, baseClientOptions), {}, {\n disableCurrentPageLogging: true\n });\n _context9.prev = 1;\n _context9.next = 4;\n return provider.setProfile(baseClientOptions, identifiers, customAttributes);\n case 4:\n // If client sdk key fetch fails, an error would be thrown and handled instead of waiting for\n // the experiment values request to be settled, and it will fall back to use default values.\n clientSdkKeyPromise = provider.getClientSdkKey().then(function (value) {\n return fromValuesClientOptions.sdkKey = value;\n });\n experimentValuesPromise = provider.getExperimentValues(); // Only wait for the experiment values request to finish and try to initialise the client\n // with experiment values if both requests are successful. Else an error would be thrown and\n // handled by the catch\n _context9.next = 8;\n return Promise.all([clientSdkKeyPromise, experimentValuesPromise]);\n case 8:\n _yield$Promise$all3 = _context9.sent;\n _yield$Promise$all4 = _slicedToArray(_yield$Promise$all3, 2);\n experimentValuesResult = _yield$Promise$all4[1];\n experimentValues = experimentValuesResult.experimentValues;\n customAttributesFromResult = experimentValuesResult.customAttributesFromFetch;\n _context9.next = 22;\n break;\n case 15:\n _context9.prev = 15;\n _context9.t0 = _context9[\"catch\"](1);\n if (_context9.t0 instanceof Error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to fetch the Feature Gates client values, error: \".concat(_context9.t0 === null || _context9.t0 === void 0 ? void 0 : _context9.t0.message));\n }\n // eslint-disable-next-line no-console\n console.warn(\"Initialising Statsig client without values\");\n _context9.next = 21;\n return this.initFromValues(fromValuesClientOptions, identifiers, customAttributes);\n case 21:\n throw _context9.t0;\n case 22:\n return _context9.abrupt(\"return\", this.initFromValues(fromValuesClientOptions, identifiers, customAttributesFromResult, experimentValues));\n case 23:\n case \"end\":\n return _context9.stop();\n }\n }, _callee9, this, [[1, 15]]);\n }));\n function initWithProvider(_x19, _x20, _x21, _x22) {\n return _initWithProvider.apply(this, arguments);\n }\n return initWithProvider;\n }()\n /**\n * This method initializes the client using a set of boostrap values obtained from one of the\n * server-side SDKs.\n *\n * @param clientOptions\n * @param identifiers\n * @param customAttributes\n * @param initializeValues\n * @private\n */\n }, {\n key: \"initFromValues\",\n value: (function () {\n var _initFromValues = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee0(clientOptions, identifiers, customAttributes) {\n var _newClientOptions$net;\n var initializeValues,\n newClientOptions,\n sdkKey,\n environment,\n _updateUserCompletionCallback,\n _perimeter,\n restClientOptions,\n statsigOptions,\n _args0 = arguments;\n return _regeneratorRuntime.wrap(function _callee0$(_context0) {\n while (1) switch (_context0.prev = _context0.next) {\n case 0:\n initializeValues = _args0.length > 3 && _args0[3] !== undefined ? _args0[3] : {};\n this.overrideAdapter.initFromStoredOverrides();\n this.currentIdentifiers = identifiers;\n this.currentAttributes = customAttributes;\n newClientOptions = migrateInitializationOptions(clientOptions);\n if (!newClientOptions.sdkKey) {\n newClientOptions.sdkKey = DEFAULT_CLIENT_KEY;\n }\n if (!((_newClientOptions$net = newClientOptions.networkConfig) !== null && _newClientOptions$net !== void 0 && _newClientOptions$net.logEventUrl)) {\n newClientOptions.networkConfig = _objectSpread(_objectSpread({}, newClientOptions.networkConfig), {}, {\n logEventUrl: DEFAULT_EVENT_LOGGING_API\n });\n }\n if (newClientOptions.perimeter === PerimeterType.FEDRAMP_MODERATE) {\n // disable all logging in FedRAMP to prevent egress of sensitive data\n newClientOptions.disableLogging = true;\n }\n sdkKey = newClientOptions.sdkKey, environment = newClientOptions.environment, _updateUserCompletionCallback = newClientOptions.updateUserCompletionCallback, _perimeter = newClientOptions.perimeter, restClientOptions = _objectWithoutProperties(newClientOptions, _excluded);\n this.user = toStatsigUser(identifiers, customAttributes);\n statsigOptions = _objectSpread(_objectSpread({}, restClientOptions), {}, {\n environment: {\n tier: environment\n },\n includeCurrentPageUrlWithEvents: false,\n dataAdapter: this.dataAdapter,\n overrideAdapter: this.overrideAdapter,\n logEventCompressionMode: LogEventCompressionMode.Forced\n }); // Statsig validates the provided stableId against their own cookie, so we either need\n // to update the cookie to match, or disable the validation completely.\n if (identifiers.stableId) {\n StableID.setOverride(identifiers.stableId, sdkKey);\n } else {\n statsigOptions.disableStableID = true;\n }\n _context0.prev = 12;\n this.statsigClient = new StatsigClient(sdkKey, this.user, statsigOptions);\n this.dataAdapter.setBootstrapData(initializeValues);\n _context0.next = 17;\n return this.statsigClient.initializeAsync();\n case 17:\n _context0.next = 29;\n break;\n case 19:\n _context0.prev = 19;\n _context0.t0 = _context0[\"catch\"](12);\n if (_context0.t0 instanceof Error) {\n // eslint-disable-next-line no-console\n console.error(\"Error occurred when trying to initialise the Statsig client, error: \".concat(_context0.t0 === null || _context0.t0 === void 0 ? void 0 : _context0.t0.message));\n }\n // eslint-disable-next-line no-console\n console.warn(\"Initialising Statsig client with default sdk key and without values\");\n this.statsigClient = new StatsigClient(DEFAULT_CLIENT_KEY, this.user, statsigOptions);\n this.dataAdapter.setBootstrapData();\n _context0.next = 27;\n return this.statsigClient.initializeAsync();\n case 27:\n this.initWithDefaults = true;\n throw _context0.t0;\n case 29:\n case \"end\":\n return _context0.stop();\n }\n }, _callee0, this, [[12, 19]]);\n }));\n function initFromValues(_x23, _x24, _x25) {\n return _initFromValues.apply(this, arguments);\n }\n return initFromValues;\n }()\n /**\n * This method updates the user for this client with the bootstrap values returned from a given\n * Promise.\n * It uses the customAttributes from fetching experiment values to update the Statsig user but\n * uses the customAttributes from given input to check if the user has changed.\n *\n * @param {Identifiers} identifiers\n * @param {CustomAttributes} customAttributes\n * @param {Promise<InitializeValues>} getInitializeValues\n * @private\n */\n )\n }, {\n key: \"updateUserUsingInitializeValuesProducer\",\n value: (function () {\n var _updateUserUsingInitializeValuesProducer = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(getInitializeValues, identifiers, customAttributes) {\n var _this9 = this;\n var originalInitPromise, initializeValuesPromise, updateUserPromise;\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) switch (_context10.prev = _context10.next) {\n case 0:\n this.assertInitialized(this.statsigClient);\n if (this.initPromise) {\n _context10.next = 3;\n break;\n }\n throw new Error('The client must be initialized before you can update the user.');\n case 3:\n if (!this.isCurrentUser(identifiers, customAttributes)) {\n _context10.next = 5;\n break;\n }\n return _context10.abrupt(\"return\", this.initPromise);\n case 5:\n // Wait for the current initialize/update to finish\n originalInitPromise = this.initPromise;\n _context10.prev = 6;\n _context10.next = 9;\n return this.initPromise;\n case 9:\n _context10.next = 13;\n break;\n case 11:\n _context10.prev = 11;\n _context10.t0 = _context10[\"catch\"](6);\n case 13:\n initializeValuesPromise = getInitializeValues();\n updateUserPromise = this.updateStatsigClientUser(initializeValuesPromise, identifiers, customAttributes); // We replace the init promise here since we are essentially re-initializing the client at this\n // point. Any subsequent calls to await client.initialize() or client.updateUser()\n // will now also await this user update.\n this.initPromise = updateUserPromise.catch( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee1() {\n return _regeneratorRuntime.wrap(function _callee1$(_context1) {\n while (1) switch (_context1.prev = _context1.next) {\n case 0:\n // If the update failed then it changed nothing, so revert back to the original promise.\n _this9.initPromise = originalInitPromise;\n\n // Set the user profile again to revert back to the current user\n if (!_this9.provider) {\n _context1.next = 4;\n break;\n }\n _context1.next = 4;\n return _this9.provider.setProfile(_this9.initOptions, _this9.currentIdentifiers, _this9.currentAttributes);\n case 4:\n case \"end\":\n return _context1.stop();\n }\n }, _callee1);\n })));\n return _context10.abrupt(\"return\", updateUserPromise);\n case 17:\n case \"end\":\n return _context10.stop();\n }\n }, _callee10, this, [[6, 11]]);\n }));\n function updateUserUsingInitializeValuesProducer(_x26, _x27, _x28) {\n return _updateUserUsingInitializeValuesProducer.apply(this, arguments);\n }\n return updateUserUsingInitializeValuesProducer;\n }()\n /**\n * This method updates the user on the nested Statsig client\n *\n * @param identifiers\n * @param customAttributes\n * @param initializeValuesPromise\n * @private\n */\n )\n }, {\n key: \"updateStatsigClientUser\",\n value: (function () {\n var _updateStatsigClientUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(initializeValuesPromise, identifiers, customAttributes) {\n var _this$initOptions, _this$initOptions$upd;\n var initializeValues, user, _updateUserCompletion, _ref4, errMsg, success, errorMessage;\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) switch (_context11.prev = _context11.next) {\n case 0:\n this.assertInitialized(this.statsigClient);\n _context11.prev = 1;\n _context11.next = 4;\n return initializeValuesPromise;\n case 4:\n initializeValues = _context11.sent;\n user = toStatsigUser(identifiers, initializeValues.customAttributesFromFetch);\n _context11.next = 13;\n break;\n case 8:\n _context11.prev = 8;\n _context11.t0 = _context11[\"catch\"](1);\n // Make sure the updateUserCompletionCallback is called for any errors in our custom code.\n // This is not necessary for the updateUserWithValues call, because the Statsig client will\n // already invoke the callback itself.\n errMsg = _context11.t0 instanceof Error ? _context11.t0.message : JSON.stringify(_context11.t0);\n (_updateUserCompletion = (_ref4 = this.initOptions).updateUserCompletionCallback) === null || _updateUserCompletion === void 0 || _updateUserCompletion.call(_ref4, false, errMsg);\n throw _context11.t0;\n case 13:\n success = true;\n errorMessage = null;\n _context11.prev = 15;\n this.dataAdapter.setBootstrapData(initializeValues.experimentValues);\n this.user = user;\n if (!this.user) {\n _context11.next = 21;\n break;\n }\n _context11.next = 21;\n return this.statsigClient.updateUserAsync(this.user);\n case 21:\n _context11.next = 27;\n break;\n case 23:\n _context11.prev = 23;\n _context11.t1 = _context11[\"catch\"](15);\n success = false;\n errorMessage = String(_context11.t1);\n case 27:\n (_this$initOptions = this.initOptions) === null || _this$initOptions === void 0 || (_this$initOptions$upd = _this$initOptions.updateUserCompletionCallback) === null || _this$initOptions$upd === void 0 || _this$initOptions$upd.call(_this$initOptions, success, errorMessage);\n if (!success) {\n _context11.next = 34;\n break;\n }\n this.currentIdentifiers = identifiers;\n this.currentAttributes = customAttributes;\n this.subscriptions.anyUpdated();\n _context11.next = 35;\n break;\n case 34:\n throw new Error('Failed to update user. An unexpected error occured.');\n case 35:\n case \"end\":\n return _context11.stop();\n }\n }, _callee11, this, [[1, 8], [15, 23]]);\n }));\n function updateStatsigClientUser(_x29, _x30, _x31) {\n return _updateStatsigClientUser.apply(this, arguments);\n }\n return updateStatsigClientUser;\n }())\n }, {\n key: \"getPackageVersion\",\n value:\n /**\n * @returns string version of the current package in semver style.\n */\n function getPackageVersion() {\n return CLIENT_VERSION;\n }\n\n /**\n * Returns a specified layer otherwise returns an empty layer as a default value if the layer doesn't exist.\n *\n * @param {string} layerName - The name of the layer\n * @param {Object} options\n * @param {boolean} options.fireLayerExposure - Whether or not to fire the exposure event for the\n * layer. Defaults to true. To log an exposure event manually at a later time, use\n * {@link Client.manuallyLogLayerExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-)).\n * @returns A layer\n * @example\n * ```ts\n * const layer = client.getLayer('example-layer-name');\n * const exampletitle: string = layer.get(\"title\", \"Welcome to Statsig!\");\n * ```\n */\n }, {\n key: \"getLayer\",\n value: function getLayer( /** The name of the layer */\n layerName) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n try {\n this.assertInitialized(this.statsigClient);\n var _options$fireLayerExp = options.fireLayerExposure,\n fireLayerExposure = _options$fireLayerExp === void 0 ? true : _options$fireLayerExp;\n return Layer.fromLayer(this.statsigClient.getLayer(layerName, {\n disableExposureLog: !fireLayerExposure\n }));\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasGetLayerErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the layer. Only the first occurrence of this error is logged.',\n layerName: layerName,\n error: error\n });\n this.hasGetLayerErrorOccurred = true;\n }\n\n // Return a default value\n return Layer.fromLayer(_makeLayer(layerName, {\n reason: 'Error'\n }, null));\n }\n }\n\n /**\n * Returns the value of a given parameter in a layer config.\n *\n * @template T\n * @param {string} layerName - The name of the layer\n * @param {string} parameterName - The name of the parameter to fetch from the layer config\n * @param {T} defaultValue - The value to serve if the layer or parameter do not exist, or if the\n * returned value does not match the expected type.\n * @param {Object} options\n * @param {boolean} options.fireLayerExposure - Whether or not to fire the exposure event for the\n * layer. Defaults to true. To log an exposure event manually at a later time, use\n * {@link Client.manuallyLogLayerExposure} (see [Statsig docs about manually logging exposures](https://docs.statsig.com/client/jsClientSDK#manual-exposures-))\n * @param {function} options.typeGuard - A function that asserts that the return value has the expected type. If this function returns false, then the default value will be returned instead. This can be set to protect your code from unexpected values being set remotely. By default, this will be done by asserting that the default value and value are the same primitive type.\n * @returns The value of the parameter if the layer and parameter both exist, otherwise the default value.\n * @example\n * ``` ts\n * type ValidColor = 'blue' | 'red' | 'yellow';\n * type ValidColorTypeCheck = (value: unknown) => value is ValidColor;\n *\n * const isValidColor: ValidColorTypeCheck =\n * (value: unknown) => typeof value === 'string' && ['blue', 'red', 'yellow'].includes(value);\n *\n * const buttonColor: ValidColor = client.getLayerValue(\n * 'example-layer-name',\n * 'backgroundColor',\n * 'yellow',\n * {\n * typeGuard: isValidColor\n * }\n * );\n * ```\n */\n }, {\n key: \"getLayerValue\",\n value: function getLayerValue(layerName, parameterName, defaultValue) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var layer = this.getLayer(layerName, options);\n try {\n var typeGuard = options.typeGuard;\n return layer.get(parameterName, defaultValue, typeGuard);\n } catch (error) {\n // Log the first occurrence of the error\n if (!this.hasGetLayerValueErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the layer value. Only the first occurrence of this error is logged.',\n layerName: layerName,\n defaultValue: defaultValue,\n options: options,\n error: error\n });\n this.hasGetLayerValueErrorOccurred = true;\n }\n return defaultValue;\n }\n }\n }]);\n}();","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _FeatureGates;\nimport { Client } from './Client';\nimport { CLIENT_VERSION } from './version';\nexport { EvaluationReason } from './compat/types';\nexport { DynamicConfig } from './compat/DynamicConfig';\nexport { FeatureGateEnvironment, PerimeterType } from './types';\nexport { CLIENT_VERSION } from './version';\n/**\n * Access the FeatureGates object via the default export.\n * ```ts\n * import FeatureGates from '@atlaskit/feature-gate-js-client';\n * ```\n */\nvar FeatureGates = /*#__PURE__*/function () {\n function FeatureGates() {\n _classCallCheck(this, FeatureGates);\n }\n return _createClass(FeatureGates, null, [{\n key: \"isGateExists\",\n value: function isGateExists(gateName) {\n return this.client.isGateExist(gateName);\n }\n }, {\n key: \"isExperimentExists\",\n value: function isExperimentExists(experimentName) {\n return this.client.isExperimentExist(experimentName);\n }\n }]);\n}();\n_FeatureGates = FeatureGates;\n_defineProperty(FeatureGates, \"client\", new Client());\n_defineProperty(FeatureGates, \"hasCheckGateErrorOccurred\", false);\n_defineProperty(FeatureGates, \"hasGetExperimentValueErrorOccurred\", false);\n_defineProperty(FeatureGates, \"checkGate\", function (gateName, options) {\n try {\n // Check if the CRITERION override mechanism is available\n if (typeof window !== 'undefined' && window.__CRITERION__ && typeof window.__CRITERION__.getFeatureFlagOverride === 'function') {\n // Attempt to retrieve an override value for the feature gate\n var overrideValue = window.__CRITERION__.getFeatureFlagOverride(gateName);\n // If an override value is found, return it immediately\n if (overrideValue !== undefined) {\n return overrideValue;\n }\n }\n } catch (error) {\n // Log the first occurrence of the error\n if (!_FeatureGates.hasCheckGateErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred checking the feature gate from criterion override. Only the first occurrence of this error is logged.',\n gateName: gateName,\n error: error\n });\n _FeatureGates.hasCheckGateErrorOccurred = true;\n }\n }\n\n // Proceed with the main logic if no override is found\n return _FeatureGates.client.checkGate(gateName, options);\n});\n_defineProperty(FeatureGates, \"getExperimentValue\", function (experimentName, parameterName, defaultValue, options) {\n try {\n // Check if the CRITERION override mechanism is available\n if (typeof window !== 'undefined' && window.__CRITERION__ && typeof window.__CRITERION__.getExperimentValueOverride === 'function') {\n var overrideValue = window.__CRITERION__.getExperimentValueOverride(experimentName, parameterName);\n if (overrideValue !== undefined && overrideValue !== null) {\n return overrideValue;\n }\n }\n } catch (error) {\n // Log the first occurrence of the error\n if (!_FeatureGates.hasGetExperimentValueErrorOccurred) {\n // eslint-disable-next-line no-console\n console.warn({\n msg: 'An error has occurred getting the experiment value from criterion override. Only the first occurrence of this error is logged.',\n experimentName: experimentName,\n defaultValue: defaultValue,\n options: options,\n error: error\n });\n _FeatureGates.hasGetExperimentValueErrorOccurred = true;\n }\n return defaultValue;\n }\n\n // Proceed with the main logic if no override is found\n return _FeatureGates.client.getExperimentValue(experimentName, parameterName, defaultValue, options);\n});\n_defineProperty(FeatureGates, \"initializeCalled\", _FeatureGates.client.initializeCalled.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"initializeCompleted\", _FeatureGates.client.initializeCompleted.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"waitUntilInitializeCompleted\", _FeatureGates.client.waitUntilInitializeCompleted.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"initialize\", _FeatureGates.client.initialize.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"initializeWithProvider\", _FeatureGates.client.initializeWithProvider.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"initializeFromValues\", _FeatureGates.client.initializeFromValues.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"manuallyLogGateExposure\", _FeatureGates.client.manuallyLogGateExposure.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getExperiment\", _FeatureGates.client.getExperiment.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"manuallyLogExperimentExposure\", _FeatureGates.client.manuallyLogExperimentExposure.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"manuallyLogLayerExposure\", _FeatureGates.client.manuallyLogLayerExposure.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"shutdownStatsig\", _FeatureGates.client.shutdownStatsig.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"overrideGate\", _FeatureGates.client.overrideGate.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"clearGateOverride\", _FeatureGates.client.clearGateOverride.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"overrideConfig\", _FeatureGates.client.overrideConfig.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"clearConfigOverride\", _FeatureGates.client.clearConfigOverride.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"setOverrides\", _FeatureGates.client.setOverrides.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getOverrides\", _FeatureGates.client.getOverrides.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"clearAllOverrides\", _FeatureGates.client.clearAllOverrides.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"isCurrentUser\", _FeatureGates.client.isCurrentUser.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"onGateUpdated\", _FeatureGates.client.onGateUpdated.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"onExperimentValueUpdated\", _FeatureGates.client.onExperimentValueUpdated.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"onAnyUpdated\", _FeatureGates.client.onAnyUpdated.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"updateUser\", _FeatureGates.client.updateUser.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"updateUserWithProvider\", _FeatureGates.client.updateUserWithProvider.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"updateUserWithValues\", _FeatureGates.client.updateUserWithValues.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getPackageVersion\", _FeatureGates.client.getPackageVersion.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getLayer\", _FeatureGates.client.getLayer.bind(_FeatureGates.client));\n_defineProperty(FeatureGates, \"getLayerValue\", _FeatureGates.client.getLayerValue.bind(_FeatureGates.client));\nvar boundFGJS = FeatureGates;\n\n// This makes it possible to get a reference to the FeatureGates client at runtime.\n// This is important for overriding values in Cypress tests, as there needs to be a\n// way to get the exact instance for a window in order to mock some of its methods.\nif (typeof window !== 'undefined') {\n if (window.__FEATUREGATES_JS__ === undefined) {\n window.__FEATUREGATES_JS__ = FeatureGates;\n } else {\n var _boundFGJS, _boundFGJS$getPackage;\n boundFGJS = window.__FEATUREGATES_JS__;\n var boundVersion = ((_boundFGJS = boundFGJS) === null || _boundFGJS === void 0 || (_boundFGJS$getPackage = _boundFGJS.getPackageVersion) === null || _boundFGJS$getPackage === void 0 ? void 0 : _boundFGJS$getPackage.call(_boundFGJS)) || '4.10.0 or earlier';\n if (boundVersion !== CLIENT_VERSION) {\n var message = \"Multiple versions of FeatureGateClients found on the current page.\\n The currently bound version is \".concat(boundVersion, \" when module version \").concat(CLIENT_VERSION, \" was loading.\");\n // eslint-disable-next-line no-console\n console.warn(message);\n }\n }\n}\n\n/**\n * @property {FeatureGates} FeatureGate default export\n */\nexport default boundFGJS;","var _process, _process2;\n// We can't rely on NODE_ENV === 'test' if its value is already configured by the consumer to some other value, so better to use JEST_WORKER_ID\n// https://jestjs.io/docs/environment-variables#jest_worker_id\nvar TESTS_MODE = (globalThis === null || globalThis === void 0 || (_process = globalThis.process) === null || _process === void 0 || (_process = _process.env) === null || _process === void 0 ? void 0 : _process.JEST_WORKER_ID) !== undefined;\nvar DEBUG_MODE = !TESTS_MODE && (globalThis === null || globalThis === void 0 || (_process2 = globalThis.process) === null || _process2 === void 0 || (_process2 = _process2.env) === null || _process2 === void 0 ? void 0 : _process2.NODE_ENV) !== 'production';\nexport var debug = function debug() {\n var _console;\n if (!DEBUG_MODE) {\n return;\n }\n\n // eslint-disable-next-line no-console\n (_console = console).debug.apply(_console, arguments);\n};","import FeatureGates from '@atlaskit/feature-gate-js-client';\nimport { debug } from './debug';\nvar pkgName = '@atlaskit/platform-feature-flags';\nexport var PFF_GLOBAL_KEY = '__PLATFORM_FEATURE_FLAGS__';\nvar hasProcessEnv = typeof process !== 'undefined' && typeof process.env !== 'undefined';\n\n// FF global overrides can be configured by test runners or Storybook\nvar ENV_ENABLE_PLATFORM_FF = hasProcessEnv ?\n// Use global \"process\" variable and process.env['FLAG_NAME'] syntax, so it can be replaced by webpack DefinePlugin\nprocess.env['ENABLE_PLATFORM_FF'] === 'true' : false;\n\n// STORYBOOK_ENABLE_PLATFORM_FF is included as storybook only allows env vars prefixed with STORYBOOK\n// https://github.com/storybookjs/storybook/issues/12270\n\nvar ENV_STORYBOOK_ENABLE_PLATFORM_FF = hasProcessEnv ?\n// Use global \"process\" variable and process.env['FLAG_NAME'] syntax, so it can be replaced by webpack DefinePlugin\nprocess.env['STORYBOOK_ENABLE_PLATFORM_FF'] === 'true' : false;\nvar ENABLE_GLOBAL_PLATFORM_FF_OVERRIDE = ENV_ENABLE_PLATFORM_FF || ENV_STORYBOOK_ENABLE_PLATFORM_FF;\nvar DEFAULT_PFF_GLOBAL = {\n booleanResolver: undefined\n};\nvar globalVar = typeof window !== 'undefined' ? window : globalThis;\nglobalVar[PFF_GLOBAL_KEY] = globalVar[PFF_GLOBAL_KEY] || DEFAULT_PFF_GLOBAL;\nexport function setBooleanResolver(resolver) {\n globalVar[PFF_GLOBAL_KEY].booleanResolver = resolver;\n}\nexport function resolveBooleanFlag(flagKey) {\n if (ENABLE_GLOBAL_PLATFORM_FF_OVERRIDE) {\n debug('[%s]: The feature flags were enabled while running tests. The flag \"%s\" will be always enabled.', pkgName, flagKey);\n return true;\n }\n try {\n var _globalVar$PFF_GLOBAL, _globalVar$PFF_GLOBAL2, _globalVar$PFF_GLOBAL3;\n // booleanResolver will be empty for products like Trello, Elevate, Recruit etc.\n // Currently only Confluence, Jira and Bitbucket has set it.\n if (((_globalVar$PFF_GLOBAL = globalVar[PFF_GLOBAL_KEY]) === null || _globalVar$PFF_GLOBAL === void 0 ? void 0 : _globalVar$PFF_GLOBAL.booleanResolver) === undefined || ((_globalVar$PFF_GLOBAL2 = globalVar[PFF_GLOBAL_KEY]) === null || _globalVar$PFF_GLOBAL2 === void 0 ? void 0 : _globalVar$PFF_GLOBAL2.booleanResolver) === null) {\n // eslint-disable-next-line @atlaskit/platform/use-recommended-utils\n return FeatureGates.checkGate(flagKey);\n }\n var result = (_globalVar$PFF_GLOBAL3 = globalVar[PFF_GLOBAL_KEY]) === null || _globalVar$PFF_GLOBAL3 === void 0 ? void 0 : _globalVar$PFF_GLOBAL3.booleanResolver(flagKey);\n if (typeof result !== 'boolean') {\n // eslint-disable-next-line no-console\n console.warn(\"\".concat(flagKey, \" resolved to a non-boolean value, returning false for safety\"));\n return false;\n }\n return result;\n } catch (e) {\n return false;\n }\n}","import { setBooleanResolver, resolveBooleanFlag } from './resolvers';\n/**\n * This creates a boolean flag resolver that allows calls to `getBooleanFF` inside of Platform components to use a Product's\n * feature flag client and LD project, rather than installing a feature flag client of their own, or passing those flags in via props.\n *\n * @param flagResolver\n */\nexport function setBooleanFeatureFlagResolver(flagResolver) {\n setBooleanResolver(flagResolver);\n}\n\n/**\n * Returns the value of a feature flag. If the flag does not resolve, it returns the \"false\" as a default value.\n *\n * @deprecated Use {@link fg} function instead.\n * @param name\n */\nexport function getBooleanFF(name) {\n return resolveBooleanFlag(name);\n}\n\n/**\n * Returns the value of a feature flag. If the flag does not resolve, it returns the \"false\" as a default value.\n *\n * @param name\n */\nexport function fg(name) {\n return resolveBooleanFlag(name);\n}","import { fg } from '@atlaskit/platform-feature-flags';\n\n/**\n * This file contains the source of truth for themes and all associated meta data.\n */\n\n/**\n * Themes: The internal identifier of a theme.\n * These ids are what the actual theme files/folders are called.\n * style-dictionary will attempt to locate these in the file-system.\n */\n\n/**\n * ThemeOverrides: The internal identifier of a theme override. Which are themes that contain\n * a subset of tokens intended to override an existing theme. These ids are what the actual\n * theme files/folders are called. style-dictionary will attempt to locate these in the file-system.\n * Theme overrides are temporary and there may not be any defined at times.\n */\n\n/**\n * Theme kinds: The type of theme.\n * Some themes are entirely focused on Color, whilst others are purely focused on spacing.\n * In the future other types may be introduced such as typography.\n */\n\n/**\n * Theme modes: The general purpose of a theme.\n * This attr is used to apply the appropriate system-preference option\n * It may also be used as a selector for mode-specific overrides such as light/dark images.\n * The idea is there may exist many color themes, but every theme must either fit into light or dark.\n */\nexport var themeColorModes = ['light', 'dark', 'auto'];\n/**\n * Contrast preferences: The system contrast preference\n */\nvar themeContrastModes = ['more', 'no-preference', 'auto'];\n/**\n * Theme ids: The value that will be mounted to the DOM as a data attr\n * For example: `data-theme=\"light:light dark:dark spacing:spacing\"\n *\n * These ids must be kebab case\n */\nexport var themeIds = ['light-increased-contrast', 'light', 'light-future', 'light-brand-refresh', 'dark', 'dark-future', 'dark-increased-contrast', 'dark-brand-refresh', 'legacy-light', 'legacy-dark', 'spacing', 'shape', 'typography-adg3', 'typography-modernized', 'typography-refreshed'];\n/**\n * Theme override ids: the equivalent of themeIds for theme overrides.\n * Theme overrides are temporary and there may not be any defined at times.\n */\nvar themeOverrideIds = [];\nexport var themeIdsWithOverrides = [].concat(themeIds, themeOverrideIds);\n\n/**\n * Theme to use a base. This will create the theme as\n * an extension with all token values marked as optional\n * to allow tokens to be overridden as required.\n */\n\n/**\n * Palettes: The set of base tokens a given theme may be populated with.\n * For example: legacy light & dark themes use the \"legacyPalette\" containing colors from our\n * previous color set.\n */\n\n/**\n * ThemeConfig: the source of truth for all theme meta-data.\n * This object should be used whenever interfacing with themes.\n */\n\nvar themeConfig = {\n 'atlassian-light': {\n id: 'light',\n displayName: 'Light Theme',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n }\n },\n 'atlassian-light-future': {\n id: 'light-future',\n displayName: 'Future Light Theme',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n },\n override: 'light'\n },\n 'atlassian-light-increased-contrast': {\n id: 'light-increased-contrast',\n displayName: 'Light Theme (increased contrast)',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n },\n extends: 'light',\n increasesContrastFor: 'light'\n },\n 'atlassian-dark': {\n id: 'dark',\n displayName: 'Dark Theme',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n }\n },\n 'atlassian-dark-future': {\n id: 'dark-future',\n displayName: 'Future Dark Theme',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n },\n override: 'light'\n },\n 'atlassian-dark-increased-contrast': {\n id: 'dark-increased-contrast',\n displayName: 'Dark Theme (increased contrast)',\n palette: 'defaultPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n },\n extends: 'dark',\n increasesContrastFor: 'dark'\n },\n 'atlassian-legacy-light': {\n id: 'legacy-light',\n displayName: 'Light Theme (legacy)',\n palette: 'legacyPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n }\n },\n 'atlassian-legacy-dark': {\n id: 'legacy-dark',\n displayName: 'Dark Theme (legacy)',\n palette: 'legacyPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n }\n },\n 'atlassian-spacing': {\n id: 'spacing',\n displayName: 'Atlassian Spacing',\n palette: 'spacingScale',\n attributes: {\n type: 'spacing'\n }\n },\n 'atlassian-typography-adg3': {\n id: 'typography-adg3',\n displayName: 'ADG3 Typography',\n palette: 'typographyPalette',\n attributes: {\n type: 'typography'\n }\n },\n 'atlassian-shape': {\n id: 'shape',\n displayName: 'Atlassian Shape',\n palette: 'shapePalette',\n attributes: {\n type: 'shape'\n }\n },\n 'atlassian-typography-modernized': {\n id: 'typography-modernized',\n displayName: 'Atlassian Typography (Modernized)',\n palette: 'typographyPalette',\n attributes: {\n type: 'typography'\n }\n },\n 'atlassian-typography-refreshed': {\n id: 'typography-refreshed',\n displayName: 'Atlassian Typography (Refreshed)',\n palette: 'typographyPalette',\n attributes: {\n type: 'typography'\n }\n },\n 'atlassian-light-brand-refresh': {\n id: 'light-brand-refresh',\n displayName: 'Light theme (Brand refresh)',\n palette: 'brandRefreshPalette',\n attributes: {\n type: 'color',\n mode: 'light'\n }\n },\n 'atlassian-dark-brand-refresh': {\n id: 'dark-brand-refresh',\n displayName: 'Dark theme (Brand refresh)',\n palette: 'brandRefreshPalette',\n attributes: {\n type: 'color',\n mode: 'dark'\n }\n }\n};\n\n/**\n * ThemeOptionsSchema: additional configuration options used to customize Atlassian's themes\n */\n\n/**\n * ThemeState: the standard representation of an app's current theme and preferences\n */\n\n/**\n * Can't evaluate typography feature flags at the module level,\n * it will always resolve to false when server side rendered or when flags are loaded async.\n */\n\n/**\n * themeStateDefaults: the default values for ThemeState used by theming utilities\n */\nexport var themeStateDefaults = {\n colorMode: 'auto',\n contrastMode: 'auto',\n dark: 'dark',\n light: 'light',\n shape: undefined,\n spacing: 'spacing',\n typography: function typography() {\n if (fg('platform-default-typography-modernized')) {\n return 'typography-modernized';\n }\n return undefined;\n },\n UNSAFE_themeOptions: undefined\n};\n\n/**\n * Represents theme state once mounted to the page\n * (the page doesn't have an \"auto\" color mode, it's either light or dark)\n */\n\nexport default themeConfig;","/**\n * THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}\n * @codegen <<SignedSource::02412877f3dbfda4dbaee7a917f24b6c>>\n * @codegenCommand yarn build tokens\n */\nvar tokens = {\n 'color.text': '--ds-text',\n 'color.text.accent.lime': '--ds-text-accent-lime',\n 'color.text.accent.lime.bolder': '--ds-text-accent-lime-bolder',\n 'color.text.accent.red': '--ds-text-accent-red',\n 'color.text.accent.red.bolder': '--ds-text-accent-red-bolder',\n 'color.text.accent.orange': '--ds-text-accent-orange',\n 'color.text.accent.orange.bolder': '--ds-text-accent-orange-bolder',\n 'color.text.accent.yellow': '--ds-text-accent-yellow',\n 'color.text.accent.yellow.bolder': '--ds-text-accent-yellow-bolder',\n 'color.text.accent.green': '--ds-text-accent-green',\n 'color.text.accent.green.bolder': '--ds-text-accent-green-bolder',\n 'color.text.accent.teal': '--ds-text-accent-teal',\n 'color.text.accent.teal.bolder': '--ds-text-accent-teal-bolder',\n 'color.text.accent.blue': '--ds-text-accent-blue',\n 'color.text.accent.blue.bolder': '--ds-text-accent-blue-bolder',\n 'color.text.accent.purple': '--ds-text-accent-purple',\n 'color.text.accent.purple.bolder': '--ds-text-accent-purple-bolder',\n 'color.text.accent.magenta': '--ds-text-accent-magenta',\n 'color.text.accent.magenta.bolder': '--ds-text-accent-magenta-bolder',\n 'color.text.accent.gray': '--ds-text-accent-gray',\n 'color.text.accent.gray.bolder': '--ds-text-accent-gray-bolder',\n 'color.text.disabled': '--ds-text-disabled',\n 'color.text.inverse': '--ds-text-inverse',\n 'color.text.selected': '--ds-text-selected',\n 'color.text.brand': '--ds-text-brand',\n 'color.text.danger': '--ds-text-danger',\n 'color.text.warning': '--ds-text-warning',\n 'color.text.warning.inverse': '--ds-text-warning-inverse',\n 'color.text.success': '--ds-text-success',\n 'color.text.discovery': '--ds-text-discovery',\n 'color.text.information': '--ds-text-information',\n 'color.text.subtlest': '--ds-text-subtlest',\n 'color.text.subtle': '--ds-text-subtle',\n 'color.link': '--ds-link',\n 'color.link.pressed': '--ds-link-pressed',\n 'color.link.visited': '--ds-link-visited',\n 'color.link.visited.pressed': '--ds-link-visited-pressed',\n 'color.icon': '--ds-icon',\n 'color.icon.accent.lime': '--ds-icon-accent-lime',\n 'color.icon.accent.red': '--ds-icon-accent-red',\n 'color.icon.accent.orange': '--ds-icon-accent-orange',\n 'color.icon.accent.yellow': '--ds-icon-accent-yellow',\n 'color.icon.accent.green': '--ds-icon-accent-green',\n 'color.icon.accent.teal': '--ds-icon-accent-teal',\n 'color.icon.accent.blue': '--ds-icon-accent-blue',\n 'color.icon.accent.purple': '--ds-icon-accent-purple',\n 'color.icon.accent.magenta': '--ds-icon-accent-magenta',\n 'color.icon.accent.gray': '--ds-icon-accent-gray',\n 'color.icon.disabled': '--ds-icon-disabled',\n 'color.icon.inverse': '--ds-icon-inverse',\n 'color.icon.selected': '--ds-icon-selected',\n 'color.icon.brand': '--ds-icon-brand',\n 'color.icon.danger': '--ds-icon-danger',\n 'color.icon.warning': '--ds-icon-warning',\n 'color.icon.warning.inverse': '--ds-icon-warning-inverse',\n 'color.icon.success': '--ds-icon-success',\n 'color.icon.discovery': '--ds-icon-discovery',\n 'color.icon.information': '--ds-icon-information',\n 'color.icon.subtlest': '--ds-icon-subtlest',\n 'color.icon.subtle': '--ds-icon-subtle',\n 'color.border': '--ds-border',\n 'color.border.accent.lime': '--ds-border-accent-lime',\n 'color.border.accent.red': '--ds-border-accent-red',\n 'color.border.accent.orange': '--ds-border-accent-orange',\n 'color.border.accent.yellow': '--ds-border-accent-yellow',\n 'color.border.accent.green': '--ds-border-accent-green',\n 'color.border.accent.teal': '--ds-border-accent-teal',\n 'color.border.accent.blue': '--ds-border-accent-blue',\n 'color.border.accent.purple': '--ds-border-accent-purple',\n 'color.border.accent.magenta': '--ds-border-accent-magenta',\n 'color.border.accent.gray': '--ds-border-accent-gray',\n 'color.border.disabled': '--ds-border-disabled',\n 'color.border.focused': '--ds-border-focused',\n 'color.border.input': '--ds-border-input',\n 'color.border.inverse': '--ds-border-inverse',\n 'color.border.selected': '--ds-border-selected',\n 'color.border.brand': '--ds-border-brand',\n 'color.border.danger': '--ds-border-danger',\n 'color.border.warning': '--ds-border-warning',\n 'color.border.success': '--ds-border-success',\n 'color.border.discovery': '--ds-border-discovery',\n 'color.border.information': '--ds-border-information',\n 'color.border.bold': '--ds-border-bold',\n 'color.background.accent.lime.subtlest': '--ds-background-accent-lime-subtlest',\n 'color.background.accent.lime.subtlest.hovered': '--ds-background-accent-lime-subtlest-hovered',\n 'color.background.accent.lime.subtlest.pressed': '--ds-background-accent-lime-subtlest-pressed',\n 'color.background.accent.lime.subtler': '--ds-background-accent-lime-subtler',\n 'color.background.accent.lime.subtler.hovered': '--ds-background-accent-lime-subtler-hovered',\n 'color.background.accent.lime.subtler.pressed': '--ds-background-accent-lime-subtler-pressed',\n 'color.background.accent.lime.subtle': '--ds-background-accent-lime-subtle',\n 'color.background.accent.lime.subtle.hovered': '--ds-background-accent-lime-subtle-hovered',\n 'color.background.accent.lime.subtle.pressed': '--ds-background-accent-lime-subtle-pressed',\n 'color.background.accent.lime.bolder': '--ds-background-accent-lime-bolder',\n 'color.background.accent.lime.bolder.hovered': '--ds-background-accent-lime-bolder-hovered',\n 'color.background.accent.lime.bolder.pressed': '--ds-background-accent-lime-bolder-pressed',\n 'color.background.accent.red.subtlest': '--ds-background-accent-red-subtlest',\n 'color.background.accent.red.subtlest.hovered': '--ds-background-accent-red-subtlest-hovered',\n 'color.background.accent.red.subtlest.pressed': '--ds-background-accent-red-subtlest-pressed',\n 'color.background.accent.red.subtler': '--ds-background-accent-red-subtler',\n 'color.background.accent.red.subtler.hovered': '--ds-background-accent-red-subtler-hovered',\n 'color.background.accent.red.subtler.pressed': '--ds-background-accent-red-subtler-pressed',\n 'color.background.accent.red.subtle': '--ds-background-accent-red-subtle',\n 'color.background.accent.red.subtle.hovered': '--ds-background-accent-red-subtle-hovered',\n 'color.background.accent.red.subtle.pressed': '--ds-background-accent-red-subtle-pressed',\n 'color.background.accent.red.bolder': '--ds-background-accent-red-bolder',\n 'color.background.accent.red.bolder.hovered': '--ds-background-accent-red-bolder-hovered',\n 'color.background.accent.red.bolder.pressed': '--ds-background-accent-red-bolder-pressed',\n 'color.background.accent.orange.subtlest': '--ds-background-accent-orange-subtlest',\n 'color.background.accent.orange.subtlest.hovered': '--ds-background-accent-orange-subtlest-hovered',\n 'color.background.accent.orange.subtlest.pressed': '--ds-background-accent-orange-subtlest-pressed',\n 'color.background.accent.orange.subtler': '--ds-background-accent-orange-subtler',\n 'color.background.accent.orange.subtler.hovered': '--ds-background-accent-orange-subtler-hovered',\n 'color.background.accent.orange.subtler.pressed': '--ds-background-accent-orange-subtler-pressed',\n 'color.background.accent.orange.subtle': '--ds-background-accent-orange-subtle',\n 'color.background.accent.orange.subtle.hovered': '--ds-background-accent-orange-subtle-hovered',\n 'color.background.accent.orange.subtle.pressed': '--ds-background-accent-orange-subtle-pressed',\n 'color.background.accent.orange.bolder': '--ds-background-accent-orange-bolder',\n 'color.background.accent.orange.bolder.hovered': '--ds-background-accent-orange-bolder-hovered',\n 'color.background.accent.orange.bolder.pressed': '--ds-background-accent-orange-bolder-pressed',\n 'color.background.accent.yellow.subtlest': '--ds-background-accent-yellow-subtlest',\n 'color.background.accent.yellow.subtlest.hovered': '--ds-background-accent-yellow-subtlest-hovered',\n 'color.background.accent.yellow.subtlest.pressed': '--ds-background-accent-yellow-subtlest-pressed',\n 'color.background.accent.yellow.subtler': '--ds-background-accent-yellow-subtler',\n 'color.background.accent.yellow.subtler.hovered': '--ds-background-accent-yellow-subtler-hovered',\n 'color.background.accent.yellow.subtler.pressed': '--ds-background-accent-yellow-subtler-pressed',\n 'color.background.accent.yellow.subtle': '--ds-background-accent-yellow-subtle',\n 'color.background.accent.yellow.subtle.hovered': '--ds-background-accent-yellow-subtle-hovered',\n 'color.background.accent.yellow.subtle.pressed': '--ds-background-accent-yellow-subtle-pressed',\n 'color.background.accent.yellow.bolder': '--ds-background-accent-yellow-bolder',\n 'color.background.accent.yellow.bolder.hovered': '--ds-background-accent-yellow-bolder-hovered',\n 'color.background.accent.yellow.bolder.pressed': '--ds-background-accent-yellow-bolder-pressed',\n 'color.background.accent.green.subtlest': '--ds-background-accent-green-subtlest',\n 'color.background.accent.green.subtlest.hovered': '--ds-background-accent-green-subtlest-hovered',\n 'color.background.accent.green.subtlest.pressed': '--ds-background-accent-green-subtlest-pressed',\n 'color.background.accent.green.subtler': '--ds-background-accent-green-subtler',\n 'color.background.accent.green.subtler.hovered': '--ds-background-accent-green-subtler-hovered',\n 'color.background.accent.green.subtler.pressed': '--ds-background-accent-green-subtler-pressed',\n 'color.background.accent.green.subtle': '--ds-background-accent-green-subtle',\n 'color.background.accent.green.subtle.hovered': '--ds-background-accent-green-subtle-hovered',\n 'color.background.accent.green.subtle.pressed': '--ds-background-accent-green-subtle-pressed',\n 'color.background.accent.green.bolder': '--ds-background-accent-green-bolder',\n 'color.background.accent.green.bolder.hovered': '--ds-background-accent-green-bolder-hovered',\n 'color.background.accent.green.bolder.pressed': '--ds-background-accent-green-bolder-pressed',\n 'color.background.accent.teal.subtlest': '--ds-background-accent-teal-subtlest',\n 'color.background.accent.teal.subtlest.hovered': '--ds-background-accent-teal-subtlest-hovered',\n 'color.background.accent.teal.subtlest.pressed': '--ds-background-accent-teal-subtlest-pressed',\n 'color.background.accent.teal.subtler': '--ds-background-accent-teal-subtler',\n 'color.background.accent.teal.subtler.hovered': '--ds-background-accent-teal-subtler-hovered',\n 'color.background.accent.teal.subtler.pressed': '--ds-background-accent-teal-subtler-pressed',\n 'color.background.accent.teal.subtle': '--ds-background-accent-teal-subtle',\n 'color.background.accent.teal.subtle.hovered': '--ds-background-accent-teal-subtle-hovered',\n 'color.background.accent.teal.subtle.pressed': '--ds-background-accent-teal-subtle-pressed',\n 'color.background.accent.teal.bolder': '--ds-background-accent-teal-bolder',\n 'color.background.accent.teal.bolder.hovered': '--ds-background-accent-teal-bolder-hovered',\n 'color.background.accent.teal.bolder.pressed': '--ds-background-accent-teal-bolder-pressed',\n 'color.background.accent.blue.subtlest': '--ds-background-accent-blue-subtlest',\n 'color.background.accent.blue.subtlest.hovered': '--ds-background-accent-blue-subtlest-hovered',\n 'color.background.accent.blue.subtlest.pressed': '--ds-background-accent-blue-subtlest-pressed',\n 'color.background.accent.blue.subtler': '--ds-background-accent-blue-subtler',\n 'color.background.accent.blue.subtler.hovered': '--ds-background-accent-blue-subtler-hovered',\n 'color.background.accent.blue.subtler.pressed': '--ds-background-accent-blue-subtler-pressed',\n 'color.background.accent.blue.subtle': '--ds-background-accent-blue-subtle',\n 'color.background.accent.blue.subtle.hovered': '--ds-background-accent-blue-subtle-hovered',\n 'color.background.accent.blue.subtle.pressed': '--ds-background-accent-blue-subtle-pressed',\n 'color.background.accent.blue.bolder': '--ds-background-accent-blue-bolder',\n 'color.background.accent.blue.bolder.hovered': '--ds-background-accent-blue-bolder-hovered',\n 'color.background.accent.blue.bolder.pressed': '--ds-background-accent-blue-bolder-pressed',\n 'color.background.accent.purple.subtlest': '--ds-background-accent-purple-subtlest',\n 'color.background.accent.purple.subtlest.hovered': '--ds-background-accent-purple-subtlest-hovered',\n 'color.background.accent.purple.subtlest.pressed': '--ds-background-accent-purple-subtlest-pressed',\n 'color.background.accent.purple.subtler': '--ds-background-accent-purple-subtler',\n 'color.background.accent.purple.subtler.hovered': '--ds-background-accent-purple-subtler-hovered',\n 'color.background.accent.purple.subtler.pressed': '--ds-background-accent-purple-subtler-pressed',\n 'color.background.accent.purple.subtle': '--ds-background-accent-purple-subtle',\n 'color.background.accent.purple.subtle.hovered': '--ds-background-accent-purple-subtle-hovered',\n 'color.background.accent.purple.subtle.pressed': '--ds-background-accent-purple-subtle-pressed',\n 'color.background.accent.purple.bolder': '--ds-background-accent-purple-bolder',\n 'color.background.accent.purple.bolder.hovered': '--ds-background-accent-purple-bolder-hovered',\n 'color.background.accent.purple.bolder.pressed': '--ds-background-accent-purple-bolder-pressed',\n 'color.background.accent.magenta.subtlest': '--ds-background-accent-magenta-subtlest',\n 'color.background.accent.magenta.subtlest.hovered': '--ds-background-accent-magenta-subtlest-hovered',\n 'color.background.accent.magenta.subtlest.pressed': '--ds-background-accent-magenta-subtlest-pressed',\n 'color.background.accent.magenta.subtler': '--ds-background-accent-magenta-subtler',\n 'color.background.accent.magenta.subtler.hovered': '--ds-background-accent-magenta-subtler-hovered',\n 'color.background.accent.magenta.subtler.pressed': '--ds-background-accent-magenta-subtler-pressed',\n 'color.background.accent.magenta.subtle': '--ds-background-accent-magenta-subtle',\n 'color.background.accent.magenta.subtle.hovered': '--ds-background-accent-magenta-subtle-hovered',\n 'color.background.accent.magenta.subtle.pressed': '--ds-background-accent-magenta-subtle-pressed',\n 'color.background.accent.magenta.bolder': '--ds-background-accent-magenta-bolder',\n 'color.background.accent.magenta.bolder.hovered': '--ds-background-accent-magenta-bolder-hovered',\n 'color.background.accent.magenta.bolder.pressed': '--ds-background-accent-magenta-bolder-pressed',\n 'color.background.accent.gray.subtlest': '--ds-background-accent-gray-subtlest',\n 'color.background.accent.gray.subtlest.hovered': '--ds-background-accent-gray-subtlest-hovered',\n 'color.background.accent.gray.subtlest.pressed': '--ds-background-accent-gray-subtlest-pressed',\n 'color.background.accent.gray.subtler': '--ds-background-accent-gray-subtler',\n 'color.background.accent.gray.subtler.hovered': '--ds-background-accent-gray-subtler-hovered',\n 'color.background.accent.gray.subtler.pressed': '--ds-background-accent-gray-subtler-pressed',\n 'color.background.accent.gray.subtle': '--ds-background-accent-gray-subtle',\n 'color.background.accent.gray.subtle.hovered': '--ds-background-accent-gray-subtle-hovered',\n 'color.background.accent.gray.subtle.pressed': '--ds-background-accent-gray-subtle-pressed',\n 'color.background.accent.gray.bolder': '--ds-background-accent-gray-bolder',\n 'color.background.accent.gray.bolder.hovered': '--ds-background-accent-gray-bolder-hovered',\n 'color.background.accent.gray.bolder.pressed': '--ds-background-accent-gray-bolder-pressed',\n 'color.background.disabled': '--ds-background-disabled',\n 'color.background.input': '--ds-background-input',\n 'color.background.input.hovered': '--ds-background-input-hovered',\n 'color.background.input.pressed': '--ds-background-input-pressed',\n 'color.background.inverse.subtle': '--ds-background-inverse-subtle',\n 'color.background.inverse.subtle.hovered': '--ds-background-inverse-subtle-hovered',\n 'color.background.inverse.subtle.pressed': '--ds-background-inverse-subtle-pressed',\n 'color.background.neutral': '--ds-background-neutral',\n 'color.background.neutral.hovered': '--ds-background-neutral-hovered',\n 'color.background.neutral.pressed': '--ds-background-neutral-pressed',\n 'color.background.neutral.subtle': '--ds-background-neutral-subtle',\n 'color.background.neutral.subtle.hovered': '--ds-background-neutral-subtle-hovered',\n 'color.background.neutral.subtle.pressed': '--ds-background-neutral-subtle-pressed',\n 'color.background.neutral.bold': '--ds-background-neutral-bold',\n 'color.background.neutral.bold.hovered': '--ds-background-neutral-bold-hovered',\n 'color.background.neutral.bold.pressed': '--ds-background-neutral-bold-pressed',\n 'color.background.selected': '--ds-background-selected',\n 'color.background.selected.hovered': '--ds-background-selected-hovered',\n 'color.background.selected.pressed': '--ds-background-selected-pressed',\n 'color.background.selected.bold': '--ds-background-selected-bold',\n 'color.background.selected.bold.hovered': '--ds-background-selected-bold-hovered',\n 'color.background.selected.bold.pressed': '--ds-background-selected-bold-pressed',\n 'color.background.brand.subtlest': '--ds-background-brand-subtlest',\n 'color.background.brand.subtlest.hovered': '--ds-background-brand-subtlest-hovered',\n 'color.background.brand.subtlest.pressed': '--ds-background-brand-subtlest-pressed',\n 'color.background.brand.bold': '--ds-background-brand-bold',\n 'color.background.brand.bold.hovered': '--ds-background-brand-bold-hovered',\n 'color.background.brand.bold.pressed': '--ds-background-brand-bold-pressed',\n 'color.background.brand.boldest': '--ds-background-brand-boldest',\n 'color.background.brand.boldest.hovered': '--ds-background-brand-boldest-hovered',\n 'color.background.brand.boldest.pressed': '--ds-background-brand-boldest-pressed',\n 'color.background.danger': '--ds-background-danger',\n 'color.background.danger.hovered': '--ds-background-danger-hovered',\n 'color.background.danger.pressed': '--ds-background-danger-pressed',\n 'color.background.danger.bold': '--ds-background-danger-bold',\n 'color.background.danger.bold.hovered': '--ds-background-danger-bold-hovered',\n 'color.background.danger.bold.pressed': '--ds-background-danger-bold-pressed',\n 'color.background.warning': '--ds-background-warning',\n 'color.background.warning.hovered': '--ds-background-warning-hovered',\n 'color.background.warning.pressed': '--ds-background-warning-pressed',\n 'color.background.warning.bold': '--ds-background-warning-bold',\n 'color.background.warning.bold.hovered': '--ds-background-warning-bold-hovered',\n 'color.background.warning.bold.pressed': '--ds-background-warning-bold-pressed',\n 'color.background.success': '--ds-background-success',\n 'color.background.success.hovered': '--ds-background-success-hovered',\n 'color.background.success.pressed': '--ds-background-success-pressed',\n 'color.background.success.bold': '--ds-background-success-bold',\n 'color.background.success.bold.hovered': '--ds-background-success-bold-hovered',\n 'color.background.success.bold.pressed': '--ds-background-success-bold-pressed',\n 'color.background.discovery': '--ds-background-discovery',\n 'color.background.discovery.hovered': '--ds-background-discovery-hovered',\n 'color.background.discovery.pressed': '--ds-background-discovery-pressed',\n 'color.background.discovery.bold': '--ds-background-discovery-bold',\n 'color.background.discovery.bold.hovered': '--ds-background-discovery-bold-hovered',\n 'color.background.discovery.bold.pressed': '--ds-background-discovery-bold-pressed',\n 'color.background.information': '--ds-background-information',\n 'color.background.information.hovered': '--ds-background-information-hovered',\n 'color.background.information.pressed': '--ds-background-information-pressed',\n 'color.background.information.bold': '--ds-background-information-bold',\n 'color.background.information.bold.hovered': '--ds-background-information-bold-hovered',\n 'color.background.information.bold.pressed': '--ds-background-information-bold-pressed',\n 'color.blanket': '--ds-blanket',\n 'color.blanket.selected': '--ds-blanket-selected',\n 'color.blanket.danger': '--ds-blanket-danger',\n 'color.interaction.hovered': '--ds-interaction-hovered',\n 'color.interaction.pressed': '--ds-interaction-pressed',\n 'color.skeleton': '--ds-skeleton',\n 'color.skeleton.subtle': '--ds-skeleton-subtle',\n 'color.chart.categorical.1': '--ds-chart-categorical-1',\n 'color.chart.categorical.1.hovered': '--ds-chart-categorical-1-hovered',\n 'color.chart.categorical.2': '--ds-chart-categorical-2',\n 'color.chart.categorical.2.hovered': '--ds-chart-categorical-2-hovered',\n 'color.chart.categorical.3': '--ds-chart-categorical-3',\n 'color.chart.categorical.3.hovered': '--ds-chart-categorical-3-hovered',\n 'color.chart.categorical.4': '--ds-chart-categorical-4',\n 'color.chart.categorical.4.hovered': '--ds-chart-categorical-4-hovered',\n 'color.chart.categorical.5': '--ds-chart-categorical-5',\n 'color.chart.categorical.5.hovered': '--ds-chart-categorical-5-hovered',\n 'color.chart.categorical.6': '--ds-chart-categorical-6',\n 'color.chart.categorical.6.hovered': '--ds-chart-categorical-6-hovered',\n 'color.chart.categorical.7': '--ds-chart-categorical-7',\n 'color.chart.categorical.7.hovered': '--ds-chart-categorical-7-hovered',\n 'color.chart.categorical.8': '--ds-chart-categorical-8',\n 'color.chart.categorical.8.hovered': '--ds-chart-categorical-8-hovered',\n 'color.chart.lime.bold': '--ds-chart-lime-bold',\n 'color.chart.lime.bold.hovered': '--ds-chart-lime-bold-hovered',\n 'color.chart.lime.bolder': '--ds-chart-lime-bolder',\n 'color.chart.lime.bolder.hovered': '--ds-chart-lime-bolder-hovered',\n 'color.chart.lime.boldest': '--ds-chart-lime-boldest',\n 'color.chart.lime.boldest.hovered': '--ds-chart-lime-boldest-hovered',\n 'color.chart.neutral': '--ds-chart-neutral',\n 'color.chart.neutral.hovered': '--ds-chart-neutral-hovered',\n 'color.chart.red.bold': '--ds-chart-red-bold',\n 'color.chart.red.bold.hovered': '--ds-chart-red-bold-hovered',\n 'color.chart.red.bolder': '--ds-chart-red-bolder',\n 'color.chart.red.bolder.hovered': '--ds-chart-red-bolder-hovered',\n 'color.chart.red.boldest': '--ds-chart-red-boldest',\n 'color.chart.red.boldest.hovered': '--ds-chart-red-boldest-hovered',\n 'color.chart.orange.bold': '--ds-chart-orange-bold',\n 'color.chart.orange.bold.hovered': '--ds-chart-orange-bold-hovered',\n 'color.chart.orange.bolder': '--ds-chart-orange-bolder',\n 'color.chart.orange.bolder.hovered': '--ds-chart-orange-bolder-hovered',\n 'color.chart.orange.boldest': '--ds-chart-orange-boldest',\n 'color.chart.orange.boldest.hovered': '--ds-chart-orange-boldest-hovered',\n 'color.chart.yellow.bold': '--ds-chart-yellow-bold',\n 'color.chart.yellow.bold.hovered': '--ds-chart-yellow-bold-hovered',\n 'color.chart.yellow.bolder': '--ds-chart-yellow-bolder',\n 'color.chart.yellow.bolder.hovered': '--ds-chart-yellow-bolder-hovered',\n 'color.chart.yellow.boldest': '--ds-chart-yellow-boldest',\n 'color.chart.yellow.boldest.hovered': '--ds-chart-yellow-boldest-hovered',\n 'color.chart.green.bold': '--ds-chart-green-bold',\n 'color.chart.green.bold.hovered': '--ds-chart-green-bold-hovered',\n 'color.chart.green.bolder': '--ds-chart-green-bolder',\n 'color.chart.green.bolder.hovered': '--ds-chart-green-bolder-hovered',\n 'color.chart.green.boldest': '--ds-chart-green-boldest',\n 'color.chart.green.boldest.hovered': '--ds-chart-green-boldest-hovered',\n 'color.chart.teal.bold': '--ds-chart-teal-bold',\n 'color.chart.teal.bold.hovered': '--ds-chart-teal-bold-hovered',\n 'color.chart.teal.bolder': '--ds-chart-teal-bolder',\n 'color.chart.teal.bolder.hovered': '--ds-chart-teal-bolder-hovered',\n 'color.chart.teal.boldest': '--ds-chart-teal-boldest',\n 'color.chart.teal.boldest.hovered': '--ds-chart-teal-boldest-hovered',\n 'color.chart.blue.bold': '--ds-chart-blue-bold',\n 'color.chart.blue.bold.hovered': '--ds-chart-blue-bold-hovered',\n 'color.chart.blue.bolder': '--ds-chart-blue-bolder',\n 'color.chart.blue.bolder.hovered': '--ds-chart-blue-bolder-hovered',\n 'color.chart.blue.boldest': '--ds-chart-blue-boldest',\n 'color.chart.blue.boldest.hovered': '--ds-chart-blue-boldest-hovered',\n 'color.chart.purple.bold': '--ds-chart-purple-bold',\n 'color.chart.purple.bold.hovered': '--ds-chart-purple-bold-hovered',\n 'color.chart.purple.bolder': '--ds-chart-purple-bolder',\n 'color.chart.purple.bolder.hovered': '--ds-chart-purple-bolder-hovered',\n 'color.chart.purple.boldest': '--ds-chart-purple-boldest',\n 'color.chart.purple.boldest.hovered': '--ds-chart-purple-boldest-hovered',\n 'color.chart.magenta.bold': '--ds-chart-magenta-bold',\n 'color.chart.magenta.bold.hovered': '--ds-chart-magenta-bold-hovered',\n 'color.chart.magenta.bolder': '--ds-chart-magenta-bolder',\n 'color.chart.magenta.bolder.hovered': '--ds-chart-magenta-bolder-hovered',\n 'color.chart.magenta.boldest': '--ds-chart-magenta-boldest',\n 'color.chart.magenta.boldest.hovered': '--ds-chart-magenta-boldest-hovered',\n 'color.chart.gray.bold': '--ds-chart-gray-bold',\n 'color.chart.gray.bold.hovered': '--ds-chart-gray-bold-hovered',\n 'color.chart.gray.bolder': '--ds-chart-gray-bolder',\n 'color.chart.gray.bolder.hovered': '--ds-chart-gray-bolder-hovered',\n 'color.chart.gray.boldest': '--ds-chart-gray-boldest',\n 'color.chart.gray.boldest.hovered': '--ds-chart-gray-boldest-hovered',\n 'color.chart.brand': '--ds-chart-brand',\n 'color.chart.brand.hovered': '--ds-chart-brand-hovered',\n 'color.chart.danger': '--ds-chart-danger',\n 'color.chart.danger.hovered': '--ds-chart-danger-hovered',\n 'color.chart.danger.bold': '--ds-chart-danger-bold',\n 'color.chart.danger.bold.hovered': '--ds-chart-danger-bold-hovered',\n 'color.chart.warning': '--ds-chart-warning',\n 'color.chart.warning.hovered': '--ds-chart-warning-hovered',\n 'color.chart.warning.bold': '--ds-chart-warning-bold',\n 'color.chart.warning.bold.hovered': '--ds-chart-warning-bold-hovered',\n 'color.chart.success': '--ds-chart-success',\n 'color.chart.success.hovered': '--ds-chart-success-hovered',\n 'color.chart.success.bold': '--ds-chart-success-bold',\n 'color.chart.success.bold.hovered': '--ds-chart-success-bold-hovered',\n 'color.chart.discovery': '--ds-chart-discovery',\n 'color.chart.discovery.hovered': '--ds-chart-discovery-hovered',\n 'color.chart.discovery.bold': '--ds-chart-discovery-bold',\n 'color.chart.discovery.bold.hovered': '--ds-chart-discovery-bold-hovered',\n 'color.chart.information': '--ds-chart-information',\n 'color.chart.information.hovered': '--ds-chart-information-hovered',\n 'color.chart.information.bold': '--ds-chart-information-bold',\n 'color.chart.information.bold.hovered': '--ds-chart-information-bold-hovered',\n 'elevation.surface': '--ds-surface',\n 'elevation.surface.hovered': '--ds-surface-hovered',\n 'elevation.surface.pressed': '--ds-surface-pressed',\n 'elevation.surface.overlay': '--ds-surface-overlay',\n 'elevation.surface.overlay.hovered': '--ds-surface-overlay-hovered',\n 'elevation.surface.overlay.pressed': '--ds-surface-overlay-pressed',\n 'elevation.surface.raised': '--ds-surface-raised',\n 'elevation.surface.raised.hovered': '--ds-surface-raised-hovered',\n 'elevation.surface.raised.pressed': '--ds-surface-raised-pressed',\n 'elevation.surface.sunken': '--ds-surface-sunken',\n 'elevation.shadow.overflow': '--ds-shadow-overflow',\n 'elevation.shadow.overflow.perimeter': '--ds-shadow-overflow-perimeter',\n 'elevation.shadow.overflow.spread': '--ds-shadow-overflow-spread',\n 'elevation.shadow.overlay': '--ds-shadow-overlay',\n 'elevation.shadow.raised': '--ds-shadow-raised',\n 'opacity.disabled': '--ds-opacity-disabled',\n 'opacity.loading': '--ds-opacity-loading',\n 'utility.UNSAFE.textTransformUppercase': '--ds-UNSAFE-textTransformUppercase',\n 'utility.UNSAFE.transparent': '--ds-UNSAFE-transparent',\n 'utility.elevation.surface.current': '--ds-elevation-surface-current',\n 'border.radius.050': '--ds-border-radius-050',\n 'border.radius': '--ds-border-radius',\n 'border.radius.100': '--ds-border-radius-100',\n 'border.radius.200': '--ds-border-radius-200',\n 'border.radius.300': '--ds-border-radius-300',\n 'border.radius.400': '--ds-border-radius-400',\n 'border.radius.circle': '--ds-border-radius-circle',\n 'border.width': '--ds-border-width',\n 'border.width.0': '--ds-border-width-0',\n 'border.width.indicator': '--ds-border-width-indicator',\n 'border.width.outline': '--ds-border-width-outline',\n 'space.0': '--ds-space-0',\n 'space.025': '--ds-space-025',\n 'space.050': '--ds-space-050',\n 'space.075': '--ds-space-075',\n 'space.100': '--ds-space-100',\n 'space.150': '--ds-space-150',\n 'space.200': '--ds-space-200',\n 'space.250': '--ds-space-250',\n 'space.300': '--ds-space-300',\n 'space.400': '--ds-space-400',\n 'space.500': '--ds-space-500',\n 'space.600': '--ds-space-600',\n 'space.800': '--ds-space-800',\n 'space.1000': '--ds-space-1000',\n 'space.negative.025': '--ds-space-negative-025',\n 'space.negative.050': '--ds-space-negative-050',\n 'space.negative.075': '--ds-space-negative-075',\n 'space.negative.100': '--ds-space-negative-100',\n 'space.negative.150': '--ds-space-negative-150',\n 'space.negative.200': '--ds-space-negative-200',\n 'space.negative.250': '--ds-space-negative-250',\n 'space.negative.300': '--ds-space-negative-300',\n 'space.negative.400': '--ds-space-negative-400',\n 'font.heading.xxlarge': '--ds-font-heading-xxlarge',\n 'font.heading.xlarge': '--ds-font-heading-xlarge',\n 'font.heading.large': '--ds-font-heading-large',\n 'font.heading.medium': '--ds-font-heading-medium',\n 'font.heading.small': '--ds-font-heading-small',\n 'font.heading.xsmall': '--ds-font-heading-xsmall',\n 'font.heading.xxsmall': '--ds-font-heading-xxsmall',\n 'font.body.large': '--ds-font-body-large',\n 'font.body': '--ds-font-body',\n 'font.body.small': '--ds-font-body-small',\n 'font.body.UNSAFE_small': '--ds-font-body-UNSAFE_small',\n 'font.code': '--ds-font-code',\n 'font.weight.regular': '--ds-font-weight-regular',\n 'font.weight.medium': '--ds-font-weight-medium',\n 'font.weight.semibold': '--ds-font-weight-semibold',\n 'font.weight.bold': '--ds-font-weight-bold',\n 'font.family.heading': '--ds-font-family-heading',\n 'font.family.body': '--ds-font-family-body',\n 'font.family.code': '--ds-font-family-code',\n 'font.family.brand.heading': '--ds-font-family-brand-heading',\n 'font.family.brand.body': '--ds-font-family-brand-body'\n};\nexport default tokens;","export var THEME_DATA_ATTRIBUTE = 'data-theme';\nexport var COLOR_MODE_ATTRIBUTE = 'data-color-mode';\nexport var CONTRAST_MODE_ATTRIBUTE = 'data-contrast-mode';\nexport var CUSTOM_THEME_ATTRIBUTE = 'data-custom-theme';\nexport var CSS_PREFIX = 'ds';\nexport var CSS_VAR_FULL = ['opacity', 'font', 'space', 'border'];\nexport var TOKEN_NOT_FOUND_CSS_VAR = \"--\".concat(CSS_PREFIX, \"-token-not-found\");\nexport var CURRENT_SURFACE_CSS_VAR = \"--\".concat(CSS_PREFIX, \"-elevation-surface-current\");","import warnOnce from '@atlaskit/ds-lib/warn-once';\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport tokens from './artifacts/token-names';\nimport { TOKEN_NOT_FOUND_CSS_VAR } from './constants';\n/**\n * Takes a dot-separated token name and an optional fallback, and returns the CSS custom property for the corresponding token.\n * This should be used to implement design decisions throughout your application.\n *\n * Note: With `@atlaskit/babel-plugin-tokens`, this function can be pre-compiled and a fallback value automatically inserted.\n *\n * @param {string} path - A dot-separated token name (example: `'color.background.brand'` or `'spacing.scale.100'`).\n * @param {string} [fallback] - The fallback value that should render when token CSS is not present in your app.\n *\n * @example\n * ```\n * <div\n * css={{\n * backgroundColor: token('elevation.surface.raised', N0),\n * boxShadow: token('elevation.shadow.raised', `0 20px 32px -8px ${N50A}, 0 0 1px ${N60A}`),\n * padding: token('spacing.scale.100', '8px'),\n * fontWeight: token('font.weight.regular', '400'),\n * }}\n * />\n * ```\n *\n */\nfunction token(path, fallback) {\n var token = tokens[path];\n if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n if (!token) {\n warnOnce(\"Unknown token id at path: \".concat(path, \" in @atlaskit/tokens\"));\n }\n if (token === '--ds-icon-subtlest' && !fg('platform-component-visual-refresh')) {\n warnOnce(\"Token \\\"color.icon.subtlest\\\" is only available when feature flag \\\"platform-component-visual-refresh\\\" is on, don't use it if the flag can't be turned on on this page\");\n }\n }\n\n // if the token is not found - replacing it with variable name without any value, to avoid it being undefined which would result in invalid css\n if (!token) {\n token = TOKEN_NOT_FOUND_CSS_VAR;\n }\n var tokenCall = fallback ? \"var(\".concat(token, \", \").concat(fallback, \")\") : \"var(\".concat(token, \")\");\n return tokenCall;\n}\nexport default token;","import warnOnce from '@atlaskit/ds-lib/warn-once';\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport tokens from './artifacts/token-names';\n/**\n * Takes a dot-separated token name and and an optional fallback, and returns the current computed CSS value for the\n * resulting CSS Custom Property.\n * This should be used for when the CSS cascade isn't available, eg. `<canvas>` elements, JS charting libraries, etc.\n *\n * Note: these values change depending on the theme so consider pairing them with `useThemeObserver` in React, or the\n * `ThemeMutationObserver` class elsewhere.\n *\n * @param {string} path - A dot-separated token name (example: `'color.background.brand'` or `'spacing.scale.100'`).\n * @param {string} [fallback] - The fallback value that should render when token CSS is not present in your app.\n *\n * @example\n * ```\n * const theme = useThemeObserver();\n *\n * useEffect(() => {\n * const lineColor = getTokenValue('color.background.accent.blue.subtle', B400);\n * }, [theme]);\n * ```\n *\n */\nfunction getTokenValue(tokenId) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var token = tokens[tokenId];\n var tokenValue = fallback;\n if (typeof process !== 'undefined' && process.env.NODE_ENV !== 'production') {\n if (!token) {\n warnOnce(\"Unknown token id at path: \".concat(tokenId, \" in @atlaskit/tokens\"));\n }\n if (token === '--ds-icon-subtlest' && !fg('platform-component-visual-refresh')) {\n warnOnce(\"Token \\\"color.icon.subtlest\\\" is only available when feature flag \\\"platform-component-visual-refresh\\\" is on, don't use it if the flag can't be turned on on this page\");\n }\n }\n if (typeof window === 'undefined') {\n return tokenValue;\n }\n tokenValue = window.getComputedStyle(document.documentElement).getPropertyValue(token).trim();\n tokenValue = tokenValue || fallback;\n return tokenValue;\n}\nexport default getTokenValue;","// valid hex color with 6 digits\nexport var isValidBrandHex = function isValidBrandHex(hex) {\n return /^#[0-9A-F]{6}$/i.test(hex);\n};\n\n// valid hex color with 4, 6 or 8 digits\nvar isValidHex = function isValidHex(hex) {\n return /^#([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);\n};\nexport function rgbToHex(r, g, b) {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);\n}\nexport function getAlpha(hex) {\n if (hex.length === 9) {\n var int = parseInt(hex.slice(7, 9), 16) / 255;\n return Number(parseFloat(int.toString()).toFixed(2));\n }\n return 1;\n}\nexport function hexToRgbA(hex) {\n if (!isValidHex(hex)) {\n throw new Error('Invalid HEX');\n }\n var c;\n c = hex.substring(1).split('');\n if (c.length === 3) {\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\n }\n c = '0x' + c.join('');\n return [c >> 16 & 255, c >> 8 & 255, c & 255, getAlpha(hex)];\n}\nexport function hexToRgb(hex) {\n if (!isValidHex(hex)) {\n throw new Error('Invalid HEX');\n }\n var c;\n c = hex.substring(1).split('');\n if (c.length === 3) {\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\n }\n c = '0x' + c.join('');\n return [c >> 16 & 255, c >> 8 & 255, c & 255];\n}\nexport function hexToHSL(hex) {\n if (!isValidHex(hex)) {\n throw new Error('Invalid HEX');\n }\n var r = 0,\n g = 0,\n b = 0;\n if (hex.length === 4) {\n r = '0x' + hex[1] + hex[1];\n g = '0x' + hex[2] + hex[2];\n b = '0x' + hex[3] + hex[3];\n } else if (hex.length === 7) {\n r = '0x' + hex[1] + hex[2];\n g = '0x' + hex[3] + hex[4];\n b = '0x' + hex[5] + hex[6];\n }\n // Then to HSL\n r /= 255;\n g /= 255;\n b /= 255;\n var cmin = Math.min(r, g, b),\n cmax = Math.max(r, g, b),\n delta = cmax - cmin,\n h = 0,\n s = 0,\n l = 0;\n if (delta === 0) {\n h = 0;\n } else if (cmax === r) {\n h = (g - b) / delta % 6;\n } else if (cmax === g) {\n h = (b - r) / delta + 2;\n } else {\n h = (r - g) / delta + 4;\n }\n h = Math.round(h * 60);\n if (h < 0) {\n h += 360;\n }\n l = (cmax + cmin) / 2;\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n return [h, s, l];\n}\nexport function HSLToRGB(h, s, l) {\n s /= 100;\n l /= 100;\n var k = function k(n) {\n return (n + h / 30) % 12;\n };\n var a = s * Math.min(l, 1 - l);\n var f = function f(n) {\n return l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n };\n return [255 * f(0), 255 * f(8), 255 * f(4)];\n}\nexport function relativeLuminanceW3C(r, g, b) {\n var RsRGB = r / 255;\n var GsRGB = g / 255;\n var BsRGB = b / 255;\n var R = RsRGB <= 0.03928 ? RsRGB / 12.92 : Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n var G = GsRGB <= 0.03928 ? GsRGB / 12.92 : Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n var B = BsRGB <= 0.03928 ? BsRGB / 12.92 : Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n\n // For the sRGB colorspace, the relative luminance of a color is defined as:\n var L = 0.2126 * R + 0.7152 * G + 0.0722 * B;\n return L;\n}\nexport function getContrastRatio(foreground, background) {\n if (!isValidHex(foreground) || !isValidHex(background)) {\n throw new Error('Invalid HEX');\n }\n var foregroundRgb = hexToRgb(foreground);\n var backgroundRgb = hexToRgb(background);\n var foregroundLuminance = relativeLuminanceW3C(foregroundRgb[0], foregroundRgb[1], foregroundRgb[2]);\n var backgroundLuminance = relativeLuminanceW3C(backgroundRgb[0], backgroundRgb[1], backgroundRgb[2]);\n // calculate the color contrast ratio\n var brightest = Math.max(foregroundLuminance, backgroundLuminance);\n var darkest = Math.min(foregroundLuminance, backgroundLuminance);\n return (brightest + 0.05) / (darkest + 0.05);\n}\nexport function deltaE(rgbA, rgbB) {\n var labA = rgbToLab(rgbA);\n var labB = rgbToLab(rgbB);\n var deltaL = labA[0] - labB[0];\n var deltaA = labA[1] - labB[1];\n var deltaB = labA[2] - labB[2];\n var c1 = Math.sqrt(labA[1] * labA[1] + labA[2] * labA[2]);\n var c2 = Math.sqrt(labB[1] * labB[1] + labB[2] * labB[2]);\n var deltaC = c1 - c2;\n var deltaH = deltaA * deltaA + deltaB * deltaB - deltaC * deltaC;\n deltaH = deltaH < 0 ? 0 : Math.sqrt(deltaH);\n var sc = 1.0 + 0.045 * c1;\n var sh = 1.0 + 0.015 * c1;\n var deltaLKlsl = deltaL / 1.0;\n var deltaCkcsc = deltaC / sc;\n var deltaHkhsh = deltaH / sh;\n var i = deltaLKlsl * deltaLKlsl + deltaCkcsc * deltaCkcsc + deltaHkhsh * deltaHkhsh;\n return i < 0 ? 0 : Math.sqrt(i);\n}\nfunction rgbToLab(rgb) {\n var r = rgb[0] / 255,\n g = rgb[1] / 255,\n b = rgb[2] / 255,\n x,\n y,\n z;\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n x = (r * 0.4124 + g * 0.3576 + b * 0.1805) / 0.95047;\n y = (r * 0.2126 + g * 0.7152 + b * 0.0722) / 1.0;\n z = (r * 0.0193 + g * 0.1192 + b * 0.9505) / 1.08883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n return [116 * y - 16, 500 * (x - y), 200 * (y - z)];\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { themeIds } from './theme-config';\nvar themeKinds = ['light', 'dark', 'spacing', 'typography', 'shape'];\nvar customThemeOptions = 'UNSAFE_themeOptions';\nvar isThemeKind = function isThemeKind(themeKind) {\n return themeKinds.find(function (kind) {\n return kind === themeKind;\n }) !== undefined;\n};\nvar isThemeIds = function isThemeIds(themeId) {\n return themeIds.find(function (id) {\n return id === themeId;\n }) !== undefined;\n};\nvar isColorMode = function isColorMode(modeId) {\n return ['light', 'dark', 'auto'].includes(modeId);\n};\n/**\n * Converts a string that is formatted for the `data-theme` HTML attribute\n * to an object that can be passed to `setGlobalTheme`.\n *\n * @param {string} themes The themes that should be applied.\n *\n * @example\n * ```\n * themeStringToObject('dark:dark light:legacy-light spacing:spacing');\n * // returns { dark: 'dark', light: 'legacy-light', spacing: 'spacing' }\n * ```\n */\nexport var themeStringToObject = function themeStringToObject(themeState) {\n return themeState.split(' ').map(function (theme) {\n return theme.split(/:([^]*)/);\n }).reduce(function (themeObject, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n kind = _ref2[0],\n id = _ref2[1];\n if (kind === 'colorMode' && isColorMode(id)) {\n themeObject[kind] = id;\n }\n if (isThemeKind(kind) && isThemeIds(id)) {\n // @ts-expect-error FIXME - this is a valid ts error\n themeObject[kind] = id;\n }\n if (kind === customThemeOptions) {\n try {\n themeObject[customThemeOptions] = JSON.parse(id);\n } catch (e) {\n new Error('Invalid custom theme string');\n }\n }\n return themeObject;\n }, {});\n};\n\n/**\n * Converts a theme object to a string formatted for the `data-theme` HTML attribute.\n *\n * @param {object} themes The themes that should be applied.\n *\n * @example\n * ```\n * themeObjectToString({ dark: 'dark', light: 'legacy-light', spacing: 'spacing' });\n * // returns 'dark:dark light:legacy-light spacing:spacing'\n * ```\n */\nexport var themeObjectToString = function themeObjectToString(themeState) {\n return Object.entries(themeState).reduce(function (themeString, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n kind = _ref4[0],\n id = _ref4[1];\n if (\n // colorMode theme state\n kind === 'colorMode' && typeof id === 'string' && isColorMode(id) ||\n // custom theme state\n kind === customThemeOptions && _typeof(id) === 'object' ||\n // other theme states\n isThemeKind(kind) && typeof id === 'string' && isThemeIds(id)) {\n return themeString + \"\".concat(themeString ? ' ' : '') + \"\".concat(kind, \":\").concat(_typeof(id) === 'object' ? JSON.stringify(id) : id);\n }\n return themeString;\n }, '');\n};","export var hash = function hash(str) {\n var hash = 0;\n for (var i = 0; i < str.length; i++) {\n var char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash &= hash; // Convert to 32bit integer\n }\n return new Uint32Array([hash])[0].toString(36);\n};","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport { COLOR_MODE_ATTRIBUTE, CONTRAST_MODE_ATTRIBUTE, CUSTOM_THEME_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from './constants';\nimport { themeStateDefaults } from './theme-config';\nimport { themeObjectToString } from './theme-state-transformer';\nimport { isValidBrandHex } from './utils/color-utils';\nimport { hash } from './utils/hash';\nvar defaultColorMode = 'light';\nvar defaultContrastMode = 'no-preference';\n\n/**\n * Server-side rendering utility. Generates the valid HTML attributes for a given theme.\n * Note: this utility does not handle automatic theme switching.\n *\n * @param {Object<string, string>} themeOptions - Theme options object\n * @param {string} themeState.colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.dark The color theme to be applied when the color mode resolves to 'dark'.\n * @param {string} themeState.light The color theme to be applied when the color mode resolves to 'light'.\n * @param {string} themeState.spacing The spacing theme to be applied.\n * @param {string} themeState.typography The typography theme to be applied.\n * @param {Object} themeState.UNSAFE_themeOptions The custom branding options to be used for custom theme generation\n *\n * @returns {Object} Object of HTML attributes to be applied to the document root\n */\nvar getThemeHtmlAttrs = function getThemeHtmlAttrs() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$colorMode = _ref.colorMode,\n colorMode = _ref$colorMode === void 0 ? themeStateDefaults['colorMode'] : _ref$colorMode,\n _ref$dark = _ref.dark,\n dark = _ref$dark === void 0 ? themeStateDefaults['dark'] : _ref$dark,\n _ref$light = _ref.light,\n light = _ref$light === void 0 ? themeStateDefaults['light'] : _ref$light,\n _ref$contrastMode = _ref.contrastMode,\n contrastMode = _ref$contrastMode === void 0 ? themeStateDefaults['contrastMode'] : _ref$contrastMode,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? themeStateDefaults['shape'] : _ref$shape,\n _ref$spacing = _ref.spacing,\n spacing = _ref$spacing === void 0 ? themeStateDefaults['spacing'] : _ref$spacing,\n _ref$typography = _ref.typography,\n typography = _ref$typography === void 0 ? themeStateDefaults['typography']() : _ref$typography,\n _ref$UNSAFE_themeOpti = _ref.UNSAFE_themeOptions,\n UNSAFE_themeOptions = _ref$UNSAFE_themeOpti === void 0 ? themeStateDefaults['UNSAFE_themeOptions'] : _ref$UNSAFE_themeOpti;\n var themeAttribute = themeObjectToString({\n dark: dark,\n light: light,\n shape: shape,\n spacing: spacing,\n typography: typography\n });\n var result = _defineProperty(_defineProperty({}, THEME_DATA_ATTRIBUTE, themeAttribute), COLOR_MODE_ATTRIBUTE, colorMode === 'auto' ? defaultColorMode : colorMode);\n if (fg('platform_increased-contrast-themes')) {\n result = _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, CONTRAST_MODE_ATTRIBUTE, contrastMode === 'auto' ? defaultContrastMode : contrastMode));\n }\n if (UNSAFE_themeOptions && isValidBrandHex(UNSAFE_themeOptions.brandColor)) {\n var optionString = JSON.stringify(UNSAFE_themeOptions);\n var uniqueId = hash(optionString);\n result[CUSTOM_THEME_ATTRIBUTE] = uniqueId;\n }\n return result;\n};\nexport default getThemeHtmlAttrs;","export default {\n\t'light': () => (() => {}),\n\t'light-future': () => (() => {}),\n\t'dark': () => (() => {}),\n\t'dark-future': () => (() => {}),\n\t'legacy-light': () => (() => {}),\n\t'legacy-dark': () => (() => {}),\n\t'spacing': () => (() => {}),\n\t'shape': () => (() => {}),\n\t'typography-adg3': () => (() => {}),\n\t'typography-modernized': () => (() => {}),\n\t'typography-refreshed': () => (() => {}),\n};","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport themeImportMap from '../artifacts/theme-import-map';\nimport { CUSTOM_THEME_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from '../constants';\nexport var loadAndAppendThemeCss = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(themeId) {\n var themeCss, style;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (!document.head.querySelector(\"style[\".concat(THEME_DATA_ATTRIBUTE, \"=\\\"\").concat(themeId, \"\\\"]:not([\").concat(CUSTOM_THEME_ATTRIBUTE, \"])\"))) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\");\n case 2:\n if (themeId) {\n _context.next = 4;\n break;\n }\n return _context.abrupt(\"return\");\n case 4:\n _context.next = 6;\n return loadThemeCss(themeId);\n case 6:\n themeCss = _context.sent;\n style = document.createElement('style');\n style.textContent = themeCss;\n style.dataset.theme = themeId;\n document.head.appendChild(style);\n case 11:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function loadAndAppendThemeCss(_x) {\n return _ref.apply(this, arguments);\n };\n}();\nexport var loadThemeCss = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(themeId) {\n var _yield$themeImportMap, themeCss;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if ((themeId === 'light' || themeId === 'dark') && fg('platform-component-visual-refresh')) {\n themeId += '-brand-refresh';\n }\n _context2.next = 3;\n return themeImportMap[themeId]();\n case 3:\n _yield$themeImportMap = _context2.sent;\n themeCss = _yield$themeImportMap.default;\n return _context2.abrupt(\"return\", themeCss);\n case 6:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return function loadThemeCss(_x2) {\n return _ref2.apply(this, arguments);\n };\n}();\nexport var darkModeMediaQuery = '(prefers-color-scheme: dark)';\nexport var moreContrastMediaQuery = '(prefers-contrast: more)';","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { bind as _bind } from 'bind-event-listener';\nimport { COLOR_MODE_ATTRIBUTE } from '../constants';\nimport { darkModeMediaQuery } from './theme-loading';\nvar isMatchMediaAvailable = typeof window !== 'undefined' && 'matchMedia' in window;\n\n/**\n * Updates the current theme when the system theme changes. Should be bound\n * to an event listener listening on the '(prefers-color-scheme: dark)' query\n * @param e The event representing a change in system theme.\n */\nfunction checkNativeListener(e) {\n var element = document.documentElement;\n element.setAttribute(COLOR_MODE_ATTRIBUTE, e.matches ? 'dark' : 'light');\n}\nvar darkModeMql = isMatchMediaAvailable && window.matchMedia(darkModeMediaQuery);\nvar ColorModeObserver = /*#__PURE__*/function () {\n function ColorModeObserver() {\n _classCallCheck(this, ColorModeObserver);\n _defineProperty(this, \"unbindThemeChangeListener\", null);\n }\n return _createClass(ColorModeObserver, [{\n key: \"getColorMode\",\n value: function getColorMode() {\n if (!darkModeMql) {\n return 'light';\n }\n return darkModeMql !== null && darkModeMql !== void 0 && darkModeMql.matches ? 'dark' : 'light';\n }\n }, {\n key: \"bind\",\n value: function bind() {\n if (darkModeMql && this.unbindThemeChangeListener === null) {\n this.unbindThemeChangeListener = _bind(darkModeMql, {\n type: 'change',\n listener: checkNativeListener\n });\n }\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n if (this.unbindThemeChangeListener) {\n this.unbindThemeChangeListener();\n this.unbindThemeChangeListener = null;\n }\n }\n }]);\n}();\n/**\n * A singleton color mode observer - binds \"auto\" switching logic to a single `mediaQueryList` listener\n * that can be unbound by any consumer when no longer needed.\n */\nvar SingletonColorModeObserver = new ColorModeObserver();\nexport default SingletonColorModeObserver;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { bind as _bind } from 'bind-event-listener';\nimport { CONTRAST_MODE_ATTRIBUTE } from '../constants';\nimport { moreContrastMediaQuery } from './theme-loading';\nvar isMatchMediaAvailable = typeof window !== 'undefined' && 'matchMedia' in window;\n\n/**\n * Updates the current theme when the system contrast preference changes. Should be bound\n * to an event listener listening on the '(prefers-contrast: more)' query\n * @param e The event representing a change in system theme.\n */\nfunction checkNativeListener(e) {\n var element = document.documentElement;\n element.setAttribute(CONTRAST_MODE_ATTRIBUTE, e.matches ? 'more' : 'no-preference');\n}\nvar contrastModeMql = isMatchMediaAvailable && window.matchMedia(moreContrastMediaQuery);\nvar ContrastModeObserver = /*#__PURE__*/function () {\n function ContrastModeObserver() {\n _classCallCheck(this, ContrastModeObserver);\n _defineProperty(this, \"unbindContrastChangeListener\", null);\n }\n return _createClass(ContrastModeObserver, [{\n key: \"getContrastMode\",\n value: function getContrastMode() {\n if (!contrastModeMql) {\n return 'no-preference';\n }\n return contrastModeMql !== null && contrastModeMql !== void 0 && contrastModeMql.matches ? 'more' : 'no-preference';\n }\n }, {\n key: \"bind\",\n value: function bind() {\n if (contrastModeMql && this.unbindContrastChangeListener === null) {\n this.unbindContrastChangeListener = _bind(contrastModeMql, {\n type: 'change',\n listener: checkNativeListener\n });\n }\n }\n }, {\n key: \"unbind\",\n value: function unbind() {\n if (this.unbindContrastChangeListener) {\n this.unbindContrastChangeListener();\n this.unbindContrastChangeListener = null;\n }\n }\n }]);\n}();\n/**\n * A singleton contrast mode observer - binds \"auto\" switching logic to a single `mediaQueryList` listener\n * that can be unbound by any consumer when no longer needed.\n */\nvar SingletonContrastModeObserver = new ContrastModeObserver();\nexport default SingletonContrastModeObserver;","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport getThemeHtmlAttrs from '../get-theme-html-attrs';\nimport ColorModeObserver from './color-mode-listeners';\nimport ContrastModeObserver from './contrast-mode-listeners';\n\n/**\n * Given ThemeState, sets appropriate html attributes on the documentElement,\n * adds a listener to keep colorMode updated, and returns a function to unbind.\n */\nexport default function configurePage(themeState) {\n if (themeState.colorMode === 'auto') {\n // Set colorMode based on the user preference\n themeState.colorMode = ColorModeObserver.getColorMode();\n // Bind a listener (if one doesn't already exist) to keep colorMode updated\n ColorModeObserver.bind();\n } else {\n ColorModeObserver.unbind();\n }\n if (fg('platform_increased-contrast-themes')) {\n if (themeState.contrastMode === 'auto') {\n // Set contrastMode based on the user preference\n themeState.contrastMode = ContrastModeObserver.getContrastMode();\n // Bind a listener (if one doesn't already exist) to keep contrastMode updated\n ContrastModeObserver.bind();\n } else {\n ContrastModeObserver.unbind();\n }\n }\n var themeAttributes = getThemeHtmlAttrs(themeState);\n Object.entries(themeAttributes).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n document.documentElement.setAttribute(key, value);\n });\n return function () {\n ColorModeObserver.unbind();\n if (fg('platform_increased-contrast-themes')) {\n ContrastModeObserver.unbind();\n }\n };\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","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}\nexport { _nonIterableSpread as default };","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport tokens from '../artifacts/token-names';\nimport { CUSTOM_THEME_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from '../constants';\nimport { hash } from './hash';\nexport function findMissingCustomStyleElements(UNSAFE_themeOptions, mode) {\n var optionString = JSON.stringify(UNSAFE_themeOptions);\n var uniqueId = hash(optionString);\n var attrOfMissingCustomStyles = [];\n (mode === 'auto' ? ['light', 'dark'] : [mode]).forEach(function (themeId) {\n var element = document.head.querySelector(\"style[\".concat(CUSTOM_THEME_ATTRIBUTE, \"=\\\"\").concat(uniqueId, \"\\\"][\").concat(THEME_DATA_ATTRIBUTE, \"=\\\"\").concat(themeId, \"\\\"]\"));\n if (element) {\n // Append the existing custom styles to take precedence over others\n document.head.appendChild(element);\n } else {\n attrOfMissingCustomStyles.push(themeId);\n }\n });\n return attrOfMissingCustomStyles;\n}\nexport function limitSizeOfCustomStyleElements(sizeThreshold) {\n var styleTags = _toConsumableArray(Array.from(document.head.querySelectorAll(\"style[\".concat(CUSTOM_THEME_ATTRIBUTE, \"][\").concat(THEME_DATA_ATTRIBUTE, \"]\"))));\n if (styleTags.length < sizeThreshold) {\n return;\n }\n styleTags.slice(0, styleTags.length - (sizeThreshold - 1)).forEach(function (element) {\n return element.remove();\n });\n}\nexport function reduceTokenMap(tokenMap, themeRamp) {\n return Object.entries(tokenMap).reduce(function (acc, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cssVar = tokens[key];\n return cssVar ? \"\".concat(acc, \"\\n \").concat(cssVar, \": \").concat(typeof value === 'string' ? value : themeRamp[value], \";\") : acc;\n }, '');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport themeConfig from '../theme-config';\n\n/**\n * Finds any matching increased contrast theme available for a selected theme.\n */\nexport default function getIncreasedContrastTheme(themeId) {\n var _Object$entries$find;\n return (_Object$entries$find = Object.entries(themeConfig).find(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n increasesContrastFor = _ref2[1].increasesContrastFor;\n return increasesContrastFor === themeId;\n })) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[1].id;\n}","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport getIncreasedContrastTheme from './get-increased-contrast-theme';\nexport var getThemePreferences = function getThemePreferences(themeState) {\n var colorMode = themeState.colorMode,\n contrastMode = themeState.contrastMode,\n dark = themeState.dark,\n light = themeState.light,\n shape = themeState.shape,\n spacing = themeState.spacing,\n typography = themeState.typography;\n var autoColorModeThemes = [light, dark];\n var themePreferences = [];\n if (colorMode === 'auto') {\n if (contrastMode !== 'no-preference' && fg('platform_increased-contrast-themes')) {\n autoColorModeThemes.forEach(function (normalTheme) {\n var increasedContrastTheme = getIncreasedContrastTheme(normalTheme);\n if (increasedContrastTheme) {\n autoColorModeThemes.push(increasedContrastTheme);\n }\n });\n }\n themePreferences.push.apply(themePreferences, autoColorModeThemes);\n } else {\n themePreferences.push(themeState[colorMode]);\n if (contrastMode !== 'no-preference' && fg('platform_increased-contrast-themes')) {\n var increasedContrastTheme = getIncreasedContrastTheme(themeState[colorMode]);\n if (increasedContrastTheme) {\n themePreferences.push(increasedContrastTheme);\n }\n }\n }\n [shape, spacing, typography].forEach(function (themeId) {\n if (themeId) {\n themePreferences.push(themeId);\n }\n });\n return _toConsumableArray(new Set(themePreferences));\n};\nexport var getThemeOverridePreferences = function getThemeOverridePreferences(_themeState) {\n var themeOverridePreferences = [];\n return _toConsumableArray(new Set(themeOverridePreferences));\n};","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport { themeStateDefaults } from './theme-config';\nimport { isValidBrandHex } from './utils/color-utils';\nimport configurePage from './utils/configure-page';\nimport { findMissingCustomStyleElements } from './utils/custom-theme-loading-utils';\nimport { getThemeOverridePreferences, getThemePreferences } from './utils/get-theme-preferences';\nimport { loadAndAppendThemeCss } from './utils/theme-loading';\n\n/**\n * Sets the theme globally at runtime. This updates the `data-theme` and `data-color-mode` attributes on your page's <html> tag.\n *\n * @param {Object<string, string>} themeState The themes and color mode that should be applied.\n * @param {string} themeState.colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.contrastMode The contrast mode theme to be applied. If set to `auto`, the theme applied will be determined by the OS setting.set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.dark The color theme to be applied when the color mode resolves to 'dark'.\n * @param {string} themeState.light The color theme to be applied when the color mode resolves to 'light'.\n * @param {string} themeState.shape The shape theme to be applied.\n * @param {string} themeState.spacing The spacing theme to be applied.\n * @param {string} themeState.typography The typography theme to be applied.\n * @param {Object} themeState.UNSAFE_themeOptions The custom branding options to be used for custom theme generation\n * @param {function} themeLoader Callback function used to override the default theme loading functionality.\n *\n * @returns A Promise of an unbind function, that can be used to stop listening for changes to system theme.\n *\n * @example\n * ```\n * setGlobalTheme({colorMode: 'auto', light: 'light', dark: 'dark', spacing: 'spacing'});\n * ```\n */\nvar setGlobalTheme = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var _ref2,\n _ref2$colorMode,\n colorMode,\n _ref2$contrastMode,\n contrastMode,\n _ref2$dark,\n dark,\n _ref2$light,\n light,\n _ref2$shape,\n shape,\n _ref2$spacing,\n spacing,\n _ref2$typography,\n typography,\n _ref2$UNSAFE_themeOpt,\n UNSAFE_themeOptions,\n themeLoader,\n themeState,\n themePreferences,\n loadingStrategy,\n loadingTasks,\n mode,\n attrOfMissingCustomStyles,\n themeOverridePreferences,\n _iterator,\n _step,\n themeId,\n autoUnbind,\n _args3 = arguments;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _ref2 = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {}, _ref2$colorMode = _ref2.colorMode, colorMode = _ref2$colorMode === void 0 ? themeStateDefaults['colorMode'] : _ref2$colorMode, _ref2$contrastMode = _ref2.contrastMode, contrastMode = _ref2$contrastMode === void 0 ? themeStateDefaults['contrastMode'] : _ref2$contrastMode, _ref2$dark = _ref2.dark, dark = _ref2$dark === void 0 ? themeStateDefaults['dark'] : _ref2$dark, _ref2$light = _ref2.light, light = _ref2$light === void 0 ? themeStateDefaults['light'] : _ref2$light, _ref2$shape = _ref2.shape, shape = _ref2$shape === void 0 ? themeStateDefaults['shape'] : _ref2$shape, _ref2$spacing = _ref2.spacing, spacing = _ref2$spacing === void 0 ? themeStateDefaults['spacing'] : _ref2$spacing, _ref2$typography = _ref2.typography, typography = _ref2$typography === void 0 ? themeStateDefaults['typography']() : _ref2$typography, _ref2$UNSAFE_themeOpt = _ref2.UNSAFE_themeOptions, UNSAFE_themeOptions = _ref2$UNSAFE_themeOpt === void 0 ? themeStateDefaults['UNSAFE_themeOptions'] : _ref2$UNSAFE_themeOpt;\n themeLoader = _args3.length > 1 ? _args3[1] : undefined;\n // CLEANUP: Remove. This blocks application of increased contrast themes\n // without the feature flag enabled.\n if (!fg('platform_increased-contrast-themes')) {\n if (light === 'light-increased-contrast') {\n light = 'light';\n }\n if (dark === 'dark-increased-contrast') {\n dark = 'dark';\n }\n }\n themeState = {\n colorMode: colorMode,\n contrastMode: contrastMode,\n dark: dark,\n light: light,\n shape: shape,\n spacing: spacing,\n typography: typography,\n UNSAFE_themeOptions: themeLoader ? undefined : UNSAFE_themeOptions\n }; // Determine what to load and loading strategy\n themePreferences = getThemePreferences(themeState);\n loadingStrategy = themeLoader ? themeLoader : loadAndAppendThemeCss; // Load standard themes\n loadingTasks = themePreferences.map( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(themeId) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return loadingStrategy(themeId);\n case 2:\n return _context.abrupt(\"return\", _context.sent);\n case 3:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }()); // Load custom themes if needed\n if (!themeLoader && UNSAFE_themeOptions && isValidBrandHex(UNSAFE_themeOptions === null || UNSAFE_themeOptions === void 0 ? void 0 : UNSAFE_themeOptions.brandColor)) {\n mode = colorMode || themeStateDefaults['colorMode'];\n attrOfMissingCustomStyles = findMissingCustomStyleElements(UNSAFE_themeOptions, mode);\n if (attrOfMissingCustomStyles.length > 0) {\n // Load custom theme styles\n loadingTasks.push(_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var _yield$import, loadAndAppendCustomThemeCss;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return import( /* webpackChunkName: \"@atlaskit-internal_atlassian-custom-theme\" */\n './custom-theme');\n case 2:\n _yield$import = _context2.sent;\n loadAndAppendCustomThemeCss = _yield$import.loadAndAppendCustomThemeCss;\n loadAndAppendCustomThemeCss({\n colorMode: attrOfMissingCustomStyles.length === 2 ? 'auto' :\n // only load the missing custom theme styles\n attrOfMissingCustomStyles[0],\n UNSAFE_themeOptions: UNSAFE_themeOptions\n });\n case 5:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }))());\n }\n }\n _context3.next = 10;\n return Promise.all(loadingTasks);\n case 10:\n // Load override themes after standard themes\n themeOverridePreferences = getThemeOverridePreferences(themeState);\n _iterator = _createForOfIteratorHelper(themeOverridePreferences);\n _context3.prev = 12;\n _iterator.s();\n case 14:\n if ((_step = _iterator.n()).done) {\n _context3.next = 20;\n break;\n }\n themeId = _step.value;\n _context3.next = 18;\n return loadingStrategy(themeId);\n case 18:\n _context3.next = 14;\n break;\n case 20:\n _context3.next = 25;\n break;\n case 22:\n _context3.prev = 22;\n _context3.t0 = _context3[\"catch\"](12);\n _iterator.e(_context3.t0);\n case 25:\n _context3.prev = 25;\n _iterator.f();\n return _context3.finish(25);\n case 28:\n autoUnbind = configurePage(themeState);\n return _context3.abrupt(\"return\", autoUnbind);\n case 30:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[12, 22, 25, 28]]);\n }));\n return function setGlobalTheme() {\n return _ref.apply(this, arguments);\n };\n}();\nexport default setGlobalTheme;","import { themeStateDefaults } from './theme-config';\nimport configurePage from './utils/configure-page';\nimport { getThemePreferences } from './utils/get-theme-preferences';\n\n/**\n * Synchronously sets the theme globally at runtime. Themes are not loaded;\n * use `getThemeStyles` and other server-side utilities to generate and load them.\n *\n * @param {Object<string, string>} themeState The themes and color mode that should be applied.\n * @param {string} themeState.colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.dark The color theme to be applied when the color mode resolves to 'dark'.\n * @param {string} themeState.light The color theme to be applied when the color mode resolves to 'light'.\n * @param {string} themeState.shape The shape theme to be applied.\n * @param {string} themeState.spacing The spacing theme to be applied.\n * @param {string} themeState.typography The typography theme to be applied.\n * @param {Object} themeState.UNSAFE_themeOptions The custom branding options to be used for custom theme generation\n * @param {function} themeLoader Callback function used to override the default theme loading functionality.\n *\n * @returns An unbind function, that can be used to stop listening for changes to system theme.\n *\n * @example\n * ```\n * enableGlobalTheme({colorMode: 'auto', light: 'light', dark: 'dark', spacing: 'spacing'});\n * ```\n */\nvar enableGlobalTheme = function enableGlobalTheme() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$colorMode = _ref.colorMode,\n colorMode = _ref$colorMode === void 0 ? themeStateDefaults['colorMode'] : _ref$colorMode,\n _ref$contrastMode = _ref.contrastMode,\n contrastMode = _ref$contrastMode === void 0 ? themeStateDefaults['contrastMode'] : _ref$contrastMode,\n _ref$dark = _ref.dark,\n dark = _ref$dark === void 0 ? themeStateDefaults['dark'] : _ref$dark,\n _ref$light = _ref.light,\n light = _ref$light === void 0 ? themeStateDefaults['light'] : _ref$light,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? themeStateDefaults['shape'] : _ref$shape,\n _ref$spacing = _ref.spacing,\n spacing = _ref$spacing === void 0 ? themeStateDefaults['spacing'] : _ref$spacing,\n _ref$typography = _ref.typography,\n typography = _ref$typography === void 0 ? themeStateDefaults['typography']() : _ref$typography,\n _ref$UNSAFE_themeOpti = _ref.UNSAFE_themeOptions,\n UNSAFE_themeOptions = _ref$UNSAFE_themeOpti === void 0 ? themeStateDefaults['UNSAFE_themeOptions'] : _ref$UNSAFE_themeOpti;\n var themeLoader = arguments.length > 1 ? arguments[1] : undefined;\n var themeState = {\n colorMode: colorMode,\n contrastMode: contrastMode,\n dark: dark,\n light: light,\n shape: shape,\n spacing: spacing,\n typography: typography,\n UNSAFE_themeOptions: themeLoader ? undefined : UNSAFE_themeOptions\n };\n\n // Determine what to load and call theme loader\n var themePreferences = getThemePreferences(themeState);\n if (themeLoader) {\n themePreferences.map(function (themeId) {\n return themeLoader(themeId);\n });\n }\n var autoUnbind = configurePage(themeState);\n return autoUnbind;\n};\nexport default enableGlobalTheme;","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\nimport { fg } from '@atlaskit/platform-feature-flags';\nimport { themeIdsWithOverrides, themeStateDefaults } from './theme-config';\nimport { isValidBrandHex } from './utils/color-utils';\nimport { getThemeOverridePreferences, getThemePreferences } from './utils/get-theme-preferences';\nimport { loadThemeCss } from './utils/theme-loading';\n/**\n * Takes an object containing theme preferences, and returns an array of objects for use in applying styles to the document head.\n * Only supplies the color themes necessary for initial render, based on the current themeState. I.e. if in light mode, dark mode themes are not returned.\n *\n * @param {Object<string, string>} themeState The themes and color mode that should be applied.\n * @param {string} themeState.colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n * @param {string} themeState.dark The color theme to be applied when the color mode resolves to 'dark'.\n * @param {string} themeState.light The color theme to be applied when the color mode resolves to 'light'.\n * @param {string} themeState.shape The shape theme to be applied.\n * @param {string} themeState.spacing The spacing theme to be applied.\n * @param {string} themeState.typography The typography theme to be applied.\n * @param {Object} themeState.UNSAFE_themeOptions The custom branding options to be used for custom theme generation\n *\n * @returns A Promise of an object array, containing theme IDs, data-attributes to attach to the theme, and the theme CSS.\n * If an error is encountered while loading themes, the themes array will be empty.\n */\nvar getThemeStyles = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(preferences) {\n var themePreferences, themeOverridePreferences, themeState, results;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n themeOverridePreferences = [];\n if (preferences === 'all') {\n themePreferences = themeIdsWithOverrides;\n\n // CLEANUP: Remove\n if (!fg('platform_increased-contrast-themes')) {\n themePreferences = themePreferences.filter(function (n) {\n return n !== 'light-increased-contrast' && n !== 'dark-increased-contrast';\n });\n }\n themePreferences = themePreferences.filter(function (n) {\n return n !== 'light-brand-refresh' && n !== 'dark-brand-refresh';\n });\n } else {\n themeState = {\n colorMode: (preferences === null || preferences === void 0 ? void 0 : preferences.colorMode) || themeStateDefaults['colorMode'],\n contrastMode: (preferences === null || preferences === void 0 ? void 0 : preferences.contrastMode) || themeStateDefaults['contrastMode'],\n dark: (preferences === null || preferences === void 0 ? void 0 : preferences.dark) || themeStateDefaults['dark'],\n light: (preferences === null || preferences === void 0 ? void 0 : preferences.light) || themeStateDefaults['light'],\n shape: (preferences === null || preferences === void 0 ? void 0 : preferences.shape) || themeStateDefaults['shape'],\n spacing: (preferences === null || preferences === void 0 ? void 0 : preferences.spacing) || themeStateDefaults['spacing'],\n typography: (preferences === null || preferences === void 0 ? void 0 : preferences.typography) || themeStateDefaults['typography']()\n };\n themePreferences = getThemePreferences(themeState);\n themeOverridePreferences = getThemeOverridePreferences(themeState);\n }\n _context3.next = 4;\n return Promise.all([].concat(_toConsumableArray([].concat(_toConsumableArray(themePreferences), _toConsumableArray(themeOverridePreferences)).map( /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(themeId) {\n var css;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return loadThemeCss(themeId);\n case 3:\n css = _context.sent;\n return _context.abrupt(\"return\", {\n id: themeId,\n attrs: {\n 'data-theme': themeId\n },\n css: css\n });\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n return _context.abrupt(\"return\", undefined);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 7]]);\n }));\n return function (_x2) {\n return _ref2.apply(this, arguments);\n };\n }())), [\n // Add custom themes if they're present\n _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var _preferences$UNSAFE_t;\n var _yield$import, getCustomThemeStyles, customThemeStyles;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(preferences !== 'all' && preferences !== null && preferences !== void 0 && preferences.UNSAFE_themeOptions && isValidBrandHex(preferences === null || preferences === void 0 || (_preferences$UNSAFE_t = preferences.UNSAFE_themeOptions) === null || _preferences$UNSAFE_t === void 0 ? void 0 : _preferences$UNSAFE_t.brandColor))) {\n _context2.next = 15;\n break;\n }\n _context2.prev = 1;\n _context2.next = 4;\n return import( /* webpackChunkName: \"@atlaskit-internal_atlassian-custom-theme\" */\n './custom-theme');\n case 4:\n _yield$import = _context2.sent;\n getCustomThemeStyles = _yield$import.getCustomThemeStyles;\n _context2.next = 8;\n return getCustomThemeStyles({\n colorMode: (preferences === null || preferences === void 0 ? void 0 : preferences.colorMode) || themeStateDefaults['colorMode'],\n UNSAFE_themeOptions: preferences === null || preferences === void 0 ? void 0 : preferences.UNSAFE_themeOptions\n });\n case 8:\n customThemeStyles = _context2.sent;\n return _context2.abrupt(\"return\", customThemeStyles);\n case 12:\n _context2.prev = 12;\n _context2.t0 = _context2[\"catch\"](1);\n return _context2.abrupt(\"return\", undefined);\n case 15:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[1, 12]]);\n }))()]));\n case 4:\n results = _context3.sent;\n return _context3.abrupt(\"return\", results.flat().filter(function (theme) {\n return theme !== undefined;\n }));\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return function getThemeStyles(_x) {\n return _ref.apply(this, arguments);\n };\n}();\nexport default getThemeStyles;","import { fg } from '@atlaskit/platform-feature-flags';\nimport { COLOR_MODE_ATTRIBUTE, CONTRAST_MODE_ATTRIBUTE } from './constants';\nimport { darkModeMediaQuery, moreContrastMediaQuery } from './utils/theme-loading';\n\n/**\n * Provides a script that, when executed before paint, sets the `data-color-mode` attribute based on the current system theme,\n * to enable SSR support for automatic theme switching, avoid a flash of un-themed content on first paint.\n *\n * @param {string} colorMode Determines which color theme is applied. If set to `auto`, the theme applied will be determined by the OS setting.\n *\n * @returns {string} A string to be added to the innerHTML of a script tag in the document head\n */\nvar getSSRAutoScript = function getSSRAutoScript(colorMode, contrastMode) {\n if (colorMode !== 'auto' && contrastMode !== 'auto') {\n return undefined;\n }\n var setColorMode = colorMode === 'auto' ? \"\\n try {\\n const darkModeMql = window.matchMedia('\".concat(darkModeMediaQuery, \"');\\n const colorMode = darkModeMql.matches ? 'dark' : 'light';\\n document.documentElement.setAttribute('\").concat(COLOR_MODE_ATTRIBUTE, \"', colorMode);\\n } catch (e) {}\") : '';\n var setContrastMode = contrastMode === 'auto' && fg('platform_increased-contrast-themes') ? \"\\n try {\\n const contrastModeMql = window.matchMedia('\".concat(moreContrastMediaQuery, \"');\\n const contrastMode = contrastModeMql.matches ? 'more' : 'no-preference';\\n document.documentElement.setAttribute('\").concat(CONTRAST_MODE_ATTRIBUTE, \"', contrastMode);\\n } catch (e) {}\") : '';\n return \"(() => {\".concat(setColorMode).concat(setContrastMode, \"})()\");\n};\nexport default getSSRAutoScript;","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { COLOR_MODE_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from './constants';\nimport { themeColorModes } from './theme-config';\nimport { themeStringToObject } from './theme-state-transformer';\nvar isThemeColorMode = function isThemeColorMode(colorMode) {\n return themeColorModes.find(function (mode) {\n return mode === colorMode;\n }) !== undefined;\n};\nvar getGlobalTheme = function getGlobalTheme() {\n if (typeof document === 'undefined') {\n return {};\n }\n var element = document.documentElement;\n var colorMode = element.getAttribute(COLOR_MODE_ATTRIBUTE) || '';\n var theme = element.getAttribute(THEME_DATA_ATTRIBUTE) || '';\n return _objectSpread(_objectSpread({}, themeStringToObject(theme)), isThemeColorMode(colorMode) && {\n colorMode: colorMode\n });\n};\nexport default getGlobalTheme;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { COLOR_MODE_ATTRIBUTE, THEME_DATA_ATTRIBUTE } from './constants';\nimport getGlobalTheme from './get-global-theme';\n/**\n * A MutationObserver which watches the `<html>` element for changes to the theme.\n *\n * In React, use the {@link useThemeObserver `useThemeObserver`} hook instead.\n *\n * @param {function} callback - A callback function which fires when the theme changes.\n *\n * @example\n * ```\n * const observer = new ThemeMutationObserver((theme) => {});\n * observer.observe();\n * ```\n */\nvar ThemeMutationObserver = /*#__PURE__*/function () {\n function ThemeMutationObserver(callback) {\n _classCallCheck(this, ThemeMutationObserver);\n _defineProperty(this, \"legacyObserver\", null);\n this.callback = callback;\n ThemeMutationObserver.callbacks.add(callback);\n }\n return _createClass(ThemeMutationObserver, [{\n key: \"observe\",\n value: function observe() {\n if (!ThemeMutationObserver.observer) {\n ThemeMutationObserver.observer = new MutationObserver(function () {\n var theme = getGlobalTheme();\n ThemeMutationObserver.callbacks.forEach(function (callback) {\n return callback(theme);\n });\n });\n // Observer only needs to be configured once\n ThemeMutationObserver.observer.observe(document.documentElement, {\n attributeFilter: [THEME_DATA_ATTRIBUTE, COLOR_MODE_ATTRIBUTE]\n });\n }\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n if (this.callback) {\n ThemeMutationObserver.callbacks.delete(this.callback);\n }\n if (ThemeMutationObserver.callbacks.size === 0 && ThemeMutationObserver.observer) {\n ThemeMutationObserver.observer.disconnect();\n ThemeMutationObserver.observer = null;\n }\n }\n }]);\n}();\n_defineProperty(ThemeMutationObserver, \"observer\", null);\n_defineProperty(ThemeMutationObserver, \"callbacks\", new Set());\nexport { ThemeMutationObserver as default };","const NAMESPACE = 'AJS';\nconst I18N_OBJECT_NAME = 'I18n';\n\nfunction initNamespace() {\n if (typeof window[NAMESPACE] !== 'object') {\n window[NAMESPACE] = {};\n }\n}\n\n/**\n * Makes given value available globally under window[NAMESPACE][name] attribute.\n * Keep in mind that this is needed for p2-plugin where chunks of AUI\n * can be loaded separately.\n *\n * In order for global namespace to work in `aui.prototyping.js` and\n * `aui.prototyping.nodeps.js` the proper exports need to be added to:\n * `packages/core/entry/aui.batch.prototyping.js`\n *\n * @param {string} name Name of the attribute\n * @param {any} value Value to expose globally\n * @returns exposed value\n */\nexport default function globalize(name, value) {\n initNamespace();\n\n return (window[NAMESPACE][name] = value);\n}\n\nexport function globalizeI18n(localI18n) {\n initNamespace();\n\n if (typeof window[NAMESPACE][I18N_OBJECT_NAME] !== 'object') {\n window[NAMESPACE][I18N_OBJECT_NAME] = {};\n }\n\n const globalI18n = window[NAMESPACE][I18N_OBJECT_NAME];\n\n for (const property in localI18n) {\n // AUI-5431 Add to global namespace, but do not override what is set by the WRM\n if (typeof globalI18n[property] === 'undefined') {\n globalI18n[property] = localI18n[property];\n }\n }\n\n return globalI18n;\n}\n","import { setGlobalTheme } from '@atlaskit/tokens';\n\nif (document.documentElement.hasAttribute('data-color-mode-auto')) {\n setGlobalTheme({ colorMode: 'auto' });\n}\n","import * as Tokens from '@atlaskit/tokens';\nimport globalize from '../internal/globalize';\n\nimport './design-tokens-init';\n\n// Export for NPM bundle, for which Webpack automatically puts those functions under AJS.DesignTokens\nexport const { setGlobalTheme } = Tokens;\n\n// Export for p2-plugin bundle, where we need to do put those functions under AJS.DesignTokens manually\nglobalize('DesignTokens', {\n setGlobalTheme,\n});\n"],"names":["root","factory","exports","module","define","amd","window","__assign","this","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","defineProperty","value","bindAll","bind_1","toOptions","capture","target","bindings","sharedOptions","unbinds","map","original","binding","options","getBinding","bind","forEach","unbind","_a","type","listener","addEventListener","removeEventListener","enumerable","get","bind_all_1","has","prefix","Events","EE","fn","context","once","addListener","emitter","event","TypeError","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","slice","getOwnPropertySymbols","concat","listeners","handlers","l","ee","Array","listenerCount","emit","a1","a2","a3","a4","a5","args","len","removeListener","undefined","j","on","removeAllListeners","off","prefixed","e","d","v","k","__esModule","regeneratorDefine","_regenerator","r","Symbol","iterator","o","toStringTag","c","Generator","u","f","y","G","a","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","displayName","w","m","regeneratorAsyncGen","next","then","regenerator","regeneratorAsyncIterator","Promise","OverloadYield","AsyncIterator","resolve","asyncIterator","_regeneratorDefine","_invoke","configurable","writable","unshift","pop","regeneratorAsync","regeneratorKeys","regeneratorValues","_regeneratorRuntime","constructor","stop","abrupt","delegateYield","resultName","finish","_t","prev","sent","wrap","reverse","isGeneratorFunction","mark","awrap","async","keys","values","_typeof","isNaN","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_b","_c","_getInstance","_getStatsigGlobalFlag","_getStatsigGlobal","Log_1","__STATSIG__","statsigGlobal","flag","sdkKey","gbl","instances","Log","warn","firstInstance","GLOBAL_KEY","_window","_global","g","_globalThis","instance","_getStorageKey","_getUserStorageKey","Hashing_1","user","customKeyGenerator","cids","customIDs","parts","userID","sort","leftKey","rightKey","localeCompare","key","join","_DJB2","__awaiter","thisArg","_arguments","P","generator","reject","fulfilled","step","rejected","result","_makeDataAdapterResult","DataAdapterCore","StableID_1","StatsigUser_1","StorageProvider_1","TypedJsonParse_1","source","data","stableID","receivedAt","Date","now","fullUserHash","_getFullUserHash","_adapterName","_cacheSuffix","_options","_sdkKey","_cacheLimit","_lastModifiedStoreKey","_inMemoryCache","InMemoryCache","attach","_network","getDataSync","normalized","_normalizeUser","cacheKey","_getCacheKey","inMem","_getIsCacheValueValid","cache","_loadFromCache","add","setData","current","StableID","_getSdkKey","_getDataAsyncImpl","Storage","isReady","isReadyResolver","ops","_fetchAndPrepFromNetwork","timeoutMs","setTimeout","debug","race","_prefetchDataImpl","cachedResult","cachedData","isCacheValidFor204","_isCachedResultValidFor204","latest","_fetchFromNetwork","response","_typedJsonParse","has_updates","_writeToCache","error","getItem","resultString","JSON","stringify","setItem","Error","Math","ceil","_runLocalStorageCacheEviction","cacheLimit","lastModifiedTimeMap","_getObjectFromStorage","evictableKeys","_getEvictableKeys","evictable","removeItem","_setObjectInStorage","_data","cached","provided","merge","limit","keyA","keyB","valueA","valueB","Diagnostics","MARKER_MAP","Map","ACT_START","ACT_END","DIAGNOSTICS_EVENT","_createMarker","action","timestamp","_addMarker","marker","markers","set","_safeGetField","field","_getMarkers","_markInitOverallStart","_markInitOverallEnd","success","evaluationDetails","message","_markInitNetworkReqStart","_markInitNetworkReqEnd","_markInitProcessStart","_markInitProcessEnd","_clearMarkers","delete","_formatError","code","_getDiagnosticsData","res","attempt","body","ok","statusCode","status","sdkRegion","headers","isDelta","includes","_enqueueDiagnosticsEvent","logger","sdk","overallInitDuration","latencyEvent","eventName","metadata","time","_makeDiagnosticsEvent","statsigOptions","enqueue","_fetchTxtRecords","FEATURE_ASSETS_DNS_QUERY","Uint8Array","DOMAIN_CHARS","networkFunc","method","Accept","err","arrayBuffer","input","start","findIndex","byte","index","String","fromCharCode","split","_parseDnsResponse","ErrorBoundary","EXCEPTION_ENDPOINT","SDKType_1","StatsigMetadata_1","UNKNOWN_ERROR","_resolveError","_getStatsigOptionLoggingCopy","loggingCopy","option","_emitter","_lastSeenError","_seen","Set","namePrefix","obj","proto","getOwnPropertyNames","filter","prop","from","_getAllInstanceMethodNames","_capture","$EB","_onError","logError","tag","getLastSeenErrorAndReset","tempError","attachErrorIfNoneExists","task","catch","_d","_e","_f","_g","unwrapped","isError","resolvedError","networkConfig","preventAllNetworkTraffic","sdkType","SDKType","_get","statsigMetadata","StatsigMetadataProvider","info","stack","_getDescription","exception","func","networkOverrideFunc","fetch","sdkVersion","impl","_error","EventLogger","CacheKey_1","NetworkConfig_1","SafeJs_1","StatsigEvent_1","StatsigOptionsCommon_1","UrlConfiguration_1","VisibilityObserving_1","EVENT_LOGGER_MAP","RetryFailedLogsTrigger","_safeFlushAndForget","flush","_safeRetryFailedLogs","_retryFailedLogs","_queue","_lastExposureTimeMap","_nonExposedChecks","_hasRunQuickFlush","_creationTime","_loggingEnabled","loggingEnabled","disableLogging","LoggingEnabledOption","disabled","browserOnly","_maxQueueSize","loggingBufferMaxSize","config","_logEventUrlConfig","UrlConfiguration","Endpoint","_rgstr","logEventUrl","api","logEventFallbackUrls","setLogEventCompressionMode","mode","setLoggingEnabled","storageKey","_shouldLogEvent","_normalizeAndAppendEvent","_quickFlushIfNeeded","incrementNonExposureCount","reset","isServerEnv","_isServerEnv","_subscribeToVisiblityChanged","visibility","_startBackgroundFlushInterval","_flushIntervalId","clearInterval","_appendAndResetNonExposedChecks","_sendEvents","_isExposureEvent","statsigEnvironment","userKey","previous","_saveFailedLogsToStorage","shouldUseBeacon","_isUnloading","isBeaconSupported","_sendEventsViaBeacon","_sendEventsViaPost","post","_getRequestData","beacon","urlConfig","retries","isCompressable","params","NetworkParam","EventCount","credentials","shift","savedEvents","_getFailedLogsFromStorage","retrieved","isArray","trigger","privateAttributes","extras","currentPage","_getCurrentPageUrl","final","checks","includeCurrentPageUrlWithEvents","_getCurrentPageUrlSafe","flushInterval","loggingIntervalMs","intervalId","setInterval","_getSortedObject","_DJB2Object","TypingUtils_1","hash","charCodeAt","maxLevels","object","maxDepth","sortedObject","_typeOf","LogLevel","addTag","None","Warn","Info","Debug","level","console","createMemoKey","MemoPrefix","_gate","_dynamicConfig","_experiment","_configList","_layer","_paramStore","EXIST_KEYS","DO_NOT_MEMO_KEYS","NetworkDefault","_initialize","_download_config_specs","SdkKey","SdkType","SdkVersion","Time","SessionID","StatsigEncoded","IsGzipped","NetworkCore","__StatsigGlobal_1","Diagnostics_1","NetworkFallbackResolver_1","SDKFlags_1","SessionID_1","StatsigClientEventEmitter_1","RETRYABLE_CODES","_errorBoundary","_timeout","_netConfig","_leakyBucket","_lastUsedInitUrl","networkTimeoutMs","_fallbackResolver","NetworkFallbackResolver","_getLogEventCompressionMode","logEventCompressionMode","setErrorBoundary","errorBoundary","navigator","sendBeacon","getLastUsedInitUrlAndReset","tempUrl","_ensureValidSdkKey","argsInternal","_getInternalRequestArgs","url","_getPopulatedURL","nav","_tryEncodeBody","_tryToCompressBody","_sendRequest","endpoint","_isRateLimited","currentAttempt","reqTimedOut","populatedUrl","keepalive","priority","_tryMarkInitStart","bucket","lastRequestTime","timeoutId","finally","clearTimeout","_","text","_tryMarkInitEnd","tryBumpExpiryTime","errorMessage","_getErrorMessage","timedOut","abortedByTimeout","tryFetchUpdatedFallbackInfo","fallbackUrl","getActiveFallbackUrl","ErrorTag","NetworkError","requestArgs","formattedErrorMsg","min","_exponentialBackoff","compressionMode","disableCompression","LogEventCompressionMode","Disabled","Enabled","count","elapsed","leakedRequests","floor","RATE_LIMIT_MAX_REQ_COUNT","max","getUrl","SDK_VERSION","query","encodeURIComponent","win","_getWindowSafe","isStatsigEncodable","disableStatsigEncoding","btoa","CompressionStream","TextEncoder","isProxy","customUrl","fallbackUrls","flagEnabled","SDKFlags","Forced","_allowCompression","bytes","encode","stream","writer","getWriter","write","close","reader","readable","getReader","chunks","read","totalLength","reduce","acc","chunk","combined","offset","_populateRequestBody","sessionID","_isDomainFailure","DnsTxtQuery_1","DEFAULT_TTL_MS","errorMsg","lowerErrorMsg","toLowerCase","_getFallbackInfoStorageKey","_tryWriteFallbackInfoToCache","hashKey","_fallbackInfo","_dnsQueryCooldowns","_networkOverrideFunc","expiryTime","parse","_readFallbackInfoFromCache","entry","getChecksum","urlConfigChecksum","urls","_tryFetchFallbackUrlsFromNetwork","newUrl","_pickNewFallbackUrl","_updateFallbackInfoWithNewUrl","newFallbackInfo","previousInfo","previousUrl","cooldown","records","path","urlString","URL","pathname","_extractPathFromUrl","defaultUrl","record","startsWith","endpointDnsKey","baseUrl","endsWith","currentFallbackInfo","previouslyUsed","currentFallbackUrl","found","loopUrl","FLAGMAP","setFlags","flags","flagKey","SDK_CLIENT","suffix","_setClientType","client","_setBindingType","_getUnloadEvent","_addDocumentEventListenerSafe","_addWindowEventListenerSafe","_getDocumentSafe","document","isNode","process","versions","node","EdgeRuntime","doc","location","href","StatsigSession","UUID_1","MAX_SESSION_IDLE_TIME","MAX_SESSION_AGE","PROMISE_MAP","_createSessionTimeout","duration","$emt","_getSessionIDStorageKey","_loadFromStorage","getUUID","startTime","lastUpdate","_loadSession","session","_isIdle","_hasRunTooLong","_persistToStorage","idleTimeoutID","ageTimeoutID","lifetime","_bumpSession","overrideInitialSessionID","override","_overrideSessionId","_fastApproxSizeOf","size","getCookieName","COOKIE_ENABLED_MAP","DISABLED_MAP","_getStableIDStorageKey","_persistToCookie","expiryDate","setFullYear","getFullYear","cookie","toUTCString","cookiesEnabled","randomID","random","toString","cookies","trim","decodeURIComponent","_loadFromCookie","setOverride","_setCookiesEnabled","_setDisabled","StatsigClientBase","ErrorBoundary_1","EventLogger_1","MemoKey_1","adapter","network","loadingStatus","_initializePromise","_listeners","logLevel","disableStorage","initialSessionID","storageProvider","_setProvider","enableCookies","disableStableID","_memoCache","overrideAdapter","_logger","dataAdapter","loadFromStorage","_primeReadyRipcord","inst","_assignGlobalInstance","updateRuntimeOptions","shutdown","_setStatus","indexOf","splice","$on","__isInternal","barrier","newStatus","_enqueueExposure","exposure","disableExposureLog","_memoize","disableEvaluationMemoization","memoKey","DataAdapterCachePrefix","_createLayerParameterExposure","_createConfigExposure","_mapExposures","_createGateExposure","CONFIG_EXPOSURE_NAME","GATE_EXPOSURE_NAME","LAYER_EXPOSURE_NAME","_createExposure","details","secondaryExposures","bootstrapMetadata","_addEvaluationDetailsToMetadata","exposures","exposureMapping","gate","gateValue","ruleID","__evaluation","version","secondary_exposures","passed","layer","parameterName","evaluation","isExplicit","explicit_parameters","allocatedExperiment","undelegated_secondary_exposures","allocated_experiment_name","parameterRuleIDs","parameter_rule_ids","isExplicitParameter","reason","lcut","additions","always","_makeTypedGet","_mergeOverride","_makeLayer","_makeExperiment","_makeDynamicConfig","_makeFeatureGate","_makeEvaluation","rule_id","exposeFunc","param","fallback","_isTypeMatch","idType","id_type","groupName","group_name","__value","overridden","UPDATE_DETAIL_ERROR_MESSAGES","createUpdateDetails","initDuration","sourceUrl","warnings","NO_NETWORK_DATA","fallbackEnvironment","copy","environment","tier","inMemoryStore","_inMemoryProvider","getProviderName","getAllKeys","_localStorageProvider","localStorage","_main","_current","_inMemoryBreaker","statsigKeys","newProvider","isDisabled","guard","typeName","b","typeOf","x","crypto","randomUUID","getTime","d2","performance","replace","ENDPOINT_DNS_KEY_MAP","customApi","defaultApi","fallbacks","_notifyVisibilityChanged","_isCurrentlyVisible","FOREGROUND","BACKGROUND","LISTENERS","isUnloading","visibilityState","__createBinding","k2","desc","getOwnPropertyDescriptor","__exportStar","_resolveDeltasResponse","client_core_1","_deleteEntriesInRecord","deltasString","deltas","hadBadDeltaChecksum","resolved","deleted_gates","feature_gates","deleted_configs","dynamic_configs","deleted_layers","layer_configs","_handleDeletedEntries","_mergeDeltasIntoCache","actualChecksum","checksumV2","badChecksum","badMergedConfigs","badFullResponse","deltas_full_response","_rawValues","_values","_source","_lcut","_receivedAt","_bootstrapMetadata","_warnings","clear","finalize","getValues","setValues","_extractBootstrapMetadata","_setWarningState","sdk_flags","getWarnings","getGate","_getDetailedStoreResult","getConfig","getConfigList","getLayer","getParamStore","param_stores","getSource","getExposureMapping","sdkInfo","generatorSDKInfo","lookup","_getDetails","bootstrapUser","userForComparison","analyticsOnlyMetadata","getCurrentSourceDetails","sourceDetails","isUnrecognized","EvaluationResponseDeltas_1","StatsigNetwork","super","_option","_initializeUrlConfig","initializeUrl","initializeFallbackUrls","fetchEvaluations","initializeHashAlgorithm","deltasResponseRequested","full_checksum","hasHashChanged","hash_used","sinceTime","previousDerivedFields","derived_fields","partialUserMatchSinceTime","_fetchEvaluations","_makeParamStoreGetter","NO_EXPOSURE_OPT","_shouldLogExposure","_shouldReturnFallback","paramName","param_type","ref_type","_getMappedStaticValue","getFeatureGate","gate_name","pass_value","fail_value","_getMappedGateValue","getDynamicConfig","config_name","param_name","_getMappedDynamicConfigValue","getExperiment","experiment_name","_getMappedExperimentValue","layer_name","_getMappedLayerValue","EvaluationStore_1","Network_1","ParamStoreGetterFactory_1","StatsigEvaluationsDataAdapter_1","StatsigClient","default","StatsigEvaluationsDataAdapter","_possibleFirstTouchMetadata","_getFeatureGateImpl","_getDynamicConfigImpl","_getExperimentImpl","_getConfigListImpl","_getLayerImpl","getParameterStore","_getParameterStoreImpl","_store","_user","_configureUser","_sdkInstanceID","plugins","plugin","initializeSync","updateUserSync","initializeAsync","_initializeAsyncImpl","_updateUserSyncImpl","_createErrorUpdateDetails","_resetForUser","_finalizeUpdate","disable","disableBackgroundCacheRefresh","_runPostUpdate","updateUserAsync","_updateUserAsyncImpl","initiator","getDataAsync","isUsingNetworkValues","getContext","sdkInstanceID","checkGate","logEvent","eventOrName","updateUserWithAnalyticsOnlyMetadata","originalUser","stableIdOverride","readyPromise","getGateOverride","getDynamicConfigOverride","dynamicConfig","experiment","getExperimentOverride","getLayerOverride","configuration","paramStore","__configuration","getParamStoreOverride","prefetchData","setDataLegacy","customUserCacheKeyFunc","StatsigClient_1","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","_classCallCheck","toPropertyKey","toPrimitive","Number","_defineProperties","_createClass","_defineProperty","_objectWithoutProperties","propertyIsEnumerable","_arrayLikeToArray","_unsupportedIterableToArray","test","_slicedToArray","asyncGeneratorStep","_asyncToGenerator","_next","_throw","ownKeys","_objectSpread","getOwnPropertyDescriptors","defineProperties","ALL_FEATURE_VALUES","Subscriptions","gateName","callback","_this","fireGateExposure","eventToValue","wrapCallback","experimentName","defaultValue","getExperimentValue","_this2","experimentEventName","fireExperimentExposure","_this3","_this4","isFedRamp","_global$location","global","env","MICROS_PERIMETER","UNSAFE_ATL_CONTEXT_BOUNDARY","matches","hostname","match","EvaluationReason","FeatureGateEnvironment","PerimeterType","_excluded","getOptionsWithDefaults","perimeter","FEDRAMP_MODERATE","COMMERCIAL","shallowEquals","objectA","objectB","aEntries","entries","bEntries","ascendingKeyOrder","_ref","_ref2","key1","key2","toStatsigUser","identifiers","customAttributes","custom","atlassianAccountId","migrateInitializationOptions","disableCurrentPageLogging","loggingIntervalMillis","localMode","eventLoggingApi","eventLoggingApiForRetries","disableLocalStorage","ignoreWindowUndefined","disableAllLogging","initTimeoutMs","disableNetworkKeepalive","overrideStableID","disableErrorLogging","disableAutoMetricsLogging","evaluationReasonMappings","_ref5","_ref6","migrateEvaluationDetails","_evaluationReasonMapp","_evaluationReasonMapp2","_details$receivedAt","reasonLower","find","_ref7","Unknown","migrateSecondaryExposures","DynamicConfig","configName","configValue","allocatedExperimentName","onDefaultValueFallback","_name","_ruleID","_secondaryExposures","_allocatedExperimentName","_evaluationDetails","_onDefaultValueFallback","typeGuard","_this$_onDefaultValue2","val","getValue","_this$_onDefaultValue","expectedType","actualType","fireExposure","_experiment$__evaluat","_experiment$__evaluat2","_experiment$groupName","Layer","layerValue","logParameterFunction","undelegatedSecondaryExposures","explicitParameters","_logParameterFunction","_value","_undelegatedSecondaryExposures","_explicitParameters","logAndReturn","_logLayerParameterExposure","_this$_logParameterFu","_layer$__evaluation$s","_layer$__evaluation","_layer$__evaluation$u","_layer$__evaluation2","_layer$__evaluation3","_layer$__evaluation4","CLIENT_VERSION","_possibleConstructorReturn","ReferenceError","_getPrototypeOf","_setPrototypeOf","_inherits","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_wrapNativeSuper","Wrapper","ResponseError","_Error","Fetcher","_fetchClientSdk","_callee","fetcherOptions","targetApp","_context","fetchRequest","t0","_x","_fetchExperimentValues","_callee2","requestBody","_context2","_x2","_x3","_x4","_handleResponseError","_callee3","_context3","_x5","_extractResponseBody","_callee4","_context4","_x6","serviceEnv","isolationContextId","Production","Staging","Development","apiUrl","getApiUrl","prodApiUrl","_fetchRequest","_callee5","fetchTimeout","abortSignal","abortController","_context5","getBaseUrl","useGatewayURL","fetchTimeoutMs","AbortSignal","timeout","AbortController","signal","abort","apiKey","handleResponseError","extractResponseBody","_x7","_x8","_x9","_x0","getWindowLocation","protocol","oasisMatch","isolatedMatch","NoFetchDataAdapter","_DataAdapterCore","bootstrapResult","_prefetchData","_getDataAsync","_fetchFromNetwork2","_result","_createForOfIteratorHelper","_n","F","return","LOCAL_OVERRIDE_REASON","LEGACY_LOCAL_STORAGE_KEY","djb2MapKey","kind","PersistentOverrideAdapter","localStorageKey","_overrides","gates","configs","layers","_djb2Map","_localStorageKey","json","_unused","merged","_len","allOverrides","_key","_i","_allOverrides","overrides","_i2","_Object$entries","_overrides$gates","_Object$entries$_i","_i3","_Object$entries2","_overrides$configs","_Object$entries2$_i","_i4","_Object$entries3","_overrides$layers","_Object$entries3$_i","_name2","_value2","storedOverrides","mergeOverrides","parseStoredOverrides","_unused2","_i5","_Object$values","_step","container","allKeys","_iterator","applyOverrides","_unused3","newOverrides","_i6","_Object$entries4","_Object$entries4$_i","containerName","_i7","_Object$entries5","_Object$entries5$_i","saveOverrides","_this$_overrides$gate","_getConfigOverride","_unused4","_this$_overrides$laye","_lookup$current$name","_FeatureGates","DEFAULT_CLIENT_KEY","Client","_ref$localStorageKey","statsigClient","subscriptions","anyUpdated","clientOptions","clientOptionsWithDefaults","initPromise","initOptions","init","initCompleted","initWithDefaults","totalTime","fireClientEvent","_initializeWithProvider","provider","setClientVersion","setApplyUpdateCallback","applyUpdateCallback","initWithProvider","getApiKey","experimentsResult","assertInitialized","setBootstrapData","experimentValues","statsigValuesUpdated","_analyticsWebClient","analyticsWebClient","attributes","clientVersion","sendOperationalEvent","actionSubject","tags","_initializeFromValues","initializeValues","_this5","_args3","initFromValues","_updateUser","fetchOptions","fetchOptionsWithDefaults","initializeValuesProducer","fetchExperimentValues","customAttributesFromFetch","updateUserUsingInitializeValuesProducer","_x1","_x10","_x11","_updateUserWithProvider","_this6","setProfile","getExperimentValues","_x12","_x13","_updateUserWithValues","_callee6","_args6","_context6","_x14","_x15","_waitUntilInitializeCompleted","_callee7","_context7","_options$fireGateExpo","hasCheckGateErrorOccurred","msg","_options$fireExperime","fromExperiment","hasGetExperimentErrorOccurred","hasGetExperimentValueErrorOccurred","layerName","_this$statsigClient$g","_this$statsigClient","overrideGate","removeGateOverride","overrideDynamicConfig","removeDynamicConfigOverride","setOverrides","getOverrides","removeAllOverrides","currentIdentifiers","currentAttributes","_this7","onGateUpdated","_options$fireGateExpo2","manuallyLogGateExposure","_this8","onExperimentValueUpdated","_options$fireExperime2","manuallyLogExperimentExposure","onAnyUpdated","_init","_callee8","fromValuesClientOptions","customAttributesFromResult","clientSdkKeyPromise","experimentValuesPromise","_yield$Promise$all","_yield$Promise$all2","experimentValuesResult","_context8","fetchClientSdk","clientSdkKey","all","_x16","_x17","_x18","_initWithProvider","_callee9","baseClientOptions","_yield$Promise$all3","_yield$Promise$all4","_context9","getClientSdkKey","_x19","_x20","_x21","_x22","_initFromValues","_callee0","_newClientOptions$net","newClientOptions","restClientOptions","_args0","_context0","initFromStoredOverrides","updateUserCompletionCallback","stableId","_x23","_x24","_x25","_updateUserUsingInitializeValuesProducer","_callee10","getInitializeValues","originalInitPromise","initializeValuesPromise","updateUserPromise","_this9","_context10","isCurrentUser","updateStatsigClientUser","_callee1","_context1","_x26","_x27","_x28","_updateStatsigClientUser","_callee11","_this$initOptions","_this$initOptions$upd","_updateUserCompletion","_ref4","errMsg","_context11","t1","_x29","_x30","_x31","_options$fireLayerExp","fireLayerExposure","fromLayer","hasGetLayerErrorOccurred","hasGetLayerValueErrorOccurred","FeatureGates","isGateExist","isExperimentExist","__CRITERION__","getFeatureFlagOverride","overrideValue","getExperimentValueOverride","initializeCalled","initializeCompleted","waitUntilInitializeCompleted","initialize","initializeWithProvider","initializeFromValues","manuallyLogLayerExposure","shutdownStatsig","clearGateOverride","overrideConfig","clearConfigOverride","clearAllOverrides","updateUser","updateUserWithProvider","updateUserWithValues","getPackageVersion","getLayerValue","boundFGJS","__FEATUREGATES_JS__","_boundFGJS","_boundFGJS$getPackage","boundVersion","_process","_process2","DEBUG_MODE","JEST_WORKER_ID","NODE_ENV","PFF_GLOBAL_KEY","hasProcessEnv","ENABLE_GLOBAL_PLATFORM_FF_OVERRIDE","DEFAULT_PFF_GLOBAL","booleanResolver","globalVar","resolveBooleanFlag","_console","_globalVar$PFF_GLOBAL","_globalVar$PFF_GLOBAL2","_globalVar$PFF_GLOBAL3","fg","themeColorModes","themeIds","themeIdsWithOverrides","themeStateDefaults","colorMode","contrastMode","dark","light","shape","spacing","typography","UNSAFE_themeOptions","id","palette","extends","increasesContrastFor","THEME_DATA_ATTRIBUTE","COLOR_MODE_ATTRIBUTE","CONTRAST_MODE_ATTRIBUTE","CUSTOM_THEME_ATTRIBUTE","TOKEN_NOT_FOUND_CSS_VAR","CURRENT_SURFACE_CSS_VAR","token","tokenId","tokenValue","getComputedStyle","documentElement","getPropertyValue","isValidBrandHex","hex","themeKinds","customThemeOptions","isThemeKind","themeKind","isThemeIds","themeId","isColorMode","modeId","themeStringToObject","themeState","theme","themeObject","themeObjectToString","themeString","_ref3","str","Uint32Array","_ref$colorMode","_ref$dark","_ref$light","_ref$contrastMode","_ref$shape","_ref$spacing","_ref$typography","_ref$UNSAFE_themeOpti","themeAttribute","brandColor","optionString","uniqueId","light-future","dark-future","legacy-light","legacy-dark","typography-adg3","typography-modernized","typography-refreshed","loadAndAppendThemeCss","themeCss","style","head","querySelector","loadThemeCss","createElement","textContent","dataset","appendChild","_yield$themeImportMap","darkModeMediaQuery","moreContrastMediaQuery","checkNativeListener","setAttribute","darkModeMql","matchMedia","ColorModeObserver","unbindThemeChangeListener","contrastModeMql","ContrastModeObserver","unbindContrastChangeListener","configurePage","getColorMode","getContrastMode","themeAttributes","_toConsumableArray","findMissingCustomStyleElements","attrOfMissingCustomStyles","element","getIncreasedContrastTheme","_Object$entries$find","getThemePreferences","autoColorModeThemes","themePreferences","normalTheme","increasedContrastTheme","getThemeOverridePreferences","_themeState","_ref2$colorMode","_ref2$contrastMode","_ref2$dark","_ref2$light","_ref2$shape","_ref2$spacing","_ref2$typography","_ref2$UNSAFE_themeOpt","themeLoader","loadingStrategy","loadingTasks","themeOverridePreferences","autoUnbind","_yield$import","loadAndAppendCustomThemeCss","preferences","results","css","attrs","_preferences$UNSAFE_t","getCustomThemeStyles","customThemeStyles","flat","setColorMode","setContrastMode","getAttribute","isThemeColorMode","ThemeMutationObserver","callbacks","observer","MutationObserver","observe","attributeFilter","disconnect","NAMESPACE","initNamespace","hasAttribute","setGlobalTheme","Tokens"],"sourceRoot":""}
|