statsig-sidecar-v2-beta 2.0.11 → 2.2.0

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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/TypingUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/Log.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/Hashing.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/CacheKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/VisibilityObserving.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SafeJs.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/NetworkFallbackResolver.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SDKType.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/NetworkCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/Diagnostics.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/UrlConfiguration.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigTypeFactories.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigUpdateDetails.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigUser.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StableID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StorageProvider.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/UUID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigDataAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/ErrorBoundary.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/StatsigEvaluationsDataAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/OverrideAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/NetworkConfig.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StableID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/VisibilityObserving.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SessionID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/EventLogger.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/Network.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/InitializeResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigUpdateDetails.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigPlugin.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/Log.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/VisibilityObserving.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SizeOf.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigDataAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/Hashing.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/EventLogger.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/Hashing.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/NetworkConfig.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/payloadUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StorageProvider.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/TypingUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/Diagnostics.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigClientBase.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/ErrorBoundary.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/OverrideAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigTypeFactories.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigOptionsCommon.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/CacheKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigUser.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/NetworkCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SDKType.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SafeJs.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/UUID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/TypingUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EventLogger.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SDKType.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SDKFlags.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SizeOf.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SessionID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/EvaluationResponseDeltas.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SafeJs.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/EvaluationTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigUser.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/Utils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SDKFlags.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/OverrideAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigOptionsCommon.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/ErrorBoundary.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/UrlOverrides.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EvaluationTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/UUID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/InitializeResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/MemoKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigClientBase.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/UrlConfiguration.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/AutoCapture.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/CacheKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/EvaluationStore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/StatsigClient.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigOptionsCommon.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/Log.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/NetworkCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigDataAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StorageProvider.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/DnsTxtQuery.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/NetworkConfig.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/Diagnostics.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StableID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigPlugin.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/DnsTxtQuery.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigClientBase.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/MemoKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/EvaluationTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/NetworkFallbackResolver.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/InitializeResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SessionID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigTypeFactories.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/src/LocalOverrideAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/ParamStoreGetterFactory.js","webpack://statsig-sidecar-v2-beta/webpack/bootstrap","webpack://statsig-sidecar-v2-beta/webpack/runtime/compat get default export","webpack://statsig-sidecar-v2-beta/webpack/runtime/define property getters","webpack://statsig-sidecar-v2-beta/webpack/runtime/global","webpack://statsig-sidecar-v2-beta/webpack/runtime/hasOwnProperty shorthand","webpack://statsig-sidecar-v2-beta/./src/index.js"],"sourcesContent":["\"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\";\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\";\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._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 });\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 });\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._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;\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 });\nexports.ErrorTag = void 0;\nexports.ErrorTag = {\n NetworkError: 'NetworkError',\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\";\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 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 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(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\";\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;\n }\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 },\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\";\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._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 });\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 });\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.runStatsigAutoCapture = exports.AutoCapture = void 0;\nconst AutoCapture_1 = require(\"./AutoCapture\");\nObject.defineProperty(exports, \"AutoCapture\", { enumerable: true, get: function () { return AutoCapture_1.AutoCapture; } });\nObject.defineProperty(exports, \"runStatsigAutoCapture\", { enumerable: true, get: function () { return AutoCapture_1.runStatsigAutoCapture; } });\n__STATSIG__ = Object.assign(Object.assign({}, (__STATSIG__ !== null && __STATSIG__ !== void 0 ? __STATSIG__ : {})), { AutoCapture: AutoCapture_1.AutoCapture,\n runStatsigAutoCapture: AutoCapture_1.runStatsigAutoCapture });\nexports.default = __STATSIG__;\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) {\n try {\n const copy = JSON.parse(JSON.stringify(original));\n if (options != null && options.environment != null) {\n copy.statsigEnvironment = options.environment;\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.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\";\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(get) {\n try {\n return get();\n }\n catch (error) {\n if (error instanceof Error && error.name === 'SecurityError') {\n exports.Storage._setProvider(_inMemoryProvider);\n return null;\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) => _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\";\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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.DataAdapterCachePrefix = void 0;\nexports.DataAdapterCachePrefix = 'statsig.cached';\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\";\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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.NetworkParam = exports.NetworkDefault = void 0;\nexports.NetworkDefault = {\n eventsApi: 'https://prodregistryv2.org/v1',\n initializeApi: 'https://featureassets.org/v1',\n specsApi: 'https://assetsconfigcdn.org/v1',\n};\nvar NetworkParam;\n(function (NetworkParam) {\n NetworkParam[\"EventCount\"] = \"ec\";\n NetworkParam[\"SdkKey\"] = \"k\";\n NetworkParam[\"SdkType\"] = \"st\";\n NetworkParam[\"SdkVersion\"] = \"sv\";\n NetworkParam[\"Time\"] = \"t\";\n NetworkParam[\"SessionID\"] = \"sid\";\n NetworkParam[\"StatsigEncoded\"] = \"se\";\n NetworkParam[\"IsGzipped\"] = \"gz\";\n})(NetworkParam || (exports.NetworkParam = NetworkParam = {}));\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.StableID = void 0;\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Log_1 = require(\"./Log\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UUID_1 = require(\"./UUID\");\nconst PROMISE_MAP = {};\nexports.StableID = {\n get: (sdkKey) => {\n if (PROMISE_MAP[sdkKey] == null) {\n let stableID = _loadFromStorage(sdkKey);\n if (stableID == null) {\n stableID = (0, UUID_1.getUUID)();\n _persistToStorage(stableID, sdkKey);\n }\n PROMISE_MAP[sdkKey] = stableID;\n }\n return PROMISE_MAP[sdkKey];\n },\n setOverride: (override, sdkKey) => {\n PROMISE_MAP[sdkKey] = override;\n _persistToStorage(override, sdkKey);\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');\n }\n}\nfunction _loadFromStorage(sdkKey) {\n const storageKey = _getStableIDStorageKey(sdkKey);\n return (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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._addWindowEventListenerSafe)('beforeunload', () => {\n isUnloading = true;\n (0, exports._notifyVisibilityChanged)(BACKGROUND);\n});\n(0, SafeJs_1._addDocumentEventListenerSafe)('visibilitychange', () => {\n (0, exports._notifyVisibilityChanged)(document.visibilityState === 'visible' ? FOREGROUND : BACKGROUND);\n});\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\";\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 // 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 (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\";\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.20.3';\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 });\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 });\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._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\";\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 _getStatsigGlobal = () => {\n return __STATSIG__ ? __STATSIG__ : statsigGlobal;\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 return gbl.lastInstance;\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 });\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.DataAdapterCachePrefix = void 0;\nexports.DataAdapterCachePrefix = 'statsig.cached';\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 (typeof result === 'object' &&\n guard in result) {\n return result;\n }\n return result;\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._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\";\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 // 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 (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 });\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 });\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._gatherPageViewPayload = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nfunction _gatherPageViewPayload(url) {\n var _a, _b;\n const safeDoc = (0, client_core_1._getDocumentSafe)();\n const safeWnd = (0, client_core_1._getWindowSafe)();\n if (!safeDoc || !safeWnd) {\n return {};\n }\n const navigator = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator;\n const referrer = (safeDoc === null || safeDoc === void 0 ? void 0 : safeDoc.referrer) || '';\n let refUrl = new URL('empty:');\n if (referrer) {\n try {\n refUrl = new URL(referrer || 'empty:');\n }\n catch (e) {\n /* empty */\n }\n }\n const searchInfo = getSearchInfo(refUrl);\n const campaignParams = getCampaignParams(url);\n const queryParams = {};\n url.searchParams.forEach((v, k) => {\n queryParams[k] = v;\n });\n return Object.assign(Object.assign(Object.assign(Object.assign({}, searchInfo), campaignParams), queryParams), { title: (safeDoc === null || safeDoc === void 0 ? void 0 : safeDoc.title) || '', locale: (navigator === null || navigator === void 0 ? void 0 : navigator.language) || 'unknown', hostname: url.hostname || 'unknown', pathname: url.pathname || 'unknown', referrer, screen_width: ((_a = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.screen) === null || _a === void 0 ? void 0 : _a.width) || 'unknown', screen_height: ((_b = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.screen) === null || _b === void 0 ? void 0 : _b.height) || 'unknown', viewport_width: (safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerWidth) || 'unknown', viewport_height: (safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerHeight) || 'unknown' });\n}\nexports._gatherPageViewPayload = _gatherPageViewPayload;\nfunction getCampaignParams(url) {\n const urlParams = url.searchParams;\n const campaignParams = {};\n const commonUtms = [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_term',\n 'utm_content',\n 'gclid', // Google\n 'gclsrc', // Google\n 'dclid', // DoubleClick\n 'fbclid', // Facebook\n 'msclkid', // Bing\n 'mc_eid', // Mailchimp\n 'mc_cid', // Mailchimp\n 'twclid', // Twitter\n 'li_fat_id', // LinkedIn\n 'igshid', // Instagram\n 'utm_id', // Hubspot\n 'ttc', // TikTok\n 'ttclid', // TikTok\n 'ttc_id', // TikTok\n ];\n commonUtms.forEach((p) => {\n const val = urlParams.get(p);\n if (val) {\n campaignParams[p] = val;\n }\n });\n return campaignParams;\n}\nfunction getSearchEngine(refUrl) {\n const host = refUrl.hostname;\n const engine = ['google', 'bing', 'yahoo', 'duckduckgo', 'baidu'].find((e) => host.includes(e + '.'));\n return engine || '';\n}\nfunction getSearchInfo(refUrl) {\n const searchEngine = getSearchEngine(refUrl);\n const searchQuery = refUrl.searchParams.get(searchEngine === 'yahoo' ? 'p' : 'q') || '';\n return { searchEngine, searchQuery };\n}\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._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.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.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 SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nclass StatsigClientBase {\n constructor(sdkKey, adapter, network, options) {\n var _a, _b;\n this.loadingStatus = 'Uninitialized';\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 this._sdkKey = sdkKey;\n this._options = options !== null && options !== void 0 ? options : {};\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(network);\n this._errorBoundary.wrap(adapter);\n this._errorBoundary.wrap(this._logger);\n if (!(0, SafeJs_1._isServerEnv)()) {\n const statsigGlobal = (0, __StatsigGlobal_1._getStatsigGlobal)();\n const instances = (_b = statsigGlobal.instances) !== null && _b !== void 0 ? _b : {};\n const inst = this;\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 statsigGlobal.lastInstance = inst;\n statsigGlobal.instances = instances;\n __STATSIG__ = statsigGlobal;\n }\n this.dataAdapter = adapter;\n this.dataAdapter.attach(sdkKey, options);\n this.storageProvider = StorageProvider_1.Storage;\n this._primeReadyRipcord();\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.disableLogging != null) {\n this._options.disableLogging = options.disableLogging;\n this._logger.setLoggingDisabled(options.disableLogging);\n }\n if (options.disableStorage != null) {\n this._options.disableStorage = options.disableStorage;\n StorageProvider_1.Storage._setDisabled(options.disableStorage);\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 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.$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}\nexports.StatsigClientBase = StatsigClientBase;\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) {\n this._sdkKey = _sdkKey;\n this._options = _options;\n this._emitter = _emitter;\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 _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 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, { name: 'error', error });\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 = JSON.stringify(Object.assign({ tag, exception: name, info }, 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,\n });\n (_g = this._emitter) === null || _g === void 0 ? void 0 : _g.call(this, { name: 'error', error });\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 _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}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 });\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 });\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 });\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 });\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\";\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 SDKType_1 = require(\"./SDKType\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst DEFAULT_TIMEOUT_MS = 10000;\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._timeout = DEFAULT_TIMEOUT_MS;\n this._netConfig = {};\n this._options = {};\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 }\n post(args) {\n return __awaiter(this, void 0, void 0, function* () {\n let body = yield this._getPopulatedBody(args);\n if (args.isStatsigEncodable) {\n body = this._attemptToEncodeString(args, body);\n }\n return this._sendRequest(Object.assign({ method: 'POST', body }, args));\n });\n }\n get(args) {\n return this._sendRequest(Object.assign({ method: 'GET' }, args));\n }\n isBeaconSupported() {\n return (typeof navigator !== 'undefined' &&\n typeof navigator.sendBeacon === 'function');\n }\n beacon(args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!_ensureValidSdkKey(args)) {\n return false;\n }\n const body = yield this._getPopulatedBody(args);\n const url = yield this._getPopulatedURL(args);\n const nav = navigator;\n return nav.sendBeacon.bind(nav)(url, body);\n });\n }\n _sendRequest(args) {\n var _a, _b, _c;\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 currentAttempt = attempt !== null && attempt !== void 0 ? attempt : 1;\n const controller = typeof AbortController !== 'undefined' ? new AbortController() : null;\n const handle = setTimeout(() => controller === null || controller === void 0 ? void 0 : controller.abort(`Timeout of ${this._timeout}ms expired.`), this._timeout);\n const url = yield 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: controller === null || controller === void 0 ? void 0 : controller.signal,\n priority: args.priority,\n keepalive,\n };\n if (args.isInitialize) {\n Diagnostics_1.Diagnostics._markInitNetworkReqStart(args.sdkKey, {\n attempt: currentAttempt,\n });\n }\n const func = (_a = this._netConfig.networkOverrideFunc) !== null && _a !== void 0 ? _a : fetch;\n response = yield func(url, config);\n clearTimeout(handle);\n if (!response.ok) {\n const text = yield response.text().catch(() => 'No Text');\n const err = new Error(`NetworkError: ${url} ${text}`);\n err.name = 'NetworkError';\n throw err;\n }\n const text = yield response.text();\n if (args.isInitialize) {\n Diagnostics_1.Diagnostics._markInitNetworkReqEnd(args.sdkKey, Diagnostics_1.Diagnostics._getDiagnosticsData(response, currentAttempt, text));\n }\n return {\n body: text,\n code: response.status,\n };\n }\n catch (error) {\n const errorMessage = _getErrorMessage(controller, error);\n if (args.isInitialize) {\n Diagnostics_1.Diagnostics._markInitNetworkReqEnd(args.sdkKey, Diagnostics_1.Diagnostics._getDiagnosticsData(response, currentAttempt, '', error));\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, { name: 'error', error });\n Log_1.Log.error(`A networking error occured during ${method} request to ${url}.`, errorMessage, error);\n return null;\n }\n return this._sendRequest(Object.assign(Object.assign({}, args), { retries: retries, attempt: currentAttempt + 1 }));\n }\n });\n }\n _getPopulatedURL(args) {\n return __awaiter(this, void 0, void 0, function* () {\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]: yield 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 `${args.url}${query ? `?${query}` : ''}`;\n });\n }\n _getPopulatedBody(args) {\n return __awaiter(this, void 0, void 0, function* () {\n const { data, sdkKey } = 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 return JSON.stringify(Object.assign(Object.assign({}, data), { statsigMetadata: Object.assign(Object.assign({}, StatsigMetadata_1.StatsigMetadataProvider.get()), { stableID,\n sessionID,\n sdkType }) }));\n });\n }\n _attemptToEncodeString(args, input) {\n var _a, _b;\n const win = (0, SafeJs_1._getWindowSafe)();\n if (!args.isStatsigEncodable ||\n this._options.disableStatsigEncoding ||\n (0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-encode') != null ||\n !(win === null || win === void 0 ? void 0 : win.btoa)) {\n return input;\n }\n try {\n const result = (_a = win.btoa(input).split('').reverse().join('')) !== null && _a !== void 0 ? _a : input;\n args.params = Object.assign(Object.assign({}, ((_b = args.params) !== null && _b !== void 0 ? _b : {})), { [NetworkConfig_1.NetworkParam.StatsigEncoded]: '1' });\n return result;\n }\n catch (_c) {\n Log_1.Log.warn('/initialize request encoding failed');\n return input;\n }\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};\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}\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.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 });\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._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\";\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","\"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 StorageProvider_1 = require(\"./StorageProvider\");\nconst UrlOverrides_1 = require(\"./UrlOverrides\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst DEFAULT_QUEUE_SIZE = 50;\nconst DEFAULT_FLUSH_INTERVAL_MS = 10000;\nconst MAX_DEDUPER_KEYS = 1000;\nconst DEDUPER_WINDOW_DURATION_MS = 60000;\nconst MAX_FAILED_LOGS = 500;\nconst QUICK_FLUSH_WINDOW_MS = 200;\nconst EVENT_LOGGER_MAP = {};\nconst _safeFlushAndForget = (sdkKey) => {\n var _a;\n (_a = EVENT_LOGGER_MAP[sdkKey]) === null || _a === void 0 ? void 0 : _a.flush().catch(() => {\n // noop\n });\n};\nclass EventLogger {\n constructor(_sdkKey, _emitter, _network, _options) {\n var _a;\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._isLoggingDisabled = (_options === null || _options === void 0 ? void 0 : _options.disableLogging) === true;\n this._maxQueueSize = (_a = _options === null || _options === void 0 ? void 0 : _options.loggingBufferMaxSize) !== null && _a !== void 0 ? _a : DEFAULT_QUEUE_SIZE;\n const config = _options === null || _options === void 0 ? void 0 : _options.networkConfig;\n this._logEventUrl = (0, UrlOverrides_1._getOverridableUrl)(config === null || config === void 0 ? void 0 : config.logEventUrl, config === null || config === void 0 ? void 0 : config.api, '/rgstr', NetworkConfig_1.NetworkDefault.eventsApi);\n }\n setLoggingDisabled(isDisabled) {\n this._isLoggingDisabled = isDisabled;\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 _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 if ((0, SafeJs_1._isServerEnv)()) {\n return; // do not run in server environments\n }\n EVENT_LOGGER_MAP[this._sdkKey] = this;\n (0, VisibilityObserving_1._subscribeToVisiblityChanged)((visibility) => {\n if (visibility === 'background') {\n _safeFlushAndForget(this._sdkKey);\n }\n });\n this._retryFailedLogs();\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 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 return 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(() => _safeFlushAndForget(this._sdkKey), QUICK_FLUSH_WINDOW_MS);\n }\n _shouldLogEvent(event) {\n if ((0, SafeJs_1._isServerEnv)()) {\n return false; // do not run in server environments\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 ].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._isLoggingDisabled) {\n this._saveFailedLogsToStorage(events);\n return;\n }\n try {\n const isInBackground = !(0, VisibilityObserving_1._isCurrentlyVisible)();\n const shouldUseBeacon = isInBackground &&\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 const response = shouldUseBeacon\n ? yield this._sendEventsViaBeacon(events)\n : yield this._sendEventsViaPost(events);\n if (response.success) {\n this._emitter({\n name: 'logs_flushed',\n events,\n });\n }\n else {\n this._saveFailedLogsToStorage(events);\n }\n }\n catch (_c) {\n Log_1.Log.warn('Failed to flush events.');\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 __awaiter(this, void 0, void 0, function* () {\n return {\n success: yield this._network.beacon(this._getRequestData(events)),\n };\n });\n }\n _getRequestData(events) {\n return {\n sdkKey: this._sdkKey,\n data: {\n events,\n },\n url: this._logEventUrl,\n retries: 3,\n isCompressable: true,\n params: {\n [NetworkConfig_1.NetworkParam.EventCount]: String(events.length),\n },\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() {\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 StorageProvider_1.Storage.removeItem(storageKey);\n yield this._sendEvents(events);\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._flushIntervalId !== intervalId) {\n clearInterval(intervalId);\n }\n else {\n _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.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.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._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\";\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.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) {\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 return __awaiter(this, void 0, void 0, function* () {\n let cachedData = null;\n if (cachedResult && this._isCachedResultValidFor204(cachedResult, user)) {\n cachedData = cachedResult.data;\n }\n const latest = yield this._fetchFromNetwork(cachedData, user, options);\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}\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.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._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 });\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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._getSafeNetworkInformation = exports._registerEventHandler = exports._getSanitizedPageUrl = exports._getSafeUrl = exports._shouldLogEvent = exports._getTargetNode = exports._gatherEventData = exports._gatherDatasetProperties = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nfunction _gatherDatasetProperties(el) {\n const dataset = {};\n if (!el) {\n return dataset;\n }\n const attr = el === null || el === void 0 ? void 0 : el.dataset;\n if (!attr) {\n return dataset;\n }\n for (const key in attr) {\n dataset[`data-${key}`] = attr[key] || '';\n }\n return dataset;\n}\nexports._gatherDatasetProperties = _gatherDatasetProperties;\nfunction _gatherEventData(target) {\n var _a;\n const tagName = target.tagName.toLowerCase();\n const metadata = {};\n const value = (0, client_core_1._getCurrentPageUrlSafe)() || '';\n metadata['tagName'] = tagName;\n if (tagName === 'form') {\n metadata['action'] = target.getAttribute('action');\n metadata['method'] = (_a = target.getAttribute('method')) !== null && _a !== void 0 ? _a : 'GET';\n metadata['formName'] = target.getAttribute('name');\n metadata['formId'] = target.getAttribute('id');\n }\n if (['input', 'select', 'textarea'].includes(tagName) &&\n target.getAttribute('type') !== 'password') {\n metadata['content'] = target.value;\n metadata['inputName'] = target.getAttribute('name');\n }\n const anchor = _getAnchorNodeInHierarchy(target);\n if (anchor) {\n metadata['href'] = anchor.getAttribute('href');\n }\n if (tagName === 'button' || anchor) {\n metadata['content'] = (target.textContent || '').trim();\n const dataset = _gatherDatasetProperties(anchor || target);\n Object.assign(metadata, dataset);\n }\n return { value, metadata };\n}\nexports._gatherEventData = _gatherEventData;\nfunction _getTargetNode(e) {\n if (!e) {\n return null;\n }\n let target = e.target || e.srcElement;\n if (!target || !(target instanceof Element)) {\n return null;\n }\n if (target.nodeType === 3) {\n target = (target.parentNode || null);\n }\n return target;\n}\nexports._getTargetNode = _getTargetNode;\nfunction _shouldLogEvent(e, el) {\n if (!e || !el || el.nodeType !== 1) {\n return false;\n }\n const tagName = el.tagName.toLowerCase();\n const eventType = e.type.toLowerCase();\n switch (tagName) {\n case 'html':\n return false;\n case 'form':\n return eventType === 'submit';\n case 'input':\n case 'select':\n case 'textarea':\n return ['change'].includes(eventType);\n default:\n if (eventType === 'click') {\n if (tagName === 'button') {\n return true;\n }\n const anchor = _getAnchorNodeInHierarchy(el);\n if (anchor) {\n return true;\n }\n }\n return false;\n }\n}\nexports._shouldLogEvent = _shouldLogEvent;\nfunction _getSafeUrl() {\n var _a, _b, _c;\n const href = (_c = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.href) !== null && _c !== void 0 ? _c : '';\n let url;\n try {\n url = new URL(href);\n }\n catch (e) {\n url = new URL('error:');\n }\n return url;\n}\nexports._getSafeUrl = _getSafeUrl;\nfunction _getSanitizedPageUrl() {\n return (0, client_core_1._getCurrentPageUrlSafe)() || '';\n}\nexports._getSanitizedPageUrl = _getSanitizedPageUrl;\nfunction _registerEventHandler(element, eventType, handler) {\n if (!element || !element.addEventListener) {\n return;\n }\n element.addEventListener(eventType, handler, true);\n}\nexports._registerEventHandler = _registerEventHandler;\nfunction _getSafeNetworkInformation() {\n const win = (0, client_core_1._getWindowSafe)();\n if (!win || !win.navigator) {\n return null;\n }\n const connection = win.navigator.connection;\n if (!connection) {\n return null;\n }\n return connection;\n}\nexports._getSafeNetworkInformation = _getSafeNetworkInformation;\nfunction _getAnchorNodeInHierarchy(node) {\n if (!node) {\n return null;\n }\n let parent = node;\n while (parent) {\n const parentTagName = parent.tagName.toLowerCase();\n if (['body', 'document'].includes(parentTagName)) {\n return null;\n }\n if (parent.tagName.toLowerCase() === 'a') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n}\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.0.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\";\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 });\nexports._getOverridableUrl = void 0;\nfunction _getOverridableUrl(overrideUrl, overrideApi, defaultEndpoint, defaultApi) {\n if (overrideUrl) {\n return overrideUrl;\n }\n else if (overrideApi) {\n return `${overrideApi}${defaultEndpoint}`;\n }\n else {\n return `${defaultApi}${defaultEndpoint}`;\n }\n}\nexports._getOverridableUrl = _getOverridableUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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.Diagnostics = exports.Log = exports.Storage = exports.EventLogger = void 0;\n/** Statsig Global should go first */\nrequire(\"./$_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(\"./NetworkCore\"), exports);\n__exportStar(require(\"./NetworkConfig\"), 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(\"./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(\"./UrlOverrides\"), exports);\n__exportStar(require(\"./UUID\"), exports);\n__exportStar(require(\"./VisibilityObserving\"), exports);\n__STATSIG__ = Object.assign(Object.assign({}, (__STATSIG__ !== null && __STATSIG__ !== void 0 ? __STATSIG__ : {})), { Log: Log_1.Log,\n SDK_VERSION: StatsigMetadata_1.SDK_VERSION });\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 && 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);\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 _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' }));\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);\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.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 });\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\";\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.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._createLayerParameterExposure = exports._createConfigExposure = 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 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 || eventName === CONFIG_EXPOSURE_NAME;\n};\nexports._isExposureEvent = _isExposureEvent;\nconst _createGateExposure = (user, gate) => {\n var _a, _b;\n return _createExposure(GATE_EXPOSURE_NAME, user, gate.details, {\n gate: gate.name,\n gateValue: String(gate.value),\n ruleID: gate.ruleID,\n }, (_b = (_a = gate.__evaluation) === null || _a === void 0 ? void 0 : _a.secondary_exposures) !== null && _b !== void 0 ? _b : []);\n};\nexports._createGateExposure = _createGateExposure;\nconst _createConfigExposure = (user, config) => {\n var _a, _b;\n return _createExposure(CONFIG_EXPOSURE_NAME, user, config.details, {\n config: config.name,\n ruleID: config.ruleID,\n }, (_b = (_a = config.__evaluation) === null || _a === void 0 ? void 0 : _a.secondary_exposures) !== null && _b !== void 0 ? _b : []);\n};\nexports._createConfigExposure = _createConfigExposure;\nconst _createLayerParameterExposure = (user, layer, parameterName) => {\n var _a, _b, _c;\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 return _createExposure(LAYER_EXPOSURE_NAME, user, layer.details, {\n config: layer.name,\n parameterName,\n ruleID: layer.ruleID,\n allocatedExperiment,\n isExplicitParameter: String(isExplicit),\n }, secondaryExposures);\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AutoCapture = exports.runStatsigAutoCapture = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst Utils_1 = require(\"./Utils\");\nconst payloadUtils_1 = require(\"./payloadUtils\");\nfunction runStatsigAutoCapture(client) {\n return new AutoCapture(client);\n}\nexports.runStatsigAutoCapture = runStatsigAutoCapture;\nclass AutoCapture {\n constructor(_client) {\n var _a, _b, _c;\n this._client = _client;\n this._startTime = Date.now();\n this._deepestScroll = 0;\n this._disabledEvents = {};\n const { sdkKey, errorBoundary, values } = _client.getContext();\n this._disabledEvents = (_b = (_a = values === null || values === void 0 ? void 0 : values.auto_capture_settings) === null || _a === void 0 ? void 0 : _a.disabled_events) !== null && _b !== void 0 ? _b : {};\n this._errorBoundary = errorBoundary;\n this._errorBoundary.wrap(this);\n const doc = (0, client_core_1._getDocumentSafe)();\n if (!(0, client_core_1._isServerEnv)()) {\n __STATSIG__ = (0, client_core_1._getStatsigGlobal)();\n const instances = (_c = __STATSIG__.acInstances) !== null && _c !== void 0 ? _c : {};\n instances[sdkKey] = this;\n __STATSIG__.acInstances = instances;\n }\n if ((doc === null || doc === void 0 ? void 0 : doc.readyState) === 'loading') {\n doc.addEventListener('DOMContentLoaded', () => this._initialize());\n return;\n }\n this._initialize();\n }\n _addEventHandlers() {\n const win = (0, client_core_1._getWindowSafe)();\n const doc = (0, client_core_1._getDocumentSafe)();\n if (!win || !doc) {\n return;\n }\n const eventHandler = (event) => {\n this._autoLogEvent(event || win.event);\n };\n (0, Utils_1._registerEventHandler)(doc, 'click', eventHandler);\n (0, Utils_1._registerEventHandler)(doc, 'submit', eventHandler);\n (0, Utils_1._registerEventHandler)(win, 'error', eventHandler);\n (0, Utils_1._registerEventHandler)(win, 'beforeunload', () => this._pageUnloadHandler());\n (0, Utils_1._registerEventHandler)(win, 'scroll', () => this._scrollEventHandler());\n }\n _autoLogEvent(event) {\n var _a;\n let eventType = (_a = event.type) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n if (eventType === 'error' && event instanceof ErrorEvent) {\n this._logError(event);\n return;\n }\n const target = (0, Utils_1._getTargetNode)(event);\n if (!target) {\n return;\n }\n if (!(0, Utils_1._shouldLogEvent)(event, target)) {\n return;\n }\n if (eventType === 'submit') {\n eventType = 'form_submit';\n }\n const { value, metadata } = (0, Utils_1._gatherEventData)(target);\n this._enqueueAutoCapture(eventType, value, metadata);\n }\n _initialize() {\n this._addEventHandlers();\n this._logSessionStart();\n this._logPageView();\n this._logPerformance();\n }\n _logError(event) {\n const error = (event === null || event === void 0 ? void 0 : event.error) || {};\n let errorStr = error;\n if (typeof error === 'object') {\n try {\n errorStr = JSON.stringify(error);\n }\n catch (e) {\n errorStr =\n typeof (error === null || error === void 0 ? void 0 : error.toString) === 'function'\n ? error.toString()\n : 'Unknown Error';\n }\n }\n this._enqueueAutoCapture('error', event.message, {\n message: event.message,\n filename: event.filename,\n lineno: event.lineno,\n colno: event.colno,\n error_str: errorStr,\n });\n }\n _logSessionStart() {\n const session = this._getSessionFromClient();\n try {\n if (!this._isNewSession(session)) {\n return;\n }\n this._enqueueAutoCapture('session_start', (0, Utils_1._getSanitizedPageUrl)(), { sessionID: session.data.sessionID }, { flushImmediately: true });\n }\n catch (err) {\n this._errorBoundary.logError('AC::logSession', err);\n }\n }\n _logPageView() {\n setTimeout(() => {\n const url = (0, Utils_1._getSafeUrl)();\n const payload = (0, payloadUtils_1._gatherPageViewPayload)(url);\n this._enqueueAutoCapture('page_view', (0, Utils_1._getSanitizedPageUrl)(), payload, {\n flushImmediately: true,\n addNewSessionMetadata: true,\n });\n }, 1);\n }\n _logPerformance() {\n const win = (0, client_core_1._getWindowSafe)();\n if (typeof (win === null || win === void 0 ? void 0 : win.performance) === 'undefined' ||\n typeof win.performance.getEntriesByType !== 'function' ||\n typeof win.performance.getEntriesByName !== 'function') {\n return;\n }\n setTimeout(() => {\n const metadata = {};\n const navEntries = win.performance.getEntriesByType('navigation');\n if (navEntries &&\n navEntries.length > 0 &&\n navEntries[0] instanceof PerformanceNavigationTiming) {\n const nav = navEntries[0];\n metadata['load_time_ms'] = nav.duration;\n metadata['dom_interactive_time_ms'] =\n nav.domInteractive - nav.startTime;\n metadata['redirect_count'] = nav.redirectCount;\n metadata['transfer_bytes'] = nav.transferSize;\n }\n const fpEntries = win.performance.getEntriesByName('first-contentful-paint');\n if (fpEntries &&\n fpEntries.length > 0 &&\n fpEntries[0] instanceof PerformancePaintTiming) {\n metadata['first_contentful_paint_time_ms'] = fpEntries[0].startTime;\n }\n const networkInfo = (0, Utils_1._getSafeNetworkInformation)();\n if (networkInfo) {\n metadata['effective_connection_type'] = networkInfo.effectiveType;\n metadata['rtt_ms'] = networkInfo.rtt;\n metadata['downlink_kbps'] = networkInfo.downlink;\n metadata['save_data'] = networkInfo.saveData;\n }\n this._enqueueAutoCapture('performance', (0, Utils_1._getSanitizedPageUrl)(), metadata);\n }, 1);\n }\n _pageUnloadHandler() {\n this._enqueueAutoCapture('page_view_end', (0, Utils_1._getSanitizedPageUrl)(), {\n scrollDepth: this._deepestScroll,\n pageViewLength: Date.now() - this._startTime,\n }, { flushImmediately: true });\n }\n _enqueueAutoCapture(name, value, metadata, options) {\n var _a, _b, _c;\n if (this._disabledEvents[name]) {\n return;\n }\n const session = this._getSessionFromClient();\n try {\n const logMetadata = Object.assign({ sessionID: session.data.sessionID, page_url: (_c = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.href) !== null && _c !== void 0 ? _c : '' }, metadata);\n if (options === null || options === void 0 ? void 0 : options.addNewSessionMetadata) {\n logMetadata['isNewSession'] = String(this._isNewSession(session));\n }\n const event = {\n eventName: `auto_capture::${name}`,\n value,\n metadata: logMetadata,\n };\n this._client.logEvent(event);\n if (options === null || options === void 0 ? void 0 : options.flushImmediately) {\n this._client.flush().catch((e) => {\n client_core_1.Log.error(e);\n });\n }\n }\n catch (err) {\n this._errorBoundary.logError('AC::enqueue', err);\n }\n }\n _scrollEventHandler() {\n var _a, _b, _c, _d;\n const scrollHeight = (_b = (_a = (0, client_core_1._getDocumentSafe)()) === null || _a === void 0 ? void 0 : _a.body.scrollHeight) !== null && _b !== void 0 ? _b : 1;\n const win = (0, client_core_1._getWindowSafe)();\n const scrollY = (_c = win === null || win === void 0 ? void 0 : win.scrollY) !== null && _c !== void 0 ? _c : 1;\n const innerHeight = (_d = win === null || win === void 0 ? void 0 : win.innerHeight) !== null && _d !== void 0 ? _d : 1;\n this._deepestScroll = Math.max(this._deepestScroll, Math.min(100, Math.round(((scrollY + innerHeight) / scrollHeight) * 100)));\n }\n _isNewSession(session) {\n // within the last second\n return Math.abs(session.data.startTime - Date.now()) < 1000;\n }\n _getSessionFromClient() {\n return this._client.getContext().session;\n }\n}\nexports.AutoCapture = AutoCapture;\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._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 });\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 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 userWithoutAnalyticsOnlyMetadata = Object.assign(Object.assign({}, user), { analyticsOnlyMetadata: undefined });\n if ((0, client_core_1._getFullUserHash)(userWithoutAnalyticsOnlyMetadata) !==\n (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 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;\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 user.analyticsOnlyMetadata = Object.assign(Object.assign({}, user.analyticsOnlyMetadata), this._possibleFirstTouchMetadata);\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\";\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._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 && 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);\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 _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' }));\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);\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\";\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}\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"None\"] = 0] = \"None\";\n LogLevel[LogLevel[\"Error\"] = 1] = \"Error\";\n LogLevel[LogLevel[\"Warn\"] = 2] = \"Warn\";\n LogLevel[LogLevel[\"Info\"] = 3] = \"Info\";\n LogLevel[LogLevel[\"Debug\"] = 4] = \"Debug\";\n})(LogLevel || (exports.LogLevel = LogLevel = {}));\nclass Log {\n static info(...args) {\n if (this.level >= LogLevel.Info) {\n console.info('\\x1b[34m%s\\x1b[0m', _INFO, ...addTag(args));\n }\n }\n static debug(...args) {\n if (this.level >= LogLevel.Debug) {\n console.debug('\\x1b[32m%s\\x1b[0m', DEBUG, ...addTag(args));\n }\n }\n static warn(...args) {\n if (this.level >= LogLevel.Warn) {\n console.warn('\\x1b[33m%s\\x1b[0m', _WARN, ...addTag(args));\n }\n }\n static error(...args) {\n if (this.level >= LogLevel.Error) {\n console.error('\\x1b[31m%s\\x1b[0m', ERROR, ...addTag(args));\n }\n }\n}\nexports.Log = Log;\nLog.level = LogLevel.Warn;\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 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 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(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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.20.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\";\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 });\n__exportStar(require(\"./LocalOverrideAdapter\"), exports);\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.DataAdapterCachePrefix = void 0;\nexports.DataAdapterCachePrefix = 'statsig.cached';\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\";\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 });\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\";\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\";\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\";\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._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\";\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.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 });\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._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.StatsigSession = exports.SessionID = void 0;\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 if (_isIdle(data) || _hasRunTooLong(data)) {\n data.sessionID = (0, UUID_1.getUUID)();\n data.startTime = now;\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 const sdkKey = session.sdkKey;\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 const client = __STATSIG__ === null || __STATSIG__ === void 0 ? void 0 : __STATSIG__.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._makeTypedGet = exports._mergeOverride = exports._makeLayer = exports._makeExperiment = exports._makeDynamicConfig = exports._makeFeatureGate = void 0;\nconst TypingUtils_1 = require(\"./TypingUtils\");\nconst DEFAULT_RULE = 'default';\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 : DEFAULT_RULE,\n __evaluation: evaluation,\n value,\n };\n}\nfunction _makeFeatureGate(name, details, evaluation) {\n return _makeEvaluation(name, details, evaluation, (evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) === true);\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(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(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(value, exposeFunc) });\n}\nexports._mergeOverride = _mergeOverride;\nfunction _makeTypedGet(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 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\";\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.LocalOverrideAdapter = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst LOCAL_OVERRIDE_REASON = 'LocalOverride:Recognized';\nfunction _makeEmptyStore() {\n return {\n gate: {},\n dynamicConfig: {},\n experiment: {},\n layer: {},\n };\n}\nfunction _mergeOverrides(currentValues, newValues) {\n return {\n gate: Object.assign({}, currentValues.gate, newValues.gate),\n dynamicConfig: Object.assign({}, currentValues.dynamicConfig, newValues.dynamicConfig),\n experiment: Object.assign({}, currentValues.experiment, newValues.experiment),\n layer: Object.assign({}, currentValues.layer, newValues.layer),\n };\n}\nclass LocalOverrideAdapter {\n constructor(sdkKey) {\n this._overrides = _makeEmptyStore();\n this._sdkKey = sdkKey !== null && sdkKey !== void 0 ? sdkKey : null;\n }\n _getLocalOverridesStorageKey(sdkKey) {\n return `statsig.local-overrides.${(0, client_core_1._getStorageKey)(sdkKey)}`;\n }\n loadFromStorage() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._sdkKey == null) {\n return;\n }\n if (!client_core_1.Storage.isReady()) {\n yield client_core_1.Storage.isReadyResolver();\n }\n const storageKey = this._getLocalOverridesStorageKey(this._sdkKey);\n const storedOverrides = client_core_1.Storage.getItem(storageKey);\n const overrides = storedOverrides\n ? (0, client_core_1._typedJsonParse)(storedOverrides, 'gate', 'LocalOverrideAdapter overrides')\n : null;\n const hasInMemoryOverrides = this._hasInMemoryOverrides();\n if (overrides) {\n // Merge overrides in memory with stored overrides.\n // WARN: This is a union of overrides. Trying to remove an override\n // before storage is ready won't remove the override in storage.\n this._overrides = hasInMemoryOverrides\n ? _mergeOverrides(overrides, this._overrides)\n : overrides;\n }\n if (hasInMemoryOverrides) {\n this._saveOverridesToStorage();\n }\n });\n }\n _saveOverridesToStorage() {\n if (this._sdkKey == null || !client_core_1.Storage.isReady()) {\n return;\n }\n const storageKey = this._getLocalOverridesStorageKey(this._sdkKey);\n client_core_1.Storage.setItem(storageKey, JSON.stringify(this._overrides));\n }\n overrideGate(name, value) {\n this._overrides.gate[name] = value;\n this._overrides.gate[(0, client_core_1._DJB2)(name)] = value;\n this._saveOverridesToStorage();\n }\n _warnIfStorageNotReady() {\n if (!client_core_1.Storage.isReady()) {\n client_core_1.Log.warn('Storage is not ready. Override removal may not persist.');\n }\n }\n removeGateOverride(name) {\n this._warnIfStorageNotReady();\n delete this._overrides.gate[name];\n delete this._overrides.gate[(0, client_core_1._DJB2)(name)];\n this._saveOverridesToStorage();\n }\n getGateOverride(current, _user) {\n var _a;\n const overridden = (_a = this._overrides.gate[current.name]) !== null && _a !== void 0 ? _a : this._overrides.gate[(0, client_core_1._DJB2)(current.name)];\n if (overridden == null) {\n return null;\n }\n return Object.assign(Object.assign({}, current), { value: overridden, details: Object.assign(Object.assign({}, current.details), { reason: LOCAL_OVERRIDE_REASON }) });\n }\n overrideDynamicConfig(name, value) {\n this._overrides.dynamicConfig[name] = value;\n this._overrides.dynamicConfig[(0, client_core_1._DJB2)(name)] = value;\n this._saveOverridesToStorage();\n }\n removeDynamicConfigOverride(name) {\n this._warnIfStorageNotReady();\n delete this._overrides.dynamicConfig[name];\n delete this._overrides.dynamicConfig[(0, client_core_1._DJB2)(name)];\n this._saveOverridesToStorage();\n }\n getDynamicConfigOverride(current, _user) {\n return this._getConfigOverride(current, this._overrides.dynamicConfig);\n }\n overrideExperiment(name, value) {\n this._overrides.experiment[name] = value;\n this._overrides.experiment[(0, client_core_1._DJB2)(name)] = value;\n this._saveOverridesToStorage();\n }\n removeExperimentOverride(name) {\n this._warnIfStorageNotReady();\n delete this._overrides.experiment[name];\n delete this._overrides.experiment[(0, client_core_1._DJB2)(name)];\n this._saveOverridesToStorage();\n }\n getExperimentOverride(current, _user) {\n return this._getConfigOverride(current, this._overrides.experiment);\n }\n overrideLayer(name, value) {\n this._overrides.layer[name] = value;\n this._overrides.layer[(0, client_core_1._DJB2)(name)] = value;\n this._saveOverridesToStorage();\n }\n removeLayerOverride(name) {\n this._warnIfStorageNotReady();\n delete this._overrides.layer[name];\n delete this._overrides.layer[(0, client_core_1._DJB2)(name)];\n this._saveOverridesToStorage();\n }\n getAllOverrides() {\n return JSON.parse(JSON.stringify(this._overrides));\n }\n removeAllOverrides() {\n this._warnIfStorageNotReady();\n this._overrides = _makeEmptyStore();\n this._saveOverridesToStorage();\n }\n getLayerOverride(current, _user) {\n var _a;\n const overridden = (_a = this._overrides.layer[current.name]) !== null && _a !== void 0 ? _a : this._overrides.layer[(0, client_core_1._DJB2)(current.name)];\n if (overridden == null) {\n return null;\n }\n return Object.assign(Object.assign({}, current), { __value: overridden, get: (0, client_core_1._makeTypedGet)(current.name, overridden), details: Object.assign(Object.assign({}, current.details), { reason: LOCAL_OVERRIDE_REASON }) });\n }\n _getConfigOverride(current, lookup) {\n var _a;\n const overridden = (_a = lookup[current.name]) !== null && _a !== void 0 ? _a : lookup[(0, client_core_1._DJB2)(current.name)];\n if (overridden == null) {\n return null;\n }\n return Object.assign(Object.assign({}, current), { value: overridden, get: (0, client_core_1._makeTypedGet)(current.name, overridden), details: Object.assign(Object.assign({}, current.details), { reason: LOCAL_OVERRIDE_REASON }) });\n }\n _hasInMemoryOverrides() {\n return (Object.keys(this._overrides.gate).length > 0 ||\n Object.keys(this._overrides.dynamicConfig).length > 0 ||\n Object.keys(this._overrides.experiment).length > 0 ||\n Object.keys(this._overrides.layer).length > 0);\n }\n}\nexports.LocalOverrideAdapter = LocalOverrideAdapter;\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","// 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))","import { LocalOverrideAdapter } from \"@statsig/js-local-overrides\";\nimport { StatsigClient } from \"@statsig/js-client\";\nimport { runStatsigAutoCapture } from \"@statsig/web-analytics\";\n\nwindow[\"StatsigSidecar\"] = window[\"StatsigSidecar\"] || {\n _statsigInstance: null,\n _queuedEvents: [],\n _clientInitialized: false,\n _redirKey: \"_stsgnoredir\",\n\n activateExperiment: function (expId) {\n const matchedExps = this._getMatchingExperiments();\n if (matchedExps.includes(expId)) {\n StatsigSidecar._performExperiments([expId]);\n }\n },\n\n findElementToObserve: function (query) {\n while (query) {\n try {\n const element = document.querySelector(query);\n if (element) {\n return element;\n }\n } catch (e) {}\n query = query.substring(0, query.lastIndexOf(\">\"));\n }\n return document.body;\n },\n\n _flushQueuedEvents: function () {\n if (this._queuedEvents.length === 0) {\n return;\n }\n if (!this._statsigInstance) {\n return;\n }\n\n const events = [...this._queuedEvents];\n this._queuedEvents = [];\n events.forEach((event) => {\n this._statsigInstance.logEvent(\n event.eventName,\n event.value,\n event.metadata\n );\n });\n this._statsigInstance.flush && this._statsigInstance.flush();\n },\n\n _getMatchingExperiments: function () {\n const matchingExps = [];\n const configList = this._statsigInstance.getConfigList();\n let url = window.location.href;\n try {\n const u = new URL(url);\n // This check is important or else it messes up the original URL\n if (u.searchParams.has(\"overrideuser\")) {\n u.searchParams.delete(\"overrideuser\");\n }\n url = u.toString();\n } catch (e) {}\n configList.forEach((config) => {\n const exp = this._statsigInstance.getExperiment(config);\n\n if (exp.value[\"!statsig_sidecar_directives\"]) {\n if (this._isMatchingExperiment(url, exp.value[\"sidecarURLFilters\"])) {\n matchingExps.push(exp.name);\n }\n }\n });\n return matchingExps;\n },\n\n getStatsigInstance: function () {\n return this._statsigInstance;\n },\n\n _isMatchingExperiment: function (url, filters) {\n if (!filters || filters.length === 0) {\n return true;\n }\n for (const filter of filters) {\n if (filter.type === \"contains\") {\n if (url.includes(filter.value)) {\n return true;\n }\n } else if (filter.type === \"equals\") {\n if (url === filter.value) {\n return true;\n }\n } else if (filter.type === \"regex\") {\n if (RegExp(filter.value).test(url)) {\n return true;\n }\n } else if (filter.type === \"path\") {\n const path = new URL(url).pathname;\n if (path === filter.value) {\n return true;\n }\n }\n }\n return false;\n },\n\n _isIOS: function () {\n return /iPad|iPhone|iPod/.test(navigator?.userAgent ?? \"\");\n },\n\n logEvent: function (eventName, value, metadata) {\n if (!this._statsigInstance || !this._clientInitialized) {\n this._queuedEvents.push({ eventName, value, metadata });\n return;\n }\n\n this._flushQueuedEvents();\n this._statsigInstance.logEvent(eventName, value, metadata);\n },\n\n _observeMutation: function (element, modifierFunc) {\n const config = {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n characterDataOldValue: false,\n };\n const callback = (mutationsList, observer) => {\n setTimeout(() => {\n modifierFunc();\n }, 0);\n };\n const observer = new MutationObserver(callback);\n observer.observe(element, config);\n modifierFunc();\n },\n\n _observePageChanges: function (expIds) {\n const ps = history.pushState;\n const rs = history.replaceState;\n\n const rerun = () => {\n StatsigSidecar.runAllExperiments(expIds);\n };\n\n history.pushState = function (...n) {\n ps.apply(history, n);\n rerun();\n };\n history.replaceState = function (...n) {\n rs.apply(history, n);\n rerun();\n };\n window.addEventListener(\"hashchange\", rerun);\n window.addEventListener(\"popstate\", rerun);\n },\n\n _performAfterLoad: function (callback) {\n if (/complete|interactive|loaded/.test(document.readyState)) {\n callback();\n } else {\n document.addEventListener(\"DOMContentLoaded\", () => {\n callback();\n });\n }\n },\n\n performAttributeChange: function (query, attribute, value, removeAttrs = []) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const element = document.querySelector(query);\n if (element && element.getAttribute(attribute) !== value) {\n element.setAttribute(attribute, value);\n removeAttrs?.forEach((attr) => {\n element.removeAttribute(attr);\n });\n }\n });\n },\n\n performContentChange: function (query, value) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const element = document.querySelector(query);\n if (element && element.innerHTML !== value) {\n element.innerHTML = value;\n }\n });\n },\n\n _performDirective: function (directive) {\n console.log(directive);\n switch (directive.type) {\n case \"content\":\n this._performAfterLoad(() => {\n this.performContentChange(directive.selector, directive.value);\n });\n break;\n\n case \"style\":\n this._performAfterLoad(() => {\n this.performStyleChange(\n directive.selector,\n directive.key,\n directive.value\n );\n });\n break;\n\n case \"properties\":\n this._performAfterLoad(() => {\n directive.metadata?.forEach((property) => {\n if (property.type === \"style\") {\n this.performStyleChange(\n property.selector,\n property.name,\n property.value\n );\n } else if (property.type === \"attribute\") {\n this.performAttributeChange(\n property.selector,\n property.name,\n property.value\n );\n }\n });\n });\n break;\n\n case \"attribute\":\n this._performAfterLoad(() => {\n this.performAttributeChange(\n directive.selector,\n directive.key,\n directive.value\n );\n });\n break;\n\n case \"image\":\n this._performAfterLoad(() => {\n this.performAttributeChange(\n directive.selector,\n \"src\",\n directive.value,\n [\"srcset\"]\n );\n });\n break;\n\n case \"reorder\":\n this._performAfterLoad(() => {\n this.performReorderElement(\n directive.selector,\n directive.operator,\n directive.value\n );\n });\n break;\n\n case \"code\":\n this.performInjectScript(directive.value);\n break;\n\n case \"inject-style\":\n this.performInjectStyle(directive.value);\n break;\n\n case \"redirect\":\n this.redirectPage(directive.value);\n break;\n }\n },\n\n _performExperiments: function (expIds) {\n if (Array.isArray(expIds)) {\n expIds.forEach((expId) => {\n const expConfig = this._statsigInstance.getExperiment(expId);\n const directives = expConfig.get(\"!statsig_sidecar_directives\", []);\n directives.forEach((directive) => {\n try {\n this._performDirective(directive);\n } catch (e) {\n console.error(\"Failed to perform directive:\", e);\n }\n });\n });\n }\n },\n\n performInjectScript: function (value) {\n const script = document.createElement(\"script\");\n script.setAttribute(\"nonce\", this.scriptNonce);\n script.nonce = this.scriptNonce;\n script.innerHTML = value;\n document.head.appendChild(script);\n },\n\n performInjectStyle: function (value) {\n const style = document.createElement(\"style\");\n style.innerHTML = value;\n document.head.appendChild(style);\n },\n\n performReorderElement: function (query, operator, anchorQuery) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const target = document.querySelector(query);\n const anchor = document.querySelector(anchorQuery);\n if (!target || !anchor) {\n return;\n }\n\n switch (operator) {\n case \"before\":\n anchor.before(target);\n break;\n case \"after\":\n anchor.after(target);\n break;\n case \"first\":\n anchor.prepend(target);\n break;\n case \"last\":\n anchor.append(target);\n break;\n }\n });\n },\n\n performStyleChange: function (query, style, value) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const element = document.querySelector(query);\n if (element) {\n element.style.setProperty(style, value);\n // const existingStyle = element.getAttribute(\"style\") || \"\";\n // if (!existingStyle.includes(` ${value}`)) {\n // const newStyle = `${existingStyle}; ${value}`;\n // element.setAttribute(\"style\", newStyle);\n // }\n }\n });\n },\n\n processEvent: function (event) {\n if (!event || !event.detail) {\n return false;\n }\n\n const detail = event.detail;\n if (detail.name === \"inject-script\") {\n this.performInjectScript(detail.value);\n return false;\n }\n },\n\n redirectPage: async function (url) {\n this._flushQueuedEvents();\n\n if (!window || !window.location || !url || window.location.href == url) {\n return;\n }\n\n try {\n const currentUrl = new URL(window.location.href);\n if (currentUrl.searchParams.has(this._redirKey)) {\n return;\n }\n\n const newUrl = new URL(url, currentUrl);\n for (const key of currentUrl.searchParams.keys()) {\n if (!newUrl.searchParams.has(key)) {\n newUrl.searchParams.set(key, currentUrl.searchParams.get(key));\n }\n }\n newUrl.searchParams.set(this._redirKey, \"1\");\n\n if (this._isIOS()) {\n await this._statsigInstance.flush();\n }\n\n window.location.href = newUrl.toString();\n } catch (e) {\n window.location.href = url;\n }\n },\n\n resetBody: function () {\n const sbpd = document.getElementById(\"__sbpd\");\n if (sbpd) {\n sbpd.parentElement.removeChild(sbpd);\n }\n },\n\n runAllExperiments: function (expIds = null) {\n if (!expIds) {\n const matchingExps = this._getMatchingExperiments();\n this._runPreExperimentScripts(matchingExps);\n expIds = matchingExps;\n }\n\n if (expIds) {\n try {\n this._performExperiments(expIds);\n } catch (e) {\n console.error(\"Failed to perform experiments:\", e);\n }\n }\n this.resetBody();\n if (window?.postExperimentCallback) {\n window.postExperimentCallback(this._statsigInstance, expIds);\n }\n },\n\n _runPreExperimentScripts: function (matchedExps) {\n matchedExps?.forEach((exp) => {\n if (exp.prerunScript) {\n const expConfig = this._statsigInstance.getExperiment(exp);\n if (expConfig.ruleID !== \"prestart\") {\n this.performInjectScript(exp.prerunScript);\n }\n }\n });\n },\n\n setupMutationObserver: function (query, callback) {\n const observeElement = this.findElementToObserve(query);\n if (observeElement) {\n this._observeMutation(observeElement, callback);\n }\n },\n\n setupStatsigSdk: async function (\n apiKey,\n expIds,\n autoStart,\n initUrlOverride,\n logUrlOverride\n ) {\n let overrideUserID = null;\n let overrideExp = null;\n try {\n const url = new URL(window.location.href);\n overrideUserID = url.searchParams.get(\"overrideuser\");\n overrideExp = url.searchParams.get(\"overrideexp\");\n } catch (e) {\n console.error(\"Failed to update user:\", e);\n }\n\n try {\n const user = window?.statsigUser ?? {};\n if (overrideUserID) {\n user.userID = overrideUserID;\n user.customIDs = user.customIDs || {};\n user.customIDs.stableID = overrideUserID;\n }\n\n const options = window?.statsigOptions ?? {};\n options.disableLogging = !autoStart;\n if (initUrlOverride || logUrlOverride) {\n options.networkConfig = {\n initializeUrl: initUrlOverride,\n logEventUrl: logUrlOverride,\n };\n }\n if (overrideExp) {\n const overrideAdapter = new LocalOverrideAdapter();\n options.overrideAdapter = overrideAdapter;\n overrideAdapter.overrideExperiment(\"sidecar\", JSON.parse(overrideExp));\n }\n\n this._statsigInstance = new StatsigClient(apiKey, user, options);\n await this._statsigInstance.initializeAsync();\n runStatsigAutoCapture(this._statsigInstance);\n\n this._clientInitialized = true;\n this._flushQueuedEvents();\n this._observePageChanges(expIds);\n this.runAllExperiments(expIds);\n } catch (e) {\n console.error(\"Failed to initialize Statsig:\", e);\n }\n this.resetBody();\n },\n};\n\nif (document.currentScript && document.currentScript.src) {\n const url = new URL(document.currentScript.src);\n const apiKey = url.searchParams.get(\"apikey\");\n const multiExpIds = url.searchParams.get(\"multiexpids\");\n const initUrl = url.searchParams.get(\"initializeurl\");\n const logUrl = url.searchParams.get(\"logeventurl\");\n\n const autoStart = url.searchParams.get(\"autostart\") !== \"0\";\n // Deprecated\n // const autoCapture = url.searchParams.get('autocapture') !== '0';\n const reduceFlicker = url.searchParams.get(\"reduceflicker\") !== \"0\";\n StatsigSidecar.scriptNonce = document.currentScript.nonce;\n if (apiKey) {\n if (reduceFlicker) {\n document.write('<style id=\"__sbpd\">body { display: none; }</style>\\n');\n setTimeout(() => {\n StatsigSidecar.resetBody();\n }, 1000);\n }\n const expIds = multiExpIds ? multiExpIds.split(\",\") : null;\n StatsigSidecar.setupStatsigSdk(apiKey, expIds, autoStart, initUrl, logUrl);\n document.addEventListener(`sidecar_${apiKey}`, (e) => {\n StatsigSidecar.processEvent(e);\n e.preventDefault();\n });\n }\n}\n"],"names":["Object","defineProperty","exports","value","_isTypeMatch","_typeOf","input","Array","isArray","a","b","typeOf","x","_a","_b","_c","_getInstance","_getStatsigGlobalFlag","_getStatsigGlobal","Log_1","__STATSIG__","statsigGlobal","e","flag","sdkKey","gbl","instances","keys","length","Log","warn","firstInstance","GLOBAL_KEY","_window","window","_global","g","_globalThis","globalThis","instance","addTag","args","unshift","LogLevel","None","Error","Warn","Info","Debug","info","level","console","debug","error","_getSortedObject","_DJB2Object","_DJB2","TypingUtils_1","hash","i","charCodeAt","String","maxLevels","JSON","stringify","object","maxDepth","sort","sortedObject","forEach","key","_getStorageKey","_getUserStorageKey","Hashing_1","user","customKeyGenerator","cids","customIDs","parts","userID","leftKey","rightKey","localeCompare","map","join","_notifyVisibilityChanged","_subscribeToVisiblityChanged","_isUnloading","_isCurrentlyVisible","SafeJs_1","FOREGROUND","BACKGROUND","LISTENERS","current","isUnloading","listener","visibility","l","_addWindowEventListenerSafe","_addDocumentEventListenerSafe","document","visibilityState","_getUnloadEvent","_getCurrentPageUrlSafe","_isServerEnv","_getDocumentSafe","_getWindowSafe","win","isNode","process","versions","node","EdgeRuntime","addEventListener","doc","location","href","split","__awaiter","this","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","apply","_isDomainFailure","NetworkFallbackResolver","DnsTxtQuery_1","StorageProvider_1","DEFAULT_TTL_MS","errorMsg","timedOut","lowerErrorMsg","toLowerCase","includes","_getFallbackInfoStorageKey","_tryWriteFallbackInfoToCache","hashKey","Storage","setItem","removeItem","constructor","options","_fallbackInfo","_errorBoundary","_dnsQueryCooldowns","_networkOverrideFunc","networkConfig","networkOverrideFunc","setErrorBoundary","errorBoundary","tryBumpExpiryTime","urlConfig","endpoint","expiryTime","Date","now","assign","getActiveFallbackUrl","customUrl","fallbackUrls","data","getItem","parse","_readFallbackInfoFromCache","entry","getChecksum","urlConfigChecksum","url","tryFetchUpdatedFallbackInfo","errorMessage","urls","_tryFetchFallbackUrlsFromNetwork","newUrl","_pickNewFallbackUrl","_updateFallbackInfoWithNewUrl","logError","newFallbackInfo","previous","previousInfo","push","previousUrl","cooldown","records","_fetchTxtRecords","fetch","path","urlString","URL","pathname","_extractPathFromUrl","defaultUrl","record","startsWith","endpointDnsKey","baseUrl","endsWith","slice","currentFallbackInfo","previouslyUsed","Set","currentFallbackUrl","found","loopUrl","has","ErrorTag","NetworkError","SDKType","SDK_CLIENT","suffix","_get","_setClientType","client","_setBindingType","binding","NetworkCore","__StatsigGlobal_1","Diagnostics_1","NetworkConfig_1","NetworkFallbackResolver_1","SDKFlags_1","SDKType_1","SessionID_1","StableID_1","StatsigClientEventEmitter_1","StatsigMetadata_1","StatsigOptionsCommon_1","VisibilityObserving_1","RETRYABLE_CODES","_emitter","_timeout","_netConfig","_options","_leakyBucket","_lastUsedInitUrl","networkTimeoutMs","_fallbackResolver","setLogEventCompressionMode","_getLogEventCompressionMode","mode","logEventCompressionMode","wrap","isBeaconSupported","navigator","sendBeacon","getLastUsedInitUrlAndReset","tempUrl","beacon","_ensureValidSdkKey","argsInternal","_getInternalRequestArgs","_getPopulatedURL","nav","bind","body","post","_tryEncodeBody","_tryToCompressBody","_sendRequest","get","_d","preventAllNetworkTraffic","method","retries","attempt","_isRateLimited","currentAttempt","abortController","AbortController","timeoutHandle","setTimeout","abort","populatedUrl","response","keepalive","config","headers","signal","priority","Endpoint","_initialize","Diagnostics","_markInitNetworkReqStart","_tryMarkInitStart","bucket","lastRequestTime","func","clearTimeout","ok","text","catch","err","name","_tryMarkInitEnd","code","status","controller","aborted","reason","message","_getErrorMessage","fallbackUrl","call","tag","requestArgs","formattedErrorMsg","attachErrorIfNoneExists","r","Math","min","_exponentialBackoff","compressionMode","disableCompression","LogEventCompressionMode","Disabled","Enabled","count","elapsed","leakedRequests","floor","RATE_LIMIT_MAX_REQ_COUNT","max","getUrl","_download_config_specs","params","NetworkParam","SdkKey","SdkType","SdkVersion","SDK_VERSION","Time","SessionID","query","encodeURIComponent","isStatsigEncodable","disableStatsigEncoding","btoa","reverse","StatsigEncoded","isCompressable","CompressionStream","TextEncoder","isProxy","flagEnabled","SDKFlags","Forced","_allowCompression","bytes","encode","stream","writer","writable","getWriter","write","close","reader","readable","getReader","chunks","read","totalLength","reduce","acc","chunk","combined","Uint8Array","offset","set","IsGzipped","_populateRequestBody","stableID","StableID","sessionID","sdkType","statsigMetadata","StatsigMetadataProvider","_markInitNetworkReqEnd","_getDiagnosticsData","MARKER_MAP","Map","ACT_START","ACT_END","_createMarker","action","timestamp","_addMarker","marker","markers","_safeGetField","field","_getMarkers","_markInitOverallStart","_markInitOverallEnd","success","evaluationDetails","undefined","_markInitProcessStart","_markInitProcessEnd","_clearMarkers","delete","_formatError","res","statusCode","sdkRegion","isDelta","_enqueueDiagnosticsEvent","logger","sdk","event","eventName","metadata","time","_makeDiagnosticsEvent","context","statsigOptions","enqueue","UrlConfiguration","ENDPOINT_DNS_KEY_MAP","_rgstr","customApi","defaultApi","NetworkDefault","fallbacks","_createLayerParameterExposure","_createConfigExposure","_mapExposures","_createGateExposure","_isExposureEvent","CONFIG_EXPOSURE_NAME","GATE_EXPOSURE_NAME","LAYER_EXPOSURE_NAME","_createExposure","details","secondaryExposures","bootstrapMetadata","_addEvaluationDetailsToMetadata","exposures","exposureMapping","exposure","filter","gate","gateValue","ruleID","__evaluation","version","secondary_exposures","passed","layer","parameterName","_e","_f","_g","evaluation","isExplicit","explicit_parameters","allocatedExperiment","undelegated_secondary_exposures","allocated_experiment_name","parameterRuleIDs","parameter_rule_ids","isExplicitParameter","lcut","receivedAt","_makeTypedGet","_mergeOverride","_makeLayer","_makeExperiment","_makeDynamicConfig","_makeFeatureGate","_makeEvaluation","rule_id","exposeFunc","param","fallback","idType","id_type","groupName","group_name","__value","original","overridden","UPDATE_DETAIL_ERROR_MESSAGES","createUpdateDetails","source","initDuration","sourceUrl","warnings","duration","NO_NETWORK_DATA","AutoCapture_1","enumerable","runStatsigAutoCapture","AutoCapture","_getFullUserHash","_normalizeUser","copy","environment","statsigEnvironment","CacheKey_1","UUID_1","PROMISE_MAP","COOKIE_ENABLED_MAP","DISABLED_MAP","_getStableIDStorageKey","_persistToStorage","storageKey","_setObjectInStorage","_persistToCookie","expiryDate","setFullYear","getFullYear","cookie","_getCookieName","toUTCString","cookiesEnabled","randomID","random","toString","cookies","trim","decodeURIComponent","_loadFromCookie","_getObjectFromStorage","_loadFromStorage","getUUID","setOverride","override","_setCookiesEnabled","_setDisabled","disabled","inMemoryStore","_inMemoryProvider","isReady","isReadyResolver","getProviderName","getAllKeys","_localStorageProvider","localStorage","_main","_current","_setProvider","_inMemoryBreaker","newProvider","isDisabled","obj","__createBinding","create","o","m","k","k2","desc","getOwnPropertyDescriptor","__esModule","configurable","__exportStar","p","prototype","hasOwnProperty","EventLogger","EventLogger_1","crypto","randomUUID","d","getTime","d2","performance","replace","c","DataAdapterCachePrefix","ErrorBoundary","EXCEPTION_ENDPOINT","UNKNOWN_ERROR","_resolveError","_getStatsigOptionLoggingCopy","loggingCopy","entries","option","_sdkKey","_lastSeenError","_seen","names","proto","getPrototypeOf","getOwnPropertyNames","prop","add","from","_getAllInstanceMethodNames","_capture","$EB","_onError","getLastSeenErrorAndReset","tempError","task","unwrapped","isError","resolvedError","stack","_getDescription","exception","sdkVersion","impl","_error","StatsigEvaluationsDataAdapter","client_core_1","Network_1","DataAdapterCore","super","_network","attach","network","default","getDataAsync","_getDataAsyncImpl","prefetchData","_prefetchDataImpl","setData","values","_typedJsonParse","setDataLegacy","_fetchFromNetwork","isCacheValidFor204","fetchEvaluations","_getSdkKey","_getCacheKey","customUserCacheKeyFunc","_cacheSuffix","_isCachedResultValidFor204","fullUserHash","guard","typeName","eventsApi","initializeApi","specsApi","StatsigSession","MAX_SESSION_IDLE_TIME","MAX_SESSION_AGE","_createSessionTimeout","$emt","_getSessionIDStorageKey","startTime","lastUpdate","_loadSession","session","_isIdle","_hasRunTooLong","idleTimeoutID","ageTimeoutID","lifetime","_bumpSession","overrideInitialSessionID","_overrideSessionId","StatsigEvent_1","UrlConfiguration_1","EVENT_LOGGER_MAP","RetryFailedLogsTrigger","_safeFlushAndForget","flush","_safeRetryFailedLogs","_retryFailedLogs","_queue","_lastExposureTimeMap","_nonExposedChecks","_hasRunQuickFlush","_creationTime","_loggingEnabled","loggingEnabled","disableLogging","LoggingEnabledOption","browserOnly","_maxQueueSize","loggingBufferMaxSize","_logEventUrlConfig","logEventUrl","api","logEventFallbackUrls","setLoggingEnabled","_shouldLogEvent","_normalizeAndAppendEvent","_quickFlushIfNeeded","incrementNonExposureCount","reset","start","isServerEnv","_startBackgroundFlushInterval","stop","_flushIntervalId","clearInterval","_appendAndResetNonExposedChecks","events","_sendEvents","userKey","_saveFailedLogsToStorage","shouldUseBeacon","_sendEventsViaBeacon","_sendEventsViaPost","_getRequestData","EventCount","credentials","shift","trigger","privateAttributes","extras","currentPage","_getCurrentPageUrl","final","checks","includeCurrentPageUrlWithEvents","flushInterval","loggingIntervalMs","intervalId","setInterval","EvaluationResponseDeltas_1","StatsigNetwork","emitter","_option","_initializeUrlConfig","initializeUrl","initializeFallbackUrls","cache","initializeHashAlgorithm","deltasResponseRequested","full_checksum","has_updates","hasHashChanged","hash_used","sinceTime","previousDerivedFields","derived_fields","partialUserMatchSinceTime","_fetchEvaluations","_resolveDeltasResponse","additions","lastInstance","_fastApproxSizeOf","size","_gatherPageViewPayload","safeDoc","safeWnd","referrer","refUrl","searchInfo","searchEngine","host","hostname","find","getSearchEngine","searchQuery","searchParams","getSearchInfo","campaignParams","urlParams","val","getCampaignParams","queryParams","v","title","locale","language","screen_width","screen","width","screen_height","height","viewport_width","innerWidth","viewport_height","innerHeight","statsigKeys","overallInitDuration","StatsigClientBase","ErrorBoundary_1","adapter","loadingStatus","_listeners","logLevel","disableStorage","initialSessionID","storageProvider","overrideAdapter","_logger","inst","dataAdapter","_primeReadyRipcord","updateRuntimeOptions","setLoggingDisabled","shutdown","on","off","index","indexOf","splice","$on","__isInternal","barrier","_setStatus","newStatus","_enqueueExposure","disableExposureLog","always","fallbackEnvironment","tier","_getPopulatedBody","_attemptToEncodeString","handle","isInitialize","StatsigClient","StatsigClient_1","UrlOverrides_1","_isLoggingDisabled","_logEventUrl","_getOverridableUrl","FLAGMAP","setFlags","flags","flagKey","StatsigUser_1","TypedJsonParse_1","_makeDataAdapterResult","_adapterName","_lastModifiedStoreKey","_inMemoryCache","InMemoryCache","getDataSync","normalized","cacheKey","inMem","_loadFromCache","ops","_fetchAndPrepFromNetwork","timeoutMs","race","cachedResult","cachedData","latest","_writeToCache","_runLocalStorageCacheEviction","lastModifiedTimeMap","evictable","_getEvictableKey","_data","cached","provided","oldest","CACHE_LIMIT","merge","limit","prevKey","currKey","prev","_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","_getSafeNetworkInformation","_registerEventHandler","_getSanitizedPageUrl","_getSafeUrl","_getTargetNode","_gatherEventData","_gatherDatasetProperties","el","dataset","attr","_getAnchorNodeInHierarchy","parent","parentTagName","tagName","parentElement","target","getAttribute","anchor","textContent","srcElement","Element","nodeType","parentNode","eventType","type","element","handler","connection","overrideUrl","overrideApi","defaultEndpoint","_getIsCacheValueValid","createMemoKey","MemoPrefix","_gate","_dynamicConfig","_experiment","_configList","_layer","_paramStore","EXIST_KEYS","DO_NOT_MEMO_KEYS","prefix","MemoKey_1","_initializePromise","enableCookies","disableStableID","_memoCache","loadFromStorage","_assignGlobalInstance","_memoize","fn","disableEvaluationMemoization","memoKey","Utils_1","payloadUtils_1","_client","_startTime","_deepestScroll","_disabledEvents","getContext","auto_capture_settings","disabled_events","acInstances","readyState","_addEventHandlers","eventHandler","_autoLogEvent","_pageUnloadHandler","_scrollEventHandler","ErrorEvent","_logError","_enqueueAutoCapture","_logSessionStart","_logPageView","_logPerformance","errorStr","filename","lineno","colno","error_str","_getSessionFromClient","_isNewSession","flushImmediately","payload","addNewSessionMetadata","getEntriesByType","getEntriesByName","navEntries","PerformanceNavigationTiming","domInteractive","redirectCount","transferSize","fpEntries","PerformancePaintTiming","networkInfo","effectiveType","rtt","downlink","saveData","scrollDepth","pageViewLength","logMetadata","page_url","logEvent","scrollHeight","scrollY","round","abs","_rawValues","_values","_source","_lcut","_receivedAt","_bootstrapMetadata","_warnings","finalize","getValues","setValues","_extractBootstrapMetadata","_setWarningState","sdk_flags","getWarnings","getGate","_getDetailedStoreResult","getConfig","getConfigList","getLayer","getParamStore","param_stores","getSource","getExposureMapping","sdkInfo","generatorSDKInfo","lookup","_getDetails","bootstrapUser","userWithoutAnalyticsOnlyMetadata","analyticsOnlyMetadata","getCurrentSourceDetails","sourceDetails","isUnrecognized","EvaluationStore_1","ParamStoreGetterFactory_1","StatsigEvaluationsDataAdapter_1","_possibleFirstTouchMetadata","getFeatureGate","_getFeatureGateImpl","getDynamicConfig","_getDynamicConfigImpl","getExperiment","_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","isUsingNetworkValues","sdkInstanceID","checkGate","eventOrName","updateUserWithAnalyticsOnlyMetadata","originalUser","stableIdOverride","getGateOverride","getDynamicConfigOverride","dynamicConfig","experiment","getExperimentOverride","getLayerOverride","configuration","paramStore","__configuration","_makeParamStoreGetter","getParamStoreOverride","FEATURE_ASSETS_DNS_QUERY","DOMAIN_CHARS","networkFunc","Accept","arrayBuffer","findIndex","byte","fromCharCode","_parseDnsResponse","LocalOverrideAdapter","LOCAL_OVERRIDE_REASON","_overrides","_getLocalOverridesStorageKey","storedOverrides","overrides","hasInMemoryOverrides","_hasInMemoryOverrides","currentValues","newValues","_saveOverridesToStorage","overrideGate","_warnIfStorageNotReady","removeGateOverride","overrideDynamicConfig","removeDynamicConfigOverride","_getConfigOverride","overrideExperiment","removeExperimentOverride","overrideLayer","removeLayerOverride","getAllOverrides","removeAllOverrides","NO_EXPOSURE_OPT","_shouldLogExposure","_shouldReturnFallback","paramName","param_type","ref_type","_getMappedStaticValue","gate_name","pass_value","fail_value","_getMappedGateValue","config_name","param_name","_getMappedDynamicConfigValue","experiment_name","_getMappedExperimentValue","layer_name","_getMappedLayerValue","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","__webpack_modules__","n","getter","definition","Function","_statsigInstance","_queuedEvents","_clientInitialized","_redirKey","activateExperiment","expId","_getMatchingExperiments","StatsigSidecar","_performExperiments","findElementToObserve","querySelector","substring","lastIndexOf","_flushQueuedEvents","matchingExps","configList","u","exp","_isMatchingExperiment","getStatsigInstance","filters","RegExp","test","_isIOS","userAgent","_observeMutation","modifierFunc","MutationObserver","mutationsList","observer","observe","attributes","childList","characterData","subtree","characterDataOldValue","_observePageChanges","expIds","ps","history","pushState","rs","replaceState","rerun","runAllExperiments","_performAfterLoad","callback","performAttributeChange","attribute","removeAttrs","setupMutationObserver","setAttribute","removeAttribute","performContentChange","innerHTML","_performDirective","directive","log","selector","performStyleChange","property","performReorderElement","operator","performInjectScript","performInjectStyle","redirectPage","script","createElement","scriptNonce","nonce","head","appendChild","style","anchorQuery","before","after","prepend","append","setProperty","processEvent","detail","async","currentUrl","resetBody","sbpd","getElementById","removeChild","_runPreExperimentScripts","postExperimentCallback","matchedExps","prerunScript","observeElement","setupStatsigSdk","apiKey","autoStart","initUrlOverride","logUrlOverride","overrideUserID","overrideExp","statsigUser","currentScript","src","multiExpIds","initUrl","logUrl","reduceFlicker","preventDefault"],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/TypingUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/Log.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/Hashing.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/CacheKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/VisibilityObserving.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SafeJs.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/NetworkFallbackResolver.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SDKType.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/NetworkCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/Diagnostics.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/UrlConfiguration.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigTypeFactories.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigUpdateDetails.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigUser.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StableID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StorageProvider.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/UUID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigDataAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/ErrorBoundary.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/StatsigEvaluationsDataAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/OverrideAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/NetworkConfig.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StableID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/VisibilityObserving.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SessionID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/EventLogger.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/Network.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/InitializeResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigUpdateDetails.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigPlugin.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/Log.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/VisibilityObserving.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SizeOf.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigDataAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/Hashing.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/EventLogger.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/Hashing.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/NetworkConfig.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/payloadUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StorageProvider.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/TypingUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/Diagnostics.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigClientBase.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/ErrorBoundary.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/OverrideAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigTypeFactories.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigOptionsCommon.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/CacheKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigUser.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/NetworkCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SDKType.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SafeJs.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/UUID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/TypingUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EventLogger.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SDKType.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/SDKFlags.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SizeOf.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SessionID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/EvaluationResponseDeltas.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SafeJs.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/EvaluationTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigUser.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/Utils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/SDKFlags.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/OverrideAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigOptionsCommon.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/ErrorBoundary.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/UrlOverrides.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EvaluationTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/UUID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/InitializeResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/MemoKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StatsigClientBase.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/UrlConfiguration.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/DownloadConfigSpecsResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/AutoCapture.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/CacheKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/EvaluationStore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/StatsigClient.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigOptionsCommon.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/Log.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/NetworkCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigDataAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StorageProvider.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/DnsTxtQuery.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/NetworkConfig.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/Diagnostics.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/node_modules/@statsig/client-core/src/StableID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigPlugin.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/DnsTxtQuery.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/StatsigClientBase.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/MemoKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/EvaluationTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/NetworkFallbackResolver.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/InitializeResponse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SessionID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigTypeFactories.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/src/LocalOverrideAdapter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/ParamStoreGetterFactory.js","webpack://statsig-sidecar-v2-beta/webpack/bootstrap","webpack://statsig-sidecar-v2-beta/webpack/runtime/compat get default export","webpack://statsig-sidecar-v2-beta/webpack/runtime/define property getters","webpack://statsig-sidecar-v2-beta/webpack/runtime/global","webpack://statsig-sidecar-v2-beta/webpack/runtime/hasOwnProperty shorthand","webpack://statsig-sidecar-v2-beta/./src/index.js"],"sourcesContent":["\"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\";\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\";\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._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 });\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 });\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._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;\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 });\nexports.ErrorTag = void 0;\nexports.ErrorTag = {\n NetworkError: 'NetworkError',\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\";\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 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 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(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\";\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;\n }\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 },\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\";\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._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 });\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 });\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.runStatsigAutoCapture = exports.AutoCapture = void 0;\nconst AutoCapture_1 = require(\"./AutoCapture\");\nObject.defineProperty(exports, \"AutoCapture\", { enumerable: true, get: function () { return AutoCapture_1.AutoCapture; } });\nObject.defineProperty(exports, \"runStatsigAutoCapture\", { enumerable: true, get: function () { return AutoCapture_1.runStatsigAutoCapture; } });\n__STATSIG__ = Object.assign(Object.assign({}, (__STATSIG__ !== null && __STATSIG__ !== void 0 ? __STATSIG__ : {})), { AutoCapture: AutoCapture_1.AutoCapture,\n runStatsigAutoCapture: AutoCapture_1.runStatsigAutoCapture });\nexports.default = __STATSIG__;\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) {\n try {\n const copy = JSON.parse(JSON.stringify(original));\n if (options != null && options.environment != null) {\n copy.statsigEnvironment = options.environment;\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.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\";\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(get) {\n try {\n return get();\n }\n catch (error) {\n if (error instanceof Error && error.name === 'SecurityError') {\n exports.Storage._setProvider(_inMemoryProvider);\n return null;\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) => _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\";\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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.DataAdapterCachePrefix = void 0;\nexports.DataAdapterCachePrefix = 'statsig.cached';\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\";\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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.NetworkParam = exports.NetworkDefault = void 0;\nexports.NetworkDefault = {\n eventsApi: 'https://prodregistryv2.org/v1',\n initializeApi: 'https://featureassets.org/v1',\n specsApi: 'https://assetsconfigcdn.org/v1',\n};\nvar NetworkParam;\n(function (NetworkParam) {\n NetworkParam[\"EventCount\"] = \"ec\";\n NetworkParam[\"SdkKey\"] = \"k\";\n NetworkParam[\"SdkType\"] = \"st\";\n NetworkParam[\"SdkVersion\"] = \"sv\";\n NetworkParam[\"Time\"] = \"t\";\n NetworkParam[\"SessionID\"] = \"sid\";\n NetworkParam[\"StatsigEncoded\"] = \"se\";\n NetworkParam[\"IsGzipped\"] = \"gz\";\n})(NetworkParam || (exports.NetworkParam = NetworkParam = {}));\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.StableID = void 0;\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Log_1 = require(\"./Log\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UUID_1 = require(\"./UUID\");\nconst PROMISE_MAP = {};\nexports.StableID = {\n get: (sdkKey) => {\n if (PROMISE_MAP[sdkKey] == null) {\n let stableID = _loadFromStorage(sdkKey);\n if (stableID == null) {\n stableID = (0, UUID_1.getUUID)();\n _persistToStorage(stableID, sdkKey);\n }\n PROMISE_MAP[sdkKey] = stableID;\n }\n return PROMISE_MAP[sdkKey];\n },\n setOverride: (override, sdkKey) => {\n PROMISE_MAP[sdkKey] = override;\n _persistToStorage(override, sdkKey);\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');\n }\n}\nfunction _loadFromStorage(sdkKey) {\n const storageKey = _getStableIDStorageKey(sdkKey);\n return (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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._addWindowEventListenerSafe)('beforeunload', () => {\n isUnloading = true;\n (0, exports._notifyVisibilityChanged)(BACKGROUND);\n});\n(0, SafeJs_1._addDocumentEventListenerSafe)('visibilitychange', () => {\n (0, exports._notifyVisibilityChanged)(document.visibilityState === 'visible' ? FOREGROUND : BACKGROUND);\n});\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\";\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 // 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 (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\";\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.20.3';\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 });\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 });\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._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\";\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 _getStatsigGlobal = () => {\n return __STATSIG__ ? __STATSIG__ : statsigGlobal;\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 return gbl.lastInstance;\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 });\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.DataAdapterCachePrefix = void 0;\nexports.DataAdapterCachePrefix = 'statsig.cached';\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 (typeof result === 'object' &&\n guard in result) {\n return result;\n }\n return result;\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._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\";\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 // 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 (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 });\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 });\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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._gatherPageViewPayload = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nfunction _gatherPageViewPayload(url) {\n var _a, _b;\n const safeDoc = (0, client_core_1._getDocumentSafe)();\n const safeWnd = (0, client_core_1._getWindowSafe)();\n if (!safeDoc || !safeWnd) {\n return {};\n }\n const navigator = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator;\n const referrer = (safeDoc === null || safeDoc === void 0 ? void 0 : safeDoc.referrer) || '';\n let refUrl = new URL('empty:');\n if (referrer) {\n try {\n refUrl = new URL(referrer || 'empty:');\n }\n catch (e) {\n /* empty */\n }\n }\n const searchInfo = getSearchInfo(refUrl);\n const campaignParams = getCampaignParams(url);\n const queryParams = {};\n url.searchParams.forEach((v, k) => {\n queryParams[k] = v;\n });\n return Object.assign(Object.assign(Object.assign(Object.assign({}, searchInfo), campaignParams), queryParams), { title: (safeDoc === null || safeDoc === void 0 ? void 0 : safeDoc.title) || '', locale: (navigator === null || navigator === void 0 ? void 0 : navigator.language) || 'unknown', hostname: url.hostname || 'unknown', pathname: url.pathname || 'unknown', referrer, screen_width: ((_a = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.screen) === null || _a === void 0 ? void 0 : _a.width) || 'unknown', screen_height: ((_b = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.screen) === null || _b === void 0 ? void 0 : _b.height) || 'unknown', viewport_width: (safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerWidth) || 'unknown', viewport_height: (safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerHeight) || 'unknown' });\n}\nexports._gatherPageViewPayload = _gatherPageViewPayload;\nfunction getCampaignParams(url) {\n const urlParams = url.searchParams;\n const campaignParams = {};\n const commonUtms = [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_term',\n 'utm_content',\n 'gclid', // Google\n 'gclsrc', // Google\n 'dclid', // DoubleClick\n 'fbclid', // Facebook\n 'msclkid', // Bing\n 'mc_eid', // Mailchimp\n 'mc_cid', // Mailchimp\n 'twclid', // Twitter\n 'li_fat_id', // LinkedIn\n 'igshid', // Instagram\n 'utm_id', // Hubspot\n 'ttc', // TikTok\n 'ttclid', // TikTok\n 'ttc_id', // TikTok\n ];\n commonUtms.forEach((p) => {\n const val = urlParams.get(p);\n if (val) {\n campaignParams[p] = val;\n }\n });\n return campaignParams;\n}\nfunction getSearchEngine(refUrl) {\n const host = refUrl.hostname;\n const engine = ['google', 'bing', 'yahoo', 'duckduckgo', 'baidu'].find((e) => host.includes(e + '.'));\n return engine || '';\n}\nfunction getSearchInfo(refUrl) {\n const searchEngine = getSearchEngine(refUrl);\n const searchQuery = refUrl.searchParams.get(searchEngine === 'yahoo' ? 'p' : 'q') || '';\n return { searchEngine, searchQuery };\n}\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._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.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.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 SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nclass StatsigClientBase {\n constructor(sdkKey, adapter, network, options) {\n var _a, _b;\n this.loadingStatus = 'Uninitialized';\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 this._sdkKey = sdkKey;\n this._options = options !== null && options !== void 0 ? options : {};\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(network);\n this._errorBoundary.wrap(adapter);\n this._errorBoundary.wrap(this._logger);\n if (!(0, SafeJs_1._isServerEnv)()) {\n const statsigGlobal = (0, __StatsigGlobal_1._getStatsigGlobal)();\n const instances = (_b = statsigGlobal.instances) !== null && _b !== void 0 ? _b : {};\n const inst = this;\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 statsigGlobal.lastInstance = inst;\n statsigGlobal.instances = instances;\n __STATSIG__ = statsigGlobal;\n }\n this.dataAdapter = adapter;\n this.dataAdapter.attach(sdkKey, options);\n this.storageProvider = StorageProvider_1.Storage;\n this._primeReadyRipcord();\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.disableLogging != null) {\n this._options.disableLogging = options.disableLogging;\n this._logger.setLoggingDisabled(options.disableLogging);\n }\n if (options.disableStorage != null) {\n this._options.disableStorage = options.disableStorage;\n StorageProvider_1.Storage._setDisabled(options.disableStorage);\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 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.$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}\nexports.StatsigClientBase = StatsigClientBase;\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) {\n this._sdkKey = _sdkKey;\n this._options = _options;\n this._emitter = _emitter;\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 _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 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, { name: 'error', error });\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 = JSON.stringify(Object.assign({ tag, exception: name, info }, 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,\n });\n (_g = this._emitter) === null || _g === void 0 ? void 0 : _g.call(this, { name: 'error', error });\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 _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}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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 });\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 });\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 });\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 });\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\";\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 SDKType_1 = require(\"./SDKType\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst DEFAULT_TIMEOUT_MS = 10000;\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._timeout = DEFAULT_TIMEOUT_MS;\n this._netConfig = {};\n this._options = {};\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 }\n post(args) {\n return __awaiter(this, void 0, void 0, function* () {\n let body = yield this._getPopulatedBody(args);\n if (args.isStatsigEncodable) {\n body = this._attemptToEncodeString(args, body);\n }\n return this._sendRequest(Object.assign({ method: 'POST', body }, args));\n });\n }\n get(args) {\n return this._sendRequest(Object.assign({ method: 'GET' }, args));\n }\n isBeaconSupported() {\n return (typeof navigator !== 'undefined' &&\n typeof navigator.sendBeacon === 'function');\n }\n beacon(args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!_ensureValidSdkKey(args)) {\n return false;\n }\n const body = yield this._getPopulatedBody(args);\n const url = yield this._getPopulatedURL(args);\n const nav = navigator;\n return nav.sendBeacon.bind(nav)(url, body);\n });\n }\n _sendRequest(args) {\n var _a, _b, _c;\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 currentAttempt = attempt !== null && attempt !== void 0 ? attempt : 1;\n const controller = typeof AbortController !== 'undefined' ? new AbortController() : null;\n const handle = setTimeout(() => controller === null || controller === void 0 ? void 0 : controller.abort(`Timeout of ${this._timeout}ms expired.`), this._timeout);\n const url = yield 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: controller === null || controller === void 0 ? void 0 : controller.signal,\n priority: args.priority,\n keepalive,\n };\n if (args.isInitialize) {\n Diagnostics_1.Diagnostics._markInitNetworkReqStart(args.sdkKey, {\n attempt: currentAttempt,\n });\n }\n const func = (_a = this._netConfig.networkOverrideFunc) !== null && _a !== void 0 ? _a : fetch;\n response = yield func(url, config);\n clearTimeout(handle);\n if (!response.ok) {\n const text = yield response.text().catch(() => 'No Text');\n const err = new Error(`NetworkError: ${url} ${text}`);\n err.name = 'NetworkError';\n throw err;\n }\n const text = yield response.text();\n if (args.isInitialize) {\n Diagnostics_1.Diagnostics._markInitNetworkReqEnd(args.sdkKey, Diagnostics_1.Diagnostics._getDiagnosticsData(response, currentAttempt, text));\n }\n return {\n body: text,\n code: response.status,\n };\n }\n catch (error) {\n const errorMessage = _getErrorMessage(controller, error);\n if (args.isInitialize) {\n Diagnostics_1.Diagnostics._markInitNetworkReqEnd(args.sdkKey, Diagnostics_1.Diagnostics._getDiagnosticsData(response, currentAttempt, '', error));\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, { name: 'error', error });\n Log_1.Log.error(`A networking error occured during ${method} request to ${url}.`, errorMessage, error);\n return null;\n }\n return this._sendRequest(Object.assign(Object.assign({}, args), { retries: retries, attempt: currentAttempt + 1 }));\n }\n });\n }\n _getPopulatedURL(args) {\n return __awaiter(this, void 0, void 0, function* () {\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]: yield 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 `${args.url}${query ? `?${query}` : ''}`;\n });\n }\n _getPopulatedBody(args) {\n return __awaiter(this, void 0, void 0, function* () {\n const { data, sdkKey } = 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 return JSON.stringify(Object.assign(Object.assign({}, data), { statsigMetadata: Object.assign(Object.assign({}, StatsigMetadata_1.StatsigMetadataProvider.get()), { stableID,\n sessionID,\n sdkType }) }));\n });\n }\n _attemptToEncodeString(args, input) {\n var _a, _b;\n const win = (0, SafeJs_1._getWindowSafe)();\n if (!args.isStatsigEncodable ||\n this._options.disableStatsigEncoding ||\n (0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-encode') != null ||\n !(win === null || win === void 0 ? void 0 : win.btoa)) {\n return input;\n }\n try {\n const result = (_a = win.btoa(input).split('').reverse().join('')) !== null && _a !== void 0 ? _a : input;\n args.params = Object.assign(Object.assign({}, ((_b = args.params) !== null && _b !== void 0 ? _b : {})), { [NetworkConfig_1.NetworkParam.StatsigEncoded]: '1' });\n return result;\n }\n catch (_c) {\n Log_1.Log.warn('/initialize request encoding failed');\n return input;\n }\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};\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}\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.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 });\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._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\";\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","\"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 StorageProvider_1 = require(\"./StorageProvider\");\nconst UrlOverrides_1 = require(\"./UrlOverrides\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst DEFAULT_QUEUE_SIZE = 50;\nconst DEFAULT_FLUSH_INTERVAL_MS = 10000;\nconst MAX_DEDUPER_KEYS = 1000;\nconst DEDUPER_WINDOW_DURATION_MS = 60000;\nconst MAX_FAILED_LOGS = 500;\nconst QUICK_FLUSH_WINDOW_MS = 200;\nconst EVENT_LOGGER_MAP = {};\nconst _safeFlushAndForget = (sdkKey) => {\n var _a;\n (_a = EVENT_LOGGER_MAP[sdkKey]) === null || _a === void 0 ? void 0 : _a.flush().catch(() => {\n // noop\n });\n};\nclass EventLogger {\n constructor(_sdkKey, _emitter, _network, _options) {\n var _a;\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._isLoggingDisabled = (_options === null || _options === void 0 ? void 0 : _options.disableLogging) === true;\n this._maxQueueSize = (_a = _options === null || _options === void 0 ? void 0 : _options.loggingBufferMaxSize) !== null && _a !== void 0 ? _a : DEFAULT_QUEUE_SIZE;\n const config = _options === null || _options === void 0 ? void 0 : _options.networkConfig;\n this._logEventUrl = (0, UrlOverrides_1._getOverridableUrl)(config === null || config === void 0 ? void 0 : config.logEventUrl, config === null || config === void 0 ? void 0 : config.api, '/rgstr', NetworkConfig_1.NetworkDefault.eventsApi);\n }\n setLoggingDisabled(isDisabled) {\n this._isLoggingDisabled = isDisabled;\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 _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 if ((0, SafeJs_1._isServerEnv)()) {\n return; // do not run in server environments\n }\n EVENT_LOGGER_MAP[this._sdkKey] = this;\n (0, VisibilityObserving_1._subscribeToVisiblityChanged)((visibility) => {\n if (visibility === 'background') {\n _safeFlushAndForget(this._sdkKey);\n }\n });\n this._retryFailedLogs();\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 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 return 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(() => _safeFlushAndForget(this._sdkKey), QUICK_FLUSH_WINDOW_MS);\n }\n _shouldLogEvent(event) {\n if ((0, SafeJs_1._isServerEnv)()) {\n return false; // do not run in server environments\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 ].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._isLoggingDisabled) {\n this._saveFailedLogsToStorage(events);\n return;\n }\n try {\n const isInBackground = !(0, VisibilityObserving_1._isCurrentlyVisible)();\n const shouldUseBeacon = isInBackground &&\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 const response = shouldUseBeacon\n ? yield this._sendEventsViaBeacon(events)\n : yield this._sendEventsViaPost(events);\n if (response.success) {\n this._emitter({\n name: 'logs_flushed',\n events,\n });\n }\n else {\n this._saveFailedLogsToStorage(events);\n }\n }\n catch (_c) {\n Log_1.Log.warn('Failed to flush events.');\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 __awaiter(this, void 0, void 0, function* () {\n return {\n success: yield this._network.beacon(this._getRequestData(events)),\n };\n });\n }\n _getRequestData(events) {\n return {\n sdkKey: this._sdkKey,\n data: {\n events,\n },\n url: this._logEventUrl,\n retries: 3,\n isCompressable: true,\n params: {\n [NetworkConfig_1.NetworkParam.EventCount]: String(events.length),\n },\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() {\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 StorageProvider_1.Storage.removeItem(storageKey);\n yield this._sendEvents(events);\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._flushIntervalId !== intervalId) {\n clearInterval(intervalId);\n }\n else {\n _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.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.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._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\";\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.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) {\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 return __awaiter(this, void 0, void 0, function* () {\n let cachedData = null;\n if (cachedResult && this._isCachedResultValidFor204(cachedResult, user)) {\n cachedData = cachedResult.data;\n }\n const latest = yield this._fetchFromNetwork(cachedData, user, options);\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}\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.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._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 });\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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._getSafeNetworkInformation = exports._registerEventHandler = exports._getSanitizedPageUrl = exports._getSafeUrl = exports._shouldLogEvent = exports._getTargetNode = exports._gatherEventData = exports._gatherDatasetProperties = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nfunction _gatherDatasetProperties(el) {\n const dataset = {};\n if (!el) {\n return dataset;\n }\n const attr = el === null || el === void 0 ? void 0 : el.dataset;\n if (!attr) {\n return dataset;\n }\n for (const key in attr) {\n dataset[`data-${key}`] = attr[key] || '';\n }\n return dataset;\n}\nexports._gatherDatasetProperties = _gatherDatasetProperties;\nfunction _gatherEventData(target) {\n var _a;\n const tagName = target.tagName.toLowerCase();\n const metadata = {};\n const value = (0, client_core_1._getCurrentPageUrlSafe)() || '';\n metadata['tagName'] = tagName;\n if (tagName === 'form') {\n metadata['action'] = target.getAttribute('action');\n metadata['method'] = (_a = target.getAttribute('method')) !== null && _a !== void 0 ? _a : 'GET';\n metadata['formName'] = target.getAttribute('name');\n metadata['formId'] = target.getAttribute('id');\n }\n if (['input', 'select', 'textarea'].includes(tagName) &&\n target.getAttribute('type') !== 'password') {\n metadata['content'] = target.value;\n metadata['inputName'] = target.getAttribute('name');\n }\n const anchor = _getAnchorNodeInHierarchy(target);\n if (anchor) {\n metadata['href'] = anchor.getAttribute('href');\n }\n if (tagName === 'button' || anchor) {\n metadata['content'] = (target.textContent || '').trim();\n const dataset = _gatherDatasetProperties(anchor || target);\n Object.assign(metadata, dataset);\n }\n return { value, metadata };\n}\nexports._gatherEventData = _gatherEventData;\nfunction _getTargetNode(e) {\n if (!e) {\n return null;\n }\n let target = e.target || e.srcElement;\n if (!target || !(target instanceof Element)) {\n return null;\n }\n if (target.nodeType === 3) {\n target = (target.parentNode || null);\n }\n return target;\n}\nexports._getTargetNode = _getTargetNode;\nfunction _shouldLogEvent(e, el) {\n if (!e || !el || el.nodeType !== 1) {\n return false;\n }\n const tagName = el.tagName.toLowerCase();\n const eventType = e.type.toLowerCase();\n switch (tagName) {\n case 'html':\n return false;\n case 'form':\n return eventType === 'submit';\n case 'input':\n case 'select':\n case 'textarea':\n return ['change'].includes(eventType);\n default:\n if (eventType === 'click') {\n if (tagName === 'button') {\n return true;\n }\n const anchor = _getAnchorNodeInHierarchy(el);\n if (anchor) {\n return true;\n }\n }\n return false;\n }\n}\nexports._shouldLogEvent = _shouldLogEvent;\nfunction _getSafeUrl() {\n var _a, _b, _c;\n const href = (_c = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.href) !== null && _c !== void 0 ? _c : '';\n let url;\n try {\n url = new URL(href);\n }\n catch (e) {\n url = new URL('error:');\n }\n return url;\n}\nexports._getSafeUrl = _getSafeUrl;\nfunction _getSanitizedPageUrl() {\n return (0, client_core_1._getCurrentPageUrlSafe)() || '';\n}\nexports._getSanitizedPageUrl = _getSanitizedPageUrl;\nfunction _registerEventHandler(element, eventType, handler) {\n if (!element || !element.addEventListener) {\n return;\n }\n element.addEventListener(eventType, handler, true);\n}\nexports._registerEventHandler = _registerEventHandler;\nfunction _getSafeNetworkInformation() {\n const win = (0, client_core_1._getWindowSafe)();\n if (!win || !win.navigator) {\n return null;\n }\n const connection = win.navigator.connection;\n if (!connection) {\n return null;\n }\n return connection;\n}\nexports._getSafeNetworkInformation = _getSafeNetworkInformation;\nfunction _getAnchorNodeInHierarchy(node) {\n if (!node) {\n return null;\n }\n let parent = node;\n while (parent) {\n const parentTagName = parent.tagName.toLowerCase();\n if (['body', 'document'].includes(parentTagName)) {\n return null;\n }\n if (parent.tagName.toLowerCase() === 'a') {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n}\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.0.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\";\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 });\nexports._getOverridableUrl = void 0;\nfunction _getOverridableUrl(overrideUrl, overrideApi, defaultEndpoint, defaultApi) {\n if (overrideUrl) {\n return overrideUrl;\n }\n else if (overrideApi) {\n return `${overrideApi}${defaultEndpoint}`;\n }\n else {\n return `${defaultApi}${defaultEndpoint}`;\n }\n}\nexports._getOverridableUrl = _getOverridableUrl;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\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.Diagnostics = exports.Log = exports.Storage = exports.EventLogger = void 0;\n/** Statsig Global should go first */\nrequire(\"./$_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(\"./NetworkCore\"), exports);\n__exportStar(require(\"./NetworkConfig\"), 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(\"./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(\"./UrlOverrides\"), exports);\n__exportStar(require(\"./UUID\"), exports);\n__exportStar(require(\"./VisibilityObserving\"), exports);\n__STATSIG__ = Object.assign(Object.assign({}, (__STATSIG__ !== null && __STATSIG__ !== void 0 ? __STATSIG__ : {})), { Log: Log_1.Log,\n SDK_VERSION: StatsigMetadata_1.SDK_VERSION });\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 && 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);\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 _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' }));\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);\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.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 });\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\";\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.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._createLayerParameterExposure = exports._createConfigExposure = 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 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 || eventName === CONFIG_EXPOSURE_NAME;\n};\nexports._isExposureEvent = _isExposureEvent;\nconst _createGateExposure = (user, gate) => {\n var _a, _b;\n return _createExposure(GATE_EXPOSURE_NAME, user, gate.details, {\n gate: gate.name,\n gateValue: String(gate.value),\n ruleID: gate.ruleID,\n }, (_b = (_a = gate.__evaluation) === null || _a === void 0 ? void 0 : _a.secondary_exposures) !== null && _b !== void 0 ? _b : []);\n};\nexports._createGateExposure = _createGateExposure;\nconst _createConfigExposure = (user, config) => {\n var _a, _b;\n return _createExposure(CONFIG_EXPOSURE_NAME, user, config.details, {\n config: config.name,\n ruleID: config.ruleID,\n }, (_b = (_a = config.__evaluation) === null || _a === void 0 ? void 0 : _a.secondary_exposures) !== null && _b !== void 0 ? _b : []);\n};\nexports._createConfigExposure = _createConfigExposure;\nconst _createLayerParameterExposure = (user, layer, parameterName) => {\n var _a, _b, _c;\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 return _createExposure(LAYER_EXPOSURE_NAME, user, layer.details, {\n config: layer.name,\n parameterName,\n ruleID: layer.ruleID,\n allocatedExperiment,\n isExplicitParameter: String(isExplicit),\n }, secondaryExposures);\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 });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AutoCapture = exports.runStatsigAutoCapture = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst Utils_1 = require(\"./Utils\");\nconst payloadUtils_1 = require(\"./payloadUtils\");\nfunction runStatsigAutoCapture(client) {\n return new AutoCapture(client);\n}\nexports.runStatsigAutoCapture = runStatsigAutoCapture;\nclass AutoCapture {\n constructor(_client) {\n var _a, _b, _c;\n this._client = _client;\n this._startTime = Date.now();\n this._deepestScroll = 0;\n this._disabledEvents = {};\n const { sdkKey, errorBoundary, values } = _client.getContext();\n this._disabledEvents = (_b = (_a = values === null || values === void 0 ? void 0 : values.auto_capture_settings) === null || _a === void 0 ? void 0 : _a.disabled_events) !== null && _b !== void 0 ? _b : {};\n this._errorBoundary = errorBoundary;\n this._errorBoundary.wrap(this);\n const doc = (0, client_core_1._getDocumentSafe)();\n if (!(0, client_core_1._isServerEnv)()) {\n __STATSIG__ = (0, client_core_1._getStatsigGlobal)();\n const instances = (_c = __STATSIG__.acInstances) !== null && _c !== void 0 ? _c : {};\n instances[sdkKey] = this;\n __STATSIG__.acInstances = instances;\n }\n if ((doc === null || doc === void 0 ? void 0 : doc.readyState) === 'loading') {\n doc.addEventListener('DOMContentLoaded', () => this._initialize());\n return;\n }\n this._initialize();\n }\n _addEventHandlers() {\n const win = (0, client_core_1._getWindowSafe)();\n const doc = (0, client_core_1._getDocumentSafe)();\n if (!win || !doc) {\n return;\n }\n const eventHandler = (event) => {\n this._autoLogEvent(event || win.event);\n };\n (0, Utils_1._registerEventHandler)(doc, 'click', eventHandler);\n (0, Utils_1._registerEventHandler)(doc, 'submit', eventHandler);\n (0, Utils_1._registerEventHandler)(win, 'error', eventHandler);\n (0, Utils_1._registerEventHandler)(win, 'beforeunload', () => this._pageUnloadHandler());\n (0, Utils_1._registerEventHandler)(win, 'scroll', () => this._scrollEventHandler());\n }\n _autoLogEvent(event) {\n var _a;\n let eventType = (_a = event.type) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n if (eventType === 'error' && event instanceof ErrorEvent) {\n this._logError(event);\n return;\n }\n const target = (0, Utils_1._getTargetNode)(event);\n if (!target) {\n return;\n }\n if (!(0, Utils_1._shouldLogEvent)(event, target)) {\n return;\n }\n if (eventType === 'submit') {\n eventType = 'form_submit';\n }\n const { value, metadata } = (0, Utils_1._gatherEventData)(target);\n this._enqueueAutoCapture(eventType, value, metadata);\n }\n _initialize() {\n this._addEventHandlers();\n this._logSessionStart();\n this._logPageView();\n this._logPerformance();\n }\n _logError(event) {\n const error = (event === null || event === void 0 ? void 0 : event.error) || {};\n let errorStr = error;\n if (typeof error === 'object') {\n try {\n errorStr = JSON.stringify(error);\n }\n catch (e) {\n errorStr =\n typeof (error === null || error === void 0 ? void 0 : error.toString) === 'function'\n ? error.toString()\n : 'Unknown Error';\n }\n }\n this._enqueueAutoCapture('error', event.message, {\n message: event.message,\n filename: event.filename,\n lineno: event.lineno,\n colno: event.colno,\n error_str: errorStr,\n });\n }\n _logSessionStart() {\n const session = this._getSessionFromClient();\n try {\n if (!this._isNewSession(session)) {\n return;\n }\n this._enqueueAutoCapture('session_start', (0, Utils_1._getSanitizedPageUrl)(), { sessionID: session.data.sessionID }, { flushImmediately: true });\n }\n catch (err) {\n this._errorBoundary.logError('AC::logSession', err);\n }\n }\n _logPageView() {\n setTimeout(() => {\n const url = (0, Utils_1._getSafeUrl)();\n const payload = (0, payloadUtils_1._gatherPageViewPayload)(url);\n this._enqueueAutoCapture('page_view', (0, Utils_1._getSanitizedPageUrl)(), payload, {\n flushImmediately: true,\n addNewSessionMetadata: true,\n });\n }, 1);\n }\n _logPerformance() {\n const win = (0, client_core_1._getWindowSafe)();\n if (typeof (win === null || win === void 0 ? void 0 : win.performance) === 'undefined' ||\n typeof win.performance.getEntriesByType !== 'function' ||\n typeof win.performance.getEntriesByName !== 'function') {\n return;\n }\n setTimeout(() => {\n const metadata = {};\n const navEntries = win.performance.getEntriesByType('navigation');\n if (navEntries &&\n navEntries.length > 0 &&\n navEntries[0] instanceof PerformanceNavigationTiming) {\n const nav = navEntries[0];\n metadata['load_time_ms'] = nav.duration;\n metadata['dom_interactive_time_ms'] =\n nav.domInteractive - nav.startTime;\n metadata['redirect_count'] = nav.redirectCount;\n metadata['transfer_bytes'] = nav.transferSize;\n }\n const fpEntries = win.performance.getEntriesByName('first-contentful-paint');\n if (fpEntries &&\n fpEntries.length > 0 &&\n fpEntries[0] instanceof PerformancePaintTiming) {\n metadata['first_contentful_paint_time_ms'] = fpEntries[0].startTime;\n }\n const networkInfo = (0, Utils_1._getSafeNetworkInformation)();\n if (networkInfo) {\n metadata['effective_connection_type'] = networkInfo.effectiveType;\n metadata['rtt_ms'] = networkInfo.rtt;\n metadata['downlink_kbps'] = networkInfo.downlink;\n metadata['save_data'] = networkInfo.saveData;\n }\n this._enqueueAutoCapture('performance', (0, Utils_1._getSanitizedPageUrl)(), metadata);\n }, 1);\n }\n _pageUnloadHandler() {\n this._enqueueAutoCapture('page_view_end', (0, Utils_1._getSanitizedPageUrl)(), {\n scrollDepth: this._deepestScroll,\n pageViewLength: Date.now() - this._startTime,\n }, { flushImmediately: true });\n }\n _enqueueAutoCapture(name, value, metadata, options) {\n var _a, _b, _c;\n if (this._disabledEvents[name]) {\n return;\n }\n const session = this._getSessionFromClient();\n try {\n const logMetadata = Object.assign({ sessionID: session.data.sessionID, page_url: (_c = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.href) !== null && _c !== void 0 ? _c : '' }, metadata);\n if (options === null || options === void 0 ? void 0 : options.addNewSessionMetadata) {\n logMetadata['isNewSession'] = String(this._isNewSession(session));\n }\n const event = {\n eventName: `auto_capture::${name}`,\n value,\n metadata: logMetadata,\n };\n this._client.logEvent(event);\n if (options === null || options === void 0 ? void 0 : options.flushImmediately) {\n this._client.flush().catch((e) => {\n client_core_1.Log.error(e);\n });\n }\n }\n catch (err) {\n this._errorBoundary.logError('AC::enqueue', err);\n }\n }\n _scrollEventHandler() {\n var _a, _b, _c, _d;\n const scrollHeight = (_b = (_a = (0, client_core_1._getDocumentSafe)()) === null || _a === void 0 ? void 0 : _a.body.scrollHeight) !== null && _b !== void 0 ? _b : 1;\n const win = (0, client_core_1._getWindowSafe)();\n const scrollY = (_c = win === null || win === void 0 ? void 0 : win.scrollY) !== null && _c !== void 0 ? _c : 1;\n const innerHeight = (_d = win === null || win === void 0 ? void 0 : win.innerHeight) !== null && _d !== void 0 ? _d : 1;\n this._deepestScroll = Math.max(this._deepestScroll, Math.min(100, Math.round(((scrollY + innerHeight) / scrollHeight) * 100)));\n }\n _isNewSession(session) {\n // within the last second\n return Math.abs(session.data.startTime - Date.now()) < 1000;\n }\n _getSessionFromClient() {\n return this._client.getContext().session;\n }\n}\nexports.AutoCapture = AutoCapture;\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._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 });\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 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 userWithoutAnalyticsOnlyMetadata = Object.assign(Object.assign({}, user), { analyticsOnlyMetadata: undefined });\n if ((0, client_core_1._getFullUserHash)(userWithoutAnalyticsOnlyMetadata) !==\n (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 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;\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 user.analyticsOnlyMetadata = Object.assign(Object.assign({}, user.analyticsOnlyMetadata), this._possibleFirstTouchMetadata);\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\";\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._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 && 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);\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 _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' }));\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);\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\";\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}\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"None\"] = 0] = \"None\";\n LogLevel[LogLevel[\"Error\"] = 1] = \"Error\";\n LogLevel[LogLevel[\"Warn\"] = 2] = \"Warn\";\n LogLevel[LogLevel[\"Info\"] = 3] = \"Info\";\n LogLevel[LogLevel[\"Debug\"] = 4] = \"Debug\";\n})(LogLevel || (exports.LogLevel = LogLevel = {}));\nclass Log {\n static info(...args) {\n if (this.level >= LogLevel.Info) {\n console.info('\\x1b[34m%s\\x1b[0m', _INFO, ...addTag(args));\n }\n }\n static debug(...args) {\n if (this.level >= LogLevel.Debug) {\n console.debug('\\x1b[32m%s\\x1b[0m', DEBUG, ...addTag(args));\n }\n }\n static warn(...args) {\n if (this.level >= LogLevel.Warn) {\n console.warn('\\x1b[33m%s\\x1b[0m', _WARN, ...addTag(args));\n }\n }\n static error(...args) {\n if (this.level >= LogLevel.Error) {\n console.error('\\x1b[31m%s\\x1b[0m', ERROR, ...addTag(args));\n }\n }\n}\nexports.Log = Log;\nLog.level = LogLevel.Warn;\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 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 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(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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.20.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\";\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 });\n__exportStar(require(\"./LocalOverrideAdapter\"), exports);\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.DataAdapterCachePrefix = void 0;\nexports.DataAdapterCachePrefix = 'statsig.cached';\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\";\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 });\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\";\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\";\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\";\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._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\";\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.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 });\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._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.StatsigSession = exports.SessionID = void 0;\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 if (_isIdle(data) || _hasRunTooLong(data)) {\n data.sessionID = (0, UUID_1.getUUID)();\n data.startTime = now;\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 const sdkKey = session.sdkKey;\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 const client = __STATSIG__ === null || __STATSIG__ === void 0 ? void 0 : __STATSIG__.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._makeTypedGet = exports._mergeOverride = exports._makeLayer = exports._makeExperiment = exports._makeDynamicConfig = exports._makeFeatureGate = void 0;\nconst TypingUtils_1 = require(\"./TypingUtils\");\nconst DEFAULT_RULE = 'default';\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 : DEFAULT_RULE,\n __evaluation: evaluation,\n value,\n };\n}\nfunction _makeFeatureGate(name, details, evaluation) {\n return _makeEvaluation(name, details, evaluation, (evaluation === null || evaluation === void 0 ? void 0 : evaluation.value) === true);\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(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(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(value, exposeFunc) });\n}\nexports._mergeOverride = _mergeOverride;\nfunction _makeTypedGet(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 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\";\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.LocalOverrideAdapter = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst LOCAL_OVERRIDE_REASON = 'LocalOverride:Recognized';\nfunction _makeEmptyStore() {\n return {\n gate: {},\n dynamicConfig: {},\n experiment: {},\n layer: {},\n };\n}\nfunction _mergeOverrides(currentValues, newValues) {\n return {\n gate: Object.assign({}, currentValues.gate, newValues.gate),\n dynamicConfig: Object.assign({}, currentValues.dynamicConfig, newValues.dynamicConfig),\n experiment: Object.assign({}, currentValues.experiment, newValues.experiment),\n layer: Object.assign({}, currentValues.layer, newValues.layer),\n };\n}\nclass LocalOverrideAdapter {\n constructor(sdkKey) {\n this._overrides = _makeEmptyStore();\n this._sdkKey = sdkKey !== null && sdkKey !== void 0 ? sdkKey : null;\n }\n _getLocalOverridesStorageKey(sdkKey) {\n return `statsig.local-overrides.${(0, client_core_1._getStorageKey)(sdkKey)}`;\n }\n loadFromStorage() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._sdkKey == null) {\n return;\n }\n if (!client_core_1.Storage.isReady()) {\n yield client_core_1.Storage.isReadyResolver();\n }\n const storageKey = this._getLocalOverridesStorageKey(this._sdkKey);\n const storedOverrides = client_core_1.Storage.getItem(storageKey);\n const overrides = storedOverrides\n ? (0, client_core_1._typedJsonParse)(storedOverrides, 'gate', 'LocalOverrideAdapter overrides')\n : null;\n const hasInMemoryOverrides = this._hasInMemoryOverrides();\n if (overrides) {\n // Merge overrides in memory with stored overrides.\n // WARN: This is a union of overrides. Trying to remove an override\n // before storage is ready won't remove the override in storage.\n this._overrides = hasInMemoryOverrides\n ? _mergeOverrides(overrides, this._overrides)\n : overrides;\n }\n if (hasInMemoryOverrides) {\n this._saveOverridesToStorage();\n }\n });\n }\n _saveOverridesToStorage() {\n if (this._sdkKey == null || !client_core_1.Storage.isReady()) {\n return;\n }\n const storageKey = this._getLocalOverridesStorageKey(this._sdkKey);\n client_core_1.Storage.setItem(storageKey, JSON.stringify(this._overrides));\n }\n overrideGate(name, value) {\n this._overrides.gate[name] = value;\n this._overrides.gate[(0, client_core_1._DJB2)(name)] = value;\n this._saveOverridesToStorage();\n }\n _warnIfStorageNotReady() {\n if (!client_core_1.Storage.isReady()) {\n client_core_1.Log.warn('Storage is not ready. Override removal may not persist.');\n }\n }\n removeGateOverride(name) {\n this._warnIfStorageNotReady();\n delete this._overrides.gate[name];\n delete this._overrides.gate[(0, client_core_1._DJB2)(name)];\n this._saveOverridesToStorage();\n }\n getGateOverride(current, _user) {\n var _a;\n const overridden = (_a = this._overrides.gate[current.name]) !== null && _a !== void 0 ? _a : this._overrides.gate[(0, client_core_1._DJB2)(current.name)];\n if (overridden == null) {\n return null;\n }\n return Object.assign(Object.assign({}, current), { value: overridden, details: Object.assign(Object.assign({}, current.details), { reason: LOCAL_OVERRIDE_REASON }) });\n }\n overrideDynamicConfig(name, value) {\n this._overrides.dynamicConfig[name] = value;\n this._overrides.dynamicConfig[(0, client_core_1._DJB2)(name)] = value;\n this._saveOverridesToStorage();\n }\n removeDynamicConfigOverride(name) {\n this._warnIfStorageNotReady();\n delete this._overrides.dynamicConfig[name];\n delete this._overrides.dynamicConfig[(0, client_core_1._DJB2)(name)];\n this._saveOverridesToStorage();\n }\n getDynamicConfigOverride(current, _user) {\n return this._getConfigOverride(current, this._overrides.dynamicConfig);\n }\n overrideExperiment(name, value) {\n this._overrides.experiment[name] = value;\n this._overrides.experiment[(0, client_core_1._DJB2)(name)] = value;\n this._saveOverridesToStorage();\n }\n removeExperimentOverride(name) {\n this._warnIfStorageNotReady();\n delete this._overrides.experiment[name];\n delete this._overrides.experiment[(0, client_core_1._DJB2)(name)];\n this._saveOverridesToStorage();\n }\n getExperimentOverride(current, _user) {\n return this._getConfigOverride(current, this._overrides.experiment);\n }\n overrideLayer(name, value) {\n this._overrides.layer[name] = value;\n this._overrides.layer[(0, client_core_1._DJB2)(name)] = value;\n this._saveOverridesToStorage();\n }\n removeLayerOverride(name) {\n this._warnIfStorageNotReady();\n delete this._overrides.layer[name];\n delete this._overrides.layer[(0, client_core_1._DJB2)(name)];\n this._saveOverridesToStorage();\n }\n getAllOverrides() {\n return JSON.parse(JSON.stringify(this._overrides));\n }\n removeAllOverrides() {\n this._warnIfStorageNotReady();\n this._overrides = _makeEmptyStore();\n this._saveOverridesToStorage();\n }\n getLayerOverride(current, _user) {\n var _a;\n const overridden = (_a = this._overrides.layer[current.name]) !== null && _a !== void 0 ? _a : this._overrides.layer[(0, client_core_1._DJB2)(current.name)];\n if (overridden == null) {\n return null;\n }\n return Object.assign(Object.assign({}, current), { __value: overridden, get: (0, client_core_1._makeTypedGet)(current.name, overridden), details: Object.assign(Object.assign({}, current.details), { reason: LOCAL_OVERRIDE_REASON }) });\n }\n _getConfigOverride(current, lookup) {\n var _a;\n const overridden = (_a = lookup[current.name]) !== null && _a !== void 0 ? _a : lookup[(0, client_core_1._DJB2)(current.name)];\n if (overridden == null) {\n return null;\n }\n return Object.assign(Object.assign({}, current), { value: overridden, get: (0, client_core_1._makeTypedGet)(current.name, overridden), details: Object.assign(Object.assign({}, current.details), { reason: LOCAL_OVERRIDE_REASON }) });\n }\n _hasInMemoryOverrides() {\n return (Object.keys(this._overrides.gate).length > 0 ||\n Object.keys(this._overrides.dynamicConfig).length > 0 ||\n Object.keys(this._overrides.experiment).length > 0 ||\n Object.keys(this._overrides.layer).length > 0);\n }\n}\nexports.LocalOverrideAdapter = LocalOverrideAdapter;\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","// 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))","import { LocalOverrideAdapter } from \"@statsig/js-local-overrides\";\nimport { StatsigClient } from \"@statsig/js-client\";\nimport { runStatsigAutoCapture } from \"@statsig/web-analytics\";\n\nwindow[\"StatsigSidecar\"] = window[\"StatsigSidecar\"] || {\n _statsigInstance: null,\n _queuedEvents: [],\n _clientInitialized: false,\n _redirKey: \"_stsgnoredir\",\n\n activateExperiment: function (expName) {\n // expName is what's shown in console; exp.name is not.\n const matchedExps = this._getMatchingExperiments();\n const foundExp = matchedExps.find(exp => exp.value[\"sidecarExperimentName\"] === expName);\n if (foundExp) {\n StatsigSidecar._performExperiments([foundExp.name]);\n }\n },\n\n findElementToObserve: function (query) {\n while (query) {\n try {\n const element = document.querySelector(query);\n if (element) {\n return element;\n }\n } catch (e) {}\n query = query.substring(0, query.lastIndexOf(\">\"));\n }\n return document.body;\n },\n\n _flushQueuedEvents: function () {\n if (this._queuedEvents.length === 0) {\n return;\n }\n if (!this._statsigInstance) {\n return;\n }\n\n const events = [...this._queuedEvents];\n this._queuedEvents = [];\n events.forEach((event) => {\n this._statsigInstance.logEvent(\n event.eventName,\n event.value,\n event.metadata\n );\n });\n this._statsigInstance.flush && this._statsigInstance.flush();\n },\n\n _getMatchingExperiments: function () {\n const matchingExps = [];\n const configList = this._statsigInstance.getConfigList();\n let url = window.location.href;\n try {\n const u = new URL(url);\n // This check is important or else it messes up the original URL\n if (u.searchParams.has(\"overrideuser\")) {\n u.searchParams.delete(\"overrideuser\");\n }\n url = u.toString();\n } catch (e) {}\n configList.forEach((config) => {\n const exp = this._statsigInstance.getExperiment(config);\n\n if (exp.value[\"!statsig_sidecar_directives\"]) {\n if (this._isMatchingExperiment(url, exp.value[\"sidecarURLFilters\"])) {\n matchingExps.push(exp);\n }\n }\n });\n return matchingExps;\n },\n\n getStatsigInstance: function () {\n return this._statsigInstance;\n },\n\n _isMatchingExperiment: function (url, filters) {\n if (!filters || filters.length === 0) {\n return true;\n }\n for (const filter of filters) {\n if (filter.type === \"contains\") {\n if (url.includes(filter.value)) {\n return true;\n }\n } else if (filter.type === \"equals\") {\n if (url === filter.value) {\n return true;\n }\n } else if (filter.type === \"regex\") {\n if (RegExp(filter.value).test(url)) {\n return true;\n }\n } else if (filter.type === \"path\") {\n const path = new URL(url).pathname;\n if (path === filter.value) {\n return true;\n }\n }\n }\n return false;\n },\n\n _isIOS: function () {\n return /iPad|iPhone|iPod/.test(navigator?.userAgent ?? \"\");\n },\n\n logEvent: function (eventName, value, metadata) {\n if (!this._statsigInstance || !this._clientInitialized) {\n this._queuedEvents.push({ eventName, value, metadata });\n return;\n }\n\n this._flushQueuedEvents();\n this._statsigInstance.logEvent(eventName, value, metadata);\n },\n\n _observeMutation: function (element, modifierFunc) {\n const config = {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n characterDataOldValue: false,\n };\n const callback = (mutationsList, observer) => {\n setTimeout(() => {\n modifierFunc();\n }, 0);\n };\n const observer = new MutationObserver(callback);\n observer.observe(element, config);\n modifierFunc();\n },\n\n _observePageChanges: function (expIds) {\n const ps = history.pushState;\n const rs = history.replaceState;\n\n const rerun = () => {\n StatsigSidecar.runAllExperiments(expIds);\n };\n\n history.pushState = function (...n) {\n ps.apply(history, n);\n rerun();\n };\n history.replaceState = function (...n) {\n rs.apply(history, n);\n rerun();\n };\n window.addEventListener(\"hashchange\", rerun);\n window.addEventListener(\"popstate\", rerun);\n },\n\n _performAfterLoad: function (callback) {\n if (/complete|interactive|loaded/.test(document.readyState)) {\n callback();\n } else {\n document.addEventListener(\"DOMContentLoaded\", () => {\n callback();\n });\n }\n },\n\n performAttributeChange: function (query, attribute, value, removeAttrs = []) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const element = document.querySelector(query);\n if (element && element.getAttribute(attribute) !== value) {\n element.setAttribute(attribute, value);\n removeAttrs?.forEach((attr) => {\n element.removeAttribute(attr);\n });\n }\n });\n },\n\n performContentChange: function (query, value) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const element = document.querySelector(query);\n if (element && element.innerHTML !== value) {\n element.innerHTML = value;\n }\n });\n },\n\n _performDirective: function (directive) {\n console.log(directive);\n switch (directive.type) {\n case \"content\":\n this._performAfterLoad(() => {\n this.performContentChange(directive.selector, directive.value);\n });\n break;\n\n case \"style\":\n this._performAfterLoad(() => {\n this.performStyleChange(\n directive.selector,\n directive.key,\n directive.value\n );\n });\n break;\n\n case \"properties\":\n this._performAfterLoad(() => {\n directive.metadata?.forEach((property) => {\n if (property.type === \"style\") {\n this.performStyleChange(\n property.selector,\n property.name,\n property.value\n );\n } else if (property.type === \"attribute\") {\n this.performAttributeChange(\n property.selector,\n property.name,\n property.value\n );\n }\n });\n });\n break;\n\n case \"attribute\":\n this._performAfterLoad(() => {\n this.performAttributeChange(\n directive.selector,\n directive.key,\n directive.value\n );\n });\n break;\n\n case \"image\":\n this._performAfterLoad(() => {\n this.performAttributeChange(\n directive.selector,\n \"src\",\n directive.value,\n [\"srcset\"]\n );\n });\n break;\n\n case \"reorder\":\n this._performAfterLoad(() => {\n this.performReorderElement(\n directive.selector,\n directive.operator,\n directive.value\n );\n });\n break;\n\n case \"code\":\n this.performInjectScript(directive.value);\n break;\n\n case \"inject-style\":\n this.performInjectStyle(directive.value);\n break;\n\n case \"redirect\":\n this.redirectPage(directive.value);\n break;\n }\n },\n\n _performExperiments: function (expIds) {\n if (Array.isArray(expIds)) {\n expIds.forEach((expId) => {\n const expConfig = this._statsigInstance.getExperiment(expId);\n const directives = expConfig.get(\"!statsig_sidecar_directives\", []);\n directives.forEach((directive) => {\n try {\n this._performDirective(directive);\n } catch (e) {\n console.error(\"Failed to perform directive:\", e);\n }\n });\n });\n }\n },\n\n performInjectScript: function (value) {\n const script = document.createElement(\"script\");\n script.setAttribute(\"nonce\", this.scriptNonce);\n script.nonce = this.scriptNonce;\n script.innerHTML = value;\n document.head.appendChild(script);\n },\n\n performInjectStyle: function (value) {\n const style = document.createElement(\"style\");\n style.innerHTML = value;\n document.head.appendChild(style);\n },\n\n performReorderElement: function (query, operator, anchorQuery) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const target = document.querySelector(query);\n const anchor = document.querySelector(anchorQuery);\n if (!target || !anchor) {\n return;\n }\n\n switch (operator) {\n case \"before\":\n anchor.before(target);\n break;\n case \"after\":\n anchor.after(target);\n break;\n case \"first\":\n anchor.prepend(target);\n break;\n case \"last\":\n anchor.append(target);\n break;\n }\n });\n },\n\n performStyleChange: function (query, style, value) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const element = document.querySelector(query);\n if (element) {\n element.style.setProperty(style, value);\n // const existingStyle = element.getAttribute(\"style\") || \"\";\n // if (!existingStyle.includes(` ${value}`)) {\n // const newStyle = `${existingStyle}; ${value}`;\n // element.setAttribute(\"style\", newStyle);\n // }\n }\n });\n },\n\n processEvent: function (event) {\n if (!event || !event.detail) {\n return false;\n }\n\n const detail = event.detail;\n if (detail.name === \"inject-script\") {\n this.performInjectScript(detail.value);\n return false;\n }\n },\n\n redirectPage: async function (url) {\n this._flushQueuedEvents();\n\n if (!window || !window.location || !url || window.location.href == url) {\n return;\n }\n\n try {\n const currentUrl = new URL(window.location.href);\n if (currentUrl.searchParams.has(this._redirKey)) {\n return;\n }\n\n const newUrl = new URL(url, currentUrl);\n for (const key of currentUrl.searchParams.keys()) {\n if (!newUrl.searchParams.has(key)) {\n newUrl.searchParams.set(key, currentUrl.searchParams.get(key));\n }\n }\n newUrl.searchParams.set(this._redirKey, \"1\");\n\n if (this._isIOS()) {\n await this._statsigInstance.flush();\n }\n\n window.location.href = newUrl.toString();\n } catch (e) {\n window.location.href = url;\n }\n },\n\n resetBody: function () {\n const sbpd = document.getElementById(\"__sbpd\");\n if (sbpd) {\n sbpd.parentElement.removeChild(sbpd);\n }\n },\n\n runAllExperiments: function (expIds = null) {\n if (!expIds) {\n const matchingExps = this._getMatchingExperiments();\n this._runPreExperimentScripts(matchingExps);\n expIds = matchingExps\n .filter(exp => !exp.value[\"sidecarDisableAutoRun\"])\n .map(exp => exp.name);\n }\n\n if (expIds) {\n try {\n this._performExperiments(expIds);\n } catch (e) {\n console.error(\"Failed to perform experiments:\", e);\n }\n }\n this.resetBody();\n if (window?.postExperimentCallback) {\n window.postExperimentCallback(this._statsigInstance, expIds);\n }\n },\n\n _runPreExperimentScripts: function (matchedExps) {\n matchedExps?.forEach((exp) => {\n if (exp.value['sidecarPrerunScript']) {\n this.performInjectScript(exp.value['sidecarPrerunScript']);\n }\n });\n },\n\n setupMutationObserver: function (query, callback) {\n const observeElement = this.findElementToObserve(query);\n if (observeElement) {\n this._observeMutation(observeElement, callback);\n }\n },\n\n setupStatsigSdk: async function (\n apiKey,\n expIds,\n autoStart,\n initUrlOverride,\n logUrlOverride\n ) {\n let overrideUserID = null;\n let overrideExp = null;\n let overrideExpName = null;\n try {\n const url = new URL(window.location.href);\n overrideUserID = url.searchParams.get(\"overrideuser\");\n overrideExp = url.searchParams.get(\"overrideexp\");\n overrideExpName = url.searchParams.get(\"overrideexpname\");\n } catch (e) {\n console.error(\"Failed to update user:\", e);\n }\n\n try {\n const user = window?.statsigUser ?? {};\n if (overrideUserID) {\n user.userID = overrideUserID;\n user.customIDs = user.customIDs || {};\n user.customIDs.stableID = overrideUserID;\n }\n\n const options = window?.statsigOptions ?? {};\n options.disableLogging = !autoStart;\n if (initUrlOverride || logUrlOverride) {\n options.networkConfig = {\n initializeUrl: initUrlOverride,\n logEventUrl: logUrlOverride,\n };\n }\n if (overrideExp && overrideExpName) {\n const overrideAdapter = new LocalOverrideAdapter();\n options.overrideAdapter = overrideAdapter;\n overrideAdapter.overrideExperiment(\n overrideExpName,\n JSON.parse(overrideExp)\n );\n }\n\n this._statsigInstance = new StatsigClient(apiKey, user, options);\n await this._statsigInstance.initializeAsync();\n runStatsigAutoCapture(this._statsigInstance);\n\n this._clientInitialized = true;\n this._flushQueuedEvents();\n this._observePageChanges(expIds);\n this.runAllExperiments(expIds);\n } catch (e) {\n console.error(\"Failed to initialize Statsig:\", e);\n }\n this.resetBody();\n },\n};\n\nif (document.currentScript && document.currentScript.src) {\n const url = new URL(document.currentScript.src);\n const apiKey = url.searchParams.get(\"apikey\");\n const multiExpIds = url.searchParams.get(\"multiexpids\");\n const initUrl = url.searchParams.get(\"initializeurl\");\n const logUrl = url.searchParams.get(\"logeventurl\");\n\n const autoStart = url.searchParams.get(\"autostart\") !== \"0\";\n // Deprecated\n // const autoCapture = url.searchParams.get('autocapture') !== '0';\n const reduceFlicker = url.searchParams.get(\"reduceflicker\") !== \"0\";\n StatsigSidecar.scriptNonce = document.currentScript.nonce;\n if (apiKey) {\n if (reduceFlicker) {\n document.write('<style id=\"__sbpd\">body { display: none; }</style>\\n');\n setTimeout(() => {\n StatsigSidecar.resetBody();\n }, 1000);\n }\n const expIds = multiExpIds ? multiExpIds.split(\",\") : null;\n StatsigSidecar.setupStatsigSdk(apiKey, expIds, autoStart, initUrl, logUrl);\n document.addEventListener(`sidecar_${apiKey}`, (e) => {\n StatsigSidecar.processEvent(e);\n e.preventDefault();\n });\n }\n}\n"],"names":["Object","defineProperty","exports","value","_isTypeMatch","_typeOf","input","Array","isArray","a","b","typeOf","x","_a","_b","_c","_getInstance","_getStatsigGlobalFlag","_getStatsigGlobal","Log_1","__STATSIG__","statsigGlobal","e","flag","sdkKey","gbl","instances","keys","length","Log","warn","firstInstance","GLOBAL_KEY","_window","window","_global","g","_globalThis","globalThis","instance","addTag","args","unshift","LogLevel","None","Error","Warn","Info","Debug","info","level","console","debug","error","_getSortedObject","_DJB2Object","_DJB2","TypingUtils_1","hash","i","charCodeAt","String","maxLevels","JSON","stringify","object","maxDepth","sort","sortedObject","forEach","key","_getStorageKey","_getUserStorageKey","Hashing_1","user","customKeyGenerator","cids","customIDs","parts","userID","leftKey","rightKey","localeCompare","map","join","_notifyVisibilityChanged","_subscribeToVisiblityChanged","_isUnloading","_isCurrentlyVisible","SafeJs_1","FOREGROUND","BACKGROUND","LISTENERS","current","isUnloading","listener","visibility","l","_addWindowEventListenerSafe","_addDocumentEventListenerSafe","document","visibilityState","_getUnloadEvent","_getCurrentPageUrlSafe","_isServerEnv","_getDocumentSafe","_getWindowSafe","win","isNode","process","versions","node","EdgeRuntime","addEventListener","doc","location","href","split","__awaiter","this","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","apply","_isDomainFailure","NetworkFallbackResolver","DnsTxtQuery_1","StorageProvider_1","DEFAULT_TTL_MS","errorMsg","timedOut","lowerErrorMsg","toLowerCase","includes","_getFallbackInfoStorageKey","_tryWriteFallbackInfoToCache","hashKey","Storage","setItem","removeItem","constructor","options","_fallbackInfo","_errorBoundary","_dnsQueryCooldowns","_networkOverrideFunc","networkConfig","networkOverrideFunc","setErrorBoundary","errorBoundary","tryBumpExpiryTime","urlConfig","endpoint","expiryTime","Date","now","assign","getActiveFallbackUrl","customUrl","fallbackUrls","data","getItem","parse","_readFallbackInfoFromCache","entry","getChecksum","urlConfigChecksum","url","tryFetchUpdatedFallbackInfo","errorMessage","urls","_tryFetchFallbackUrlsFromNetwork","newUrl","_pickNewFallbackUrl","_updateFallbackInfoWithNewUrl","logError","newFallbackInfo","previous","previousInfo","push","previousUrl","cooldown","records","_fetchTxtRecords","fetch","path","urlString","URL","pathname","_extractPathFromUrl","defaultUrl","record","startsWith","endpointDnsKey","baseUrl","endsWith","slice","currentFallbackInfo","previouslyUsed","Set","currentFallbackUrl","found","loopUrl","has","ErrorTag","NetworkError","SDKType","SDK_CLIENT","suffix","_get","_setClientType","client","_setBindingType","binding","NetworkCore","__StatsigGlobal_1","Diagnostics_1","NetworkConfig_1","NetworkFallbackResolver_1","SDKFlags_1","SDKType_1","SessionID_1","StableID_1","StatsigClientEventEmitter_1","StatsigMetadata_1","StatsigOptionsCommon_1","VisibilityObserving_1","RETRYABLE_CODES","_emitter","_timeout","_netConfig","_options","_leakyBucket","_lastUsedInitUrl","networkTimeoutMs","_fallbackResolver","setLogEventCompressionMode","_getLogEventCompressionMode","mode","logEventCompressionMode","wrap","isBeaconSupported","navigator","sendBeacon","getLastUsedInitUrlAndReset","tempUrl","beacon","_ensureValidSdkKey","argsInternal","_getInternalRequestArgs","_getPopulatedURL","nav","bind","body","post","_tryEncodeBody","_tryToCompressBody","_sendRequest","get","_d","preventAllNetworkTraffic","method","retries","attempt","_isRateLimited","currentAttempt","abortController","AbortController","timeoutHandle","setTimeout","abort","populatedUrl","response","keepalive","config","headers","signal","priority","Endpoint","_initialize","Diagnostics","_markInitNetworkReqStart","_tryMarkInitStart","bucket","lastRequestTime","func","clearTimeout","ok","text","catch","err","name","_tryMarkInitEnd","code","status","controller","aborted","reason","message","_getErrorMessage","fallbackUrl","call","tag","requestArgs","formattedErrorMsg","attachErrorIfNoneExists","r","Math","min","_exponentialBackoff","compressionMode","disableCompression","LogEventCompressionMode","Disabled","Enabled","count","elapsed","leakedRequests","floor","RATE_LIMIT_MAX_REQ_COUNT","max","getUrl","_download_config_specs","params","NetworkParam","SdkKey","SdkType","SdkVersion","SDK_VERSION","Time","SessionID","query","encodeURIComponent","isStatsigEncodable","disableStatsigEncoding","btoa","reverse","StatsigEncoded","isCompressable","CompressionStream","TextEncoder","isProxy","flagEnabled","SDKFlags","Forced","_allowCompression","bytes","encode","stream","writer","writable","getWriter","write","close","reader","readable","getReader","chunks","read","totalLength","reduce","acc","chunk","combined","Uint8Array","offset","set","IsGzipped","_populateRequestBody","stableID","StableID","sessionID","sdkType","statsigMetadata","StatsigMetadataProvider","_markInitNetworkReqEnd","_getDiagnosticsData","MARKER_MAP","Map","ACT_START","ACT_END","_createMarker","action","timestamp","_addMarker","marker","markers","_safeGetField","field","_getMarkers","_markInitOverallStart","_markInitOverallEnd","success","evaluationDetails","undefined","_markInitProcessStart","_markInitProcessEnd","_clearMarkers","delete","_formatError","res","statusCode","sdkRegion","isDelta","_enqueueDiagnosticsEvent","logger","sdk","event","eventName","metadata","time","_makeDiagnosticsEvent","context","statsigOptions","enqueue","UrlConfiguration","ENDPOINT_DNS_KEY_MAP","_rgstr","customApi","defaultApi","NetworkDefault","fallbacks","_createLayerParameterExposure","_createConfigExposure","_mapExposures","_createGateExposure","_isExposureEvent","CONFIG_EXPOSURE_NAME","GATE_EXPOSURE_NAME","LAYER_EXPOSURE_NAME","_createExposure","details","secondaryExposures","bootstrapMetadata","_addEvaluationDetailsToMetadata","exposures","exposureMapping","exposure","filter","gate","gateValue","ruleID","__evaluation","version","secondary_exposures","passed","layer","parameterName","_e","_f","_g","evaluation","isExplicit","explicit_parameters","allocatedExperiment","undelegated_secondary_exposures","allocated_experiment_name","parameterRuleIDs","parameter_rule_ids","isExplicitParameter","lcut","receivedAt","_makeTypedGet","_mergeOverride","_makeLayer","_makeExperiment","_makeDynamicConfig","_makeFeatureGate","_makeEvaluation","rule_id","exposeFunc","param","fallback","idType","id_type","groupName","group_name","__value","original","overridden","UPDATE_DETAIL_ERROR_MESSAGES","createUpdateDetails","source","initDuration","sourceUrl","warnings","duration","NO_NETWORK_DATA","AutoCapture_1","enumerable","runStatsigAutoCapture","AutoCapture","_getFullUserHash","_normalizeUser","copy","environment","statsigEnvironment","CacheKey_1","UUID_1","PROMISE_MAP","COOKIE_ENABLED_MAP","DISABLED_MAP","_getStableIDStorageKey","_persistToStorage","storageKey","_setObjectInStorage","_persistToCookie","expiryDate","setFullYear","getFullYear","cookie","_getCookieName","toUTCString","cookiesEnabled","randomID","random","toString","cookies","trim","decodeURIComponent","_loadFromCookie","_getObjectFromStorage","_loadFromStorage","getUUID","setOverride","override","_setCookiesEnabled","_setDisabled","disabled","inMemoryStore","_inMemoryProvider","isReady","isReadyResolver","getProviderName","getAllKeys","_localStorageProvider","localStorage","_main","_current","_setProvider","_inMemoryBreaker","newProvider","isDisabled","obj","__createBinding","create","o","m","k","k2","desc","getOwnPropertyDescriptor","__esModule","configurable","__exportStar","p","prototype","hasOwnProperty","EventLogger","EventLogger_1","crypto","randomUUID","d","getTime","d2","performance","replace","c","DataAdapterCachePrefix","ErrorBoundary","EXCEPTION_ENDPOINT","UNKNOWN_ERROR","_resolveError","_getStatsigOptionLoggingCopy","loggingCopy","entries","option","_sdkKey","_lastSeenError","_seen","names","proto","getPrototypeOf","getOwnPropertyNames","prop","add","from","_getAllInstanceMethodNames","_capture","$EB","_onError","getLastSeenErrorAndReset","tempError","task","unwrapped","isError","resolvedError","stack","_getDescription","exception","sdkVersion","impl","_error","StatsigEvaluationsDataAdapter","client_core_1","Network_1","DataAdapterCore","super","_network","attach","network","default","getDataAsync","_getDataAsyncImpl","prefetchData","_prefetchDataImpl","setData","values","_typedJsonParse","setDataLegacy","_fetchFromNetwork","isCacheValidFor204","fetchEvaluations","_getSdkKey","_getCacheKey","customUserCacheKeyFunc","_cacheSuffix","_isCachedResultValidFor204","fullUserHash","guard","typeName","eventsApi","initializeApi","specsApi","StatsigSession","MAX_SESSION_IDLE_TIME","MAX_SESSION_AGE","_createSessionTimeout","$emt","_getSessionIDStorageKey","startTime","lastUpdate","_loadSession","session","_isIdle","_hasRunTooLong","idleTimeoutID","ageTimeoutID","lifetime","_bumpSession","overrideInitialSessionID","_overrideSessionId","StatsigEvent_1","UrlConfiguration_1","EVENT_LOGGER_MAP","RetryFailedLogsTrigger","_safeFlushAndForget","flush","_safeRetryFailedLogs","_retryFailedLogs","_queue","_lastExposureTimeMap","_nonExposedChecks","_hasRunQuickFlush","_creationTime","_loggingEnabled","loggingEnabled","disableLogging","LoggingEnabledOption","browserOnly","_maxQueueSize","loggingBufferMaxSize","_logEventUrlConfig","logEventUrl","api","logEventFallbackUrls","setLoggingEnabled","_shouldLogEvent","_normalizeAndAppendEvent","_quickFlushIfNeeded","incrementNonExposureCount","reset","start","isServerEnv","_startBackgroundFlushInterval","stop","_flushIntervalId","clearInterval","_appendAndResetNonExposedChecks","events","_sendEvents","userKey","_saveFailedLogsToStorage","shouldUseBeacon","_sendEventsViaBeacon","_sendEventsViaPost","_getRequestData","EventCount","credentials","shift","trigger","privateAttributes","extras","currentPage","_getCurrentPageUrl","final","checks","includeCurrentPageUrlWithEvents","flushInterval","loggingIntervalMs","intervalId","setInterval","EvaluationResponseDeltas_1","StatsigNetwork","emitter","_option","_initializeUrlConfig","initializeUrl","initializeFallbackUrls","cache","initializeHashAlgorithm","deltasResponseRequested","full_checksum","has_updates","hasHashChanged","hash_used","sinceTime","previousDerivedFields","derived_fields","partialUserMatchSinceTime","_fetchEvaluations","_resolveDeltasResponse","additions","lastInstance","_fastApproxSizeOf","size","_gatherPageViewPayload","safeDoc","safeWnd","referrer","refUrl","searchInfo","searchEngine","host","hostname","find","getSearchEngine","searchQuery","searchParams","getSearchInfo","campaignParams","urlParams","val","getCampaignParams","queryParams","v","title","locale","language","screen_width","screen","width","screen_height","height","viewport_width","innerWidth","viewport_height","innerHeight","statsigKeys","overallInitDuration","StatsigClientBase","ErrorBoundary_1","adapter","loadingStatus","_listeners","logLevel","disableStorage","initialSessionID","storageProvider","overrideAdapter","_logger","inst","dataAdapter","_primeReadyRipcord","updateRuntimeOptions","setLoggingDisabled","shutdown","on","off","index","indexOf","splice","$on","__isInternal","barrier","_setStatus","newStatus","_enqueueExposure","disableExposureLog","always","fallbackEnvironment","tier","_getPopulatedBody","_attemptToEncodeString","handle","isInitialize","StatsigClient","StatsigClient_1","UrlOverrides_1","_isLoggingDisabled","_logEventUrl","_getOverridableUrl","FLAGMAP","setFlags","flags","flagKey","StatsigUser_1","TypedJsonParse_1","_makeDataAdapterResult","_adapterName","_lastModifiedStoreKey","_inMemoryCache","InMemoryCache","getDataSync","normalized","cacheKey","inMem","_loadFromCache","ops","_fetchAndPrepFromNetwork","timeoutMs","race","cachedResult","cachedData","latest","_writeToCache","_runLocalStorageCacheEviction","lastModifiedTimeMap","evictable","_getEvictableKey","_data","cached","provided","oldest","CACHE_LIMIT","merge","limit","prevKey","currKey","prev","_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","_getSafeNetworkInformation","_registerEventHandler","_getSanitizedPageUrl","_getSafeUrl","_getTargetNode","_gatherEventData","_gatherDatasetProperties","el","dataset","attr","_getAnchorNodeInHierarchy","parent","parentTagName","tagName","parentElement","target","getAttribute","anchor","textContent","srcElement","Element","nodeType","parentNode","eventType","type","element","handler","connection","overrideUrl","overrideApi","defaultEndpoint","_getIsCacheValueValid","createMemoKey","MemoPrefix","_gate","_dynamicConfig","_experiment","_configList","_layer","_paramStore","EXIST_KEYS","DO_NOT_MEMO_KEYS","prefix","MemoKey_1","_initializePromise","enableCookies","disableStableID","_memoCache","loadFromStorage","_assignGlobalInstance","_memoize","fn","disableEvaluationMemoization","memoKey","Utils_1","payloadUtils_1","_client","_startTime","_deepestScroll","_disabledEvents","getContext","auto_capture_settings","disabled_events","acInstances","readyState","_addEventHandlers","eventHandler","_autoLogEvent","_pageUnloadHandler","_scrollEventHandler","ErrorEvent","_logError","_enqueueAutoCapture","_logSessionStart","_logPageView","_logPerformance","errorStr","filename","lineno","colno","error_str","_getSessionFromClient","_isNewSession","flushImmediately","payload","addNewSessionMetadata","getEntriesByType","getEntriesByName","navEntries","PerformanceNavigationTiming","domInteractive","redirectCount","transferSize","fpEntries","PerformancePaintTiming","networkInfo","effectiveType","rtt","downlink","saveData","scrollDepth","pageViewLength","logMetadata","page_url","logEvent","scrollHeight","scrollY","round","abs","_rawValues","_values","_source","_lcut","_receivedAt","_bootstrapMetadata","_warnings","finalize","getValues","setValues","_extractBootstrapMetadata","_setWarningState","sdk_flags","getWarnings","getGate","_getDetailedStoreResult","getConfig","getConfigList","getLayer","getParamStore","param_stores","getSource","getExposureMapping","sdkInfo","generatorSDKInfo","lookup","_getDetails","bootstrapUser","userWithoutAnalyticsOnlyMetadata","analyticsOnlyMetadata","getCurrentSourceDetails","sourceDetails","isUnrecognized","EvaluationStore_1","ParamStoreGetterFactory_1","StatsigEvaluationsDataAdapter_1","_possibleFirstTouchMetadata","getFeatureGate","_getFeatureGateImpl","getDynamicConfig","_getDynamicConfigImpl","getExperiment","_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","isUsingNetworkValues","sdkInstanceID","checkGate","eventOrName","updateUserWithAnalyticsOnlyMetadata","originalUser","stableIdOverride","getGateOverride","getDynamicConfigOverride","dynamicConfig","experiment","getExperimentOverride","getLayerOverride","configuration","paramStore","__configuration","_makeParamStoreGetter","getParamStoreOverride","FEATURE_ASSETS_DNS_QUERY","DOMAIN_CHARS","networkFunc","Accept","arrayBuffer","findIndex","byte","fromCharCode","_parseDnsResponse","LocalOverrideAdapter","LOCAL_OVERRIDE_REASON","_overrides","_getLocalOverridesStorageKey","storedOverrides","overrides","hasInMemoryOverrides","_hasInMemoryOverrides","currentValues","newValues","_saveOverridesToStorage","overrideGate","_warnIfStorageNotReady","removeGateOverride","overrideDynamicConfig","removeDynamicConfigOverride","_getConfigOverride","overrideExperiment","removeExperimentOverride","overrideLayer","removeLayerOverride","getAllOverrides","removeAllOverrides","NO_EXPOSURE_OPT","_shouldLogExposure","_shouldReturnFallback","paramName","param_type","ref_type","_getMappedStaticValue","gate_name","pass_value","fail_value","_getMappedGateValue","config_name","param_name","_getMappedDynamicConfigValue","experiment_name","_getMappedExperimentValue","layer_name","_getMappedLayerValue","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","__webpack_modules__","n","getter","definition","Function","_statsigInstance","_queuedEvents","_clientInitialized","_redirKey","activateExperiment","expName","foundExp","_getMatchingExperiments","exp","StatsigSidecar","_performExperiments","findElementToObserve","querySelector","substring","lastIndexOf","_flushQueuedEvents","matchingExps","configList","u","_isMatchingExperiment","getStatsigInstance","filters","RegExp","test","_isIOS","userAgent","_observeMutation","modifierFunc","MutationObserver","mutationsList","observer","observe","attributes","childList","characterData","subtree","characterDataOldValue","_observePageChanges","expIds","ps","history","pushState","rs","replaceState","rerun","runAllExperiments","_performAfterLoad","callback","performAttributeChange","attribute","removeAttrs","setupMutationObserver","setAttribute","removeAttribute","performContentChange","innerHTML","_performDirective","directive","log","selector","performStyleChange","property","performReorderElement","operator","performInjectScript","performInjectStyle","redirectPage","expId","script","createElement","scriptNonce","nonce","head","appendChild","style","anchorQuery","before","after","prepend","append","setProperty","processEvent","detail","async","currentUrl","resetBody","sbpd","getElementById","removeChild","_runPreExperimentScripts","postExperimentCallback","matchedExps","observeElement","setupStatsigSdk","apiKey","autoStart","initUrlOverride","logUrlOverride","overrideUserID","overrideExp","overrideExpName","statsigUser","currentScript","src","multiExpIds","initUrl","logUrl","reduceFlicker","preventDefault"],"sourceRoot":""}