statsig-sidecar-v2-beta 2.6.0 → 2.6.1
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 +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
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/global","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","__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})();","import { LocalOverrideAdapter } from \"@statsig/js-local-overrides\";\nimport {\n StatsigClient,\n SDKType,\n StatsigMetadataProvider,\n} from \"@statsig/js-client\";\nimport { runStatsigAutoCapture } from \"@statsig/web-analytics\";\nimport packageJson from \"../package.json\";\n\nconst STABLE_ID_ATTRIBUTE = \"data-statsig-element-id\";\nconst SIDECAR_SDK_TYPE = \"sidecar-v2-beta\";\nconst SIDECAR_SDK_VERSION = `${packageJson.version}`;\nconst sharedStableIdMap = {};\nconst existingSidecar = window[\"StatsigSidecar\"] || {};\nwindow[\"StatsigSidecar\"] = Object.assign(existingSidecar, {\n _statsigInstance: null,\n _queuedEvents: [],\n _clientInitialized: false,\n _redirKey: \"_stsgnoredir\",\n _stableIdMap: sharedStableIdMap,\n _appliedInserts: new Set(),\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(\n (exp) => exp.value[\"sidecarExperimentName\"] === expName\n );\n if (foundExp) {\n StatsigSidecar._performExperiments([foundExp.name]);\n }\n },\n\n findElementToObserve: function (query) {\n while (query) {\n try {\n const element = this.resolveElement(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 applyStableIdMap: function () {\n const map = sharedStableIdMap || {};\n Object.keys(map).forEach((selector) => {\n const id = map[selector];\n if (!id) {\n return;\n }\n const element = document.querySelector(selector);\n if (element && !element.hasAttribute(STABLE_ID_ATTRIBUTE)) {\n element.setAttribute(STABLE_ID_ATTRIBUTE, id);\n }\n });\n },\n\n resolveElement: function (selector) {\n const directElement = document.querySelector(selector);\n if (directElement) {\n const id = this._ensureStableId(directElement);\n sharedStableIdMap[selector] = id;\n }\n const stableId = sharedStableIdMap?.[selector];\n if (stableId) {\n const stableElement = document.querySelector(\n `[${STABLE_ID_ATTRIBUTE}=\"${stableId}\"]`\n );\n if (stableElement) {\n return stableElement;\n }\n }\n return directElement;\n },\n\n _mergeStableIdMap: function (stableIdMap) {\n if (!stableIdMap || typeof stableIdMap !== \"object\") {\n return;\n }\n Object.assign(sharedStableIdMap, stableIdMap);\n },\n\n _constructQueryString: function (element) {\n if (element.id) {\n return `[id=\"${element.id}\"]`;\n }\n const tagName = element.tagName.toLowerCase();\n const parent = element.parentElement;\n if (!parent || tagName === \"body\") {\n return \"body\";\n }\n const index = Array.from(parent.children).findIndex(\n (child) => child === element\n );\n return `${this._constructQueryString(parent)} > ${tagName}:nth-child(${index + 1})`;\n },\n\n _ensureStableId: function (element) {\n let id = element.getAttribute(STABLE_ID_ATTRIBUTE);\n if (!id) {\n id = `statsig-element-${Math.random().toString(36).slice(2, 10)}`;\n element.setAttribute(STABLE_ID_ATTRIBUTE, id);\n }\n return id;\n },\n\n _updateStableIdMapForElements: function (elements) {\n elements.forEach((element) => {\n if (!element || element.nodeType !== 1) {\n return;\n }\n const id = this._ensureStableId(element);\n const selector = this._constructQueryString(element);\n sharedStableIdMap[selector] = id;\n });\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 _getSidecarConfig: function () {\n const config = window?.statsigSidecarConfig;\n return config && typeof config === \"object\" ? config : {};\n },\n\n _emitExperimentEvaluation: function (experiment) {\n if (!experiment) {\n return;\n }\n const callback = this._getSidecarConfig().onExperimentEvaluation;\n if (typeof callback !== \"function\") {\n return;\n }\n try {\n const experimentName =\n experiment?.value?.[\"sidecarExperimentName\"] ?? experiment.name;\n const groupName = experiment?.groupName ?? null;\n callback({\n name: \"experiment_evaluation\",\n experiment,\n experimentName,\n groupName,\n });\n } catch (e) {\n console.error(\"Failed to run onExperimentEvaluation callback:\", e);\n }\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 disableExposureLog: true,\n });\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 = this.resolveElement(query);\n if (!element) {\n return;\n }\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 = this.resolveElement(query);\n if (!element) {\n return;\n }\n if (element && element.innerHTML !== value) {\n element.innerHTML = value;\n }\n });\n },\n\n _performDirective: function (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 directive.selector,\n property.name,\n property.value\n );\n } else if (property.type === \"attribute\") {\n this.performAttributeChange(\n directive.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 directive.metadata?.after\n );\n });\n break;\n\n case \"insert\":\n this._performAfterLoad(() => {\n this.performInsertElement(\n directive.selector,\n directive.value,\n directive.metadata?.position\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 this._appliedInserts = new Set();\n expIds.forEach((expId) => {\n const expConfig = this._statsigInstance.getExperiment(expId);\n this._emitExperimentEvaluation(expConfig);\n const directives = expConfig.get(\"!statsig_sidecar_directives\", []);\n const stableIdMap = expConfig.get(\"!statsig_sidecar_stable_id_map\", {});\n this._mergeStableIdMap(stableIdMap);\n directives.forEach((directive) => {\n this._mergeStableIdMap(directive?.metadata?.stableIdMap);\n this._mergeStableIdMap(directive?.stableIdMap);\n });\n this.applyStableIdMap();\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, after) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const target = this.resolveElement(query);\n const anchor = this.resolveElement(anchorQuery);\n if (!target || !anchor) {\n return;\n }\n\n const targetParent = target.parentElement;\n const anchorParent =\n operator === \"first\" || operator === \"last\"\n ? anchor\n : anchor.parentElement;\n let reorderAffected = null;\n if (targetParent && anchorParent) {\n if (targetParent === anchorParent) {\n const siblings = Array.from(anchorParent.children);\n const currentIndex = siblings.indexOf(target);\n const anchorIndex = siblings.indexOf(anchor);\n if (currentIndex !== -1 && anchorIndex !== -1) {\n const start = Math.min(currentIndex, anchorIndex);\n const end = Math.max(currentIndex, anchorIndex);\n reorderAffected = siblings.slice(start, end + 1);\n this._updateStableIdMapForElements(reorderAffected);\n }\n } else {\n reorderAffected = [\n ...Array.from(targetParent.children),\n ...Array.from(anchorParent.children),\n ];\n this._updateStableIdMapForElements(reorderAffected);\n }\n }\n\n if (after !== undefined) {\n if (after) {\n anchor.insertAdjacentElement(\"afterend\", target);\n } else {\n anchor.insertAdjacentElement(\"beforebegin\", target);\n }\n if (reorderAffected) {\n this._updateStableIdMapForElements(reorderAffected);\n }\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 default:\n break;\n }\n if (reorderAffected) {\n this._updateStableIdMapForElements(reorderAffected);\n }\n });\n },\n\n performInsertElement: function (query, tagName, position) {\n if (!query || !tagName || !position) {\n return;\n }\n const insertKey = `${query}|${tagName}|${position}`;\n this.setupMutationObserver(query, () => {\n if (this._appliedInserts.has(insertKey)) {\n return;\n }\n const anchor = this.resolveElement(query);\n if (!anchor) {\n return;\n }\n\n let insertAffected = null;\n if (position === \"beforebegin\" || position === \"afterend\") {\n const parent = anchor.parentElement;\n if (parent) {\n const siblings = Array.from(parent.children);\n const anchorIndex = siblings.indexOf(anchor);\n const startIndex =\n position === \"beforebegin\" ? anchorIndex : anchorIndex + 1;\n if (anchorIndex !== -1) {\n insertAffected = siblings.slice(startIndex);\n this._updateStableIdMapForElements(insertAffected);\n }\n }\n } else {\n const children = Array.from(anchor.children);\n const startIndex = position === \"afterbegin\" ? 0 : children.length;\n insertAffected = children.slice(startIndex);\n this._updateStableIdMapForElements(insertAffected);\n }\n\n const inserted = document.createElement(tagName);\n anchor.insertAdjacentElement(position, inserted);\n if (insertAffected) {\n this._updateStableIdMapForElements(insertAffected);\n }\n this._updateStableIdMapForElements([inserted]);\n this._appliedInserts.add(insertKey);\n });\n },\n\n performStyleChange: function (query, style, value) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const element = this.resolveElement(query);\n if (!element) {\n return;\n }\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 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(\n (exp) => !exp.value[\"sidecarDisableAutoRun\"]\n )\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 const existingNetworkOverride = options?.networkConfig?.networkOverrideFunc;\n const rewriteStatsigSdkParams = (requestUrl) => {\n try {\n const parsedUrl = new URL(requestUrl);\n parsedUrl.searchParams.set(\"st\", SIDECAR_SDK_TYPE);\n parsedUrl.searchParams.set(\"sv\", SIDECAR_SDK_VERSION);\n return parsedUrl.toString();\n } catch (e) {\n return requestUrl;\n }\n };\n if (initUrlOverride || logUrlOverride) {\n options.networkConfig = {\n ...(options.networkConfig ?? {}),\n initializeUrl: initUrlOverride,\n logEventUrl: logUrlOverride,\n };\n }\n options.networkConfig = {\n ...(options.networkConfig ?? {}),\n networkOverrideFunc: (requestUrl, requestArgs) => {\n const patchedUrl = rewriteStatsigSdkParams(requestUrl);\n if (existingNetworkOverride) {\n return existingNetworkOverride(patchedUrl, requestArgs);\n }\n return fetch(patchedUrl, requestArgs);\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 StatsigMetadataProvider.add({\n sdkType: SIDECAR_SDK_TYPE,\n sdkVersion: SIDECAR_SDK_VERSION,\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__","Function","STABLE_ID_ATTRIBUTE","SIDECAR_SDK_TYPE","SIDECAR_SDK_VERSION","sharedStableIdMap","existingSidecar","_statsigInstance","_queuedEvents","_clientInitialized","_redirKey","_stableIdMap","_appliedInserts","activateExperiment","expName","foundExp","_getMatchingExperiments","exp","StatsigSidecar","_performExperiments","findElementToObserve","resolveElement","substring","lastIndexOf","applyStableIdMap","selector","id","querySelector","hasAttribute","setAttribute","directElement","_ensureStableId","stableId","stableElement","_mergeStableIdMap","stableIdMap","_constructQueryString","children","child","_updateStableIdMapForElements","elements","_flushQueuedEvents","_getSidecarConfig","statsigSidecarConfig","_emitExperimentEvaluation","callback","onExperimentEvaluation","experimentName","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","n","_performAfterLoad","performAttributeChange","attribute","removeAttrs","setupMutationObserver","removeAttribute","performContentChange","innerHTML","_performDirective","directive","performStyleChange","property","performReorderElement","operator","after","performInsertElement","position","performInjectScript","performInjectStyle","redirectPage","expId","expConfig","directives","script","createElement","scriptNonce","nonce","head","appendChild","style","anchorQuery","targetParent","anchorParent","reorderAffected","siblings","currentIndex","anchorIndex","end","insertAdjacentElement","before","prepend","append","insertKey","insertAffected","startIndex","inserted","setProperty","processEvent","detail","async","currentUrl","resetBody","sbpd","getElementById","removeChild","_runPreExperimentScripts","postExperimentCallback","matchedExps","observeElement","setupStatsigSdk","apiKey","autoStart","initUrlOverride","logUrlOverride","overrideUserID","overrideExp","overrideExpName","statsigUser","existingNetworkOverride","rewriteStatsigSdkParams","requestUrl","parsedUrl","patchedUrl","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/client-core/src/NetworkFallbackResolver.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SafeJs.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/DnsTxtQuery.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/RageClickManager.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SDKType.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/MemoKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/Diagnostics.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigUpdateDetails.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigClientEventEmitter.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/DeadClickManager.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/client-core/src/StorageProvider.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/PendingEvents.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigDataAdapter.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/client-core/src/NetworkConfig.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StableID.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/VisibilityObserving.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/BatchedEventsQueue.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EvaluationOptions.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/AutoCaptureEvent.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/$_StatsigGlobal.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/TypedJsonParse.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/utils/metadataUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/Hashing.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/web-analytics/src/ConsoleLogManager.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/CacheKey.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/NetworkCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/ParamStoreTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EventLogger.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/DataAdapterCore.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/utils/eventUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/EvaluationResponseDeltas.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SDKFlags.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/SizeOf.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EventBatch.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigMetadata.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/FlushInterval.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/EventRetryConstants.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/web-analytics/src/EngagementManager.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/client-core/src/EventSender.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/FlushTypes.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigEvent.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/V2InitializeContainer.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/AutoCapture.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/utils/commonUtils.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/client-core/src/StatsigOptionsCommon.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/WebVitalsManager.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/Log.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/FlushCoordinator.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-local-overrides/src/index.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigPlugin.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/ClientInterfaces.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/web-analytics/src/utils/consoleLogsUtils.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/js-client/src/V1InitializeContainer.js","webpack://statsig-sidecar-v2-beta/./node_modules/web-vitals/dist/web-vitals.umd.cjs","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/UrlConfiguration.js","webpack://statsig-sidecar-v2-beta/./node_modules/@statsig/client-core/src/StatsigTypes.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/global","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' : x === null ? 'null' : typeof x;\n return typeOf(a) === typeOf(b);\n}\nexports._isTypeMatch = _isTypeMatch;\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._cloneObject = exports._getUnloadEvent = exports._getCurrentPageUrlSafe = exports._addDocumentEventListenerSafe = exports._addWindowEventListenerSafe = exports._isServerEnv = exports._getDocumentSafe = exports._getWindowSafe = void 0;\nconst Log_1 = require(\"./Log\");\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;\nconst _cloneObject = (tag, obj) => {\n try {\n return JSON.parse(JSON.stringify(obj));\n }\n catch (error) {\n Log_1.Log.error(`Failed to clone object ${tag}`);\n return null;\n }\n};\nexports._cloneObject = _cloneObject;\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 });\nconst RAGE_CLICK_THRESHOLD_PX = 30;\nconst RAGE_CLICK_TIMEOUT_MS = 1000;\nconst RAGE_CLICK_CLICK_COUNT = 3;\nclass RageClickManager {\n constructor() {\n this._clicks = [];\n }\n isRageClick(x, y, timestamp) {\n // Remove clicks outside the timeout window\n this._clicks = this._clicks.filter((click) => timestamp - click.timestamp < RAGE_CLICK_TIMEOUT_MS);\n const isCloseEnough = (click) => {\n const dx = x - click.x;\n const dy = y - click.y;\n return Math.abs(dx) + Math.abs(dy) <= RAGE_CLICK_THRESHOLD_PX;\n };\n // If previous clicks exist, check spatial threshold\n if (this._clicks.length > 0 &&\n !isCloseEnough(this._clicks[this._clicks.length - 1])) {\n this._clicks = [];\n }\n this._clicks.push({ x, y, timestamp });\n return this._clicks.length >= RAGE_CLICK_CLICK_COUNT;\n }\n}\nexports.default = RageClickManager;\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.createMemoKey = exports.MemoPrefix = void 0;\nexports.MemoPrefix = {\n _gate: 'g',\n _dynamicConfig: 'c',\n _experiment: 'e',\n _configList: 'cl',\n _layer: 'l',\n _paramStore: 'p',\n};\nconst EXIST_KEYS = new Set([\n// Add keys that should be memoized based only on their existence, not their value\n]);\nconst DO_NOT_MEMO_KEYS = new Set([\n // Add keys that if exist, should not be memoized\n 'userPersistedValues',\n]);\nfunction createMemoKey(prefix, name, options) {\n let cacheKey = `${prefix}|${name}`;\n if (!options) {\n return cacheKey;\n }\n for (const key of Object.keys(options)) {\n if (DO_NOT_MEMO_KEYS.has(key)) {\n return undefined;\n }\n if (EXIST_KEYS.has(key)) {\n cacheKey += `|${key}=true`;\n }\n else {\n cacheKey += `|${key}=${options[key]}`;\n }\n }\n return cacheKey;\n}\nexports.createMemoKey = createMemoKey;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.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.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.ErrorTag = void 0;\nexports.ErrorTag = {\n NetworkError: 'NetworkError',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DeadClickConfig = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nconst commonUtils_1 = require(\"./utils/commonUtils\");\nconst eventUtils_1 = require(\"./utils/eventUtils\");\nconst metadataUtils_1 = require(\"./utils/metadataUtils\");\nexports.DeadClickConfig = {\n CLICK_CHECK_TIMEOUT: 1000,\n SCROLL_DELAY_MS: 100,\n SELECTION_CHANGE_DELAY_MS: 100,\n MUTATION_DELAY_MS: 2500,\n ABSOLUTE_DEAD_CLICK_TIMEOUT: 2750,\n};\n// A dead click is a click that fires an event but produces no meaningful change within a set timeframe.\nclass DeadClickManager {\n constructor(_enqueueFn, _errorBoundary) {\n this._enqueueFn = _enqueueFn;\n this._errorBoundary = _errorBoundary;\n this._lastMutationTime = 0;\n this._lastSelectionChangeTime = 0;\n this._clicks = [];\n this._deadClickConfig = exports.DeadClickConfig;\n this._handleScroll = (0, commonUtils_1.throttle)(() => {\n const scrollTime = Date.now();\n this._clicks.forEach((click) => {\n if (!click.scrollDelayMs) {\n click.scrollDelayMs = scrollTime - click.timestamp;\n }\n });\n }, 50);\n }\n startTracking() {\n try {\n const win = (0, client_core_1._getWindowSafe)();\n if (!win) {\n return;\n }\n // `capture: true` - Needed to listen to scroll events on all scrollable elements, not just the window.\n // docs: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#usecapture\n //\n // `passive: true` - Indicates the scroll handler won’t call preventDefault(),\n // allowing the browser to optimize scrolling performance by not blocking it.\n // docs: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#passive\n win.addEventListener('click', (event) => this._handleClick(event), {\n capture: true,\n });\n win.addEventListener('scroll', () => this._handleScroll(), {\n capture: true,\n passive: true,\n });\n win.addEventListener('selectionchange', () => this._handleSelectionChange());\n this._setupMutationObserver();\n }\n catch (error) {\n client_core_1.Log.error('Error starting dead click tracking', error);\n this._errorBoundary.logError('autoCapture:DeadClickManager', error);\n }\n }\n _handleClick(event) {\n var _a, _b;\n const eventTarget = event.target;\n if (!eventTarget) {\n return;\n }\n const click = {\n timestamp: Date.now(),\n eventTarget,\n };\n if (!commonUtils_1.interactiveElements.includes((_a = eventTarget === null || eventTarget === void 0 ? void 0 : eventTarget.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase())) {\n this._clicks.push(click);\n }\n if (this._clicks.length && !this._clickCheckTimer) {\n this._clickCheckTimer = (_b = (0, client_core_1._getWindowSafe)()) === null || _b === void 0 ? void 0 : _b.setTimeout(() => {\n this._checkForDeadClick();\n }, this._deadClickConfig.CLICK_CHECK_TIMEOUT);\n }\n }\n _handleSelectionChange() {\n this._lastSelectionChangeTime = Date.now();\n }\n _setupMutationObserver() {\n const doc = (0, client_core_1._getDocumentSafe)();\n if (!doc) {\n return;\n }\n this._observer = new MutationObserver(() => {\n this._lastMutationTime = Date.now();\n });\n this._observer.observe(doc.body, {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n });\n }\n _checkForDeadClick() {\n var _a;\n if (!this._clicks.length) {\n return;\n }\n clearTimeout(this._clickCheckTimer);\n this._clickCheckTimer = undefined;\n const clicksToCheck = this._clicks;\n this._clicks = [];\n for (const click of clicksToCheck) {\n this._updateClickDelayMs(click);\n const hadScroll = click.scrollDelayMs != null &&\n click.scrollDelayMs < this._deadClickConfig.SCROLL_DELAY_MS;\n const hadSelectionChange = click.selectionChangeDelayMs != null &&\n click.selectionChangeDelayMs <\n this._deadClickConfig.SELECTION_CHANGE_DELAY_MS;\n const hadMutation = click.mutationDelayMs != null &&\n click.mutationDelayMs < this._deadClickConfig.MUTATION_DELAY_MS;\n if (hadScroll || hadSelectionChange || hadMutation) {\n continue;\n }\n const scrollTimeout = click.scrollDelayMs != null &&\n click.scrollDelayMs > this._deadClickConfig.SCROLL_DELAY_MS;\n const selectionChangeTimeout = click.selectionChangeDelayMs != null &&\n click.selectionChangeDelayMs >\n this._deadClickConfig.SELECTION_CHANGE_DELAY_MS;\n const mutationTimeout = click.mutationDelayMs != null &&\n click.mutationDelayMs > this._deadClickConfig.MUTATION_DELAY_MS;\n const absoluteTimeout = click.absoluteDelayMs != null &&\n click.absoluteDelayMs >\n this._deadClickConfig.ABSOLUTE_DEAD_CLICK_TIMEOUT;\n if (scrollTimeout ||\n selectionChangeTimeout ||\n mutationTimeout ||\n absoluteTimeout) {\n this._logDeadClick(click, {\n scrollTimeout,\n selectionChangeTimeout,\n mutationTimeout,\n absoluteTimeout,\n });\n }\n else if (click.absoluteDelayMs != null &&\n click.absoluteDelayMs <\n this._deadClickConfig.ABSOLUTE_DEAD_CLICK_TIMEOUT) {\n this._clicks.push(click);\n }\n }\n if (this._clicks.length && !this._clickCheckTimer) {\n this._clickCheckTimer = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.setTimeout(() => {\n this._checkForDeadClick();\n }, this._deadClickConfig.CLICK_CHECK_TIMEOUT);\n }\n }\n _logDeadClick(click, extraMetadata) {\n const { value, metadata } = (0, eventUtils_1._gatherEventData)(click.eventTarget);\n if (!value) {\n return;\n }\n this._enqueueFn(AutoCaptureEvent_1.AutoCaptureEventName.DEAD_CLICK, value, Object.assign(Object.assign(Object.assign(Object.assign({}, metadata), extraMetadata), (0, metadataUtils_1._gatherCommonMetadata)((0, commonUtils_1._getSafeUrl)())), { scrollDelayMs: click.scrollDelayMs, selectionChangeDelayMs: click.selectionChangeDelayMs, mutationDelayMs: click.mutationDelayMs, absoluteDelayMs: click.absoluteDelayMs }));\n }\n _updateClickDelayMs(click) {\n if (!click.mutationDelayMs &&\n this._lastMutationTime > 0 &&\n click.timestamp <= this._lastMutationTime) {\n click.mutationDelayMs = Date.now() - this._lastMutationTime;\n }\n if (!click.selectionChangeDelayMs &&\n this._lastSelectionChangeTime > 0 &&\n click.timestamp <= this._lastSelectionChangeTime) {\n click.selectionChangeDelayMs = Date.now() - this._lastSelectionChangeTime;\n }\n click.absoluteDelayMs = Date.now() - click.timestamp;\n }\n}\nexports.default = DeadClickManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigAutoCapturePlugin = exports.runStatsigAutoCapture = exports.AutoCapture = exports.AutoCaptureEventName = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCapture_1 = require(\"./AutoCapture\");\nObject.defineProperty(exports, \"AutoCapture\", { enumerable: true, get: function () { return AutoCapture_1.AutoCapture; } });\nObject.defineProperty(exports, \"StatsigAutoCapturePlugin\", { enumerable: true, get: function () { return AutoCapture_1.StatsigAutoCapturePlugin; } });\nObject.defineProperty(exports, \"runStatsigAutoCapture\", { enumerable: true, get: function () { return AutoCapture_1.runStatsigAutoCapture; } });\nvar AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nObject.defineProperty(exports, \"AutoCaptureEventName\", { enumerable: true, get: function () { return AutoCaptureEvent_1.AutoCaptureEventName; } });\nconst __STATSIG__ = Object.assign((0, client_core_1._getStatsigGlobal)(), {\n AutoCapture: AutoCapture_1.AutoCapture,\n runStatsigAutoCapture: AutoCapture_1.runStatsigAutoCapture,\n StatsigAutoCapturePlugin: AutoCapture_1.StatsigAutoCapturePlugin,\n});\nexports.default = __STATSIG__;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getUnitIDFromUser = exports._getFullUserHash = exports._normalizeUser = void 0;\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nfunction _normalizeUser(original, options, fallbackEnvironment) {\n const copy = (0, SafeJs_1._cloneObject)('StatsigUser', original);\n if (copy == null) {\n Log_1.Log.error('Failed to clone user');\n return { statsigEnvironment: undefined };\n }\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}\nexports._normalizeUser = _normalizeUser;\nfunction _getFullUserHash(user) {\n return user ? (0, Hashing_1._DJB2Object)(user) : null;\n}\nexports._getFullUserHash = _getFullUserHash;\nfunction _getUnitIDFromUser(user, idType) {\n var _a, _b, _c;\n if (typeof idType !== 'string') {\n return user.userID;\n }\n const lowered = idType.toLowerCase();\n if (lowered !== 'userid') {\n return (_b = (_a = user.customIDs) === null || _a === void 0 ? void 0 : _a[idType]) !== null && _b !== void 0 ? _b : (_c = user.customIDs) === null || _c === void 0 ? void 0 : _c[lowered];\n }\n return user.userID;\n}\nexports._getUnitIDFromUser = _getUnitIDFromUser;\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 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 try {\n return JSON.parse(value !== null && value !== void 0 ? value : 'null');\n }\n catch (e) {\n Log_1.Log.error(`Failed to parse value for key \"${key}\"`);\n return null;\n }\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.PendingEvents = void 0;\nconst Log_1 = require(\"./Log\");\nclass PendingEvents {\n constructor(batchSize) {\n this._pendingEvents = [];\n this._batchSize = batchSize;\n }\n addToPendingEventsQueue(event) {\n this._pendingEvents.push(event);\n Log_1.Log.debug('Enqueued Event:', event);\n }\n hasEventsForFullBatch() {\n return this._pendingEvents.length >= this._batchSize;\n }\n takeAll() {\n const events = this._pendingEvents;\n this._pendingEvents = [];\n return events;\n }\n isEmpty() {\n return this._pendingEvents.length === 0;\n }\n}\nexports.PendingEvents = PendingEvents;\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.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.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.getCookieName = exports.StableID = void 0;\nconst CacheKey_1 = require(\"./CacheKey\");\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst UUID_1 = require(\"./UUID\");\nconst PROMISE_MAP = {};\nconst COOKIE_ENABLED_MAP = {};\nconst DISABLED_MAP = {};\nexports.StableID = {\n cookiesEnabled: false,\n randomID: Math.random().toString(36),\n get: (sdkKey) => {\n if (DISABLED_MAP[sdkKey]) {\n return null;\n }\n if (PROMISE_MAP[sdkKey] != null) {\n return PROMISE_MAP[sdkKey];\n }\n let stableID = null;\n stableID = _loadFromCookie(sdkKey);\n if (stableID != null) {\n PROMISE_MAP[sdkKey] = stableID;\n _persistToStorage(stableID, sdkKey);\n return stableID;\n }\n stableID = _loadFromStorage(sdkKey);\n if (stableID == null) {\n stableID = (0, UUID_1.getUUID)();\n }\n _persistToStorage(stableID, sdkKey);\n _persistToCookie(stableID, sdkKey);\n PROMISE_MAP[sdkKey] = stableID;\n return stableID;\n },\n setOverride: (override, sdkKey) => {\n PROMISE_MAP[sdkKey] = override;\n _persistToStorage(override, sdkKey);\n _persistToCookie(override, sdkKey);\n },\n _setCookiesEnabled: (sdkKey, cookiesEnabled) => {\n COOKIE_ENABLED_MAP[sdkKey] = cookiesEnabled;\n },\n _setDisabled: (sdkKey, disabled) => {\n DISABLED_MAP[sdkKey] = disabled;\n },\n};\nfunction _getStableIDStorageKey(sdkKey) {\n return `statsig.stable_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nfunction _persistToStorage(stableID, sdkKey) {\n const storageKey = _getStableIDStorageKey(sdkKey);\n try {\n (0, StorageProvider_1._setObjectInStorage)(storageKey, stableID);\n }\n catch (e) {\n Log_1.Log.warn('Failed to save StableID to storage');\n }\n}\nfunction _loadFromStorage(sdkKey) {\n const storageKey = _getStableIDStorageKey(sdkKey);\n return (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n}\nfunction _loadFromCookie(sdkKey) {\n if (!COOKIE_ENABLED_MAP[sdkKey] || (0, SafeJs_1._getDocumentSafe)() == null) {\n return null;\n }\n const cookies = document.cookie.split(';');\n for (const cookie of cookies) {\n const [key, value] = cookie.trim().split('=');\n if (key === getCookieName(sdkKey)) {\n return decodeURIComponent(value);\n }\n }\n return null;\n}\nfunction _persistToCookie(stableID, sdkKey) {\n if (!COOKIE_ENABLED_MAP[sdkKey] || (0, SafeJs_1._getDocumentSafe)() == null) {\n return;\n }\n const expiryDate = new Date();\n expiryDate.setFullYear(expiryDate.getFullYear() + 1);\n document.cookie = `${getCookieName(sdkKey)}=${encodeURIComponent(stableID)}; expires=${expiryDate.toUTCString()}; path=/`;\n}\nfunction getCookieName(sdkKey) {\n return `statsig.stable_id.${(0, CacheKey_1._getStorageKey)(sdkKey)}`;\n}\nexports.getCookieName = getCookieName;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._notifyVisibilityChanged = exports._subscribeToVisiblityChanged = exports._isUnloading = exports._isCurrentlyVisible = void 0;\nconst SafeJs_1 = require(\"./SafeJs\");\nconst FOREGROUND = 'foreground';\nconst BACKGROUND = 'background';\nconst LISTENERS = [];\nlet current = FOREGROUND;\nlet isUnloading = false;\nconst _isCurrentlyVisible = () => {\n return current === FOREGROUND;\n};\nexports._isCurrentlyVisible = _isCurrentlyVisible;\nconst _isUnloading = () => isUnloading;\nexports._isUnloading = _isUnloading;\nconst _subscribeToVisiblityChanged = (listener) => {\n LISTENERS.unshift(listener);\n};\nexports._subscribeToVisiblityChanged = _subscribeToVisiblityChanged;\nconst _notifyVisibilityChanged = (visibility) => {\n if (visibility === current) {\n return;\n }\n current = visibility;\n LISTENERS.forEach((l) => l(visibility));\n};\nexports._notifyVisibilityChanged = _notifyVisibilityChanged;\n(0, SafeJs_1._addWindowEventListenerSafe)('focus', () => {\n isUnloading = false;\n (0, exports._notifyVisibilityChanged)(FOREGROUND);\n});\n(0, SafeJs_1._addWindowEventListenerSafe)('blur', () => (0, exports._notifyVisibilityChanged)(BACKGROUND));\n(0, SafeJs_1._addDocumentEventListenerSafe)('visibilitychange', () => {\n (0, exports._notifyVisibilityChanged)(document.visibilityState === 'visible' ? FOREGROUND : BACKGROUND);\n});\n(0, SafeJs_1._addWindowEventListenerSafe)((0, SafeJs_1._getUnloadEvent)(), () => {\n isUnloading = true;\n (0, exports._notifyVisibilityChanged)(BACKGROUND);\n});\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst EvaluationResponseDeltas_1 = require(\"./EvaluationResponseDeltas\");\nclass StatsigNetwork extends client_core_1.NetworkCore {\n constructor(options, emitter) {\n super(options, emitter);\n const config = options === null || options === void 0 ? void 0 : options.networkConfig;\n this._option = options;\n this._initializeUrlConfig = new client_core_1.UrlConfiguration(client_core_1.Endpoint._initialize, config === null || config === void 0 ? void 0 : config.initializeUrl, config === null || config === void 0 ? void 0 : config.api, config === null || config === void 0 ? void 0 : config.initializeFallbackUrls);\n }\n fetchEvaluations(sdkKey, current, priority, user, isCacheValidFor204) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d, _e, _f;\n const cache = current\n ? (0, client_core_1._typedJsonParse)(current, 'has_updates', 'InitializeResponse')\n : null;\n let data = {\n user,\n hash: (_c = (_b = (_a = this._option) === null || _a === void 0 ? void 0 : _a.networkConfig) === null || _b === void 0 ? void 0 : _b.initializeHashAlgorithm) !== null && _c !== void 0 ? _c : 'djb2',\n deltasResponseRequested: false,\n full_checksum: null,\n };\n if (cache === null || cache === void 0 ? void 0 : cache.has_updates) {\n const hasHashChanged = (cache === null || cache === void 0 ? void 0 : cache.hash_used) !==\n ((_f = (_e = (_d = this._option) === null || _d === void 0 ? void 0 : _d.networkConfig) === null || _e === void 0 ? void 0 : _e.initializeHashAlgorithm) !== null && _f !== void 0 ? _f : 'djb2');\n data = Object.assign(Object.assign({}, data), { sinceTime: isCacheValidFor204 && !hasHashChanged ? cache.time : 0, previousDerivedFields: 'derived_fields' in cache && isCacheValidFor204\n ? cache.derived_fields\n : {}, deltasResponseRequested: true, full_checksum: cache.full_checksum, partialUserMatchSinceTime: !hasHashChanged ? cache.time : 0 });\n }\n return this._fetchEvaluations(sdkKey, cache, data, priority);\n });\n }\n _fetchEvaluations(sdkKey, cache, data, priority) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const response = yield this.post({\n sdkKey,\n urlConfig: this._initializeUrlConfig,\n data,\n retries: 2,\n isStatsigEncodable: true,\n priority,\n });\n if ((response === null || response === void 0 ? void 0 : response.code) === 204) {\n return '{\"has_updates\": false}';\n }\n if ((response === null || response === void 0 ? void 0 : response.code) !== 200) {\n return (_a = response === null || response === void 0 ? void 0 : response.body) !== null && _a !== void 0 ? _a : null;\n }\n if ((cache === null || cache === void 0 ? void 0 : cache.has_updates) !== true ||\n ((_b = response.body) === null || _b === void 0 ? void 0 : _b.includes('\"is_delta\":true')) !== true ||\n data.deltasResponseRequested !== true) {\n return response.body;\n }\n const result = (0, EvaluationResponseDeltas_1._resolveDeltasResponse)(cache, response.body);\n if (typeof result === 'string') {\n return result;\n }\n // retry without deltas\n return this._fetchEvaluations(sdkKey, cache, Object.assign(Object.assign(Object.assign({}, data), result), { deltasResponseRequested: false }), priority);\n });\n }\n}\nexports.default = StatsigNetwork;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchQueue = void 0;\nconst EventBatch_1 = require(\"./EventBatch\");\nconst EventRetryConstants_1 = require(\"./EventRetryConstants\");\nclass BatchQueue {\n constructor(batchSize = EventRetryConstants_1.EventRetryConstants.DEFAULT_BATCH_SIZE) {\n this._batches = [];\n this._batchSize = batchSize;\n }\n batchSize() {\n return this._batchSize;\n }\n requeueBatch(batch) {\n return this._enqueueBatch(batch);\n }\n hasFullBatch() {\n return this._batches.some((batch) => batch.events.length >= this._batchSize);\n }\n takeNextBatch() {\n return this._batches.shift();\n }\n takeAllBatches() {\n const batches = this._batches;\n this._batches = [];\n return batches;\n }\n createBatches(events) {\n let i = 0;\n let droppedCount = 0;\n while (i < events.length) {\n const chunk = events.slice(i, i + this._batchSize);\n droppedCount += this._enqueueBatch(new EventBatch_1.EventBatch(chunk));\n i += this._batchSize;\n }\n return droppedCount;\n }\n _enqueueBatch(batch) {\n this._batches.push(batch);\n let droppedEventCount = 0;\n while (this._batches.length > EventRetryConstants_1.EventRetryConstants.MAX_PENDING_BATCHES) {\n const dropped = this._batches.shift();\n if (dropped) {\n droppedEventCount += dropped.events.length;\n }\n }\n return droppedEventCount;\n }\n}\nexports.BatchQueue = BatchQueue;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isUserActionAutoCaptureEvent = exports.AutoCaptureEventName = void 0;\nexports.AutoCaptureEventName = {\n PAGE_VIEW: 'auto_capture::page_view',\n PAGE_VIEW_END: 'auto_capture::page_view_end',\n ERROR: 'auto_capture::error',\n SESSION_START: 'auto_capture::session_start',\n PERFORMANCE: 'auto_capture::performance',\n FORM_SUBMIT: 'auto_capture::form_submit',\n CLICK: 'auto_capture::click',\n RAGE_CLICK: 'auto_capture::rage_click',\n WEB_VITALS: 'auto_capture::web_vitals',\n DEAD_CLICK: 'auto_capture::dead_click',\n COPY: 'auto_capture::copy',\n // log line is a special event name used to populate logs metrics explorer\n CONSOLE_LOG: 'statsig::log_line',\n};\nconst USER_ACTION_EVENTS = new Set([\n exports.AutoCaptureEventName.PAGE_VIEW,\n exports.AutoCaptureEventName.PAGE_VIEW_END,\n exports.AutoCaptureEventName.SESSION_START,\n exports.AutoCaptureEventName.FORM_SUBMIT,\n exports.AutoCaptureEventName.CLICK,\n exports.AutoCaptureEventName.RAGE_CLICK,\n exports.AutoCaptureEventName.COPY,\n]);\nconst isUserActionAutoCaptureEvent = (eventName) => {\n return USER_ACTION_EVENTS.has(eventName);\n};\nexports.isUserActionAutoCaptureEvent = isUserActionAutoCaptureEvent;\n","\"use strict\";\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nvar _a, _b, _c;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getInstance = exports._getStatsigGlobalFlag = exports._getStatsigGlobal = void 0;\nconst Log_1 = require(\"./Log\");\nconst _getStatsigGlobal = () => {\n // Avoid ReferenceError, which is happening with Cloudflare pages\n try {\n return typeof __STATSIG__ !== 'undefined' ? __STATSIG__ : statsigGlobal;\n }\n catch (e) {\n return statsigGlobal;\n }\n};\nexports._getStatsigGlobal = _getStatsigGlobal;\nconst _getStatsigGlobalFlag = (flag) => {\n return (0, exports._getStatsigGlobal)()[flag];\n};\nexports._getStatsigGlobalFlag = _getStatsigGlobalFlag;\nconst _getInstance = (sdkKey) => {\n const gbl = (0, exports._getStatsigGlobal)();\n if (!sdkKey) {\n if (gbl.instances && Object.keys(gbl.instances).length > 1) {\n Log_1.Log.warn('Call made to Statsig global instance without an SDK key but there is more than one client instance. If you are using mulitple clients, please specify the SDK key.');\n }\n return gbl.firstInstance;\n }\n return gbl.instances && gbl.instances[sdkKey];\n};\nexports._getInstance = _getInstance;\nconst GLOBAL_KEY = '__STATSIG__';\nconst _window = typeof window !== 'undefined' ? window : {};\nconst _global = typeof global !== 'undefined' ? global : {};\nconst _globalThis = typeof globalThis !== 'undefined' ? globalThis : {};\nconst statsigGlobal = (_c = (_b = (_a = _window[GLOBAL_KEY]) !== null && _a !== void 0 ? _a : _global[GLOBAL_KEY]) !== null && _b !== void 0 ? _b : _globalThis[GLOBAL_KEY]) !== null && _c !== void 0 ? _c : {\n instance: exports._getInstance,\n};\n_window[GLOBAL_KEY] = statsigGlobal;\n_global[GLOBAL_KEY] = statsigGlobal;\n_globalThis[GLOBAL_KEY] = statsigGlobal;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._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._getPossibleFirstTouchMetadata = exports._getNetworkInfo = exports._gatherAllMetadata = exports._gatherCommonMetadata = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst commonUtils_1 = require(\"./commonUtils\");\nfunction _gatherCommonMetadata(url) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const safeDoc = (0, client_core_1._getDocumentSafe)();\n const safeWnd = (0, client_core_1._getWindowSafe)();\n return (0, commonUtils_1._stripEmptyValues)(Object.assign({ title: safeDoc === null || safeDoc === void 0 ? void 0 : safeDoc.title, current_url: (_a = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.location) === null || _a === void 0 ? void 0 : _a.href, user_agent: ((_b = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator) === null || _b === void 0 ? void 0 : _b.userAgent) &&\n ((_d = (_c = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator) === null || _c === void 0 ? void 0 : _c.userAgent) === null || _d === void 0 ? void 0 : _d.length) > 200\n ? safeWnd.navigator.userAgent.substring(0, 200)\n : (_e = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator) === null || _e === void 0 ? void 0 : _e.userAgent, locale: (_f = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.navigator) === null || _f === void 0 ? void 0 : _f.language, hostname: url.hostname, pathname: url.pathname, screen_width: (_g = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.screen) === null || _g === void 0 ? void 0 : _g.width, screen_height: (_h = safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.screen) === null || _h === void 0 ? void 0 : _h.height, viewport_width: safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerWidth, viewport_height: safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerHeight, viewport: `${safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerWidth}x${safeWnd === null || safeWnd === void 0 ? void 0 : safeWnd.innerHeight}`, timestamp: Date.now(), timezone: (0, commonUtils_1._getSafeTimezone)(), timezone_offset: (0, commonUtils_1._getSafeTimezoneOffset)(), navigation_type: (0, commonUtils_1._getSafeNavigationType)() }, _getNetworkInfo()));\n}\nexports._gatherCommonMetadata = _gatherCommonMetadata;\nfunction _gatherAllMetadata(url) {\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 referrerInfo = getReferrerInfo(safeDoc);\n const commonInfo = _gatherCommonMetadata(url);\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({}, commonInfo), (0, commonUtils_1._stripEmptyValues)(Object.assign(Object.assign(Object.assign({}, referrerInfo), campaignParams), queryParams)));\n}\nexports._gatherAllMetadata = _gatherAllMetadata;\nfunction _getNetworkInfo() {\n const networkInfo = (0, commonUtils_1._getSafeNetworkInformation)();\n const result = {};\n if ((networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.effectiveType) !== undefined) {\n result['effective_connection_type'] = networkInfo.effectiveType;\n }\n if ((networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.rtt) !== undefined) {\n result['rtt_ms'] = networkInfo.rtt;\n }\n if ((networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.downlink) !== undefined) {\n result['downlink_mbps'] = networkInfo.downlink;\n result['downlink_kbps'] = networkInfo.downlink * 1000; // deprecated\n }\n if ((networkInfo === null || networkInfo === void 0 ? void 0 : networkInfo.saveData) !== undefined) {\n result['save_data'] = networkInfo.saveData;\n }\n return result;\n}\nexports._getNetworkInfo = _getNetworkInfo;\nfunction _getPossibleFirstTouchMetadata(url) {\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 referrerInfo = getReferrerInfo(safeDoc);\n const campaignParams = getCampaignParams(url);\n const combined = (0, commonUtils_1._stripEmptyValues)(Object.assign(Object.assign({}, referrerInfo), campaignParams));\n const prefixed = {};\n for (const [key, value] of Object.entries(combined)) {\n prefixed[`$s_${key}`] = value;\n }\n return prefixed;\n}\nexports._getPossibleFirstTouchMetadata = _getPossibleFirstTouchMetadata;\nfunction getReferrerInfo(safeDoc) {\n const referrer = (safeDoc === null || safeDoc === void 0 ? void 0 : safeDoc.referrer) || '';\n if (!referrer) {\n return {\n referrer: null,\n referrer_domain: null,\n referrer_path: null,\n searchEngine: '',\n searchQuery: '',\n };\n }\n try {\n const url = new URL(referrer);\n const host = url.hostname;\n const searchEngine = ['google', 'bing', 'yahoo', 'duckduckgo', 'baidu'].find((e) => host.includes(e + '.')) || '';\n const searchQuery = url.searchParams.get(searchEngine === 'yahoo' ? 'p' : 'q') || '';\n return {\n referrer,\n referrer_domain: url.hostname,\n referrer_path: url.pathname,\n searchEngine,\n searchQuery,\n };\n }\n catch (e) {\n return {\n referrer: null,\n referrer_domain: null,\n referrer_path: null,\n searchEngine: '',\n searchQuery: '',\n };\n }\n}\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 'msclkid', // Bing\n 'dclid', // DoubleClick\n 'fbclid', // Facebook\n 'gad_source', // Google\n 'gclid', // Google\n 'gclsrc', // Google\n 'wbraid', // Google\n 'utm_id', // Hubspot\n 'irclid', // Impact\n 'igshid', // Instagram\n '_kx', // Klaviyo\n 'li_fat_id', // LinkedIn\n 'mc_cid', // Mailchimp\n 'mc_eid', // Mailchimp\n 'epik', // Pinterest\n 'qclid', // Quora\n 'rdt_cid', // Reddit\n 'sccid', // Snapchat\n 'ttc', // TikTok\n 'ttclid', // TikTok\n 'ttc_id', // TikTok\n 'twclid', // Twitter\n ];\n commonUtms.forEach((p) => {\n const val = urlParams.get(p);\n if (val) {\n campaignParams[p] = val;\n }\n });\n return campaignParams;\n}\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.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._errorBoundary = new ErrorBoundary_1.ErrorBoundary(sdkKey, options, emitter);\n this._logger = new EventLogger_1.EventLogger(sdkKey, emitter, network, options, this._errorBoundary);\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\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorBoundary = exports.EXCEPTION_ENDPOINT = void 0;\nconst Log_1 = require(\"./Log\");\nconst SDKType_1 = require(\"./SDKType\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nexports.EXCEPTION_ENDPOINT = 'https://statsigapi.net/v1/sdk_exception';\nconst UNKNOWN_ERROR = '[Statsig] UnknownError';\nclass ErrorBoundary {\n constructor(_sdkKey, _options, _emitter, _lastSeenError) {\n this._sdkKey = _sdkKey;\n this._options = _options;\n this._emitter = _emitter;\n this._lastSeenError = _lastSeenError;\n this._seen = new Set();\n }\n wrap(instance, namePrefix) {\n try {\n const obj = instance;\n _getAllInstanceMethodNames(obj).forEach((name) => {\n const original = obj[name];\n if ('$EB' in original) {\n return;\n }\n obj[name] = (...args) => {\n return this._capture(namePrefix ? `${namePrefix}:${name}` : name, () => original.apply(instance, args));\n };\n obj[name].$EB = true;\n });\n }\n catch (err) {\n this._onError('eb:wrap', err);\n }\n }\n logError(tag, error) {\n this._onError(tag, error);\n }\n logDroppedEvents(count, reason, metadata) {\n const extra = {\n eventCount: String(count),\n reason,\n };\n if (metadata) {\n Object.keys(metadata).forEach((key) => {\n extra[key] = String(metadata[key]);\n });\n }\n this._onError(`statsig::log_event_dropped_event_count`, new Error(reason), true, extra);\n }\n logEventRequestFailure(count, reason, flushType, statusCode, retries, failurePath, failureErrorMessage, failureDiagnosticBucket, failureDiagnosticMetadata) {\n const extra = {\n eventCount: String(count),\n flushType: flushType,\n statusCode: String(statusCode),\n reason: reason,\n retries: String(retries),\n };\n if (failurePath) {\n extra['failurePath'] = failurePath;\n }\n if (typeof failureErrorMessage === 'string' &&\n failureErrorMessage.length > 0) {\n extra['failureErrorMessage'] = failureErrorMessage;\n }\n if (typeof failureDiagnosticBucket === 'string' &&\n failureDiagnosticBucket.length > 0) {\n extra['failureDiagnosticBucket'] = failureDiagnosticBucket;\n }\n if (failureDiagnosticMetadata) {\n Object.keys(failureDiagnosticMetadata).forEach((key) => {\n const value = failureDiagnosticMetadata[key];\n if (value.length > 0) {\n extra[`failureDiagnostic_${key}`] = value;\n }\n });\n }\n this._onError(`statsig::log_event_failed`, new Error(reason), true, extra);\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, bypassDedupe = false, extra) {\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 (!bypassDedupe && 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(Object.assign({ tag, exception: name, info, statsigOptions: _getStatsigOptionLoggingCopy(this._options) }, Object.assign(Object.assign({}, statsigMetadata), { sdkType })), (extra !== null && extra !== void 0 ? extra : {}));\n const networkConfig = (_d = this._options) === null || _d === void 0 ? void 0 : _d.networkConfig;\n const func = (_e = networkConfig === null || networkConfig === void 0 ? void 0 : networkConfig.networkOverrideFunc) !== null && _e !== void 0 ? _e : fetch;\n yield func((_f = networkConfig === null || networkConfig === void 0 ? void 0 : networkConfig.sdkExceptionUrl) !== null && _f !== void 0 ? _f : exports.EXCEPTION_ENDPOINT, {\n method: 'POST',\n headers: {\n 'STATSIG-API-KEY': this._sdkKey,\n 'STATSIG-SDK-TYPE': String(sdkType),\n 'STATSIG-SDK-VERSION': String(statsigMetadata.sdkVersion),\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(body),\n });\n (_g = this._emitter) === null || _g === void 0 ? void 0 : _g.call(this, {\n name: 'error',\n error,\n tag,\n });\n });\n impl()\n .then(() => {\n /* noop */\n })\n .catch(() => {\n /* noop */\n });\n }\n catch (_error) {\n /* noop */\n }\n }\n}\nexports.ErrorBoundary = ErrorBoundary;\nfunction _resolveError(error) {\n if (error instanceof Error) {\n return error;\n }\n else if (typeof error === 'string') {\n return new Error(error);\n }\n else {\n return new Error('An unknown error occurred.');\n }\n}\nfunction _getDescription(obj) {\n try {\n return JSON.stringify(obj);\n }\n catch (_a) {\n return UNKNOWN_ERROR;\n }\n}\nfunction _getAllInstanceMethodNames(instance) {\n const names = new Set();\n let proto = Object.getPrototypeOf(instance);\n while (proto && proto !== Object.prototype) {\n Object.getOwnPropertyNames(proto)\n .filter((prop) => typeof (proto === null || proto === void 0 ? void 0 : proto[prop]) === 'function')\n .forEach((name) => names.add(name));\n proto = Object.getPrototypeOf(proto);\n }\n return Array.from(names);\n}\nfunction _getStatsigOptionLoggingCopy(options) {\n if (!options) {\n return {};\n }\n const loggingCopy = {};\n Object.keys(options).forEach((key) => {\n const option = key;\n const value = options[option];\n const valueType = typeof value;\n switch (valueType) {\n case 'number':\n case 'bigint':\n case 'boolean':\n loggingCopy[String(option)] = value;\n break;\n case 'string':\n if (value.length < 50) {\n loggingCopy[String(option)] = value;\n }\n else {\n loggingCopy[String(option)] = 'set';\n }\n break;\n case 'object':\n if (option === 'environment') {\n loggingCopy['environment'] = value;\n }\n else if (option === 'networkConfig') {\n loggingCopy['networkConfig'] = value;\n }\n else {\n loggingCopy[String(option)] = value != null ? 'set' : 'unset';\n }\n break;\n default:\n // Ignore other fields\n }\n });\n return loggingCopy;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConsoleLogManager = void 0;\n/* eslint-disable no-console */\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nconst commonUtils_1 = require(\"./utils/commonUtils\");\nconst consoleLogsUtils_1 = require(\"./utils/consoleLogsUtils\");\nconst metadataUtils_1 = require(\"./utils/metadataUtils\");\nconst ConsoleLogPriority = {\n trace: 10,\n debug: 20,\n log: 30, // log & info are the same priority\n info: 30,\n warn: 40,\n error: 50,\n};\nconst DEFAULT_MAX_KEYS = 50;\nconst DEFAULT_MAX_DEPTH = 10;\nconst DEFAULT_MAX_STRING_LENGTH = 2500;\nclass ConsoleLogManager {\n constructor(_enqueueFn, _errorBoundary, _options) {\n var _a, _b, _c, _d;\n this._enqueueFn = _enqueueFn;\n this._errorBoundary = _errorBoundary;\n this._options = _options;\n this._restoreFns = [];\n this._isTracking = false;\n this._logLevel = 'info';\n this.__source = 'js-auto-capture';\n this._logLevel = (_a = this._options.logLevel) !== null && _a !== void 0 ? _a : 'info';\n this._maxKeys = (_b = this._options.maxKeys) !== null && _b !== void 0 ? _b : DEFAULT_MAX_KEYS;\n this._maxDepth = (_c = this._options.maxDepth) !== null && _c !== void 0 ? _c : DEFAULT_MAX_DEPTH;\n this._maxStringLength =\n (_d = this._options.maxStringLength) !== null && _d !== void 0 ? _d : DEFAULT_MAX_STRING_LENGTH;\n }\n startTracking() {\n try {\n if (this._isTracking || !this._options.enabled)\n return;\n const win = (0, client_core_1._getWindowSafe)();\n if (!win)\n return;\n this._patchConsole();\n this._isTracking = true;\n }\n catch (error) {\n client_core_1.Log.error('Error starting console log tracking', error);\n this._errorBoundary.logError('autoCapture:ConsoleLogManager', error);\n }\n }\n stopTracking() {\n if (!this._isTracking)\n return;\n this._restoreFns.forEach((restore) => restore());\n this._restoreFns = [];\n this._isTracking = false;\n }\n _patchConsole() {\n Object.entries(ConsoleLogPriority).forEach(([level, priority]) => {\n if (priority < ConsoleLogPriority[this._logLevel])\n return;\n if (!console[level])\n return;\n const original = console[level].bind(console);\n let inStack = false;\n const restore = (0, commonUtils_1.wrapFunctionWithRestore)(console, level, (originalFn) => {\n return (...args) => {\n originalFn(...args);\n if (inStack)\n return;\n inStack = true;\n try {\n const payload = args.map((a) => (0, consoleLogsUtils_1._safeStringify)(a, this._maxKeys, this._maxDepth, this._maxStringLength));\n const trace = (0, consoleLogsUtils_1._getStackTrace)();\n this._enqueueConsoleLog(level, payload, trace);\n }\n catch (err) {\n original('console observer error:', err, ...args);\n this._errorBoundary.logError('autoCapture:ConsoleLogManager', err);\n }\n finally {\n inStack = false;\n }\n };\n });\n this._restoreFns.push(restore);\n });\n }\n _enqueueConsoleLog(level, payload, trace) {\n if (!this._shouldLog(payload))\n return;\n const metadata = Object.assign({ status: level === 'log' ? 'info' : level, log_level: level, payload,\n trace, timestamp: Date.now(), source: this.__source }, (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)()));\n this._enqueueFn(AutoCaptureEvent_1.AutoCaptureEventName.CONSOLE_LOG, payload.join(' '), metadata);\n }\n _shouldLog(payload) {\n for (const p of payload) {\n if (p.includes('[Statsig]')) {\n return false;\n }\n }\n if (!this._options.sampleRate ||\n typeof this._options.sampleRate !== 'number' ||\n this._options.sampleRate <= 0 ||\n this._options.sampleRate >= 1) {\n return true;\n }\n return Math.random() < this._options.sampleRate;\n }\n}\nexports.ConsoleLogManager = ConsoleLogManager;\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\";\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 = exports.RETRYABLE_CODES = 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;\nexports.RETRYABLE_CODES = new Set([\n 408, 500, 502, 503, 504, 522, 524, 599,\n]);\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, failureInfo) {\n if (!_ensureValidSdkKey(args)) {\n if (failureInfo) {\n failureInfo.path = 'beacon_invalid_sdk_key';\n }\n return false;\n }\n const argsInternal = this._getInternalRequestArgs('POST', args);\n const url = this._getPopulatedURL(argsInternal);\n const nav = navigator;\n try {\n const success = nav.sendBeacon.bind(nav)(url, argsInternal.body);\n if (!success) {\n if (failureInfo) {\n failureInfo.path = 'beacon_send_false';\n }\n }\n return success;\n }\n catch (error) {\n if (failureInfo) {\n failureInfo.path = 'beacon_send_exception';\n }\n throw error;\n }\n }\n post(args, failureInfo) {\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, failureInfo);\n });\n }\n get(args) {\n const argsInternal = this._getInternalRequestArgs('GET', args);\n return this._sendRequest(argsInternal);\n }\n _sendRequest(args, failureInfo) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c, _d;\n if (!_ensureValidSdkKey(args)) {\n if (failureInfo) {\n failureInfo.path = 'network_invalid_sdk_key';\n }\n return null;\n }\n if (this._netConfig.preventAllNetworkTraffic) {\n if (failureInfo) {\n failureInfo.path = 'network_prevent_all_network_traffic';\n }\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 if (failureInfo) {\n failureInfo.path = 'network_rate_limited';\n }\n return null;\n }\n const currentAttempt = attempt !== null && attempt !== void 0 ? attempt : 1;\n let reqTimedOut = false;\n const populatedUrl = this._getPopulatedURL(args);\n const startTime = Date.now();\n let response = null;\n const keepalive = (0, VisibilityObserving_1._isUnloading)();\n try {\n const config = {\n method,\n body,\n headers: Object.assign({}, args.headers),\n priority: args.priority,\n keepalive,\n };\n _tryMarkInitStart(args, currentAttempt);\n const bucket = this._leakyBucket[endpoint];\n if (bucket) {\n bucket.lastRequestTime = Date.now();\n this._leakyBucket[endpoint] = bucket;\n }\n const func = (_a = this._netConfig.networkOverrideFunc) !== null && _a !== void 0 ? _a : fetch;\n let timeoutId;\n response = yield Promise.race([\n func(populatedUrl, config).finally(() => clearTimeout(timeoutId)),\n new Promise((_, reject) => {\n timeoutId = setTimeout(() => {\n reqTimedOut = true;\n reject(new Error(`Timeout of ${this._timeout}ms expired.`));\n }, this._timeout);\n }),\n ]);\n if (!response.ok) {\n const text = yield response.text().catch(() => 'No Text');\n const err = new Error(`NetworkError: ${populatedUrl} ${text}`);\n err.name = 'NetworkError';\n throw err;\n }\n const text = yield response.text();\n _tryMarkInitEnd(args, response, currentAttempt, text);\n this._fallbackResolver.tryBumpExpiryTime(args.sdkKey, args.urlConfig);\n return {\n body: text,\n code: response.status,\n };\n }\n catch (error) {\n const errorMessage = _getErrorMessage(error);\n const timedOut = _didTimeout(errorMessage !== null && errorMessage !== void 0 ? errorMessage : '', reqTimedOut);\n _tryMarkInitEnd(args, response, currentAttempt, '', error);\n const fallbackUpdated = yield this._fallbackResolver.tryFetchUpdatedFallbackInfo(args.sdkKey, args.urlConfig, errorMessage, timedOut);\n if (fallbackUpdated) {\n args.fallbackUrl = this._fallbackResolver.getActiveFallbackUrl(args.sdkKey, args.urlConfig);\n }\n if (!retries ||\n currentAttempt > retries ||\n !exports.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 if (args.preserveFailedStatusCode && response != null) {\n return {\n body: null,\n code: response.status,\n };\n }\n if (response == null) {\n if (failureInfo) {\n failureInfo.path = timedOut\n ? 'network_request_timed_out_no_response'\n : 'network_request_exception_no_response';\n if (errorMessage) {\n failureInfo.errorMessage = errorMessage;\n }\n try {\n const diagnostics = _getNoResponseDiagnostics(args, populatedUrl, timedOut, Date.now() - startTime);\n failureInfo.diagnosticBucket = diagnostics.bucket;\n failureInfo.diagnosticMetadata = diagnostics.metadata;\n }\n catch (_e) {\n // Diagnostics should not affect request failure handling.\n }\n }\n }\n return null;\n }\n yield _exponentialBackoff(currentAttempt);\n return this._sendRequest(Object.assign(Object.assign({}, args), { retries, attempt: currentAttempt + 1 }), failureInfo);\n }\n });\n }\n _getLogEventCompressionMode(options) {\n // Handle backward compatibility for deprecated disableCompression flag\n let compressionMode = options === null || options === void 0 ? void 0 : options.logEventCompressionMode;\n if (!compressionMode && (options === null || options === void 0 ? void 0 : options.disableCompression) === true) {\n compressionMode = StatsigOptionsCommon_1.LogEventCompressionMode.Disabled;\n }\n // Default to enabled if unset\n if (!compressionMode) {\n compressionMode = StatsigOptionsCommon_1.LogEventCompressionMode.Enabled;\n }\n return compressionMode;\n }\n _isRateLimited(endpoint) {\n var _a;\n const now = Date.now();\n const bucket = (_a = this._leakyBucket[endpoint]) !== null && _a !== void 0 ? _a : {\n count: 0,\n lastRequestTime: now,\n };\n const elapsed = now - bucket.lastRequestTime;\n const leakedRequests = Math.floor(elapsed * LEAK_RATE);\n bucket.count = Math.max(0, bucket.count - leakedRequests);\n if (bucket.count >= RATE_LIMIT_MAX_REQ_COUNT) {\n return true;\n }\n bucket.count += 1;\n bucket.lastRequestTime = now;\n this._leakyBucket[endpoint] = bucket;\n return false;\n }\n _getPopulatedURL(args) {\n var _a;\n const url = (_a = args.fallbackUrl) !== null && _a !== void 0 ? _a : args.urlConfig.getUrl();\n if (args.urlConfig.endpoint === NetworkConfig_1.Endpoint._initialize ||\n args.urlConfig.endpoint === NetworkConfig_1.Endpoint._download_config_specs) {\n this._lastUsedInitUrl = url;\n }\n const params = Object.assign({ [NetworkConfig_1.NetworkParam.SdkKey]: args.sdkKey, [NetworkConfig_1.NetworkParam.SdkType]: SDKType_1.SDKType._get(args.sdkKey), [NetworkConfig_1.NetworkParam.SdkVersion]: StatsigMetadata_1.SDK_VERSION, [NetworkConfig_1.NetworkParam.Time]: String(Date.now()), [NetworkConfig_1.NetworkParam.SessionID]: SessionID_1.SessionID.get(args.sdkKey) }, args.params);\n const query = Object.keys(params)\n .map((key) => {\n return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`;\n })\n .join('&');\n return `${url}${query ? `?${query}` : ''}`;\n }\n _tryEncodeBody(args) {\n var _a;\n const win = (0, SafeJs_1._getWindowSafe)();\n const body = args.body;\n if (!args.isStatsigEncodable ||\n this._options.disableStatsigEncoding ||\n typeof body !== 'string' ||\n (0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-encode') != null ||\n !(win === null || win === void 0 ? void 0 : win.btoa)) {\n return;\n }\n try {\n args.body = win.btoa(body).split('').reverse().join('');\n args.params = Object.assign(Object.assign({}, ((_a = args.params) !== null && _a !== void 0 ? _a : {})), { [NetworkConfig_1.NetworkParam.StatsigEncoded]: '1' });\n }\n catch (e) {\n Log_1.Log.warn(`Request encoding failed for ${args.urlConfig.getUrl()}`, e);\n }\n }\n _tryToCompressBody(args) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const body = args.body;\n if (typeof body !== 'string' || !_allowCompression(args, this._options)) {\n return;\n }\n try {\n const bytes = new TextEncoder().encode(body);\n const stream = new CompressionStream('gzip');\n const writer = stream.writable.getWriter();\n writer.write(bytes).catch(Log_1.Log.error);\n writer.close().catch(Log_1.Log.error);\n const reader = stream.readable.getReader();\n const chunks = [];\n let result;\n // eslint-disable-next-line no-await-in-loop\n while (!(result = yield reader.read()).done) {\n chunks.push(result.value);\n }\n const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n const combined = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n args.body = combined;\n args.params = Object.assign(Object.assign({}, ((_a = args.params) !== null && _a !== void 0 ? _a : {})), { [NetworkConfig_1.NetworkParam.IsGzipped]: '1' });\n }\n catch (e) {\n Log_1.Log.warn(`Request compression failed for ${args.urlConfig.getUrl()}`, e);\n }\n });\n }\n _getInternalRequestArgs(method, args) {\n const fallbackUrl = this._fallbackResolver.getActiveFallbackUrl(args.sdkKey, args.urlConfig);\n const result = Object.assign(Object.assign({}, args), { method,\n fallbackUrl });\n if ('data' in args) {\n _populateRequestBody(result, args.data);\n }\n return result;\n }\n}\nexports.NetworkCore = NetworkCore;\nconst _ensureValidSdkKey = (args) => {\n if (!args.sdkKey) {\n Log_1.Log.warn('Unable to make request without an SDK key');\n return false;\n }\n return true;\n};\nconst _populateRequestBody = (args, data) => {\n const { sdkKey, fallbackUrl } = args;\n const stableID = StableID_1.StableID.get(sdkKey);\n const sessionID = SessionID_1.SessionID.get(sdkKey);\n const sdkType = SDKType_1.SDKType._get(sdkKey);\n args.body = JSON.stringify(Object.assign(Object.assign({}, data), { statsigMetadata: Object.assign(Object.assign({}, StatsigMetadata_1.StatsigMetadataProvider.get()), { stableID,\n sessionID,\n sdkType,\n fallbackUrl }) }));\n};\nfunction _allowCompression(args, options) {\n if (!args.isCompressable) {\n return false;\n }\n // Never compress if 'no-compress' is set globally or required APIs are unavailable\n if ((0, __StatsigGlobal_1._getStatsigGlobalFlag)('no-compress') != null ||\n typeof CompressionStream === 'undefined' ||\n typeof TextEncoder === 'undefined') {\n return false;\n }\n const isProxy = args.urlConfig.customUrl != null || args.urlConfig.fallbackUrls != null;\n const flagEnabled = SDKFlags_1.SDKFlags.get(args.sdkKey, 'enable_log_event_compression') === true;\n switch (options.logEventCompressionMode) {\n case StatsigOptionsCommon_1.LogEventCompressionMode.Disabled:\n return false;\n case StatsigOptionsCommon_1.LogEventCompressionMode.Enabled:\n // Only compress through proxy if flag is explicitly on\n if (isProxy && !flagEnabled) {\n return false;\n }\n return true;\n case StatsigOptionsCommon_1.LogEventCompressionMode.Forced:\n return true;\n default:\n return false;\n }\n}\nfunction _getErrorMessage(error) {\n if (typeof error === 'string') {\n return error;\n }\n if (error instanceof Error) {\n return `${error.name}: ${error.message}`;\n }\n return 'Unknown Error';\n}\nfunction _didTimeout(errorMsg, abortedByTimeout) {\n const timeout = errorMsg.includes('Timeout'); // probably not needed but just in case\n return timeout || abortedByTimeout;\n}\nfunction _getNoResponseDiagnostics(args, populatedUrl, timedOut, elapsedMs) {\n var _a, _b, _c;\n const win = (0, SafeJs_1._getWindowSafe)();\n const doc = win === null || win === void 0 ? void 0 : win.document;\n const nav = typeof navigator !== 'undefined' ? navigator : null;\n const isUnloading = (0, VisibilityObserving_1._isUnloading)();\n const online = nav && typeof nav.onLine === 'boolean' ? String(nav.onLine) : 'unknown';\n const visibilityState = (_a = doc === null || doc === void 0 ? void 0 : doc.visibilityState) !== null && _a !== void 0 ? _a : 'unknown';\n const hasCustomHeaders = Object.keys((_b = args.headers) !== null && _b !== void 0 ? _b : {}).length > 0;\n const crossOrigin = _isCrossOrigin(populatedUrl, (_c = win === null || win === void 0 ? void 0 : win.location) === null || _c === void 0 ? void 0 : _c.origin);\n const hasCustomUrl = args.urlConfig.customUrl != null;\n const hasFallbackUrl = args.fallbackUrl != null;\n const elapsedMsBucket = _bucketNumber(elapsedMs, [250, 1000, 5000, 10000]);\n const bodySizeBucket = _bucketNumber(_getBodySize(args.body), [16384, 65536, 262144, 1048576]);\n let bucket = 'unknown_no_response';\n if (timedOut) {\n bucket = 'timeout';\n }\n else if (online === 'false') {\n bucket = 'browser_offline';\n }\n else if (isUnloading) {\n bucket = 'page_unloading';\n }\n else if (visibilityState === 'hidden') {\n bucket = 'page_hidden';\n }\n else if (crossOrigin && hasCustomHeaders) {\n bucket = 'cross_origin_custom_headers_preflight_risk';\n }\n else if (hasCustomUrl || hasFallbackUrl) {\n bucket = 'custom_url_no_response';\n }\n else if (elapsedMs < 250) {\n bucket = 'immediate_network_rejection';\n }\n return {\n bucket,\n metadata: {\n elapsedMsBucket,\n bodySizeBucket,\n online,\n visibilityState,\n isUnloading: String(isUnloading),\n crossOrigin: String(crossOrigin),\n hasCustomUrl: String(hasCustomUrl),\n },\n };\n}\nfunction _isCrossOrigin(url, currentOrigin) {\n if (!currentOrigin) {\n return true;\n }\n return (!url.startsWith(`${currentOrigin}/`) &&\n !url.startsWith(`${currentOrigin}?`) &&\n url !== currentOrigin);\n}\nfunction _getBodySize(body) {\n if (body == null) {\n return 0;\n }\n if (typeof body === 'string') {\n return body.length;\n }\n if (body instanceof Uint8Array) {\n return body.byteLength;\n }\n if (typeof Blob !== 'undefined' && body instanceof Blob) {\n return body.size;\n }\n return -1;\n}\nfunction _bucketNumber(value, thresholds) {\n if (value < 0) {\n return 'unknown';\n }\n for (const threshold of thresholds) {\n if (value < threshold) {\n return `<${threshold}`;\n }\n }\n return `>=${thresholds[thresholds.length - 1]}`;\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 });\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\";\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 BatchedEventsQueue_1 = require(\"./BatchedEventsQueue\");\nconst CacheKey_1 = require(\"./CacheKey\");\nconst EventRetryConstants_1 = require(\"./EventRetryConstants\");\nconst FlushCoordinator_1 = require(\"./FlushCoordinator\");\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst PendingEvents_1 = require(\"./PendingEvents\");\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 MAX_DEDUPER_KEYS = 1000;\nconst DEDUPER_WINDOW_DURATION_MS = 600000;\nconst EVENT_LOGGER_MAP = {};\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 constructor(_sdkKey, _emitter, _network, _options, _errorBoundary) {\n var _a;\n this._sdkKey = _sdkKey;\n this._emitter = _emitter;\n this._network = _network;\n this._options = _options;\n this._errorBoundary = _errorBoundary;\n this._pendingEvents = null;\n this._batchQueue = null;\n this._flushCoordinator = null;\n this._lastExposureTimeMap = {};\n this._nonExposedChecks = {};\n this._isShuttingDown = false;\n this._storageKey = null;\n this._pendingCompressionMode = null;\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 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 if (this._flushCoordinator) {\n this._flushCoordinator.setLogEventCompressionMode(mode);\n }\n else {\n this._pendingCompressionMode = mode;\n }\n }\n setLoggingEnabled(loggingEnabled) {\n const wasDisabled = this._loggingEnabled === 'disabled';\n const isNowEnabled = loggingEnabled !== 'disabled';\n this._loggingEnabled = loggingEnabled;\n if (this._flushCoordinator) {\n this._flushCoordinator.setLoggingEnabled(loggingEnabled);\n }\n if (wasDisabled && isNowEnabled) {\n const events = this._loadStoredEvents();\n Log_1.Log.debug(`Loaded ${events.length} stored event(s) from storage`);\n if (events.length > 0) {\n events.forEach((event) => {\n this._initFlushCoordinator().addEvent(event);\n });\n this.flush().catch((error) => {\n Log_1.Log.warn('Failed to flush events after enabling logging:', error);\n });\n }\n }\n }\n enqueue(event) {\n var _a;\n if (!this._shouldLogEvent(event)) {\n return;\n }\n const normalizedEvent = this._normalizeEvent(event);\n if (this._loggingEnabled === 'disabled') {\n this._storeEventToStorage(normalizedEvent);\n return;\n }\n this._initFlushCoordinator().addEvent(normalizedEvent);\n (_a = this._flushCoordinator) === null || _a === void 0 ? void 0 : _a.checkQuickFlush();\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 const flushCoordinator = this._initFlushCoordinator();\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 flushCoordinator.startScheduledFlushCycle();\n }\n });\n }\n flushCoordinator.loadAndRetryShutdownFailedEvents().catch((error) => {\n Log_1.Log.warn('Failed to load failed shutdown events:', error);\n });\n flushCoordinator.startScheduledFlushCycle();\n }\n stop() {\n return __awaiter(this, void 0, void 0, function* () {\n this._isShuttingDown = true;\n if (this._flushCoordinator) {\n yield this._flushCoordinator.processShutdown();\n }\n delete EVENT_LOGGER_MAP[this._sdkKey];\n this._flushCoordinator = null;\n this._pendingEvents = null;\n this._batchQueue = null;\n });\n }\n flush() {\n return __awaiter(this, void 0, void 0, function* () {\n if (!this._flushCoordinator) {\n return;\n }\n return this._flushCoordinator.processManualFlush();\n });\n }\n appendAndResetNonExposedChecks() {\n if (Object.keys(this._nonExposedChecks).length === 0) {\n return;\n }\n const checks = Object.assign({}, this._nonExposedChecks);\n this._nonExposedChecks = {};\n const event = this._normalizeEvent({\n eventName: 'statsig::non_exposed_checks',\n user: null,\n time: Date.now(),\n metadata: {\n checks,\n },\n });\n if (!this._flushCoordinator) {\n return;\n }\n this._flushCoordinator.addEvent(event);\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 _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 _getStorageKey() {\n if (!this._storageKey) {\n this._storageKey = `statsig.pending_events.${(0, Hashing_1._DJB2)(this._sdkKey)}`;\n }\n return this._storageKey;\n }\n _initFlushCoordinator() {\n var _a, _b;\n if (this._flushCoordinator) {\n return this._flushCoordinator;\n }\n const batchSize = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.loggingBufferMaxSize) !== null && _b !== void 0 ? _b : EventRetryConstants_1.EventRetryConstants.DEFAULT_BATCH_SIZE;\n this._pendingEvents = new PendingEvents_1.PendingEvents(batchSize);\n this._batchQueue = new BatchedEventsQueue_1.BatchQueue(batchSize);\n this._flushCoordinator = new FlushCoordinator_1.FlushCoordinator(this._batchQueue, this._pendingEvents, () => this.appendAndResetNonExposedChecks(), this._sdkKey, this._network, this._emitter, this._logEventUrlConfig, this._options, this._loggingEnabled, this._errorBoundary);\n if (this._pendingCompressionMode) {\n this._flushCoordinator.setLogEventCompressionMode(this._pendingCompressionMode);\n this._pendingCompressionMode = null;\n }\n return this._flushCoordinator;\n }\n _storeEventToStorage(event) {\n const storageKey = this._getStorageKey();\n try {\n let existingEvents = this._getEventsFromStorage(storageKey);\n existingEvents.push(event);\n if (existingEvents.length > EventRetryConstants_1.EventRetryConstants.MAX_LOCAL_STORAGE) {\n existingEvents = existingEvents.slice(-EventRetryConstants_1.EventRetryConstants.MAX_LOCAL_STORAGE);\n }\n (0, StorageProvider_1._setObjectInStorage)(storageKey, existingEvents);\n }\n catch (error) {\n Log_1.Log.warn('Unable to save events to storage');\n }\n }\n _getEventsFromStorage(storageKey) {\n try {\n const events = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n if (Array.isArray(events)) {\n return events;\n }\n return [];\n }\n catch (_a) {\n return [];\n }\n }\n _loadStoredEvents() {\n const storageKey = this._getStorageKey();\n const events = this._getEventsFromStorage(storageKey);\n if (events.length > 0) {\n StorageProvider_1.Storage.removeItem(storageKey);\n }\n return events;\n }\n _normalizeEvent(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 return Object.assign(Object.assign({}, event), extras);\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 });\nexports._makeDataAdapterResult = exports.DataAdapterCore = void 0;\nconst Log_1 = require(\"./Log\");\nconst StableID_1 = require(\"./StableID\");\nconst StatsigUser_1 = require(\"./StatsigUser\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst TypedJsonParse_1 = require(\"./TypedJsonParse\");\nconst CACHE_LIMIT = 10;\nconst MAX_CACHE_WRITE_ATTEMPTS = 8;\nclass DataAdapterCore {\n constructor(_adapterName, _cacheSuffix) {\n this._adapterName = _adapterName;\n this._cacheSuffix = _cacheSuffix;\n this._options = null;\n this._sdkKey = null;\n this._cacheLimit = CACHE_LIMIT;\n this._lastModifiedStoreKey = `statsig.last_modified_time.${_cacheSuffix}`;\n this._inMemoryCache = new InMemoryCache();\n }\n attach(sdkKey, options, _network) {\n this._sdkKey = sdkKey;\n this._options = options;\n }\n getDataSync(user) {\n const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n const cacheKey = this._getCacheKey(normalized);\n const inMem = this._inMemoryCache.get(cacheKey, normalized);\n if (inMem && this._getIsCacheValueValid(inMem)) {\n return inMem;\n }\n const cache = this._loadFromCache(cacheKey);\n if (cache && this._getIsCacheValueValid(cache)) {\n this._inMemoryCache.add(cacheKey, cache, this._cacheLimit);\n return this._inMemoryCache.get(cacheKey, normalized);\n }\n return null;\n }\n setData(data, user) {\n const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n const cacheKey = this._getCacheKey(normalized);\n this._inMemoryCache.add(cacheKey, _makeDataAdapterResult('Bootstrap', data, null, normalized), this._cacheLimit);\n }\n _getIsCacheValueValid(current) {\n return (current.stableID == null ||\n current.stableID === StableID_1.StableID.get(this._getSdkKey()));\n }\n _getDataAsyncImpl(current, user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!StorageProvider_1.Storage.isReady()) {\n yield StorageProvider_1.Storage.isReadyResolver();\n }\n const cache = current !== null && current !== void 0 ? current : this.getDataSync(user);\n const ops = [this._fetchAndPrepFromNetwork(cache, user, options)];\n if (options === null || options === void 0 ? void 0 : options.timeoutMs) {\n ops.push(new Promise((r) => setTimeout(r, options.timeoutMs)).then(() => {\n Log_1.Log.debug('Fetching latest value timed out');\n return null;\n }));\n }\n return yield Promise.race(ops);\n });\n }\n _prefetchDataImpl(user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const normalized = user && (0, StatsigUser_1._normalizeUser)(user, this._options);\n const cacheKey = this._getCacheKey(normalized);\n const result = yield this._getDataAsyncImpl(null, normalized, options);\n if (result) {\n this._inMemoryCache.add(cacheKey, Object.assign(Object.assign({}, result), { source: 'Prefetch' }), this._cacheLimit);\n }\n });\n }\n _fetchAndPrepFromNetwork(cachedResult, user, options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const cachedData = (_a = cachedResult === null || cachedResult === void 0 ? void 0 : cachedResult.data) !== null && _a !== void 0 ? _a : null;\n const isCacheValidFor204 = cachedResult != null &&\n this._isCachedResultValidFor204(cachedResult, user);\n const latest = yield this._fetchFromNetwork(cachedData, user, options, isCacheValidFor204);\n if (!latest) {\n Log_1.Log.debug('No response returned for latest value');\n return null;\n }\n const response = (0, TypedJsonParse_1._typedJsonParse)(latest, 'has_updates', 'Response');\n const sdkKey = this._getSdkKey();\n const stableID = StableID_1.StableID.get(sdkKey);\n let result = null;\n if ((response === null || response === void 0 ? void 0 : response.has_updates) === true) {\n result = _makeDataAdapterResult('Network', latest, stableID, user);\n }\n else if (cachedData && (response === null || response === void 0 ? void 0 : response.has_updates) === false) {\n result = _makeDataAdapterResult('NetworkNotModified', cachedData, stableID, user);\n }\n else {\n return null;\n }\n const cacheKey = this._getCacheKey(user);\n this._inMemoryCache.add(cacheKey, result, this._cacheLimit);\n this._writeToCache(cacheKey, result);\n return result;\n });\n }\n _getSdkKey() {\n if (this._sdkKey != null) {\n return this._sdkKey;\n }\n Log_1.Log.error(`${this._adapterName} is not attached to a Client`);\n return '';\n }\n _loadFromCache(cacheKey) {\n var _a;\n const cache = (_a = StorageProvider_1.Storage.getItem) === null || _a === void 0 ? void 0 : _a.call(StorageProvider_1.Storage, cacheKey);\n if (cache == null) {\n return null;\n }\n const result = (0, TypedJsonParse_1._typedJsonParse)(cache, 'source', 'Cached Result');\n return result ? Object.assign(Object.assign({}, result), { source: 'Cache' }) : null;\n }\n _writeToCache(cacheKey, result) {\n const resultString = JSON.stringify(result);\n for (let i = 0; i < MAX_CACHE_WRITE_ATTEMPTS; i++) {\n try {\n StorageProvider_1.Storage.setItem(cacheKey, resultString);\n break;\n }\n catch (error) {\n if (!(error instanceof Error) ||\n !(error.toString().includes('QuotaExceededError') ||\n error.toString().includes('QUOTA_EXCEEDED_ERR')) ||\n this._cacheLimit <= 1) {\n throw error;\n }\n this._cacheLimit = Math.ceil(this._cacheLimit / 2);\n this._runLocalStorageCacheEviction(cacheKey, this._cacheLimit - 1);\n }\n }\n this._runLocalStorageCacheEviction(cacheKey);\n }\n _runLocalStorageCacheEviction(cacheKey, cacheLimit = this._cacheLimit) {\n var _a;\n const lastModifiedTimeMap = (_a = (0, StorageProvider_1._getObjectFromStorage)(this._lastModifiedStoreKey)) !== null && _a !== void 0 ? _a : {};\n lastModifiedTimeMap[cacheKey] = Date.now();\n const evictableKeys = _getEvictableKeys(lastModifiedTimeMap, cacheLimit);\n for (const evictable of evictableKeys) {\n delete lastModifiedTimeMap[evictable];\n StorageProvider_1.Storage.removeItem(evictable);\n }\n (0, StorageProvider_1._setObjectInStorage)(this._lastModifiedStoreKey, lastModifiedTimeMap);\n }\n}\nexports.DataAdapterCore = DataAdapterCore;\nfunction _makeDataAdapterResult(source, data, stableID, user) {\n return {\n source,\n data,\n receivedAt: Date.now(),\n stableID,\n fullUserHash: (0, StatsigUser_1._getFullUserHash)(user),\n };\n}\nexports._makeDataAdapterResult = _makeDataAdapterResult;\nclass InMemoryCache {\n constructor() {\n this._data = {};\n }\n get(cacheKey, user) {\n var _a;\n const result = this._data[cacheKey];\n const cached = result === null || result === void 0 ? void 0 : result.stableID;\n const provided = (_a = user === null || user === void 0 ? void 0 : user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID;\n if (provided && cached && provided !== cached) {\n Log_1.Log.warn(\"'StatsigUser.customIDs.stableID' mismatch\");\n return null;\n }\n return result;\n }\n add(cacheKey, value, cacheLimit) {\n const evictableKeys = _getEvictableKeys(this._data, cacheLimit - 1);\n for (const evictable of evictableKeys) {\n delete this._data[evictable];\n }\n this._data[cacheKey] = value;\n }\n merge(values) {\n this._data = Object.assign(Object.assign({}, this._data), values);\n }\n}\nfunction _getEvictableKeys(data, limit) {\n const keys = Object.keys(data);\n if (keys.length <= limit) {\n return [];\n }\n if (limit === 0) {\n return keys;\n }\n return keys\n .sort((keyA, keyB) => {\n const valueA = data[keyA];\n const valueB = data[keyB];\n if (typeof valueA === 'object' && typeof valueB === 'object') {\n return valueA.receivedAt - valueB.receivedAt;\n }\n return valueA - valueB;\n })\n .slice(0, keys.length - limit);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getMetadataFromElement = exports._gatherCopyEventData = exports._gatherEventData = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst commonUtils_1 = require(\"./commonUtils\");\nconst MAX_ATTRIBUTE_LENGTH = 1000;\nconst MAX_CLASS_LIST_LENGTH = 100;\nconst MAX_SELECTOR_DEPTH = 50;\nfunction _gatherEventData(target) {\n const value = (0, commonUtils_1._getSanitizedPageUrl)() || '';\n const tagName = target.tagName.toLowerCase();\n // If the element is sensitive, we only gather safe attribute fields\n if (_isSensitiveElement(target)) {\n return { value, metadata: _getSafeMetadataAttributes(target) };\n }\n const metadata = {};\n metadata['tagName'] = tagName;\n const elementMetadata = _getMetadataFromElement(target);\n Object.assign(metadata, elementMetadata);\n if (tagName === 'form') {\n Object.assign(metadata, _getFormMetadata(target));\n }\n if (tagName === 'input') {\n Object.assign(metadata, _getInputMetadata(target));\n }\n const anchor = (0, commonUtils_1._getAnchorNodeInHierarchy)(target);\n if (anchor) {\n Object.assign(metadata, _getAnchorMetadata(anchor));\n }\n if (tagName === 'button' || anchor) {\n Object.assign(metadata, _getButtonMetadata(anchor || target));\n }\n if (_isOutboundLink(metadata)) {\n metadata['isOutbound'] = 'true';\n }\n return { value, metadata };\n}\nexports._gatherEventData = _gatherEventData;\nfunction _gatherCopyEventData(e) {\n var _a, _b;\n const selectedText = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.getSelection()) === null || _b === void 0 ? void 0 : _b.toString();\n const metadata = {};\n metadata['selectedText'] = (0, commonUtils_1._sanitizeString)(selectedText);\n const clipType = e.type || 'clipboard';\n metadata['clipType'] = clipType;\n return metadata;\n}\nexports._gatherCopyEventData = _gatherCopyEventData;\nfunction _isSensitiveElement(target) {\n return ((target.tagName.toLowerCase() === 'input' &&\n ['button', 'checkbox', 'submit', 'reset'].includes(target.getAttribute('type') || '')) ||\n target.tagName.toLowerCase() === 'textarea' ||\n target.tagName.toLowerCase() === 'select' ||\n target.getAttribute('contenteditable') === 'true');\n}\nfunction _getFormMetadata(target) {\n var _a;\n const metadata = {};\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 return metadata;\n}\nfunction _getInputMetadata(target) {\n const metadata = {};\n metadata['content'] = target.value;\n metadata['inputName'] = target.getAttribute('name');\n return metadata;\n}\nfunction _getAnchorMetadata(anchor) {\n const metadata = {};\n metadata['href'] = anchor.getAttribute('href');\n return metadata;\n}\nfunction _getButtonMetadata(target) {\n const metadata = {};\n metadata['content'] = (target.textContent || '').trim();\n const dataset = _gatherDatasetProperties(target);\n Object.assign(metadata, dataset);\n return metadata;\n}\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}\nfunction _truncateString(str, maxLength) {\n if (!str)\n return null;\n return str.length > maxLength ? str.substring(0, maxLength) + '...' : str;\n}\nfunction _isOutboundLink(metadata) {\n var _a;\n if (Array.isArray(metadata['classList']) &&\n ((_a = metadata['classList']) === null || _a === void 0 ? void 0 : _a.includes('statsig-ctr-capture'))) {\n return true;\n }\n const href = metadata['href'];\n if (href) {\n try {\n const currentUrl = (0, commonUtils_1._getSafeUrl)();\n const linkUrl = new URL(href);\n return currentUrl.host !== linkUrl.host;\n }\n catch (_b) {\n // Invalid URL, treat as non-outbound\n return false;\n }\n }\n return false;\n}\nfunction _getSafeMetadataAttributes(elem) {\n const metadata = {};\n metadata['class'] = _normalizeClassAttribute(_truncateString(elem.getAttribute('class'), MAX_ATTRIBUTE_LENGTH) || '');\n metadata['id'] = _truncateString(elem.getAttribute('id'), MAX_ATTRIBUTE_LENGTH);\n metadata['ariaLabel'] = _truncateString(elem.getAttribute('aria-label'), MAX_ATTRIBUTE_LENGTH);\n metadata['name'] = _truncateString(elem.getAttribute('name'), MAX_ATTRIBUTE_LENGTH);\n return metadata;\n}\nfunction _getMetadataFromElement(target) {\n const metadata = {};\n const safeAttributes = _getSafeMetadataAttributes(target);\n Object.assign(metadata, safeAttributes);\n const classList = Array.from(target.classList);\n metadata['classList'] =\n classList.length > 0 ? classList.slice(0, MAX_CLASS_LIST_LENGTH) : null;\n metadata['selector'] = _generateCssSelector(target);\n return metadata;\n}\nexports._getMetadataFromElement = _getMetadataFromElement;\nfunction _normalizeClassAttribute(className) {\n return className.replace(/\\s+/g, ' ').trim();\n}\nfunction hasNextSiblingWithSameTag(element) {\n let sibling = element.nextElementSibling;\n while (sibling) {\n if (sibling.tagName === element.tagName) {\n return true;\n }\n sibling = sibling.nextElementSibling;\n }\n return false;\n}\nfunction getElementSelector(element) {\n const tagName = element.tagName.toLowerCase();\n // 1. Use ID if available\n if (element.id) {\n return `#${element.id}`;\n }\n // 2. Build class-based selector\n let selector = tagName;\n if (element.className && typeof element.className === 'string') {\n const classes = element.className.trim().split(/\\s+/);\n if (classes.length > 0 && classes[0] !== '') {\n selector += '.' + classes.join('.');\n }\n }\n const parent = element.parentElement;\n if (parent && parent.children.length > 1) {\n let nthChild = 1;\n let nthOfType = 1;\n let sibling = element.previousElementSibling;\n while (sibling) {\n nthChild++;\n if (sibling.tagName === element.tagName) {\n nthOfType++;\n }\n sibling = sibling.previousElementSibling;\n }\n selector += `:nth-child(${nthChild})`;\n // Only add nth-of-type if there are other elements with the same tag\n if (nthOfType > 1 || hasNextSiblingWithSameTag(element)) {\n selector += `:nth-of-type(${nthOfType})`;\n }\n }\n return selector;\n}\nfunction _generateCssSelector(element) {\n if (!element) {\n return '';\n }\n // Handle case where element has no parent (e.g., detached element)\n if (!element.parentNode) {\n const tagName = element.tagName.toLowerCase();\n if (element.id) {\n return `#${element.id}`;\n }\n let selector = tagName;\n if (element.className && typeof element.className === 'string') {\n const classes = element.className.trim().split(/\\s+/);\n if (classes.length > 0 && classes[0] !== '') {\n selector += '.' + classes.join('.');\n }\n }\n return selector;\n }\n // Build the full selector path\n const selectors = [];\n let currentElement = element;\n let depth = 0;\n while (currentElement &&\n currentElement.nodeType === Node.ELEMENT_NODE &&\n depth < MAX_SELECTOR_DEPTH) {\n const selector = getElementSelector(currentElement);\n selectors.unshift(selector);\n // Stop if we found an ID (since IDs should be unique)\n if (currentElement.id) {\n break;\n }\n currentElement = currentElement.parentElement;\n // Stop at document body to avoid going too far up\n if (currentElement && currentElement.tagName.toLowerCase() === 'body') {\n break;\n }\n depth++;\n }\n return selectors.join(' > ');\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.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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventBatch = void 0;\nclass EventBatch {\n constructor(events) {\n this.attempts = 0;\n this.createdAt = Date.now();\n this.events = events;\n }\n incrementAttempts() {\n this.attempts++;\n }\n}\nexports.EventBatch = EventBatch;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StatsigMetadataProvider = exports.SDK_VERSION = void 0;\nexports.SDK_VERSION = '3.33.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.FlushInterval = void 0;\nconst MIN_FLUSH_INTERVAL_MS = 1000;\nconst MAX_FLUSH_INTERVAL_MS = 60000;\nclass FlushInterval {\n constructor() {\n this._currentIntervalMs = MIN_FLUSH_INTERVAL_MS;\n this._lastFlushAttemptTime = Date.now();\n }\n getCurrentIntervalMs() {\n return this._currentIntervalMs;\n }\n markFlushAttempt() {\n this._lastFlushAttemptTime = Date.now();\n }\n getTimeSinceLastAttempt() {\n return Date.now() - this._lastFlushAttemptTime;\n }\n hasReachedMaxInterval() {\n return this.getTimeSinceLastAttempt() >= MAX_FLUSH_INTERVAL_MS;\n }\n getTimeTillMaxInterval() {\n return MAX_FLUSH_INTERVAL_MS - this.getTimeSinceLastAttempt();\n }\n hasCompletelyRecoveredFromBackoff() {\n return this._currentIntervalMs <= MIN_FLUSH_INTERVAL_MS;\n }\n adjustForSuccess() {\n const current = this._currentIntervalMs;\n if (current === MIN_FLUSH_INTERVAL_MS) {\n return;\n }\n this._currentIntervalMs = Math.max(MIN_FLUSH_INTERVAL_MS, Math.floor(current / 2));\n }\n adjustForFailure() {\n const current = this._currentIntervalMs;\n this._currentIntervalMs = Math.min(MAX_FLUSH_INTERVAL_MS, current * 2);\n }\n getTimeUntilNextFlush() {\n return this.getCurrentIntervalMs() - this.getTimeSinceLastAttempt();\n }\n}\nexports.FlushInterval = FlushInterval;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventRetryConstants = void 0;\nexports.EventRetryConstants = {\n MAX_RETRY_ATTEMPTS: 8,\n DEFAULT_BATCH_SIZE: 100,\n MAX_PENDING_BATCHES: 40,\n TICK_INTERVAL_MS: 1000,\n QUICK_FLUSH_WINDOW_MS: 200,\n MAX_LOCAL_STORAGE: 500,\n get MAX_QUEUED_EVENTS() {\n return this.DEFAULT_BATCH_SIZE * this.MAX_PENDING_BATCHES;\n },\n};\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.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.EngagementManager = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst PAGE_INACTIVE_TIMEOUT = 600000; // 10 minutes\nconst BUMP_THROTTLE_MS = 1000;\nclass EngagementManager {\n constructor() {\n this._lastScrollY = 0;\n this._maxScrollY = 0;\n this._lastScrollPercentage = 0;\n this._maxScrollPercentage = 0;\n this._lastPageViewTime = Date.now();\n this._inactiveTimer = null;\n this._onInactivityCallback = null;\n this._meaningfulEngagementOccurred = false;\n this._lastBumpTime = 0;\n this._initializeScrollTracking();\n }\n _initializeScrollTracking() {\n const win = (0, client_core_1._getWindowSafe)();\n if (!win)\n return;\n win.addEventListener('scroll', () => this._handleScroll());\n win.addEventListener('scrollend', () => this._handleScroll());\n win.addEventListener('resize', () => this._handleScroll());\n }\n _handleScroll() {\n const win = (0, client_core_1._getWindowSafe)();\n const doc = (0, client_core_1._getDocumentSafe)();\n if (!win || !doc)\n return;\n const scrollHeight = doc.body.scrollHeight;\n const scrollY = win.scrollY || doc.documentElement.scrollTop || 0;\n const innerHeight = win.innerHeight;\n this._lastScrollY = scrollY;\n this._maxScrollY = Math.max(this._maxScrollY, scrollY);\n const currentScrollPercentage = Math.min(100, Math.round(((scrollY + innerHeight) / scrollHeight) * 100));\n this._lastScrollPercentage = currentScrollPercentage;\n this._maxScrollPercentage = Math.max(this._maxScrollPercentage, currentScrollPercentage);\n this.bumpInactiveTimer();\n }\n getScrollMetrics() {\n return {\n lastScrollY: this._lastScrollY,\n maxScrollY: this._maxScrollY,\n lastScrollPercentage: this._lastScrollPercentage,\n maxScrollPercentage: this._maxScrollPercentage,\n scrollDepth: this._maxScrollPercentage, // deprecated\n };\n }\n getPageViewLength() {\n return Date.now() - this._lastPageViewTime;\n }\n setLastPageViewTime(time) {\n this._lastPageViewTime = time;\n }\n startInactivityTracking(callback) {\n this._onInactivityCallback = callback;\n }\n bumpInactiveTimer() {\n const win = (0, client_core_1._getWindowSafe)();\n if (!win) {\n return;\n }\n const now = Date.now();\n if (now - this._lastBumpTime < BUMP_THROTTLE_MS) {\n return;\n }\n this._lastBumpTime = now;\n if (this._inactiveTimer) {\n clearTimeout(this._inactiveTimer);\n }\n this._inactiveTimer = win.setTimeout(() => {\n if (this._onInactivityCallback) {\n this._onInactivityCallback();\n }\n }, PAGE_INACTIVE_TIMEOUT);\n }\n setMeaningfulEngagementOccurred(occurred) {\n this._meaningfulEngagementOccurred = occurred;\n }\n getPageViewEndMetadata() {\n const pageviewEndMetadata = Object.assign(Object.assign({}, this.getScrollMetrics()), { pageViewLength: this.getPageViewLength(), meaningfulEngagementOccurred: this._meaningfulEngagementOccurred });\n this.setMeaningfulEngagementOccurred(false);\n return pageviewEndMetadata;\n }\n}\nexports.EngagementManager = EngagementManager;\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\";\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.EventSender = void 0;\nconst Log_1 = require(\"./Log\");\nconst NetworkConfig_1 = require(\"./NetworkConfig\");\nconst SDKType_1 = require(\"./SDKType\");\nconst StatsigMetadata_1 = require(\"./StatsigMetadata\");\nconst VisibilityObserving_1 = require(\"./VisibilityObserving\");\nclass EventSender {\n constructor(sdkKey, network, emitter, logEventUrlConfig, options) {\n this._sdkKey = sdkKey;\n this._network = network;\n this._emitter = emitter;\n this._options = options;\n this._logEventUrlConfig = logEventUrlConfig;\n }\n setLogEventCompressionMode(mode) {\n this._network.setLogEventCompressionMode(mode);\n }\n sendBatch(batch) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b, _c;\n let failurePath = 'event_sender_unexpected_exception';\n const transportFailure = {};\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 failurePath = 'event_sender_pre_logs_flushed_emitter_exception';\n this._emitter({\n name: 'pre_logs_flushed',\n events: batch.events,\n });\n failurePath = shouldUseBeacon\n ? 'event_sender_unexpected_exception'\n : 'event_sender_post_exception';\n const response = shouldUseBeacon\n ? this._sendEventsViaBeacon(batch, transportFailure)\n : yield this._sendEventsViaPost(batch, transportFailure);\n if (response.success) {\n failurePath = 'event_sender_logs_flushed_emitter_exception';\n this._emitter({\n name: 'logs_flushed',\n events: batch.events,\n });\n return response;\n }\n return Object.assign(Object.assign(Object.assign({ success: false, statusCode: response.statusCode, failurePath: response.failurePath }, (response.failureErrorMessage\n ? { failureErrorMessage: response.failureErrorMessage }\n : {})), (response.failureDiagnosticBucket\n ? { failureDiagnosticBucket: response.failureDiagnosticBucket }\n : {})), (response.failureDiagnosticMetadata\n ? { failureDiagnosticMetadata: response.failureDiagnosticMetadata }\n : {}));\n }\n catch (error) {\n Log_1.Log.warn('Failed to send batch:', error);\n return Object.assign(Object.assign(Object.assign({ success: false, statusCode: -1, failurePath: (_c = transportFailure.path) !== null && _c !== void 0 ? _c : failurePath }, (transportFailure.errorMessage\n ? { failureErrorMessage: transportFailure.errorMessage }\n : {})), (transportFailure.diagnosticBucket\n ? { failureDiagnosticBucket: transportFailure.diagnosticBucket }\n : {})), (transportFailure.diagnosticMetadata\n ? { failureDiagnosticMetadata: transportFailure.diagnosticMetadata }\n : {}));\n }\n });\n }\n _sendEventsViaPost(batch, failureInfo) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a, _b;\n const result = yield this._network.post(this._getRequestData(batch), failureInfo);\n const code = (_a = result === null || result === void 0 ? void 0 : result.code) !== null && _a !== void 0 ? _a : -1;\n if (code === -1) {\n return Object.assign(Object.assign(Object.assign({ success: false, statusCode: -1, failurePath: (_b = failureInfo.path) !== null && _b !== void 0 ? _b : (result === undefined\n ? 'event_sender_post_returned_undefined'\n : 'event_sender_post_returned_null') }, (failureInfo.errorMessage\n ? { failureErrorMessage: failureInfo.errorMessage }\n : {})), (failureInfo.diagnosticBucket\n ? { failureDiagnosticBucket: failureInfo.diagnosticBucket }\n : {})), (failureInfo.diagnosticMetadata\n ? { failureDiagnosticMetadata: failureInfo.diagnosticMetadata }\n : {}));\n }\n return { success: code >= 200 && code < 300, statusCode: code };\n });\n }\n _sendEventsViaBeacon(batch, failureInfo) {\n var _a;\n const success = this._network.beacon(this._getRequestData(batch), failureInfo);\n return Object.assign(Object.assign(Object.assign({ success, statusCode: success ? 200 : -1, failurePath: success\n ? undefined\n : (_a = failureInfo.path) !== null && _a !== void 0 ? _a : 'beacon_send_false' }, (!success && failureInfo.errorMessage\n ? { failureErrorMessage: failureInfo.errorMessage }\n : {})), (!success && failureInfo.diagnosticBucket\n ? { failureDiagnosticBucket: failureInfo.diagnosticBucket }\n : {})), (!success && failureInfo.diagnosticMetadata\n ? { failureDiagnosticMetadata: failureInfo.diagnosticMetadata }\n : {}));\n }\n _getRequestData(batch) {\n return {\n sdkKey: this._sdkKey,\n data: {\n events: batch.events,\n },\n urlConfig: this._logEventUrlConfig,\n retries: 3,\n preserveFailedStatusCode: true,\n isCompressable: true,\n params: {\n [NetworkConfig_1.NetworkParam.EventCount]: String(batch.events.length),\n },\n headers: {\n 'statsig-event-count': String(batch.events.length),\n 'statsig-retry-count': String(batch.attempts),\n 'statsig-sdk-type': SDKType_1.SDKType._get(this._sdkKey),\n 'statsig-sdk-version': StatsigMetadata_1.SDK_VERSION,\n },\n credentials: 'same-origin',\n };\n }\n}\nexports.EventSender = EventSender;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FlushType = void 0;\n/* eslint-disable no-restricted-syntax */\nvar FlushType;\n(function (FlushType) {\n FlushType[\"ScheduledMaxTime\"] = \"scheduled:max_time\";\n FlushType[\"ScheduledFullBatch\"] = \"scheduled:full_batch\";\n FlushType[\"Limit\"] = \"limit\";\n FlushType[\"Manual\"] = \"manual\";\n FlushType[\"Shutdown\"] = \"shutdown\";\n})(FlushType || (exports.FlushType = FlushType = {}));\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.V2InitializeContainer = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nclass V2InitializeContainer {\n constructor(_values) {\n this._values = _values;\n }\n getGate(name) {\n var _a, _b, _c;\n const evalV2 = this._getResultFromLookup(this._values.feature_gates, name);\n if (!evalV2) {\n return null;\n }\n return {\n name: name,\n value: evalV2.v === true,\n rule_id: (_a = evalV2.r) !== null && _a !== void 0 ? _a : 'default',\n secondary_exposures: (_b = evalV2.s) !== null && _b !== void 0 ? _b : [],\n id_type: (_c = evalV2.i) !== null && _c !== void 0 ? _c : '',\n };\n }\n getConfig(name) {\n var _a, _b, _c, _d;\n const evalV2 = this._getResultFromLookup(this._values.dynamic_configs, name);\n if (!evalV2) {\n return null;\n }\n return {\n name: name,\n value: (_a = this._values.values[evalV2.v]) !== null && _a !== void 0 ? _a : {},\n rule_id: evalV2.r,\n secondary_exposures: (_b = evalV2.s) !== null && _b !== void 0 ? _b : [],\n id_type: (_c = evalV2.i) !== null && _c !== void 0 ? _c : '',\n is_user_in_experiment: evalV2.ue === true ? true : false,\n passed: evalV2.p === true,\n group_name: (_d = evalV2.gn) !== null && _d !== void 0 ? _d : undefined,\n is_experiment_active: evalV2.ea === true ? true : false,\n group: evalV2.r,\n is_device_based: evalV2.i === 'stableID',\n };\n }\n getLayer(name) {\n var _a, _b, _c, _d, _e, _f;\n const evalV2 = this._getResultFromLookup(this._values.layer_configs, name);\n if (!evalV2) {\n return null;\n }\n return {\n name: name,\n value: (_a = this._values.values[evalV2.v]) !== null && _a !== void 0 ? _a : {},\n rule_id: evalV2.r,\n secondary_exposures: (_b = evalV2.s) !== null && _b !== void 0 ? _b : [],\n is_user_in_experiment: evalV2.ue === true ? true : false,\n group_name: (_c = evalV2.gn) !== null && _c !== void 0 ? _c : undefined,\n is_experiment_active: evalV2.ea === true ? true : false,\n group: evalV2.r,\n is_device_based: evalV2.i === 'stableID',\n allocated_experiment_name: (_d = evalV2.ae) !== null && _d !== void 0 ? _d : '',\n explicit_parameters: (_e = evalV2.ep) !== null && _e !== void 0 ? _e : [],\n undelegated_secondary_exposures: (_f = evalV2.us) !== null && _f !== void 0 ? _f : [],\n parameter_rule_ids: evalV2.pr,\n };\n }\n getParamStore(name) {\n return this._getResultFromLookup(this._values.param_stores, name);\n }\n getConfigList() {\n return Object.keys(this._values.dynamic_configs);\n }\n getExposureMapping() {\n return this._values.exposures;\n }\n _getResultFromLookup(lookup, name) {\n var _a, _b;\n if (!lookup) {\n return null;\n }\n return (_b = (_a = lookup[name]) !== null && _a !== void 0 ? _a : lookup[(0, client_core_1._DJB2)(name)]) !== null && _b !== void 0 ? _b : null;\n }\n}\nexports.V2InitializeContainer = V2InitializeContainer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AutoCapture = exports.runStatsigAutoCapture = exports.StatsigAutoCapturePlugin = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nconst ConsoleLogManager_1 = require(\"./ConsoleLogManager\");\nconst DeadClickManager_1 = require(\"./DeadClickManager\");\nconst EngagementManager_1 = require(\"./EngagementManager\");\nconst RageClickManager_1 = require(\"./RageClickManager\");\nconst WebVitalsManager_1 = require(\"./WebVitalsManager\");\nconst commonUtils_1 = require(\"./utils/commonUtils\");\nconst eventUtils_1 = require(\"./utils/eventUtils\");\nconst metadataUtils_1 = require(\"./utils/metadataUtils\");\nconst AUTO_EVENT_MAPPING = {\n submit: AutoCaptureEvent_1.AutoCaptureEventName.FORM_SUBMIT,\n click: AutoCaptureEvent_1.AutoCaptureEventName.CLICK,\n copy: AutoCaptureEvent_1.AutoCaptureEventName.COPY,\n cut: AutoCaptureEvent_1.AutoCaptureEventName.COPY,\n};\nclass StatsigAutoCapturePlugin {\n constructor(_options) {\n this._options = _options;\n this.__plugin = 'auto-capture';\n }\n bind(client) {\n runStatsigAutoCapture(client, this._options);\n }\n}\nexports.StatsigAutoCapturePlugin = StatsigAutoCapturePlugin;\nfunction runStatsigAutoCapture(client, options) {\n var _a;\n // Early exit for server-side rendering - plugins should only run in browser\n if ((0, client_core_1._isServerEnv)()) {\n return null;\n }\n const { sdkKey } = client.getContextHandle();\n if (!(0, client_core_1._isServerEnv)()) {\n const global = (0, client_core_1._getStatsigGlobal)();\n const instances = (_a = global.acInstances) !== null && _a !== void 0 ? _a : {};\n if (instances[sdkKey]) {\n return instances[sdkKey];\n }\n }\n return new AutoCapture(client, options);\n}\nexports.runStatsigAutoCapture = runStatsigAutoCapture;\nclass AutoCapture {\n constructor(_client, options) {\n var _a, _b, _c, _d;\n this._client = _client;\n this._disabledEvents = {};\n this._previousLoggedPageViewUrl = null;\n this._hasLoggedPageViewEnd = false;\n this._pageViewLogged = false;\n const { sdkKey, errorBoundary, values } = _client.getContextHandle();\n this._options = options;\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, 'autoCapture:');\n this._client.$on('values_updated', () => {\n var _a, _b;\n const values = this._client.getContextHandle().values;\n this._disabledEvents =\n (_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 : this._disabledEvents;\n });\n this._engagementManager = new EngagementManager_1.EngagementManager();\n this._rageClickManager = new RageClickManager_1.default();\n this._webVitalsManager = new WebVitalsManager_1.WebVitalsManager(this._enqueueAutoCapture.bind(this), errorBoundary);\n this._deadClickManager = new DeadClickManager_1.default(this._enqueueAutoCapture.bind(this), errorBoundary);\n this._consoleLogManager = new ConsoleLogManager_1.ConsoleLogManager(this._enqueueAutoCapture.bind(this), errorBoundary, (_c = options === null || options === void 0 ? void 0 : options.consoleLogAutoCaptureSettings) !== null && _c !== void 0 ? _c : { enabled: false });\n this._eventFilterFunc = options === null || options === void 0 ? void 0 : options.eventFilterFunc;\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 = (_d = __STATSIG__.acInstances) !== null && _d !== void 0 ? _d : {};\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, userAction = true) => {\n var _a;\n const e = event || ((_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.event);\n this._autoLogEvent(e);\n if (userAction) {\n this._engagementManager.bumpInactiveTimer();\n }\n if (e.type === 'click' && e instanceof MouseEvent) {\n const isRageClick = this._rageClickManager.isRageClick(e.clientX, e.clientY, Date.now());\n if (isRageClick) {\n this._logRageClick(e);\n }\n }\n };\n (0, commonUtils_1._registerEventHandler)(doc, 'click', (e) => eventHandler(e));\n (0, commonUtils_1._registerEventHandler)(doc, 'submit', (e) => eventHandler(e));\n (0, commonUtils_1._registerEventHandler)(doc, 'copy', (e) => eventHandler(e));\n (0, commonUtils_1._registerEventHandler)(doc, 'cut', (e) => eventHandler(e));\n (0, commonUtils_1._registerEventHandler)(win, 'error', (e) => eventHandler(e, false));\n (0, commonUtils_1._registerEventHandler)(win, 'pagehide', () => this._tryLogPageViewEnd());\n (0, commonUtils_1._registerEventHandler)(win, 'beforeunload', () => this._tryLogPageViewEnd());\n }\n _addPageViewTracking() {\n const win = (0, client_core_1._getWindowSafe)();\n const doc = (0, client_core_1._getDocumentSafe)();\n if (!win || !doc) {\n return;\n }\n (0, commonUtils_1._registerEventHandler)(win, 'popstate', () => this._tryLogPageView('popstate'));\n if (win.history &&\n typeof Proxy === 'function' &&\n typeof win.history.pushState === 'function') {\n try {\n const originalPushState = win.history.pushState;\n win.history.pushState = new Proxy(originalPushState, {\n apply: (target, thisArg, [state, unused, url]) => {\n const result = target.apply(thisArg, [state, unused, url]);\n this._tryLogPageView('pushstate');\n return result;\n },\n });\n }\n catch (e) {\n // Silently fail if Proxy creation is not supported\n }\n }\n if (win.history &&\n typeof Proxy === 'function' &&\n typeof win.history.replaceState === 'function') {\n try {\n const originalReplaceState = win.history.replaceState;\n win.history.replaceState = new Proxy(originalReplaceState, {\n apply: (target, thisArg, [state, unused, url]) => {\n const result = target.apply(thisArg, [state, unused, url]);\n this._tryLogPageView('replacestate');\n return result;\n },\n });\n }\n catch (e) {\n // Silently fail if Proxy creation is not supported (important-comment)\n }\n }\n this._tryLogPageView();\n }\n _autoLogEvent(event) {\n var _a, _b, _c, _d;\n const 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, commonUtils_1._getTargetNode)(event);\n if (!target) {\n return;\n }\n const eventName = AUTO_EVENT_MAPPING[eventType];\n if (!eventName) {\n return;\n }\n const isCopyEvent = eventName === AutoCaptureEvent_1.AutoCaptureEventName.COPY;\n if (!(0, commonUtils_1._shouldLogEvent)(event, target, isCopyEvent)) {\n return;\n }\n const metadata = {};\n if (isCopyEvent) {\n const selectedText = (_c = (_b = (0, client_core_1._getWindowSafe)()) === null || _b === void 0 ? void 0 : _b.getSelection()) === null || _c === void 0 ? void 0 : _c.toString();\n if (!selectedText) {\n return;\n }\n if ((_d = this._options) === null || _d === void 0 ? void 0 : _d.captureCopyText) {\n metadata['selectedText'] = (0, commonUtils_1._sanitizeString)(selectedText);\n }\n const clipType = event.type || 'clipboard';\n metadata['clipType'] = clipType;\n }\n const { value, metadata: eventMetadata } = (0, eventUtils_1._gatherEventData)(target);\n if (eventMetadata['isOutbound']) {\n this._engagementManager.setMeaningfulEngagementOccurred(true);\n }\n Object.assign(metadata, eventMetadata);\n const allMetadata = (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)());\n this._enqueueAutoCapture(eventName, value, Object.assign(Object.assign({}, allMetadata), metadata));\n }\n _initialize() {\n this._webVitalsManager.startTracking();\n this._deadClickManager.startTracking();\n this._consoleLogManager.startTracking();\n this._engagementManager.startInactivityTracking(() => this._tryLogPageViewEnd(true));\n this._addEventHandlers();\n this._addPageViewTracking();\n this._logSessionStart();\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(AutoCaptureEvent_1.AutoCaptureEventName.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._client.getContextHandle().getSession();\n try {\n if (!this._isNewSession(session)) {\n return;\n }\n this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.SESSION_START, (0, commonUtils_1._getSanitizedPageUrl)(), Object.assign({ sessionID: session.data.sessionID }, (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)())), { flushImmediately: true });\n }\n catch (err) {\n this._errorBoundary.logError('AC::logSession', err);\n }\n }\n _tryLogPageView(navigationType) {\n if (this._webVitalsManager.flushPendingMetrics()) {\n this._flushImmediately();\n }\n const url = (0, commonUtils_1._getSafeUrl)();\n const last = this._previousLoggedPageViewUrl;\n if (last && url.pathname === last.pathname) {\n return;\n }\n this._engagementManager.setLastPageViewTime(Date.now());\n this._hasLoggedPageViewEnd = false;\n const payload = (0, metadataUtils_1._gatherAllMetadata)(url);\n if (navigationType) {\n payload['navigation_type'] = navigationType;\n }\n if (this._previousLoggedPageViewUrl) {\n payload['last_page_view_url'] = this._previousLoggedPageViewUrl.href;\n }\n if (!this._pageViewLogged) {\n this._updateClientWithPossibleFirstTouchMetadata();\n this._pageViewLogged = true;\n }\n this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.PAGE_VIEW, (0, commonUtils_1._getSanitizedPageUrl)(), payload, {\n flushImmediately: true,\n addNewSessionMetadata: true,\n });\n this._previousLoggedPageViewUrl = url;\n this._engagementManager.bumpInactiveTimer();\n }\n _tryLogPageViewEnd(dueToInactivity = false) {\n if (this._webVitalsManager.flushPendingMetrics()) {\n this._flushImmediately();\n }\n if (this._hasLoggedPageViewEnd) {\n return;\n }\n this._hasLoggedPageViewEnd = true;\n this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.PAGE_VIEW_END, (0, commonUtils_1._getSanitizedPageUrl)(), Object.assign(Object.assign({}, this._engagementManager.getPageViewEndMetadata()), { dueToInactivity }), {\n flushImmediately: true,\n });\n }\n _logRageClick(e) {\n if (!(0, commonUtils_1._shouldLogEvent)(e, e.target)) {\n return;\n }\n const { value, metadata } = (0, eventUtils_1._gatherEventData)(e.target);\n this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.RAGE_CLICK, value, Object.assign(Object.assign({ x: e.clientX, y: e.clientY, timestamp: Date.now() }, (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)())), metadata));\n }\n _logPerformance() {\n const win = (0, client_core_1._getWindowSafe)();\n if (!win || !win.performance) {\n return;\n }\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 this._enqueueAutoCapture(AutoCaptureEvent_1.AutoCaptureEventName.PERFORMANCE, (0, commonUtils_1._getSanitizedPageUrl)(), Object.assign(Object.assign({}, metadata), (0, metadataUtils_1._getNetworkInfo)()));\n }, 1);\n }\n _enqueueAutoCapture(eventName, value, metadata, options) {\n var _a, _b, _c;\n if (!value) {\n return;\n }\n const subname = eventName.slice('auto_capture::'.length);\n if (this._disabledEvents[eventName] || this._disabledEvents[subname]) {\n return;\n }\n const isUserAction = (0, AutoCaptureEvent_1.isUserActionAutoCaptureEvent)(eventName);\n const session = this._client.getContextHandle().getSession(isUserAction);\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,\n value,\n metadata: logMetadata,\n };\n if (this._eventFilterFunc && !this._eventFilterFunc(event)) {\n return;\n }\n this._client.logEvent(event);\n if (options === null || options === void 0 ? void 0 : options.flushImmediately) {\n this._flushImmediately();\n }\n }\n catch (err) {\n this._errorBoundary.logError('AC::enqueue', err);\n }\n }\n _updateClientWithPossibleFirstTouchMetadata() {\n const typedClient = this._client;\n typedClient._possibleFirstTouchMetadata =\n (0, metadataUtils_1._getPossibleFirstTouchMetadata)((0, commonUtils_1._getSafeUrl)());\n // Only update user if first touch metadata is not empty\n if (Object.keys(typedClient._possibleFirstTouchMetadata).length > 0) {\n typedClient._user = Object.assign(Object.assign({}, typedClient._user), { analyticsOnlyMetadata: Object.assign(Object.assign({}, typedClient._possibleFirstTouchMetadata), typedClient._user.analyticsOnlyMetadata) });\n }\n }\n _flushImmediately() {\n this._client.flush().catch((e) => {\n client_core_1.Log.error(e);\n });\n }\n _isNewSession(session) {\n // within the last second\n return Math.abs(session.data.startTime - Date.now()) < 1000;\n }\n static getAllMetadata() {\n return (0, metadataUtils_1._gatherAllMetadata)((0, commonUtils_1._getSafeUrl)());\n }\n}\nexports.AutoCapture = AutoCapture;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wrapFunctionWithRestore = exports.throttle = exports._sanitizeString = exports._getAnchorNodeInHierarchy = exports._getSafeTimezoneOffset = exports._getSafeTimezone = exports._getSafeNavigationType = exports._getSafeNetworkInformation = exports._registerEventHandler = exports._getSanitizedPageUrl = exports._getSafeUrlString = exports._getSafeUrl = exports._shouldLogEvent = exports._getTargetNode = exports._stripEmptyValues = exports.interactiveElements = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nconst coreCCPattern = `(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})`;\nconst CC_REGEX = new RegExp(`^(?:${coreCCPattern})$`);\nconst coreSSNPattern = `\\\\d{3}-?\\\\d{2}-?\\\\d{4}`;\nconst SSN_REGEX = new RegExp(`^(${coreSSNPattern})$`);\nexports.interactiveElements = [\n 'button',\n 'a',\n 'input',\n 'select',\n 'textarea',\n 'form',\n 'select',\n 'label',\n];\nfunction _stripEmptyValues(obj) {\n return Object.fromEntries(Object.entries(obj).filter(([_, value]) => value != null && value !== '' && value !== undefined));\n}\nexports._stripEmptyValues = _stripEmptyValues;\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, isCopyEvent = false) {\n if (!e || !el || el.nodeType !== 1) {\n return false;\n }\n const tagName = el.tagName.toLowerCase();\n const eventType = e.type.toLowerCase();\n const classList = el.classList;\n if (classList.contains('statsig-no-capture')) {\n return false;\n }\n if (isCopyEvent) {\n // We don't want to force strict event filtering for copy events\n return true;\n }\n switch (tagName) {\n case 'html':\n return false;\n case 'form':\n return ['submit'].indexOf(eventType) >= 0;\n case 'input':\n case 'select':\n case 'textarea':\n return ['change', 'click'].indexOf(eventType) >= 0;\n default:\n if (eventType === 'click') {\n const compStyles = window.getComputedStyle(el);\n if (compStyles && compStyles.getPropertyValue('cursor') === 'pointer') {\n return true;\n }\n if (exports.interactiveElements.includes(tagName)) {\n return true;\n }\n if (el.getAttribute('contenteditable') === 'true') {\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 _getSafeUrlString() {\n const urlString = _getSafeUrl().toString();\n if (urlString.startsWith('error:')) {\n return '';\n }\n return urlString;\n}\nexports._getSafeUrlString = _getSafeUrlString;\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 _getSafeNavigationType() {\n var _a;\n const win = (0, client_core_1._getWindowSafe)();\n if (!win ||\n !win.performance ||\n typeof win.performance.getEntriesByType !== 'function') {\n return null;\n }\n try {\n const navEntry = win.performance.getEntriesByType('navigation')[0];\n return (_a = navEntry === null || navEntry === void 0 ? void 0 : navEntry.type) !== null && _a !== void 0 ? _a : null;\n }\n catch (_b) {\n return null;\n }\n}\nexports._getSafeNavigationType = _getSafeNavigationType;\nfunction _getSafeTimezone() {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n catch (e) {\n return null;\n }\n}\nexports._getSafeTimezone = _getSafeTimezone;\nfunction _getSafeTimezoneOffset() {\n try {\n return new Date().getTimezoneOffset();\n }\n catch (e) {\n return null;\n }\n}\nexports._getSafeTimezoneOffset = _getSafeTimezoneOffset;\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}\nexports._getAnchorNodeInHierarchy = _getAnchorNodeInHierarchy;\nfunction _sanitizeString(maybeString) {\n if (!maybeString) {\n return null;\n }\n return maybeString\n .replace(/<[^>]*>/g, '')\n .trim()\n .split(/(\\s+)/)\n .filter((s) => _shouldCaptureTextValue(s))\n .join('')\n .replace(/[\\r\\n]/g, ' ')\n .replace(/[ ]+/g, ' ')\n .substring(0, 255);\n}\nexports._sanitizeString = _sanitizeString;\nfunction _shouldCaptureTextValue(text) {\n if (CC_REGEX.test((text || '').replace(/[- ]/g, ''))) {\n return false;\n }\n if (SSN_REGEX.test((text || '').replace(/[- ]/g, ''))) {\n return false;\n }\n return true;\n}\nfunction throttle(fn, limit) {\n let lastCall = 0;\n return function (...args) {\n const now = Date.now();\n if (now - lastCall >= limit) {\n lastCall = now;\n fn(...args);\n }\n };\n}\nexports.throttle = throttle;\nfunction wrapFunctionWithRestore(targetObject, functionName, wrapperFactory) {\n const originalFunction = targetObject[functionName];\n if (typeof originalFunction !== 'function') {\n return () => {\n // noop\n };\n }\n try {\n const wrappedFunction = wrapperFactory(originalFunction);\n Object.defineProperty(wrappedFunction, '__statsig_original__', {\n enumerable: false,\n value: originalFunction,\n });\n targetObject[functionName] = wrappedFunction;\n // Restore function\n return () => {\n targetObject[functionName] = originalFunction;\n };\n }\n catch (_a) {\n return () => {\n // noop\n };\n }\n}\nexports.wrapFunctionWithRestore = wrapFunctionWithRestore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst V1InitializeContainer_1 = require(\"./V1InitializeContainer\");\nconst V2InitializeContainer_1 = require(\"./V2InitializeContainer\");\nclass EvaluationStore {\n constructor(_sdkKey, _options) {\n this._sdkKey = _sdkKey;\n this._options = _options;\n this._valuesForExternalUse = 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._valuesForExternalUse = null;\n this._source = 'Loading';\n this._lcut = 0;\n this._receivedAt = 0;\n this._bootstrapMetadata = null;\n this._warnings.clear();\n }\n finalize() {\n if (this._values) {\n return;\n }\n this._source = 'NoValues';\n }\n getValues() {\n // we do not give out the actual _values object to avoid mutating it\n return this._valuesForExternalUse;\n }\n setValues(result, user) {\n var _a, _b;\n if (!result) {\n return false;\n }\n const values = (0, client_core_1._typedJsonParse)(result.data, 'has_updates', 'EvaluationResponse');\n if (values == null) {\n return false;\n }\n this._source = result.source;\n if ((values === null || values === void 0 ? void 0 : values.has_updates) !== true) {\n return true;\n }\n const updatedLcut = (_a = values.time) !== null && _a !== void 0 ? _a : 0;\n if (updatedLcut < this._lcut) {\n return true;\n }\n this._valuesForExternalUse = (0, client_core_1._typedJsonParse)(result.data, 'has_updates', 'EvaluationResponse');\n this._lcut = values.time;\n this._receivedAt = result.receivedAt;\n if (values.response_format === 'init-v2') {\n this._values = new V2InitializeContainer_1.V2InitializeContainer(values);\n }\n else {\n this._values = new V1InitializeContainer_1.V1InitializeContainer(values);\n }\n this._bootstrapMetadata = this._extractBootstrapMetadata(result.source, values);\n if (result.source && values.user) {\n this._setWarningState(user, values);\n }\n client_core_1.SDKFlags.setFlags(this._sdkKey, (_b = values.sdk_flags) !== null && _b !== void 0 ? _b : {});\n return true;\n }\n getWarnings() {\n if (this._warnings.size === 0) {\n return undefined;\n }\n return Array.from(this._warnings);\n }\n getGate(name) {\n const res = this._values ? this._values.getGate(name) : null;\n return this._getDetailedStoreResult(res);\n }\n getConfig(name) {\n const res = this._values ? this._values.getConfig(name) : null;\n return this._getDetailedStoreResult(res);\n }\n getConfigList() {\n if (!this._values) {\n return [];\n }\n return this._values.getConfigList();\n }\n getLayer(name) {\n const res = this._values ? this._values.getLayer(name) : null;\n return this._getDetailedStoreResult(res);\n }\n getParamStore(name) {\n const res = this._values ? this._values.getParamStore(name) : null;\n return this._getDetailedStoreResult(res);\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.getExposureMapping();\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(result) {\n return {\n result,\n details: this._getDetails(result == null),\n };\n }\n _setWarningState(user, values) {\n var _a, _b, _c;\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 let bootstrapUser = values['user'];\n let userForComparison = Object.assign(Object.assign({}, user), { analyticsOnlyMetadata: undefined, privateAttributes: undefined });\n if ((_c = this._options) === null || _c === void 0 ? void 0 : _c.disableStableID) {\n userForComparison = Object.assign(Object.assign({}, userForComparison), { customIDs: Object.assign(Object.assign({}, userForComparison.customIDs), { stableID: undefined }) });\n bootstrapUser = Object.assign(Object.assign({}, bootstrapUser), { customIDs: Object.assign(Object.assign({}, bootstrapUser.customIDs), { stableID: undefined }) });\n }\n if ((0, client_core_1._getFullUserHash)(userForComparison) !== (0, client_core_1._getFullUserHash)(bootstrapUser)) {\n this._warnings.add('PartialUserMatch');\n }\n }\n }\n getCurrentSourceDetails() {\n if (this._source === 'Uninitialized' || this._source === 'NoValues') {\n return { reason: this._source };\n }\n const sourceDetails = {\n reason: this._source,\n lcut: this._lcut,\n receivedAt: this._receivedAt,\n };\n if (this._warnings.size > 0) {\n sourceDetails.warnings = Array.from(this._warnings);\n }\n return sourceDetails;\n }\n _getDetails(isUnrecognized) {\n var _a, _b;\n const sourceDetails = this.getCurrentSourceDetails();\n let reason = sourceDetails.reason;\n const warnings = (_a = sourceDetails.warnings) !== null && _a !== void 0 ? _a : [];\n if (this._source === 'Bootstrap' && warnings.length > 0) {\n reason = reason + warnings[0];\n }\n if (reason !== 'Uninitialized' && reason !== 'NoValues') {\n const subreason = isUnrecognized ? 'Unrecognized' : 'Recognized';\n reason = `${reason}:${subreason}`;\n }\n const bootstrapMetadata = this._source === 'Bootstrap'\n ? (_b = this._bootstrapMetadata) !== null && _b !== void 0 ? _b : undefined\n : undefined;\n if (bootstrapMetadata) {\n sourceDetails.bootstrapMetadata = bootstrapMetadata;\n }\n return Object.assign(Object.assign({}, sourceDetails), { reason });\n }\n}\nexports.default = EvaluationStore;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst client_core_1 = require(\"@statsig/client-core\");\nconst 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, options !== null && options !== void 0 ? options : null);\n this._network = network;\n this._user = this._configureUser(user, options);\n this._sdkInstanceID = (0, client_core_1.getUUID)();\n this._contextHandle = new client_core_1.PrecomputedEvaluationsContextHandle(sdkKey, () => this._options, () => this._errorBoundary, () => this._store.getValues(), () => this._user, () => this._sdkInstanceID);\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 let user = (0, client_core_1._cloneObject)('StatsigUser', this._user);\n if (user == null) {\n client_core_1.Log.error('Failed to clone user');\n user = {};\n }\n return {\n sdkKey: this._sdkKey,\n options: this._options,\n values: this._store.getValues(),\n 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 a context handle that computes fields lazily on access.\n * This is more efficient than getContext() when you only need certain fields,\n *\n * @returns {PrecomputedEvaluationsContextHandle} A handle with lazy getters for context fields.\n */\n getContextHandle() {\n return this._contextHandle;\n }\n /**\n * Retrieves the value of a feature gate for the current user, represented as a simple boolean.\n *\n * @param {string} name - The name of the feature gate to retrieve.\n * @param {FeatureGateEvaluationOptions} [options] - Optional. Additional options to customize the method call.\n * @returns {boolean} - The boolean value representing the gate's current evaluation results for the user.\n */\n checkGate(name, options) {\n return this.getFeatureGate(name, options).value;\n }\n /**\n * Logs an event to the internal logging system. This function allows logging by either passing a fully formed event object or by specifying the event name with optional value and metadata.\n *\n * @param {StatsigEvent|string} eventOrName - The event object conforming to the StatsigEvent interface, or the name of the event as a string.\n * @param {string|number} value - Optional. The value associated with the event, which can be a string or a number. This parameter is ignored if the first parameter is a StatsigEvent object.\n * @param {Record<string, string>} metadata - Optional. A key-value record containing metadata about the event. This is also ignored if the first parameter is an event object.\n */\n logEvent(eventOrName, value, metadata) {\n const event = typeof eventOrName === 'string'\n ? {\n eventName: eventOrName,\n value,\n metadata,\n }\n : eventOrName;\n this.$emt({\n name: 'log_event_called',\n event,\n });\n this._logger.enqueue(Object.assign(Object.assign({}, event), { user: this._user, time: Date.now() }));\n }\n /**\n * Updates the user with analytics only metadata. This will override any existing analytics only metadata.\n *\n * @param {Record<string, string | number | boolean>} metadata - The metadata to add to the user.\n */\n updateUserWithAnalyticsOnlyMetadata(metadata) {\n this._user = this._configureUser(Object.assign(Object.assign({}, this._user), { analyticsOnlyMetadata: metadata }), this._options);\n }\n _primeReadyRipcord() {\n this.$on('error', () => {\n this.loadingStatus === 'Loading' && this._finalizeUpdate(null);\n });\n }\n _initializeAsyncImpl(options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!client_core_1.Storage.isReady()) {\n yield client_core_1.Storage.isReadyResolver();\n }\n this._logger.start();\n return this.updateUserAsync(this._user, options);\n });\n }\n _createErrorUpdateDetails(error, startTime) {\n var _a;\n return (0, client_core_1.createUpdateDetails)(false, this._store.getSource(), performance.now() - startTime, error, null, [...((_a = this._store.getWarnings()) !== null && _a !== void 0 ? _a : [])]);\n }\n _finalizeUpdate(values) {\n this._store.finalize();\n this._setStatus('Ready', values);\n }\n _runPostUpdate(current, user) {\n this.dataAdapter\n .getDataAsync(current, user, { priority: 'low' })\n .catch((err) => {\n client_core_1.Log.error('An error occurred after update.', err);\n });\n }\n _resetForUser(user) {\n this._logger.reset();\n this._store.reset();\n this._user = this._configureUser(user, this._options);\n }\n _configureUser(originalUser, options) {\n var _a, _b, _c;\n const user = (0, client_core_1._normalizeUser)(originalUser, options);\n const stableIdOverride = (_a = user.customIDs) === null || _a === void 0 ? void 0 : _a.stableID;\n if (stableIdOverride) {\n const readyPromise = (_c = (_b = this.storageProvider).isReadyResolver) === null || _c === void 0 ? void 0 : _c.call(_b);\n if (readyPromise) {\n readyPromise.then(() => client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey), () => client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey));\n }\n else {\n client_core_1.StableID.setOverride(stableIdOverride, this._sdkKey);\n }\n }\n // Only attach first touch metadata if it's not empty\n if (Object.keys(this._possibleFirstTouchMetadata).length > 0) {\n user.analyticsOnlyMetadata = Object.assign(Object.assign({}, user.analyticsOnlyMetadata), this._possibleFirstTouchMetadata);\n }\n return user;\n }\n _getFeatureGateImpl(name, options) {\n var _a, _b;\n const { result: evaluation, details } = this._store.getGate(name);\n this._checkUserHasIdForEvaluation(evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type, name, 'Gate');\n this._checkInitializationStatus(details.reason);\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 this._checkUserHasIdForEvaluation(evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type, name, 'Dynamic config');\n this._checkInitializationStatus(details.reason);\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 this._checkUserHasIdForEvaluation(evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type, name, 'Experiment');\n this._checkInitializationStatus(details.reason);\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 _checkUserHasIdForEvaluation(idType, name, type) {\n if (!idType) {\n return;\n }\n if (!(0, client_core_1._getUnitIDFromUser)(this._user, idType)) {\n client_core_1.Log.warn(`The user does not have the required id_type \"${idType}\" for ${type} \"${name}\"`);\n }\n }\n _checkInitializationStatus(reason) {\n if (reason === 'Uninitialized' || reason.startsWith('Loading')) {\n client_core_1.Log.warn(`SDK initialization has not completed. Reason: ${reason}`);\n }\n }\n}\nexports.default = StatsigClient;\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.WebVitalsManager = void 0;\nconst web_vitals_1 = require(\"web-vitals\");\nconst client_core_1 = require(\"@statsig/client-core\");\nconst AutoCaptureEvent_1 = require(\"./AutoCaptureEvent\");\nconst commonUtils_1 = require(\"./utils/commonUtils\");\nconst VALID_METRIC_NAMES = ['CLS', 'FCP', 'INP', 'LCP', 'TTFB'];\nclass WebVitalsManager {\n constructor(_enqueueFn, _errorBoundary) {\n this._enqueueFn = _enqueueFn;\n this._errorBoundary = _errorBoundary;\n this._isInitialized = false;\n this._metricEvent = {\n url: (0, commonUtils_1._getSafeUrlString)(),\n sanitizedUrl: (0, commonUtils_1._getSanitizedPageUrl)(),\n metrics: [],\n firstMetricTimestamp: undefined,\n };\n }\n startTracking() {\n var _a, _b;\n try {\n if (this._isInitialized) {\n return;\n }\n const protocol = (_b = (_a = (0, client_core_1._getWindowSafe)()) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.protocol;\n if (protocol !== 'https:' && protocol !== 'http:') {\n return;\n }\n (0, web_vitals_1.onCLS)((metric) => this._handleMetric(metric));\n (0, web_vitals_1.onFCP)((metric) => this._handleMetric(metric));\n (0, web_vitals_1.onINP)((metric) => this._handleMetric(metric));\n (0, web_vitals_1.onLCP)((metric) => this._handleMetric(metric));\n (0, web_vitals_1.onTTFB)((metric) => this._handleMetric(metric));\n this._isInitialized = true;\n }\n catch (error) {\n client_core_1.Log.error('Error starting web vitals tracking', error);\n this._errorBoundary.logError('autoCapture:WebVitalsManager', error);\n }\n }\n flushPendingMetrics() {\n if (this._metricEvent.metrics.length === 0) {\n return false;\n }\n this._enqueueWebVitalsAutoCaptureEvent();\n return true;\n }\n _handleMetric(metric) {\n if (this._metricEvent.firstMetricTimestamp === undefined) {\n this._metricEvent.firstMetricTimestamp = Date.now();\n }\n if (metric === undefined ||\n (metric === null || metric === void 0 ? void 0 : metric.name) === undefined) {\n return;\n }\n const currentUrl = (0, commonUtils_1._getSafeUrlString)();\n if (currentUrl === '') {\n // If the URL is not valid, we don't want to track the metric\n return;\n }\n if (!VALID_METRIC_NAMES.includes(metric.name)) {\n return;\n }\n if (currentUrl !== this._metricEvent.url) {\n this._enqueueWebVitalsAutoCaptureEvent();\n this._metricEvent.url = currentUrl;\n }\n const metricData = metric;\n this._metricEvent.metrics.push({\n name: metricData.name,\n value: metricData.value,\n delta: metricData.delta,\n id: metricData.id,\n rating: metricData.rating,\n navigationType: metricData.navigationType,\n });\n if (this._metricEvent.metrics.length === VALID_METRIC_NAMES.length) {\n this._enqueueWebVitalsAutoCaptureEvent();\n }\n }\n _enqueueWebVitalsAutoCaptureEvent() {\n if (this._metricEvent.url === '' ||\n this._metricEvent.metrics.length === 0) {\n return;\n }\n const flattenedMetrics = {};\n this._metricEvent.metrics.forEach((metric) => {\n const prefix = metric.name.toLowerCase();\n flattenedMetrics[`${prefix}_value`] = metric.value;\n flattenedMetrics[`${prefix}_delta`] = metric.delta;\n flattenedMetrics[`${prefix}_id`] = metric.id;\n flattenedMetrics[`${prefix}_rating`] = metric.rating;\n if (metric.navigationType != null) {\n flattenedMetrics['navigation_type'] = metric.navigationType;\n }\n });\n this._enqueueFn(AutoCaptureEvent_1.AutoCaptureEventName.WEB_VITALS, this._metricEvent.sanitizedUrl, Object.assign(Object.assign({}, flattenedMetrics), { first_metric_timestamp: this._metricEvent.firstMetricTimestamp }));\n this._metricEvent = {\n url: (0, commonUtils_1._getSafeUrlString)(),\n sanitizedUrl: (0, commonUtils_1._getSanitizedPageUrl)(),\n metrics: [],\n firstMetricTimestamp: undefined,\n };\n }\n}\nexports.WebVitalsManager = WebVitalsManager;\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\";\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.FlushCoordinator = void 0;\nconst EventRetryConstants_1 = require(\"./EventRetryConstants\");\nconst EventSender_1 = require(\"./EventSender\");\nconst FlushInterval_1 = require(\"./FlushInterval\");\nconst FlushTypes_1 = require(\"./FlushTypes\");\nconst Hashing_1 = require(\"./Hashing\");\nconst Log_1 = require(\"./Log\");\nconst NetworkCore_1 = require(\"./NetworkCore\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StatsigOptionsCommon_1 = require(\"./StatsigOptionsCommon\");\nconst StorageProvider_1 = require(\"./StorageProvider\");\nconst RETRYABLE_NO_RESPONSE_FAILURE_PATHS = new Set([\n 'network_request_timed_out_no_response',\n 'network_request_exception_no_response',\n 'event_sender_post_returned_null',\n 'event_sender_post_returned_undefined',\n 'event_sender_post_exception',\n]);\nclass FlushCoordinator {\n constructor(batchQueue, pendingEvents, onPrepareFlush, \n // For Event Sender\n sdkKey, network, emitter, logEventUrlConfig, options, loggingEnabled, errorBoundary) {\n this._cooldownTimer = null;\n this._maxIntervalTimer = null;\n this._hasRunQuickFlush = false;\n this._currentFlushPromise = null;\n this._creationTime = Date.now();\n this._isShuttingDown = false;\n this._storageKey = null;\n this._flushInterval = new FlushInterval_1.FlushInterval();\n this._batchQueue = batchQueue;\n this._pendingEvents = pendingEvents;\n this._onPrepareFlush = onPrepareFlush;\n this._errorBoundary = errorBoundary;\n this._sdkKey = sdkKey;\n this._loggingEnabled = loggingEnabled;\n this._eventSender = new EventSender_1.EventSender(sdkKey, network, emitter, logEventUrlConfig, options);\n }\n setLoggingEnabled(loggingEnabled) {\n this._loggingEnabled = loggingEnabled;\n }\n setLogEventCompressionMode(mode) {\n this._eventSender.setLogEventCompressionMode(mode);\n }\n startScheduledFlushCycle() {\n this._scheduleNextFlush();\n }\n stopScheduledFlushCycle() {\n this._clearAllTimers();\n }\n addEvent(event) {\n this._pendingEvents.addToPendingEventsQueue(event);\n if (this._currentFlushPromise) {\n return;\n }\n if (this._pendingEvents.hasEventsForFullBatch()) {\n this.processLimitFlush();\n }\n }\n processManualFlush() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._currentFlushPromise) {\n yield this._currentFlushPromise;\n }\n this._currentFlushPromise = this._executeFlush(FlushTypes_1.FlushType.Manual).finally(() => {\n this._currentFlushPromise = null;\n this._scheduleNextFlush();\n });\n return this._currentFlushPromise;\n });\n }\n processShutdown() {\n return __awaiter(this, void 0, void 0, function* () {\n this._isShuttingDown = true;\n this._clearAllTimers();\n if (this._currentFlushPromise) {\n yield this._currentFlushPromise;\n }\n this._currentFlushPromise = this._executeFlush(FlushTypes_1.FlushType.Shutdown)\n .catch((error) => {\n Log_1.Log.error(`Error during shutdown flush: ${error}`);\n })\n .finally(() => {\n this._currentFlushPromise = null;\n });\n return this._currentFlushPromise;\n });\n }\n _executeFlush(flushType) {\n return __awaiter(this, void 0, void 0, function* () {\n this._clearAllTimers();\n try {\n this._prepareQueueForFlush(flushType);\n const batches = this._batchQueue.takeAllBatches();\n if (batches.length === 0) {\n return;\n }\n yield Promise.all(batches.map((batch) => this._processOneBatch(batch, flushType)));\n }\n finally {\n if (!this._isShuttingDown) {\n this._scheduleNextFlush();\n }\n }\n });\n }\n checkQuickFlush() {\n if (this._hasRunQuickFlush) {\n return;\n }\n if (Date.now() - this._creationTime >\n EventRetryConstants_1.EventRetryConstants.QUICK_FLUSH_WINDOW_MS) {\n return;\n }\n this._hasRunQuickFlush = true;\n setTimeout(() => {\n this.processManualFlush().catch((error) => {\n Log_1.Log.warn('Quick flush failed:', error);\n });\n }, EventRetryConstants_1.EventRetryConstants.QUICK_FLUSH_WINDOW_MS);\n }\n _attemptScheduledFlush() {\n if (this._currentFlushPromise) {\n this._scheduleNextFlush();\n return;\n }\n const shouldFlushBySize = this.containsAtLeastOneFullBatch();\n const shouldFlushByTime = this._flushInterval.hasReachedMaxInterval();\n if (!shouldFlushBySize && !shouldFlushByTime) {\n this._scheduleNoopPollTick();\n return;\n }\n this._flushInterval.markFlushAttempt();\n let flushType;\n if (shouldFlushBySize) {\n flushType = FlushTypes_1.FlushType.ScheduledFullBatch;\n }\n else {\n flushType = FlushTypes_1.FlushType.ScheduledMaxTime;\n }\n this._currentFlushPromise = this._processNextBatch(flushType)\n .then(() => {\n //This discards boolean result. Main goal here is to track completion\n })\n .catch((error) => {\n Log_1.Log.error('Error during scheduled flush:', error);\n })\n .finally(() => {\n this._currentFlushPromise = null;\n this._scheduleNextFlush();\n });\n }\n processLimitFlush() {\n if (!this._flushInterval.hasCompletelyRecoveredFromBackoff()) {\n return;\n }\n if (this._currentFlushPromise) {\n return;\n }\n this._currentFlushPromise = this._processLimitFlushInternal()\n .catch((error) => {\n Log_1.Log.error(`Error during limit flush`, error);\n })\n .finally(() => {\n this._currentFlushPromise = null;\n this._scheduleNextFlush();\n });\n }\n _processLimitFlushInternal() {\n return __awaiter(this, void 0, void 0, function* () {\n const success = yield this._processNextBatch(FlushTypes_1.FlushType.Limit);\n if (!success) {\n return;\n }\n while (this._flushInterval.hasCompletelyRecoveredFromBackoff() &&\n this.containsAtLeastOneFullBatch()) {\n const success = yield this._processNextBatch(FlushTypes_1.FlushType.Limit);\n if (!success) {\n break;\n }\n }\n });\n }\n _scheduleNextFlush() {\n this._clearAllTimers();\n if (this._isShuttingDown) {\n return;\n }\n const cooldownDelay = Math.max(0, this._flushInterval.getTimeUntilNextFlush());\n this._cooldownTimer = setTimeout(() => {\n this._cooldownTimer = null;\n SessionID_1.StatsigSession.checkForIdleSession(this._sdkKey);\n this._attemptScheduledFlush();\n }, cooldownDelay);\n const maxIntervalDelay = Math.max(0, this._flushInterval.getTimeTillMaxInterval());\n this._maxIntervalTimer = setTimeout(() => {\n this._maxIntervalTimer = null;\n SessionID_1.StatsigSession.checkForIdleSession(this._sdkKey);\n this._attemptScheduledFlush();\n }, maxIntervalDelay);\n }\n _clearAllTimers() {\n if (this._cooldownTimer !== null) {\n clearTimeout(this._cooldownTimer);\n this._cooldownTimer = null;\n }\n if (this._maxIntervalTimer !== null) {\n clearTimeout(this._maxIntervalTimer);\n this._maxIntervalTimer = null;\n }\n }\n _scheduleNoopPollTick() {\n this._clearAllTimers();\n if (this._isShuttingDown) {\n return;\n }\n this._cooldownTimer = setTimeout(() => {\n this._cooldownTimer = null;\n SessionID_1.StatsigSession.checkForIdleSession(this._sdkKey);\n this._attemptScheduledFlush();\n }, EventRetryConstants_1.EventRetryConstants.TICK_INTERVAL_MS);\n const maxIntervalDelay = Math.max(0, this._flushInterval.getTimeTillMaxInterval());\n this._maxIntervalTimer = setTimeout(() => {\n this._maxIntervalTimer = null;\n SessionID_1.StatsigSession.checkForIdleSession(this._sdkKey);\n this._attemptScheduledFlush();\n }, maxIntervalDelay);\n }\n _processNextBatch(flushType) {\n return __awaiter(this, void 0, void 0, function* () {\n this._prepareQueueForFlush(flushType);\n const batch = this._batchQueue.takeNextBatch();\n if (!batch) {\n return false;\n }\n return this._processOneBatch(batch, flushType);\n });\n }\n _processOneBatch(batch, flushType) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._loggingEnabled !== StatsigOptionsCommon_1.LoggingEnabledOption.always &&\n (0, SafeJs_1._isServerEnv)()) {\n this._flushInterval.adjustForSuccess();\n return true;\n }\n const result = yield this._eventSender.sendBatch(batch);\n if (result.success) {\n this._flushInterval.adjustForSuccess();\n return true;\n }\n this._flushInterval.adjustForFailure();\n this._handleFailure(batch, flushType, result.statusCode, result.failurePath, result.failureErrorMessage, result.failureDiagnosticBucket, result.failureDiagnosticMetadata);\n return false;\n });\n }\n _prepareQueueForFlush(flushType) {\n this._onPrepareFlush();\n const droppedCount = this.convertPendingEventsToBatches();\n if (droppedCount > 0) {\n Log_1.Log.warn(`Dropped ${droppedCount} events`);\n this._errorBoundary.logDroppedEvents(droppedCount, `Batch queue limit reached during batching`, {\n loggingInterval: this._flushInterval.getCurrentIntervalMs(),\n batchSize: this._batchQueue.batchSize(),\n maxPendingBatches: EventRetryConstants_1.EventRetryConstants.MAX_PENDING_BATCHES,\n flushType: flushType,\n retries: 'dropped before batching',\n });\n }\n }\n containsAtLeastOneFullBatch() {\n return (this._pendingEvents.hasEventsForFullBatch() ||\n this._batchQueue.hasFullBatch());\n }\n convertPendingEventsToBatches() {\n if (this._pendingEvents.isEmpty()) {\n return 0;\n }\n const allEvents = this._pendingEvents.takeAll();\n return this._batchQueue.createBatches(allEvents);\n }\n _isRetryableBatch(statusCode, failurePath) {\n if (NetworkCore_1.RETRYABLE_CODES.has(statusCode)) {\n return true;\n }\n if (statusCode === -1 &&\n failurePath &&\n RETRYABLE_NO_RESPONSE_FAILURE_PATHS.has(failurePath)) {\n return true;\n }\n return false;\n }\n _handleFailure(batch, flushType, statusCode, failurePath, failureErrorMessage, failureDiagnosticBucket, failureDiagnosticMetadata) {\n if (flushType === FlushTypes_1.FlushType.Shutdown) {\n Log_1.Log.warn(`${flushType} flush failed during shutdown. ` +\n `${batch.events.length} event(s) will be saved to storage for retry in next session.`);\n this._saveShutdownFailedEventsToStorage(batch.events);\n return;\n }\n if (!this._isRetryableBatch(statusCode, failurePath)) {\n const reason = `non-retryable error`;\n Log_1.Log.warn(`${flushType} flush failed after ${batch.attempts} attempt(s). ` +\n `${batch.events.length} event(s) will be dropped. Non-retryable error: ${statusCode}`);\n this._errorBoundary.logEventRequestFailure(batch.events.length, reason, flushType, statusCode, batch.attempts, failurePath, failureErrorMessage, failureDiagnosticBucket, failureDiagnosticMetadata);\n return;\n }\n if (batch.attempts >= EventRetryConstants_1.EventRetryConstants.MAX_RETRY_ATTEMPTS) {\n const reason = `max retry attempts exceeded`;\n Log_1.Log.warn(`${flushType} flush failed after ${batch.attempts} attempt(s). ` +\n `${batch.events.length} event(s) will be dropped.`);\n this._errorBoundary.logEventRequestFailure(batch.events.length, reason, flushType, statusCode, batch.attempts, failurePath, failureErrorMessage, failureDiagnosticBucket, failureDiagnosticMetadata);\n return;\n }\n batch.incrementAttempts();\n const droppedCount = this._batchQueue.requeueBatch(batch);\n if (droppedCount > 0) {\n Log_1.Log.warn(`Failed to requeue batch : dropped ${droppedCount} events due to full queue`);\n this._errorBoundary.logDroppedEvents(droppedCount, `Batch queue limit reached during requeue`, {\n loggingInterval: this._flushInterval.getCurrentIntervalMs(),\n batchSize: this._batchQueue.batchSize(),\n maxPendingBatches: EventRetryConstants_1.EventRetryConstants.MAX_PENDING_BATCHES,\n flushType: flushType,\n retries: batch.attempts,\n });\n }\n }\n loadAndRetryShutdownFailedEvents() {\n return __awaiter(this, void 0, void 0, function* () {\n const storageKey = this._getStorageKey();\n try {\n if (!StorageProvider_1.Storage.isReady()) {\n yield StorageProvider_1.Storage.isReadyResolver();\n }\n const events = this._getShutdownFailedEventsFromStorage(storageKey);\n if (events.length === 0) {\n return;\n }\n Log_1.Log.debug(`Loading ${events.length} failed shutdown event(s) from storage for retry`);\n StorageProvider_1.Storage.removeItem(storageKey);\n events.forEach((event) => {\n this.addEvent(event);\n });\n yield this.processManualFlush();\n }\n catch (error) {\n Log_1.Log.warn('Failed to load and retry failed shutdown events:', error);\n }\n });\n }\n _getStorageKey() {\n if (!this._storageKey) {\n this._storageKey = `statsig.failed_shutdown_events.${(0, Hashing_1._DJB2)(this._sdkKey)}`;\n }\n return this._storageKey;\n }\n _saveShutdownFailedEventsToStorage(events) {\n const storageKey = this._getStorageKey();\n try {\n const existingEvents = this._getShutdownFailedEventsFromStorage(storageKey);\n let allEvents = [...existingEvents, ...events];\n if (allEvents.length > EventRetryConstants_1.EventRetryConstants.MAX_LOCAL_STORAGE) {\n allEvents = allEvents.slice(-EventRetryConstants_1.EventRetryConstants.MAX_LOCAL_STORAGE);\n }\n (0, StorageProvider_1._setObjectInStorage)(storageKey, allEvents);\n Log_1.Log.debug(`Saved ${events.length} failed shutdown event(s) to storage (total stored: ${allEvents.length})`);\n }\n catch (error) {\n Log_1.Log.warn('Unable to save failed shutdown events to storage:', error);\n }\n }\n _getShutdownFailedEventsFromStorage(storageKey) {\n try {\n const events = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n if (Array.isArray(events)) {\n return events;\n }\n return [];\n }\n catch (_a) {\n return [];\n }\n }\n}\nexports.FlushCoordinator = FlushCoordinator;\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 });\nexports.PrecomputedEvaluationsContextHandle = void 0;\nconst Log_1 = require(\"./Log\");\nconst SafeJs_1 = require(\"./SafeJs\");\nconst SessionID_1 = require(\"./SessionID\");\nconst StableID_1 = require(\"./StableID\");\n/**\n * A handle to the PrecomputedEvaluationsContext that computes fields lazily on access.\n * This avoids unnecessary computation (e.g., cloning the user) when only certain fields are needed.\n * The handle is created once and reused; individual getters fetch current values on each access.\n */\nclass PrecomputedEvaluationsContextHandle {\n constructor(sdkKey, getOptions, getErrorBoundary, getValues, getUser, getSdkInstanceID) {\n this._sdkKey = sdkKey;\n this._getOptions = getOptions;\n this._getErrorBoundary = getErrorBoundary;\n this._getValues = getValues;\n this._getUser = getUser;\n this._getSdkInstanceID = getSdkInstanceID;\n }\n get sdkKey() {\n return this._sdkKey;\n }\n get options() {\n return this._getOptions();\n }\n get errorBoundary() {\n return this._getErrorBoundary();\n }\n get values() {\n return this._getValues();\n }\n get user() {\n let user = (0, SafeJs_1._cloneObject)('StatsigUser', this._getUser());\n if (user == null) {\n Log_1.Log.error('Failed to clone user');\n user = {};\n }\n return user;\n }\n /**\n * Gets the current session.\n * @param {boolean} [bumpSession=true] - Whether to bump/update the session timing. Set to false to read without affecting session state.\n */\n getSession(bumpSession = true) {\n return SessionID_1.StatsigSession.get(this._sdkKey, bumpSession);\n }\n get stableID() {\n return StableID_1.StableID.get(this._sdkKey);\n }\n get sdkInstanceID() {\n return this._getSdkInstanceID();\n }\n /**\n * Returns the full PrecomputedEvaluationsContext object.\n * Use this when you need all fields at once.\n * @param {boolean} [bumpSession=true] - Whether to bump the session when building the context.\n */\n toContext(bumpSession = true) {\n return {\n sdkKey: this.sdkKey,\n options: this.options,\n values: this.values,\n user: this.user,\n errorBoundary: this.errorBoundary,\n session: this.getSession(bumpSession),\n stableID: this.stableID,\n sdkInstanceID: this.sdkInstanceID,\n };\n }\n}\nexports.PrecomputedEvaluationsContextHandle = PrecomputedEvaluationsContextHandle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports._getStackTrace = exports._safeStringify = void 0;\nfunction _truncateString(str, maxLength) {\n if (str.length <= maxLength) {\n return str;\n }\n return str.slice(0, maxLength) + '...';\n}\nfunction _safeStringify(val, maxKeysCount, maxDepth, maxLength) {\n try {\n if (_shouldNotStringify(val, maxKeysCount, maxDepth)) {\n return _simpleStringify(val, maxLength);\n }\n if (typeof val === 'string') {\n return _truncateString(val, maxLength);\n }\n if (typeof val === 'object' && val !== null) {\n return _truncateString(JSON.stringify(val), maxLength);\n }\n return _truncateString(String(val), maxLength);\n }\n catch (_a) {\n return _truncateString('[Unserializable]', maxLength);\n }\n}\nexports._safeStringify = _safeStringify;\nfunction _getStackTrace() {\n var _a, _b;\n try {\n return (_b = (_a = new Error().stack) === null || _a === void 0 ? void 0 : _a.split('\\n').slice(2)) !== null && _b !== void 0 ? _b : [];\n }\n catch (_c) {\n return [];\n }\n}\nexports._getStackTrace = _getStackTrace;\nfunction _shouldNotStringify(val, maxKeysCount, maxDepth) {\n if (_isPlainObject(val)) {\n if (Object.keys(val).length > maxKeysCount) {\n return true;\n }\n if (_isObjectTooDeep(val, maxDepth)) {\n return true;\n }\n }\n if (typeof val === 'function') {\n return true;\n }\n return false;\n}\nfunction _isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\nfunction _isObjectTooDeep(obj, maxDepth) {\n if (maxDepth <= 0) {\n return true;\n }\n if (typeof obj !== 'object' || obj === null) {\n return false;\n }\n return Object.keys(obj).some((key) => _isObjectTooDeep(obj[key], maxDepth - 1));\n}\nfunction _simpleStringify(val, maxLength) {\n return _truncateString(val.toString(), maxLength);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.V1InitializeContainer = void 0;\nconst client_core_1 = require(\"@statsig/client-core\");\nclass V1InitializeContainer {\n constructor(_values) {\n this._values = _values;\n }\n getGate(name) {\n return this._getResultFromLookup(this._values.feature_gates, name);\n }\n getConfig(name) {\n return this._getResultFromLookup(this._values.dynamic_configs, name);\n }\n getLayer(name) {\n return this._getResultFromLookup(this._values.layer_configs, name);\n }\n getParamStore(name) {\n return this._getResultFromLookup(this._values.param_stores, name);\n }\n getConfigList() {\n return Object.keys(this._values.dynamic_configs);\n }\n getExposureMapping() {\n return this._values.exposures;\n }\n _getResultFromLookup(lookup, name) {\n var _a, _b;\n if (!lookup) {\n return null;\n }\n return (_b = (_a = lookup[name]) !== null && _a !== void 0 ? _a : lookup[(0, client_core_1._DJB2)(name)]) !== null && _b !== void 0 ? _b : null;\n }\n}\nexports.V1InitializeContainer = V1InitializeContainer;\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=\"undefined\"!=typeof globalThis?globalThis:e||self).webVitals={})}(this,(function(e){\"use strict\";let t=-1;const n=e=>{addEventListener(\"pageshow\",(n=>{n.persisted&&(t=n.timeStamp,e(n))}),!0)},i=(e,t,n,i)=>{let o,s;return r=>{t.value>=0&&(r||i)&&(s=t.value-(o??0),(s||void 0===o)&&(o=t.value,t.delta=s,t.rating=((e,t)=>e>t[1]?\"poor\":e>t[0]?\"needs-improvement\":\"good\")(t.value,n),e(t)))}},o=e=>{requestAnimationFrame((()=>requestAnimationFrame((()=>e()))))},s=()=>{const e=performance.getEntriesByType(\"navigation\")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},r=()=>{const e=s();return e?.activationStart??0},c=(e,n=-1)=>{const i=s();let o=\"navigate\";t>=0?o=\"back-forward-cache\":i&&(document.prerendering||r()>0?o=\"prerender\":document.wasDiscarded?o=\"restore\":i.type&&(o=i.type.replace(/_/g,\"-\")));return{name:e,value:n,rating:\"good\",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:o}},a=new WeakMap;function d(e,t){return a.get(e)||a.set(e,new t),a.get(e)}class h{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const f=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver((e=>{Promise.resolve().then((()=>{t(e.getEntries())}))}));return i.observe({type:e,buffered:!0,...n}),i}}catch{}},u=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let l=-1;const m=()=>\"hidden\"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{\"hidden\"===document.visibilityState&&l>-1&&(l=\"visibilitychange\"===e.type?e.timeStamp:0,v())},g=()=>{addEventListener(\"visibilitychange\",p,!0),addEventListener(\"prerenderingchange\",p,!0)},v=()=>{removeEventListener(\"visibilitychange\",p,!0),removeEventListener(\"prerenderingchange\",p,!0)},y=()=>{if(l<0){const e=r(),t=document.prerendering?void 0:globalThis.performance.getEntriesByType(\"visibility-state\").filter((t=>\"hidden\"===t.name&&t.startTime>e))[0]?.startTime;l=t??m(),g(),n((()=>{setTimeout((()=>{l=m(),g()}))}))}return{get firstHiddenTime(){return l}}},b=e=>{document.prerendering?addEventListener(\"prerenderingchange\",(()=>e()),!0):e()},T=[1800,3e3],P=(e,t={})=>{b((()=>{const s=y();let a,d=c(\"FCP\");const h=f(\"paint\",(e=>{for(const t of e)\"first-contentful-paint\"===t.name&&(h.disconnect(),t.startTime<s.firstHiddenTime&&(d.value=Math.max(t.startTime-r(),0),d.entries.push(t),a(!0)))}));h&&(a=i(e,d,T,t.reportAllChanges),n((n=>{d=c(\"FCP\"),a=i(e,d,T,t.reportAllChanges),o((()=>{d.value=performance.now()-n.timeStamp,a(!0)}))})))}))},E=[.1,.25];let _=0,L=1/0,M=0;const C=e=>{for(const t of e)t.interactionId&&(L=Math.min(L,t.interactionId),M=Math.max(M,t.interactionId),_=M?(M-L)/7+1:0)};let I;const w=()=>I?_:performance.interactionCount??0,F=()=>{\"interactionCount\"in performance||I||(I=f(\"event\",C,{type:\"event\",buffered:!0,durationThreshold:0}))};let k=0;class x{u=[];l=new Map;m;p;v(){k=w(),this.u.length=0,this.l.clear()}T(){const e=Math.min(this.u.length-1,Math.floor((w()-k)/50));return this.u[e]}h(e){if(this.m?.(e),!e.interactionId&&\"first-input\"!==e.entryType)return;const t=this.u.at(-1);let n=this.l.get(e.interactionId);if(n||this.u.length<10||e.duration>t.P){if(n?e.duration>n.P?(n.entries=[e],n.P=e.duration):e.duration===n.P&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],P:e.duration},this.l.set(n.id,n),this.u.push(n)),this.u.sort(((e,t)=>t.P-e.P)),this.u.length>10){const e=this.u.splice(10);for(const t of e)this.l.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout;\"hidden\"===document.visibilityState?e():(e=u(e),document.addEventListener(\"visibilitychange\",e,{once:!0}),t((()=>{e(),document.removeEventListener(\"visibilitychange\",e)})))},B=[200,500];class N{m;h(e){this.m?.(e)}}const S=[2500,4e3],q=[800,1800],O=e=>{document.prerendering?b((()=>O(e))):\"complete\"!==document.readyState?addEventListener(\"load\",(()=>O(e)),!0):setTimeout(e)};e.CLSThresholds=E,e.FCPThresholds=T,e.INPThresholds=B,e.LCPThresholds=S,e.TTFBThresholds=q,e.onCLS=(e,t={})=>{P(u((()=>{let s,r=c(\"CLS\",0);const a=d(t,h),u=e=>{for(const t of e)a.h(t);a.i>r.value&&(r.value=a.i,r.entries=a.o,s())},l=f(\"layout-shift\",u);l&&(s=i(e,r,E,t.reportAllChanges),document.addEventListener(\"visibilitychange\",(()=>{\"hidden\"===document.visibilityState&&(u(l.takeRecords()),s(!0))})),n((()=>{a.i=0,r=c(\"CLS\",0),s=i(e,r,E,t.reportAllChanges),o((()=>s()))})),setTimeout(s))})))},e.onFCP=P,e.onINP=(e,t={})=>{globalThis.PerformanceEventTiming&&\"interactionId\"in PerformanceEventTiming.prototype&&b((()=>{F();let o,s=c(\"INP\");const r=d(t,x),a=e=>{A((()=>{for(const t of e)r.h(t);const t=r.T();t&&t.P!==s.value&&(s.value=t.P,s.entries=t.entries,o())}))},h=f(\"event\",a,{durationThreshold:t.durationThreshold??40});o=i(e,s,B,t.reportAllChanges),h&&(h.observe({type:\"first-input\",buffered:!0}),document.addEventListener(\"visibilitychange\",(()=>{\"hidden\"===document.visibilityState&&(a(h.takeRecords()),o(!0))})),n((()=>{r.v(),s=c(\"INP\"),o=i(e,s,B,t.reportAllChanges)})))}))},e.onLCP=(e,t={})=>{b((()=>{const s=y();let a,h=c(\"LCP\");const l=d(t,N),m=e=>{t.reportAllChanges||(e=e.slice(-1));for(const t of e)l.h(t),t.startTime<s.firstHiddenTime&&(h.value=Math.max(t.startTime-r(),0),h.entries=[t],a())},p=f(\"largest-contentful-paint\",m);if(p){a=i(e,h,S,t.reportAllChanges);const s=u((()=>{m(p.takeRecords()),p.disconnect(),a(!0)}));for(const e of[\"keydown\",\"click\",\"visibilitychange\"])addEventListener(e,(()=>A(s)),{capture:!0,once:!0});n((n=>{h=c(\"LCP\"),a=i(e,h,S,t.reportAllChanges),o((()=>{h.value=performance.now()-n.timeStamp,a(!0)}))}))}}))},e.onTTFB=(e,t={})=>{let o=c(\"TTFB\"),a=i(e,o,q,t.reportAllChanges);O((()=>{const d=s();d&&(o.value=Math.max(d.responseStart-r(),0),o.entries=[d],a(!0),n((()=>{o=c(\"TTFB\",0),a=i(e,o,q,t.reportAllChanges),a(!0)})))}))}}));\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 });\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 VisibilityObserving_1 = require(\"./VisibilityObserving\");\nconst MAX_SESSION_IDLE_TIME = 30 * 60 * 1000; // 30 minutes\nconst MAX_SESSION_AGE = 4 * 60 * 60 * 1000; // 4 hours\nconst PERSIST_THROTTLE_MS = 15000;\nconst SESSION_MAP = {};\n(0, VisibilityObserving_1._subscribeToVisiblityChanged)((visibility) => {\n if (visibility === 'background') {\n Object.values(SESSION_MAP).forEach((session) => _persistNow(session));\n }\n});\nexports.SessionID = {\n get: (sdkKey) => {\n return exports.StatsigSession.get(sdkKey).data.sessionID;\n },\n};\nexports.StatsigSession = {\n get: (sdkKey, bumpSession = true) => {\n if (SESSION_MAP[sdkKey] == null) {\n SESSION_MAP[sdkKey] = _loadOrCreateSharedSession(sdkKey);\n }\n const session = SESSION_MAP[sdkKey];\n return _maybeBumpSession(session, bumpSession);\n },\n overrideInitialSessionID: (override, sdkKey) => {\n const now = Date.now();\n const session = {\n data: {\n sessionID: override,\n startTime: now,\n lastUpdate: now,\n },\n sdkKey,\n lastPersistedAt: Date.now(),\n storageKey: _getSessionIDStorageKey(sdkKey),\n };\n _persistNow(session);\n SESSION_MAP[sdkKey] = session;\n },\n checkForIdleSession: (sdkKey) => {\n const session = SESSION_MAP[sdkKey];\n if (!session) {\n return;\n }\n const sessionExpired = _checkForExpiredSession(session);\n if (sessionExpired) {\n _persistNow(session);\n }\n },\n};\nfunction _maybeBumpSession(session, allowSessionBump) {\n const now = Date.now();\n const sessionExpired = _checkForExpiredSession(session);\n if (sessionExpired) {\n _persistNow(session);\n }\n else if (allowSessionBump) {\n session.data.lastUpdate = now;\n _persistThrottled(session);\n }\n return session;\n}\nfunction _checkForExpiredSession(session) {\n var _a;\n const data = session.data;\n const sessionExpired = _isIdle(data) || _hasRunTooLong(data);\n if (sessionExpired) {\n session.data = _newSessionData();\n (_a = __STATSIG__ === null || __STATSIG__ === void 0 ? void 0 : __STATSIG__.instance(session.sdkKey)) === null || _a === void 0 ? void 0 : _a.$emt({ name: 'session_expired' });\n }\n return sessionExpired;\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 _persistNow(session) {\n try {\n (0, StorageProvider_1._setObjectInStorage)(session.storageKey, session.data);\n session.lastPersistedAt = Date.now();\n }\n catch (e) {\n Log_1.Log.warn('Failed to save SessionID');\n }\n}\nfunction _persistThrottled(session) {\n const now = Date.now();\n if (now - session.lastPersistedAt > PERSIST_THROTTLE_MS) {\n _persistNow(session);\n }\n}\nfunction _loadSessionFromStorage(storageKey) {\n const data = (0, StorageProvider_1._getObjectFromStorage)(storageKey);\n return data;\n}\nfunction _loadOrCreateSharedSession(sdkKey) {\n const storageKey = _getSessionIDStorageKey(sdkKey);\n const existing = _loadSessionFromStorage(storageKey);\n if (existing &&\n existing.sessionID &&\n existing.startTime &&\n existing.lastUpdate) {\n return { data: existing, sdkKey, lastPersistedAt: 0, storageKey };\n }\n return {\n data: _newSessionData(),\n sdkKey,\n lastPersistedAt: 0,\n storageKey,\n };\n}\nfunction _newSessionData() {\n return {\n sessionID: (0, UUID_1.getUUID)(),\n startTime: Date.now(),\n lastUpdate: Date.now(),\n };\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 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, _b;\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)), { idType: (_b = evaluation === null || evaluation === void 0 ? void 0 : evaluation.id_type) !== null && _b !== void 0 ? _b : null, 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\";\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 paramStore: {},\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 paramStore: Object.assign({}, currentValues.paramStore, newValues.paramStore),\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 overrideParamStore(name, value) {\n this._overrides.paramStore[name] = value;\n this._overrides.paramStore[(0, client_core_1._DJB2)(name)] = value;\n this._saveOverridesToStorage();\n }\n removeParamStoreOverride(name) {\n this._warnIfStorageNotReady();\n delete this._overrides.paramStore[name];\n delete this._overrides.paramStore[(0, client_core_1._DJB2)(name)];\n this._saveOverridesToStorage();\n }\n getParamStoreOverride(current) {\n var _a;\n const overridden = (_a = this._overrides.paramStore[current.name]) !== null && _a !== void 0 ? _a : this._overrides.paramStore[(0, client_core_1._DJB2)(current.name)];\n if (overridden == null) {\n return null;\n }\n const config = Object.assign({}, (current.__configuration || {}));\n for (const [key, value] of Object.entries(overridden)) {\n const paramType = this._inferParamType(value);\n config[key] = {\n ref_type: 'static',\n param_type: paramType,\n value,\n };\n }\n return {\n config,\n details: Object.assign(Object.assign({}, current.details), { reason: LOCAL_OVERRIDE_REASON }),\n };\n }\n getAllOverrides() {\n var _a;\n return ((_a = (0, client_core_1._typedJsonParse)(JSON.stringify(this._overrides), 'gate', 'OverrideStore')) !== null && _a !== void 0 ? _a : _makeEmptyStore());\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 Object.keys(this._overrides.paramStore).length > 0);\n }\n _inferParamType(value) {\n if (typeof value === 'string')\n return 'string';\n if (typeof value === 'boolean')\n return 'boolean';\n if (typeof value === 'number')\n return 'number';\n if (Array.isArray(value))\n return 'array';\n return 'object';\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","__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})();","import { LocalOverrideAdapter } from \"@statsig/js-local-overrides\";\nimport {\n StatsigClient,\n SDKType,\n StatsigMetadataProvider,\n} from \"@statsig/js-client\";\nimport { runStatsigAutoCapture } from \"@statsig/web-analytics\";\nimport packageJson from \"../package.json\";\n\nconst STABLE_ID_ATTRIBUTE = \"data-statsig-element-id\";\nconst SIDECAR_SDK_TYPE = \"sidecar-v2-beta\";\nconst SIDECAR_SDK_VERSION = `${packageJson.version}`;\nconst sharedStableIdMap = {};\nconst existingSidecar = window[\"StatsigSidecar\"] || {};\nwindow[\"StatsigSidecar\"] = Object.assign(existingSidecar, {\n _statsigInstance: null,\n _queuedEvents: [],\n _clientInitialized: false,\n _redirKey: \"_stsgnoredir\",\n _stableIdMap: sharedStableIdMap,\n _appliedInserts: new Set(),\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(\n (exp) => exp.value[\"sidecarExperimentName\"] === expName\n );\n if (foundExp) {\n StatsigSidecar._performExperiments([foundExp.name]);\n }\n },\n\n findElementToObserve: function (query) {\n while (query) {\n try {\n const element = this.resolveElement(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 applyStableIdMap: function () {\n const map = sharedStableIdMap || {};\n Object.keys(map).forEach((selector) => {\n const id = map[selector];\n if (!id) {\n return;\n }\n const element = document.querySelector(selector);\n if (element && !element.hasAttribute(STABLE_ID_ATTRIBUTE)) {\n element.setAttribute(STABLE_ID_ATTRIBUTE, id);\n }\n });\n },\n\n resolveElement: function (selector) {\n const directElement = document.querySelector(selector);\n if (directElement) {\n const id = this._ensureStableId(directElement);\n sharedStableIdMap[selector] = id;\n }\n const stableId = sharedStableIdMap?.[selector];\n if (stableId) {\n const stableElement = document.querySelector(\n `[${STABLE_ID_ATTRIBUTE}=\"${stableId}\"]`\n );\n if (stableElement) {\n return stableElement;\n }\n }\n return directElement;\n },\n\n _mergeStableIdMap: function (stableIdMap) {\n if (!stableIdMap || typeof stableIdMap !== \"object\") {\n return;\n }\n Object.assign(sharedStableIdMap, stableIdMap);\n },\n\n _constructQueryString: function (element) {\n if (element.id) {\n return `[id=\"${element.id}\"]`;\n }\n const tagName = element.tagName.toLowerCase();\n const parent = element.parentElement;\n if (!parent || tagName === \"body\") {\n return \"body\";\n }\n const index = Array.from(parent.children).findIndex(\n (child) => child === element\n );\n return `${this._constructQueryString(parent)} > ${tagName}:nth-child(${index + 1})`;\n },\n\n _ensureStableId: function (element) {\n let id = element.getAttribute(STABLE_ID_ATTRIBUTE);\n if (!id) {\n id = `statsig-element-${Math.random().toString(36).slice(2, 10)}`;\n element.setAttribute(STABLE_ID_ATTRIBUTE, id);\n }\n return id;\n },\n\n _updateStableIdMapForElements: function (elements) {\n elements.forEach((element) => {\n if (!element || element.nodeType !== 1) {\n return;\n }\n const id = this._ensureStableId(element);\n const selector = this._constructQueryString(element);\n sharedStableIdMap[selector] = id;\n });\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 _getSidecarConfig: function () {\n const config = window?.statsigSidecarConfig;\n return config && typeof config === \"object\" ? config : {};\n },\n\n _emitExperimentEvaluation: function (experiment) {\n if (!experiment) {\n return;\n }\n const callback = this._getSidecarConfig().onExperimentEvaluation;\n if (typeof callback !== \"function\") {\n return;\n }\n try {\n const experimentName =\n experiment?.value?.[\"sidecarExperimentName\"] ?? experiment.name;\n const groupName = experiment?.groupName ?? null;\n callback({\n name: \"experiment_evaluation\",\n experiment,\n experimentName,\n groupName,\n });\n } catch (e) {\n console.error(\"Failed to run onExperimentEvaluation callback:\", e);\n }\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 disableExposureLog: true,\n });\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 = this.resolveElement(query);\n if (!element) {\n return;\n }\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 = this.resolveElement(query);\n if (!element) {\n return;\n }\n if (element && element.innerHTML !== value) {\n element.innerHTML = value;\n }\n });\n },\n\n _performDirective: function (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 directive.selector,\n property.name,\n property.value\n );\n } else if (property.type === \"attribute\") {\n this.performAttributeChange(\n directive.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 directive.metadata?.after\n );\n });\n break;\n\n case \"insert\":\n this._performAfterLoad(() => {\n this.performInsertElement(\n directive.selector,\n directive.value,\n directive.metadata?.position\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 this._appliedInserts = new Set();\n expIds.forEach((expId) => {\n const expConfig = this._statsigInstance.getExperiment(expId);\n this._emitExperimentEvaluation(expConfig);\n const directives = expConfig.get(\"!statsig_sidecar_directives\", []);\n const stableIdMap = expConfig.get(\"!statsig_sidecar_stable_id_map\", {});\n this._mergeStableIdMap(stableIdMap);\n directives.forEach((directive) => {\n this._mergeStableIdMap(directive?.metadata?.stableIdMap);\n this._mergeStableIdMap(directive?.stableIdMap);\n });\n this.applyStableIdMap();\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, after) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const target = this.resolveElement(query);\n const anchor = this.resolveElement(anchorQuery);\n if (!target || !anchor) {\n return;\n }\n\n const targetParent = target.parentElement;\n const anchorParent =\n operator === \"first\" || operator === \"last\"\n ? anchor\n : anchor.parentElement;\n let reorderAffected = null;\n if (targetParent && anchorParent) {\n if (targetParent === anchorParent) {\n const siblings = Array.from(anchorParent.children);\n const currentIndex = siblings.indexOf(target);\n const anchorIndex = siblings.indexOf(anchor);\n if (currentIndex !== -1 && anchorIndex !== -1) {\n const start = Math.min(currentIndex, anchorIndex);\n const end = Math.max(currentIndex, anchorIndex);\n reorderAffected = siblings.slice(start, end + 1);\n this._updateStableIdMapForElements(reorderAffected);\n }\n } else {\n reorderAffected = [\n ...Array.from(targetParent.children),\n ...Array.from(anchorParent.children),\n ];\n this._updateStableIdMapForElements(reorderAffected);\n }\n }\n\n if (after !== undefined) {\n if (after) {\n anchor.insertAdjacentElement(\"afterend\", target);\n } else {\n anchor.insertAdjacentElement(\"beforebegin\", target);\n }\n if (reorderAffected) {\n this._updateStableIdMapForElements(reorderAffected);\n }\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 default:\n break;\n }\n if (reorderAffected) {\n this._updateStableIdMapForElements(reorderAffected);\n }\n });\n },\n\n performInsertElement: function (query, tagName, position) {\n if (!query || !tagName || !position) {\n return;\n }\n const insertKey = `${query}|${tagName}|${position}`;\n this.setupMutationObserver(query, () => {\n if (this._appliedInserts.has(insertKey)) {\n return;\n }\n const anchor = this.resolveElement(query);\n if (!anchor) {\n return;\n }\n\n let insertAffected = null;\n if (position === \"beforebegin\" || position === \"afterend\") {\n const parent = anchor.parentElement;\n if (parent) {\n const siblings = Array.from(parent.children);\n const anchorIndex = siblings.indexOf(anchor);\n const startIndex =\n position === \"beforebegin\" ? anchorIndex : anchorIndex + 1;\n if (anchorIndex !== -1) {\n insertAffected = siblings.slice(startIndex);\n this._updateStableIdMapForElements(insertAffected);\n }\n }\n } else {\n const children = Array.from(anchor.children);\n const startIndex = position === \"afterbegin\" ? 0 : children.length;\n insertAffected = children.slice(startIndex);\n this._updateStableIdMapForElements(insertAffected);\n }\n\n const inserted = document.createElement(tagName);\n anchor.insertAdjacentElement(position, inserted);\n if (insertAffected) {\n this._updateStableIdMapForElements(insertAffected);\n }\n this._updateStableIdMapForElements([inserted]);\n this._appliedInserts.add(insertKey);\n });\n },\n\n performStyleChange: function (query, style, value) {\n if (!query) {\n return;\n }\n this.setupMutationObserver(query, () => {\n const element = this.resolveElement(query);\n if (!element) {\n return;\n }\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 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(\n (exp) => !exp.value[\"sidecarDisableAutoRun\"]\n )\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 const existingNetworkOverride = options?.networkConfig?.networkOverrideFunc;\n const rewriteStatsigSdkParams = (requestUrl) => {\n try {\n const parsedUrl = new URL(requestUrl);\n parsedUrl.searchParams.set(\"st\", SIDECAR_SDK_TYPE);\n parsedUrl.searchParams.set(\"sv\", SIDECAR_SDK_VERSION);\n return parsedUrl.toString();\n } catch (e) {\n return requestUrl;\n }\n };\n if (initUrlOverride || logUrlOverride) {\n options.networkConfig = {\n ...(options.networkConfig ?? {}),\n initializeUrl: initUrlOverride,\n logEventUrl: logUrlOverride,\n };\n }\n options.networkConfig = {\n ...(options.networkConfig ?? {}),\n networkOverrideFunc: (requestUrl, requestArgs) => {\n const patchedUrl = rewriteStatsigSdkParams(requestUrl);\n if (existingNetworkOverride) {\n return existingNetworkOverride(patchedUrl, requestArgs);\n }\n return fetch(patchedUrl, requestArgs);\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 StatsigMetadataProvider.add({\n sdkType: SIDECAR_SDK_TYPE,\n sdkVersion: SIDECAR_SDK_VERSION,\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","__awaiter","this","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","_isDomainFailure","NetworkFallbackResolver","DnsTxtQuery_1","Hashing_1","Log_1","StorageProvider_1","DEFAULT_TTL_MS","errorMsg","timedOut","_a","lowerErrorMsg","toLowerCase","includes","_getFallbackInfoStorageKey","sdkKey","_DJB2","_tryWriteFallbackInfoToCache","info","hashKey","keys","length","Storage","setItem","JSON","stringify","removeItem","constructor","options","_fallbackInfo","_errorBoundary","_dnsQueryCooldowns","_networkOverrideFunc","networkConfig","networkOverrideFunc","setErrorBoundary","errorBoundary","tryBumpExpiryTime","urlConfig","endpoint","expiryTime","Date","now","assign","getActiveFallbackUrl","_b","customUrl","fallbackUrls","data","getItem","parse","Log","error","_readFallbackInfoFromCache","entry","getChecksum","urlConfigChecksum","url","tryFetchUpdatedFallbackInfo","errorMessage","urls","_tryFetchFallbackUrlsFromNetwork","newUrl","_pickNewFallbackUrl","_updateFallbackInfoWithNewUrl","logError","_c","newFallbackInfo","previous","previousInfo","push","previousUrl","cooldown","records","_fetchTxtRecords","fetch","path","urlString","URL","pathname","_extractPathFromUrl","defaultUrl","record","startsWith","endpointDnsKey","parts","split","baseUrl","endsWith","slice","currentFallbackInfo","previouslyUsed","Set","currentFallbackUrl","found","loopUrl","has","_cloneObject","_getUnloadEvent","_getCurrentPageUrlSafe","_addDocumentEventListenerSafe","_addWindowEventListenerSafe","_isServerEnv","_getDocumentSafe","_getWindowSafe","window","win","document","isNode","process","versions","node","EdgeRuntime","key","listener","addEventListener","doc","location","href","tag","obj","FEATURE_ASSETS_DNS_QUERY","Uint8Array","DOMAIN_CHARS","networkFunc","response","method","headers","Accept","body","ok","err","Error","name","arrayBuffer","start","findIndex","byte","index","String","fromCharCode","i","_parseDnsResponse","_clicks","isRageClick","y","timestamp","filter","click","dx","dy","Math","abs","isCloseEnough","SDKType","SDK_CLIENT","suffix","_get","_setClientType","client","_setBindingType","binding","createMemoKey","MemoPrefix","_gate","_dynamicConfig","_experiment","_configList","_layer","_paramStore","EXIST_KEYS","DO_NOT_MEMO_KEYS","prefix","cacheKey","Diagnostics","MARKER_MAP","Map","ACT_START","ACT_END","_createMarker","action","_addMarker","marker","markers","get","set","_safeGetField","field","_getMarkers","_markInitOverallStart","_markInitOverallEnd","success","evaluationDetails","undefined","message","_markInitNetworkReqStart","_markInitNetworkReqEnd","_markInitProcessStart","_markInitProcessEnd","_clearMarkers","delete","_formatError","code","_getDiagnosticsData","res","attempt","statusCode","status","sdkRegion","isDelta","_enqueueDiagnosticsEvent","user","logger","sdk","overallInitDuration","event","eventName","metadata","time","_makeDiagnosticsEvent","context","statsigOptions","enqueue","UPDATE_DETAIL_ERROR_MESSAGES","createUpdateDetails","source","initDuration","sourceUrl","warnings","duration","NO_NETWORK_DATA","ErrorTag","NetworkError","DeadClickConfig","client_core_1","AutoCaptureEvent_1","commonUtils_1","eventUtils_1","metadataUtils_1","CLICK_CHECK_TIMEOUT","SCROLL_DELAY_MS","SELECTION_CHANGE_DELAY_MS","MUTATION_DELAY_MS","ABSOLUTE_DEAD_CLICK_TIMEOUT","_enqueueFn","_lastMutationTime","_lastSelectionChangeTime","_deadClickConfig","_handleScroll","throttle","scrollTime","forEach","scrollDelayMs","startTracking","_handleClick","capture","passive","_handleSelectionChange","_setupMutationObserver","eventTarget","target","interactiveElements","tagName","_clickCheckTimer","setTimeout","_checkForDeadClick","_observer","MutationObserver","observe","childList","subtree","attributes","characterData","clearTimeout","clicksToCheck","_updateClickDelayMs","hadScroll","hadSelectionChange","selectionChangeDelayMs","hadMutation","mutationDelayMs","scrollTimeout","selectionChangeTimeout","mutationTimeout","absoluteTimeout","absoluteDelayMs","_logDeadClick","extraMetadata","_gatherEventData","AutoCaptureEventName","DEAD_CLICK","_gatherCommonMetadata","_getSafeUrl","AutoCapture_1","enumerable","runStatsigAutoCapture","_getStatsigGlobal","AutoCapture","StatsigAutoCapturePlugin","_getUnitIDFromUser","_getFullUserHash","_normalizeUser","SafeJs_1","original","fallbackEnvironment","copy","statsigEnvironment","environment","tier","_DJB2Object","idType","userID","lowered","customIDs","_setObjectInStorage","_getObjectFromStorage","inMemoryStore","_inMemoryProvider","isReady","isReadyResolver","getProviderName","getAllKeys","_localStorageProvider","localStorage","warn","_main","_current","_inMemoryBreaker","_setProvider","newProvider","_setDisabled","isDisabled","PendingEvents","batchSize","_pendingEvents","_batchSize","addToPendingEventsQueue","debug","hasEventsForFullBatch","takeAll","events","isEmpty","DataAdapterCachePrefix","StatsigEvaluationsDataAdapter","Network_1","DataAdapterCore","super","_network","_options","attach","network","default","getDataAsync","current","_getDataAsyncImpl","prefetchData","_prefetchDataImpl","setData","values","_typedJsonParse","setDataLegacy","_fetchFromNetwork","isCacheValidFor204","fetchEvaluations","_getSdkKey","priority","_getCacheKey","_getStorageKey","customUserCacheKeyFunc","_cacheSuffix","_isCachedResultValidFor204","fullUserHash","NetworkParam","NetworkDefault","Endpoint","_initialize","_rgstr","_download_config_specs","EventCount","SdkKey","SdkType","SdkVersion","Time","SessionID","StatsigEncoded","IsGzipped","getCookieName","StableID","CacheKey_1","UUID_1","PROMISE_MAP","COOKIE_ENABLED_MAP","DISABLED_MAP","_getStableIDStorageKey","_persistToStorage","stableID","storageKey","_persistToCookie","expiryDate","setFullYear","getFullYear","cookie","encodeURIComponent","toUTCString","cookiesEnabled","randomID","random","toString","cookies","trim","decodeURIComponent","_loadFromCookie","_loadFromStorage","getUUID","setOverride","override","_setCookiesEnabled","disabled","_notifyVisibilityChanged","_subscribeToVisiblityChanged","_isUnloading","_isCurrentlyVisible","FOREGROUND","BACKGROUND","LISTENERS","isUnloading","unshift","visibility","l","visibilityState","EvaluationResponseDeltas_1","StatsigNetwork","NetworkCore","emitter","config","_option","_initializeUrlConfig","UrlConfiguration","initializeUrl","api","initializeFallbackUrls","_d","_e","_f","cache","hash","initializeHashAlgorithm","deltasResponseRequested","full_checksum","has_updates","hasHashChanged","hash_used","sinceTime","previousDerivedFields","derived_fields","partialUserMatchSinceTime","_fetchEvaluations","post","retries","isStatsigEncodable","_resolveDeltasResponse","BatchQueue","EventBatch_1","EventRetryConstants_1","EventRetryConstants","DEFAULT_BATCH_SIZE","_batches","requeueBatch","batch","_enqueueBatch","hasFullBatch","some","takeNextBatch","shift","takeAllBatches","batches","createBatches","droppedCount","chunk","EventBatch","droppedEventCount","MAX_PENDING_BATCHES","dropped","isUserActionAutoCaptureEvent","PAGE_VIEW","PAGE_VIEW_END","ERROR","SESSION_START","PERFORMANCE","FORM_SUBMIT","CLICK","RAGE_CLICK","WEB_VITALS","COPY","CONSOLE_LOG","USER_ACTION_EVENTS","_getInstance","_getStatsigGlobalFlag","__STATSIG__","statsigGlobal","flag","gbl","instances","firstInstance","GLOBAL_KEY","_window","_global","g","_globalThis","globalThis","instance","guard","typeName","_getPossibleFirstTouchMetadata","_getNetworkInfo","_gatherAllMetadata","_g","_h","safeDoc","safeWnd","_stripEmptyValues","title","current_url","user_agent","navigator","userAgent","substring","locale","language","hostname","screen_width","screen","width","screen_height","height","viewport_width","innerWidth","viewport_height","innerHeight","viewport","timezone","_getSafeTimezone","timezone_offset","_getSafeTimezoneOffset","navigation_type","_getSafeNavigationType","networkInfo","_getSafeNetworkInformation","effectiveType","rtt","downlink","saveData","getReferrerInfo","referrer","referrer_domain","referrer_path","searchEngine","searchQuery","host","find","searchParams","getCampaignParams","urlParams","campaignParams","p","val","referrerInfo","commonInfo","queryParams","v","k","combined","prefixed","entries","_getSortedObject","TypingUtils_1","charCodeAt","maxLevels","object","maxDepth","sort","sortedObject","StatsigClientBase","__StatsigGlobal_1","ErrorBoundary_1","EventLogger_1","MemoKey_1","SessionID_1","StableID_1","StatsigOptionsCommon_1","adapter","loadingStatus","_initializePromise","_listeners","$emt","bind","logLevel","level","disableStorage","initialSessionID","StatsigSession","overrideInitialSessionID","storageProvider","enableCookies","disableStableID","_sdkKey","_memoCache","overrideAdapter","ErrorBoundary","_logger","EventLogger","wrap","dataAdapter","loadFromStorage","call","catch","_primeReadyRipcord","inst","_assignGlobalInstance","updateRuntimeOptions","loggingEnabled","setLoggingEnabled","disableLogging","logEventCompressionMode","setLogEventCompressionMode","disableCompression","LogEventCompressionMode","Disabled","flush","shutdown","_setStatus","stop","on","off","indexOf","splice","$on","__isInternal","barrier","newStatus","_enqueueExposure","exposure","disableExposureLog","incrementNonExposureCount","_memoize","fn","disableEvaluationMemoization","memoKey","EXCEPTION_ENDPOINT","SDKType_1","StatsigMetadata_1","UNKNOWN_ERROR","_resolveError","_getStatsigOptionLoggingCopy","loggingCopy","option","_emitter","_lastSeenError","_seen","namePrefix","names","proto","getPrototypeOf","prototype","getOwnPropertyNames","prop","add","from","_getAllInstanceMethodNames","args","_capture","$EB","_onError","logDroppedEvents","count","reason","extra","eventCount","logEventRequestFailure","flushType","failurePath","failureErrorMessage","failureDiagnosticBucket","failureDiagnosticMetadata","getLastSeenErrorAndReset","tempError","attachErrorIfNoneExists","task","bypassDedupe","unwrapped","isError","resolvedError","preventAllNetworkTraffic","sdkType","statsigMetadata","StatsigMetadataProvider","stack","_getDescription","exception","func","sdkExceptionUrl","sdkVersion","impl","_error","ConsoleLogManager","consoleLogsUtils_1","ConsoleLogPriority","trace","log","_restoreFns","_isTracking","_logLevel","__source","_maxKeys","maxKeys","_maxDepth","_maxStringLength","maxStringLength","enabled","_patchConsole","stopTracking","restore","console","inStack","wrapFunctionWithRestore","originalFn","payload","map","_safeStringify","_getStackTrace","_enqueueConsoleLog","_shouldLog","log_level","join","sampleRate","_getUserStorageKey","customKeyGenerator","cids","leftKey","rightKey","localeCompare","RETRYABLE_CODES","Diagnostics_1","NetworkConfig_1","NetworkFallbackResolver_1","SDKFlags_1","StatsigClientEventEmitter_1","VisibilityObserving_1","_timeout","_netConfig","_leakyBucket","_lastUsedInitUrl","networkTimeoutMs","_fallbackResolver","_getLogEventCompressionMode","mode","isBeaconSupported","sendBeacon","getLastUsedInitUrlAndReset","tempUrl","beacon","failureInfo","_ensureValidSdkKey","argsInternal","_getInternalRequestArgs","_getPopulatedURL","nav","_tryEncodeBody","_tryToCompressBody","_sendRequest","_isRateLimited","currentAttempt","reqTimedOut","populatedUrl","startTime","keepalive","_tryMarkInitStart","bucket","lastRequestTime","timeoutId","race","finally","_","text","_tryMarkInitEnd","_getErrorMessage","abortedByTimeout","fallbackUrl","requestArgs","formattedErrorMsg","preserveFailedStatusCode","diagnostics","elapsedMs","online","onLine","hasCustomHeaders","crossOrigin","currentOrigin","origin","hasCustomUrl","hasFallbackUrl","elapsedMsBucket","_bucketNumber","bodySizeBucket","byteLength","Blob","size","_getBodySize","_getNoResponseDiagnostics","diagnosticBucket","diagnosticMetadata","r","min","_exponentialBackoff","compressionMode","Enabled","elapsed","leakedRequests","floor","RATE_LIMIT_MAX_REQ_COUNT","max","getUrl","params","SDK_VERSION","query","disableStatsigEncoding","btoa","reverse","isCompressable","CompressionStream","TextEncoder","isProxy","flagEnabled","SDKFlags","Forced","_allowCompression","bytes","encode","stream","writer","writable","getWriter","write","close","reader","readable","getReader","chunks","read","totalLength","reduce","acc","offset","_populateRequestBody","sessionID","thresholds","threshold","__createBinding","create","o","m","k2","desc","getOwnPropertyDescriptor","__esModule","configurable","__exportStar","hasOwnProperty","StatsigClient","StatsigClient_1","BatchedEventsQueue_1","FlushCoordinator_1","PendingEvents_1","StatsigEvent_1","UrlConfiguration_1","EVENT_LOGGER_MAP","_safeFlushAndForget","_batchQueue","_flushCoordinator","_lastExposureTimeMap","_nonExposedChecks","_isShuttingDown","_storageKey","_pendingCompressionMode","_loggingEnabled","LoggingEnabledOption","browserOnly","_logEventUrlConfig","logEventUrl","logEventFallbackUrls","wasDisabled","isNowEnabled","_loadStoredEvents","_initFlushCoordinator","addEvent","_shouldLogEvent","normalizedEvent","_normalizeEvent","checkQuickFlush","_storeEventToStorage","reset","isServerEnv","flushCoordinator","startScheduledFlushCycle","loadAndRetryShutdownFailedEvents","processShutdown","processManualFlush","appendAndResetNonExposedChecks","checks","_isExposureEvent","userKey","_getCurrentPageUrl","includeCurrentPageUrlWithEvents","loggingBufferMaxSize","FlushCoordinator","existingEvents","_getEventsFromStorage","MAX_LOCAL_STORAGE","privateAttributes","extras","currentPage","_makeDataAdapterResult","StatsigUser_1","TypedJsonParse_1","receivedAt","_adapterName","_cacheLimit","_lastModifiedStoreKey","_inMemoryCache","InMemoryCache","getDataSync","normalized","inMem","_getIsCacheValueValid","_loadFromCache","ops","_fetchAndPrepFromNetwork","timeoutMs","cachedResult","cachedData","latest","_writeToCache","resultString","ceil","_runLocalStorageCacheEviction","cacheLimit","lastModifiedTimeMap","evictableKeys","_getEvictableKeys","evictable","_data","cached","provided","merge","limit","keyA","keyB","valueA","valueB","_getMetadataFromElement","_gatherCopyEventData","MAX_ATTRIBUTE_LENGTH","_truncateString","str","maxLength","_getSafeMetadataAttributes","elem","getAttribute","replace","safeAttributes","classList","element","parentNode","id","selector","className","classes","selectors","currentElement","depth","nodeType","Node","ELEMENT_NODE","getElementSelector","parentElement","_generateCssSelector","parent","children","nthChild","nthOfType","sibling","previousElementSibling","nextElementSibling","hasNextSiblingWithSameTag","_getSanitizedPageUrl","_isSensitiveElement","elementMetadata","_getFormMetadata","_getInputMetadata","anchor","_getAnchorNodeInHierarchy","_getAnchorMetadata","textContent","dataset","el","attr","_gatherDatasetProperties","_getButtonMetadata","currentUrl","linkUrl","_isOutboundLink","selectedText","getSelection","_sanitizeString","clipType","type","_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","FLAGMAP","setFlags","flags","flagKey","_fastApproxSizeOf","attempts","createdAt","incrementAttempts","additions","FlushInterval","MIN_FLUSH_INTERVAL_MS","MAX_FLUSH_INTERVAL_MS","_currentIntervalMs","_lastFlushAttemptTime","getCurrentIntervalMs","markFlushAttempt","getTimeSinceLastAttempt","hasReachedMaxInterval","getTimeTillMaxInterval","hasCompletelyRecoveredFromBackoff","adjustForSuccess","adjustForFailure","getTimeUntilNextFlush","MAX_RETRY_ATTEMPTS","TICK_INTERVAL_MS","QUICK_FLUSH_WINDOW_MS","MAX_QUEUED_EVENTS","EngagementManager","_lastScrollY","_maxScrollY","_lastScrollPercentage","_maxScrollPercentage","_lastPageViewTime","_inactiveTimer","_onInactivityCallback","_meaningfulEngagementOccurred","_lastBumpTime","_initializeScrollTracking","scrollHeight","scrollY","documentElement","scrollTop","currentScrollPercentage","round","bumpInactiveTimer","getScrollMetrics","lastScrollY","maxScrollY","lastScrollPercentage","maxScrollPercentage","scrollDepth","getPageViewLength","setLastPageViewTime","startInactivityTracking","callback","setMeaningfulEngagementOccurred","occurred","getPageViewEndMetadata","pageviewEndMetadata","pageViewLength","meaningfulEngagementOccurred","crypto","randomUUID","d","getTime","d2","performance","c","EventSender","logEventUrlConfig","sendBatch","transportFailure","shouldUseBeacon","_sendEventsViaBeacon","_sendEventsViaPost","_getRequestData","credentials","FlushType","_createLayerParameterExposure","_createConfigExposure","_mapExposures","_createGateExposure","CONFIG_EXPOSURE_NAME","GATE_EXPOSURE_NAME","LAYER_EXPOSURE_NAME","_createExposure","details","secondaryExposures","bootstrapMetadata","_addEvaluationDetailsToMetadata","exposures","exposureMapping","gate","gateValue","ruleID","__evaluation","version","secondary_exposures","passed","layer","parameterName","evaluation","isExplicit","explicit_parameters","allocatedExperiment","undelegated_secondary_exposures","allocated_experiment_name","parameterRuleIDs","parameter_rule_ids","isExplicitParameter","lcut","V2InitializeContainer","_values","getGate","evalV2","_getResultFromLookup","rule_id","s","id_type","getConfig","is_user_in_experiment","ue","group_name","gn","is_experiment_active","ea","group","is_device_based","getLayer","ae","ep","us","pr","getParamStore","param_stores","getConfigList","getExposureMapping","lookup","ConsoleLogManager_1","DeadClickManager_1","EngagementManager_1","RageClickManager_1","WebVitalsManager_1","AUTO_EVENT_MAPPING","submit","cut","getContextHandle","acInstances","__plugin","_client","_disabledEvents","_previousLoggedPageViewUrl","_hasLoggedPageViewEnd","_pageViewLogged","auto_capture_settings","disabled_events","_engagementManager","_rageClickManager","_webVitalsManager","WebVitalsManager","_enqueueAutoCapture","_deadClickManager","_consoleLogManager","consoleLogAutoCaptureSettings","_eventFilterFunc","eventFilterFunc","readyState","_addEventHandlers","eventHandler","userAction","_autoLogEvent","MouseEvent","clientX","clientY","_logRageClick","_registerEventHandler","_tryLogPageViewEnd","_addPageViewTracking","_tryLogPageView","history","Proxy","pushState","originalPushState","state","unused","replaceState","originalReplaceState","eventType","ErrorEvent","_logError","_getTargetNode","isCopyEvent","captureCopyText","eventMetadata","allMetadata","_logSessionStart","_logPerformance","errorStr","filename","lineno","colno","error_str","session","getSession","_isNewSession","flushImmediately","navigationType","flushPendingMetrics","_flushImmediately","last","_updateClientWithPossibleFirstTouchMetadata","addNewSessionMetadata","dueToInactivity","getEntriesByType","getEntriesByName","navEntries","PerformanceNavigationTiming","domInteractive","redirectCount","transferSize","fpEntries","PerformancePaintTiming","subname","isUserAction","logMetadata","page_url","logEvent","typedClient","_possibleFirstTouchMetadata","_user","analyticsOnlyMetadata","getAllMetadata","_getSafeUrlString","CC_REGEX","RegExp","SSN_REGEX","parentTagName","fromEntries","srcElement","Element","contains","compStyles","getComputedStyle","getPropertyValue","handler","connection","navEntry","Intl","DateTimeFormat","resolvedOptions","timeZone","getTimezoneOffset","maybeString","_shouldCaptureTextValue","test","lastCall","targetObject","functionName","wrapperFactory","originalFunction","wrappedFunction","V1InitializeContainer_1","V2InitializeContainer_1","_valuesForExternalUse","_source","_lcut","_receivedAt","_bootstrapMetadata","_warnings","clear","finalize","getValues","setValues","response_format","V1InitializeContainer","_extractBootstrapMetadata","_setWarningState","sdk_flags","getWarnings","_getDetailedStoreResult","getSource","sdkInfo","generatorSDKInfo","_getDetails","bootstrapUser","userForComparison","getCurrentSourceDetails","sourceDetails","isUnrecognized","EvaluationStore_1","ParamStoreGetterFactory_1","StatsigEvaluationsDataAdapter_1","getFeatureGate","_getFeatureGateImpl","getDynamicConfig","_getDynamicConfigImpl","getExperiment","_getExperimentImpl","_getConfigListImpl","_getLayerImpl","getParameterStore","_getParameterStoreImpl","_store","_configureUser","_sdkInstanceID","_contextHandle","PrecomputedEvaluationsContextHandle","plugins","plugin","initializeSync","updateUserSync","initializeAsync","_initializeAsyncImpl","_updateUserSyncImpl","_createErrorUpdateDetails","_resetForUser","_finalizeUpdate","disable","disableBackgroundCacheRefresh","_runPostUpdate","updateUserAsync","_updateUserAsyncImpl","initiator","isUsingNetworkValues","getContext","sdkInstanceID","checkGate","eventOrName","updateUserWithAnalyticsOnlyMetadata","originalUser","stableIdOverride","readyPromise","_checkUserHasIdForEvaluation","_checkInitializationStatus","_makeFeatureGate","overridden","getGateOverride","_makeDynamicConfig","getDynamicConfigOverride","dynamicConfig","experiment","_makeExperiment","getExperimentOverride","_makeLayer","getLayerOverride","_mergeOverride","__value","param","configuration","paramStore","__configuration","_makeParamStoreGetter","getParamStoreOverride","always","web_vitals_1","VALID_METRIC_NAMES","_isInitialized","_metricEvent","sanitizedUrl","metrics","firstMetricTimestamp","protocol","onCLS","metric","_handleMetric","onFCP","onINP","onLCP","onTTFB","_enqueueWebVitalsAutoCaptureEvent","metricData","delta","rating","flattenedMetrics","first_metric_timestamp","addTag","LogLevel","None","Warn","Info","Debug","EventSender_1","FlushInterval_1","FlushTypes_1","NetworkCore_1","RETRYABLE_NO_RESPONSE_FAILURE_PATHS","batchQueue","pendingEvents","onPrepareFlush","_cooldownTimer","_maxIntervalTimer","_hasRunQuickFlush","_currentFlushPromise","_creationTime","_flushInterval","_onPrepareFlush","_eventSender","_scheduleNextFlush","stopScheduledFlushCycle","_clearAllTimers","processLimitFlush","_executeFlush","Manual","Shutdown","_prepareQueueForFlush","all","_processOneBatch","_attemptScheduledFlush","shouldFlushBySize","containsAtLeastOneFullBatch","shouldFlushByTime","_scheduleNoopPollTick","ScheduledFullBatch","ScheduledMaxTime","_processNextBatch","_processLimitFlushInternal","Limit","cooldownDelay","checkForIdleSession","maxIntervalDelay","_handleFailure","convertPendingEventsToBatches","loggingInterval","maxPendingBatches","allEvents","_isRetryableBatch","_saveShutdownFailedEventsToStorage","_getShutdownFailedEventsFromStorage","getOptions","getErrorBoundary","getUser","getSdkInstanceID","_getOptions","_getErrorBoundary","_getValues","_getUser","_getSdkInstanceID","bumpSession","toContext","_isObjectTooDeep","maxKeysCount","_shouldNotStringify","_simpleStringify","t","n","persisted","timeStamp","requestAnimationFrame","responseStart","activationStart","prerendering","wasDiscarded","WeakMap","h","hadRecentInput","at","f","PerformanceObserver","supportedEntryTypes","getEntries","buffered","u","removeEventListener","firstHiddenTime","T","disconnect","reportAllChanges","E","L","M","C","interactionId","I","w","interactionCount","entryType","A","requestIdleCallback","once","B","N","S","q","O","CLSThresholds","FCPThresholds","INPThresholds","LCPThresholds","TTFBThresholds","takeRecords","PerformanceEventTiming","durationThreshold","ENDPOINT_DNS_KEY_MAP","customApi","defaultApi","fallbacks","SESSION_MAP","_checkForExpiredSession","sessionExpired","lastUpdate","_isIdle","_hasRunTooLong","_newSessionData","_getSessionIDStorageKey","_persistNow","lastPersistedAt","existing","_loadSessionFromStorage","_loadOrCreateSharedSession","allowSessionBump","_persistThrottled","_maybeBumpSession","_makeTypedGet","_makeEvaluation","exposeFunc","fallback","groupName","LocalOverrideAdapter","LOCAL_OVERRIDE_REASON","_overrides","_getLocalOverridesStorageKey","storedOverrides","overrides","hasInMemoryOverrides","_hasInMemoryOverrides","currentValues","newValues","_saveOverridesToStorage","overrideGate","_warnIfStorageNotReady","removeGateOverride","overrideDynamicConfig","removeDynamicConfigOverride","_getConfigOverride","overrideExperiment","removeExperimentOverride","overrideLayer","removeLayerOverride","overrideParamStore","removeParamStoreOverride","paramType","_inferParamType","ref_type","param_type","getAllOverrides","removeAllOverrides","NO_EXPOSURE_OPT","_shouldLogExposure","_shouldReturnFallback","paramName","_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__","Function","STABLE_ID_ATTRIBUTE","SIDECAR_SDK_TYPE","SIDECAR_SDK_VERSION","sharedStableIdMap","existingSidecar","_statsigInstance","_queuedEvents","_clientInitialized","_redirKey","_stableIdMap","_appliedInserts","activateExperiment","expName","foundExp","_getMatchingExperiments","exp","StatsigSidecar","_performExperiments","findElementToObserve","resolveElement","lastIndexOf","applyStableIdMap","querySelector","hasAttribute","setAttribute","directElement","_ensureStableId","stableId","stableElement","_mergeStableIdMap","stableIdMap","_constructQueryString","child","_updateStableIdMapForElements","elements","_flushQueuedEvents","_getSidecarConfig","statsigSidecarConfig","_emitExperimentEvaluation","onExperimentEvaluation","experimentName","matchingExps","configList","_isMatchingExperiment","getStatsigInstance","filters","_isIOS","_observeMutation","modifierFunc","mutationsList","observer","characterDataOldValue","_observePageChanges","expIds","ps","rs","rerun","runAllExperiments","_performAfterLoad","performAttributeChange","attribute","removeAttrs","setupMutationObserver","removeAttribute","performContentChange","innerHTML","_performDirective","directive","performStyleChange","property","performReorderElement","operator","after","performInsertElement","position","performInjectScript","performInjectStyle","redirectPage","expId","expConfig","directives","script","createElement","scriptNonce","nonce","head","appendChild","style","anchorQuery","targetParent","anchorParent","reorderAffected","siblings","currentIndex","anchorIndex","end","insertAdjacentElement","before","prepend","append","insertKey","insertAffected","startIndex","inserted","setProperty","processEvent","detail","async","resetBody","sbpd","getElementById","removeChild","_runPreExperimentScripts","postExperimentCallback","matchedExps","observeElement","setupStatsigSdk","apiKey","autoStart","initUrlOverride","logUrlOverride","overrideUserID","overrideExp","overrideExpName","statsigUser","existingNetworkOverride","rewriteStatsigSdkParams","requestUrl","parsedUrl","patchedUrl","currentScript","src","multiExpIds","initUrl","logUrl","reduceFlicker","preventDefault"],"sourceRoot":""}
|