swetrix 3.7.2 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esnext/Lib.d.ts +148 -0
- package/dist/esnext/Lib.js +262 -0
- package/dist/esnext/Lib.js.map +1 -1
- package/dist/esnext/index.d.ts +146 -2
- package/dist/esnext/index.js +176 -0
- package/dist/esnext/index.js.map +1 -1
- package/dist/esnext/utils.js +7 -3
- package/dist/esnext/utils.js.map +1 -1
- package/dist/swetrix.cjs.js +464 -7
- package/dist/swetrix.cjs.js.map +1 -1
- package/dist/swetrix.es5.js +457 -8
- package/dist/swetrix.es5.js.map +1 -1
- package/dist/swetrix.js +1 -1
- package/dist/swetrix.js.map +1 -1
- package/package.json +1 -1
- package/src/Lib.ts +344 -1
- package/src/index.ts +202 -0
- package/src/utils.ts +9 -3
- package/tests/experiments.test.ts +330 -0
package/dist/swetrix.es5.js
CHANGED
|
@@ -2,11 +2,15 @@ const findInSearch = (exp) => {
|
|
|
2
2
|
const res = location.search.match(exp);
|
|
3
3
|
return (res && res[2]) || undefined;
|
|
4
4
|
};
|
|
5
|
-
const utmSourceRegex = /[?&](ref|source|utm_source)=([^?&]+)/;
|
|
6
|
-
const utmCampaignRegex = /[?&](utm_campaign)=([^?&]+)/;
|
|
5
|
+
const utmSourceRegex = /[?&](ref|source|utm_source|gad_source)=([^?&]+)/;
|
|
6
|
+
const utmCampaignRegex = /[?&](utm_campaign|gad_campaignid)=([^?&]+)/;
|
|
7
7
|
const utmMediumRegex = /[?&](utm_medium)=([^?&]+)/;
|
|
8
8
|
const utmTermRegex = /[?&](utm_term)=([^?&]+)/;
|
|
9
9
|
const utmContentRegex = /[?&](utm_content)=([^?&]+)/;
|
|
10
|
+
const gclidRegex = /[?&](gclid)=([^?&]+)/;
|
|
11
|
+
const getGclid = () => {
|
|
12
|
+
return findInSearch(gclidRegex) ? '<gclid>' : undefined;
|
|
13
|
+
};
|
|
10
14
|
const isInBrowser = () => {
|
|
11
15
|
return typeof window !== 'undefined';
|
|
12
16
|
};
|
|
@@ -31,7 +35,7 @@ const getReferrer = () => {
|
|
|
31
35
|
return document.referrer || undefined;
|
|
32
36
|
};
|
|
33
37
|
const getUTMSource = () => findInSearch(utmSourceRegex);
|
|
34
|
-
const getUTMMedium = () => findInSearch(utmMediumRegex);
|
|
38
|
+
const getUTMMedium = () => findInSearch(utmMediumRegex) || getGclid();
|
|
35
39
|
const getUTMCampaign = () => findInSearch(utmCampaignRegex);
|
|
36
40
|
const getUTMTerm = () => findInSearch(utmTermRegex);
|
|
37
41
|
const getUTMContent = () => findInSearch(utmContentRegex);
|
|
@@ -68,6 +72,9 @@ const defaultActions = {
|
|
|
68
72
|
stop() { },
|
|
69
73
|
};
|
|
70
74
|
const DEFAULT_API_HOST = 'https://api.swetrix.com/log';
|
|
75
|
+
const DEFAULT_API_BASE = 'https://api.swetrix.com';
|
|
76
|
+
// Default cache duration: 5 minutes
|
|
77
|
+
const DEFAULT_CACHE_DURATION = 5 * 60 * 1000;
|
|
71
78
|
class Lib {
|
|
72
79
|
constructor(projectID, options) {
|
|
73
80
|
this.projectID = projectID;
|
|
@@ -78,6 +85,7 @@ class Lib {
|
|
|
78
85
|
this.perfStatsCollected = false;
|
|
79
86
|
this.activePage = null;
|
|
80
87
|
this.errorListenerExists = false;
|
|
88
|
+
this.cachedData = null;
|
|
81
89
|
this.trackPathChange = this.trackPathChange.bind(this);
|
|
82
90
|
this.heartbeat = this.heartbeat.bind(this);
|
|
83
91
|
this.captureError = this.captureError.bind(this);
|
|
@@ -146,7 +154,7 @@ class Lib {
|
|
|
146
154
|
this.sendRequest('error', errorPayload);
|
|
147
155
|
}
|
|
148
156
|
async track(event) {
|
|
149
|
-
var _a, _b;
|
|
157
|
+
var _a, _b, _c, _d;
|
|
150
158
|
if (!this.canTrack()) {
|
|
151
159
|
return;
|
|
152
160
|
}
|
|
@@ -166,6 +174,7 @@ class Lib {
|
|
|
166
174
|
ca: getUTMCampaign(),
|
|
167
175
|
te: getUTMTerm(),
|
|
168
176
|
co: getUTMContent(),
|
|
177
|
+
profileId: (_c = event.profileId) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.profileId,
|
|
169
178
|
};
|
|
170
179
|
await this.sendRequest('custom', data);
|
|
171
180
|
}
|
|
@@ -225,14 +234,277 @@ class Lib {
|
|
|
225
234
|
ttfb: perf.responseStart - perf.requestStart,
|
|
226
235
|
};
|
|
227
236
|
}
|
|
228
|
-
|
|
237
|
+
/**
|
|
238
|
+
* Fetches all feature flags and experiments for the project.
|
|
239
|
+
* Results are cached for 5 minutes by default.
|
|
240
|
+
*
|
|
241
|
+
* @param options - Options for evaluating feature flags.
|
|
242
|
+
* @param forceRefresh - If true, bypasses the cache and fetches fresh data.
|
|
243
|
+
* @returns A promise that resolves to a record of flag keys to boolean values.
|
|
244
|
+
*/
|
|
245
|
+
async getFeatureFlags(options, forceRefresh) {
|
|
246
|
+
var _a, _b, _c, _d;
|
|
247
|
+
if (!isInBrowser()) {
|
|
248
|
+
return {};
|
|
249
|
+
}
|
|
250
|
+
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;
|
|
251
|
+
// Check cache first - must match profileId and not be expired
|
|
252
|
+
if (!forceRefresh && this.cachedData) {
|
|
253
|
+
const now = Date.now();
|
|
254
|
+
const isSameProfile = this.cachedData.profileId === requestedProfileId;
|
|
255
|
+
if (isSameProfile && now - this.cachedData.timestamp < DEFAULT_CACHE_DURATION) {
|
|
256
|
+
return this.cachedData.flags;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
try {
|
|
260
|
+
await this.fetchFlagsAndExperiments(options);
|
|
261
|
+
return ((_c = this.cachedData) === null || _c === void 0 ? void 0 : _c.flags) || {};
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
console.warn('[Swetrix] Error fetching feature flags:', error);
|
|
265
|
+
return ((_d = this.cachedData) === null || _d === void 0 ? void 0 : _d.flags) || {};
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Internal method to fetch both feature flags and experiments from the API.
|
|
270
|
+
*/
|
|
271
|
+
async fetchFlagsAndExperiments(options) {
|
|
272
|
+
var _a, _b, _c, _d;
|
|
273
|
+
const apiBase = this.getApiBase();
|
|
274
|
+
const body = {
|
|
275
|
+
pid: this.projectID,
|
|
276
|
+
};
|
|
277
|
+
// Use profileId from options, or fall back to global profileId
|
|
278
|
+
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;
|
|
279
|
+
if (profileId) {
|
|
280
|
+
body.profileId = profileId;
|
|
281
|
+
}
|
|
282
|
+
const response = await fetch(`${apiBase}/feature-flag/evaluate`, {
|
|
283
|
+
method: 'POST',
|
|
284
|
+
headers: {
|
|
285
|
+
'Content-Type': 'application/json',
|
|
286
|
+
},
|
|
287
|
+
body: JSON.stringify(body),
|
|
288
|
+
});
|
|
289
|
+
if (!response.ok) {
|
|
290
|
+
console.warn('[Swetrix] Failed to fetch feature flags and experiments:', response.status);
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
const data = (await response.json());
|
|
294
|
+
// Use profileId from options, or fall back to global profileId
|
|
295
|
+
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;
|
|
296
|
+
// Update cache with both flags and experiments
|
|
297
|
+
this.cachedData = {
|
|
298
|
+
flags: data.flags || {},
|
|
299
|
+
experiments: data.experiments || {},
|
|
300
|
+
timestamp: Date.now(),
|
|
301
|
+
profileId: cachedProfileId,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Gets the value of a single feature flag.
|
|
306
|
+
*
|
|
307
|
+
* @param key - The feature flag key.
|
|
308
|
+
* @param options - Options for evaluating the feature flag.
|
|
309
|
+
* @param defaultValue - Default value to return if the flag is not found. Defaults to false.
|
|
310
|
+
* @returns A promise that resolves to the boolean value of the flag.
|
|
311
|
+
*/
|
|
312
|
+
async getFeatureFlag(key, options, defaultValue = false) {
|
|
229
313
|
var _a;
|
|
314
|
+
const flags = await this.getFeatureFlags(options);
|
|
315
|
+
return (_a = flags[key]) !== null && _a !== void 0 ? _a : defaultValue;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Clears the cached feature flags and experiments, forcing a fresh fetch on the next call.
|
|
319
|
+
*/
|
|
320
|
+
clearFeatureFlagsCache() {
|
|
321
|
+
this.cachedData = null;
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Fetches all A/B test experiments for the project.
|
|
325
|
+
* Results are cached for 5 minutes by default (shared cache with feature flags).
|
|
326
|
+
*
|
|
327
|
+
* @param options - Options for evaluating experiments.
|
|
328
|
+
* @param forceRefresh - If true, bypasses the cache and fetches fresh data.
|
|
329
|
+
* @returns A promise that resolves to a record of experiment IDs to variant keys.
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
* ```typescript
|
|
333
|
+
* const experiments = await getExperiments()
|
|
334
|
+
* // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' }
|
|
335
|
+
* ```
|
|
336
|
+
*/
|
|
337
|
+
async getExperiments(options, forceRefresh) {
|
|
338
|
+
var _a, _b, _c, _d;
|
|
339
|
+
if (!isInBrowser()) {
|
|
340
|
+
return {};
|
|
341
|
+
}
|
|
342
|
+
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;
|
|
343
|
+
// Check cache first - must match profileId and not be expired
|
|
344
|
+
if (!forceRefresh && this.cachedData) {
|
|
345
|
+
const now = Date.now();
|
|
346
|
+
const isSameProfile = this.cachedData.profileId === requestedProfileId;
|
|
347
|
+
if (isSameProfile && now - this.cachedData.timestamp < DEFAULT_CACHE_DURATION) {
|
|
348
|
+
return this.cachedData.experiments;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
try {
|
|
352
|
+
await this.fetchFlagsAndExperiments(options);
|
|
353
|
+
return ((_c = this.cachedData) === null || _c === void 0 ? void 0 : _c.experiments) || {};
|
|
354
|
+
}
|
|
355
|
+
catch (error) {
|
|
356
|
+
console.warn('[Swetrix] Error fetching experiments:', error);
|
|
357
|
+
return ((_d = this.cachedData) === null || _d === void 0 ? void 0 : _d.experiments) || {};
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Gets the variant key for a specific A/B test experiment.
|
|
362
|
+
*
|
|
363
|
+
* @param experimentId - The experiment ID.
|
|
364
|
+
* @param options - Options for evaluating the experiment.
|
|
365
|
+
* @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null.
|
|
366
|
+
* @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found.
|
|
367
|
+
*
|
|
368
|
+
* @example
|
|
369
|
+
* ```typescript
|
|
370
|
+
* const variant = await getExperiment('checkout-redesign')
|
|
371
|
+
*
|
|
372
|
+
* if (variant === 'new-checkout') {
|
|
373
|
+
* // Show new checkout flow
|
|
374
|
+
* } else {
|
|
375
|
+
* // Show control (original) checkout
|
|
376
|
+
* }
|
|
377
|
+
* ```
|
|
378
|
+
*/
|
|
379
|
+
async getExperiment(experimentId, options, defaultVariant = null) {
|
|
380
|
+
var _a;
|
|
381
|
+
const experiments = await this.getExperiments(options);
|
|
382
|
+
return (_a = experiments[experimentId]) !== null && _a !== void 0 ? _a : defaultVariant;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Clears the cached experiments (alias for clearFeatureFlagsCache since they share the same cache).
|
|
386
|
+
*/
|
|
387
|
+
clearExperimentsCache() {
|
|
388
|
+
this.cachedData = null;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Gets the anonymous profile ID for the current visitor.
|
|
392
|
+
* If profileId was set via init options, returns that.
|
|
393
|
+
* Otherwise, requests server to generate one from IP/UA hash.
|
|
394
|
+
*
|
|
395
|
+
* This ID can be used for revenue attribution with payment providers.
|
|
396
|
+
*
|
|
397
|
+
* @returns A promise that resolves to the profile ID string, or null on error.
|
|
398
|
+
*
|
|
399
|
+
* @example
|
|
400
|
+
* ```typescript
|
|
401
|
+
* const profileId = await swetrix.getProfileId()
|
|
402
|
+
*
|
|
403
|
+
* // Pass to Paddle Checkout for revenue attribution
|
|
404
|
+
* Paddle.Checkout.open({
|
|
405
|
+
* items: [{ priceId: 'pri_01234567890', quantity: 1 }],
|
|
406
|
+
* customData: {
|
|
407
|
+
* swetrix_profile_id: profileId,
|
|
408
|
+
* swetrix_session_id: await swetrix.getSessionId()
|
|
409
|
+
* }
|
|
410
|
+
* })
|
|
411
|
+
* ```
|
|
412
|
+
*/
|
|
413
|
+
async getProfileId() {
|
|
414
|
+
var _a;
|
|
415
|
+
// If profileId is already set in options, return it
|
|
416
|
+
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.profileId) {
|
|
417
|
+
return this.options.profileId;
|
|
418
|
+
}
|
|
419
|
+
if (!isInBrowser()) {
|
|
420
|
+
return null;
|
|
421
|
+
}
|
|
422
|
+
try {
|
|
423
|
+
const apiBase = this.getApiBase();
|
|
424
|
+
const response = await fetch(`${apiBase}/log/profile-id`, {
|
|
425
|
+
method: 'POST',
|
|
426
|
+
headers: {
|
|
427
|
+
'Content-Type': 'application/json',
|
|
428
|
+
},
|
|
429
|
+
body: JSON.stringify({ pid: this.projectID }),
|
|
430
|
+
});
|
|
431
|
+
if (!response.ok) {
|
|
432
|
+
return null;
|
|
433
|
+
}
|
|
434
|
+
const data = (await response.json());
|
|
435
|
+
return data.profileId;
|
|
436
|
+
}
|
|
437
|
+
catch (_b) {
|
|
438
|
+
return null;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Gets the current session ID for the visitor.
|
|
443
|
+
* Session IDs are generated server-side based on IP and user agent.
|
|
444
|
+
*
|
|
445
|
+
* This ID can be used for revenue attribution with payment providers.
|
|
446
|
+
*
|
|
447
|
+
* @returns A promise that resolves to the session ID string, or null on error.
|
|
448
|
+
*
|
|
449
|
+
* @example
|
|
450
|
+
* ```typescript
|
|
451
|
+
* const sessionId = await swetrix.getSessionId()
|
|
452
|
+
*
|
|
453
|
+
* // Pass to Paddle Checkout for revenue attribution
|
|
454
|
+
* Paddle.Checkout.open({
|
|
455
|
+
* items: [{ priceId: 'pri_01234567890', quantity: 1 }],
|
|
456
|
+
* customData: {
|
|
457
|
+
* swetrix_profile_id: await swetrix.getProfileId(),
|
|
458
|
+
* swetrix_session_id: sessionId
|
|
459
|
+
* }
|
|
460
|
+
* })
|
|
461
|
+
* ```
|
|
462
|
+
*/
|
|
463
|
+
async getSessionId() {
|
|
464
|
+
if (!isInBrowser()) {
|
|
465
|
+
return null;
|
|
466
|
+
}
|
|
467
|
+
try {
|
|
468
|
+
const apiBase = this.getApiBase();
|
|
469
|
+
const response = await fetch(`${apiBase}/log/session-id`, {
|
|
470
|
+
method: 'POST',
|
|
471
|
+
headers: {
|
|
472
|
+
'Content-Type': 'application/json',
|
|
473
|
+
},
|
|
474
|
+
body: JSON.stringify({ pid: this.projectID }),
|
|
475
|
+
});
|
|
476
|
+
if (!response.ok) {
|
|
477
|
+
return null;
|
|
478
|
+
}
|
|
479
|
+
const data = (await response.json());
|
|
480
|
+
return data.sessionId;
|
|
481
|
+
}
|
|
482
|
+
catch (_a) {
|
|
483
|
+
return null;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Gets the API base URL (without /log suffix).
|
|
488
|
+
*/
|
|
489
|
+
getApiBase() {
|
|
490
|
+
var _a;
|
|
491
|
+
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.apiURL) {
|
|
492
|
+
// Remove trailing /log if present
|
|
493
|
+
return this.options.apiURL.replace(/\/log\/?$/, '');
|
|
494
|
+
}
|
|
495
|
+
return DEFAULT_API_BASE;
|
|
496
|
+
}
|
|
497
|
+
heartbeat() {
|
|
498
|
+
var _a, _b;
|
|
230
499
|
if (!((_a = this.pageViewsOptions) === null || _a === void 0 ? void 0 : _a.heartbeatOnBackground) && document.visibilityState === 'hidden') {
|
|
231
500
|
return;
|
|
232
501
|
}
|
|
233
502
|
const data = {
|
|
234
503
|
pid: this.projectID,
|
|
235
504
|
};
|
|
505
|
+
if ((_b = this.options) === null || _b === void 0 ? void 0 : _b.profileId) {
|
|
506
|
+
data.profileId = this.options.profileId;
|
|
507
|
+
}
|
|
236
508
|
this.sendRequest('hb', data);
|
|
237
509
|
}
|
|
238
510
|
// Tracking path changes. If path changes -> calling this.trackPage method
|
|
@@ -258,7 +530,7 @@ class Lib {
|
|
|
258
530
|
this.submitPageView({ pg }, unique, perf, true);
|
|
259
531
|
}
|
|
260
532
|
submitPageView(payload, unique, perf, evokeCallback) {
|
|
261
|
-
var _a;
|
|
533
|
+
var _a, _b;
|
|
262
534
|
const privateData = {
|
|
263
535
|
pid: this.projectID,
|
|
264
536
|
perf,
|
|
@@ -273,9 +545,10 @@ class Lib {
|
|
|
273
545
|
ca: getUTMCampaign(),
|
|
274
546
|
te: getUTMTerm(),
|
|
275
547
|
co: getUTMContent(),
|
|
548
|
+
profileId: (_a = this.options) === null || _a === void 0 ? void 0 : _a.profileId,
|
|
276
549
|
...payload,
|
|
277
550
|
};
|
|
278
|
-
if (evokeCallback && ((
|
|
551
|
+
if (evokeCallback && ((_b = this.pageViewsOptions) === null || _b === void 0 ? void 0 : _b.callback)) {
|
|
279
552
|
const callbackResult = this.pageViewsOptions.callback(pvPayload);
|
|
280
553
|
if (callbackResult === false) {
|
|
281
554
|
return;
|
|
@@ -405,6 +678,182 @@ function pageview(options) {
|
|
|
405
678
|
return;
|
|
406
679
|
LIB_INSTANCE.submitPageView(options.payload, Boolean(options.unique), {});
|
|
407
680
|
}
|
|
681
|
+
/**
|
|
682
|
+
* Fetches all feature flags for the project.
|
|
683
|
+
* Results are cached for 5 minutes by default.
|
|
684
|
+
*
|
|
685
|
+
* @param options - Options for evaluating feature flags (visitorId, attributes).
|
|
686
|
+
* @param forceRefresh - If true, bypasses the cache and fetches fresh flags.
|
|
687
|
+
* @returns A promise that resolves to a record of flag keys to boolean values.
|
|
688
|
+
*
|
|
689
|
+
* @example
|
|
690
|
+
* ```typescript
|
|
691
|
+
* const flags = await getFeatureFlags({
|
|
692
|
+
* visitorId: 'user-123',
|
|
693
|
+
* attributes: { cc: 'US', dv: 'desktop' }
|
|
694
|
+
* })
|
|
695
|
+
*
|
|
696
|
+
* if (flags['new-checkout']) {
|
|
697
|
+
* // Show new checkout flow
|
|
698
|
+
* }
|
|
699
|
+
* ```
|
|
700
|
+
*/
|
|
701
|
+
async function getFeatureFlags(options, forceRefresh) {
|
|
702
|
+
if (!LIB_INSTANCE)
|
|
703
|
+
return {};
|
|
704
|
+
return LIB_INSTANCE.getFeatureFlags(options, forceRefresh);
|
|
705
|
+
}
|
|
706
|
+
/**
|
|
707
|
+
* Gets the value of a single feature flag.
|
|
708
|
+
*
|
|
709
|
+
* @param key - The feature flag key.
|
|
710
|
+
* @param options - Options for evaluating the feature flag (visitorId, attributes).
|
|
711
|
+
* @param defaultValue - Default value to return if the flag is not found. Defaults to false.
|
|
712
|
+
* @returns A promise that resolves to the boolean value of the flag.
|
|
713
|
+
*
|
|
714
|
+
* @example
|
|
715
|
+
* ```typescript
|
|
716
|
+
* const isEnabled = await getFeatureFlag('dark-mode', { visitorId: 'user-123' })
|
|
717
|
+
*
|
|
718
|
+
* if (isEnabled) {
|
|
719
|
+
* // Enable dark mode
|
|
720
|
+
* }
|
|
721
|
+
* ```
|
|
722
|
+
*/
|
|
723
|
+
async function getFeatureFlag(key, options, defaultValue = false) {
|
|
724
|
+
if (!LIB_INSTANCE)
|
|
725
|
+
return defaultValue;
|
|
726
|
+
return LIB_INSTANCE.getFeatureFlag(key, options, defaultValue);
|
|
727
|
+
}
|
|
728
|
+
/**
|
|
729
|
+
* Clears the cached feature flags, forcing a fresh fetch on the next call.
|
|
730
|
+
* Useful when you know the user's context has changed significantly.
|
|
731
|
+
*/
|
|
732
|
+
function clearFeatureFlagsCache() {
|
|
733
|
+
if (!LIB_INSTANCE)
|
|
734
|
+
return;
|
|
735
|
+
LIB_INSTANCE.clearFeatureFlagsCache();
|
|
736
|
+
}
|
|
737
|
+
/**
|
|
738
|
+
* Fetches all A/B test experiments for the project.
|
|
739
|
+
* Results are cached for 5 minutes by default (shared cache with feature flags).
|
|
740
|
+
*
|
|
741
|
+
* @param options - Options for evaluating experiments.
|
|
742
|
+
* @param forceRefresh - If true, bypasses the cache and fetches fresh data.
|
|
743
|
+
* @returns A promise that resolves to a record of experiment IDs to variant keys.
|
|
744
|
+
*
|
|
745
|
+
* @example
|
|
746
|
+
* ```typescript
|
|
747
|
+
* const experiments = await getExperiments()
|
|
748
|
+
* // experiments = { 'exp-123': 'variant-a', 'exp-456': 'control' }
|
|
749
|
+
*
|
|
750
|
+
* // Use the assigned variant
|
|
751
|
+
* const checkoutVariant = experiments['checkout-experiment-id']
|
|
752
|
+
* if (checkoutVariant === 'new-checkout') {
|
|
753
|
+
* showNewCheckout()
|
|
754
|
+
* } else {
|
|
755
|
+
* showOriginalCheckout()
|
|
756
|
+
* }
|
|
757
|
+
* ```
|
|
758
|
+
*/
|
|
759
|
+
async function getExperiments(options, forceRefresh) {
|
|
760
|
+
if (!LIB_INSTANCE)
|
|
761
|
+
return {};
|
|
762
|
+
return LIB_INSTANCE.getExperiments(options, forceRefresh);
|
|
763
|
+
}
|
|
764
|
+
/**
|
|
765
|
+
* Gets the variant key for a specific A/B test experiment.
|
|
766
|
+
*
|
|
767
|
+
* @param experimentId - The experiment ID.
|
|
768
|
+
* @param options - Options for evaluating the experiment.
|
|
769
|
+
* @param defaultVariant - Default variant key to return if the experiment is not found. Defaults to null.
|
|
770
|
+
* @returns A promise that resolves to the variant key assigned to this user, or defaultVariant if not found.
|
|
771
|
+
*
|
|
772
|
+
* @example
|
|
773
|
+
* ```typescript
|
|
774
|
+
* const variant = await getExperiment('checkout-redesign-experiment-id')
|
|
775
|
+
*
|
|
776
|
+
* if (variant === 'new-checkout') {
|
|
777
|
+
* // Show new checkout flow
|
|
778
|
+
* showNewCheckout()
|
|
779
|
+
* } else if (variant === 'control') {
|
|
780
|
+
* // Show original checkout (control group)
|
|
781
|
+
* showOriginalCheckout()
|
|
782
|
+
* } else {
|
|
783
|
+
* // Experiment not running or user not included
|
|
784
|
+
* showOriginalCheckout()
|
|
785
|
+
* }
|
|
786
|
+
* ```
|
|
787
|
+
*/
|
|
788
|
+
async function getExperiment(experimentId, options, defaultVariant = null) {
|
|
789
|
+
if (!LIB_INSTANCE)
|
|
790
|
+
return defaultVariant;
|
|
791
|
+
return LIB_INSTANCE.getExperiment(experimentId, options, defaultVariant);
|
|
792
|
+
}
|
|
793
|
+
/**
|
|
794
|
+
* Clears the cached experiments, forcing a fresh fetch on the next call.
|
|
795
|
+
* This is an alias for clearFeatureFlagsCache since experiments and flags share the same cache.
|
|
796
|
+
*/
|
|
797
|
+
function clearExperimentsCache() {
|
|
798
|
+
if (!LIB_INSTANCE)
|
|
799
|
+
return;
|
|
800
|
+
LIB_INSTANCE.clearExperimentsCache();
|
|
801
|
+
}
|
|
802
|
+
/**
|
|
803
|
+
* Gets the anonymous profile ID for the current visitor.
|
|
804
|
+
* If profileId was set via init options, returns that.
|
|
805
|
+
* Otherwise, requests server to generate one from IP/UA hash.
|
|
806
|
+
*
|
|
807
|
+
* This ID can be used for revenue attribution with payment providers like Paddle.
|
|
808
|
+
*
|
|
809
|
+
* @returns A promise that resolves to the profile ID string, or null on error.
|
|
810
|
+
*
|
|
811
|
+
* @example
|
|
812
|
+
* ```typescript
|
|
813
|
+
* const profileId = await getProfileId()
|
|
814
|
+
*
|
|
815
|
+
* // Pass to Paddle Checkout for revenue attribution
|
|
816
|
+
* Paddle.Checkout.open({
|
|
817
|
+
* items: [{ priceId: 'pri_01234567890', quantity: 1 }],
|
|
818
|
+
* customData: {
|
|
819
|
+
* swetrix_profile_id: profileId,
|
|
820
|
+
* swetrix_session_id: await getSessionId()
|
|
821
|
+
* }
|
|
822
|
+
* })
|
|
823
|
+
* ```
|
|
824
|
+
*/
|
|
825
|
+
async function getProfileId() {
|
|
826
|
+
if (!LIB_INSTANCE)
|
|
827
|
+
return null;
|
|
828
|
+
return LIB_INSTANCE.getProfileId();
|
|
829
|
+
}
|
|
830
|
+
/**
|
|
831
|
+
* Gets the current session ID for the visitor.
|
|
832
|
+
* Session IDs are generated server-side based on IP and user agent.
|
|
833
|
+
*
|
|
834
|
+
* This ID can be used for revenue attribution with payment providers like Paddle.
|
|
835
|
+
*
|
|
836
|
+
* @returns A promise that resolves to the session ID string, or null on error.
|
|
837
|
+
*
|
|
838
|
+
* @example
|
|
839
|
+
* ```typescript
|
|
840
|
+
* const sessionId = await getSessionId()
|
|
841
|
+
*
|
|
842
|
+
* // Pass to Paddle Checkout for revenue attribution
|
|
843
|
+
* Paddle.Checkout.open({
|
|
844
|
+
* items: [{ priceId: 'pri_01234567890', quantity: 1 }],
|
|
845
|
+
* customData: {
|
|
846
|
+
* swetrix_profile_id: await getProfileId(),
|
|
847
|
+
* swetrix_session_id: sessionId
|
|
848
|
+
* }
|
|
849
|
+
* })
|
|
850
|
+
* ```
|
|
851
|
+
*/
|
|
852
|
+
async function getSessionId() {
|
|
853
|
+
if (!LIB_INSTANCE)
|
|
854
|
+
return null;
|
|
855
|
+
return LIB_INSTANCE.getSessionId();
|
|
856
|
+
}
|
|
408
857
|
|
|
409
|
-
export { LIB_INSTANCE, init, pageview, track, trackError, trackErrors, trackPageview, trackViews };
|
|
858
|
+
export { LIB_INSTANCE, clearExperimentsCache, clearFeatureFlagsCache, getExperiment, getExperiments, getFeatureFlag, getFeatureFlags, getProfileId, getSessionId, init, pageview, track, trackError, trackErrors, trackPageview, trackViews };
|
|
410
859
|
//# sourceMappingURL=swetrix.es5.js.map
|
package/dist/swetrix.es5.js.map
CHANGED
|
@@ -1 +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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"}
|
|
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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"}
|
package/dist/swetrix.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!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)}))}}));
|
|
1
|
+
!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|gad_source)=([^?&]+)/,a=/[?&](utm_campaign|gad_campaignid)=([^?&]+)/,n=/[?&](utm_medium)=([^?&]+)/,o=/[?&](utm_term)=([^?&]+)/,r=/[?&](utm_content)=([^?&]+)/,s=/[?&](gclid)=([^?&]+)/,l=()=>"undefined"!=typeof window,c=()=>void 0!==navigator.languages?navigator.languages[0]:navigator.language,d=()=>{try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(t){return}},h=()=>document.referrer||void 0,u=()=>e(i),p=()=>e(n)||(e(s)?"<gclid>":void 0),v=()=>e(a),g=()=>e(o),f=()=>e(r),I=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(){}},E=3e5;class N{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()?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,a,n;const o={pid:this.projectID},r={pg:this.activePage||I({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:c(),tz:d(),...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||I({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:c(),tz:d(),ref:h(),so:u(),me:p(),ca:v(),te:g(),co:f(),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 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),a=I({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(!l())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<E)return this.cachedData.flags}try{return await this.fetchFlagsAndExperiments(t),(null===(n=this.cachedData)||void 0===n?void 0:n.flags)||{}}catch(t){return console.warn("[Swetrix] Error fetching feature flags:",t),(null===(o=this.cachedData)||void 0===o?void 0:o.flags)||{}}}async fetchFlagsAndExperiments(t){var e,i,a,n;const o=this.getApiBase(),r={pid:this.projectID},s=null!==(e=null==t?void 0:t.profileId)&&void 0!==e?e:null===(i=this.options)||void 0===i?void 0:i.profileId;s&&(r.profileId=s);const l=await fetch(`${o}/feature-flag/evaluate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!l.ok)return void console.warn("[Swetrix] Failed to fetch feature flags and experiments:",l.status);const c=await l.json(),d=null!==(a=null==t?void 0:t.profileId)&&void 0!==a?a:null===(n=this.options)||void 0===n?void 0:n.profileId;this.cachedData={flags:c.flags||{},experiments:c.experiments||{},timestamp:Date.now(),profileId:d}}async getFeatureFlag(t,e,i=!1){var a;return null!==(a=(await this.getFeatureFlags(e))[t])&&void 0!==a?a:i}clearFeatureFlagsCache(){this.cachedData=null}async getExperiments(t,e){var i,a,n,o;if(!l())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<E)return this.cachedData.experiments}try{return await this.fetchFlagsAndExperiments(t),(null===(n=this.cachedData)||void 0===n?void 0:n.experiments)||{}}catch(t){return console.warn("[Swetrix] Error fetching experiments:",t),(null===(o=this.cachedData)||void 0===o?void 0:o.experiments)||{}}}async getExperiment(t,e,i=null){var a;return null!==(a=(await this.getExperiments(e))[t])&&void 0!==a?a:i}clearExperimentsCache(){this.cachedData=null}async getProfileId(){var t;if(null===(t=this.options)||void 0===t?void 0:t.profileId)return this.options.profileId;if(!l())return null;try{const t=this.getApiBase(),e=await fetch(`${t}/log/profile-id`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({pid:this.projectID})});if(!e.ok)return null;return(await e.json()).profileId}catch(t){return null}}async getSessionId(){if(!l())return null;try{const t=this.getApiBase(),e=await fetch(`${t}/log/session-id`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({pid:this.projectID})});if(!e.ok)return null;return(await e.json()).sessionId}catch(t){return null}}getApiBase(){var t;return(null===(t=this.options)||void 0===t?void 0:t.apiURL)?this.options.apiURL.replace(/\/log\/?$/,""):"https://api.swetrix.com"}heartbeat(){var t,e;if(!(null===(t=this.pageViewsOptions)||void 0===t?void 0:t.heartbeatOnBackground)&&"hidden"===document.visibilityState)return;const i={pid:this.projectID};(null===(e=this.options)||void 0===e?void 0:e.profileId)&&(i.profileId=this.options.profileId),this.sendRequest("hb",i)}trackPathChange(){var t,e;if(!this.pageData)return;const i=I({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:a}=this.pageData;a!==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,a){var n,o;const r={pid:this.projectID,perf:i,unique:e},s={lc:c(),tz:d(),ref:h(),so:u(),me:p(),ca:v(),te:g(),co:f(),profileId:null===(n=this.options)||void 0===n?void 0:n.profileId,...t};if(a&&(null===(o=this.pageViewsOptions)||void 0===o?void 0:o.callback)){const t=this.pageViewsOptions.callback(s);if(!1===t)return;t&&"object"==typeof t&&Object.assign(s,t)}Object.assign(s,r),this.sendRequest("",s)}canTrack(){var t,e,i,a;return!((null===(t=this.options)||void 0===t?void 0:t.disabled)||!l()||(null===(e=this.options)||void 0===e?void 0:e.respectDNT)&&"1"===(null===(i=window.navigator)||void 0===i?void 0:i.doNotTrack)||!(null===(a=this.options)||void 0===a?void 0:a.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 a=(null===(i=this.options)||void 0===i?void 0:i.apiURL)||"https://api.swetrix.com/log";await fetch(`${a}/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}t.LIB_INSTANCE=null,t.clearExperimentsCache=function(){t.LIB_INSTANCE&&t.LIB_INSTANCE.clearExperimentsCache()},t.clearFeatureFlagsCache=function(){t.LIB_INSTANCE&&t.LIB_INSTANCE.clearFeatureFlagsCache()},t.getExperiment=async function(e,i,a=null){return t.LIB_INSTANCE?t.LIB_INSTANCE.getExperiment(e,i,a):a},t.getExperiments=async function(e,i){return t.LIB_INSTANCE?t.LIB_INSTANCE.getExperiments(e,i):{}},t.getFeatureFlag=async function(e,i,a=!1){return t.LIB_INSTANCE?t.LIB_INSTANCE.getFeatureFlag(e,i,a):a},t.getFeatureFlags=async function(e,i){return t.LIB_INSTANCE?t.LIB_INSTANCE.getFeatureFlags(e,i):{}},t.getProfileId=async function(){return t.LIB_INSTANCE?t.LIB_INSTANCE.getProfileId():null},t.getSessionId=async function(){return t.LIB_INSTANCE?t.LIB_INSTANCE.getSessionId():null},t.init=function(e,i){return t.LIB_INSTANCE||(t.LIB_INSTANCE=new N(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,a){t.LIB_INSTANCE&&t.LIB_INSTANCE.submitPageView({pg:e},Boolean(a),{})},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)}))}}));
|
|
2
2
|
//# sourceMappingURL=swetrix.js.map
|