@mostly-good-metrics/javascript 0.6.1 → 0.8.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/LICENSE +21 -0
- package/README.md +198 -68
- package/dist/cjs/client.js +239 -70
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/storage.js +52 -1
- package/dist/cjs/storage.js.map +1 -1
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils.js +1 -0
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/client.js +240 -71
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/storage.js +49 -1
- package/dist/esm/storage.js.map +1 -1
- package/dist/esm/types.js +3 -0
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils.js +1 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/types/client.d.ts +82 -20
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/storage.d.ts +23 -1
- package/dist/types/storage.d.ts.map +1 -1
- package/dist/types/types.d.ts +54 -3
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client.test.ts +740 -7
- package/src/client.ts +260 -69
- package/src/index.ts +9 -1
- package/src/storage.ts +58 -1
- package/src/types.ts +66 -3
- package/src/utils.ts +1 -0
package/dist/cjs/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types.js
CHANGED
|
@@ -27,6 +27,7 @@ exports.SystemEvents = {
|
|
|
27
27
|
APP_OPENED: '$app_opened',
|
|
28
28
|
APP_BACKGROUNDED: '$app_backgrounded',
|
|
29
29
|
IDENTIFY: '$identify',
|
|
30
|
+
EXPERIMENT_EXPOSURE: '$experiment_exposure',
|
|
30
31
|
};
|
|
31
32
|
/**
|
|
32
33
|
* System property keys (prefixed with $).
|
|
@@ -37,6 +38,8 @@ exports.SystemProperties = {
|
|
|
37
38
|
VERSION: '$version',
|
|
38
39
|
PREVIOUS_VERSION: '$previous_version',
|
|
39
40
|
SDK: '$sdk',
|
|
41
|
+
EXPERIMENT_NAME: '$experiment_name',
|
|
42
|
+
VARIANT: '$variant',
|
|
40
43
|
};
|
|
41
44
|
/**
|
|
42
45
|
* Default configuration values.
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAwYA;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IAKjC,YACE,IAAkB,EAClB,OAAe,EACf,OAAsD;QAEtD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;QAEtC,uEAAuE;QACvE,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF;AArBD,4BAqBC;AAED;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,aAAa,EAAE,gBAAgB;IAC/B,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,aAAa;IACzB,gBAAgB,EAAE,mBAAmB;IACrC,QAAQ,EAAE,WAAW;IACrB,mBAAmB,EAAE,sBAAsB;CACnC,CAAC;AAgEX;;GAEG;AACU,QAAA,gBAAgB,GAAG;IAC9B,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;IAC7B,OAAO,EAAE,UAAU;IACnB,gBAAgB,EAAE,mBAAmB;IACrC,GAAG,EAAE,MAAM;IACX,eAAe,EAAE,kBAAkB;IACnC,OAAO,EAAE,UAAU;CACX,CAAC;AAEX;;GAEG;AACU,QAAA,oBAAoB,GAAG;IAClC,OAAO,EAAE,sCAAsC;IAC/C,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,KAAK;IACtB,kBAAkB,EAAE,KAAK;IACzB,uBAAuB,EAAE,KAAK;CACtB,CAAC;AAEX;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,qBAAqB,EAAE,GAAG;IAC1B,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,CAAC;IACjB,kBAAkB,EAAE,CAAC;IACrB,iBAAiB,EAAE,GAAG;IACtB,0BAA0B,EAAE,IAAI;IAChC,kBAAkB,EAAE,CAAC;IACrB,uBAAuB,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO;IAC3C,2BAA2B,EAAE,IAAI,EAAE,MAAM;CACjC,CAAC;AAEX;;;GAGG;AACU,QAAA,gBAAgB,GAAG,6CAA6C,CAAC"}
|
package/dist/cjs/utils.js
CHANGED
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;AAiBA,oCAYC;AA2BD,kDAEC;AAKD,0CAEC;AAOD,4CAKC;AAKD,8CAkBC;AAKD,gDAcC;AA6DD,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/client.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { logger, setDebugLogging } from './logger';
|
|
2
2
|
import { createDefaultNetworkClient } from './network';
|
|
3
|
-
import { createDefaultStorage, persistence } from './storage';
|
|
3
|
+
import { createDefaultExperimentStorage, createDefaultStorage, persistence } from './storage';
|
|
4
4
|
import { SystemEvents, SystemProperties, } from './types';
|
|
5
5
|
import { delay, detectDeviceType, generateAnonymousId, generateUUID, getDeviceModel, getISOTimestamp, getLocale, getOSVersion, getTimezone, resolveConfiguration, sanitizeProperties, validateEventName, } from './utils';
|
|
6
6
|
const FLUSH_DELAY_MS = 100; // Delay between batch sends
|
|
7
|
+
const EXPERIMENTS_CACHE_KEY = 'mgm_experiment_variants';
|
|
8
|
+
const EXPERIMENT_EXPOSURES_KEY = 'mgm_experiment_exposures';
|
|
9
|
+
const EXPERIMENTS_REFETCH_INTERVAL_MS = 60 * 60 * 1000; // Background revalidation at most hourly
|
|
10
|
+
const EXPERIMENTS_FETCH_TIMEOUT_MS = 60 * 1000; // Abort hung experiments fetches so they always settle
|
|
11
|
+
const READY_DEFAULT_TIMEOUT_MS = 5000; // Default ready() timeout, unified across all MGM SDKs
|
|
7
12
|
/**
|
|
8
13
|
* Main client for MostlyGoodMetrics.
|
|
9
14
|
* Use the static `configure` method to initialize, then use static methods or the instance.
|
|
@@ -17,9 +22,10 @@ export class MostlyGoodMetrics {
|
|
|
17
22
|
this.isFlushingInternal = false;
|
|
18
23
|
this.lifecycleSetup = false;
|
|
19
24
|
// A/B testing state
|
|
20
|
-
this.
|
|
25
|
+
this.assignedVariants = {}; // Server-assigned variants
|
|
21
26
|
this.experimentsLoaded = false;
|
|
22
27
|
this.experimentsReadyResolve = null;
|
|
28
|
+
this.trackedExposures = new Set(); // (user, experiment, variant) exposure dedup
|
|
23
29
|
this.handleVisibilityChange = () => {
|
|
24
30
|
if (document.hidden) {
|
|
25
31
|
// App backgrounded
|
|
@@ -50,6 +56,8 @@ export class MostlyGoodMetrics {
|
|
|
50
56
|
this.storage = this.config.storage ?? createDefaultStorage(this.config.maxStoredEvents);
|
|
51
57
|
// Initialize network client
|
|
52
58
|
this.networkClient = this.config.networkClient ?? createDefaultNetworkClient();
|
|
59
|
+
// Initialize experiment storage (pluggable for React Native AsyncStorage etc.)
|
|
60
|
+
this.experimentStorage = this.config.experimentStorage ?? createDefaultExperimentStorage();
|
|
53
61
|
// Initialize experiments ready promise
|
|
54
62
|
this.experimentsReadyPromise = new Promise((resolve) => {
|
|
55
63
|
this.experimentsReadyResolve = resolve;
|
|
@@ -61,8 +69,11 @@ export class MostlyGoodMetrics {
|
|
|
61
69
|
if (this.config.trackAppLifecycleEvents) {
|
|
62
70
|
this.setupLifecycleTracking();
|
|
63
71
|
}
|
|
64
|
-
//
|
|
65
|
-
void this.
|
|
72
|
+
// Hydrate the experiments cache and revalidate in the background
|
|
73
|
+
void this.initializeExperiments().catch((e) => {
|
|
74
|
+
logger.warn('Failed to initialize experiments', e);
|
|
75
|
+
this.markExperimentsReady();
|
|
76
|
+
});
|
|
66
77
|
}
|
|
67
78
|
/**
|
|
68
79
|
* Configure and initialize the SDK.
|
|
@@ -179,17 +190,22 @@ export class MostlyGoodMetrics {
|
|
|
179
190
|
}
|
|
180
191
|
/**
|
|
181
192
|
* Get the variant for an experiment.
|
|
182
|
-
* Returns the assigned variant ('a', 'b', etc.) or
|
|
193
|
+
* Returns the assigned variant ('a', 'b', etc.), or `fallback` (default null)
|
|
194
|
+
* if the experiment is unknown or experiments have not loaded yet.
|
|
183
195
|
*/
|
|
184
|
-
static getVariant(experimentName) {
|
|
185
|
-
|
|
196
|
+
static getVariant(experimentName, fallback = null) {
|
|
197
|
+
const instance = MostlyGoodMetrics.instance;
|
|
198
|
+
return instance ? instance.getVariant(experimentName, fallback) : fallback;
|
|
186
199
|
}
|
|
187
200
|
/**
|
|
188
|
-
* Returns a promise that resolves when experiments have been loaded
|
|
189
|
-
*
|
|
201
|
+
* Returns a promise that resolves when experiments have been loaded, or
|
|
202
|
+
* after `timeoutMs` (default 5000) elapses - whichever comes first.
|
|
203
|
+
* Never rejects. Useful for waiting before calling getVariant() to ensure
|
|
204
|
+
* server-side experiments are available without blocking app startup on a
|
|
205
|
+
* hanging network.
|
|
190
206
|
*/
|
|
191
|
-
static ready() {
|
|
192
|
-
return MostlyGoodMetrics.instance?.ready() ?? Promise.resolve();
|
|
207
|
+
static ready(timeoutMs = READY_DEFAULT_TIMEOUT_MS) {
|
|
208
|
+
return MostlyGoodMetrics.instance?.ready(timeoutMs) ?? Promise.resolve();
|
|
193
209
|
}
|
|
194
210
|
// =====================================================
|
|
195
211
|
// Instance properties
|
|
@@ -276,6 +292,9 @@ export class MostlyGoodMetrics {
|
|
|
276
292
|
* Profile data is sent to the backend via the $identify event.
|
|
277
293
|
* Debouncing: only sends $identify if payload changed or >24h since last send.
|
|
278
294
|
*
|
|
295
|
+
* This also invalidates the experiment variants cache and refetches experiments
|
|
296
|
+
* with the new user ID to handle the "identified wins" aliasing strategy.
|
|
297
|
+
*
|
|
279
298
|
* @param userId The user's unique identifier
|
|
280
299
|
* @param profile Optional profile data (email, name)
|
|
281
300
|
*/
|
|
@@ -284,6 +303,7 @@ export class MostlyGoodMetrics {
|
|
|
284
303
|
logger.warn('identify called with empty userId');
|
|
285
304
|
return;
|
|
286
305
|
}
|
|
306
|
+
const previousUserId = this.userId ?? this.anonymousIdValue;
|
|
287
307
|
logger.debug(`Identifying user: ${userId}`);
|
|
288
308
|
persistence.setUserId(userId);
|
|
289
309
|
// If profile data is provided, check if we should send $identify event
|
|
@@ -291,6 +311,16 @@ export class MostlyGoodMetrics {
|
|
|
291
311
|
if (profile && (profile.email || profile.name)) {
|
|
292
312
|
this.sendIdentifyEventIfNeeded(userId, profile);
|
|
293
313
|
}
|
|
314
|
+
// If user ID changed, refetch experiments immediately for the new user.
|
|
315
|
+
// Current in-memory variants keep being served until the response arrives,
|
|
316
|
+
// then they are swapped atomically - never cleared to null mid-session.
|
|
317
|
+
// The refetch includes anonymous_id so the server can honor the
|
|
318
|
+
// "identified wins" aliasing strategy.
|
|
319
|
+
if (previousUserId !== userId) {
|
|
320
|
+
logger.debug('User identity changed, refetching experiments');
|
|
321
|
+
this.resetExperimentsReadyPromise();
|
|
322
|
+
void this.fetchExperiments();
|
|
323
|
+
}
|
|
294
324
|
}
|
|
295
325
|
/**
|
|
296
326
|
* Send $identify event if debounce conditions are met.
|
|
@@ -421,51 +451,60 @@ export class MostlyGoodMetrics {
|
|
|
421
451
|
}
|
|
422
452
|
/**
|
|
423
453
|
* Get the variant for an experiment.
|
|
424
|
-
* Returns the assigned variant ('a', 'b', etc.) or
|
|
454
|
+
* Returns the assigned variant ('a', 'b', etc.), or `fallback` (default null)
|
|
455
|
+
* if the experiment is unknown or experiments have not loaded yet.
|
|
425
456
|
*
|
|
426
|
-
*
|
|
427
|
-
*
|
|
457
|
+
* Variants are assigned server-side and cached locally (forever, per user,
|
|
458
|
+
* with stale-while-revalidate background refreshes). The server ensures the
|
|
459
|
+
* same user always gets the same variant for the same experiment.
|
|
428
460
|
*
|
|
429
|
-
*
|
|
430
|
-
* so it's attached to all subsequent events
|
|
461
|
+
* On a hit, the variant is stored as a super property
|
|
462
|
+
* ($experiment_{name}: 'variant') so it's attached to all subsequent events,
|
|
463
|
+
* and a $experiment_exposure event is tracked once per
|
|
464
|
+
* (user, experiment, variant).
|
|
431
465
|
*/
|
|
432
|
-
getVariant(experimentName) {
|
|
466
|
+
getVariant(experimentName, fallback = null) {
|
|
433
467
|
if (!experimentName) {
|
|
434
468
|
logger.warn('getVariant called with empty experimentName');
|
|
435
|
-
return
|
|
436
|
-
}
|
|
437
|
-
// Check if we have this experiment
|
|
438
|
-
const
|
|
439
|
-
if (
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
if (!
|
|
450
|
-
logger.
|
|
451
|
-
return
|
|
452
|
-
}
|
|
453
|
-
//
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
*
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
+
return fallback;
|
|
470
|
+
}
|
|
471
|
+
// Check if we have a server-assigned variant for this experiment
|
|
472
|
+
const variant = this.assignedVariants[experimentName];
|
|
473
|
+
if (variant) {
|
|
474
|
+
// Store as super property so it's attached to all events
|
|
475
|
+
const propertyName = `$experiment_${this.toSnakeCase(experimentName)}`;
|
|
476
|
+
this.setSuperProperty(propertyName, variant);
|
|
477
|
+
// Track exposure once per (user, experiment, variant)
|
|
478
|
+
this.trackExposureIfNeeded(experimentName, variant);
|
|
479
|
+
logger.debug(`Using server-assigned variant '${variant}' for experiment '${experimentName}'`);
|
|
480
|
+
return variant;
|
|
481
|
+
}
|
|
482
|
+
// No assigned variant - check if experiments have been loaded
|
|
483
|
+
if (!this.experimentsLoaded) {
|
|
484
|
+
logger.debug(`Experiments not loaded yet, cannot get variant for: ${experimentName}`);
|
|
485
|
+
return fallback;
|
|
486
|
+
}
|
|
487
|
+
// Experiments loaded but no assignment for this experiment
|
|
488
|
+
logger.debug(`No variant assigned for experiment: ${experimentName}`);
|
|
489
|
+
return fallback;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Returns a promise that resolves when experiments have been loaded, or
|
|
493
|
+
* after `timeoutMs` (default 5000) elapses - whichever comes first.
|
|
494
|
+
* Never rejects.
|
|
495
|
+
*
|
|
496
|
+
* If the timeout fires first, getVariant() keeps returning fallbacks until
|
|
497
|
+
* the in-flight fetch settles; a late response is still applied atomically,
|
|
498
|
+
* so variants become available to subsequent calls.
|
|
499
|
+
*/
|
|
500
|
+
ready(timeoutMs = READY_DEFAULT_TIMEOUT_MS) {
|
|
501
|
+
return new Promise((resolve) => {
|
|
502
|
+
const timer = setTimeout(resolve, timeoutMs);
|
|
503
|
+
void this.experimentsReadyPromise.then(() => {
|
|
504
|
+
clearTimeout(timer);
|
|
505
|
+
resolve();
|
|
506
|
+
});
|
|
507
|
+
});
|
|
469
508
|
}
|
|
470
509
|
/**
|
|
471
510
|
* Clean up resources (stop timers, etc.).
|
|
@@ -635,11 +674,60 @@ export class MostlyGoodMetrics {
|
|
|
635
674
|
// A/B Testing methods
|
|
636
675
|
// =====================================================
|
|
637
676
|
/**
|
|
638
|
-
*
|
|
639
|
-
*
|
|
677
|
+
* Initialize experiments on startup.
|
|
678
|
+
*
|
|
679
|
+
* Flow (stale-while-revalidate, no TTL):
|
|
680
|
+
* 1. Hydrate exposure dedup flags and the variants cache from the
|
|
681
|
+
* (possibly async) experiment storage adapter.
|
|
682
|
+
* 2. If cached variants exist for the current user, serve them immediately
|
|
683
|
+
* (ready() resolves) and revalidate in the background - but only if the
|
|
684
|
+
* last fetch was more than an hour ago.
|
|
685
|
+
* 3. If there is no usable cache, fetch from the server (ready() resolves
|
|
686
|
+
* when the fetch settles, even on failure).
|
|
687
|
+
*/
|
|
688
|
+
async initializeExperiments() {
|
|
689
|
+
const currentUserId = this.userId ?? this.anonymousIdValue;
|
|
690
|
+
// Hydrate exposure flags first so exposure dedup survives restarts
|
|
691
|
+
await this.hydrateExposures();
|
|
692
|
+
const cached = await this.loadExperimentsCache();
|
|
693
|
+
if (cached && cached.userId === currentUserId) {
|
|
694
|
+
const cacheAge = Date.now() - cached.fetchedAt;
|
|
695
|
+
logger.debug(`Using cached experiment variants (age: ${Math.round(cacheAge / 1000 / 60)}min)`);
|
|
696
|
+
// Serve cached variants immediately - they never expire
|
|
697
|
+
this.assignedVariants = cached.variants;
|
|
698
|
+
this.markExperimentsReady();
|
|
699
|
+
// Revalidate in the background, throttled to at most once per hour
|
|
700
|
+
if (cacheAge >= EXPERIMENTS_REFETCH_INTERVAL_MS) {
|
|
701
|
+
logger.debug('Cached experiment variants are stale, revalidating in background');
|
|
702
|
+
void this.fetchExperiments();
|
|
703
|
+
}
|
|
704
|
+
return;
|
|
705
|
+
}
|
|
706
|
+
// No usable cache - fetch from the server
|
|
707
|
+
await this.fetchExperiments();
|
|
708
|
+
}
|
|
709
|
+
/**
|
|
710
|
+
* Fetch experiments from the server and atomically swap in the response.
|
|
711
|
+
* Called on initialization (when no fresh cache exists) and after identify().
|
|
712
|
+
* On failure, previously loaded variants keep being served.
|
|
713
|
+
*
|
|
714
|
+
* The request is aborted after EXPERIMENTS_FETCH_TIMEOUT_MS so it is
|
|
715
|
+
* guaranteed to settle. A response that arrives after a ready() timeout is
|
|
716
|
+
* still applied atomically - late variants are better than none.
|
|
640
717
|
*/
|
|
641
718
|
async fetchExperiments() {
|
|
642
|
-
const
|
|
719
|
+
const currentUserId = this.userId ?? this.anonymousIdValue;
|
|
720
|
+
// Build URL with user_id for server-side variant assignment.
|
|
721
|
+
// When the user is identified, also pass the stored anonymous_id so the
|
|
722
|
+
// server can alias pre-identify assignments ("identified wins", MGM-28).
|
|
723
|
+
let url = `${this.config.baseURL}/v1/experiments?user_id=${encodeURIComponent(currentUserId)}`;
|
|
724
|
+
if (currentUserId !== this.anonymousIdValue) {
|
|
725
|
+
url += `&anonymous_id=${encodeURIComponent(this.anonymousIdValue)}`;
|
|
726
|
+
}
|
|
727
|
+
// Abort the request if it hangs so this promise is guaranteed to settle
|
|
728
|
+
// (and markExperimentsReady() is guaranteed to run).
|
|
729
|
+
const abortController = new AbortController();
|
|
730
|
+
const abortTimer = setTimeout(() => abortController.abort(), EXPERIMENTS_FETCH_TIMEOUT_MS);
|
|
643
731
|
try {
|
|
644
732
|
logger.debug('Fetching experiments...');
|
|
645
733
|
const response = await fetch(url, {
|
|
@@ -648,24 +736,24 @@ export class MostlyGoodMetrics {
|
|
|
648
736
|
Authorization: `Bearer ${this.config.apiKey}`,
|
|
649
737
|
'Content-Type': 'application/json',
|
|
650
738
|
},
|
|
739
|
+
signal: abortController.signal,
|
|
651
740
|
});
|
|
652
741
|
if (!response.ok) {
|
|
653
742
|
logger.warn(`Failed to fetch experiments: ${response.status}`);
|
|
654
|
-
this.markExperimentsReady();
|
|
655
743
|
return;
|
|
656
744
|
}
|
|
657
745
|
const data = (await response.json());
|
|
658
|
-
//
|
|
659
|
-
this.
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
}
|
|
663
|
-
logger.debug(`Loaded ${this.experiments.size} experiments`);
|
|
746
|
+
// Atomically swap in the server-assigned variants
|
|
747
|
+
this.assignedVariants = data.assigned_variants ?? {};
|
|
748
|
+
// Persist to the experiment storage adapter (with last-fetch timestamp)
|
|
749
|
+
await this.saveExperimentsCache(currentUserId, this.assignedVariants);
|
|
750
|
+
logger.debug(`Loaded ${Object.keys(this.assignedVariants).length} assigned variants`);
|
|
664
751
|
}
|
|
665
752
|
catch (e) {
|
|
666
753
|
logger.warn('Failed to fetch experiments', e);
|
|
667
754
|
}
|
|
668
755
|
finally {
|
|
756
|
+
clearTimeout(abortTimer);
|
|
669
757
|
this.markExperimentsReady();
|
|
670
758
|
}
|
|
671
759
|
}
|
|
@@ -680,17 +768,98 @@ export class MostlyGoodMetrics {
|
|
|
680
768
|
}
|
|
681
769
|
}
|
|
682
770
|
/**
|
|
683
|
-
*
|
|
684
|
-
*
|
|
771
|
+
* Arm a new ready() promise for an in-flight refetch (e.g. after identify).
|
|
772
|
+
* No-op if the current promise is still pending - it will be resolved by
|
|
773
|
+
* whichever fetch settles first.
|
|
685
774
|
*/
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
775
|
+
resetExperimentsReadyPromise() {
|
|
776
|
+
if (this.experimentsReadyResolve !== null) {
|
|
777
|
+
return;
|
|
778
|
+
}
|
|
779
|
+
this.experimentsReadyPromise = new Promise((resolve) => {
|
|
780
|
+
this.experimentsReadyResolve = resolve;
|
|
781
|
+
});
|
|
782
|
+
}
|
|
783
|
+
/**
|
|
784
|
+
* Track a $experiment_exposure event the first time a (user, experiment,
|
|
785
|
+
* variant) combination is returned by getVariant(). Dedup flags are
|
|
786
|
+
* persisted via the experiment storage adapter so exposures are not
|
|
787
|
+
* re-tracked across restarts.
|
|
788
|
+
*/
|
|
789
|
+
trackExposureIfNeeded(experimentName, variant) {
|
|
790
|
+
const currentUserId = this.userId ?? this.anonymousIdValue;
|
|
791
|
+
const exposureKey = `${currentUserId}::${experimentName}::${variant}`;
|
|
792
|
+
if (this.trackedExposures.has(exposureKey)) {
|
|
793
|
+
return;
|
|
794
|
+
}
|
|
795
|
+
this.trackedExposures.add(exposureKey);
|
|
796
|
+
this.track(SystemEvents.EXPERIMENT_EXPOSURE, {
|
|
797
|
+
[SystemProperties.EXPERIMENT_NAME]: experimentName,
|
|
798
|
+
[SystemProperties.VARIANT]: variant,
|
|
799
|
+
});
|
|
800
|
+
void this.persistExposures();
|
|
801
|
+
}
|
|
802
|
+
/**
|
|
803
|
+
* Hydrate persisted exposure dedup flags from the experiment storage adapter.
|
|
804
|
+
*/
|
|
805
|
+
async hydrateExposures() {
|
|
806
|
+
try {
|
|
807
|
+
const raw = await this.experimentStorage.getItem(EXPERIMENT_EXPOSURES_KEY);
|
|
808
|
+
if (raw) {
|
|
809
|
+
const parsed = JSON.parse(raw);
|
|
810
|
+
if (Array.isArray(parsed)) {
|
|
811
|
+
this.trackedExposures = new Set(parsed.filter((k) => typeof k === 'string'));
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
catch (e) {
|
|
816
|
+
logger.debug('Failed to load experiment exposures', e);
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
/**
|
|
820
|
+
* Persist exposure dedup flags via the experiment storage adapter.
|
|
821
|
+
*/
|
|
822
|
+
async persistExposures() {
|
|
823
|
+
try {
|
|
824
|
+
await this.experimentStorage.setItem(EXPERIMENT_EXPOSURES_KEY, JSON.stringify([...this.trackedExposures]));
|
|
825
|
+
}
|
|
826
|
+
catch (e) {
|
|
827
|
+
logger.debug('Failed to persist experiment exposures', e);
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
/**
|
|
831
|
+
* Load experiment variants from the experiment storage adapter.
|
|
832
|
+
*/
|
|
833
|
+
async loadExperimentsCache() {
|
|
834
|
+
try {
|
|
835
|
+
const cached = await this.experimentStorage.getItem(EXPERIMENTS_CACHE_KEY);
|
|
836
|
+
if (!cached) {
|
|
837
|
+
return null;
|
|
838
|
+
}
|
|
839
|
+
return JSON.parse(cached);
|
|
840
|
+
}
|
|
841
|
+
catch (e) {
|
|
842
|
+
logger.debug('Failed to load experiments cache', e);
|
|
843
|
+
return null;
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
/**
|
|
847
|
+
* Save experiment variants via the experiment storage adapter.
|
|
848
|
+
* `fetchedAt` doubles as the last-fetch timestamp used to throttle
|
|
849
|
+
* background revalidation - the cache itself never expires.
|
|
850
|
+
*/
|
|
851
|
+
async saveExperimentsCache(userId, variants) {
|
|
852
|
+
try {
|
|
853
|
+
const cached = {
|
|
854
|
+
userId,
|
|
855
|
+
variants,
|
|
856
|
+
fetchedAt: Date.now(),
|
|
857
|
+
};
|
|
858
|
+
await this.experimentStorage.setItem(EXPERIMENTS_CACHE_KEY, JSON.stringify(cached));
|
|
859
|
+
}
|
|
860
|
+
catch (e) {
|
|
861
|
+
logger.debug('Failed to save experiments cache', e);
|
|
862
|
+
}
|
|
694
863
|
}
|
|
695
864
|
/**
|
|
696
865
|
* Convert a string to snake_case.
|