swetrix 4.1.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { Lib, LibOptions, TrackEventOptions, PageViewsOptions, ErrorOptions, PageActions, ErrorActions, IErrorEventPayload, IPageViewPayload, FeatureFlagsOptions, ExperimentOptions } from './Lib.js';
1
+ import { Lib, LibOptions, TrackEventOptions, PageViewsOptions, ErrorOptions, PageActions, ErrorActions, IErrorEventPayload, IPageViewPayload, FeatureFlagsOptions, ExperimentOptions, SessionReplayOptions, SessionReplayActions } from './Lib.js';
2
2
  export declare let LIB_INSTANCE: Lib | null;
3
3
  /**
4
4
  * Initialise the tracking library instance (other methods won't work if the library is not initialised).
@@ -30,6 +30,7 @@ export declare function trackViews(options?: PageViewsOptions): Promise<PageActi
30
30
  * @returns {ErrorActions} The actions related to the tracking. Used to stop tracking errors.
31
31
  */
32
32
  export declare function trackErrors(options?: ErrorOptions): ErrorActions;
33
+ export declare function startSessionReplay(options?: SessionReplayOptions): Promise<SessionReplayActions>;
33
34
  /**
34
35
  * This function is used to manually track an error event.
35
36
  * It's useful if you want to track specific errors in your application.
@@ -56,17 +57,16 @@ export interface IPageviewOptions {
56
57
  export declare function pageview(options: IPageviewOptions): void;
57
58
  /**
58
59
  * Fetches all feature flags for the project.
59
- * Results are cached for 5 minutes by default.
60
+ * Results are cached for 5 minutes by default and share a cache with experiments.
60
61
  *
61
- * @param options - Options for evaluating feature flags (visitorId, attributes).
62
+ * @param options - Options for evaluating feature flags (`profileId` only).
62
63
  * @param forceRefresh - If true, bypasses the cache and fetches fresh flags.
63
64
  * @returns A promise that resolves to a record of flag keys to boolean values.
64
65
  *
65
66
  * @example
66
67
  * ```typescript
67
68
  * const flags = await getFeatureFlags({
68
- * visitorId: 'user-123',
69
- * attributes: { cc: 'US', dv: 'desktop' }
69
+ * profileId: 'user-123'
70
70
  * })
71
71
  *
72
72
  * if (flags['new-checkout']) {
@@ -79,13 +79,13 @@ export declare function getFeatureFlags(options?: FeatureFlagsOptions, forceRefr
79
79
  * Gets the value of a single feature flag.
80
80
  *
81
81
  * @param key - The feature flag key.
82
- * @param options - Options for evaluating the feature flag (visitorId, attributes).
83
- * @param defaultValue - Default value to return if the flag is not found. Defaults to false.
82
+ * @param options - Options for evaluating the feature flag (`profileId` only).
83
+ * @param defaultValue - Optional default value to return if the flag is not found. Defaults to false.
84
84
  * @returns A promise that resolves to the boolean value of the flag.
85
85
  *
86
86
  * @example
87
87
  * ```typescript
88
- * const isEnabled = await getFeatureFlag('dark-mode', { visitorId: 'user-123' })
88
+ * const isEnabled = await getFeatureFlag('dark-mode', { profileId: 'user-123' })
89
89
  *
90
90
  * if (isEnabled) {
91
91
  * // Enable dark mode
@@ -94,15 +94,15 @@ export declare function getFeatureFlags(options?: FeatureFlagsOptions, forceRefr
94
94
  */
95
95
  export declare function getFeatureFlag(key: string, options?: FeatureFlagsOptions, defaultValue?: boolean): Promise<boolean>;
96
96
  /**
97
- * Clears the cached feature flags, forcing a fresh fetch on the next call.
98
- * Useful when you know the user's context has changed significantly.
97
+ * Clears the cached feature flags and experiments, forcing a fresh fetch on the next call.
98
+ * Useful when you know the user's profile has changed.
99
99
  */
100
100
  export declare function clearFeatureFlagsCache(): void;
