From ee65c836e008a32f8f1c9f54bf82b44762e1c5c7 Mon Sep 17 00:00:00 2001 From: Blue Mouse Date: Fri, 26 Dec 2025 23:46:43 +0000 Subject: [PATCH 1/3] bump to 4.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a1f2e3f..559aea8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "swetrix", - "version": "3.7.2", + "version": "4.0.0", "description": "The JavaScript analytics client for Swetrix Analytics", "type": "module", "main": "dist/swetrix.cjs.js", From d66947cb26d64b7e3f42e706256fc3137dcef8a4 Mon Sep 17 00:00:00 2001 From: Blue Mouse Date: Fri, 26 Dec 2025 23:49:01 +0000 Subject: [PATCH 2/3] Build --- dist/esnext/Lib.d.ts | 148 +++++++++++++ dist/esnext/Lib.js | 262 ++++++++++++++++++++++ dist/esnext/Lib.js.map | 2 +- dist/esnext/index.d.ts | 148 ++++++++++++- dist/esnext/index.js | 176 +++++++++++++++ dist/esnext/index.js.map | 2 +- dist/swetrix.cjs.js | 461 ++++++++++++++++++++++++++++++++++++++- dist/swetrix.cjs.js.map | 2 +- dist/swetrix.es5.js | 455 +++++++++++++++++++++++++++++++++++++- dist/swetrix.es5.js.map | 2 +- dist/swetrix.js | 2 +- dist/swetrix.js.map | 2 +- 12 files changed, 1645 insertions(+), 17 deletions(-) diff --git a/dist/esnext/Lib.d.ts b/dist/esnext/Lib.d.ts index e7aab61..e6fa464 100644 --- a/dist/esnext/Lib.d.ts +++ b/dist/esnext/Lib.d.ts @@ -14,6 +14,11 @@ export interface LibOptions { respectDNT?: boolean; /** Set a custom URL of the API server (for selfhosted variants of Swetrix). */ apiURL?: string; + /** + * Optional profile ID for long-term user tracking. + * If set, it will be used for all pageviews and events unless overridden per-call. + */ + profileId?: string; } export interface TrackEventOptions { /** The custom event name. */ @@ -24,6 +29,8 @@ export interface TrackEventOptions { meta?: { [key: string]: string | number | boolean | null | undefined; }; + /** Optional profile ID for long-term user tracking. Overrides the global profileId if set. */ + profileId?: string; } export interface IPageViewPayload { lc?: string; @@ -39,6 +46,8 @@ export interface IPageViewPayload { meta?: { [key: string]: string | number | boolean | null | undefined; }; + /** Optional profile ID for long-term user tracking. Overrides the global profileId if set. */ + profileId?: string; } export interface IErrorEventPayload { name: string; @@ -66,6 +75,28 @@ interface IPerfPayload { page_load: number; ttfb: number; } +/** + * Options for evaluating feature flags. + */ +export interface FeatureFlagsOptions { + /** + * Optional profile ID for long-term user tracking. + * If not provided, an anonymous profile ID will be generated server-side based on IP and user agent. + * Overrides the global profileId if set. + */ + profileId?: string; +} +/** + * Options for evaluating experiments. + */ +export interface ExperimentOptions { + /** + * Optional profile ID for long-term user tracking. + * If not provided, an anonymous profile ID will be generated server-side based on IP and user agent. + * Overrides the global profileId if set. + */ + profileId?: string; +} /** * The object returned by `trackPageViews()`, used to stop tracking pages. */ @@ -141,6 +172,7 @@ export declare class Lib { private perfStatsCollected; private activePage; private errorListenerExists; + private cachedData; constructor(projectID: string, options?: LibOptions | undefined); captureError(event: ErrorEvent): void; trackErrors(options?: ErrorOptions): ErrorActions; @@ -148,6 +180,122 @@ export declare class Lib { track(event: TrackEventOptions): Promise; trackPageViews(options?: PageViewsOptions): PageActions; getPerformanceStats(): IPerfPayload | {}; + /** + * Fetches all feature flags and experiments for the project. + * Results are cached for 5 minutes by default. + * + * @param options - Options for evaluating feature flags. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of flag keys to boolean values. + */ + getFeatureFlags(options?: FeatureFlagsOptions, forceRefresh?: boolean): Promise>; + /** + * Internal method to fetch both feature flags and experiments from the API. + */ + private fetchFlagsAndExperiments; + /** + * Gets the value of a single feature flag. + * + * @param key - The feature flag key. + * @param options - Options for evaluating the feature flag. + * @param defaultValue - Default value to return if the flag is not found. Defaults to false. + * @returns A promise that resolves to the boolean value of the flag. + */ + getFeatureFlag(key: string, options?: FeatureFlagsOptions, defaultValue?: boolean): Promise; + /** + * Clears the cached feature flags and experiments, forcing a fresh fetch on the next call. + */ + clearFeatureFlagsCache(): void; + /** + * Fetches all A/B test experiments for the project. + * Results are cached for 5 minutes by default (shared cache with feature flags). + * + * @param options - Options for evaluating experiments. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of experiment IDs to variant keys. + * + * @example + * ```typescript + * const experiments = await getExperiments() + * // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' } + * ``` + */ + getExperiments(options?: ExperimentOptions, forceRefresh?: boolean): Promise>; + /** + * Gets the variant key for a specific A/B test experiment. + * + * @param experimentId - The experiment ID. + * @param options - Options for evaluating the experiment. + * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null. + * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found. + * + * @example + * ```typescript + * const variant = await getExperiment('checkout-redesign') + * + * if (variant === 'new-checkout') { + * // Show new checkout flow + * } else { + * // Show control (original) checkout + * } + * ``` + */ + getExperiment(experimentId: string, options?: ExperimentOptions, defaultVariant?: string | null): Promise; + /** + * Clears the cached experiments (alias for clearFeatureFlagsCache since they share the same cache). + */ + clearExperimentsCache(): void; + /** + * Gets the anonymous profile ID for the current visitor. + * If profileId was set via init options, returns that. + * Otherwise, requests server to generate one from IP/UA hash. + * + * This ID can be used for revenue attribution with payment providers. + * + * @returns A promise that resolves to the profile ID string, or null on error. + * + * @example + * ```typescript + * const profileId = await swetrix.getProfileId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: profileId, + * swetrix_session_id: await swetrix.getSessionId() + * } + * }) + * ``` + */ + getProfileId(): Promise; + /** + * Gets the current session ID for the visitor. + * Session IDs are generated server-side based on IP and user agent. + * + * This ID can be used for revenue attribution with payment providers. + * + * @returns A promise that resolves to the session ID string, or null on error. + * + * @example + * ```typescript + * const sessionId = await swetrix.getSessionId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: await swetrix.getProfileId(), + * swetrix_session_id: sessionId + * } + * }) + * ``` + */ + getSessionId(): Promise; + /** + * Gets the API base URL (without /log suffix). + */ + private getApiBase; private heartbeat; private trackPathChange; private trackPage; diff --git a/dist/esnext/Lib.js b/dist/esnext/Lib.js index e9b4285..ad369bf 100644 --- a/dist/esnext/Lib.js +++ b/dist/esnext/Lib.js @@ -3,6 +3,9 @@ export const defaultActions = { stop() { }, }; const DEFAULT_API_HOST = 'https://api.swetrix.com/log'; +const DEFAULT_API_BASE = 'https://api.swetrix.com'; +// Default cache duration: 5 minutes +const DEFAULT_CACHE_DURATION = 5 * 60 * 1000; export class Lib { constructor(projectID, options) { this.projectID = projectID; @@ -13,6 +16,7 @@ export class Lib { this.perfStatsCollected = false; this.activePage = null; this.errorListenerExists = false; + this.cachedData = null; this.trackPathChange = this.trackPathChange.bind(this); this.heartbeat = this.heartbeat.bind(this); this.captureError = this.captureError.bind(this); @@ -98,6 +102,7 @@ export class Lib { ca: getUTMCampaign(), te: getUTMTerm(), co: getUTMContent(), + profileId: event.profileId ?? this.options?.profileId, }; await this.sendRequest('custom', data); } @@ -156,6 +161,259 @@ export class Lib { ttfb: perf.responseStart - perf.requestStart, }; } + /** + * Fetches all feature flags and experiments for the project. + * Results are cached for 5 minutes by default. + * + * @param options - Options for evaluating feature flags. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of flag keys to boolean values. + */ + async getFeatureFlags(options, forceRefresh) { + if (!isInBrowser()) { + return {}; + } + const requestedProfileId = options?.profileId ?? this.options?.profileId; + // Check cache first - must match profileId and not be expired + if (!forceRefresh && this.cachedData) { + const now = Date.now(); + const isSameProfile = this.cachedData.profileId === requestedProfileId; + if (isSameProfile && now - this.cachedData.timestamp < DEFAULT_CACHE_DURATION) { + return this.cachedData.flags; + } + } + try { + await this.fetchFlagsAndExperiments(options); + return this.cachedData?.flags || {}; + } + catch (error) { + console.warn('[Swetrix] Error fetching feature flags:', error); + return this.cachedData?.flags || {}; + } + } + /** + * Internal method to fetch both feature flags and experiments from the API. + */ + async fetchFlagsAndExperiments(options) { + const apiBase = this.getApiBase(); + const body = { + pid: this.projectID, + }; + // Use profileId from options, or fall back to global profileId + const profileId = options?.profileId ?? this.options?.profileId; + if (profileId) { + body.profileId = profileId; + } + const response = await fetch(`${apiBase}/feature-flag/evaluate`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(body), + }); + if (!response.ok) { + console.warn('[Swetrix] Failed to fetch feature flags and experiments:', response.status); + return; + } + const data = (await response.json()); + // Use profileId from options, or fall back to global profileId + const cachedProfileId = options?.profileId ?? this.options?.profileId; + // Update cache with both flags and experiments + this.cachedData = { + flags: data.flags || {}, + experiments: data.experiments || {}, + timestamp: Date.now(), + profileId: cachedProfileId, + }; + } + /** + * Gets the value of a single feature flag. + * + * @param key - The feature flag key. + * @param options - Options for evaluating the feature flag. + * @param defaultValue - Default value to return if the flag is not found. Defaults to false. + * @returns A promise that resolves to the boolean value of the flag. + */ + async getFeatureFlag(key, options, defaultValue = false) { + const flags = await this.getFeatureFlags(options); + return flags[key] ?? defaultValue; + } + /** + * Clears the cached feature flags and experiments, forcing a fresh fetch on the next call. + */ + clearFeatureFlagsCache() { + this.cachedData = null; + } + /** + * Fetches all A/B test experiments for the project. + * Results are cached for 5 minutes by default (shared cache with feature flags). + * + * @param options - Options for evaluating experiments. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of experiment IDs to variant keys. + * + * @example + * ```typescript + * const experiments = await getExperiments() + * // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' } + * ``` + */ + async getExperiments(options, forceRefresh) { + if (!isInBrowser()) { + return {}; + } + const requestedProfileId = options?.profileId ?? this.options?.profileId; + // Check cache first - must match profileId and not be expired + if (!forceRefresh && this.cachedData) { + const now = Date.now(); + const isSameProfile = this.cachedData.profileId === requestedProfileId; + if (isSameProfile && now - this.cachedData.timestamp < DEFAULT_CACHE_DURATION) { + return this.cachedData.experiments; + } + } + try { + await this.fetchFlagsAndExperiments(options); + return this.cachedData?.experiments || {}; + } + catch (error) { + console.warn('[Swetrix] Error fetching experiments:', error); + return this.cachedData?.experiments || {}; + } + } + /** + * Gets the variant key for a specific A/B test experiment. + * + * @param experimentId - The experiment ID. + * @param options - Options for evaluating the experiment. + * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null. + * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found. + * + * @example + * ```typescript + * const variant = await getExperiment('checkout-redesign') + * + * if (variant === 'new-checkout') { + * // Show new checkout flow + * } else { + * // Show control (original) checkout + * } + * ``` + */ + async getExperiment(experimentId, options, defaultVariant = null) { + const experiments = await this.getExperiments(options); + return experiments[experimentId] ?? defaultVariant; + } + /** + * Clears the cached experiments (alias for clearFeatureFlagsCache since they share the same cache). + */ + clearExperimentsCache() { + this.cachedData = null; + } + /** + * Gets the anonymous profile ID for the current visitor. + * If profileId was set via init options, returns that. + * Otherwise, requests server to generate one from IP/UA hash. + * + * This ID can be used for revenue attribution with payment providers. + * + * @returns A promise that resolves to the profile ID string, or null on error. + * + * @example + * ```typescript + * const profileId = await swetrix.getProfileId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: profileId, + * swetrix_session_id: await swetrix.getSessionId() + * } + * }) + * ``` + */ + async getProfileId() { + // If profileId is already set in options, return it + if (this.options?.profileId) { + return this.options.profileId; + } + if (!isInBrowser()) { + return null; + } + try { + const apiBase = this.getApiBase(); + const response = await fetch(`${apiBase}/log/profile-id`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ pid: this.projectID }), + }); + if (!response.ok) { + return null; + } + const data = (await response.json()); + return data.profileId; + } + catch { + return null; + } + } + /** + * Gets the current session ID for the visitor. + * Session IDs are generated server-side based on IP and user agent. + * + * This ID can be used for revenue attribution with payment providers. + * + * @returns A promise that resolves to the session ID string, or null on error. + * + * @example + * ```typescript + * const sessionId = await swetrix.getSessionId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: await swetrix.getProfileId(), + * swetrix_session_id: sessionId + * } + * }) + * ``` + */ + async getSessionId() { + if (!isInBrowser()) { + return null; + } + try { + const apiBase = this.getApiBase(); + const response = await fetch(`${apiBase}/log/session-id`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ pid: this.projectID }), + }); + if (!response.ok) { + return null; + } + const data = (await response.json()); + return data.sessionId; + } + catch { + return null; + } + } + /** + * Gets the API base URL (without /log suffix). + */ + getApiBase() { + if (this.options?.apiURL) { + // Remove trailing /log if present + return this.options.apiURL.replace(/\/log\/?$/, ''); + } + return DEFAULT_API_BASE; + } heartbeat() { if (!this.pageViewsOptions?.heartbeatOnBackground && document.visibilityState === 'hidden') { return; @@ -163,6 +421,9 @@ export class Lib { const data = { pid: this.projectID, }; + if (this.options?.profileId) { + data.profileId = this.options.profileId; + } this.sendRequest('hb', data); } // Tracking path changes. If path changes -> calling this.trackPage method @@ -201,6 +462,7 @@ export class Lib { ca: getUTMCampaign(), te: getUTMTerm(), co: getUTMContent(), + profileId: this.options?.profileId, ...payload, }; if (evokeCallback && this.pageViewsOptions?.callback) { diff --git a/dist/esnext/Lib.js.map b/dist/esnext/Lib.js.map index 8434f2b..798c67f 100644 --- a/dist/esnext/Lib.js.map +++ b/dist/esnext/Lib.js.map @@ -1 +1 @@ -{"version":3,"file":"Lib.js","sourceRoot":"","sources":["../../src/Lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Lib.js","sourceRoot":"","sources":["../../src/Lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/esnext/index.d.ts b/dist/esnext/index.d.ts index bb39b07..c3915a4 100644 --- a/dist/esnext/index.d.ts +++ b/dist/esnext/index.d.ts @@ -1,4 +1,4 @@ -import { Lib, LibOptions, TrackEventOptions, PageViewsOptions, ErrorOptions, PageActions, ErrorActions, IErrorEventPayload, IPageViewPayload } from './Lib.js'; +import { Lib, LibOptions, TrackEventOptions, PageViewsOptions, ErrorOptions, PageActions, ErrorActions, IErrorEventPayload, IPageViewPayload, FeatureFlagsOptions, ExperimentOptions } from './Lib.js'; export declare let LIB_INSTANCE: Lib | null; /** * Initialise the tracking library instance (other methods won't work if the library is not initialised). @@ -54,4 +54,148 @@ export interface IPageviewOptions { unique?: boolean; } export declare function pageview(options: IPageviewOptions): void; -export { LibOptions, TrackEventOptions, PageViewsOptions, ErrorOptions, PageActions, ErrorActions, IErrorEventPayload, IPageViewPayload, }; +/** + * Fetches all feature flags for the project. + * Results are cached for 5 minutes by default. + * + * @param options - Options for evaluating feature flags (visitorId, attributes). + * @param forceRefresh - If true, bypasses the cache and fetches fresh flags. + * @returns A promise that resolves to a record of flag keys to boolean values. + * + * @example + * ```typescript + * const flags = await getFeatureFlags({ + * visitorId: 'user-123', + * attributes: { cc: 'US', dv: 'desktop' } + * }) + * + * if (flags['new-checkout']) { + * // Show new checkout flow + * } + * ``` + */ +export declare function getFeatureFlags(options?: FeatureFlagsOptions, forceRefresh?: boolean): Promise>; +/** + * Gets the value of a single feature flag. + * + * @param key - The feature flag key. + * @param options - Options for evaluating the feature flag (visitorId, attributes). + * @param defaultValue - Default value to return if the flag is not found. Defaults to false. + * @returns A promise that resolves to the boolean value of the flag. + * + * @example + * ```typescript + * const isEnabled = await getFeatureFlag('dark-mode', { visitorId: 'user-123' }) + * + * if (isEnabled) { + * // Enable dark mode + * } + * ``` + */ +export declare function getFeatureFlag(key: string, options?: FeatureFlagsOptions, defaultValue?: boolean): Promise; +/** + * Clears the cached feature flags, forcing a fresh fetch on the next call. + * Useful when you know the user's context has changed significantly. + */ +export declare function clearFeatureFlagsCache(): void; +/** + * Fetches all A/B test experiments for the project. + * Results are cached for 5 minutes by default (shared cache with feature flags). + * + * @param options - Options for evaluating experiments. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of experiment IDs to variant keys. + * + * @example + * ```typescript + * const experiments = await getExperiments() + * // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' } + * + * // Use the assigned variant + * const checkoutVariant = experiments['checkout-experiment-id'] + * if (checkoutVariant === 'new-checkout') { + * showNewCheckout() + * } else { + * showOriginalCheckout() + * } + * ``` + */ +export declare function getExperiments(options?: ExperimentOptions, forceRefresh?: boolean): Promise>; +/** + * Gets the variant key for a specific A/B test experiment. + * + * @param experimentId - The experiment ID. + * @param options - Options for evaluating the experiment. + * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null. + * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found. + * + * @example + * ```typescript + * const variant = await getExperiment('checkout-redesign-experiment-id') + * + * if (variant === 'new-checkout') { + * // Show new checkout flow + * showNewCheckout() + * } else if (variant === 'control') { + * // Show original checkout (control group) + * showOriginalCheckout() + * } else { + * // Experiment not running or user not included + * showOriginalCheckout() + * } + * ``` + */ +export declare function getExperiment(experimentId: string, options?: ExperimentOptions, defaultVariant?: string | null): Promise; +/** + * Clears the cached experiments, forcing a fresh fetch on the next call. + * This is an alias for clearFeatureFlagsCache since experiments and flags share the same cache. + */ +export declare function clearExperimentsCache(): void; +/** + * Gets the anonymous profile ID for the current visitor. + * If profileId was set via init options, returns that. + * Otherwise, requests server to generate one from IP/UA hash. + * + * This ID can be used for revenue attribution with payment providers like Paddle. + * + * @returns A promise that resolves to the profile ID string, or null on error. + * + * @example + * ```typescript + * const profileId = await getProfileId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: profileId, + * swetrix_session_id: await getSessionId() + * } + * }) + * ``` + */ +export declare function getProfileId(): Promise; +/** + * Gets the current session ID for the visitor. + * Session IDs are generated server-side based on IP and user agent. + * + * This ID can be used for revenue attribution with payment providers like Paddle. + * + * @returns A promise that resolves to the session ID string, or null on error. + * + * @example + * ```typescript + * const sessionId = await getSessionId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: await getProfileId(), + * swetrix_session_id: sessionId + * } + * }) + * ``` + */ +export declare function getSessionId(): Promise; +export { LibOptions, TrackEventOptions, PageViewsOptions, ErrorOptions, PageActions, ErrorActions, IErrorEventPayload, IPageViewPayload, FeatureFlagsOptions, ExperimentOptions, }; diff --git a/dist/esnext/index.js b/dist/esnext/index.js index f437c30..8a2d9f1 100644 --- a/dist/esnext/index.js +++ b/dist/esnext/index.js @@ -93,4 +93,180 @@ export function pageview(options) { return; LIB_INSTANCE.submitPageView(options.payload, Boolean(options.unique), {}); } +/** + * Fetches all feature flags for the project. + * Results are cached for 5 minutes by default. + * + * @param options - Options for evaluating feature flags (visitorId, attributes). + * @param forceRefresh - If true, bypasses the cache and fetches fresh flags. + * @returns A promise that resolves to a record of flag keys to boolean values. + * + * @example + * ```typescript + * const flags = await getFeatureFlags({ + * visitorId: 'user-123', + * attributes: { cc: 'US', dv: 'desktop' } + * }) + * + * if (flags['new-checkout']) { + * // Show new checkout flow + * } + * ``` + */ +export async function getFeatureFlags(options, forceRefresh) { + if (!LIB_INSTANCE) + return {}; + return LIB_INSTANCE.getFeatureFlags(options, forceRefresh); +} +/** + * Gets the value of a single feature flag. + * + * @param key - The feature flag key. + * @param options - Options for evaluating the feature flag (visitorId, attributes). + * @param defaultValue - Default value to return if the flag is not found. Defaults to false. + * @returns A promise that resolves to the boolean value of the flag. + * + * @example + * ```typescript + * const isEnabled = await getFeatureFlag('dark-mode', { visitorId: 'user-123' }) + * + * if (isEnabled) { + * // Enable dark mode + * } + * ``` + */ +export async function getFeatureFlag(key, options, defaultValue = false) { + if (!LIB_INSTANCE) + return defaultValue; + return LIB_INSTANCE.getFeatureFlag(key, options, defaultValue); +} +/** + * Clears the cached feature flags, forcing a fresh fetch on the next call. + * Useful when you know the user's context has changed significantly. + */ +export function clearFeatureFlagsCache() { + if (!LIB_INSTANCE) + return; + LIB_INSTANCE.clearFeatureFlagsCache(); +} +/** + * Fetches all A/B test experiments for the project. + * Results are cached for 5 minutes by default (shared cache with feature flags). + * + * @param options - Options for evaluating experiments. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of experiment IDs to variant keys. + * + * @example + * ```typescript + * const experiments = await getExperiments() + * // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' } + * + * // Use the assigned variant + * const checkoutVariant = experiments['checkout-experiment-id'] + * if (checkoutVariant === 'new-checkout') { + * showNewCheckout() + * } else { + * showOriginalCheckout() + * } + * ``` + */ +export async function getExperiments(options, forceRefresh) { + if (!LIB_INSTANCE) + return {}; + return LIB_INSTANCE.getExperiments(options, forceRefresh); +} +/** + * Gets the variant key for a specific A/B test experiment. + * + * @param experimentId - The experiment ID. + * @param options - Options for evaluating the experiment. + * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null. + * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found. + * + * @example + * ```typescript + * const variant = await getExperiment('checkout-redesign-experiment-id') + * + * if (variant === 'new-checkout') { + * // Show new checkout flow + * showNewCheckout() + * } else if (variant === 'control') { + * // Show original checkout (control group) + * showOriginalCheckout() + * } else { + * // Experiment not running or user not included + * showOriginalCheckout() + * } + * ``` + */ +export async function getExperiment(experimentId, options, defaultVariant = null) { + if (!LIB_INSTANCE) + return defaultVariant; + return LIB_INSTANCE.getExperiment(experimentId, options, defaultVariant); +} +/** + * Clears the cached experiments, forcing a fresh fetch on the next call. + * This is an alias for clearFeatureFlagsCache since experiments and flags share the same cache. + */ +export function clearExperimentsCache() { + if (!LIB_INSTANCE) + return; + LIB_INSTANCE.clearExperimentsCache(); +} +/** + * Gets the anonymous profile ID for the current visitor. + * If profileId was set via init options, returns that. + * Otherwise, requests server to generate one from IP/UA hash. + * + * This ID can be used for revenue attribution with payment providers like Paddle. + * + * @returns A promise that resolves to the profile ID string, or null on error. + * + * @example + * ```typescript + * const profileId = await getProfileId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: profileId, + * swetrix_session_id: await getSessionId() + * } + * }) + * ``` + */ +export async function getProfileId() { + if (!LIB_INSTANCE) + return null; + return LIB_INSTANCE.getProfileId(); +} +/** + * Gets the current session ID for the visitor. + * Session IDs are generated server-side based on IP and user agent. + * + * This ID can be used for revenue attribution with payment providers like Paddle. + * + * @returns A promise that resolves to the session ID string, or null on error. + * + * @example + * ```typescript + * const sessionId = await getSessionId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: await getProfileId(), + * swetrix_session_id: sessionId + * } + * }) + * ``` + */ +export async function getSessionId() { + if (!LIB_INSTANCE) + return null; + return LIB_INSTANCE.getSessionId(); +} //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/esnext/index.js.map b/dist/esnext/index.js.map index 0e1fa03..491921d 100644 --- a/dist/esnext/index.js.map +++ b/dist/esnext/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAOH,cAAc,GAGf,MAAM,UAAU,CAAA;AAEjB,MAAM,CAAC,IAAI,YAAY,GAAe,IAAI,CAAA;AAE1C;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAC,GAAW,EAAE,OAAoB;IACpD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,KAAwB;IAClD,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0B;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,cAAc,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;QAED,8GAA8G;QAC9G,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC1E,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBACnC,aAAa;gBACb,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;YAC/C,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,OAAO,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,OAA2B;IACpD,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU,EAAE,KAAc,EAAE,MAAgB;IACxE,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;AAC1D,CAAC;AAOD,MAAM,UAAU,QAAQ,CAAC,OAAyB;IAChD,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;AAC3E,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EAOH,cAAc,GAKf,MAAM,UAAU,CAAA;AAEjB,MAAM,CAAC,IAAI,YAAY,GAAe,IAAI,CAAA;AAE1C;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAC,GAAW,EAAE,OAAoB;IACpD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,KAAwB;IAClD,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAA0B;IACnD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,cAAc,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;QAED,8GAA8G;QAC9G,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC1E,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;gBACnC,aAAa;gBACb,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;YAC/C,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,OAAO,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,OAA2B;IACpD,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,EAAU,EAAE,KAAc,EAAE,MAAgB;IACxE,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;AAC1D,CAAC;AAOD,MAAM,UAAU,QAAQ,CAAC,OAAyB;IAChD,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA6B,EAC7B,YAAsB;IAEtB,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAA;IAE5B,OAAO,YAAY,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,OAA6B,EAC7B,eAAwB,KAAK;IAE7B,IAAI,CAAC,YAAY;QAAE,OAAO,YAAY,CAAA;IAEtC,OAAO,YAAY,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,YAAY,CAAC,sBAAsB,EAAE,CAAA;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA2B,EAC3B,YAAsB;IAEtB,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAA;IAE5B,OAAO,YAAY,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,YAAoB,EACpB,OAA2B,EAC3B,iBAAgC,IAAI;IAEpC,IAAI,CAAC,YAAY;QAAE,OAAO,cAAc,CAAA;IAExC,OAAO,YAAY,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC,YAAY;QAAE,OAAM;IAEzB,YAAY,CAAC,qBAAqB,EAAE,CAAA;AACtC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAE9B,OAAO,YAAY,CAAC,YAAY,EAAE,CAAA;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAE9B,OAAO,YAAY,CAAC,YAAY,EAAE,CAAA;AACpC,CAAC"} \ No newline at end of file diff --git a/dist/swetrix.cjs.js b/dist/swetrix.cjs.js index ff1c36c..8d7c4fa 100644 --- a/dist/swetrix.cjs.js +++ b/dist/swetrix.cjs.js @@ -70,6 +70,9 @@ const defaultActions = { stop() { }, }; const DEFAULT_API_HOST = 'https://api.swetrix.com/log'; +const DEFAULT_API_BASE = 'https://api.swetrix.com'; +// Default cache duration: 5 minutes +const DEFAULT_CACHE_DURATION = 5 * 60 * 1000; class Lib { constructor(projectID, options) { this.projectID = projectID; @@ -80,6 +83,7 @@ class Lib { this.perfStatsCollected = false; this.activePage = null; this.errorListenerExists = false; + this.cachedData = null; this.trackPathChange = this.trackPathChange.bind(this); this.heartbeat = this.heartbeat.bind(this); this.captureError = this.captureError.bind(this); @@ -148,7 +152,7 @@ class Lib { this.sendRequest('error', errorPayload); } async track(event) { - var _a, _b; + var _a, _b, _c, _d; if (!this.canTrack()) { return; } @@ -168,6 +172,7 @@ class Lib { ca: getUTMCampaign(), te: getUTMTerm(), co: getUTMContent(), + profileId: (_c = event.profileId) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.profileId, }; await this.sendRequest('custom', data); } @@ -227,14 +232,277 @@ class Lib { ttfb: perf.responseStart - perf.requestStart, }; } - heartbeat() { + /** + * Fetches all feature flags and experiments for the project. + * Results are cached for 5 minutes by default. + * + * @param options - Options for evaluating feature flags. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of flag keys to boolean values. + */ + async getFeatureFlags(options, forceRefresh) { + var _a, _b, _c, _d; + if (!isInBrowser()) { + return {}; + } + const requestedProfileId = (_a = options === null || options === void 0 ? void 0 : options.profileId) !== null && _a !== void 0 ? _a : (_b = this.options) === null || _b === void 0 ? void 0 : _b.profileId; + // Check cache first - must match profileId and not be expired + if (!forceRefresh && this.cachedData) { + const now = Date.now(); + const isSameProfile = this.cachedData.profileId === requestedProfileId; + if (isSameProfile && now - this.cachedData.timestamp < DEFAULT_CACHE_DURATION) { + return this.cachedData.flags; + } + } + try { + await this.fetchFlagsAndExperiments(options); + return ((_c = this.cachedData) === null || _c === void 0 ? void 0 : _c.flags) || {}; + } + catch (error) { + console.warn('[Swetrix] Error fetching feature flags:', error); + return ((_d = this.cachedData) === null || _d === void 0 ? void 0 : _d.flags) || {}; + } + } + /** + * Internal method to fetch both feature flags and experiments from the API. + */ + async fetchFlagsAndExperiments(options) { + var _a, _b, _c, _d; + const apiBase = this.getApiBase(); + const body = { + pid: this.projectID, + }; + // Use profileId from options, or fall back to global profileId + const profileId = (_a = options === null || options === void 0 ? void 0 : options.profileId) !== null && _a !== void 0 ? _a : (_b = this.options) === null || _b === void 0 ? void 0 : _b.profileId; + if (profileId) { + body.profileId = profileId; + } + const response = await fetch(`${apiBase}/feature-flag/evaluate`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(body), + }); + if (!response.ok) { + console.warn('[Swetrix] Failed to fetch feature flags and experiments:', response.status); + return; + } + const data = (await response.json()); + // Use profileId from options, or fall back to global profileId + const cachedProfileId = (_c = options === null || options === void 0 ? void 0 : options.profileId) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.profileId; + // Update cache with both flags and experiments + this.cachedData = { + flags: data.flags || {}, + experiments: data.experiments || {}, + timestamp: Date.now(), + profileId: cachedProfileId, + }; + } + /** + * Gets the value of a single feature flag. + * + * @param key - The feature flag key. + * @param options - Options for evaluating the feature flag. + * @param defaultValue - Default value to return if the flag is not found. Defaults to false. + * @returns A promise that resolves to the boolean value of the flag. + */ + async getFeatureFlag(key, options, defaultValue = false) { + var _a; + const flags = await this.getFeatureFlags(options); + return (_a = flags[key]) !== null && _a !== void 0 ? _a : defaultValue; + } + /** + * Clears the cached feature flags and experiments, forcing a fresh fetch on the next call. + */ + clearFeatureFlagsCache() { + this.cachedData = null; + } + /** + * Fetches all A/B test experiments for the project. + * Results are cached for 5 minutes by default (shared cache with feature flags). + * + * @param options - Options for evaluating experiments. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of experiment IDs to variant keys. + * + * @example + * ```typescript + * const experiments = await getExperiments() + * // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' } + * ``` + */ + async getExperiments(options, forceRefresh) { + var _a, _b, _c, _d; + if (!isInBrowser()) { + return {}; + } + const requestedProfileId = (_a = options === null || options === void 0 ? void 0 : options.profileId) !== null && _a !== void 0 ? _a : (_b = this.options) === null || _b === void 0 ? void 0 : _b.profileId; + // Check cache first - must match profileId and not be expired + if (!forceRefresh && this.cachedData) { + const now = Date.now(); + const isSameProfile = this.cachedData.profileId === requestedProfileId; + if (isSameProfile && now - this.cachedData.timestamp < DEFAULT_CACHE_DURATION) { + return this.cachedData.experiments; + } + } + try { + await this.fetchFlagsAndExperiments(options); + return ((_c = this.cachedData) === null || _c === void 0 ? void 0 : _c.experiments) || {}; + } + catch (error) { + console.warn('[Swetrix] Error fetching experiments:', error); + return ((_d = this.cachedData) === null || _d === void 0 ? void 0 : _d.experiments) || {}; + } + } + /** + * Gets the variant key for a specific A/B test experiment. + * + * @param experimentId - The experiment ID. + * @param options - Options for evaluating the experiment. + * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null. + * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found. + * + * @example + * ```typescript + * const variant = await getExperiment('checkout-redesign') + * + * if (variant === 'new-checkout') { + * // Show new checkout flow + * } else { + * // Show control (original) checkout + * } + * ``` + */ + async getExperiment(experimentId, options, defaultVariant = null) { var _a; + const experiments = await this.getExperiments(options); + return (_a = experiments[experimentId]) !== null && _a !== void 0 ? _a : defaultVariant; + } + /** + * Clears the cached experiments (alias for clearFeatureFlagsCache since they share the same cache). + */ + clearExperimentsCache() { + this.cachedData = null; + } + /** + * Gets the anonymous profile ID for the current visitor. + * If profileId was set via init options, returns that. + * Otherwise, requests server to generate one from IP/UA hash. + * + * This ID can be used for revenue attribution with payment providers. + * + * @returns A promise that resolves to the profile ID string, or null on error. + * + * @example + * ```typescript + * const profileId = await swetrix.getProfileId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: profileId, + * swetrix_session_id: await swetrix.getSessionId() + * } + * }) + * ``` + */ + async getProfileId() { + var _a; + // If profileId is already set in options, return it + if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.profileId) { + return this.options.profileId; + } + if (!isInBrowser()) { + return null; + } + try { + const apiBase = this.getApiBase(); + const response = await fetch(`${apiBase}/log/profile-id`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ pid: this.projectID }), + }); + if (!response.ok) { + return null; + } + const data = (await response.json()); + return data.profileId; + } + catch (_b) { + return null; + } + } + /** + * Gets the current session ID for the visitor. + * Session IDs are generated server-side based on IP and user agent. + * + * This ID can be used for revenue attribution with payment providers. + * + * @returns A promise that resolves to the session ID string, or null on error. + * + * @example + * ```typescript + * const sessionId = await swetrix.getSessionId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: await swetrix.getProfileId(), + * swetrix_session_id: sessionId + * } + * }) + * ``` + */ + async getSessionId() { + if (!isInBrowser()) { + return null; + } + try { + const apiBase = this.getApiBase(); + const response = await fetch(`${apiBase}/log/session-id`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ pid: this.projectID }), + }); + if (!response.ok) { + return null; + } + const data = (await response.json()); + return data.sessionId; + } + catch (_a) { + return null; + } + } + /** + * Gets the API base URL (without /log suffix). + */ + getApiBase() { + var _a; + if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.apiURL) { + // Remove trailing /log if present + return this.options.apiURL.replace(/\/log\/?$/, ''); + } + return DEFAULT_API_BASE; + } + heartbeat() { + var _a, _b; if (!((_a = this.pageViewsOptions) === null || _a === void 0 ? void 0 : _a.heartbeatOnBackground) && document.visibilityState === 'hidden') { return; } const data = { pid: this.projectID, }; + if ((_b = this.options) === null || _b === void 0 ? void 0 : _b.profileId) { + data.profileId = this.options.profileId; + } this.sendRequest('hb', data); } // Tracking path changes. If path changes -> calling this.trackPage method @@ -260,7 +528,7 @@ class Lib { this.submitPageView({ pg }, unique, perf, true); } submitPageView(payload, unique, perf, evokeCallback) { - var _a; + var _a, _b; const privateData = { pid: this.projectID, perf, @@ -275,9 +543,10 @@ class Lib { ca: getUTMCampaign(), te: getUTMTerm(), co: getUTMContent(), + profileId: (_a = this.options) === null || _a === void 0 ? void 0 : _a.profileId, ...payload, }; - if (evokeCallback && ((_a = this.pageViewsOptions) === null || _a === void 0 ? void 0 : _a.callback)) { + if (evokeCallback && ((_b = this.pageViewsOptions) === null || _b === void 0 ? void 0 : _b.callback)) { const callbackResult = this.pageViewsOptions.callback(pvPayload); if (callbackResult === false) { return; @@ -407,7 +676,191 @@ function pageview(options) { return; exports.LIB_INSTANCE.submitPageView(options.payload, Boolean(options.unique), {}); } +/** + * Fetches all feature flags for the project. + * Results are cached for 5 minutes by default. + * + * @param options - Options for evaluating feature flags (visitorId, attributes). + * @param forceRefresh - If true, bypasses the cache and fetches fresh flags. + * @returns A promise that resolves to a record of flag keys to boolean values. + * + * @example + * ```typescript + * const flags = await getFeatureFlags({ + * visitorId: 'user-123', + * attributes: { cc: 'US', dv: 'desktop' } + * }) + * + * if (flags['new-checkout']) { + * // Show new checkout flow + * } + * ``` + */ +async function getFeatureFlags(options, forceRefresh) { + if (!exports.LIB_INSTANCE) + return {}; + return exports.LIB_INSTANCE.getFeatureFlags(options, forceRefresh); +} +/** + * Gets the value of a single feature flag. + * + * @param key - The feature flag key. + * @param options - Options for evaluating the feature flag (visitorId, attributes). + * @param defaultValue - Default value to return if the flag is not found. Defaults to false. + * @returns A promise that resolves to the boolean value of the flag. + * + * @example + * ```typescript + * const isEnabled = await getFeatureFlag('dark-mode', { visitorId: 'user-123' }) + * + * if (isEnabled) { + * // Enable dark mode + * } + * ``` + */ +async function getFeatureFlag(key, options, defaultValue = false) { + if (!exports.LIB_INSTANCE) + return defaultValue; + return exports.LIB_INSTANCE.getFeatureFlag(key, options, defaultValue); +} +/** + * Clears the cached feature flags, forcing a fresh fetch on the next call. + * Useful when you know the user's context has changed significantly. + */ +function clearFeatureFlagsCache() { + if (!exports.LIB_INSTANCE) + return; + exports.LIB_INSTANCE.clearFeatureFlagsCache(); +} +/** + * Fetches all A/B test experiments for the project. + * Results are cached for 5 minutes by default (shared cache with feature flags). + * + * @param options - Options for evaluating experiments. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of experiment IDs to variant keys. + * + * @example + * ```typescript + * const experiments = await getExperiments() + * // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' } + * + * // Use the assigned variant + * const checkoutVariant = experiments['checkout-experiment-id'] + * if (checkoutVariant === 'new-checkout') { + * showNewCheckout() + * } else { + * showOriginalCheckout() + * } + * ``` + */ +async function getExperiments(options, forceRefresh) { + if (!exports.LIB_INSTANCE) + return {}; + return exports.LIB_INSTANCE.getExperiments(options, forceRefresh); +} +/** + * Gets the variant key for a specific A/B test experiment. + * + * @param experimentId - The experiment ID. + * @param options - Options for evaluating the experiment. + * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null. + * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found. + * + * @example + * ```typescript + * const variant = await getExperiment('checkout-redesign-experiment-id') + * + * if (variant === 'new-checkout') { + * // Show new checkout flow + * showNewCheckout() + * } else if (variant === 'control') { + * // Show original checkout (control group) + * showOriginalCheckout() + * } else { + * // Experiment not running or user not included + * showOriginalCheckout() + * } + * ``` + */ +async function getExperiment(experimentId, options, defaultVariant = null) { + if (!exports.LIB_INSTANCE) + return defaultVariant; + return exports.LIB_INSTANCE.getExperiment(experimentId, options, defaultVariant); +} +/** + * Clears the cached experiments, forcing a fresh fetch on the next call. + * This is an alias for clearFeatureFlagsCache since experiments and flags share the same cache. + */ +function clearExperimentsCache() { + if (!exports.LIB_INSTANCE) + return; + exports.LIB_INSTANCE.clearExperimentsCache(); +} +/** + * Gets the anonymous profile ID for the current visitor. + * If profileId was set via init options, returns that. + * Otherwise, requests server to generate one from IP/UA hash. + * + * This ID can be used for revenue attribution with payment providers like Paddle. + * + * @returns A promise that resolves to the profile ID string, or null on error. + * + * @example + * ```typescript + * const profileId = await getProfileId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: profileId, + * swetrix_session_id: await getSessionId() + * } + * }) + * ``` + */ +async function getProfileId() { + if (!exports.LIB_INSTANCE) + return null; + return exports.LIB_INSTANCE.getProfileId(); +} +/** + * Gets the current session ID for the visitor. + * Session IDs are generated server-side based on IP and user agent. + * + * This ID can be used for revenue attribution with payment providers like Paddle. + * + * @returns A promise that resolves to the session ID string, or null on error. + * + * @example + * ```typescript + * const sessionId = await getSessionId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: await getProfileId(), + * swetrix_session_id: sessionId + * } + * }) + * ``` + */ +async function getSessionId() { + if (!exports.LIB_INSTANCE) + return null; + return exports.LIB_INSTANCE.getSessionId(); +} +exports.clearExperimentsCache = clearExperimentsCache; +exports.clearFeatureFlagsCache = clearFeatureFlagsCache; +exports.getExperiment = getExperiment; +exports.getExperiments = getExperiments; +exports.getFeatureFlag = getFeatureFlag; +exports.getFeatureFlags = getFeatureFlags; +exports.getProfileId = getProfileId; +exports.getSessionId = getSessionId; exports.init = init; exports.pageview = pageview; exports.track = track; diff --git a/dist/swetrix.cjs.js.map b/dist/swetrix.cjs.js.map index dbdbf41..f1ffe55 100644 --- a/dist/swetrix.cjs.js.map +++ b/dist/swetrix.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"swetrix.cjs.js","sources":["../src/utils.ts","../src/Lib.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":["LIB_INSTANCE"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"swetrix.cjs.js","sources":["../src/utils.ts","../src/Lib.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":["LIB_INSTANCE"],"mappings":";;AAKA,MAAM,YAAY,GAAG,CAAC,GAAW,KAAwB;IACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;IACtC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS;AACrC,CAAC;AAED,MAAM,cAAc,GAAG,sCAAsC;AAC7D,MAAM,gBAAgB,GAAG,6BAA6B;AACtD,MAAM,cAAc,GAAG,2BAA2B;AAClD,MAAM,YAAY,GAAG,yBAAyB;AAC9C,MAAM,eAAe,GAAG,4BAA4B;AAE7C,MAAM,WAAW,GAAG,MAAK;AAC9B,IAAA,OAAO,OAAO,MAAM,KAAK,WAAW;AACtC,CAAC;AAEM,MAAM,WAAW,GAAG,MAAK;AAC9B,IAAA,OAAO,CAAA,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,MAAK,WAAW,IAAI,CAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAE,QAAQ,MAAK,WAAW,IAAI,CAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAE,QAAQ,MAAK,EAAE;AAC9G,CAAC;AAEM,MAAM,WAAW,GAAG,MAAK;AAC9B,IAAA,OAAO,SAAS,KAAT,IAAA,IAAA,SAAS,uBAAT,SAAS,CAAE,SAAS;AAC7B,CAAC;AAEM,MAAM,SAAS,GAAG,MAAK;IAC5B,OAAO,OAAO,SAAS,CAAC,SAAS,KAAK,WAAW,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ;AACjG,CAAC;AAEM,MAAM,WAAW,GAAG,MAAK;AAC9B,IAAA,IAAI;QACF,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;;IACvD,OAAO,CAAC,EAAE;QACV;;AAEJ,CAAC;AAEM,MAAM,WAAW,GAAG,MAAyB;AAClD,IAAA,OAAO,QAAQ,CAAC,QAAQ,IAAI,SAAS;AACvC,CAAC;AAEM,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC;AAEvD,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC;AAEvD,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC;AAE3D,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;AAEnD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC;AAEhE;;;;;;;;;;;;;AAaG;AACI,MAAM,OAAO,GAAG,CAAC,OAAiB,KAAY;AACnD,IAAA,IAAI,MAAM,GAAG,QAAQ,CAAC,QAAQ,IAAI,EAAE;AAEpC,IAAA,IAAI,OAAO,CAAC,IAAI,EAAE;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAC5C,MAAM,UAAU,GAAG,SAAS,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI;QACzF,MAAM,IAAI,UAAU;;AAGtB,IAAA,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;QAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,KAAK,SAAS,GAAG,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAClG,MAAM,IAAI,YAAY;;AAGxB,IAAA,OAAO,MAAM;AACf,CAAC;;ACsIM,MAAM,cAAc,GAAG;AAC5B,IAAA,IAAI,MAAK;CACV;AAED,MAAM,gBAAgB,GAAG,6BAA6B;AACtD,MAAM,gBAAgB,GAAG,yBAAyB;AAElD;AACA,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;MAE/B,GAAG,CAAA;IASd,WAAoB,CAAA,SAAiB,EAAU,OAAoB,EAAA;QAA/C,IAAS,CAAA,SAAA,GAAT,SAAS;QAAkB,IAAO,CAAA,OAAA,GAAP,OAAO;QAR9C,IAAQ,CAAA,QAAA,GAAoB,IAAI;QAChC,IAAgB,CAAA,gBAAA,GAA6B,IAAI;QACjD,IAAa,CAAA,aAAA,GAAyB,IAAI;QAC1C,IAAkB,CAAA,kBAAA,GAAY,KAAK;QACnC,IAAU,CAAA,UAAA,GAAkB,IAAI;QAChC,IAAmB,CAAA,mBAAA,GAAG,KAAK;QAC3B,IAAU,CAAA,UAAA,GAAsB,IAAI;QAG1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;AAGlD,IAAA,YAAY,CAAC,KAAiB,EAAA;;QAC5B,IAAI,QAAO,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,UAAU,CAAA,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YACxG;;QAGF,IAAI,CAAC,WAAW,CACd;;YAEE,QAAQ,EAAE,KAAK,CAAC,QAAQ;;YAGxB,MAAM,EAAE,KAAK,CAAC,MAAM;;YAGpB,KAAK,EAAE,KAAK,CAAC,KAAK;;YAGlB,IAAI,EAAE,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI,KAAI,OAAO;;;;YAKlC,OAAO,EAAE,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,OAAO,KAAI,KAAK,CAAC,OAAO;;AAG9C,YAAA,UAAU,EAAE,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,0CAAE,KAAK;SAC/B,EACD,IAAI,CACL;;AAGH,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAChD,YAAA,OAAO,cAAc;;AAGvB,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO;QAE5B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AACnD,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;QAE/B,OAAO;YACL,IAAI,EAAE,MAAK;gBACT,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC;AACtD,gBAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;aACjC;SACF;;IAGH,WAAW,CAAC,OAA2B,EAAE,aAAuB,EAAA;;AAC9D,QAAA,MAAM,WAAW,GAAG;YAClB,GAAG,EAAE,IAAI,CAAC,SAAS;SACpB;AAED,QAAA,MAAM,YAAY,GAAG;YACnB,EAAE,EACA,IAAI,CAAC,UAAU;AACf,gBAAA,OAAO,CAAC;AACN,oBAAA,IAAI,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,0CAAE,IAAI;AACjC,oBAAA,MAAM,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM;iBACtC,CAAC;YACJ,EAAE,EAAE,SAAS,EAAE;YACf,EAAE,EAAE,WAAW,EAAE;AACjB,YAAA,GAAG,OAAO;SACX;QAED,IAAI,aAAa,KAAI,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EAAE;YACjD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;AAEhE,YAAA,IAAI,cAAc,KAAK,KAAK,EAAE;gBAC5B;;AAGF,YAAA,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;AACxD,gBAAA,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;;;AAI/C,QAAA,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC;AAExC,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC;;IAGzC,MAAM,KAAK,CAAC,KAAwB,EAAA;;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB;;AAGF,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,GAAG,KAAK;YACR,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,EAAE,EACA,IAAI,CAAC,UAAU;AACf,gBAAA,OAAO,CAAC;AACN,oBAAA,IAAI,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,0CAAE,IAAI;AACjC,oBAAA,MAAM,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM;iBACtC,CAAC;YACJ,EAAE,EAAE,SAAS,EAAE;YACf,EAAE,EAAE,WAAW,EAAE;YACjB,GAAG,EAAE,WAAW,EAAE;YAClB,EAAE,EAAE,YAAY,EAAE;YAClB,EAAE,EAAE,YAAY,EAAE;YAClB,EAAE,EAAE,cAAc,EAAE;YACpB,EAAE,EAAE,UAAU,EAAE;YAChB,EAAE,EAAE,aAAa,EAAE;YACnB,SAAS,EAAE,CAAA,EAAA,GAAA,KAAK,CAAC,SAAS,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS;SACtD;QACD,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;;AAGxC,IAAA,cAAc,CAAC,OAA0B,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,OAAO,cAAc;;AAGvB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;;AAG9B,QAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO;AAC/B,QAAA,IAAI,QAAwB;QAE5B,IAAI,EAAC,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,MAAM,CAAA,EAAE;YACpB,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC;;AAGpD,QAAA,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;QAErD,MAAM,IAAI,GAAG,OAAO,CAAC;AACnB,YAAA,IAAI,EAAE,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,IAAI;AACnB,YAAA,MAAM,EAAE,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,MAAM;AACxB,SAAA,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG;YACd,IAAI;AACJ,YAAA,OAAO,EAAE;gBACP,IAAI,EAAE,MAAK;oBACT,aAAa,CAAC,QAAQ,CAAC;oBACvB,aAAa,CAAC,UAAU,CAAC;iBAC1B;AACF,aAAA;SACF;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,KAAP,IAAA,IAAA,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,MAAM,CAAC;AACrC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;;IAG9B,mBAAmB,GAAA;;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,kBAAkB,IAAI,EAAC,CAAA,EAAA,GAAA,MAAM,CAAC,WAAW,0CAAE,gBAAgB,CAAA,EAAE;AACxF,YAAA,OAAO,EAAE;;AAGX,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAgC;QAEhG,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,EAAE;;AAGX,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;QAE9B,OAAO;;YAEL,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB;AAClD,YAAA,GAAG,EAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,GAAG,CAAC;YACpF,IAAI,EAAE,IAAI,CAAC;AACT,kBAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;kBAClC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY;YACvC,QAAQ,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa;;YAG/C,MAAM,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,wBAAwB;YACxD,QAAQ,EAAE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,WAAW;AAC1D,YAAA,SAAS,EAAE,IAAI,CAAC,cAAc;;AAG9B,YAAA,IAAI,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY;SAC7C;;AAGH;;;;;;;AAOG;AACH,IAAA,MAAM,eAAe,CAAC,OAA6B,EAAE,YAAsB,EAAA;;AACzE,QAAA,IAAI,CAAC,WAAW,EAAE,EAAE;AAClB,YAAA,OAAO,EAAE;;AAGX,QAAA,MAAM,kBAAkB,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,SAAS,mCAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS;;AAGxE,QAAA,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,kBAAkB;AACtE,YAAA,IAAI,aAAa,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,sBAAsB,EAAE;AAC7E,gBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK;;;AAIhC,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;YAC5C,OAAO,CAAA,MAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE;;QACnC,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,KAAK,CAAC;YAC9D,OAAO,CAAA,MAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE;;;AAIvC;;AAEG;IACK,MAAM,wBAAwB,CAAC,OAAiD,EAAA;;AACtF,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;AACjC,QAAA,MAAM,IAAI,GAAwC;YAChD,GAAG,EAAE,IAAI,CAAC,SAAS;SACpB;;AAGD,QAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,SAAS,mCAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS;QAC/D,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;QAG5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAG,EAAA,OAAO,wBAAwB,EAAE;AAC/D,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AACnC,aAAA;AACD,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3B,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,0DAA0D,EAAE,QAAQ,CAAC,MAAM,CAAC;YACzF;;QAGF,MAAM,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAGlC;;AAGD,QAAA,MAAM,eAAe,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,SAAS,mCAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS;;QAGrE,IAAI,CAAC,UAAU,GAAG;AAChB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;AACvB,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;AACnC,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrB,YAAA,SAAS,EAAE,eAAe;SAC3B;;AAGH;;;;;;;AAOG;IACH,MAAM,cAAc,CAAC,GAAW,EAAE,OAA6B,EAAE,eAAwB,KAAK,EAAA;;QAC5F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;AACjD,QAAA,OAAO,MAAA,KAAK,CAAC,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,YAAY;;AAGnC;;AAEG;IACH,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;AAGxB;;;;;;;;;;;;;AAaG;AACH,IAAA,MAAM,cAAc,CAAC,OAA2B,EAAE,YAAsB,EAAA;;AACtE,QAAA,IAAI,CAAC,WAAW,EAAE,EAAE;AAClB,YAAA,OAAO,EAAE;;AAGX,QAAA,MAAM,kBAAkB,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,MAAA,GAAA,MAAA,GAAA,OAAO,CAAE,SAAS,mCAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS;;AAGxE,QAAA,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YACtB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,KAAK,kBAAkB;AACtE,YAAA,IAAI,aAAa,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,sBAAsB,EAAE;AAC7E,gBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW;;;AAItC,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;YAC5C,OAAO,CAAA,MAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,KAAI,EAAE;;QACzC,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC;YAC5D,OAAO,CAAA,MAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,WAAW,KAAI,EAAE;;;AAI7C;;;;;;;;;;;;;;;;;;AAkBG;IACH,MAAM,aAAa,CACjB,YAAoB,EACpB,OAA2B,EAC3B,iBAAgC,IAAI,EAAA;;QAEpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AACtD,QAAA,OAAO,MAAA,WAAW,CAAC,YAAY,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,cAAc;;AAGpD;;AAEG;IACH,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;AAGxB;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACH,IAAA,MAAM,YAAY,GAAA;;;AAEhB,QAAA,IAAI,MAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,SAAS,EAAE;AAC3B,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS;;AAG/B,QAAA,IAAI,CAAC,WAAW,EAAE,EAAE;AAClB,YAAA,OAAO,IAAI;;AAGb,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAG,EAAA,OAAO,iBAAiB,EAAE;AACxD,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,kBAAkB;AACnC,iBAAA;AACD,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AAC9C,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,gBAAA,OAAO,IAAI;;YAGb,MAAM,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiC;YACpE,OAAO,IAAI,CAAC,SAAS;;AACrB,QAAA,OAAA,EAAA,EAAM;AACN,YAAA,OAAO,IAAI;;;AAIf;;;;;;;;;;;;;;;;;;;;;AAqBG;AACH,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,IAAI,CAAC,WAAW,EAAE,EAAE;AAClB,YAAA,OAAO,IAAI;;AAGb,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;YACjC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAG,EAAA,OAAO,iBAAiB,EAAE;AACxD,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,kBAAkB;AACnC,iBAAA;AACD,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AAC9C,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,gBAAA,OAAO,IAAI;;YAGb,MAAM,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiC;YACpE,OAAO,IAAI,CAAC,SAAS;;AACrB,QAAA,OAAA,EAAA,EAAM;AACN,YAAA,OAAO,IAAI;;;AAIf;;AAEG;IACK,UAAU,GAAA;;AAChB,QAAA,IAAI,MAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,EAAE;;AAExB,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;;AAErD,QAAA,OAAO,gBAAgB;;IAGjB,SAAS,GAAA;;AACf,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,qBAAqB,CAAA,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE;YAC1F;;AAGF,QAAA,MAAM,IAAI,GAAwC;YAChD,GAAG,EAAE,IAAI,CAAC,SAAS;SACpB;AAED,QAAA,IAAI,MAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,SAAS,EAAE;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS;;AAGzC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;;;IAItB,eAAe,GAAA;;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;QACpB,MAAM,OAAO,GAAG,OAAO,CAAC;AACtB,YAAA,IAAI,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,0CAAE,IAAI;AACjC,YAAA,MAAM,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,0CAAE,MAAM;AACtC,SAAA,CAAC;AACF,QAAA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ;AAE9B,QAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;;;AAI1B,IAAA,SAAS,CAAC,EAAU,EAAE,MAAA,GAAkB,KAAK,EAAA;QACnD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,EAAE;AAEvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAEvC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;;AAGjD,IAAA,cAAc,CACZ,OAAkC,EAClC,MAAe,EACf,IAAuB,EACvB,aAAuB,EAAA;;AAEvB,QAAA,MAAM,WAAW,GAAG;YAClB,GAAG,EAAE,IAAI,CAAC,SAAS;YACnB,IAAI;YACJ,MAAM;SACP;AAED,QAAA,MAAM,SAAS,GAAG;YAChB,EAAE,EAAE,SAAS,EAAE;YACf,EAAE,EAAE,WAAW,EAAE;YACjB,GAAG,EAAE,WAAW,EAAE;YAClB,EAAE,EAAE,YAAY,EAAE;YAClB,EAAE,EAAE,YAAY,EAAE;YAClB,EAAE,EAAE,cAAc,EAAE;YACpB,EAAE,EAAE,UAAU,EAAE;YAChB,EAAE,EAAE,aAAa,EAAE;AACnB,YAAA,SAAS,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,0CAAE,SAAS;AAClC,YAAA,GAAG,OAAO;SACX;QAED,IAAI,aAAa,KAAI,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ,CAAA,EAAE;YACpD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAA6B,CAAC;AAEpF,YAAA,IAAI,cAAc,KAAK,KAAK,EAAE;gBAC5B;;AAGF,YAAA,IAAI,cAAc,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;AACxD,gBAAA,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC;;;AAI5C,QAAA,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;AAErC,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC;;IAGzB,QAAQ,GAAA;;AACd,QAAA,IACE,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ;AACtB,YAAA,CAAC,WAAW,EAAE;AACd,aAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,0CAAE,UAAU,KAAI,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,0CAAE,UAAU,MAAK,GAAG,CAAC;AAClE,aAAC,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,OAAO,CAAA,IAAI,WAAW,EAAE,CAAC;YACzC,WAAW,EAAE,EACb;AACA,YAAA,OAAO,KAAK;;AAGd,QAAA,OAAO,IAAI;;AAGL,IAAA,MAAM,WAAW,CAAC,IAAY,EAAE,IAAY,EAAA;;QAClD,MAAM,IAAI,GAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,KAAI,gBAAgB;AACrD,QAAA,MAAM,KAAK,CAAC,CAAA,EAAG,IAAI,CAAI,CAAA,EAAA,IAAI,EAAE,EAAE;AAC7B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,kBAAkB;AACnC,aAAA;AACD,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC3B,SAAA,CAAC;;AAEL;;AC/xBUA,oBAAY,GAAe;AAEtC;;;;;;AAMG;AACa,SAAA,IAAI,CAAC,GAAW,EAAE,OAAoB,EAAA;IACpD,IAAI,CAACA,oBAAY,EAAE;QACjBA,oBAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;;AAGtC,IAAA,OAAOA,oBAAY;AACrB;AAEA;;;;;;AAMG;AACI,eAAe,KAAK,CAAC,KAAwB,EAAA;AAClD,IAAA,IAAI,CAACA,oBAAY;QAAE;AAEnB,IAAA,MAAMA,oBAAY,CAAC,KAAK,CAAC,KAAK,CAAC;AACjC;AAEA;;;;;AAKG;AACG,SAAU,UAAU,CAAC,OAA0B,EAAA;AACnD,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;QAC7B,IAAI,CAACA,oBAAY,EAAE;YACjB,OAAO,CAAC,cAAc,CAAC;YACvB;;;QAIF,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE;YACzE,OAAO,CAACA,oBAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;;aACxC;AACL,YAAA,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAK;;gBAEnC,OAAO,CAACA,oBAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC/C,aAAC,CAAC;;AAEN,KAAC,CAAC;AACJ;AAEA;;;;;AAKG;AACG,SAAU,WAAW,CAAC,OAAsB,EAAA;IAChD,IAAI,CAACA,oBAAY,EAAE;AACjB,QAAA,OAAO,cAAc;;AAGvB,IAAA,OAAOA,oBAAY,CAAC,WAAW,CAAC,OAAO,CAAC;AAC1C;AAEA;;;;;;AAMG;AACG,SAAU,UAAU,CAAC,OAA2B,EAAA;AACpD,IAAA,IAAI,CAACA,oBAAY;QAAE;AAEnB,IAAAA,oBAAY,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;AAC1C;AAEA;;;;;;;;;AASG;SACa,aAAa,CAAC,EAAU,EAAE,KAAc,EAAE,MAAgB,EAAA;AACxE,IAAA,IAAI,CAACA,oBAAY;QAAE;AAEnB,IAAAA,oBAAY,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;AAC1D;AAOM,SAAU,QAAQ,CAAC,OAAyB,EAAA;AAChD,IAAA,IAAI,CAACA,oBAAY;QAAE;AAEnB,IAAAA,oBAAY,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;AAC3E;AAEA;;;;;;;;;;;;;;;;;;;AAmBG;AACI,eAAe,eAAe,CACnC,OAA6B,EAC7B,YAAsB,EAAA;AAEtB,IAAA,IAAI,CAACA,oBAAY;AAAE,QAAA,OAAO,EAAE;IAE5B,OAAOA,oBAAY,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC;AAC5D;AAEA;;;;;;;;;;;;;;;;AAgBG;AACI,eAAe,cAAc,CAClC,GAAW,EACX,OAA6B,EAC7B,YAAA,GAAwB,KAAK,EAAA;AAE7B,IAAA,IAAI,CAACA,oBAAY;AAAE,QAAA,OAAO,YAAY;IAEtC,OAAOA,oBAAY,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC;AAChE;AAEA;;;AAGG;SACa,sBAAsB,GAAA;AACpC,IAAA,IAAI,CAACA,oBAAY;QAAE;IAEnBA,oBAAY,CAAC,sBAAsB,EAAE;AACvC;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,eAAe,cAAc,CAClC,OAA2B,EAC3B,YAAsB,EAAA;AAEtB,IAAA,IAAI,CAACA,oBAAY;AAAE,QAAA,OAAO,EAAE;IAE5B,OAAOA,oBAAY,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC;AAC3D;AAEA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AACI,eAAe,aAAa,CACjC,YAAoB,EACpB,OAA2B,EAC3B,cAAA,GAAgC,IAAI,EAAA;AAEpC,IAAA,IAAI,CAACA,oBAAY;AAAE,QAAA,OAAO,cAAc;IAExC,OAAOA,oBAAY,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC;AAC1E;AAEA;;;AAGG;SACa,qBAAqB,GAAA;AACnC,IAAA,IAAI,CAACA,oBAAY;QAAE;IAEnBA,oBAAY,CAAC,qBAAqB,EAAE;AACtC;AAEA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACI,eAAe,YAAY,GAAA;AAChC,IAAA,IAAI,CAACA,oBAAY;AAAE,QAAA,OAAO,IAAI;AAE9B,IAAA,OAAOA,oBAAY,CAAC,YAAY,EAAE;AACpC;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACI,eAAe,YAAY,GAAA;AAChC,IAAA,IAAI,CAACA,oBAAY;AAAE,QAAA,OAAO,IAAI;AAE9B,IAAA,OAAOA,oBAAY,CAAC,YAAY,EAAE;AACpC;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/swetrix.es5.js b/dist/swetrix.es5.js index 7ba5a95..08595b6 100644 --- a/dist/swetrix.es5.js +++ b/dist/swetrix.es5.js @@ -68,6 +68,9 @@ const defaultActions = { stop() { }, }; const DEFAULT_API_HOST = 'https://api.swetrix.com/log'; +const DEFAULT_API_BASE = 'https://api.swetrix.com'; +// Default cache duration: 5 minutes +const DEFAULT_CACHE_DURATION = 5 * 60 * 1000; class Lib { constructor(projectID, options) { this.projectID = projectID; @@ -78,6 +81,7 @@ class Lib { this.perfStatsCollected = false; this.activePage = null; this.errorListenerExists = false; + this.cachedData = null; this.trackPathChange = this.trackPathChange.bind(this); this.heartbeat = this.heartbeat.bind(this); this.captureError = this.captureError.bind(this); @@ -146,7 +150,7 @@ class Lib { this.sendRequest('error', errorPayload); } async track(event) { - var _a, _b; + var _a, _b, _c, _d; if (!this.canTrack()) { return; } @@ -166,6 +170,7 @@ class Lib { ca: getUTMCampaign(), te: getUTMTerm(), co: getUTMContent(), + profileId: (_c = event.profileId) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.profileId, }; await this.sendRequest('custom', data); } @@ -225,14 +230,277 @@ class Lib { ttfb: perf.responseStart - perf.requestStart, }; } - heartbeat() { + /** + * Fetches all feature flags and experiments for the project. + * Results are cached for 5 minutes by default. + * + * @param options - Options for evaluating feature flags. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of flag keys to boolean values. + */ + async getFeatureFlags(options, forceRefresh) { + var _a, _b, _c, _d; + if (!isInBrowser()) { + return {}; + } + const requestedProfileId = (_a = options === null || options === void 0 ? void 0 : options.profileId) !== null && _a !== void 0 ? _a : (_b = this.options) === null || _b === void 0 ? void 0 : _b.profileId; + // Check cache first - must match profileId and not be expired + if (!forceRefresh && this.cachedData) { + const now = Date.now(); + const isSameProfile = this.cachedData.profileId === requestedProfileId; + if (isSameProfile && now - this.cachedData.timestamp < DEFAULT_CACHE_DURATION) { + return this.cachedData.flags; + } + } + try { + await this.fetchFlagsAndExperiments(options); + return ((_c = this.cachedData) === null || _c === void 0 ? void 0 : _c.flags) || {}; + } + catch (error) { + console.warn('[Swetrix] Error fetching feature flags:', error); + return ((_d = this.cachedData) === null || _d === void 0 ? void 0 : _d.flags) || {}; + } + } + /** + * Internal method to fetch both feature flags and experiments from the API. + */ + async fetchFlagsAndExperiments(options) { + var _a, _b, _c, _d; + const apiBase = this.getApiBase(); + const body = { + pid: this.projectID, + }; + // Use profileId from options, or fall back to global profileId + const profileId = (_a = options === null || options === void 0 ? void 0 : options.profileId) !== null && _a !== void 0 ? _a : (_b = this.options) === null || _b === void 0 ? void 0 : _b.profileId; + if (profileId) { + body.profileId = profileId; + } + const response = await fetch(`${apiBase}/feature-flag/evaluate`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(body), + }); + if (!response.ok) { + console.warn('[Swetrix] Failed to fetch feature flags and experiments:', response.status); + return; + } + const data = (await response.json()); + // Use profileId from options, or fall back to global profileId + const cachedProfileId = (_c = options === null || options === void 0 ? void 0 : options.profileId) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.profileId; + // Update cache with both flags and experiments + this.cachedData = { + flags: data.flags || {}, + experiments: data.experiments || {}, + timestamp: Date.now(), + profileId: cachedProfileId, + }; + } + /** + * Gets the value of a single feature flag. + * + * @param key - The feature flag key. + * @param options - Options for evaluating the feature flag. + * @param defaultValue - Default value to return if the flag is not found. Defaults to false. + * @returns A promise that resolves to the boolean value of the flag. + */ + async getFeatureFlag(key, options, defaultValue = false) { + var _a; + const flags = await this.getFeatureFlags(options); + return (_a = flags[key]) !== null && _a !== void 0 ? _a : defaultValue; + } + /** + * Clears the cached feature flags and experiments, forcing a fresh fetch on the next call. + */ + clearFeatureFlagsCache() { + this.cachedData = null; + } + /** + * Fetches all A/B test experiments for the project. + * Results are cached for 5 minutes by default (shared cache with feature flags). + * + * @param options - Options for evaluating experiments. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of experiment IDs to variant keys. + * + * @example + * ```typescript + * const experiments = await getExperiments() + * // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' } + * ``` + */ + async getExperiments(options, forceRefresh) { + var _a, _b, _c, _d; + if (!isInBrowser()) { + return {}; + } + const requestedProfileId = (_a = options === null || options === void 0 ? void 0 : options.profileId) !== null && _a !== void 0 ? _a : (_b = this.options) === null || _b === void 0 ? void 0 : _b.profileId; + // Check cache first - must match profileId and not be expired + if (!forceRefresh && this.cachedData) { + const now = Date.now(); + const isSameProfile = this.cachedData.profileId === requestedProfileId; + if (isSameProfile && now - this.cachedData.timestamp < DEFAULT_CACHE_DURATION) { + return this.cachedData.experiments; + } + } + try { + await this.fetchFlagsAndExperiments(options); + return ((_c = this.cachedData) === null || _c === void 0 ? void 0 : _c.experiments) || {}; + } + catch (error) { + console.warn('[Swetrix] Error fetching experiments:', error); + return ((_d = this.cachedData) === null || _d === void 0 ? void 0 : _d.experiments) || {}; + } + } + /** + * Gets the variant key for a specific A/B test experiment. + * + * @param experimentId - The experiment ID. + * @param options - Options for evaluating the experiment. + * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null. + * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found. + * + * @example + * ```typescript + * const variant = await getExperiment('checkout-redesign') + * + * if (variant === 'new-checkout') { + * // Show new checkout flow + * } else { + * // Show control (original) checkout + * } + * ``` + */ + async getExperiment(experimentId, options, defaultVariant = null) { var _a; + const experiments = await this.getExperiments(options); + return (_a = experiments[experimentId]) !== null && _a !== void 0 ? _a : defaultVariant; + } + /** + * Clears the cached experiments (alias for clearFeatureFlagsCache since they share the same cache). + */ + clearExperimentsCache() { + this.cachedData = null; + } + /** + * Gets the anonymous profile ID for the current visitor. + * If profileId was set via init options, returns that. + * Otherwise, requests server to generate one from IP/UA hash. + * + * This ID can be used for revenue attribution with payment providers. + * + * @returns A promise that resolves to the profile ID string, or null on error. + * + * @example + * ```typescript + * const profileId = await swetrix.getProfileId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: profileId, + * swetrix_session_id: await swetrix.getSessionId() + * } + * }) + * ``` + */ + async getProfileId() { + var _a; + // If profileId is already set in options, return it + if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.profileId) { + return this.options.profileId; + } + if (!isInBrowser()) { + return null; + } + try { + const apiBase = this.getApiBase(); + const response = await fetch(`${apiBase}/log/profile-id`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ pid: this.projectID }), + }); + if (!response.ok) { + return null; + } + const data = (await response.json()); + return data.profileId; + } + catch (_b) { + return null; + } + } + /** + * Gets the current session ID for the visitor. + * Session IDs are generated server-side based on IP and user agent. + * + * This ID can be used for revenue attribution with payment providers. + * + * @returns A promise that resolves to the session ID string, or null on error. + * + * @example + * ```typescript + * const sessionId = await swetrix.getSessionId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: await swetrix.getProfileId(), + * swetrix_session_id: sessionId + * } + * }) + * ``` + */ + async getSessionId() { + if (!isInBrowser()) { + return null; + } + try { + const apiBase = this.getApiBase(); + const response = await fetch(`${apiBase}/log/session-id`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ pid: this.projectID }), + }); + if (!response.ok) { + return null; + } + const data = (await response.json()); + return data.sessionId; + } + catch (_a) { + return null; + } + } + /** + * Gets the API base URL (without /log suffix). + */ + getApiBase() { + var _a; + if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.apiURL) { + // Remove trailing /log if present + return this.options.apiURL.replace(/\/log\/?$/, ''); + } + return DEFAULT_API_BASE; + } + heartbeat() { + var _a, _b; if (!((_a = this.pageViewsOptions) === null || _a === void 0 ? void 0 : _a.heartbeatOnBackground) && document.visibilityState === 'hidden') { return; } const data = { pid: this.projectID, }; + if ((_b = this.options) === null || _b === void 0 ? void 0 : _b.profileId) { + data.profileId = this.options.profileId; + } this.sendRequest('hb', data); } // Tracking path changes. If path changes -> calling this.trackPage method @@ -258,7 +526,7 @@ class Lib { this.submitPageView({ pg }, unique, perf, true); } submitPageView(payload, unique, perf, evokeCallback) { - var _a; + var _a, _b; const privateData = { pid: this.projectID, perf, @@ -273,9 +541,10 @@ class Lib { ca: getUTMCampaign(), te: getUTMTerm(), co: getUTMContent(), + profileId: (_a = this.options) === null || _a === void 0 ? void 0 : _a.profileId, ...payload, }; - if (evokeCallback && ((_a = this.pageViewsOptions) === null || _a === void 0 ? void 0 : _a.callback)) { + if (evokeCallback && ((_b = this.pageViewsOptions) === null || _b === void 0 ? void 0 : _b.callback)) { const callbackResult = this.pageViewsOptions.callback(pvPayload); if (callbackResult === false) { return; @@ -405,6 +674,182 @@ function pageview(options) { return; LIB_INSTANCE.submitPageView(options.payload, Boolean(options.unique), {}); } +/** + * Fetches all feature flags for the project. + * Results are cached for 5 minutes by default. + * + * @param options - Options for evaluating feature flags (visitorId, attributes). + * @param forceRefresh - If true, bypasses the cache and fetches fresh flags. + * @returns A promise that resolves to a record of flag keys to boolean values. + * + * @example + * ```typescript + * const flags = await getFeatureFlags({ + * visitorId: 'user-123', + * attributes: { cc: 'US', dv: 'desktop' } + * }) + * + * if (flags['new-checkout']) { + * // Show new checkout flow + * } + * ``` + */ +async function getFeatureFlags(options, forceRefresh) { + if (!LIB_INSTANCE) + return {}; + return LIB_INSTANCE.getFeatureFlags(options, forceRefresh); +} +/** + * Gets the value of a single feature flag. + * + * @param key - The feature flag key. + * @param options - Options for evaluating the feature flag (visitorId, attributes). + * @param defaultValue - Default value to return if the flag is not found. Defaults to false. + * @returns A promise that resolves to the boolean value of the flag. + * + * @example + * ```typescript + * const isEnabled = await getFeatureFlag('dark-mode', { visitorId: 'user-123' }) + * + * if (isEnabled) { + * // Enable dark mode + * } + * ``` + */ +async function getFeatureFlag(key, options, defaultValue = false) { + if (!LIB_INSTANCE) + return defaultValue; + return LIB_INSTANCE.getFeatureFlag(key, options, defaultValue); +} +/** + * Clears the cached feature flags, forcing a fresh fetch on the next call. + * Useful when you know the user's context has changed significantly. + */ +function clearFeatureFlagsCache() { + if (!LIB_INSTANCE) + return; + LIB_INSTANCE.clearFeatureFlagsCache(); +} +/** + * Fetches all A/B test experiments for the project. + * Results are cached for 5 minutes by default (shared cache with feature flags). + * + * @param options - Options for evaluating experiments. + * @param forceRefresh - If true, bypasses the cache and fetches fresh data. + * @returns A promise that resolves to a record of experiment IDs to variant keys. + * + * @example + * ```typescript + * const experiments = await getExperiments() + * // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' } + * + * // Use the assigned variant + * const checkoutVariant = experiments['checkout-experiment-id'] + * if (checkoutVariant === 'new-checkout') { + * showNewCheckout() + * } else { + * showOriginalCheckout() + * } + * ``` + */ +async function getExperiments(options, forceRefresh) { + if (!LIB_INSTANCE) + return {}; + return LIB_INSTANCE.getExperiments(options, forceRefresh); +} +/** + * Gets the variant key for a specific A/B test experiment. + * + * @param experimentId - The experiment ID. + * @param options - Options for evaluating the experiment. + * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null. + * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found. + * + * @example + * ```typescript + * const variant = await getExperiment('checkout-redesign-experiment-id') + * + * if (variant === 'new-checkout') { + * // Show new checkout flow + * showNewCheckout() + * } else if (variant === 'control') { + * // Show original checkout (control group) + * showOriginalCheckout() + * } else { + * // Experiment not running or user not included + * showOriginalCheckout() + * } + * ``` + */ +async function getExperiment(experimentId, options, defaultVariant = null) { + if (!LIB_INSTANCE) + return defaultVariant; + return LIB_INSTANCE.getExperiment(experimentId, options, defaultVariant); +} +/** + * Clears the cached experiments, forcing a fresh fetch on the next call. + * This is an alias for clearFeatureFlagsCache since experiments and flags share the same cache. + */ +function clearExperimentsCache() { + if (!LIB_INSTANCE) + return; + LIB_INSTANCE.clearExperimentsCache(); +} +/** + * Gets the anonymous profile ID for the current visitor. + * If profileId was set via init options, returns that. + * Otherwise, requests server to generate one from IP/UA hash. + * + * This ID can be used for revenue attribution with payment providers like Paddle. + * + * @returns A promise that resolves to the profile ID string, or null on error. + * + * @example + * ```typescript + * const profileId = await getProfileId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: profileId, + * swetrix_session_id: await getSessionId() + * } + * }) + * ``` + */ +async function getProfileId() { + if (!LIB_INSTANCE) + return null; + return LIB_INSTANCE.getProfileId(); +} +/** + * Gets the current session ID for the visitor. + * Session IDs are generated server-side based on IP and user agent. + * + * This ID can be used for revenue attribution with payment providers like Paddle. + * + * @returns A promise that resolves to the session ID string, or null on error. + * + * @example + * ```typescript + * const sessionId = await getSessionId() + * + * // Pass to Paddle Checkout for revenue attribution + * Paddle.Checkout.open({ + * items: [{ priceId: 'pri_01234567890', quantity: 1 }], + * customData: { + * swetrix_profile_id: await getProfileId(), + * swetrix_session_id: sessionId + * } + * }) + * ``` + */ +async function getSessionId() { + if (!LIB_INSTANCE) + return null; + return LIB_INSTANCE.getSessionId(); +} -export { LIB_INSTANCE, init, pageview, track, trackError, trackErrors, trackPageview, trackViews }; +export { LIB_INSTANCE, clearExperimentsCache, clearFeatureFlagsCache, getExperiment, getExperiments, getFeatureFlag, getFeatureFlags, getProfileId, getSessionId, init, pageview, track, trackError, trackErrors, trackPageview, trackViews }; //# sourceMappingURL=swetrix.es5.js.map diff --git a/dist/swetrix.es5.js.map b/dist/swetrix.es5.js.map index aac7e02..ce22add 100644 --- a/dist/swetrix.es5.js.map +++ b/dist/swetrix.es5.js.map @@ -1 +1 @@ -{"version":3,"file":"swetrix.es5.js","sources":["../src/utils.ts","../src/Lib.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"swetrix.es5.js","sources":["../src/utils.ts","../src/Lib.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/swetrix.js b/dist/swetrix.js index 9bf8d19..38c3ac0 100644 --- a/dist/swetrix.js +++ b/dist/swetrix.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).swetrix={})}(this,(function(t){"use strict";const e=t=>{const e=location.search.match(t);return e&&e[2]||void 0},i=/[?&](ref|source|utm_source)=([^?&]+)/,o=/[?&](utm_campaign)=([^?&]+)/,a=/[?&](utm_medium)=([^?&]+)/,n=/[?&](utm_term)=([^?&]+)/,s=/[?&](utm_content)=([^?&]+)/,r=()=>void 0!==navigator.languages?navigator.languages[0]:navigator.language,c=()=>{try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return}},h=()=>document.referrer||void 0,l=()=>e(i),d=()=>e(a),u=()=>e(o),p=()=>e(n),v=()=>e(s),g=t=>{let e=location.pathname||"";if(t.hash){const t=location.hash.indexOf("?");e+=t>-1?location.hash.substring(0,t):location.hash}if(t.search){const t=location.hash.indexOf("?");e+=location.search||(t>-1?location.hash.substring(t):"")}return e},m={stop(){}};class f{constructor(t,e){this.projectID=t,this.options=e,this.pageData=null,this.pageViewsOptions=null,this.errorsOptions=null,this.perfStatsCollected=!1,this.activePage=null,this.errorListenerExists=!1,this.trackPathChange=this.trackPathChange.bind(this),this.heartbeat=this.heartbeat.bind(this),this.captureError=this.captureError.bind(this)}captureError(t){var e,i,o,a;"number"==typeof(null===(e=this.errorsOptions)||void 0===e?void 0:e.sampleRate)&&this.errorsOptions.sampleRate>=Math.random()||this.submitError({filename:t.filename,lineno:t.lineno,colno:t.colno,name:(null===(i=t.error)||void 0===i?void 0:i.name)||"Error",message:(null===(o=t.error)||void 0===o?void 0:o.message)||t.message,stackTrace:null===(a=t.error)||void 0===a?void 0:a.stack},!0)}trackErrors(t){return this.errorListenerExists||!this.canTrack()?m:(this.errorsOptions=t,window.addEventListener("error",this.captureError),this.errorListenerExists=!0,{stop:()=>{window.removeEventListener("error",this.captureError),this.errorListenerExists=!1}})}submitError(t,e){var i,o,a;const n={pid:this.projectID},s={pg:this.activePage||g({hash:null===(i=this.pageViewsOptions)||void 0===i?void 0:i.hash,search:null===(o=this.pageViewsOptions)||void 0===o?void 0:o.search}),lc:r(),tz:c(),...t};if(e&&(null===(a=this.errorsOptions)||void 0===a?void 0:a.callback)){const t=this.errorsOptions.callback(s);if(!1===t)return;t&&"object"==typeof t&&Object.assign(s,t)}Object.assign(s,n),this.sendRequest("error",s)}async track(t){var e,i;if(!this.canTrack())return;const o={...t,pid:this.projectID,pg:this.activePage||g({hash:null===(e=this.pageViewsOptions)||void 0===e?void 0:e.hash,search:null===(i=this.pageViewsOptions)||void 0===i?void 0:i.search}),lc:r(),tz:c(),ref:h(),so:l(),me:d(),ca:u(),te:p(),co:v()};await this.sendRequest("custom",o)}trackPageViews(t){if(!this.canTrack())return m;if(this.pageData)return this.pageData.actions;let e;this.pageViewsOptions=t,(null==t?void 0:t.unique)||(e=setInterval(this.trackPathChange,2e3)),setTimeout(this.heartbeat,3e3);const i=setInterval(this.heartbeat,28e3),o=g({hash:null==t?void 0:t.hash,search:null==t?void 0:t.search});return this.pageData={path:o,actions:{stop:()=>{clearInterval(e),clearInterval(i)}}},this.trackPage(o,null==t?void 0:t.unique),this.pageData.actions}getPerformanceStats(){var t;if(!this.canTrack()||this.perfStatsCollected||!(null===(t=window.performance)||void 0===t?void 0:t.getEntriesByType))return{};const e=window.performance.getEntriesByType("navigation")[0];return e?(this.perfStatsCollected=!0,{dns:e.domainLookupEnd-e.domainLookupStart,tls:e.secureConnectionStart?e.requestStart-e.secureConnectionStart:0,conn:e.secureConnectionStart?e.secureConnectionStart-e.connectStart:e.connectEnd-e.connectStart,response:e.responseEnd-e.responseStart,render:e.domComplete-e.domContentLoadedEventEnd,dom_load:e.domContentLoadedEventEnd-e.responseEnd,page_load:e.loadEventStart,ttfb:e.responseStart-e.requestStart}):{}}heartbeat(){var t;if(!(null===(t=this.pageViewsOptions)||void 0===t?void 0:t.heartbeatOnBackground)&&"hidden"===document.visibilityState)return;const e={pid:this.projectID};this.sendRequest("hb",e)}trackPathChange(){var t,e;if(!this.pageData)return;const i=g({hash:null===(t=this.pageViewsOptions)||void 0===t?void 0:t.hash,search:null===(e=this.pageViewsOptions)||void 0===e?void 0:e.search}),{path:o}=this.pageData;o!==i&&this.trackPage(i,!1)}trackPage(t,e=!1){if(!this.pageData)return;this.pageData.path=t;const i=this.getPerformanceStats();this.activePage=t,this.submitPageView({pg:t},e,i,!0)}submitPageView(t,e,i,o){var a;const n={pid:this.projectID,perf:i,unique:e},s={lc:r(),tz:c(),ref:h(),so:l(),me:d(),ca:u(),te:p(),co:v(),...t};if(o&&(null===(a=this.pageViewsOptions)||void 0===a?void 0:a.callback)){const t=this.pageViewsOptions.callback(s);if(!1===t)return;t&&"object"==typeof t&&Object.assign(s,t)}Object.assign(s,n),this.sendRequest("",s)}canTrack(){var t,e,i,o;return!((null===(t=this.options)||void 0===t?void 0:t.disabled)||"undefined"==typeof window||(null===(e=this.options)||void 0===e?void 0:e.respectDNT)&&"1"===(null===(i=window.navigator)||void 0===i?void 0:i.doNotTrack)||!(null===(o=this.options)||void 0===o?void 0:o.devMode)&&("localhost"===(null===location||void 0===location?void 0:location.hostname)||"127.0.0.1"===(null===location||void 0===location?void 0:location.hostname)||""===(null===location||void 0===location?void 0:location.hostname))||(null===navigator||void 0===navigator?void 0:navigator.webdriver))}async sendRequest(t,e){var i;const o=(null===(i=this.options)||void 0===i?void 0:i.apiURL)||"https://api.swetrix.com/log";await fetch(`${o}/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}t.LIB_INSTANCE=null,t.init=function(e,i){return t.LIB_INSTANCE||(t.LIB_INSTANCE=new f(e,i)),t.LIB_INSTANCE},t.pageview=function(e){t.LIB_INSTANCE&&t.LIB_INSTANCE.submitPageView(e.payload,Boolean(e.unique),{})},t.track=async function(e){t.LIB_INSTANCE&&await t.LIB_INSTANCE.track(e)},t.trackError=function(e){t.LIB_INSTANCE&&t.LIB_INSTANCE.submitError(e,!1)},t.trackErrors=function(e){return t.LIB_INSTANCE?t.LIB_INSTANCE.trackErrors(e):m},t.trackPageview=function(e,i,o){t.LIB_INSTANCE&&t.LIB_INSTANCE.submitPageView({pg:e},Boolean(o),{})},t.trackViews=function(e){return new Promise((i=>{t.LIB_INSTANCE?"undefined"==typeof document||"complete"===document.readyState?i(t.LIB_INSTANCE.trackPageViews(e)):window.addEventListener("load",(()=>{i(t.LIB_INSTANCE.trackPageViews(e))})):i(m)}))}})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).swetrix={})}(this,(function(t){"use strict";const e=t=>{const e=location.search.match(t);return e&&e[2]||void 0},i=/[?&](ref|source|utm_source)=([^?&]+)/,a=/[?&](utm_campaign)=([^?&]+)/,n=/[?&](utm_medium)=([^?&]+)/,o=/[?&](utm_term)=([^?&]+)/,r=/[?&](utm_content)=([^?&]+)/,s=()=>"undefined"!=typeof window,l=()=>void 0!==navigator.languages?navigator.languages[0]:navigator.language,c=()=>{try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return}},d=()=>document.referrer||void 0,h=()=>e(i),u=()=>e(n),p=()=>e(a),v=()=>e(o),g=()=>e(r),f=t=>{let e=location.pathname||"";if(t.hash){const t=location.hash.indexOf("?");e+=t>-1?location.hash.substring(0,t):location.hash}if(t.search){const t=location.hash.indexOf("?");e+=location.search||(t>-1?location.hash.substring(t):"")}return e},I={stop(){}},m=3e5;class E{constructor(t,e){this.projectID=t,this.options=e,this.pageData=null,this.pageViewsOptions=null,this.errorsOptions=null,this.perfStatsCollected=!1,this.activePage=null,this.errorListenerExists=!1,this.cachedData=null,this.trackPathChange=this.trackPathChange.bind(this),this.heartbeat=this.heartbeat.bind(this),this.captureError=this.captureError.bind(this)}captureError(t){var e,i,a,n;"number"==typeof(null===(e=this.errorsOptions)||void 0===e?void 0:e.sampleRate)&&this.errorsOptions.sampleRate>=Math.random()||this.submitError({filename:t.filename,lineno:t.lineno,colno:t.colno,name:(null===(i=t.error)||void 0===i?void 0:i.name)||"Error",message:(null===(a=t.error)||void 0===a?void 0:a.message)||t.message,stackTrace:null===(n=t.error)||void 0===n?void 0:n.stack},!0)}trackErrors(t){return this.errorListenerExists||!this.canTrack()?I:(this.errorsOptions=t,window.addEventListener("error",this.captureError),this.errorListenerExists=!0,{stop:()=>{window.removeEventListener("error",this.captureError),this.errorListenerExists=!1}})}submitError(t,e){var i,a,n;const o={pid:this.projectID},r={pg:this.activePage||f({hash:null===(i=this.pageViewsOptions)||void 0===i?void 0:i.hash,search:null===(a=this.pageViewsOptions)||void 0===a?void 0:a.search}),lc:l(),tz:c(),...t};if(e&&(null===(n=this.errorsOptions)||void 0===n?void 0:n.callback)){const t=this.errorsOptions.callback(r);if(!1===t)return;t&&"object"==typeof t&&Object.assign(r,t)}Object.assign(r,o),this.sendRequest("error",r)}async track(t){var e,i,a,n;if(!this.canTrack())return;const o={...t,pid:this.projectID,pg:this.activePage||f({hash:null===(e=this.pageViewsOptions)||void 0===e?void 0:e.hash,search:null===(i=this.pageViewsOptions)||void 0===i?void 0:i.search}),lc:l(),tz:c(),ref:d(),so:h(),me:u(),ca:p(),te:v(),co:g(),profileId:null!==(a=t.profileId)&&void 0!==a?a:null===(n=this.options)||void 0===n?void 0:n.profileId};await this.sendRequest("custom",o)}trackPageViews(t){if(!this.canTrack())return I;if(this.pageData)return this.pageData.actions;let e;this.pageViewsOptions=t,(null==t?void 0:t.unique)||(e=setInterval(this.trackPathChange,2e3)),setTimeout(this.heartbeat,3e3);const i=setInterval(this.heartbeat,28e3),a=f({hash:null==t?void 0:t.hash,search:null==t?void 0:t.search});return this.pageData={path:a,actions:{stop:()=>{clearInterval(e),clearInterval(i)}}},this.trackPage(a,null==t?void 0:t.unique),this.pageData.actions}getPerformanceStats(){var t;if(!this.canTrack()||this.perfStatsCollected||!(null===(t=window.performance)||void 0===t?void 0:t.getEntriesByType))return{};const e=window.performance.getEntriesByType("navigation")[0];return e?(this.perfStatsCollected=!0,{dns:e.domainLookupEnd-e.domainLookupStart,tls:e.secureConnectionStart?e.requestStart-e.secureConnectionStart:0,conn:e.secureConnectionStart?e.secureConnectionStart-e.connectStart:e.connectEnd-e.connectStart,response:e.responseEnd-e.responseStart,render:e.domComplete-e.domContentLoadedEventEnd,dom_load:e.domContentLoadedEventEnd-e.responseEnd,page_load:e.loadEventStart,ttfb:e.responseStart-e.requestStart}):{}}async getFeatureFlags(t,e){var i,a,n,o;if(!s())return{};const r=null!==(i=null==t?void 0:t.profileId)&&void 0!==i?i:null===(a=this.options)||void 0===a?void 0:a.profileId;if(!e&&this.cachedData){const t=Date.now();if(this.cachedData.profileId===r&&t-this.cachedData.timestamp{t.LIB_INSTANCE?"undefined"==typeof document||"complete"===document.readyState?i(t.LIB_INSTANCE.trackPageViews(e)):window.addEventListener("load",(()=>{i(t.LIB_INSTANCE.trackPageViews(e))})):i(I)}))}})); //# sourceMappingURL=swetrix.js.map diff --git a/dist/swetrix.js.map b/dist/swetrix.js.map index ef70ede..8a914c4 100644 --- a/dist/swetrix.js.map +++ b/dist/swetrix.js.map @@ -1 +1 @@ -{"version":3,"file":"swetrix.js","sources":["../src/utils.ts","../src/Lib.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":["findInSearch","exp","res","location","search","match","undefined","utmSourceRegex","utmCampaignRegex","utmMediumRegex","utmTermRegex","utmContentRegex","getLocale","navigator","languages","language","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","e","getReferrer","document","referrer","getUTMSource","getUTMMedium","getUTMCampaign","getUTMTerm","getUTMContent","getPath","options","result","pathname","hash","hashIndex","indexOf","substring","defaultActions","stop","Lib","constructor","projectID","this","pageData","pageViewsOptions","errorsOptions","perfStatsCollected","activePage","errorListenerExists","trackPathChange","bind","heartbeat","captureError","event","_a","sampleRate","Math","random","submitError","filename","lineno","colno","name","_b","error","message","_c","stackTrace","_d","stack","trackErrors","canTrack","window","addEventListener","removeEventListener","payload","evokeCallback","privateData","pid","errorPayload","pg","lc","tz","callback","callbackResult","Object","assign","sendRequest","track","data","ref","so","me","ca","te","co","trackPageViews","actions","interval","unique","setInterval","setTimeout","hbInterval","path","clearInterval","trackPage","getPerformanceStats","performance","getEntriesByType","perf","dns","domainLookupEnd","domainLookupStart","tls","secureConnectionStart","requestStart","conn","connectStart","connectEnd","response","responseEnd","responseStart","render","domComplete","domContentLoadedEventEnd","dom_load","page_load","loadEventStart","ttfb","heartbeatOnBackground","visibilityState","newPath","submitPageView","pvPayload","disabled","respectDNT","doNotTrack","devMode","hostname","webdriver","body","host","apiURL","fetch","method","headers","JSON","stringify","LIB_INSTANCE","Boolean","async","_prev","Promise","resolve","readyState"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"swetrix.js","sources":["../src/utils.ts","../src/Lib.ts","../src/index.ts"],"sourcesContent":[null,null,null],"names":["findInSearch","exp","res","location","search","match","undefined","utmSourceRegex","utmCampaignRegex","utmMediumRegex","utmTermRegex","utmContentRegex","isInBrowser","window","getLocale","navigator","languages","language","getTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","e","getReferrer","document","referrer","getUTMSource","getUTMMedium","getUTMCampaign","getUTMTerm","getUTMContent","getPath","options","result","pathname","hash","hashIndex","indexOf","substring","defaultActions","stop","DEFAULT_CACHE_DURATION","Lib","constructor","projectID","this","pageData","pageViewsOptions","errorsOptions","perfStatsCollected","activePage","errorListenerExists","cachedData","trackPathChange","bind","heartbeat","captureError","event","_a","sampleRate","Math","random","submitError","filename","lineno","colno","name","_b","error","message","_c","stackTrace","_d","stack","trackErrors","canTrack","addEventListener","removeEventListener","payload","evokeCallback","privateData","pid","errorPayload","pg","lc","tz","callback","callbackResult","Object","assign","sendRequest","track","data","ref","so","me","ca","te","co","profileId","trackPageViews","actions","interval","unique","setInterval","setTimeout","hbInterval","path","clearInterval","trackPage","getPerformanceStats","performance","getEntriesByType","perf","dns","domainLookupEnd","domainLookupStart","tls","secureConnectionStart","requestStart","conn","connectStart","connectEnd","response","responseEnd","responseStart","render","domComplete","domContentLoadedEventEnd","dom_load","page_load","loadEventStart","ttfb","getFeatureFlags","forceRefresh","requestedProfileId","now","Date","timestamp","flags","fetchFlagsAndExperiments","console","warn","apiBase","getApiBase","body","fetch","method","headers","JSON","stringify","ok","status","json","cachedProfileId","experiments","getFeatureFlag","key","defaultValue","clearFeatureFlagsCache","getExperiments","getExperiment","experimentId","defaultVariant","clearExperimentsCache","getProfileId","getSessionId","sessionId","apiURL","replace","heartbeatOnBackground","visibilityState","newPath","submitPageView","pvPayload","disabled","respectDNT","doNotTrack","devMode","hostname","webdriver","host","LIB_INSTANCE","async","Boolean","_prev","Promise","resolve","readyState"],"mappings":"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"} \ No newline at end of file From c16921d01a2ca2f0a4aab0189e42bb7368ad8c67 Mon Sep 17 00:00:00 2001 From: Blue Mouse Date: Thu, 15 Jan 2026 21:05:50 +0000 Subject: [PATCH 3/3] Support gad_* and gclid parameters --- src/utils.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/utils.ts b/src/utils.ts index e8d9360..4202daf 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -8,12 +8,18 @@ const findInSearch = (exp: RegExp): string | undefined => { return (res && res[2]) || undefined } -const utmSourceRegex = /[?&](ref|source|utm_source)=([^?&]+)/ -const utmCampaignRegex = /[?&](utm_campaign)=([^?&]+)/ +const utmSourceRegex = /[?&](ref|source|utm_source|gad_source)=([^?&]+)/ +const utmCampaignRegex = /[?&](utm_campaign|gad_campaignid)=([^?&]+)/ const utmMediumRegex = /[?&](utm_medium)=([^?&]+)/ const utmTermRegex = /[?&](utm_term)=([^?&]+)/ const utmContentRegex = /[?&](utm_content)=([^?&]+)/ +const gclidRegex = /[?&](gclid)=([^?&]+)/ + +const getGclid = () => { + return findInSearch(gclidRegex) ? '' : undefined +} + export const isInBrowser = () => { return typeof window !== 'undefined' } @@ -44,7 +50,7 @@ export const getReferrer = (): string | undefined => { export const getUTMSource = () => findInSearch(utmSourceRegex) -export const getUTMMedium = () => findInSearch(utmMediumRegex) +export const getUTMMedium = () => findInSearch(utmMediumRegex) || getGclid() export const getUTMCampaign = () => findInSearch(utmCampaignRegex)