@leanbase.com/js 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leanbase.iife.js","sources":["../../core/dist/featureFlagUtils.mjs","../../core/dist/vendor/uuidv7.mjs","../../core/dist/types.mjs","../../core/dist/utils/type-utils.mjs","../../core/dist/utils/promise-queue.mjs","../../core/dist/utils/index.mjs","../../core/dist/eventemitter.mjs","../../core/dist/gzip.mjs","../../core/dist/logger.mjs","../../core/dist/posthog-core-stateless.mjs","../../core/dist/posthog-core.mjs","../src/version.ts","../src/leanbase-logger.ts","../src/leanbase.ts","../src/iife.ts"],"sourcesContent":["const normalizeFlagsResponse = (flagsResponse)=>{\n if ('flags' in flagsResponse) {\n const featureFlags = getFlagValuesFromFlags(flagsResponse.flags);\n const featureFlagPayloads = getPayloadsFromFlags(flagsResponse.flags);\n return {\n ...flagsResponse,\n featureFlags,\n featureFlagPayloads\n };\n }\n {\n const featureFlags = flagsResponse.featureFlags ?? {};\n const featureFlagPayloads = Object.fromEntries(Object.entries(flagsResponse.featureFlagPayloads || {}).map(([k, v])=>[\n k,\n parsePayload(v)\n ]));\n const flags = Object.fromEntries(Object.entries(featureFlags).map(([key, value])=>[\n key,\n getFlagDetailFromFlagAndPayload(key, value, featureFlagPayloads[key])\n ]));\n return {\n ...flagsResponse,\n featureFlags,\n featureFlagPayloads,\n flags\n };\n }\n};\nfunction getFlagDetailFromFlagAndPayload(key, value, payload) {\n return {\n key: key,\n enabled: 'string' == typeof value ? true : value,\n variant: 'string' == typeof value ? value : void 0,\n reason: void 0,\n metadata: {\n id: void 0,\n version: void 0,\n payload: payload ? JSON.stringify(payload) : void 0,\n description: void 0\n }\n };\n}\nconst getFlagValuesFromFlags = (flags)=>Object.fromEntries(Object.entries(flags ?? {}).map(([key, detail])=>[\n key,\n getFeatureFlagValue(detail)\n ]).filter(([, value])=>void 0 !== value));\nconst getPayloadsFromFlags = (flags)=>{\n const safeFlags = flags ?? {};\n return Object.fromEntries(Object.keys(safeFlags).filter((flag)=>{\n const details = safeFlags[flag];\n return details.enabled && details.metadata && void 0 !== details.metadata.payload;\n }).map((flag)=>{\n const payload = safeFlags[flag].metadata?.payload;\n return [\n flag,\n payload ? parsePayload(payload) : void 0\n ];\n }));\n};\nconst getFlagDetailsFromFlagsAndPayloads = (flagsResponse)=>{\n const flags = flagsResponse.featureFlags ?? {};\n const payloads = flagsResponse.featureFlagPayloads ?? {};\n return Object.fromEntries(Object.entries(flags).map(([key, value])=>[\n key,\n {\n key: key,\n enabled: 'string' == typeof value ? true : value,\n variant: 'string' == typeof value ? value : void 0,\n reason: void 0,\n metadata: {\n id: void 0,\n version: void 0,\n payload: payloads?.[key] ? JSON.stringify(payloads[key]) : void 0,\n description: void 0\n }\n }\n ]));\n};\nconst getFeatureFlagValue = (detail)=>void 0 === detail ? void 0 : detail.variant ?? detail.enabled;\nconst parsePayload = (response)=>{\n if ('string' != typeof response) return response;\n try {\n return JSON.parse(response);\n } catch {\n return response;\n }\n};\nconst createFlagsResponseFromFlagsAndPayloads = (featureFlags, featureFlagPayloads)=>{\n const allKeys = [\n ...new Set([\n ...Object.keys(featureFlags ?? {}),\n ...Object.keys(featureFlagPayloads ?? {})\n ])\n ];\n const enabledFlags = allKeys.filter((flag)=>!!featureFlags[flag] || !!featureFlagPayloads[flag]).reduce((res, key)=>(res[key] = featureFlags[key] ?? true, res), {});\n const flagDetails = {\n featureFlags: enabledFlags,\n featureFlagPayloads: featureFlagPayloads ?? {}\n };\n return normalizeFlagsResponse(flagDetails);\n};\nconst updateFlagValue = (flag, value)=>({\n ...flag,\n enabled: getEnabledFromValue(value),\n variant: getVariantFromValue(value)\n });\nfunction getEnabledFromValue(value) {\n return 'string' == typeof value ? true : value;\n}\nfunction getVariantFromValue(value) {\n return 'string' == typeof value ? value : void 0;\n}\nexport { createFlagsResponseFromFlagsAndPayloads, getFeatureFlagValue, getFlagDetailsFromFlagsAndPayloads, getFlagValuesFromFlags, getPayloadsFromFlags, normalizeFlagsResponse, parsePayload, updateFlagValue };\n","/*! For license information please see uuidv7.mjs.LICENSE.txt */\n/**\n * uuidv7: An experimental implementation of the proposed UUID Version 7\n *\n * @license Apache-2.0\n * @copyright 2021-2023 LiosK\n * @packageDocumentation\n */ const DIGITS = \"0123456789abcdef\";\nclass UUID {\n constructor(bytes){\n this.bytes = bytes;\n }\n static ofInner(bytes) {\n if (16 === bytes.length) return new UUID(bytes);\n throw new TypeError(\"not 128-bit length\");\n }\n static fromFieldsV7(unixTsMs, randA, randBHi, randBLo) {\n if (!Number.isInteger(unixTsMs) || !Number.isInteger(randA) || !Number.isInteger(randBHi) || !Number.isInteger(randBLo) || unixTsMs < 0 || randA < 0 || randBHi < 0 || randBLo < 0 || unixTsMs > 0xffffffffffff || randA > 0xfff || randBHi > 0x3fffffff || randBLo > 0xffffffff) throw new RangeError(\"invalid field value\");\n const bytes = new Uint8Array(16);\n bytes[0] = unixTsMs / 2 ** 40;\n bytes[1] = unixTsMs / 2 ** 32;\n bytes[2] = unixTsMs / 2 ** 24;\n bytes[3] = unixTsMs / 2 ** 16;\n bytes[4] = unixTsMs / 256;\n bytes[5] = unixTsMs;\n bytes[6] = 0x70 | randA >>> 8;\n bytes[7] = randA;\n bytes[8] = 0x80 | randBHi >>> 24;\n bytes[9] = randBHi >>> 16;\n bytes[10] = randBHi >>> 8;\n bytes[11] = randBHi;\n bytes[12] = randBLo >>> 24;\n bytes[13] = randBLo >>> 16;\n bytes[14] = randBLo >>> 8;\n bytes[15] = randBLo;\n return new UUID(bytes);\n }\n static parse(uuid) {\n let hex;\n switch(uuid.length){\n case 32:\n hex = /^[0-9a-f]{32}$/i.exec(uuid)?.[0];\n break;\n case 36:\n hex = /^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(uuid)?.slice(1, 6).join(\"\");\n break;\n case 38:\n hex = /^\\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\\}$/i.exec(uuid)?.slice(1, 6).join(\"\");\n break;\n case 45:\n hex = /^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(uuid)?.slice(1, 6).join(\"\");\n break;\n default:\n break;\n }\n if (hex) {\n const inner = new Uint8Array(16);\n for(let i = 0; i < 16; i += 4){\n const n = parseInt(hex.substring(2 * i, 2 * i + 8), 16);\n inner[i + 0] = n >>> 24;\n inner[i + 1] = n >>> 16;\n inner[i + 2] = n >>> 8;\n inner[i + 3] = n;\n }\n return new UUID(inner);\n }\n throw new SyntaxError(\"could not parse UUID string\");\n }\n toString() {\n let text = \"\";\n for(let i = 0; i < this.bytes.length; i++){\n text += DIGITS.charAt(this.bytes[i] >>> 4);\n text += DIGITS.charAt(0xf & this.bytes[i]);\n if (3 === i || 5 === i || 7 === i || 9 === i) text += \"-\";\n }\n return text;\n }\n toHex() {\n let text = \"\";\n for(let i = 0; i < this.bytes.length; i++){\n text += DIGITS.charAt(this.bytes[i] >>> 4);\n text += DIGITS.charAt(0xf & this.bytes[i]);\n }\n return text;\n }\n toJSON() {\n return this.toString();\n }\n getVariant() {\n const n = this.bytes[8] >>> 4;\n if (n < 0) throw new Error(\"unreachable\");\n if (n <= 7) return this.bytes.every((e)=>0 === e) ? \"NIL\" : \"VAR_0\";\n if (n <= 11) return \"VAR_10\";\n if (n <= 13) return \"VAR_110\";\n if (n <= 15) return this.bytes.every((e)=>0xff === e) ? \"MAX\" : \"VAR_RESERVED\";\n else throw new Error(\"unreachable\");\n }\n getVersion() {\n return \"VAR_10\" === this.getVariant() ? this.bytes[6] >>> 4 : void 0;\n }\n clone() {\n return new UUID(this.bytes.slice(0));\n }\n equals(other) {\n return 0 === this.compareTo(other);\n }\n compareTo(other) {\n for(let i = 0; i < 16; i++){\n const diff = this.bytes[i] - other.bytes[i];\n if (0 !== diff) return Math.sign(diff);\n }\n return 0;\n }\n}\nclass V7Generator {\n constructor(randomNumberGenerator){\n this.timestamp = 0;\n this.counter = 0;\n this.random = randomNumberGenerator ?? getDefaultRandom();\n }\n generate() {\n return this.generateOrResetCore(Date.now(), 10000);\n }\n generateOrAbort() {\n return this.generateOrAbortCore(Date.now(), 10000);\n }\n generateOrResetCore(unixTsMs, rollbackAllowance) {\n let value = this.generateOrAbortCore(unixTsMs, rollbackAllowance);\n if (void 0 === value) {\n this.timestamp = 0;\n value = this.generateOrAbortCore(unixTsMs, rollbackAllowance);\n }\n return value;\n }\n generateOrAbortCore(unixTsMs, rollbackAllowance) {\n const MAX_COUNTER = 0x3ffffffffff;\n if (!Number.isInteger(unixTsMs) || unixTsMs < 1 || unixTsMs > 0xffffffffffff) throw new RangeError(\"`unixTsMs` must be a 48-bit positive integer\");\n if (rollbackAllowance < 0 || rollbackAllowance > 0xffffffffffff) throw new RangeError(\"`rollbackAllowance` out of reasonable range\");\n if (unixTsMs > this.timestamp) {\n this.timestamp = unixTsMs;\n this.resetCounter();\n } else {\n if (!(unixTsMs + rollbackAllowance >= this.timestamp)) return;\n this.counter++;\n if (this.counter > MAX_COUNTER) {\n this.timestamp++;\n this.resetCounter();\n }\n }\n return UUID.fromFieldsV7(this.timestamp, Math.trunc(this.counter / 2 ** 30), this.counter & 2 ** 30 - 1, this.random.nextUint32());\n }\n resetCounter() {\n this.counter = 0x400 * this.random.nextUint32() + (0x3ff & this.random.nextUint32());\n }\n generateV4() {\n const bytes = new Uint8Array(Uint32Array.of(this.random.nextUint32(), this.random.nextUint32(), this.random.nextUint32(), this.random.nextUint32()).buffer);\n bytes[6] = 0x40 | bytes[6] >>> 4;\n bytes[8] = 0x80 | bytes[8] >>> 2;\n return UUID.ofInner(bytes);\n }\n}\nconst getDefaultRandom = ()=>({\n nextUint32: ()=>0x10000 * Math.trunc(0x10000 * Math.random()) + Math.trunc(0x10000 * Math.random())\n });\nlet defaultGenerator;\nconst uuidv7 = ()=>uuidv7obj().toString();\nconst uuidv7obj = ()=>(defaultGenerator || (defaultGenerator = new V7Generator())).generate();\nconst uuidv4 = ()=>uuidv4obj().toString();\nconst uuidv4obj = ()=>(defaultGenerator || (defaultGenerator = new V7Generator())).generateV4();\nexport { UUID, V7Generator, uuidv4, uuidv4obj, uuidv7, uuidv7obj };\n","var types_PostHogPersistedProperty = /*#__PURE__*/ function(PostHogPersistedProperty) {\n PostHogPersistedProperty[\"AnonymousId\"] = \"anonymous_id\";\n PostHogPersistedProperty[\"DistinctId\"] = \"distinct_id\";\n PostHogPersistedProperty[\"Props\"] = \"props\";\n PostHogPersistedProperty[\"FeatureFlagDetails\"] = \"feature_flag_details\";\n PostHogPersistedProperty[\"FeatureFlags\"] = \"feature_flags\";\n PostHogPersistedProperty[\"FeatureFlagPayloads\"] = \"feature_flag_payloads\";\n PostHogPersistedProperty[\"BootstrapFeatureFlagDetails\"] = \"bootstrap_feature_flag_details\";\n PostHogPersistedProperty[\"BootstrapFeatureFlags\"] = \"bootstrap_feature_flags\";\n PostHogPersistedProperty[\"BootstrapFeatureFlagPayloads\"] = \"bootstrap_feature_flag_payloads\";\n PostHogPersistedProperty[\"OverrideFeatureFlags\"] = \"override_feature_flags\";\n PostHogPersistedProperty[\"Queue\"] = \"queue\";\n PostHogPersistedProperty[\"OptedOut\"] = \"opted_out\";\n PostHogPersistedProperty[\"SessionId\"] = \"session_id\";\n PostHogPersistedProperty[\"SessionStartTimestamp\"] = \"session_start_timestamp\";\n PostHogPersistedProperty[\"SessionLastTimestamp\"] = \"session_timestamp\";\n PostHogPersistedProperty[\"PersonProperties\"] = \"person_properties\";\n PostHogPersistedProperty[\"GroupProperties\"] = \"group_properties\";\n PostHogPersistedProperty[\"InstalledAppBuild\"] = \"installed_app_build\";\n PostHogPersistedProperty[\"InstalledAppVersion\"] = \"installed_app_version\";\n PostHogPersistedProperty[\"SessionReplay\"] = \"session_replay\";\n PostHogPersistedProperty[\"SurveyLastSeenDate\"] = \"survey_last_seen_date\";\n PostHogPersistedProperty[\"SurveysSeen\"] = \"surveys_seen\";\n PostHogPersistedProperty[\"Surveys\"] = \"surveys\";\n PostHogPersistedProperty[\"RemoteConfig\"] = \"remote_config\";\n PostHogPersistedProperty[\"FlagsEndpointWasHit\"] = \"flags_endpoint_was_hit\";\n return PostHogPersistedProperty;\n}({});\nvar types_Compression = /*#__PURE__*/ function(Compression) {\n Compression[\"GZipJS\"] = \"gzip-js\";\n Compression[\"Base64\"] = \"base64\";\n return Compression;\n}({});\nvar types_SurveyPosition = /*#__PURE__*/ function(SurveyPosition) {\n SurveyPosition[\"TopLeft\"] = \"top_left\";\n SurveyPosition[\"TopCenter\"] = \"top_center\";\n SurveyPosition[\"TopRight\"] = \"top_right\";\n SurveyPosition[\"MiddleLeft\"] = \"middle_left\";\n SurveyPosition[\"MiddleCenter\"] = \"middle_center\";\n SurveyPosition[\"MiddleRight\"] = \"middle_right\";\n SurveyPosition[\"Left\"] = \"left\";\n SurveyPosition[\"Right\"] = \"right\";\n SurveyPosition[\"Center\"] = \"center\";\n return SurveyPosition;\n}({});\nvar types_SurveyWidgetType = /*#__PURE__*/ function(SurveyWidgetType) {\n SurveyWidgetType[\"Button\"] = \"button\";\n SurveyWidgetType[\"Tab\"] = \"tab\";\n SurveyWidgetType[\"Selector\"] = \"selector\";\n return SurveyWidgetType;\n}({});\nvar types_SurveyType = /*#__PURE__*/ function(SurveyType) {\n SurveyType[\"Popover\"] = \"popover\";\n SurveyType[\"API\"] = \"api\";\n SurveyType[\"Widget\"] = \"widget\";\n SurveyType[\"ExternalSurvey\"] = \"external_survey\";\n return SurveyType;\n}({});\nvar types_SurveyQuestionDescriptionContentType = /*#__PURE__*/ function(SurveyQuestionDescriptionContentType) {\n SurveyQuestionDescriptionContentType[\"Html\"] = \"html\";\n SurveyQuestionDescriptionContentType[\"Text\"] = \"text\";\n return SurveyQuestionDescriptionContentType;\n}({});\nvar types_SurveyRatingDisplay = /*#__PURE__*/ function(SurveyRatingDisplay) {\n SurveyRatingDisplay[\"Number\"] = \"number\";\n SurveyRatingDisplay[\"Emoji\"] = \"emoji\";\n return SurveyRatingDisplay;\n}({});\nvar types_SurveyQuestionType = /*#__PURE__*/ function(SurveyQuestionType) {\n SurveyQuestionType[\"Open\"] = \"open\";\n SurveyQuestionType[\"MultipleChoice\"] = \"multiple_choice\";\n SurveyQuestionType[\"SingleChoice\"] = \"single_choice\";\n SurveyQuestionType[\"Rating\"] = \"rating\";\n SurveyQuestionType[\"Link\"] = \"link\";\n return SurveyQuestionType;\n}({});\nvar types_SurveyQuestionBranchingType = /*#__PURE__*/ function(SurveyQuestionBranchingType) {\n SurveyQuestionBranchingType[\"NextQuestion\"] = \"next_question\";\n SurveyQuestionBranchingType[\"End\"] = \"end\";\n SurveyQuestionBranchingType[\"ResponseBased\"] = \"response_based\";\n SurveyQuestionBranchingType[\"SpecificQuestion\"] = \"specific_question\";\n return SurveyQuestionBranchingType;\n}({});\nvar types_SurveyMatchType = /*#__PURE__*/ function(SurveyMatchType) {\n SurveyMatchType[\"Regex\"] = \"regex\";\n SurveyMatchType[\"NotRegex\"] = \"not_regex\";\n SurveyMatchType[\"Exact\"] = \"exact\";\n SurveyMatchType[\"IsNot\"] = \"is_not\";\n SurveyMatchType[\"Icontains\"] = \"icontains\";\n SurveyMatchType[\"NotIcontains\"] = \"not_icontains\";\n return SurveyMatchType;\n}({});\nvar types_ActionStepStringMatching = /*#__PURE__*/ function(ActionStepStringMatching) {\n ActionStepStringMatching[\"Contains\"] = \"contains\";\n ActionStepStringMatching[\"Exact\"] = \"exact\";\n ActionStepStringMatching[\"Regex\"] = \"regex\";\n return ActionStepStringMatching;\n}({});\nconst knownUnsafeEditableEvent = [\n '$snapshot',\n '$pageview',\n '$pageleave',\n '$set',\n 'survey dismissed',\n 'survey sent',\n 'survey shown',\n '$identify',\n '$groupidentify',\n '$create_alias',\n '$$client_ingestion_warning',\n '$web_experiment_applied',\n '$feature_enrollment_update',\n '$feature_flag_called'\n];\nexport { types_ActionStepStringMatching as ActionStepStringMatching, types_Compression as Compression, types_PostHogPersistedProperty as PostHogPersistedProperty, types_SurveyMatchType as SurveyMatchType, types_SurveyPosition as SurveyPosition, types_SurveyQuestionBranchingType as SurveyQuestionBranchingType, types_SurveyQuestionDescriptionContentType as SurveyQuestionDescriptionContentType, types_SurveyQuestionType as SurveyQuestionType, types_SurveyRatingDisplay as SurveyRatingDisplay, types_SurveyType as SurveyType, types_SurveyWidgetType as SurveyWidgetType, knownUnsafeEditableEvent };\n","import { knownUnsafeEditableEvent } from \"../types.mjs\";\nimport { includes } from \"./string-utils.mjs\";\nconst nativeIsArray = Array.isArray;\nconst ObjProto = Object.prototype;\nconst type_utils_hasOwnProperty = ObjProto.hasOwnProperty;\nconst type_utils_toString = ObjProto.toString;\nconst isArray = nativeIsArray || function(obj) {\n return '[object Array]' === type_utils_toString.call(obj);\n};\nconst isFunction = (x)=>'function' == typeof x;\nconst isNativeFunction = (x)=>isFunction(x) && -1 !== x.toString().indexOf('[native code]');\nconst isObject = (x)=>x === Object(x) && !isArray(x);\nconst isEmptyObject = (x)=>{\n if (isObject(x)) {\n for(const key in x)if (type_utils_hasOwnProperty.call(x, key)) return false;\n return true;\n }\n return false;\n};\nconst isUndefined = (x)=>void 0 === x;\nconst isString = (x)=>'[object String]' == type_utils_toString.call(x);\nconst isEmptyString = (x)=>isString(x) && 0 === x.trim().length;\nconst isNull = (x)=>null === x;\nconst isNullish = (x)=>isUndefined(x) || isNull(x);\nconst isNumber = (x)=>'[object Number]' == type_utils_toString.call(x);\nconst isBoolean = (x)=>'[object Boolean]' === type_utils_toString.call(x);\nconst isFormData = (x)=>x instanceof FormData;\nconst isFile = (x)=>x instanceof File;\nconst isPlainError = (x)=>x instanceof Error;\nconst isKnownUnsafeEditableEvent = (x)=>includes(knownUnsafeEditableEvent, x);\nfunction isInstanceOf(candidate, base) {\n try {\n return candidate instanceof base;\n } catch {\n return false;\n }\n}\nfunction isPrimitive(value) {\n return null === value || 'object' != typeof value;\n}\nfunction isBuiltin(candidate, className) {\n return Object.prototype.toString.call(candidate) === `[object ${className}]`;\n}\nfunction isError(candidate) {\n switch(Object.prototype.toString.call(candidate)){\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n case '[object DOMError]':\n case '[object WebAssembly.Exception]':\n return true;\n default:\n return isInstanceOf(candidate, Error);\n }\n}\nfunction isErrorEvent(event) {\n return isBuiltin(event, 'ErrorEvent');\n}\nfunction isEvent(candidate) {\n return !isUndefined(Event) && isInstanceOf(candidate, Event);\n}\nfunction isPlainObject(candidate) {\n return isBuiltin(candidate, 'Object');\n}\nconst yesLikeValues = [\n true,\n 'true',\n 1,\n '1',\n 'yes'\n];\nconst isYesLike = (val)=>includes(yesLikeValues, val);\nconst noLikeValues = [\n false,\n 'false',\n 0,\n '0',\n 'no'\n];\nconst isNoLike = (val)=>includes(noLikeValues, val);\nexport { type_utils_hasOwnProperty as hasOwnProperty, isArray, isBoolean, isBuiltin, isEmptyObject, isEmptyString, isError, isErrorEvent, isEvent, isFile, isFormData, isFunction, isInstanceOf, isKnownUnsafeEditableEvent, isNativeFunction, isNoLike, isNull, isNullish, isNumber, isObject, isPlainError, isPlainObject, isPrimitive, isString, isUndefined, isYesLike, noLikeValues, yesLikeValues };\n","import { uuidv7 } from \"../vendor/uuidv7.mjs\";\nclass PromiseQueue {\n add(promise) {\n const promiseUUID = uuidv7();\n this.promiseByIds[promiseUUID] = promise;\n promise.catch(()=>{}).finally(()=>{\n delete this.promiseByIds[promiseUUID];\n });\n return promise;\n }\n async join() {\n let promises = Object.values(this.promiseByIds);\n let length = promises.length;\n while(length > 0){\n await Promise.all(promises);\n promises = Object.values(this.promiseByIds);\n length = promises.length;\n }\n }\n get length() {\n return Object.keys(this.promiseByIds).length;\n }\n constructor(){\n this.promiseByIds = {};\n }\n}\nexport { PromiseQueue };\n","export * from \"./bucketed-rate-limiter.mjs\";\nexport * from \"./number-utils.mjs\";\nexport * from \"./string-utils.mjs\";\nexport * from \"./type-utils.mjs\";\nexport * from \"./promise-queue.mjs\";\nconst STRING_FORMAT = 'utf8';\nfunction assert(truthyValue, message) {\n if (!truthyValue || 'string' != typeof truthyValue || isEmpty(truthyValue)) throw new Error(message);\n}\nfunction isEmpty(truthyValue) {\n if (0 === truthyValue.trim().length) return true;\n return false;\n}\nfunction removeTrailingSlash(url) {\n return url?.replace(/\\/+$/, '');\n}\nasync function retriable(fn, props) {\n let lastError = null;\n for(let i = 0; i < props.retryCount + 1; i++){\n if (i > 0) await new Promise((r)=>setTimeout(r, props.retryDelay));\n try {\n const res = await fn();\n return res;\n } catch (e) {\n lastError = e;\n if (!props.retryCheck(e)) throw e;\n }\n }\n throw lastError;\n}\nfunction currentTimestamp() {\n return new Date().getTime();\n}\nfunction currentISOTime() {\n return new Date().toISOString();\n}\nfunction safeSetTimeout(fn, timeout) {\n const t = setTimeout(fn, timeout);\n t?.unref && t?.unref();\n return t;\n}\nconst isPromise = (obj)=>obj && 'function' == typeof obj.then;\nconst isError = (x)=>x instanceof Error;\nfunction getFetch() {\n return 'undefined' != typeof fetch ? fetch : void 0 !== globalThis.fetch ? globalThis.fetch : void 0;\n}\nfunction allSettled(promises) {\n return Promise.all(promises.map((p)=>(p ?? Promise.resolve()).then((value)=>({\n status: 'fulfilled',\n value\n }), (reason)=>({\n status: 'rejected',\n reason\n }))));\n}\nexport { STRING_FORMAT, allSettled, assert, currentISOTime, currentTimestamp, getFetch, isError, isPromise, removeTrailingSlash, retriable, safeSetTimeout };\n","class SimpleEventEmitter {\n constructor(){\n this.events = {};\n this.events = {};\n }\n on(event, listener) {\n if (!this.events[event]) this.events[event] = [];\n this.events[event].push(listener);\n return ()=>{\n this.events[event] = this.events[event].filter((x)=>x !== listener);\n };\n }\n emit(event, payload) {\n for (const listener of this.events[event] || [])listener(payload);\n for (const listener of this.events['*'] || [])listener(event, payload);\n }\n}\nexport { SimpleEventEmitter };\n","function isGzipSupported() {\n return 'CompressionStream' in globalThis;\n}\nasync function gzipCompress(input, isDebug = true) {\n try {\n const dataStream = new Blob([\n input\n ], {\n type: 'text/plain'\n }).stream();\n const compressedStream = dataStream.pipeThrough(new CompressionStream('gzip'));\n return await new Response(compressedStream).blob();\n } catch (error) {\n if (isDebug) console.error('Failed to gzip compress data', error);\n return null;\n }\n}\nexport { gzipCompress, isGzipSupported };\n","function createConsole(consoleLike = console) {\n const lockedMethods = {\n log: consoleLike.log.bind(consoleLike),\n warn: consoleLike.warn.bind(consoleLike),\n error: consoleLike.error.bind(consoleLike),\n debug: consoleLike.debug.bind(consoleLike)\n };\n return lockedMethods;\n}\nconst _createLogger = (prefix, maybeCall, consoleLike)=>{\n function _log(level, ...args) {\n maybeCall(()=>{\n const consoleMethod = consoleLike[level];\n consoleMethod(prefix, ...args);\n });\n }\n const logger = {\n info: (...args)=>{\n _log('log', ...args);\n },\n warn: (...args)=>{\n _log('warn', ...args);\n },\n error: (...args)=>{\n _log('error', ...args);\n },\n critical: (...args)=>{\n consoleLike['error'](prefix, ...args);\n },\n createLogger: (additionalPrefix)=>_createLogger(`${prefix} ${additionalPrefix}`, maybeCall, consoleLike)\n };\n return logger;\n};\nfunction createLogger(prefix, maybeCall) {\n return _createLogger(prefix, maybeCall, createConsole());\n}\nexport { _createLogger, createLogger };\n","import { SimpleEventEmitter } from \"./eventemitter.mjs\";\nimport { getFeatureFlagValue, normalizeFlagsResponse } from \"./featureFlagUtils.mjs\";\nimport { gzipCompress, isGzipSupported } from \"./gzip.mjs\";\nimport { createLogger } from \"./logger.mjs\";\nimport { PostHogPersistedProperty } from \"./types.mjs\";\nimport { PromiseQueue, STRING_FORMAT, allSettled, assert, currentISOTime, removeTrailingSlash, retriable, safeSetTimeout } from \"./utils/index.mjs\";\nimport { uuidv7 } from \"./vendor/uuidv7.mjs\";\nclass PostHogFetchHttpError extends Error {\n constructor(response, reqByteLength){\n super('HTTP error while fetching PostHog: status=' + response.status + ', reqByteLength=' + reqByteLength), this.response = response, this.reqByteLength = reqByteLength, this.name = 'PostHogFetchHttpError';\n }\n get status() {\n return this.response.status;\n }\n get text() {\n return this.response.text();\n }\n get json() {\n return this.response.json();\n }\n}\nclass PostHogFetchNetworkError extends Error {\n constructor(error){\n super('Network error while fetching PostHog', error instanceof Error ? {\n cause: error\n } : {}), this.error = error, this.name = 'PostHogFetchNetworkError';\n }\n}\nconst maybeAdd = (key, value)=>void 0 !== value ? {\n [key]: value\n } : {};\nasync function logFlushError(err) {\n if (err instanceof PostHogFetchHttpError) {\n let text = '';\n try {\n text = await err.text;\n } catch {}\n console.error(`Error while flushing PostHog: message=${err.message}, response body=${text}`, err);\n } else console.error('Error while flushing PostHog', err);\n return Promise.resolve();\n}\nfunction isPostHogFetchError(err) {\n return 'object' == typeof err && (err instanceof PostHogFetchHttpError || err instanceof PostHogFetchNetworkError);\n}\nfunction isPostHogFetchContentTooLargeError(err) {\n return 'object' == typeof err && err instanceof PostHogFetchHttpError && 413 === err.status;\n}\nvar posthog_core_stateless_QuotaLimitedFeature = /*#__PURE__*/ function(QuotaLimitedFeature) {\n QuotaLimitedFeature[\"FeatureFlags\"] = \"feature_flags\";\n QuotaLimitedFeature[\"Recordings\"] = \"recordings\";\n return QuotaLimitedFeature;\n}({});\nclass PostHogCoreStateless {\n constructor(apiKey, options = {}){\n this.flushPromise = null;\n this.shutdownPromise = null;\n this.promiseQueue = new PromiseQueue();\n this._events = new SimpleEventEmitter();\n this._isInitialized = false;\n assert(apiKey, \"You must pass your PostHog project's api key.\");\n this.apiKey = apiKey;\n this.host = removeTrailingSlash(options.host || 'https://us.i.posthog.com');\n this.flushAt = options.flushAt ? Math.max(options.flushAt, 1) : 20;\n this.maxBatchSize = Math.max(this.flushAt, options.maxBatchSize ?? 100);\n this.maxQueueSize = Math.max(this.flushAt, options.maxQueueSize ?? 1000);\n this.flushInterval = options.flushInterval ?? 10000;\n this.preloadFeatureFlags = options.preloadFeatureFlags ?? true;\n this.defaultOptIn = options.defaultOptIn ?? true;\n this.disableSurveys = options.disableSurveys ?? false;\n this._retryOptions = {\n retryCount: options.fetchRetryCount ?? 3,\n retryDelay: options.fetchRetryDelay ?? 3000,\n retryCheck: isPostHogFetchError\n };\n this.requestTimeout = options.requestTimeout ?? 10000;\n this.featureFlagsRequestTimeoutMs = options.featureFlagsRequestTimeoutMs ?? 3000;\n this.remoteConfigRequestTimeoutMs = options.remoteConfigRequestTimeoutMs ?? 3000;\n this.disableGeoip = options.disableGeoip ?? true;\n this.disabled = options.disabled ?? false;\n this.historicalMigration = options?.historicalMigration ?? false;\n this.evaluationEnvironments = options?.evaluationEnvironments;\n this._initPromise = Promise.resolve();\n this._isInitialized = true;\n this._logger = createLogger('[PostHog]', this.logMsgIfDebug.bind(this));\n this.disableCompression = !isGzipSupported() || (options?.disableCompression ?? false);\n }\n logMsgIfDebug(fn) {\n if (this.isDebug) fn();\n }\n wrap(fn) {\n if (this.disabled) return void this._logger.warn('The client is disabled');\n if (this._isInitialized) return fn();\n this._initPromise.then(()=>fn());\n }\n getCommonEventProperties() {\n return {\n $lib: this.getLibraryId(),\n $lib_version: this.getLibraryVersion()\n };\n }\n get optedOut() {\n return this.getPersistedProperty(PostHogPersistedProperty.OptedOut) ?? !this.defaultOptIn;\n }\n async optIn() {\n this.wrap(()=>{\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, false);\n });\n }\n async optOut() {\n this.wrap(()=>{\n this.setPersistedProperty(PostHogPersistedProperty.OptedOut, true);\n });\n }\n on(event, cb) {\n return this._events.on(event, cb);\n }\n debug(enabled = true) {\n this.removeDebugCallback?.();\n if (enabled) {\n const removeDebugCallback = this.on('*', (event, payload)=>this._logger.info(event, payload));\n this.removeDebugCallback = ()=>{\n removeDebugCallback();\n this.removeDebugCallback = void 0;\n };\n }\n }\n get isDebug() {\n return !!this.removeDebugCallback;\n }\n get isDisabled() {\n return this.disabled;\n }\n buildPayload(payload) {\n return {\n distinct_id: payload.distinct_id,\n event: payload.event,\n properties: {\n ...payload.properties || {},\n ...this.getCommonEventProperties()\n }\n };\n }\n addPendingPromise(promise) {\n return this.promiseQueue.add(promise);\n }\n identifyStateless(distinctId, properties, options) {\n this.wrap(()=>{\n const payload = {\n ...this.buildPayload({\n distinct_id: distinctId,\n event: '$identify',\n properties\n })\n };\n this.enqueue('identify', payload, options);\n });\n }\n async identifyStatelessImmediate(distinctId, properties, options) {\n const payload = {\n ...this.buildPayload({\n distinct_id: distinctId,\n event: '$identify',\n properties\n })\n };\n await this.sendImmediate('identify', payload, options);\n }\n captureStateless(distinctId, event, properties, options) {\n this.wrap(()=>{\n const payload = this.buildPayload({\n distinct_id: distinctId,\n event,\n properties\n });\n this.enqueue('capture', payload, options);\n });\n }\n async captureStatelessImmediate(distinctId, event, properties, options) {\n const payload = this.buildPayload({\n distinct_id: distinctId,\n event,\n properties\n });\n await this.sendImmediate('capture', payload, options);\n }\n aliasStateless(alias, distinctId, properties, options) {\n this.wrap(()=>{\n const payload = this.buildPayload({\n event: '$create_alias',\n distinct_id: distinctId,\n properties: {\n ...properties || {},\n distinct_id: distinctId,\n alias\n }\n });\n this.enqueue('alias', payload, options);\n });\n }\n async aliasStatelessImmediate(alias, distinctId, properties, options) {\n const payload = this.buildPayload({\n event: '$create_alias',\n distinct_id: distinctId,\n properties: {\n ...properties || {},\n distinct_id: distinctId,\n alias\n }\n });\n await this.sendImmediate('alias', payload, options);\n }\n groupIdentifyStateless(groupType, groupKey, groupProperties, options, distinctId, eventProperties) {\n this.wrap(()=>{\n const payload = this.buildPayload({\n distinct_id: distinctId || `$${groupType}_${groupKey}`,\n event: '$groupidentify',\n properties: {\n $group_type: groupType,\n $group_key: groupKey,\n $group_set: groupProperties || {},\n ...eventProperties || {}\n }\n });\n this.enqueue('capture', payload, options);\n });\n }\n async getRemoteConfig() {\n await this._initPromise;\n let host = this.host;\n if ('https://us.i.posthog.com' === host) host = 'https://us-assets.i.posthog.com';\n else if ('https://eu.i.posthog.com' === host) host = 'https://eu-assets.i.posthog.com';\n const url = `${host}/array/${this.apiKey}/config`;\n const fetchOptions = {\n method: 'GET',\n headers: {\n ...this.getCustomHeaders(),\n 'Content-Type': 'application/json'\n }\n };\n return this.fetchWithRetry(url, fetchOptions, {\n retryCount: 0\n }, this.remoteConfigRequestTimeoutMs).then((response)=>response.json()).catch((error)=>{\n this._logger.error('Remote config could not be loaded', error);\n this._events.emit('error', error);\n });\n }\n async getFlags(distinctId, groups = {}, personProperties = {}, groupProperties = {}, extraPayload = {}, fetchConfig = true) {\n await this._initPromise;\n const configParam = fetchConfig ? '&config=true' : '';\n const url = `${this.host}/flags/?v=2${configParam}`;\n const requestData = {\n token: this.apiKey,\n distinct_id: distinctId,\n groups,\n person_properties: personProperties,\n group_properties: groupProperties,\n ...extraPayload\n };\n if (this.evaluationEnvironments && this.evaluationEnvironments.length > 0) requestData.evaluation_environments = this.evaluationEnvironments;\n const fetchOptions = {\n method: 'POST',\n headers: {\n ...this.getCustomHeaders(),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify(requestData)\n };\n this._logger.info('Flags URL', url);\n return this.fetchWithRetry(url, fetchOptions, {\n retryCount: 0\n }, this.featureFlagsRequestTimeoutMs).then((response)=>response.json()).then((response)=>normalizeFlagsResponse(response)).catch((error)=>{\n this._events.emit('error', error);\n });\n }\n async getFeatureFlagStateless(key, distinctId, groups = {}, personProperties = {}, groupProperties = {}, disableGeoip) {\n await this._initPromise;\n const flagDetailResponse = await this.getFeatureFlagDetailStateless(key, distinctId, groups, personProperties, groupProperties, disableGeoip);\n if (void 0 === flagDetailResponse) return {\n response: void 0,\n requestId: void 0\n };\n let response = getFeatureFlagValue(flagDetailResponse.response);\n if (void 0 === response) response = false;\n return {\n response,\n requestId: flagDetailResponse.requestId\n };\n }\n async getFeatureFlagDetailStateless(key, distinctId, groups = {}, personProperties = {}, groupProperties = {}, disableGeoip) {\n await this._initPromise;\n const flagsResponse = await this.getFeatureFlagDetailsStateless(distinctId, groups, personProperties, groupProperties, disableGeoip, [\n key\n ]);\n if (void 0 === flagsResponse) return;\n const featureFlags = flagsResponse.flags;\n const flagDetail = featureFlags[key];\n return {\n response: flagDetail,\n requestId: flagsResponse.requestId\n };\n }\n async getFeatureFlagPayloadStateless(key, distinctId, groups = {}, personProperties = {}, groupProperties = {}, disableGeoip) {\n await this._initPromise;\n const payloads = await this.getFeatureFlagPayloadsStateless(distinctId, groups, personProperties, groupProperties, disableGeoip, [\n key\n ]);\n if (!payloads) return;\n const response = payloads[key];\n if (void 0 === response) return null;\n return response;\n }\n async getFeatureFlagPayloadsStateless(distinctId, groups = {}, personProperties = {}, groupProperties = {}, disableGeoip, flagKeysToEvaluate) {\n await this._initPromise;\n const payloads = (await this.getFeatureFlagsAndPayloadsStateless(distinctId, groups, personProperties, groupProperties, disableGeoip, flagKeysToEvaluate)).payloads;\n return payloads;\n }\n async getFeatureFlagsStateless(distinctId, groups = {}, personProperties = {}, groupProperties = {}, disableGeoip, flagKeysToEvaluate) {\n await this._initPromise;\n return await this.getFeatureFlagsAndPayloadsStateless(distinctId, groups, personProperties, groupProperties, disableGeoip, flagKeysToEvaluate);\n }\n async getFeatureFlagsAndPayloadsStateless(distinctId, groups = {}, personProperties = {}, groupProperties = {}, disableGeoip, flagKeysToEvaluate) {\n await this._initPromise;\n const featureFlagDetails = await this.getFeatureFlagDetailsStateless(distinctId, groups, personProperties, groupProperties, disableGeoip, flagKeysToEvaluate);\n if (!featureFlagDetails) return {\n flags: void 0,\n payloads: void 0,\n requestId: void 0\n };\n return {\n flags: featureFlagDetails.featureFlags,\n payloads: featureFlagDetails.featureFlagPayloads,\n requestId: featureFlagDetails.requestId\n };\n }\n async getFeatureFlagDetailsStateless(distinctId, groups = {}, personProperties = {}, groupProperties = {}, disableGeoip, flagKeysToEvaluate) {\n await this._initPromise;\n const extraPayload = {};\n if (disableGeoip ?? this.disableGeoip) extraPayload['geoip_disable'] = true;\n if (flagKeysToEvaluate) extraPayload['flag_keys_to_evaluate'] = flagKeysToEvaluate;\n const flagsResponse = await this.getFlags(distinctId, groups, personProperties, groupProperties, extraPayload);\n if (void 0 === flagsResponse) return;\n if (flagsResponse.errorsWhileComputingFlags) console.error('[FEATURE FLAGS] Error while computing feature flags, some flags may be missing or incorrect. Learn more at https://posthog.com/docs/feature-flags/best-practices');\n if (flagsResponse.quotaLimited?.includes(\"feature_flags\")) {\n console.warn('[FEATURE FLAGS] Feature flags quota limit exceeded - feature flags unavailable. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts');\n return {\n flags: {},\n featureFlags: {},\n featureFlagPayloads: {},\n requestId: flagsResponse?.requestId\n };\n }\n return flagsResponse;\n }\n async getSurveysStateless() {\n await this._initPromise;\n if (true === this.disableSurveys) {\n this._logger.info('Loading surveys is disabled.');\n return [];\n }\n const url = `${this.host}/api/surveys/?token=${this.apiKey}`;\n const fetchOptions = {\n method: 'GET',\n headers: {\n ...this.getCustomHeaders(),\n 'Content-Type': 'application/json'\n }\n };\n const response = await this.fetchWithRetry(url, fetchOptions).then((response)=>{\n if (200 !== response.status || !response.json) {\n const msg = `Surveys API could not be loaded: ${response.status}`;\n const error = new Error(msg);\n this._logger.error(error);\n this._events.emit('error', new Error(msg));\n return;\n }\n return response.json();\n }).catch((error)=>{\n this._logger.error('Surveys API could not be loaded', error);\n this._events.emit('error', error);\n });\n const newSurveys = response?.surveys;\n if (newSurveys) this._logger.info('Surveys fetched from API: ', JSON.stringify(newSurveys));\n return newSurveys ?? [];\n }\n get props() {\n if (!this._props) this._props = this.getPersistedProperty(PostHogPersistedProperty.Props);\n return this._props || {};\n }\n set props(val) {\n this._props = val;\n }\n async register(properties) {\n this.wrap(()=>{\n this.props = {\n ...this.props,\n ...properties\n };\n this.setPersistedProperty(PostHogPersistedProperty.Props, this.props);\n });\n }\n async unregister(property) {\n this.wrap(()=>{\n delete this.props[property];\n this.setPersistedProperty(PostHogPersistedProperty.Props, this.props);\n });\n }\n enqueue(type, _message, options) {\n this.wrap(()=>{\n if (this.optedOut) return void this._events.emit(type, \"Library is disabled. Not sending event. To re-enable, call posthog.optIn()\");\n const message = this.prepareMessage(type, _message, options);\n const queue = this.getPersistedProperty(PostHogPersistedProperty.Queue) || [];\n if (queue.length >= this.maxQueueSize) {\n queue.shift();\n this._logger.info('Queue is full, the oldest event is dropped.');\n }\n queue.push({\n message\n });\n this.setPersistedProperty(PostHogPersistedProperty.Queue, queue);\n this._events.emit(type, message);\n if (queue.length >= this.flushAt) this.flushBackground();\n if (this.flushInterval && !this._flushTimer) this._flushTimer = safeSetTimeout(()=>this.flushBackground(), this.flushInterval);\n });\n }\n async sendImmediate(type, _message, options) {\n if (this.disabled) return void this._logger.warn('The client is disabled');\n if (!this._isInitialized) await this._initPromise;\n if (this.optedOut) return void this._events.emit(type, \"Library is disabled. Not sending event. To re-enable, call posthog.optIn()\");\n const data = {\n api_key: this.apiKey,\n batch: [\n this.prepareMessage(type, _message, options)\n ],\n sent_at: currentISOTime()\n };\n if (this.historicalMigration) data.historical_migration = true;\n const payload = JSON.stringify(data);\n const url = `${this.host}/batch/`;\n const gzippedPayload = this.disableCompression ? null : await gzipCompress(payload, this.isDebug);\n const fetchOptions = {\n method: 'POST',\n headers: {\n ...this.getCustomHeaders(),\n 'Content-Type': 'application/json',\n ...null !== gzippedPayload && {\n 'Content-Encoding': 'gzip'\n }\n },\n body: gzippedPayload || payload\n };\n try {\n await this.fetchWithRetry(url, fetchOptions);\n } catch (err) {\n this._events.emit('error', err);\n }\n }\n prepareMessage(type, _message, options) {\n const message = {\n ..._message,\n type: type,\n library: this.getLibraryId(),\n library_version: this.getLibraryVersion(),\n timestamp: options?.timestamp ? options?.timestamp : currentISOTime(),\n uuid: options?.uuid ? options.uuid : uuidv7()\n };\n const addGeoipDisableProperty = options?.disableGeoip ?? this.disableGeoip;\n if (addGeoipDisableProperty) {\n if (!message.properties) message.properties = {};\n message['properties']['$geoip_disable'] = true;\n }\n if (message.distinctId) {\n message.distinct_id = message.distinctId;\n delete message.distinctId;\n }\n return message;\n }\n clearFlushTimer() {\n if (this._flushTimer) {\n clearTimeout(this._flushTimer);\n this._flushTimer = void 0;\n }\n }\n flushBackground() {\n this.flush().catch(async (err)=>{\n await logFlushError(err);\n });\n }\n async flush() {\n const nextFlushPromise = allSettled([\n this.flushPromise\n ]).then(()=>this._flush());\n this.flushPromise = nextFlushPromise;\n this.addPendingPromise(nextFlushPromise);\n allSettled([\n nextFlushPromise\n ]).then(()=>{\n if (this.flushPromise === nextFlushPromise) this.flushPromise = null;\n });\n return nextFlushPromise;\n }\n getCustomHeaders() {\n const customUserAgent = this.getCustomUserAgent();\n const headers = {};\n if (customUserAgent && '' !== customUserAgent) headers['User-Agent'] = customUserAgent;\n return headers;\n }\n async _flush() {\n this.clearFlushTimer();\n await this._initPromise;\n let queue = this.getPersistedProperty(PostHogPersistedProperty.Queue) || [];\n if (!queue.length) return;\n const sentMessages = [];\n const originalQueueLength = queue.length;\n while(queue.length > 0 && sentMessages.length < originalQueueLength){\n const batchItems = queue.slice(0, this.maxBatchSize);\n const batchMessages = batchItems.map((item)=>item.message);\n const persistQueueChange = ()=>{\n const refreshedQueue = this.getPersistedProperty(PostHogPersistedProperty.Queue) || [];\n const newQueue = refreshedQueue.slice(batchItems.length);\n this.setPersistedProperty(PostHogPersistedProperty.Queue, newQueue);\n queue = newQueue;\n };\n const data = {\n api_key: this.apiKey,\n batch: batchMessages,\n sent_at: currentISOTime()\n };\n if (this.historicalMigration) data.historical_migration = true;\n const payload = JSON.stringify(data);\n const url = `${this.host}/batch/`;\n const gzippedPayload = this.disableCompression ? null : await gzipCompress(payload, this.isDebug);\n const fetchOptions = {\n method: 'POST',\n headers: {\n ...this.getCustomHeaders(),\n 'Content-Type': 'application/json',\n ...null !== gzippedPayload && {\n 'Content-Encoding': 'gzip'\n }\n },\n body: gzippedPayload || payload\n };\n const retryOptions = {\n retryCheck: (err)=>{\n if (isPostHogFetchContentTooLargeError(err)) return false;\n return isPostHogFetchError(err);\n }\n };\n try {\n await this.fetchWithRetry(url, fetchOptions, retryOptions);\n } catch (err) {\n if (isPostHogFetchContentTooLargeError(err) && batchMessages.length > 1) {\n this.maxBatchSize = Math.max(1, Math.floor(batchMessages.length / 2));\n this._logger.warn(`Received 413 when sending batch of size ${batchMessages.length}, reducing batch size to ${this.maxBatchSize}`);\n continue;\n }\n if (!(err instanceof PostHogFetchNetworkError)) persistQueueChange();\n this._events.emit('error', err);\n throw err;\n }\n persistQueueChange();\n sentMessages.push(...batchMessages);\n }\n this._events.emit('flush', sentMessages);\n }\n async fetchWithRetry(url, options, retryOptions, requestTimeout) {\n AbortSignal.timeout ??= function(ms) {\n const ctrl = new AbortController();\n setTimeout(()=>ctrl.abort(), ms);\n return ctrl.signal;\n };\n const body = options.body ? options.body : '';\n let reqByteLength = -1;\n try {\n reqByteLength = body instanceof Blob ? body.size : Buffer.byteLength(body, STRING_FORMAT);\n } catch {\n if (body instanceof Blob) reqByteLength = body.size;\n else {\n const encoded = new TextEncoder().encode(body);\n reqByteLength = encoded.length;\n }\n }\n return await retriable(async ()=>{\n let res = null;\n try {\n res = await this.fetch(url, {\n signal: AbortSignal.timeout(requestTimeout ?? this.requestTimeout),\n ...options\n });\n } catch (e) {\n throw new PostHogFetchNetworkError(e);\n }\n const isNoCors = 'no-cors' === options.mode;\n if (!isNoCors && (res.status < 200 || res.status >= 400)) throw new PostHogFetchHttpError(res, reqByteLength);\n return res;\n }, {\n ...this._retryOptions,\n ...retryOptions\n });\n }\n async _shutdown(shutdownTimeoutMs = 30000) {\n await this._initPromise;\n let hasTimedOut = false;\n this.clearFlushTimer();\n const doShutdown = async ()=>{\n try {\n await this.promiseQueue.join();\n while(true){\n const queue = this.getPersistedProperty(PostHogPersistedProperty.Queue) || [];\n if (0 === queue.length) break;\n await this.flush();\n if (hasTimedOut) break;\n }\n } catch (e) {\n if (!isPostHogFetchError(e)) throw e;\n await logFlushError(e);\n }\n };\n return Promise.race([\n new Promise((_, reject)=>{\n safeSetTimeout(()=>{\n this._logger.error('Timed out while shutting down PostHog');\n hasTimedOut = true;\n reject('Timeout while shutting down PostHog. Some events may not have been sent.');\n }, shutdownTimeoutMs);\n }),\n doShutdown()\n ]);\n }\n async shutdown(shutdownTimeoutMs = 30000) {\n if (this.shutdownPromise) this._logger.warn('shutdown() called while already shutting down. shutdown() is meant to be called once before process exit - use flush() for per-request cleanup');\n else this.shutdownPromise = this._shutdown(shutdownTimeoutMs).finally(()=>{\n this.shutdownPromise = null;\n });\n return this.shutdownPromise;\n }\n}\nexport { PostHogCoreStateless, posthog_core_stateless_QuotaLimitedFeature as QuotaLimitedFeature, logFlushError, maybeAdd };\n","import { createFlagsResponseFromFlagsAndPayloads, getFeatureFlagValue, getFlagValuesFromFlags, getPayloadsFromFlags, normalizeFlagsResponse, updateFlagValue } from \"./featureFlagUtils.mjs\";\nimport { Compression, PostHogPersistedProperty } from \"./types.mjs\";\nimport { PostHogCoreStateless, QuotaLimitedFeature, maybeAdd } from \"./posthog-core-stateless.mjs\";\nimport { uuidv7 } from \"./vendor/uuidv7.mjs\";\nimport { isPlainError } from \"./utils/index.mjs\";\nclass PostHogCore extends PostHogCoreStateless {\n constructor(apiKey, options){\n const disableGeoipOption = options?.disableGeoip ?? false;\n const featureFlagsRequestTimeoutMs = options?.featureFlagsRequestTimeoutMs ?? 10000;\n super(apiKey, {\n ...options,\n disableGeoip: disableGeoipOption,\n featureFlagsRequestTimeoutMs\n }), this.flagCallReported = {}, this._sessionMaxLengthSeconds = 86400, this.sessionProps = {};\n this.sendFeatureFlagEvent = options?.sendFeatureFlagEvent ?? true;\n this._sessionExpirationTimeSeconds = options?.sessionExpirationTimeSeconds ?? 1800;\n }\n setupBootstrap(options) {\n const bootstrap = options?.bootstrap;\n if (!bootstrap) return;\n if (bootstrap.distinctId) if (bootstrap.isIdentifiedId) {\n const distinctId = this.getPersistedProperty(PostHogPersistedProperty.DistinctId);\n if (!distinctId) this.setPersistedProperty(PostHogPersistedProperty.DistinctId, bootstrap.distinctId);\n } else {\n const anonymousId = this.getPersistedProperty(PostHogPersistedProperty.AnonymousId);\n if (!anonymousId) this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, bootstrap.distinctId);\n }\n const bootstrapFeatureFlags = bootstrap.featureFlags;\n const bootstrapFeatureFlagPayloads = bootstrap.featureFlagPayloads ?? {};\n if (bootstrapFeatureFlags && Object.keys(bootstrapFeatureFlags).length) {\n const normalizedBootstrapFeatureFlagDetails = createFlagsResponseFromFlagsAndPayloads(bootstrapFeatureFlags, bootstrapFeatureFlagPayloads);\n if (Object.keys(normalizedBootstrapFeatureFlagDetails.flags).length > 0) {\n this.setBootstrappedFeatureFlagDetails(normalizedBootstrapFeatureFlagDetails);\n const currentFeatureFlagDetails = this.getKnownFeatureFlagDetails() || {\n flags: {},\n requestId: void 0\n };\n const newFeatureFlagDetails = {\n flags: {\n ...normalizedBootstrapFeatureFlagDetails.flags,\n ...currentFeatureFlagDetails.flags\n },\n requestId: normalizedBootstrapFeatureFlagDetails.requestId\n };\n this.setKnownFeatureFlagDetails(newFeatureFlagDetails);\n }\n }\n }\n clearProps() {\n this.props = void 0;\n this.sessionProps = {};\n this.flagCallReported = {};\n }\n on(event, cb) {\n return this._events.on(event, cb);\n }\n reset(propertiesToKeep) {\n this.wrap(()=>{\n const allPropertiesToKeep = [\n PostHogPersistedProperty.Queue,\n ...propertiesToKeep || []\n ];\n this.clearProps();\n for (const key of Object.keys(PostHogPersistedProperty))if (!allPropertiesToKeep.includes(PostHogPersistedProperty[key])) this.setPersistedProperty(PostHogPersistedProperty[key], null);\n this.reloadFeatureFlags();\n });\n }\n getCommonEventProperties() {\n const featureFlags = this.getFeatureFlags();\n const featureVariantProperties = {};\n if (featureFlags) for (const [feature, variant] of Object.entries(featureFlags))featureVariantProperties[`$feature/${feature}`] = variant;\n return {\n ...maybeAdd('$active_feature_flags', featureFlags ? Object.keys(featureFlags) : void 0),\n ...featureVariantProperties,\n ...super.getCommonEventProperties()\n };\n }\n enrichProperties(properties) {\n return {\n ...this.props,\n ...this.sessionProps,\n ...properties || {},\n ...this.getCommonEventProperties(),\n $session_id: this.getSessionId()\n };\n }\n getSessionId() {\n if (!this._isInitialized) return '';\n let sessionId = this.getPersistedProperty(PostHogPersistedProperty.SessionId);\n const sessionLastTimestamp = this.getPersistedProperty(PostHogPersistedProperty.SessionLastTimestamp) || 0;\n const sessionStartTimestamp = this.getPersistedProperty(PostHogPersistedProperty.SessionStartTimestamp) || 0;\n const now = Date.now();\n const sessionLastDif = now - sessionLastTimestamp;\n const sessionStartDif = now - sessionStartTimestamp;\n if (!sessionId || sessionLastDif > 1000 * this._sessionExpirationTimeSeconds || sessionStartDif > 1000 * this._sessionMaxLengthSeconds) {\n sessionId = uuidv7();\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, sessionId);\n this.setPersistedProperty(PostHogPersistedProperty.SessionStartTimestamp, now);\n }\n this.setPersistedProperty(PostHogPersistedProperty.SessionLastTimestamp, now);\n return sessionId;\n }\n resetSessionId() {\n this.wrap(()=>{\n this.setPersistedProperty(PostHogPersistedProperty.SessionId, null);\n this.setPersistedProperty(PostHogPersistedProperty.SessionLastTimestamp, null);\n this.setPersistedProperty(PostHogPersistedProperty.SessionStartTimestamp, null);\n });\n }\n getAnonymousId() {\n if (!this._isInitialized) return '';\n let anonId = this.getPersistedProperty(PostHogPersistedProperty.AnonymousId);\n if (!anonId) {\n anonId = uuidv7();\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, anonId);\n }\n return anonId;\n }\n getDistinctId() {\n if (!this._isInitialized) return '';\n return this.getPersistedProperty(PostHogPersistedProperty.DistinctId) || this.getAnonymousId();\n }\n registerForSession(properties) {\n this.sessionProps = {\n ...this.sessionProps,\n ...properties\n };\n }\n unregisterForSession(property) {\n delete this.sessionProps[property];\n }\n identify(distinctId, properties, options) {\n this.wrap(()=>{\n const previousDistinctId = this.getDistinctId();\n distinctId = distinctId || previousDistinctId;\n if (properties?.$groups) this.groups(properties.$groups);\n const userPropsOnce = properties?.$set_once;\n delete properties?.$set_once;\n const userProps = properties?.$set || properties;\n const allProperties = this.enrichProperties({\n $anon_distinct_id: this.getAnonymousId(),\n ...maybeAdd('$set', userProps),\n ...maybeAdd('$set_once', userPropsOnce)\n });\n if (distinctId !== previousDistinctId) {\n this.setPersistedProperty(PostHogPersistedProperty.AnonymousId, previousDistinctId);\n this.setPersistedProperty(PostHogPersistedProperty.DistinctId, distinctId);\n this.reloadFeatureFlags();\n }\n super.identifyStateless(distinctId, allProperties, options);\n });\n }\n capture(event, properties, options) {\n this.wrap(()=>{\n const distinctId = this.getDistinctId();\n if (properties?.$groups) this.groups(properties.$groups);\n const allProperties = this.enrichProperties(properties);\n super.captureStateless(distinctId, event, allProperties, options);\n });\n }\n alias(alias) {\n this.wrap(()=>{\n const distinctId = this.getDistinctId();\n const allProperties = this.enrichProperties({});\n super.aliasStateless(alias, distinctId, allProperties);\n });\n }\n autocapture(eventType, elements, properties = {}, options) {\n this.wrap(()=>{\n const distinctId = this.getDistinctId();\n const payload = {\n distinct_id: distinctId,\n event: '$autocapture',\n properties: {\n ...this.enrichProperties(properties),\n $event_type: eventType,\n $elements: elements\n }\n };\n this.enqueue('autocapture', payload, options);\n });\n }\n groups(groups) {\n this.wrap(()=>{\n const existingGroups = this.props.$groups || {};\n this.register({\n $groups: {\n ...existingGroups,\n ...groups\n }\n });\n if (Object.keys(groups).find((type)=>existingGroups[type] !== groups[type])) this.reloadFeatureFlags();\n });\n }\n group(groupType, groupKey, groupProperties, options) {\n this.wrap(()=>{\n this.groups({\n [groupType]: groupKey\n });\n if (groupProperties) this.groupIdentify(groupType, groupKey, groupProperties, options);\n });\n }\n groupIdentify(groupType, groupKey, groupProperties, options) {\n this.wrap(()=>{\n const distinctId = this.getDistinctId();\n const eventProperties = this.enrichProperties({});\n super.groupIdentifyStateless(groupType, groupKey, groupProperties, options, distinctId, eventProperties);\n });\n }\n setPersonPropertiesForFlags(properties) {\n this.wrap(()=>{\n const existingProperties = this.getPersistedProperty(PostHogPersistedProperty.PersonProperties) || {};\n this.setPersistedProperty(PostHogPersistedProperty.PersonProperties, {\n ...existingProperties,\n ...properties\n });\n });\n }\n resetPersonPropertiesForFlags() {\n this.wrap(()=>{\n this.setPersistedProperty(PostHogPersistedProperty.PersonProperties, null);\n });\n }\n setGroupPropertiesForFlags(properties) {\n this.wrap(()=>{\n const existingProperties = this.getPersistedProperty(PostHogPersistedProperty.GroupProperties) || {};\n if (0 !== Object.keys(existingProperties).length) Object.keys(existingProperties).forEach((groupType)=>{\n existingProperties[groupType] = {\n ...existingProperties[groupType],\n ...properties[groupType]\n };\n delete properties[groupType];\n });\n this.setPersistedProperty(PostHogPersistedProperty.GroupProperties, {\n ...existingProperties,\n ...properties\n });\n });\n }\n resetGroupPropertiesForFlags() {\n this.wrap(()=>{\n this.setPersistedProperty(PostHogPersistedProperty.GroupProperties, null);\n });\n }\n async remoteConfigAsync() {\n await this._initPromise;\n if (this._remoteConfigResponsePromise) return this._remoteConfigResponsePromise;\n return this._remoteConfigAsync();\n }\n async flagsAsync(sendAnonDistinctId = true, fetchConfig = true) {\n await this._initPromise;\n if (this._flagsResponsePromise) return this._flagsResponsePromise;\n return this._flagsAsync(sendAnonDistinctId, fetchConfig);\n }\n cacheSessionReplay(source, response) {\n const sessionReplay = response?.sessionRecording;\n if (sessionReplay) {\n this.setPersistedProperty(PostHogPersistedProperty.SessionReplay, sessionReplay);\n this._logger.info(`Session replay config from ${source}: `, JSON.stringify(sessionReplay));\n } else if ('boolean' == typeof sessionReplay && false === sessionReplay) {\n this._logger.info(`Session replay config from ${source} disabled.`);\n this.setPersistedProperty(PostHogPersistedProperty.SessionReplay, null);\n }\n }\n async _remoteConfigAsync() {\n this._remoteConfigResponsePromise = this._initPromise.then(()=>{\n let remoteConfig = this.getPersistedProperty(PostHogPersistedProperty.RemoteConfig);\n this._logger.info('Cached remote config: ', JSON.stringify(remoteConfig));\n return super.getRemoteConfig().then((response)=>{\n if (response) {\n const remoteConfigWithoutSurveys = {\n ...response\n };\n delete remoteConfigWithoutSurveys.surveys;\n this._logger.info('Fetched remote config: ', JSON.stringify(remoteConfigWithoutSurveys));\n if (false === this.disableSurveys) {\n const surveys = response.surveys;\n let hasSurveys = true;\n if (Array.isArray(surveys)) this._logger.info('Surveys fetched from remote config: ', JSON.stringify(surveys));\n else {\n this._logger.info('There are no surveys.');\n hasSurveys = false;\n }\n if (hasSurveys) this.setPersistedProperty(PostHogPersistedProperty.Surveys, surveys);\n else this.setPersistedProperty(PostHogPersistedProperty.Surveys, null);\n } else this.setPersistedProperty(PostHogPersistedProperty.Surveys, null);\n this.setPersistedProperty(PostHogPersistedProperty.RemoteConfig, remoteConfigWithoutSurveys);\n this.cacheSessionReplay('remote config', response);\n if (false === response.hasFeatureFlags) {\n this.setKnownFeatureFlagDetails({\n flags: {}\n });\n this._logger.warn('Remote config has no feature flags, will not load feature flags.');\n } else if (false !== this.preloadFeatureFlags) this.reloadFeatureFlags();\n if (!response.supportedCompression?.includes(Compression.GZipJS)) this.disableCompression = true;\n remoteConfig = response;\n }\n return remoteConfig;\n });\n }).finally(()=>{\n this._remoteConfigResponsePromise = void 0;\n });\n return this._remoteConfigResponsePromise;\n }\n async _flagsAsync(sendAnonDistinctId = true, fetchConfig = true) {\n this._flagsResponsePromise = this._initPromise.then(async ()=>{\n const distinctId = this.getDistinctId();\n const groups = this.props.$groups || {};\n const personProperties = this.getPersistedProperty(PostHogPersistedProperty.PersonProperties) || {};\n const groupProperties = this.getPersistedProperty(PostHogPersistedProperty.GroupProperties) || {};\n const extraProperties = {\n $anon_distinct_id: sendAnonDistinctId ? this.getAnonymousId() : void 0\n };\n const res = await super.getFlags(distinctId, groups, personProperties, groupProperties, extraProperties, fetchConfig);\n if (res?.quotaLimited?.includes(QuotaLimitedFeature.FeatureFlags)) {\n this.setKnownFeatureFlagDetails(null);\n console.warn('[FEATURE FLAGS] Feature flags quota limit exceeded - unsetting all flags. Learn more about billing limits at https://posthog.com/docs/billing/limits-alerts');\n return res;\n }\n if (res?.featureFlags) {\n if (this.sendFeatureFlagEvent) this.flagCallReported = {};\n let newFeatureFlagDetails = res;\n if (res.errorsWhileComputingFlags) {\n const currentFlagDetails = this.getKnownFeatureFlagDetails();\n this._logger.info('Cached feature flags: ', JSON.stringify(currentFlagDetails));\n newFeatureFlagDetails = {\n ...res,\n flags: {\n ...currentFlagDetails?.flags,\n ...res.flags\n }\n };\n }\n this.setKnownFeatureFlagDetails(newFeatureFlagDetails);\n this.setPersistedProperty(PostHogPersistedProperty.FlagsEndpointWasHit, true);\n this.cacheSessionReplay('flags', res);\n }\n return res;\n }).finally(()=>{\n this._flagsResponsePromise = void 0;\n });\n return this._flagsResponsePromise;\n }\n setKnownFeatureFlagDetails(flagsResponse) {\n this.wrap(()=>{\n this.setPersistedProperty(PostHogPersistedProperty.FeatureFlagDetails, flagsResponse);\n this._events.emit('featureflags', getFlagValuesFromFlags(flagsResponse?.flags ?? {}));\n });\n }\n getKnownFeatureFlagDetails() {\n const storedDetails = this.getPersistedProperty(PostHogPersistedProperty.FeatureFlagDetails);\n if (!storedDetails) {\n const featureFlags = this.getPersistedProperty(PostHogPersistedProperty.FeatureFlags);\n const featureFlagPayloads = this.getPersistedProperty(PostHogPersistedProperty.FeatureFlagPayloads);\n if (void 0 === featureFlags && void 0 === featureFlagPayloads) return;\n return createFlagsResponseFromFlagsAndPayloads(featureFlags ?? {}, featureFlagPayloads ?? {});\n }\n return normalizeFlagsResponse(storedDetails);\n }\n getKnownFeatureFlags() {\n const featureFlagDetails = this.getKnownFeatureFlagDetails();\n if (!featureFlagDetails) return;\n return getFlagValuesFromFlags(featureFlagDetails.flags);\n }\n getKnownFeatureFlagPayloads() {\n const featureFlagDetails = this.getKnownFeatureFlagDetails();\n if (!featureFlagDetails) return;\n return getPayloadsFromFlags(featureFlagDetails.flags);\n }\n getBootstrappedFeatureFlagDetails() {\n const details = this.getPersistedProperty(PostHogPersistedProperty.BootstrapFeatureFlagDetails);\n if (!details) return;\n return details;\n }\n setBootstrappedFeatureFlagDetails(details) {\n this.setPersistedProperty(PostHogPersistedProperty.BootstrapFeatureFlagDetails, details);\n }\n getBootstrappedFeatureFlags() {\n const details = this.getBootstrappedFeatureFlagDetails();\n if (!details) return;\n return getFlagValuesFromFlags(details.flags);\n }\n getBootstrappedFeatureFlagPayloads() {\n const details = this.getBootstrappedFeatureFlagDetails();\n if (!details) return;\n return getPayloadsFromFlags(details.flags);\n }\n getFeatureFlag(key) {\n const details = this.getFeatureFlagDetails();\n if (!details) return;\n const featureFlag = details.flags[key];\n let response = getFeatureFlagValue(featureFlag);\n if (void 0 === response) response = false;\n if (this.sendFeatureFlagEvent && !this.flagCallReported[key]) {\n const bootstrappedResponse = this.getBootstrappedFeatureFlags()?.[key];\n const bootstrappedPayload = this.getBootstrappedFeatureFlagPayloads()?.[key];\n this.flagCallReported[key] = true;\n this.capture('$feature_flag_called', {\n $feature_flag: key,\n $feature_flag_response: response,\n ...maybeAdd('$feature_flag_id', featureFlag?.metadata?.id),\n ...maybeAdd('$feature_flag_version', featureFlag?.metadata?.version),\n ...maybeAdd('$feature_flag_reason', featureFlag?.reason?.description ?? featureFlag?.reason?.code),\n ...maybeAdd('$feature_flag_bootstrapped_response', bootstrappedResponse),\n ...maybeAdd('$feature_flag_bootstrapped_payload', bootstrappedPayload),\n $used_bootstrap_value: !this.getPersistedProperty(PostHogPersistedProperty.FlagsEndpointWasHit),\n ...maybeAdd('$feature_flag_request_id', details.requestId)\n });\n }\n return response;\n }\n getFeatureFlagPayload(key) {\n const payloads = this.getFeatureFlagPayloads();\n if (!payloads) return;\n const response = payloads[key];\n if (void 0 === response) return null;\n return response;\n }\n getFeatureFlagPayloads() {\n return this.getFeatureFlagDetails()?.featureFlagPayloads;\n }\n getFeatureFlags() {\n return this.getFeatureFlagDetails()?.featureFlags;\n }\n getFeatureFlagDetails() {\n let details = this.getKnownFeatureFlagDetails();\n const overriddenFlags = this.getPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags);\n if (!overriddenFlags) return details;\n details = details ?? {\n featureFlags: {},\n featureFlagPayloads: {},\n flags: {}\n };\n const flags = details.flags ?? {};\n for(const key in overriddenFlags)if (overriddenFlags[key]) flags[key] = updateFlagValue(flags[key], overriddenFlags[key]);\n else delete flags[key];\n const result = {\n ...details,\n flags\n };\n return normalizeFlagsResponse(result);\n }\n getFeatureFlagsAndPayloads() {\n const flags = this.getFeatureFlags();\n const payloads = this.getFeatureFlagPayloads();\n return {\n flags,\n payloads\n };\n }\n isFeatureEnabled(key) {\n const response = this.getFeatureFlag(key);\n if (void 0 === response) return;\n return !!response;\n }\n reloadFeatureFlags(options) {\n this.flagsAsync(true).then((res)=>{\n options?.cb?.(void 0, res?.featureFlags);\n }).catch((e)=>{\n options?.cb?.(e, void 0);\n if (!options?.cb) this._logger.info('Error reloading feature flags', e);\n });\n }\n async reloadRemoteConfigAsync() {\n return await this.remoteConfigAsync();\n }\n async reloadFeatureFlagsAsync(sendAnonDistinctId) {\n return (await this.flagsAsync(sendAnonDistinctId ?? true))?.featureFlags;\n }\n onFeatureFlags(cb) {\n return this.on('featureflags', async ()=>{\n const flags = this.getFeatureFlags();\n if (flags) cb(flags);\n });\n }\n onFeatureFlag(key, cb) {\n return this.on('featureflags', async ()=>{\n const flagResponse = this.getFeatureFlag(key);\n if (void 0 !== flagResponse) cb(flagResponse);\n });\n }\n async overrideFeatureFlag(flags) {\n this.wrap(()=>{\n if (null === flags) return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, null);\n return this.setPersistedProperty(PostHogPersistedProperty.OverrideFeatureFlags, flags);\n });\n }\n captureException(error, additionalProperties) {\n const properties = {\n $exception_level: 'error',\n $exception_list: [\n {\n type: isPlainError(error) ? error.name : 'Error',\n value: isPlainError(error) ? error.message : error,\n mechanism: {\n handled: true,\n synthetic: false\n }\n }\n ],\n ...additionalProperties\n };\n this.capture('$exception', properties);\n }\n captureTraceFeedback(traceId, userFeedback) {\n this.capture('$ai_feedback', {\n $ai_feedback_text: userFeedback,\n $ai_trace_id: String(traceId)\n });\n }\n captureTraceMetric(traceId, metricName, metricValue) {\n this.capture('$ai_metric', {\n $ai_metric_name: metricName,\n $ai_metric_value: String(metricValue),\n $ai_trace_id: String(traceId)\n });\n }\n}\nexport { PostHogCore };\n",null,null,null,null],"names":["PostHogPersistedProperty","Compression","QuotaLimitedFeature","version","PREFIX","logger","info","args","console","log","warn","error","Leanbase","PostHogCore","constructor","apiKey","options","leanbaseOptions","host","_storage","Map","_storageKey","window","localStorage","stored","getItem","parsed","JSON","parse","Object","entries","forEach","key","value","set","err","preloadFeatureFlags","reloadFeatureFlags","fetch","url","fetchFn","getFetch","Promise","reject","Error","getLibraryId","getLibraryVersion","getCustomUserAgent","getPersistedProperty","get","setPersistedProperty","isNull","delete","obj","v","k","setItem","stringify","capture","event","properties","identify","distinctId","destroy","clear","api","_instance","_queue","init","q","fn","push","group","isFunction","alias","reset","getInstance","attachToGlobal","g","existing","leanbase","isArray","globalThis"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@leanbase.com/js",
3
+ "version": "0.1.0",
4
+ "description": "Leanbase browser SDK - event tracking, autocapture, and session replay",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/PostHog/posthog-js",
8
+ "directory": "packages/leanbase"
9
+ },
10
+ "author": "leanbase",
11
+ "license": "Copyrighted by Leanflag Limited",
12
+ "main": "dist/index.cjs",
13
+ "module": "dist/index.mjs",
14
+ "types": "dist/index.d.ts",
15
+ "unpkg": "dist/leanbase.iife.js",
16
+ "jsdelivr": "dist/leanbase.iife.js",
17
+ "files": [
18
+ "dist",
19
+ "src",
20
+ "README.md"
21
+ ],
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
25
+ "dependencies": {
26
+ "@posthog/core": "1.3.1"
27
+ },
28
+ "devDependencies": {
29
+ "jest": "^29.7.0",
30
+ "jest-environment-jsdom": "^29.7.0",
31
+ "rollup": "^4.44.1",
32
+ "rimraf": "^6.0.1",
33
+ "@posthog-tooling/tsconfig-base": "1.0.0",
34
+ "@posthog-tooling/rollup-utils": "1.0.0"
35
+ },
36
+ "scripts": {
37
+ "clean": "rimraf dist coverage",
38
+ "test:unit": "jest -c jest.config.js",
39
+ "lint": "eslint src test",
40
+ "lint:fix": "eslint src test --fix",
41
+ "prebuild": "node -p \"'export const version = \\'' + require('./package.json').version + '\\''\" > src/version.ts",
42
+ "build": "rollup -c",
43
+ "dev": "rollup -c -w",
44
+ "package": "mkdir -p ../../target && pnpm pack --pack-destination ../../target"
45
+ }
46
+ }
package/src/iife.ts ADDED
@@ -0,0 +1,83 @@
1
+ import { Leanbase } from './leanbase'
2
+ import type { LeanbaseOptions } from './leanbase'
3
+ import { isFunction, isArray } from '@posthog/core'
4
+
5
+ // Lightweight global API with a pre-init queue, inspired by PostHog's snippet pattern
6
+ // Exposes window.leanbase with methods: init, capture, identify, group, alias, reset
7
+
8
+ type QueuedCall = { fn: keyof typeof api; args: any[] }
9
+
10
+ const api = {
11
+ _instance: null as Leanbase | null,
12
+ _queue: [] as QueuedCall[],
13
+
14
+ init(apiKey: string, options?: LeanbaseOptions) {
15
+ this._instance = new Leanbase(apiKey, options)
16
+ // Flush queued calls
17
+ const q = this._queue
18
+ this._queue = []
19
+ for (const { fn, args } of q) {
20
+ // @ts-expect-error dynamic dispatch to API methods
21
+ this[fn](...args)
22
+ }
23
+ },
24
+
25
+ capture(...args: any[]) {
26
+ if (this._instance) {
27
+ ;(this._instance.capture as any)(...args)
28
+ } else {
29
+ this._queue.push({ fn: 'capture', args })
30
+ }
31
+ },
32
+
33
+ identify(...args: any[]) {
34
+ if (this._instance) {
35
+ ;(this._instance.identify as any)(...args)
36
+ } else {
37
+ this._queue.push({ fn: 'identify', args })
38
+ }
39
+ },
40
+
41
+ group(...args: any[]) {
42
+ if (this._instance && isFunction((this._instance as any).group)) {
43
+ ;(this._instance as any).group(...args)
44
+ } else {
45
+ this._queue.push({ fn: 'group' as any, args })
46
+ }
47
+ },
48
+
49
+ alias(...args: any[]) {
50
+ if (this._instance && isFunction((this._instance as any).alias)) {
51
+ ;(this._instance as any).alias(...args)
52
+ } else {
53
+ this._queue.push({ fn: 'alias' as any, args })
54
+ }
55
+ },
56
+
57
+ reset() {
58
+ this._instance?.reset()
59
+ this._instance = null
60
+ },
61
+
62
+ getInstance(): Leanbase | null {
63
+ return this._instance
64
+ },
65
+ }
66
+
67
+ // Attach to globalThis for browsers (SSR-safe guards inside Leanbase)
68
+ ;(function attachToGlobal(g: any) {
69
+ // Prefer not to overwrite if a stub already exists (e.g., user queued calls before script loaded)
70
+ const existing = g.leanbase
71
+ if (existing && typeof existing === 'object') {
72
+ // If there is a pre-existing queue-compatible stub, try to drain it into our API
73
+ if (isArray(existing._queue)) {
74
+ api._queue = existing._queue as any
75
+ }
76
+ }
77
+
78
+ g.leanbase = api
79
+ // Also expose PascalCase alias for familiarity
80
+ g.Leanbase = g.leanbase
81
+ })(globalThis as any)
82
+
83
+ export default api
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { Leanbase } from './leanbase'
2
+ export type { LeanbaseOptions } from './leanbase'
@@ -0,0 +1,23 @@
1
+ // Simple logger with [Leanbase] prefix
2
+ const PREFIX = '[Leanbase]'
3
+
4
+ export const logger = {
5
+ info: (...args: any[]) => {
6
+ if (typeof console !== 'undefined') {
7
+ // eslint-disable-next-line no-console
8
+ console.log(PREFIX, ...args)
9
+ }
10
+ },
11
+ warn: (...args: any[]) => {
12
+ if (typeof console !== 'undefined') {
13
+ // eslint-disable-next-line no-console
14
+ console.warn(PREFIX, ...args)
15
+ }
16
+ },
17
+ error: (...args: any[]) => {
18
+ if (typeof console !== 'undefined') {
19
+ // eslint-disable-next-line no-console
20
+ console.error(PREFIX, ...args)
21
+ }
22
+ },
23
+ }