101
101
  /**
102
- * Fetches all A/B test experiments for the project.
102
+ * Fetches variant assignments for running A/B test experiments returned by feature flag evaluation.
103
103
  * Results are cached for 5 minutes by default (shared cache with feature flags).
104
104
  *
105
- * @param options - Options for evaluating experiments.
105
+ * @param options - Options for evaluating experiments (`profileId` only).
106
106
  * @param forceRefresh - If true, bypasses the cache and fetches fresh data.
107
107
  * @returns A promise that resolves to a record of experiment IDs to variant keys.
108
108
  *
@@ -125,13 +125,16 @@ export declare function getExperiments(options?: ExperimentOptions, forceRefresh
125
125
  * Gets the variant key for a specific A/B test experiment.
126
126
  *
127
127
  * @param experimentId - The experiment ID.
128
- * @param options - Options for evaluating the experiment.
129
- * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null.
128
+ * @param options - Options for evaluating the experiment (`profileId` only).
129
+ * @param defaultVariant - Optional default variant key to return if the experiment is not found. Defaults to null.
130
130
  * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found.
131
131
  *
132
132
  * @example
133
133
  * ```typescript
134
- * const variant = await getExperiment('checkout-redesign-experiment-id')
134
+ * const variant = await getExperiment('checkout-redesign-experiment-id', { profileId: 'user-123' })
135
+ *
136
+ * // Optional fallback variant:
137
+ * const variantWithFallback = await getExperiment('checkout-redesign-experiment-id', undefined, 'control')
135
138
  *
136
139
  * if (variant === 'new-checkout') {
137
140
  * // Show new checkout flow
@@ -1,4 +1,4 @@
1
- import { Lib, defaultActions, } from './Lib.js';
1
+ import { Lib, defaultActions, defaultSessionReplayActions, } from './Lib.js';
2
2
  export let LIB_INSTANCE = null;
3
3
  /**
4
4
  * Initialise the tracking library instance (other methods won't work if the library is not initialised).
@@ -61,6 +61,12 @@ export function trackErrors(options) {
61
61
  }
62
62
  return LIB_INSTANCE.trackErrors(options);
63
63
  }
64
+ export function startSessionReplay(options) {
65
+ if (!LIB_INSTANCE) {
66
+ return Promise.resolve(defaultSessionReplayActions);
67
+ }
68
+ return LIB_INSTANCE.startSessionReplay(options);
69
+ }
64
70
  /**
65
71
  * This function is used to manually track an error event.
66
72
  * It's useful if you want to track specific errors in your application.
@@ -95,17 +101,16 @@ export function pageview(options) {
95
101
  }
96
102
  /**
97
103
  * Fetches all feature flags for the project.
98
- * Results are cached for 5 minutes by default.
104
+ * Results are cached for 5 minutes by default and share a cache with experiments.
99
105
  *
100
- * @param options - Options for evaluating feature flags (visitorId, attributes).
106
+ * @param options - Options for evaluating feature flags (`profileId` only).
101
107
  * @param forceRefresh - If true, bypasses the cache and fetches fresh flags.
102
108
  * @returns A promise that resolves to a record of flag keys to boolean values.
103
109
  *
104
110
  * @example
105
111
  * ```typescript
106
112
  * const flags = await getFeatureFlags({
107
- * visitorId: 'user-123',
108
- * attributes: { cc: 'US', dv: 'desktop' }
113
+ * profileId: 'user-123'
109
114
  * })
110
115
  *
111
116
  * if (flags['new-checkout']) {
@@ -122,13 +127,13 @@ export async function getFeatureFlags(options, forceRefresh) {
122
127
  * Gets the value of a single feature flag.
123
128
  *
124
129
  * @param key - The feature flag key.
125
- * @param options - Options for evaluating the feature flag (visitorId, attributes).
126
- * @param defaultValue - Default value to return if the flag is not found. Defaults to false.
130
+ * @param options - Options for evaluating the feature flag (`profileId` only).
131
+ * @param defaultValue - Optional default value to return if the flag is not found. Defaults to false.
127
132
  * @returns A promise that resolves to the boolean value of the flag.
128
133
  *
129
134
  * @example
130
135
  * ```typescript
131
- * const isEnabled = await getFeatureFlag('dark-mode', { visitorId: 'user-123' })
136
+ * const isEnabled = await getFeatureFlag('dark-mode', { profileId: 'user-123' })
132
137
  *
133
138
  * if (isEnabled) {
134
139
  * // Enable dark mode
@@ -141,8 +146,8 @@ export async function getFeatureFlag(key, options, defaultValue = false) {
141
146
  return LIB_INSTANCE.getFeatureFlag(key, options, defaultValue);
142
147
  }
143
148
  /**
144
- * Clears the cached feature flags, forcing a fresh fetch on the next call.
145
- * Useful when you know the user's context has changed significantly.
149
+ * Clears the cached feature flags and experiments, forcing a fresh fetch on the next call.
150
+ * Useful when you know the user's profile has changed.
146
151
  */
