@clerk/shared 3.17.0-snapshot.v20250731165820 → 3.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-7KMTHFR7.mjs → chunk-EXVDK5P4.mjs} +3 -3
- package/dist/{chunk-7KMTHFR7.mjs.map → chunk-EXVDK5P4.mjs.map} +1 -1
- package/dist/{chunk-JDY74ITZ.mjs → chunk-RLPHKAB6.mjs} +2 -2
- package/dist/chunk-RLPHKAB6.mjs.map +1 -0
- package/dist/{chunk-ODDB3PJQ.mjs → chunk-WOYMONT7.mjs} +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/loadClerkJsScript.js +2 -2
- package/dist/loadClerkJsScript.js.map +1 -1
- package/dist/loadClerkJsScript.mjs +2 -2
- package/dist/react/index.mjs +1 -1
- package/dist/telemetry.js +1 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/telemetry.mjs +1 -1
- package/dist/versionSelector.js +2 -2
- package/dist/versionSelector.js.map +1 -1
- package/dist/versionSelector.mjs +1 -1
- package/package.json +2 -2
- package/dist/chunk-JDY74ITZ.mjs.map +0 -1
- /package/dist/{chunk-ODDB3PJQ.mjs.map → chunk-WOYMONT7.mjs.map} +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// src/versionSelector.ts
|
|
2
|
-
var versionSelector = (clerkJSVersion, packageVersion = "5.79.0
|
|
2
|
+
var versionSelector = (clerkJSVersion, packageVersion = "5.79.0") => {
|
|
3
3
|
if (clerkJSVersion) {
|
|
4
4
|
return clerkJSVersion;
|
|
5
5
|
}
|
|
6
6
|
const prereleaseTag = getPrereleaseTag(packageVersion);
|
|
7
7
|
if (prereleaseTag) {
|
|
8
8
|
if (prereleaseTag === "snapshot") {
|
|
9
|
-
return "5.79.0
|
|
9
|
+
return "5.79.0";
|
|
10
10
|
}
|
|
11
11
|
return prereleaseTag;
|
|
12
12
|
}
|
|
@@ -19,4 +19,4 @@ export {
|
|
|
19
19
|
versionSelector,
|
|
20
20
|
getMajorVersion
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=chunk-
|
|
22
|
+
//# sourceMappingURL=chunk-EXVDK5P4.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/versionSelector.ts"],"sourcesContent":["/**\n * This version selector is a bit complicated, so here is the flow:\n * 1. Use the clerkJSVersion prop on the provider\n * 2. Use the exact `@clerk/clerk-js` version if it is a `@snapshot` prerelease\n * 3. Use the prerelease tag of `@clerk/clerk-js` or the packageVersion provided\n * 4. Fallback to the major version of `@clerk/clerk-js` or the packageVersion provided\n * @param clerkJSVersion - The optional clerkJSVersion prop on the provider\n * @param packageVersion - The version of `@clerk/clerk-js` that will be used if an explicit version is not provided\n * @returns The npm tag, version or major version to use\n */\nexport const versionSelector = (clerkJSVersion: string | undefined, packageVersion = JS_PACKAGE_VERSION) => {\n if (clerkJSVersion) {\n return clerkJSVersion;\n }\n\n const prereleaseTag = getPrereleaseTag(packageVersion);\n if (prereleaseTag) {\n if (prereleaseTag === 'snapshot') {\n return JS_PACKAGE_VERSION;\n }\n\n return prereleaseTag;\n }\n\n return getMajorVersion(packageVersion);\n};\n\nconst getPrereleaseTag = (packageVersion: string) =>\n packageVersion\n .trim()\n .replace(/^v/, '')\n .match(/-(.+?)(\\.|$)/)?.[1];\n\nexport const getMajorVersion = (packageVersion: string) => packageVersion.trim().replace(/^v/, '').split('.')[0];\n"],"mappings":";AAUO,IAAM,kBAAkB,CAAC,gBAAoC,iBAAiB,
|
|
1
|
+
{"version":3,"sources":["../src/versionSelector.ts"],"sourcesContent":["/**\n * This version selector is a bit complicated, so here is the flow:\n * 1. Use the clerkJSVersion prop on the provider\n * 2. Use the exact `@clerk/clerk-js` version if it is a `@snapshot` prerelease\n * 3. Use the prerelease tag of `@clerk/clerk-js` or the packageVersion provided\n * 4. Fallback to the major version of `@clerk/clerk-js` or the packageVersion provided\n * @param clerkJSVersion - The optional clerkJSVersion prop on the provider\n * @param packageVersion - The version of `@clerk/clerk-js` that will be used if an explicit version is not provided\n * @returns The npm tag, version or major version to use\n */\nexport const versionSelector = (clerkJSVersion: string | undefined, packageVersion = JS_PACKAGE_VERSION) => {\n if (clerkJSVersion) {\n return clerkJSVersion;\n }\n\n const prereleaseTag = getPrereleaseTag(packageVersion);\n if (prereleaseTag) {\n if (prereleaseTag === 'snapshot') {\n return JS_PACKAGE_VERSION;\n }\n\n return prereleaseTag;\n }\n\n return getMajorVersion(packageVersion);\n};\n\nconst getPrereleaseTag = (packageVersion: string) =>\n packageVersion\n .trim()\n .replace(/^v/, '')\n .match(/-(.+?)(\\.|$)/)?.[1];\n\nexport const getMajorVersion = (packageVersion: string) => packageVersion.trim().replace(/^v/, '').split('.')[0];\n"],"mappings":";AAUO,IAAM,kBAAkB,CAAC,gBAAoC,iBAAiB,aAAuB;AAC1G,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,iBAAiB,cAAc;AACrD,MAAI,eAAe;AACjB,QAAI,kBAAkB,YAAY;AAChC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT;AAEA,SAAO,gBAAgB,cAAc;AACvC;AAEA,IAAM,mBAAmB,CAAC,mBACxB,eACG,KAAK,EACL,QAAQ,MAAM,EAAE,EAChB,MAAM,cAAc,IAAI,CAAC;AAEvB,IAAM,kBAAkB,CAAC,mBAA2B,eAAe,KAAK,EAAE,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;","names":[]}
|
|
@@ -95,7 +95,7 @@ isValidBrowser_get = function() {
|
|
|
95
95
|
|
|
96
96
|
// src/telemetry/collector.ts
|
|
97
97
|
function isWindowClerkWithMetadata(clerk) {
|
|
98
|
-
return typeof clerk === "object" && clerk !== null && "constructor" in clerk && typeof clerk.constructor === "
|
|
98
|
+
return typeof clerk === "object" && clerk !== null && "constructor" in clerk && typeof clerk.constructor === "function";
|
|
99
99
|
}
|
|
100
100
|
var DEFAULT_CONFIG = {
|
|
101
101
|
samplingRate: 1,
|
|
@@ -348,4 +348,4 @@ export {
|
|
|
348
348
|
eventMethodCalled,
|
|
349
349
|
eventFrameworkMetadata
|
|
350
350
|
};
|
|
351
|
-
//# sourceMappingURL=chunk-
|
|
351
|
+
//# sourceMappingURL=chunk-RLPHKAB6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/telemetry/throttler.ts","../src/telemetry/collector.ts","../src/telemetry/events/component-mounted.ts","../src/telemetry/events/method-called.ts","../src/telemetry/events/framework-metadata.ts"],"sourcesContent":["import type { TelemetryEvent } from '@clerk/types';\n\ntype TtlInMilliseconds = number;\n\nconst DEFAULT_CACHE_TTL_MS = 86400000; // 24 hours\n\n/**\n * Manages throttling for telemetry events using the browser's localStorage to\n * mitigate event flooding in frequently executed code paths.\n */\nexport class TelemetryEventThrottler {\n #storageKey = 'clerk_telemetry_throttler';\n #cacheTtl = DEFAULT_CACHE_TTL_MS;\n\n isEventThrottled(payload: TelemetryEvent): boolean {\n if (!this.#isValidBrowser) {\n return false;\n }\n\n const now = Date.now();\n const key = this.#generateKey(payload);\n const entry = this.#cache?.[key];\n\n if (!entry) {\n const updatedCache = {\n ...this.#cache,\n [key]: now,\n };\n\n localStorage.setItem(this.#storageKey, JSON.stringify(updatedCache));\n }\n\n const shouldInvalidate = entry && now - entry > this.#cacheTtl;\n if (shouldInvalidate) {\n const updatedCache = this.#cache;\n delete updatedCache[key];\n\n localStorage.setItem(this.#storageKey, JSON.stringify(updatedCache));\n }\n\n return !!entry;\n }\n\n /**\n * Generates a consistent unique key for telemetry events by sorting payload properties.\n * This ensures that payloads with identical content in different orders produce the same key.\n */\n #generateKey(event: TelemetryEvent): string {\n const { sk: _sk, pk: _pk, payload, ...rest } = event;\n\n const sanitizedEvent: Omit<TelemetryEvent, 'sk' | 'pk' | 'payload'> & TelemetryEvent['payload'] = {\n ...payload,\n ...rest,\n };\n\n return JSON.stringify(\n Object.keys({\n ...payload,\n ...rest,\n })\n .sort()\n .map(key => sanitizedEvent[key]),\n );\n }\n\n get #cache(): Record<string, TtlInMilliseconds> | undefined {\n const cacheString = localStorage.getItem(this.#storageKey);\n\n if (!cacheString) {\n return {};\n }\n\n return JSON.parse(cacheString);\n }\n\n /**\n * Checks if the browser's localStorage is supported and writable.\n *\n * If any of these operations fail, it indicates that localStorage is either\n * not supported or not writable (e.g., in cases where the storage is full or\n * the browser is in a privacy mode that restricts localStorage usage).\n */\n get #isValidBrowser(): boolean {\n if (typeof window === 'undefined') {\n return false;\n }\n\n const storage = window.localStorage;\n if (!storage) {\n return false;\n }\n\n try {\n const testKey = 'test';\n storage.setItem(testKey, testKey);\n storage.removeItem(testKey);\n\n return true;\n } catch (err: unknown) {\n const isQuotaExceededError =\n err instanceof DOMException &&\n // Check error names for different browsers\n (err.name === 'QuotaExceededError' || err.name === 'NS_ERROR_DOM_QUOTA_REACHED');\n\n if (isQuotaExceededError && storage.length > 0) {\n storage.removeItem(this.#storageKey);\n }\n\n return false;\n }\n }\n}\n","/**\n * The `TelemetryCollector` class handles collection of telemetry events from Clerk SDKs. Telemetry is opt-out and can be disabled by setting a CLERK_TELEMETRY_DISABLED environment variable.\n * The `ClerkProvider` also accepts a `telemetry` prop that will be passed to the collector during initialization:.\n *\n * ```jsx\n * <ClerkProvider telemetry={false}>\n * ...\n * </ClerkProvider>\n * ```\n *\n * For more information, please see the telemetry documentation page: https://clerk.com/docs/telemetry.\n */\nimport type {\n InstanceType,\n SDKMetadata,\n TelemetryCollector as TelemetryCollectorInterface,\n TelemetryEvent,\n TelemetryEventRaw,\n} from '@clerk/types';\n\nimport { parsePublishableKey } from '../keys';\nimport { isTruthy } from '../underscore';\nimport { TelemetryEventThrottler } from './throttler';\nimport type { TelemetryCollectorOptions } from './types';\n\n/**\n * Local interface for window.Clerk to avoid global type pollution.\n * This is only used within this module and doesn't affect other packages.\n */\ninterface WindowWithClerk extends Window {\n Clerk?: {\n constructor?: {\n sdkMetadata?: SDKMetadata;\n };\n };\n}\n\n/**\n * Type guard to check if window.Clerk exists and has the expected structure.\n */\nfunction isWindowClerkWithMetadata(clerk: unknown): clerk is { constructor: { sdkMetadata?: SDKMetadata } } {\n return (\n typeof clerk === 'object' && clerk !== null && 'constructor' in clerk && typeof clerk.constructor === 'function'\n );\n}\n\ntype TelemetryCollectorConfig = Pick<\n TelemetryCollectorOptions,\n 'samplingRate' | 'disabled' | 'debug' | 'maxBufferSize'\n> & {\n endpoint: string;\n};\n\ntype TelemetryMetadata = Required<\n Pick<TelemetryCollectorOptions, 'clerkVersion' | 'sdk' | 'sdkVersion' | 'publishableKey' | 'secretKey'>\n> & {\n /**\n * The instance type, derived from the provided publishableKey.\n */\n instanceType: InstanceType;\n};\n\nconst DEFAULT_CONFIG: Partial<TelemetryCollectorConfig> = {\n samplingRate: 1,\n maxBufferSize: 5,\n // Production endpoint: https://clerk-telemetry.com\n // Staging endpoint: https://staging.clerk-telemetry.com\n // Local: http://localhost:8787\n endpoint: 'https://clerk-telemetry.com',\n};\n\nexport class TelemetryCollector implements TelemetryCollectorInterface {\n #config: Required<TelemetryCollectorConfig>;\n #eventThrottler: TelemetryEventThrottler;\n #metadata: TelemetryMetadata = {} as TelemetryMetadata;\n #buffer: TelemetryEvent[] = [];\n #pendingFlush: any;\n\n constructor(options: TelemetryCollectorOptions) {\n this.#config = {\n maxBufferSize: options.maxBufferSize ?? DEFAULT_CONFIG.maxBufferSize,\n samplingRate: options.samplingRate ?? DEFAULT_CONFIG.samplingRate,\n disabled: options.disabled ?? false,\n debug: options.debug ?? false,\n endpoint: DEFAULT_CONFIG.endpoint,\n } as Required<TelemetryCollectorConfig>;\n\n if (!options.clerkVersion && typeof window === 'undefined') {\n // N/A in a server environment\n this.#metadata.clerkVersion = '';\n } else {\n this.#metadata.clerkVersion = options.clerkVersion ?? '';\n }\n\n // We will try to grab the SDK data lazily when an event is triggered, so it should always be defined once the event is sent.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.#metadata.sdk = options.sdk!;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.#metadata.sdkVersion = options.sdkVersion!;\n\n this.#metadata.publishableKey = options.publishableKey ?? '';\n\n const parsedKey = parsePublishableKey(options.publishableKey);\n if (parsedKey) {\n this.#metadata.instanceType = parsedKey.instanceType;\n }\n\n if (options.secretKey) {\n // Only send the first 16 characters of the secret key to to avoid sending the full key. We can still query against the partial key.\n this.#metadata.secretKey = options.secretKey.substring(0, 16);\n }\n\n this.#eventThrottler = new TelemetryEventThrottler();\n }\n\n get isEnabled(): boolean {\n if (this.#metadata.instanceType !== 'development') {\n return false;\n }\n\n // In browser or client environments, we most likely pass the disabled option to the collector, but in environments\n // where environment variables are available we also check for `CLERK_TELEMETRY_DISABLED`.\n if (\n this.#config.disabled ||\n (typeof process !== 'undefined' && process.env && isTruthy(process.env.CLERK_TELEMETRY_DISABLED))\n ) {\n return false;\n }\n\n // navigator.webdriver is a property generally set by headless browsers that are running in an automated testing environment.\n // Data from these environments is not meaningful for us and has the potential to produce a large volume of events, so we disable\n // collection in this case. (ref: https://developer.mozilla.org/en-US/docs/Web/API/Navigator/webdriver)\n if (typeof window !== 'undefined' && !!window?.navigator?.webdriver) {\n return false;\n }\n\n return true;\n }\n\n get isDebug(): boolean {\n return (\n this.#config.debug ||\n (typeof process !== 'undefined' && process.env && isTruthy(process.env.CLERK_TELEMETRY_DEBUG))\n );\n }\n\n record(event: TelemetryEventRaw): void {\n const preparedPayload = this.#preparePayload(event.event, event.payload);\n\n this.#logEvent(preparedPayload.event, preparedPayload);\n\n if (!this.#shouldRecord(preparedPayload, event.eventSamplingRate)) {\n return;\n }\n\n this.#buffer.push(preparedPayload);\n\n this.#scheduleFlush();\n }\n\n #shouldRecord(preparedPayload: TelemetryEvent, eventSamplingRate?: number) {\n return this.isEnabled && !this.isDebug && this.#shouldBeSampled(preparedPayload, eventSamplingRate);\n }\n\n #shouldBeSampled(preparedPayload: TelemetryEvent, eventSamplingRate?: number) {\n const randomSeed = Math.random();\n\n const toBeSampled =\n randomSeed <= this.#config.samplingRate &&\n (typeof eventSamplingRate === 'undefined' || randomSeed <= eventSamplingRate);\n\n if (!toBeSampled) {\n return false;\n }\n\n return !this.#eventThrottler.isEventThrottled(preparedPayload);\n }\n\n #scheduleFlush(): void {\n // On the server, we want to flush immediately as we have less guarantees about the lifecycle of the process\n if (typeof window === 'undefined') {\n this.#flush();\n return;\n }\n\n const isBufferFull = this.#buffer.length >= this.#config.maxBufferSize;\n if (isBufferFull) {\n // If the buffer is full, flush immediately to make sure we minimize the chance of event loss.\n // Cancel any pending flushes as we're going to flush immediately\n if (this.#pendingFlush) {\n const cancel = typeof cancelIdleCallback !== 'undefined' ? cancelIdleCallback : clearTimeout;\n cancel(this.#pendingFlush);\n }\n this.#flush();\n return;\n }\n\n // If we have a pending flush, do nothing\n if (this.#pendingFlush) {\n return;\n }\n\n if ('requestIdleCallback' in window) {\n this.#pendingFlush = requestIdleCallback(() => {\n this.#flush();\n });\n } else {\n // This is not an ideal solution, but it at least waits until the next tick\n this.#pendingFlush = setTimeout(() => {\n this.#flush();\n }, 0);\n }\n }\n\n #flush(): void {\n fetch(new URL('/v1/event', this.#config.endpoint), {\n method: 'POST',\n // TODO: We send an array here with that idea that we can eventually send multiple events.\n body: JSON.stringify({\n events: this.#buffer,\n }),\n headers: {\n 'Content-Type': 'application/json',\n },\n })\n .catch(() => void 0)\n .then(() => {\n this.#buffer = [];\n })\n .catch(() => void 0);\n }\n\n /**\n * If running in debug mode, log the event and its payload to the console.\n */\n #logEvent(event: TelemetryEvent['event'], payload: Record<string, any>) {\n if (!this.isDebug) {\n return;\n }\n\n if (typeof console.groupCollapsed !== 'undefined') {\n console.groupCollapsed('[clerk/telemetry]', event);\n console.log(payload);\n console.groupEnd();\n } else {\n console.log('[clerk/telemetry]', event, payload);\n }\n }\n\n /**\n * If in browser, attempt to lazily grab the SDK metadata from the Clerk singleton, otherwise fallback to the initially passed in values.\n *\n * This is necessary because the sdkMetadata can be set by the host SDK after the TelemetryCollector is instantiated.\n */\n #getSDKMetadata() {\n const sdkMetadata = {\n name: this.#metadata.sdk,\n version: this.#metadata.sdkVersion,\n };\n\n if (typeof window !== 'undefined') {\n const windowWithClerk = window as WindowWithClerk;\n\n if (windowWithClerk.Clerk) {\n const windowClerk = windowWithClerk.Clerk;\n\n if (isWindowClerkWithMetadata(windowClerk) && windowClerk.constructor.sdkMetadata) {\n const { name, version } = windowClerk.constructor.sdkMetadata;\n\n // Only update properties if they exist to avoid overwriting with undefined\n if (name !== undefined) {\n sdkMetadata.name = name;\n }\n if (version !== undefined) {\n sdkMetadata.version = version;\n }\n }\n }\n }\n\n return sdkMetadata;\n }\n\n /**\n * Append relevant metadata from the Clerk singleton to the event payload.\n */\n #preparePayload(event: TelemetryEvent['event'], payload: TelemetryEvent['payload']): TelemetryEvent {\n const sdkMetadata = this.#getSDKMetadata();\n\n return {\n event,\n cv: this.#metadata.clerkVersion ?? '',\n it: this.#metadata.instanceType ?? '',\n sdk: sdkMetadata.name,\n sdkv: sdkMetadata.version,\n ...(this.#metadata.publishableKey ? { pk: this.#metadata.publishableKey } : {}),\n ...(this.#metadata.secretKey ? { sk: this.#metadata.secretKey } : {}),\n payload,\n };\n }\n}\n","import type { TelemetryEventRaw } from '@clerk/types';\n\nconst EVENT_COMPONENT_MOUNTED = 'COMPONENT_MOUNTED';\nconst EVENT_COMPONENT_OPENED = 'COMPONENT_OPENED';\nconst EVENT_SAMPLING_RATE = 0.1;\n\ntype ComponentMountedBase = {\n component: string;\n};\n\ntype EventPrebuiltComponent = ComponentMountedBase & {\n appearanceProp: boolean;\n elements: boolean;\n variables: boolean;\n baseTheme: boolean;\n};\n\ntype EventComponentMounted = ComponentMountedBase & TelemetryEventRaw['payload'];\n\nfunction createPrebuiltComponentEvent(event: typeof EVENT_COMPONENT_MOUNTED | typeof EVENT_COMPONENT_OPENED) {\n return function (\n component: string,\n props?: Record<string, any>,\n additionalPayload?: TelemetryEventRaw['payload'],\n ): TelemetryEventRaw<EventPrebuiltComponent> {\n return {\n event,\n eventSamplingRate: EVENT_SAMPLING_RATE,\n payload: {\n component,\n appearanceProp: Boolean(props?.appearance),\n baseTheme: Boolean(props?.appearance?.baseTheme),\n elements: Boolean(props?.appearance?.elements),\n variables: Boolean(props?.appearance?.variables),\n ...additionalPayload,\n },\n };\n };\n}\n\n/**\n * Helper function for `telemetry.record()`. Create a consistent event object for when a prebuilt (AIO) component is mounted.\n *\n * @param component - The name of the component.\n * @param props - The props passed to the component. Will be filtered to a known list of props.\n * @param additionalPayload - Additional data to send with the event.\n *\n * @example\n * telemetry.record(eventPrebuiltComponentMounted('SignUp', props));\n */\nexport function eventPrebuiltComponentMounted(\n component: string,\n props?: Record<string, any>,\n additionalPayload?: TelemetryEventRaw['payload'],\n): TelemetryEventRaw<EventPrebuiltComponent> {\n return createPrebuiltComponentEvent(EVENT_COMPONENT_MOUNTED)(component, props, additionalPayload);\n}\n\n/**\n * Helper function for `telemetry.record()`. Create a consistent event object for when a prebuilt (AIO) component is opened as a modal.\n *\n * @param component - The name of the component.\n * @param props - The props passed to the component. Will be filtered to a known list of props.\n * @param additionalPayload - Additional data to send with the event.\n *\n * @example\n * telemetry.record(eventPrebuiltComponentOpened('GoogleOneTap', props));\n */\nexport function eventPrebuiltComponentOpened(\n component: string,\n props?: Record<string, any>,\n additionalPayload?: TelemetryEventRaw['payload'],\n): TelemetryEventRaw<EventPrebuiltComponent> {\n return createPrebuiltComponentEvent(EVENT_COMPONENT_OPENED)(component, props, additionalPayload);\n}\n\n/**\n * Helper function for `telemetry.record()`. Create a consistent event object for when a component is mounted. Use `eventPrebuiltComponentMounted` for prebuilt components.\n *\n * **Caution:** Filter the `props` you pass to this function to avoid sending too much data.\n *\n * @param component - The name of the component.\n * @param props - The props passed to the component. Ideally you only pass a handful of props here.\n *\n * @example\n * telemetry.record(eventComponentMounted('SignUp', props));\n */\nexport function eventComponentMounted(\n component: string,\n props: TelemetryEventRaw['payload'] = {},\n): TelemetryEventRaw<EventComponentMounted> {\n return {\n event: EVENT_COMPONENT_MOUNTED,\n eventSamplingRate: EVENT_SAMPLING_RATE,\n payload: {\n component,\n ...props,\n },\n };\n}\n","import type { TelemetryEventRaw } from '@clerk/types';\n\nconst EVENT_METHOD_CALLED = 'METHOD_CALLED';\n\ntype EventMethodCalled = {\n method: string;\n} & Record<string, string | number | boolean>;\n\n/**\n * Fired when a helper method is called from a Clerk SDK.\n */\nexport function eventMethodCalled(\n method: string,\n payload?: Record<string, unknown>,\n): TelemetryEventRaw<EventMethodCalled> {\n return {\n event: EVENT_METHOD_CALLED,\n payload: {\n method,\n ...payload,\n },\n };\n}\n","import type { TelemetryEventRaw } from '@clerk/types';\n\nconst EVENT_FRAMEWORK_METADATA = 'FRAMEWORK_METADATA';\nconst EVENT_SAMPLING_RATE = 0.1;\n\ntype EventFrameworkMetadata = Record<string, string | number | boolean>;\n\n/**\n * Fired when a helper method is called from a Clerk SDK.\n */\nexport function eventFrameworkMetadata(payload: EventFrameworkMetadata): TelemetryEventRaw<EventFrameworkMetadata> {\n return {\n event: EVENT_FRAMEWORK_METADATA,\n eventSamplingRate: EVENT_SAMPLING_RATE,\n payload,\n };\n}\n"],"mappings":"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","names":["EVENT_SAMPLING_RATE"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
versionSelector
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-EXVDK5P4.mjs";
|
|
4
4
|
import {
|
|
5
5
|
isValidProxyUrl,
|
|
6
6
|
proxyUrlToAbsoluteURL
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
clerkJsScriptUrl,
|
|
140
140
|
buildClerkJsScriptAttributes
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-WOYMONT7.mjs.map
|
package/dist/index.js
CHANGED
|
@@ -1276,14 +1276,14 @@ var ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/;
|
|
|
1276
1276
|
var isAbsoluteUrl = (url) => ABSOLUTE_URL_REGEX.test(url);
|
|
1277
1277
|
|
|
1278
1278
|
// src/versionSelector.ts
|
|
1279
|
-
var versionSelector = (clerkJSVersion, packageVersion = "5.79.0
|
|
1279
|
+
var versionSelector = (clerkJSVersion, packageVersion = "5.79.0") => {
|
|
1280
1280
|
if (clerkJSVersion) {
|
|
1281
1281
|
return clerkJSVersion;
|
|
1282
1282
|
}
|
|
1283
1283
|
const prereleaseTag = getPrereleaseTag(packageVersion);
|
|
1284
1284
|
if (prereleaseTag) {
|
|
1285
1285
|
if (prereleaseTag === "snapshot") {
|
|
1286
|
-
return "5.79.0
|
|
1286
|
+
return "5.79.0";
|
|
1287
1287
|
}
|
|
1288
1288
|
return prereleaseTag;
|
|
1289
1289
|
}
|