pulse-updates 1.2.3 → 1.2.4
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/lib/commonjs/config.js +177 -12
- package/lib/commonjs/config.js.map +1 -1
- package/lib/commonjs/decisions.js +85 -8
- package/lib/commonjs/decisions.js.map +1 -1
- package/lib/commonjs/init.js +4 -1
- package/lib/commonjs/init.js.map +1 -1
- package/lib/module/config.js +174 -12
- package/lib/module/config.js.map +1 -1
- package/lib/module/decisions.js +85 -8
- package/lib/module/decisions.js.map +1 -1
- package/lib/module/init.js +5 -2
- package/lib/module/init.js.map +1 -1
- package/lib/typescript/config.d.ts +10 -0
- package/lib/typescript/config.d.ts.map +1 -1
- package/lib/typescript/decisions.d.ts +12 -0
- package/lib/typescript/decisions.d.ts.map +1 -1
- package/lib/typescript/init.d.ts +4 -1
- package/lib/typescript/init.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config.ts +205 -11
- package/src/decisions.ts +128 -10
- package/src/init.ts +16 -1
package/lib/commonjs/config.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.activateConfig = activateConfig;
|
|
|
7
7
|
exports.canonicalizeConfigJson = canonicalizeConfigJson;
|
|
8
8
|
exports.configureConfig = configureConfig;
|
|
9
9
|
exports.fetchConfig = fetchConfig;
|
|
10
|
+
exports.flushExposures = flushExposures;
|
|
10
11
|
exports.getAllConfig = getAllConfig;
|
|
11
12
|
exports.getConfigBoolean = getConfigBoolean;
|
|
12
13
|
exports.getConfigExperiments = getConfigExperiments;
|
|
@@ -18,8 +19,10 @@ exports.getConfigSource = getConfigSource;
|
|
|
18
19
|
exports.getConfigString = getConfigString;
|
|
19
20
|
exports.getConfigValue = getConfigValue;
|
|
20
21
|
exports.getConfigVariant = getConfigVariant;
|
|
22
|
+
exports.getExposureDeliveryInfo = getExposureDeliveryInfo;
|
|
21
23
|
exports.hasPendingConfig = hasPendingConfig;
|
|
22
24
|
exports.onConfigChange = onConfigChange;
|
|
25
|
+
exports.pendingExposureCount = pendingExposureCount;
|
|
23
26
|
exports.resetConfigForTests = resetConfigForTests;
|
|
24
27
|
exports.setConfigDefaults = setConfigDefaults;
|
|
25
28
|
exports.startConfigAutoRefresh = startConfigAutoRefresh;
|
|
@@ -75,6 +78,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
75
78
|
const STORAGE_KEY = 'pulse.config.v1';
|
|
76
79
|
const DEFAULT_POLL_MS = 5 * 60 * 1000;
|
|
77
80
|
const DEFAULT_TIMEOUT_MS = 10_000;
|
|
81
|
+
const DEFAULT_EXPOSURE_RETRY_MS = 10_000;
|
|
82
|
+
const DEFAULT_EXPOSURE_STORAGE_KEY = 'pulse.exposures.v1';
|
|
83
|
+
const MAX_EXPOSURE_QUEUE = 50;
|
|
78
84
|
let options = null;
|
|
79
85
|
let defaults = {};
|
|
80
86
|
let values = {};
|
|
@@ -98,6 +104,11 @@ let signatureKeyId = null;
|
|
|
98
104
|
let pending = null;
|
|
99
105
|
/** The arm set already reported this session, so a poll does not re-report it. */
|
|
100
106
|
let reportedExposure = null;
|
|
107
|
+
let exposureQueue = [];
|
|
108
|
+
let deliveredExposureSignatures = new Set();
|
|
109
|
+
let exposureSending = false;
|
|
110
|
+
let exposureNextAttemptAt = 0;
|
|
111
|
+
let exposureTimer = null;
|
|
101
112
|
let inFlight = null;
|
|
102
113
|
let pollTimer = null;
|
|
103
114
|
let configGeneration = 0;
|
|
@@ -114,6 +125,7 @@ function configureConfig(opts) {
|
|
|
114
125
|
// may cross that boundary.
|
|
115
126
|
configGeneration += 1;
|
|
116
127
|
stopPolling();
|
|
128
|
+
stopExposureDelivery();
|
|
117
129
|
options = opts;
|
|
118
130
|
defaults = {
|
|
119
131
|
...(opts.defaults ?? {})
|
|
@@ -128,6 +140,10 @@ function configureConfig(opts) {
|
|
|
128
140
|
signatureKeyId = null;
|
|
129
141
|
pending = null;
|
|
130
142
|
reportedExposure = null;
|
|
143
|
+
exposureQueue = readExposureQueue(opts);
|
|
144
|
+
deliveredExposureSignatures = readDeliveredExposureSignatures(opts);
|
|
145
|
+
exposureSending = false;
|
|
146
|
+
exposureNextAttemptAt = 0;
|
|
131
147
|
inFlight = null;
|
|
132
148
|
applyCachedPayload(readCache(opts.storage, opts.storageKey), opts);
|
|
133
149
|
}
|
|
@@ -233,6 +249,8 @@ function hasPendingConfig() {
|
|
|
233
249
|
*/
|
|
234
250
|
function startConfigAutoRefresh(appState) {
|
|
235
251
|
void fetchConfig();
|
|
252
|
+
startExposureDelivery();
|
|
253
|
+
void flushExposures();
|
|
236
254
|
const subscription = appState?.addEventListener('change', state => {
|
|
237
255
|
if (state === 'active') void fetchConfig();
|
|
238
256
|
});
|
|
@@ -247,6 +265,7 @@ function startConfigAutoRefresh(appState) {
|
|
|
247
265
|
return () => {
|
|
248
266
|
subscription?.remove();
|
|
249
267
|
stopPolling();
|
|
268
|
+
stopExposureDelivery();
|
|
250
269
|
};
|
|
251
270
|
}
|
|
252
271
|
function applySnapshot(next, opts) {
|
|
@@ -266,7 +285,7 @@ function applySnapshot(next, opts) {
|
|
|
266
285
|
// Reported on apply, never on fetch: with activateOnFetch false a payload can sit
|
|
267
286
|
// unapplied for the rest of a session, and an arm the app is not actually serving
|
|
268
287
|
// is not an exposure.
|
|
269
|
-
|
|
288
|
+
queueExposure(opts);
|
|
270
289
|
|
|
271
290
|
// Listeners drive re-renders and gate re-evaluation: firing them for an identical
|
|
272
291
|
// payload is pure churn, and the 200-with-same-content case is common enough
|
|
@@ -292,32 +311,94 @@ function applySnapshot(next, opts) {
|
|
|
292
311
|
* Failure is swallowed on purpose. This is a diagnostic, and no diagnostic is worth
|
|
293
312
|
* a rejected promise on the path that delivers config to the app.
|
|
294
313
|
*/
|
|
295
|
-
|
|
314
|
+
function queueExposure(opts) {
|
|
296
315
|
if (opts.reportExposure !== true) return;
|
|
297
316
|
if (experiments.length === 0) return;
|
|
298
317
|
const signature = experiments.map(e => `${e.key}=${e.variant}`).join(',');
|
|
299
|
-
if (signature === reportedExposure) return;
|
|
300
|
-
reportedExposure = signature;
|
|
318
|
+
if (signature === reportedExposure || deliveredExposureSignatures.has(signature) || exposureQueue.some(item => item.signature === signature)) return;
|
|
301
319
|
const context = opts.getContext?.() ?? {};
|
|
302
320
|
const assignments = {};
|
|
303
321
|
for (const entry of experiments) assignments[entry.key] = entry.variant;
|
|
322
|
+
exposureQueue.push({
|
|
323
|
+
reportId: randomDeliveryId('exp'),
|
|
324
|
+
signature,
|
|
325
|
+
platform: context.platform,
|
|
326
|
+
appVersion: context.appVersion,
|
|
327
|
+
assignments,
|
|
328
|
+
attempts: 0
|
|
329
|
+
});
|
|
330
|
+
if (exposureQueue.length > MAX_EXPOSURE_QUEUE) {
|
|
331
|
+
exposureQueue = exposureQueue.slice(-MAX_EXPOSURE_QUEUE);
|
|
332
|
+
}
|
|
333
|
+
persistExposureQueue(opts, exposureQueue);
|
|
334
|
+
void flushExposures();
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/** Flushes the durable exposure outbox. Safe to call on launch, resume or manually. */
|
|
338
|
+
async function flushExposures() {
|
|
339
|
+
if (!options || exposureSending || exposureQueue.length === 0 || Date.now() < exposureNextAttemptAt) return 0;
|
|
340
|
+
const opts = options;
|
|
341
|
+
const requestGeneration = configGeneration;
|
|
342
|
+
const item = exposureQueue[0];
|
|
343
|
+
exposureSending = true;
|
|
344
|
+
const controller = typeof AbortController !== 'undefined' ? new AbortController() : null;
|
|
345
|
+
const timeout = controller ? setTimeout(() => controller.abort(), opts.timeoutMs ?? DEFAULT_TIMEOUT_MS) : null;
|
|
304
346
|
try {
|
|
305
|
-
await fetch(`${opts.url.replace(/\/+$/, '')}/exposure`, {
|
|
347
|
+
const response = await fetch(`${opts.url.replace(/\/+$/, '')}/exposure`, {
|
|
306
348
|
method: 'POST',
|
|
307
349
|
headers: {
|
|
308
350
|
'Content-Type': 'application/json'
|
|
309
351
|
},
|
|
310
352
|
body: JSON.stringify({
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
353
|
+
reportId: item.reportId,
|
|
354
|
+
platform: item.platform,
|
|
355
|
+
appVersion: item.appVersion,
|
|
356
|
+
assignments: item.assignments
|
|
357
|
+
}),
|
|
358
|
+
signal: controller?.signal
|
|
315
359
|
});
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
360
|
+
if (!response.ok) throw new Error(`Pulse exposure HTTP ${response.status}`);
|
|
361
|
+
if (requestGeneration === configGeneration && options === opts) {
|
|
362
|
+
exposureQueue = exposureQueue.filter(queued => queued.reportId !== item.reportId);
|
|
363
|
+
reportedExposure = item.signature;
|
|
364
|
+
deliveredExposureSignatures.add(item.signature);
|
|
365
|
+
persistDeliveredExposureSignatures(opts);
|
|
366
|
+
exposureNextAttemptAt = 0;
|
|
367
|
+
persistExposureQueue(opts, exposureQueue);
|
|
368
|
+
if (exposureQueue.length > 0) void flushExposures();
|
|
369
|
+
} else {
|
|
370
|
+
removeExposureFromStoredQueue(opts, item.reportId);
|
|
371
|
+
markStoredExposureDelivered(opts, item.signature);
|
|
372
|
+
}
|
|
373
|
+
return 1;
|
|
374
|
+
} catch (error) {
|
|
375
|
+
if (requestGeneration === configGeneration && options === opts) {
|
|
376
|
+
exposureQueue = exposureQueue.map(queued => queued.reportId === item.reportId ? {
|
|
377
|
+
...queued,
|
|
378
|
+
attempts: queued.attempts + 1
|
|
379
|
+
} : queued);
|
|
380
|
+
const attempts = Math.min(item.attempts + 1, 6);
|
|
381
|
+
const base = Math.min(60_000, 1_000 * 2 ** Math.max(0, attempts - 1));
|
|
382
|
+
exposureNextAttemptAt = Date.now() + base;
|
|
383
|
+
persistExposureQueue(opts, exposureQueue);
|
|
384
|
+
}
|
|
385
|
+
opts.onError?.(error);
|
|
386
|
+
return 0;
|
|
387
|
+
} finally {
|
|
388
|
+
if (timeout) clearTimeout(timeout);
|
|
389
|
+
if (requestGeneration === configGeneration) exposureSending = false;
|
|
319
390
|
}
|
|
320
391
|
}
|
|
392
|
+
function pendingExposureCount() {
|
|
393
|
+
return exposureQueue.length;
|
|
394
|
+
}
|
|
395
|
+
function getExposureDeliveryInfo() {
|
|
396
|
+
return {
|
|
397
|
+
queueDepth: exposureQueue.length,
|
|
398
|
+
sending: exposureSending,
|
|
399
|
+
nextAttemptAt: exposureNextAttemptAt
|
|
400
|
+
};
|
|
401
|
+
}
|
|
321
402
|
|
|
322
403
|
/**
|
|
323
404
|
* Verifies the exact unsigned JSON object the server signs. A configured verifier
|
|
@@ -461,6 +542,85 @@ function stopPolling() {
|
|
|
461
542
|
pollTimer = null;
|
|
462
543
|
}
|
|
463
544
|
}
|
|
545
|
+
function startExposureDelivery() {
|
|
546
|
+
stopExposureDelivery();
|
|
547
|
+
if (options?.reportExposure !== true) return;
|
|
548
|
+
exposureTimer = setInterval(() => void flushExposures(), DEFAULT_EXPOSURE_RETRY_MS);
|
|
549
|
+
exposureTimer.unref?.();
|
|
550
|
+
}
|
|
551
|
+
function stopExposureDelivery() {
|
|
552
|
+
if (exposureTimer) clearInterval(exposureTimer);
|
|
553
|
+
exposureTimer = null;
|
|
554
|
+
}
|
|
555
|
+
function exposureStorageKey(opts) {
|
|
556
|
+
if (opts.exposureStorageKey?.trim()) return opts.exposureStorageKey.trim();
|
|
557
|
+
if (opts.storageKey?.trim()) return `${opts.storageKey.trim()}.exposures`;
|
|
558
|
+
return DEFAULT_EXPOSURE_STORAGE_KEY;
|
|
559
|
+
}
|
|
560
|
+
function deliveredExposureStorageKey(opts) {
|
|
561
|
+
return `${exposureStorageKey(opts)}.delivered`;
|
|
562
|
+
}
|
|
563
|
+
function readExposureQueue(opts) {
|
|
564
|
+
if (!opts.storage) return [];
|
|
565
|
+
try {
|
|
566
|
+
const raw = opts.storage.getString(exposureStorageKey(opts));
|
|
567
|
+
if (!raw) return [];
|
|
568
|
+
const parsed = JSON.parse(raw);
|
|
569
|
+
if (!Array.isArray(parsed)) return [];
|
|
570
|
+
return parsed.filter(item => Boolean(item && typeof item === 'object' && typeof item.reportId === 'string' && typeof item.signature === 'string' && typeof item.assignments === 'object' && typeof item.attempts === 'number')).slice(-MAX_EXPOSURE_QUEUE);
|
|
571
|
+
} catch {
|
|
572
|
+
return [];
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
function persistExposureQueue(opts, queued) {
|
|
576
|
+
if (!opts.storage) return;
|
|
577
|
+
try {
|
|
578
|
+
opts.storage.set(exposureStorageKey(opts), JSON.stringify(queued));
|
|
579
|
+
} catch {
|
|
580
|
+
// Exposure delivery is diagnostic and may never make config adoption fail.
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
function readDeliveredExposureSignatures(opts) {
|
|
584
|
+
if (!opts.storage) return new Set();
|
|
585
|
+
try {
|
|
586
|
+
const raw = opts.storage.getString(deliveredExposureStorageKey(opts));
|
|
587
|
+
if (!raw) return new Set();
|
|
588
|
+
const parsed = JSON.parse(raw);
|
|
589
|
+
if (!Array.isArray(parsed)) return new Set();
|
|
590
|
+
return new Set(parsed.filter(value => typeof value === 'string').slice(-100));
|
|
591
|
+
} catch {
|
|
592
|
+
return new Set();
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
function persistDeliveredExposureSignatures(opts) {
|
|
596
|
+
if (!opts.storage) return;
|
|
597
|
+
try {
|
|
598
|
+
const values = [...deliveredExposureSignatures].slice(-100);
|
|
599
|
+
opts.storage.set(deliveredExposureStorageKey(opts), JSON.stringify(values));
|
|
600
|
+
} catch {
|
|
601
|
+
// The server-side reportId still protects retries in this process.
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
function markStoredExposureDelivered(opts, signature) {
|
|
605
|
+
if (!opts.storage) return;
|
|
606
|
+
try {
|
|
607
|
+
const stored = readDeliveredExposureSignatures(opts);
|
|
608
|
+
stored.add(signature);
|
|
609
|
+
opts.storage.set(deliveredExposureStorageKey(opts), JSON.stringify([...stored].slice(-100)));
|
|
610
|
+
} catch {
|
|
611
|
+
// A later server retry remains idempotent through its reportId.
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
function removeExposureFromStoredQueue(opts, reportId) {
|
|
615
|
+
if (!opts.storage) return;
|
|
616
|
+
const queued = readExposureQueue(opts).filter(item => item.reportId !== reportId);
|
|
617
|
+
persistExposureQueue(opts, queued);
|
|
618
|
+
}
|
|
619
|
+
function randomDeliveryId(prefix) {
|
|
620
|
+
const cryptoLike = globalThis.crypto;
|
|
621
|
+
if (typeof cryptoLike?.randomUUID === 'function') return `${prefix}-${cryptoLike.randomUUID()}`;
|
|
622
|
+
return `${prefix}-${Date.now()}-${Math.random().toString(36).slice(2, 14)}`;
|
|
623
|
+
}
|
|
464
624
|
|
|
465
625
|
// ─── Reads ────────────────────────────────────────────────────────────────────
|
|
466
626
|
|
|
@@ -580,8 +740,13 @@ function resetConfigForTests() {
|
|
|
580
740
|
inFlight = null;
|
|
581
741
|
pending = null;
|
|
582
742
|
reportedExposure = null;
|
|
743
|
+
exposureQueue = [];
|
|
744
|
+
deliveredExposureSignatures = new Set();
|
|
745
|
+
exposureSending = false;
|
|
746
|
+
exposureNextAttemptAt = 0;
|
|
583
747
|
listeners.clear();
|
|
584
748
|
stopPolling();
|
|
749
|
+
stopExposureDelivery();
|
|
585
750
|
}
|
|
586
751
|
|
|
587
752
|
// ─── Internals ────────────────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_tweetnacl","_interopRequireDefault","require","e","__esModule","default","STORAGE_KEY","DEFAULT_POLL_MS","DEFAULT_TIMEOUT_MS","options","defaults","values","experiments","etag","fetchedAt","verifiedAt","source","signatureStatus","signatureKeyId","pending","reportedExposure","inFlight","pollTimer","configGeneration","listeners","Set","configureConfig","opts","stopPolling","applyCachedPayload","readCache","storage","storageKey","setConfigDefaults","more","fetchConfig","minInterval","minimumFetchIntervalMs","Date","now","requestGeneration","request","controller","AbortController","timer","setTimeout","abort","timeoutMs","response","fetch","url","method","headers","buildHeaders","signal","status","ok","Error","payload","json","verifyConfigPayload","payloadObject","nextValues","Array","isArray","get","snapshot","parseExperiments","activateOnFetch","applySnapshot","error","onError","clearTimeout","activateConfig","next","hasPendingConfig","startConfigAutoRefresh","appState","subscription","addEventListener","state","interval","pollIntervalMs","setInterval","unref","remove","changed","shallowEqual","sameExperiments","writeCache","signatureVerified","reportExposure","notify","length","signature","map","key","variant","join","context","getContext","assignments","entry","replace","body","JSON","stringify","platform","appVersion","setSignatureState","keyId","verificationConfigured","Boolean","requireSignature","signingPublicKey","signingKeyId","verifySignature","record","rawSignature","isConfigSignature","alg","toLowerCase","unsigned","locallyCanonical","canonicalizeConfigJson","canonical","parse","valid","nacl","sign","detached","verify","utf8Bytes","decodeBase64","sig","value","undefined","Object","keys","sort","atobLike","globalThis","atob","decoded","Uint8Array","from","char","charCodeAt","BufferCtor","Buffer","Encoder","TextEncoder","encode","encoded","unescape","encodeURIComponent","raw","filter","a","b","every","i","aKeys","bKeys","k","av","bv","clearInterval","getConfigValue","prototype","hasOwnProperty","call","fallback","getConfigBoolean","getConfigNumber","parsed","Number","isNaN","getConfigString","String","getAllConfig","getConfigJson","getConfigSource","getConfigExperiments","getConfigVariant","experimentKey","find","getConfigKeys","onConfigChange","listener","add","delete","getConfigInfo","keyCount","resetConfigForTests","clear","currentEtag","ctx","Accept","osVersion","language","deviceId","userId","userAttributes","getString","trim","parseCachedPayload","cached","set","forEach"],"sourceRoot":"../../src","sources":["config.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_tweetnacl","_interopRequireDefault","require","e","__esModule","default","STORAGE_KEY","DEFAULT_POLL_MS","DEFAULT_TIMEOUT_MS","DEFAULT_EXPOSURE_RETRY_MS","DEFAULT_EXPOSURE_STORAGE_KEY","MAX_EXPOSURE_QUEUE","options","defaults","values","experiments","etag","fetchedAt","verifiedAt","source","signatureStatus","signatureKeyId","pending","reportedExposure","exposureQueue","deliveredExposureSignatures","Set","exposureSending","exposureNextAttemptAt","exposureTimer","inFlight","pollTimer","configGeneration","listeners","configureConfig","opts","stopPolling","stopExposureDelivery","readExposureQueue","readDeliveredExposureSignatures","applyCachedPayload","readCache","storage","storageKey","setConfigDefaults","more","fetchConfig","minInterval","minimumFetchIntervalMs","Date","now","requestGeneration","request","controller","AbortController","timer","setTimeout","abort","timeoutMs","response","fetch","url","method","headers","buildHeaders","signal","status","ok","Error","payload","json","verifyConfigPayload","payloadObject","nextValues","Array","isArray","get","snapshot","parseExperiments","activateOnFetch","applySnapshot","error","onError","clearTimeout","activateConfig","next","hasPendingConfig","startConfigAutoRefresh","appState","startExposureDelivery","flushExposures","subscription","addEventListener","state","interval","pollIntervalMs","setInterval","unref","remove","changed","shallowEqual","sameExperiments","writeCache","signatureVerified","queueExposure","notify","reportExposure","length","signature","map","key","variant","join","has","some","item","context","getContext","assignments","entry","push","reportId","randomDeliveryId","platform","appVersion","attempts","slice","persistExposureQueue","timeout","replace","body","JSON","stringify","filter","queued","add","persistDeliveredExposureSignatures","removeExposureFromStoredQueue","markStoredExposureDelivered","Math","min","base","max","pendingExposureCount","getExposureDeliveryInfo","queueDepth","sending","nextAttemptAt","setSignatureState","keyId","verificationConfigured","Boolean","requireSignature","signingPublicKey","signingKeyId","verifySignature","record","rawSignature","isConfigSignature","alg","toLowerCase","unsigned","locallyCanonical","canonicalizeConfigJson","canonical","parse","valid","nacl","sign","detached","verify","utf8Bytes","decodeBase64","sig","value","undefined","Object","keys","sort","atobLike","globalThis","atob","decoded","Uint8Array","from","char","charCodeAt","BufferCtor","Buffer","Encoder","TextEncoder","encode","encoded","unescape","encodeURIComponent","raw","a","b","every","i","aKeys","bKeys","k","av","bv","clearInterval","exposureStorageKey","trim","deliveredExposureStorageKey","getString","parsed","set","stored","prefix","cryptoLike","crypto","randomUUID","random","toString","getConfigValue","prototype","hasOwnProperty","call","fallback","getConfigBoolean","getConfigNumber","Number","isNaN","getConfigString","String","getAllConfig","getConfigJson","getConfigSource","getConfigExperiments","getConfigVariant","experimentKey","find","getConfigKeys","onConfigChange","listener","delete","getConfigInfo","keyCount","resetConfigForTests","clear","currentEtag","ctx","Accept","osVersion","language","deviceId","userId","userAttributes","parseCachedPayload","cached","forEach"],"sourceRoot":"../../src","sources":["config.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createPulseDecisionClient = createPulseDecisionClient;
|
|
7
|
+
const DEFAULT_OUTCOME_FLUSH_MS = 10_000;
|
|
8
|
+
const DEFAULT_OUTCOME_MAX_QUEUE = 100;
|
|
9
|
+
|
|
7
10
|
/** Generic decision protocol. Product-specific action handlers remain in each app. */
|
|
8
11
|
function createPulseDecisionClient(options) {
|
|
9
12
|
const fetcher = options.fetch ?? globalThis.fetch;
|
|
@@ -11,26 +14,77 @@ function createPulseDecisionClient(options) {
|
|
|
11
14
|
const slug = encodeURIComponent(options.appSlug);
|
|
12
15
|
const timeoutMs = Math.max(250, options.timeoutMs ?? 3_000);
|
|
13
16
|
const executionMode = options.executionMode ?? 'shadow-only';
|
|
14
|
-
const
|
|
17
|
+
const storageKey = options.storageKey?.trim() || `pulse.${options.appSlug.trim()}.outcomes.v1`;
|
|
18
|
+
const maxQueue = Math.max(1, options.maxQueue ?? DEFAULT_OUTCOME_MAX_QUEUE);
|
|
19
|
+
let outcomeQueue = readOutcomeQueue(options.storage, storageKey, maxQueue);
|
|
20
|
+
let outcomeSending = false;
|
|
21
|
+
let outcomeNextAttemptAt = 0;
|
|
22
|
+
let disposed = false;
|
|
23
|
+
const persistOutcomes = () => {
|
|
24
|
+
if (!options.storage) return;
|
|
25
|
+
try {
|
|
26
|
+
options.storage.set(storageKey, JSON.stringify(outcomeQueue));
|
|
27
|
+
} catch {
|
|
28
|
+
// A storage failure may reduce durability, but decision execution itself must
|
|
29
|
+
// remain available and the caller still receives the delivery result.
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const flushOutcomes = async () => {
|
|
33
|
+
if (disposed || outcomeSending || outcomeQueue.length === 0 || Date.now() < outcomeNextAttemptAt) return 0;
|
|
34
|
+
outcomeSending = true;
|
|
35
|
+
const queued = outcomeQueue[0];
|
|
15
36
|
try {
|
|
16
|
-
const response = await timedFetch(fetcher, `${base}/pulse/decisions/${slug}/${encodeURIComponent(decisionId)}/outcome`, {
|
|
37
|
+
const response = await timedFetch(fetcher, `${base}/pulse/decisions/${slug}/${encodeURIComponent(queued.decisionId)}/outcome`, {
|
|
17
38
|
method: 'POST',
|
|
18
39
|
headers: {
|
|
19
40
|
'Content-Type': 'application/json'
|
|
20
41
|
},
|
|
21
42
|
body: JSON.stringify({
|
|
22
|
-
outcome,
|
|
23
|
-
...(metadata ? {
|
|
24
|
-
metadata
|
|
43
|
+
outcome: queued.outcome,
|
|
44
|
+
...(queued.metadata ? {
|
|
45
|
+
metadata: queued.metadata
|
|
25
46
|
} : {})
|
|
26
47
|
})
|
|
27
48
|
}, timeoutMs);
|
|
28
|
-
|
|
49
|
+
if (!response.ok) throw new Error(`Pulse outcome HTTP ${response.status}`);
|
|
50
|
+
|
|
51
|
+
// A newer terminal state may have replaced this one while the request was in
|
|
52
|
+
// flight (accepted -> converted). Remove only the exact revision delivered.
|
|
53
|
+
outcomeQueue = outcomeQueue.filter(item => item.decisionId !== queued.decisionId || item.revision !== queued.revision);
|
|
54
|
+
outcomeNextAttemptAt = 0;
|
|
55
|
+
persistOutcomes();
|
|
56
|
+
return 1;
|
|
29
57
|
} catch (error) {
|
|
58
|
+
const current = outcomeQueue.find(item => item.decisionId === queued.decisionId);
|
|
59
|
+
if (current?.revision === queued.revision) current.attempts += 1;
|
|
60
|
+
const attempts = Math.min(current?.attempts ?? queued.attempts + 1, 6);
|
|
61
|
+
const baseDelay = Math.min(60_000, 1_000 * 2 ** Math.max(0, attempts - 1));
|
|
62
|
+
outcomeNextAttemptAt = Date.now() + baseDelay;
|
|
63
|
+
persistOutcomes();
|
|
30
64
|
options.onError?.(error);
|
|
31
|
-
return
|
|
65
|
+
return 0;
|
|
66
|
+
} finally {
|
|
67
|
+
outcomeSending = false;
|
|
68
|
+
if (!disposed && outcomeNextAttemptAt === 0 && outcomeQueue.length > 0) void flushOutcomes();
|
|
32
69
|
}
|
|
33
70
|
};
|
|
71
|
+
const reportOutcome = async (decisionId, outcome, metadata) => {
|
|
72
|
+
if (!decisionId.trim() || disposed) return false;
|
|
73
|
+
const next = {
|
|
74
|
+
decisionId,
|
|
75
|
+
outcome,
|
|
76
|
+
metadata,
|
|
77
|
+
revision: randomKey(),
|
|
78
|
+
attempts: 0
|
|
79
|
+
};
|
|
80
|
+
const existing = outcomeQueue.findIndex(item => item.decisionId === decisionId);
|
|
81
|
+
if (existing >= 0) outcomeQueue[existing] = next;else outcomeQueue.push(next);
|
|
82
|
+
outcomeQueue = outcomeQueue.slice(-maxQueue);
|
|
83
|
+
outcomeNextAttemptAt = 0;
|
|
84
|
+
persistOutcomes();
|
|
85
|
+
await flushOutcomes();
|
|
86
|
+
return !outcomeQueue.some(item => item.decisionId === decisionId && item.revision === next.revision);
|
|
87
|
+
};
|
|
34
88
|
const decide = async (trigger, request = {}) => {
|
|
35
89
|
try {
|
|
36
90
|
const context = await options.getContext();
|
|
@@ -83,11 +137,34 @@ function createPulseDecisionClient(options) {
|
|
|
83
137
|
return null;
|
|
84
138
|
}
|
|
85
139
|
};
|
|
140
|
+
const timer = setInterval(() => void flushOutcomes(), options.flushIntervalMs ?? DEFAULT_OUTCOME_FLUSH_MS);
|
|
141
|
+
timer.unref?.();
|
|
142
|
+
void flushOutcomes();
|
|
86
143
|
return {
|
|
87
144
|
decide,
|
|
88
|
-
reportOutcome
|
|
145
|
+
reportOutcome,
|
|
146
|
+
flushOutcomes,
|
|
147
|
+
pendingOutcomeCount: () => outcomeQueue.length,
|
|
148
|
+
dispose: async () => {
|
|
149
|
+
clearInterval(timer);
|
|
150
|
+
await flushOutcomes();
|
|
151
|
+
disposed = true;
|
|
152
|
+
persistOutcomes();
|
|
153
|
+
}
|
|
89
154
|
};
|
|
90
155
|
}
|
|
156
|
+
function readOutcomeQueue(storage, key, maxQueue) {
|
|
157
|
+
if (!storage) return [];
|
|
158
|
+
try {
|
|
159
|
+
const raw = storage.getString(key);
|
|
160
|
+
if (!raw) return [];
|
|
161
|
+
const parsed = JSON.parse(raw);
|
|
162
|
+
if (!Array.isArray(parsed)) return [];
|
|
163
|
+
return parsed.filter(item => Boolean(item && typeof item === 'object' && typeof item.decisionId === 'string' && typeof item.outcome === 'string' && typeof item.revision === 'string' && typeof item.attempts === 'number')).slice(-maxQueue);
|
|
164
|
+
} catch {
|
|
165
|
+
return [];
|
|
166
|
+
}
|
|
167
|
+
}
|
|
91
168
|
function parseDecision(raw) {
|
|
92
169
|
if (!raw || typeof raw !== 'object') throw new Error('Malformed Pulse decision');
|
|
93
170
|
const value = raw;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createPulseDecisionClient","options","fetcher","fetch","globalThis","base","apiUrl","replace","slug","encodeURIComponent","appSlug","timeoutMs","Math","max","executionMode","
|
|
1
|
+
{"version":3,"names":["DEFAULT_OUTCOME_FLUSH_MS","DEFAULT_OUTCOME_MAX_QUEUE","createPulseDecisionClient","options","fetcher","fetch","globalThis","base","apiUrl","replace","slug","encodeURIComponent","appSlug","timeoutMs","Math","max","executionMode","storageKey","trim","maxQueue","outcomeQueue","readOutcomeQueue","storage","outcomeSending","outcomeNextAttemptAt","disposed","persistOutcomes","set","JSON","stringify","flushOutcomes","length","Date","now","queued","response","timedFetch","decisionId","method","headers","body","outcome","metadata","ok","Error","status","filter","item","revision","error","current","find","attempts","min","baseDelay","onError","reportOutcome","next","randomKey","existing","findIndex","push","slice","some","decide","trigger","request","context","getContext","attributes","channel","idempotencyKey","decision","parseDecision","json","execute","reason","action","handler","kind","handlers","undefined","result","timer","setInterval","flushIntervalMs","unref","pendingOutcomeCount","dispose","clearInterval","key","raw","getString","parsed","parse","Array","isArray","Boolean","value","mode","verdict","reasonCode","replayed","policyKey","policyVersion","url","init","controller","AbortController","setTimeout","abort","signal","clearTimeout","cryptoLike","crypto","randomUUID","random","toString"],"sourceRoot":"../../src","sources":["decisions.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/init.js
CHANGED
|
@@ -74,6 +74,8 @@ function initPulse(opts) {
|
|
|
74
74
|
defaults: opts.defaults,
|
|
75
75
|
storage: opts.storage,
|
|
76
76
|
storageKey: `pulse.${slug}.config.v1`,
|
|
77
|
+
exposureStorageKey: `pulse.${slug}.exposures.v1`,
|
|
78
|
+
reportExposure: opts.reportExposure ?? true,
|
|
77
79
|
getContext,
|
|
78
80
|
pollIntervalMs: opts.pollIntervalMs,
|
|
79
81
|
onError: opts.onError,
|
|
@@ -144,6 +146,7 @@ function initPulse(opts) {
|
|
|
144
146
|
deviceId,
|
|
145
147
|
config: (0, _config.getConfigInfo)(),
|
|
146
148
|
events: (0, _track.getTrackingInfo)(),
|
|
149
|
+
exposures: (0, _config.getExposureDeliveryInfo)(),
|
|
147
150
|
analyticsConsent: hasConsent()
|
|
148
151
|
}),
|
|
149
152
|
config: {
|
|
@@ -176,7 +179,7 @@ function initPulse(opts) {
|
|
|
176
179
|
*/
|
|
177
180
|
async function initPulseAsync(opts) {
|
|
178
181
|
const slug = opts.appSlug.trim();
|
|
179
|
-
const keys = [`pulse.${slug}.device-id`, `pulse.${slug}.config.v1`, `pulse.${slug}.events.v1`, DEVICE_ID_KEY];
|
|
182
|
+
const keys = [`pulse.${slug}.device-id`, `pulse.${slug}.config.v1`, `pulse.${slug}.events.v1`, `pulse.${slug}.exposures.v1`, DEVICE_ID_KEY];
|
|
180
183
|
const loaded = await Promise.all(keys.map(async key => [key, await opts.storage.getItem(key)]));
|
|
181
184
|
const memory = new Map(loaded.filter(entry => entry[1] !== null));
|
|
182
185
|
const storage = {
|