147
152
  export function clearFeatureFlagsCache() {
148
153
  if (!LIB_INSTANCE)
@@ -150,10 +155,10 @@ export function clearFeatureFlagsCache() {
150
155
  LIB_INSTANCE.clearFeatureFlagsCache();
151
156
  }
152
157
  /**
153
- * Fetches all A/B test experiments for the project.
158
+ * Fetches variant assignments for running A/B test experiments returned by feature flag evaluation.
154
159
  * Results are cached for 5 minutes by default (shared cache with feature flags).
155
160
  *
156
- * @param options - Options for evaluating experiments.
161
+ * @param options - Options for evaluating experiments (`profileId` only).
157
162
  * @param forceRefresh - If true, bypasses the cache and fetches fresh data.
158
163
  * @returns A promise that resolves to a record of experiment IDs to variant keys.
159
164
  *
@@ -180,13 +185,16 @@ export async function getExperiments(options, forceRefresh) {
180
185
  * Gets the variant key for a specific A/B test experiment.
181
186
  *
182
187
  * @param experimentId - The experiment ID.
183
- * @param options - Options for evaluating the experiment.
184
- * @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null.
188
+ * @param options - Options for evaluating the experiment (`profileId` only).
189
+ * @param defaultVariant - Optional default variant key to return if the experiment is not found. Defaults to null.
185
190
  * @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found.
186
191
  *
187
192
  * @example
188
193
  * ```typescript
189
- * const variant = await getExperiment('checkout-redesign-experiment-id')
194
+ * const variant = await getExperiment('checkout-redesign-experiment-id', { profileId: 'user-123' })
195
+ *
196
+ * // Optional fallback variant:
197
+ * const variantWithFallback = await getExperiment('checkout-redesign-experiment-id', undefined, 'control')
190
198
  *
191
199
  * if (variant === 'new-checkout') {
192
200
  * // Show new checkout flow
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,15 @@ export declare const isAutomated: () => boolean;
8
8
  export declare const getLocale: () => string;
9
9
  export declare const getTimezone: () => string | undefined;
10
10
  export declare const getReferrer: () => string | undefined;
11
+ /**
12
+ * Returns the URL query string (without the leading `?`) of the current
13
+ * page, or `undefined` if there is none.
14
+ *
15
+ * Falls back to a query string embedded in `location.hash` (e.g. when a
16
+ * hash router uses `/#/path?foo=bar`) so we still capture click IDs in
17
+ * SPA hash-routed setups.
18
+ */
19
+ export declare const getQueryString: () => string | undefined;
11
20
  export declare const getUTMSource: () => string | undefined;
12
21
  export declare const getUTMMedium: () => string | undefined;
13
22
  export declare const getUTMCampaign: () => string | undefined;
@@ -34,6 +34,26 @@ export const getTimezone = () => {
34
34
  export const getReferrer = () => {
35
35
  return document.referrer || undefined;
36
36
  };
37
+ /**
38
+ * Returns the URL query string (without the leading `?`) of the current
39
+ * page, or `undefined` if there is none.
40
+ *
41
+ * Falls back to a query string embedded in `location.hash` (e.g. when a
42
+ * hash router uses `/#/path?foo=bar`) so we still capture click IDs in
43
+ * SPA hash-routed setups.
44
+ */
45
+ export const getQueryString = () => {
46
+ if (location.search && location.search.length > 1) {
47
+ return location.search.slice(1);
48
+ }
49
+ const hashIndex = location.hash.indexOf('?');
50
+ if (hashIndex > -1) {
51
+ const hashQuery = location.hash.slice(hashIndex + 1);
52
+ if (hashQuery)
53
+ return hashQuery;
54
+ }
55
+ return undefined;
56
+ };
37
57
  export const getUTMSource = () => findInSearch(utmSourceRegex);
38
58
  export const getUTMMedium = () => findInSearch(utmMediumRegex) || getGclid();
39
59
  export const getUTMCampaign = () => findInSearch(utmCampaignRegex);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}