pulse-updates 1.2.3 → 1.2.5
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 +90 -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 +90 -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 +18 -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 +140 -10
- package/src/init.ts +16 -1
package/lib/commonjs/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_config","require","_track","DEVICE_ID_KEY","activeClient","stopActiveRefresh","initPulse","opts","disposeTracking","base","apiUrl","replace","slug","appSlug","trim","configUrl","trackUrl","deviceStorageKey","deviceId","resolveDeviceId","storage","platform","detectPlatform","osVersion","detectOsVersion","appVersion","detectAppVersion","language","detectLanguage","userId","userAttributes","consentOverride","analyticsConsent","undefined","hasConsent","getContext","getUserId","getUserAttributes","configureConfig","url","defaults","storageKey","pollIntervalMs","onError","signingPublicKey","signingKeyId","requireSignature","requireConfigSignature","verifySignature","verifyConfigSignature","verifyWithNativeKey","configureTracking","flushIntervalMs","propertyAllowlist","eventPropertyAllowlist","redactProperties","redactEventProperties","appState","onIgnored","onIgnoredEvents","Error","fetchConfig","stopRefresh","startConfigAutoRefresh","client","track","flush","flushEvents","setUser","nextUserId","attributes","sanitizeAttributes","clearUser","setAnalyticsConsent","granted","resetInstallId","randomId","set","health","config","getConfigInfo","events","getTrackingInfo","boolean","getConfigBoolean","number","getConfigNumber","string","getConfigString","json","getConfigJson","refresh","dispose","initPulseAsync","keys","loaded","Promise","all","map","key","getItem","memory","Map","filter","entry","getString","get","value","setItem","existing","minted","clean","Object","fromEntries","entries","slice","length","bytes","Uint8Array","crypto","globalThis","getRandomValues","i","Math","floor","random","hex","Array","from","b","toString","padStart","join","rn","Platform","OS","version","Version","String","default","getVersion","canonicalPayload","signature","updates","verifyConfigSignatureAsync","localize","getLocales","languageTag","Intl","DateTimeFormat","resolvedOptions","locale"],"sourceRoot":"../../src","sources":["init.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_config","require","_track","DEVICE_ID_KEY","activeClient","stopActiveRefresh","initPulse","opts","disposeTracking","base","apiUrl","replace","slug","appSlug","trim","configUrl","trackUrl","deviceStorageKey","deviceId","resolveDeviceId","storage","platform","detectPlatform","osVersion","detectOsVersion","appVersion","detectAppVersion","language","detectLanguage","userId","userAttributes","consentOverride","analyticsConsent","undefined","hasConsent","getContext","getUserId","getUserAttributes","configureConfig","url","defaults","storageKey","exposureStorageKey","reportExposure","pollIntervalMs","onError","signingPublicKey","signingKeyId","requireSignature","requireConfigSignature","verifySignature","verifyConfigSignature","verifyWithNativeKey","configureTracking","flushIntervalMs","propertyAllowlist","eventPropertyAllowlist","redactProperties","redactEventProperties","appState","onIgnored","onIgnoredEvents","Error","fetchConfig","stopRefresh","startConfigAutoRefresh","client","track","flush","flushEvents","setUser","nextUserId","attributes","sanitizeAttributes","clearUser","setAnalyticsConsent","granted","resetInstallId","randomId","set","health","config","getConfigInfo","events","getTrackingInfo","exposures","getExposureDeliveryInfo","boolean","getConfigBoolean","number","getConfigNumber","string","getConfigString","json","getConfigJson","refresh","dispose","initPulseAsync","keys","loaded","Promise","all","map","key","getItem","memory","Map","filter","entry","getString","get","value","setItem","existing","minted","clean","Object","fromEntries","entries","slice","length","bytes","Uint8Array","crypto","globalThis","getRandomValues","i","Math","floor","random","hex","Array","from","b","toString","padStart","join","rn","Platform","OS","version","Version","String","default","getVersion","canonicalPayload","signature","updates","verifyConfigSignatureAsync","localize","getLocales","languageTag","Intl","DateTimeFormat","resolvedOptions","locale"],"sourceRoot":"../../src","sources":["init.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/config.js
CHANGED
|
@@ -50,6 +50,9 @@ import nacl from 'tweetnacl';
|
|
|
50
50
|
const STORAGE_KEY = 'pulse.config.v1';
|
|
51
51
|
const DEFAULT_POLL_MS = 5 * 60 * 1000;
|
|
52
52
|
const DEFAULT_TIMEOUT_MS = 10_000;
|
|
53
|
+
const DEFAULT_EXPOSURE_RETRY_MS = 10_000;
|
|
54
|
+
const DEFAULT_EXPOSURE_STORAGE_KEY = 'pulse.exposures.v1';
|
|
55
|
+
const MAX_EXPOSURE_QUEUE = 50;
|
|
53
56
|
let options = null;
|
|
54
57
|
let defaults = {};
|
|
55
58
|
let values = {};
|
|
@@ -73,6 +76,11 @@ let signatureKeyId = null;
|
|
|
73
76
|
let pending = null;
|
|
74
77
|
/** The arm set already reported this session, so a poll does not re-report it. */
|
|
75
78
|
let reportedExposure = null;
|
|
79
|
+
let exposureQueue = [];
|
|
80
|
+
let deliveredExposureSignatures = new Set();
|
|
81
|
+
let exposureSending = false;
|
|
82
|
+
let exposureNextAttemptAt = 0;
|
|
83
|
+
let exposureTimer = null;
|
|
76
84
|
let inFlight = null;
|
|
77
85
|
let pollTimer = null;
|
|
78
86
|
let configGeneration = 0;
|
|
@@ -89,6 +97,7 @@ export function configureConfig(opts) {
|
|
|
89
97
|
// may cross that boundary.
|
|
90
98
|
configGeneration += 1;
|
|
91
99
|
stopPolling();
|
|
100
|
+
stopExposureDelivery();
|
|
92
101
|
options = opts;
|
|
93
102
|
defaults = {
|
|
94
103
|
...(opts.defaults ?? {})
|
|
@@ -103,6 +112,10 @@ export function configureConfig(opts) {
|
|
|
103
112
|
signatureKeyId = null;
|
|
104
113
|
pending = null;
|
|
105
114
|
reportedExposure = null;
|
|
115
|
+
exposureQueue = readExposureQueue(opts);
|
|
116
|
+
deliveredExposureSignatures = readDeliveredExposureSignatures(opts);
|
|
117
|
+
exposureSending = false;
|
|
118
|
+
exposureNextAttemptAt = 0;
|
|
106
119
|
inFlight = null;
|
|
107
120
|
applyCachedPayload(readCache(opts.storage, opts.storageKey), opts);
|
|
108
121
|
}
|
|
@@ -208,6 +221,8 @@ export function hasPendingConfig() {
|
|
|
208
221
|
*/
|
|
209
222
|
export function startConfigAutoRefresh(appState) {
|
|
210
223
|
void fetchConfig();
|
|
224
|
+
startExposureDelivery();
|
|
225
|
+
void flushExposures();
|
|
211
226
|
const subscription = appState?.addEventListener('change', state => {
|
|
212
227
|
if (state === 'active') void fetchConfig();
|
|
213
228
|
});
|
|
@@ -222,6 +237,7 @@ export function startConfigAutoRefresh(appState) {
|
|
|
222
237
|
return () => {
|
|
223
238
|
subscription?.remove();
|
|
224
239
|
stopPolling();
|
|
240
|
+
stopExposureDelivery();
|
|
225
241
|
};
|
|
226
242
|
}
|
|
227
243
|
function applySnapshot(next, opts) {
|
|
@@ -241,7 +257,7 @@ function applySnapshot(next, opts) {
|
|
|
241
257
|
// Reported on apply, never on fetch: with activateOnFetch false a payload can sit
|
|
242
258
|
// unapplied for the rest of a session, and an arm the app is not actually serving
|
|
243
259
|
// is not an exposure.
|
|
244
|
-
|
|
260
|
+
queueExposure(opts);
|
|
245
261
|
|
|
246
262
|
// Listeners drive re-renders and gate re-evaluation: firing them for an identical
|
|
247
263
|
// payload is pure churn, and the 200-with-same-content case is common enough
|
|
@@ -267,32 +283,94 @@ function applySnapshot(next, opts) {
|
|
|
267
283
|
* Failure is swallowed on purpose. This is a diagnostic, and no diagnostic is worth
|
|
268
284
|
* a rejected promise on the path that delivers config to the app.
|
|
269
285
|
*/
|
|
270
|
-
|
|
286
|
+
function queueExposure(opts) {
|
|
271
287
|
if (opts.reportExposure !== true) return;
|
|
272
288
|
if (experiments.length === 0) return;
|
|
273
289
|
const signature = experiments.map(e => `${e.key}=${e.variant}`).join(',');
|
|
274
|
-
if (signature === reportedExposure) return;
|
|
275
|
-
reportedExposure = signature;
|
|
290
|
+
if (signature === reportedExposure || deliveredExposureSignatures.has(signature) || exposureQueue.some(item => item.signature === signature)) return;
|
|
276
291
|
const context = opts.getContext?.() ?? {};
|
|
277
292
|
const assignments = {};
|
|
278
293
|
for (const entry of experiments) assignments[entry.key] = entry.variant;
|
|
294
|
+
exposureQueue.push({
|
|
295
|
+
reportId: randomDeliveryId('exp'),
|
|
296
|
+
signature,
|
|
297
|
+
platform: context.platform,
|
|
298
|
+
appVersion: context.appVersion,
|
|
299
|
+
assignments,
|
|
300
|
+
attempts: 0
|
|
301
|
+
});
|
|
302
|
+
if (exposureQueue.length > MAX_EXPOSURE_QUEUE) {
|
|
303
|
+
exposureQueue = exposureQueue.slice(-MAX_EXPOSURE_QUEUE);
|
|
304
|
+
}
|
|
305
|
+
persistExposureQueue(opts, exposureQueue);
|
|
306
|
+
void flushExposures();
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/** Flushes the durable exposure outbox. Safe to call on launch, resume or manually. */
|
|
310
|
+
export async function flushExposures() {
|
|
311
|
+
if (!options || exposureSending || exposureQueue.length === 0 || Date.now() < exposureNextAttemptAt) return 0;
|
|
312
|
+
const opts = options;
|
|
313
|
+
const requestGeneration = configGeneration;
|
|
314
|
+
const item = exposureQueue[0];
|
|
315
|
+
exposureSending = true;
|
|
316
|
+
const controller = typeof AbortController !== 'undefined' ? new AbortController() : null;
|
|
317
|
+
const timeout = controller ? setTimeout(() => controller.abort(), opts.timeoutMs ?? DEFAULT_TIMEOUT_MS) : null;
|
|
279
318
|
try {
|
|
280
|
-
await fetch(`${opts.url.replace(/\/+$/, '')}/exposure`, {
|
|
319
|
+
const response = await fetch(`${opts.url.replace(/\/+$/, '')}/exposure`, {
|
|
281
320
|
method: 'POST',
|
|
282
321
|
headers: {
|
|
283
322
|
'Content-Type': 'application/json'
|
|
284
323
|
},
|
|
285
324
|
body: JSON.stringify({
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
325
|
+
reportId: item.reportId,
|
|
326
|
+
platform: item.platform,
|
|
327
|
+
appVersion: item.appVersion,
|
|
328
|
+
assignments: item.assignments
|
|
329
|
+
}),
|
|
330
|
+
signal: controller?.signal
|
|
290
331
|
});
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
332
|
+
if (!response.ok) throw new Error(`Pulse exposure HTTP ${response.status}`);
|
|
333
|
+
if (requestGeneration === configGeneration && options === opts) {
|
|
334
|
+
exposureQueue = exposureQueue.filter(queued => queued.reportId !== item.reportId);
|
|
335
|
+
reportedExposure = item.signature;
|
|
336
|
+
deliveredExposureSignatures.add(item.signature);
|
|
337
|
+
persistDeliveredExposureSignatures(opts);
|
|
338
|
+
exposureNextAttemptAt = 0;
|
|
339
|
+
persistExposureQueue(opts, exposureQueue);
|
|
340
|
+
if (exposureQueue.length > 0) void flushExposures();
|
|
341
|
+
} else {
|
|
342
|
+
removeExposureFromStoredQueue(opts, item.reportId);
|
|
343
|
+
markStoredExposureDelivered(opts, item.signature);
|
|
344
|
+
}
|
|
345
|
+
return 1;
|
|
346
|
+
} catch (error) {
|
|
347
|
+
if (requestGeneration === configGeneration && options === opts) {
|
|
348
|
+
exposureQueue = exposureQueue.map(queued => queued.reportId === item.reportId ? {
|
|
349
|
+
...queued,
|
|
350
|
+
attempts: queued.attempts + 1
|
|
351
|
+
} : queued);
|
|
352
|
+
const attempts = Math.min(item.attempts + 1, 6);
|
|
353
|
+
const base = Math.min(60_000, 1_000 * 2 ** Math.max(0, attempts - 1));
|
|
354
|
+
exposureNextAttemptAt = Date.now() + base;
|
|
355
|
+
persistExposureQueue(opts, exposureQueue);
|
|
356
|
+
}
|
|
357
|
+
opts.onError?.(error);
|
|
358
|
+
return 0;
|
|
359
|
+
} finally {
|
|
360
|
+
if (timeout) clearTimeout(timeout);
|
|
361
|
+
if (requestGeneration === configGeneration) exposureSending = false;
|
|
294
362
|
}
|
|
295
363
|
}
|
|
364
|
+
export function pendingExposureCount() {
|
|
365
|
+
return exposureQueue.length;
|
|
366
|
+
}
|
|
367
|
+
export function getExposureDeliveryInfo() {
|
|
368
|
+
return {
|
|
369
|
+
queueDepth: exposureQueue.length,
|
|
370
|
+
sending: exposureSending,
|
|
371
|
+
nextAttemptAt: exposureNextAttemptAt
|
|
372
|
+
};
|
|
373
|
+
}
|
|
296
374
|
|
|
297
375
|
/**
|
|
298
376
|
* Verifies the exact unsigned JSON object the server signs. A configured verifier
|
|
@@ -436,6 +514,85 @@ function stopPolling() {
|
|
|
436
514
|
pollTimer = null;
|
|
437
515
|
}
|
|
438
516
|
}
|
|
517
|
+
function startExposureDelivery() {
|
|
518
|
+
stopExposureDelivery();
|
|
519
|
+
if (options?.reportExposure !== true) return;
|
|
520
|
+
exposureTimer = setInterval(() => void flushExposures(), DEFAULT_EXPOSURE_RETRY_MS);
|
|
521
|
+
exposureTimer.unref?.();
|
|
522
|
+
}
|
|
523
|
+
function stopExposureDelivery() {
|
|
524
|
+
if (exposureTimer) clearInterval(exposureTimer);
|
|
525
|
+
exposureTimer = null;
|
|
526
|
+
}
|
|
527
|
+
function exposureStorageKey(opts) {
|
|
528
|
+
if (opts.exposureStorageKey?.trim()) return opts.exposureStorageKey.trim();
|
|
529
|
+
if (opts.storageKey?.trim()) return `${opts.storageKey.trim()}.exposures`;
|
|
530
|
+
return DEFAULT_EXPOSURE_STORAGE_KEY;
|
|
531
|
+
}
|
|
532
|
+
function deliveredExposureStorageKey(opts) {
|
|
533
|
+
return `${exposureStorageKey(opts)}.delivered`;
|
|
534
|
+
}
|
|
535
|
+
function readExposureQueue(opts) {
|
|
536
|
+
if (!opts.storage) return [];
|
|
537
|
+
try {
|
|
538
|
+
const raw = opts.storage.getString(exposureStorageKey(opts));
|
|
539
|
+
if (!raw) return [];
|
|
540
|
+
const parsed = JSON.parse(raw);
|
|
541
|
+
if (!Array.isArray(parsed)) return [];
|
|
542
|
+
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);
|
|
543
|
+
} catch {
|
|
544
|
+
return [];
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
function persistExposureQueue(opts, queued) {
|
|
548
|
+
if (!opts.storage) return;
|
|
549
|
+
try {
|
|
550
|
+
opts.storage.set(exposureStorageKey(opts), JSON.stringify(queued));
|
|
551
|
+
} catch {
|
|
552
|
+
// Exposure delivery is diagnostic and may never make config adoption fail.
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
function readDeliveredExposureSignatures(opts) {
|
|
556
|
+
if (!opts.storage) return new Set();
|
|
557
|
+
try {
|
|
558
|
+
const raw = opts.storage.getString(deliveredExposureStorageKey(opts));
|
|
559
|
+
if (!raw) return new Set();
|
|
560
|
+
const parsed = JSON.parse(raw);
|
|
561
|
+
if (!Array.isArray(parsed)) return new Set();
|
|
562
|
+
return new Set(parsed.filter(value => typeof value === 'string').slice(-100));
|
|
563
|
+
} catch {
|
|
564
|
+
return new Set();
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
function persistDeliveredExposureSignatures(opts) {
|
|
568
|
+
if (!opts.storage) return;
|
|
569
|
+
try {
|
|
570
|
+
const values = [...deliveredExposureSignatures].slice(-100);
|
|
571
|
+
opts.storage.set(deliveredExposureStorageKey(opts), JSON.stringify(values));
|
|
572
|
+
} catch {
|
|
573
|
+
// The server-side reportId still protects retries in this process.
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
function markStoredExposureDelivered(opts, signature) {
|
|
577
|
+
if (!opts.storage) return;
|
|
578
|
+
try {
|
|
579
|
+
const stored = readDeliveredExposureSignatures(opts);
|
|
580
|
+
stored.add(signature);
|
|
581
|
+
opts.storage.set(deliveredExposureStorageKey(opts), JSON.stringify([...stored].slice(-100)));
|
|
582
|
+
} catch {
|
|
583
|
+
// A later server retry remains idempotent through its reportId.
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
function removeExposureFromStoredQueue(opts, reportId) {
|
|
587
|
+
if (!opts.storage) return;
|
|
588
|
+
const queued = readExposureQueue(opts).filter(item => item.reportId !== reportId);
|
|
589
|
+
persistExposureQueue(opts, queued);
|
|
590
|
+
}
|
|
591
|
+
function randomDeliveryId(prefix) {
|
|
592
|
+
const cryptoLike = globalThis.crypto;
|
|
593
|
+
if (typeof cryptoLike?.randomUUID === 'function') return `${prefix}-${cryptoLike.randomUUID()}`;
|
|
594
|
+
return `${prefix}-${Date.now()}-${Math.random().toString(36).slice(2, 14)}`;
|
|
595
|
+
}
|
|
439
596
|
|
|
440
597
|
// ─── Reads ────────────────────────────────────────────────────────────────────
|
|
441
598
|
|
|
@@ -555,8 +712,13 @@ export function resetConfigForTests() {
|
|
|
555
712
|
inFlight = null;
|
|
556
713
|
pending = null;
|
|
557
714
|
reportedExposure = null;
|
|
715
|
+
exposureQueue = [];
|
|
716
|
+
deliveredExposureSignatures = new Set();
|
|
717
|
+
exposureSending = false;
|
|
718
|
+
exposureNextAttemptAt = 0;
|
|
558
719
|
listeners.clear();
|
|
559
720
|
stopPolling();
|
|
721
|
+
stopExposureDelivery();
|
|
560
722
|
}
|
|
561
723
|
|
|
562
724
|
// ─── Internals ────────────────────────────────────────────────────────────────
|
package/lib/module/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nacl","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","e","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","sign","detached","verify","utf8Bytes","decodeBase64","sig","value","undefined","Object","keys","sort","atobLike","globalThis","atob","decoded","Uint8Array","from","char","charCodeAt","BufferCtor","require","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":["nacl","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","e","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","sign","detached","verify","utf8Bytes","decodeBase64","sig","value","undefined","Object","keys","sort","atobLike","globalThis","atob","decoded","Uint8Array","from","char","charCodeAt","BufferCtor","require","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":[]}
|
package/lib/module/decisions.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
const DEFAULT_OUTCOME_FLUSH_MS = 10_000;
|
|
2
|
+
const DEFAULT_OUTCOME_MAX_QUEUE = 100;
|
|
3
|
+
|
|
1
4
|
/** Generic decision protocol. Product-specific action handlers remain in each app. */
|
|
2
5
|
export function createPulseDecisionClient(options) {
|
|
3
6
|
const fetcher = options.fetch ?? globalThis.fetch;
|
|
@@ -5,26 +8,77 @@ export function createPulseDecisionClient(options) {
|
|
|
5
8
|
const slug = encodeURIComponent(options.appSlug);
|
|
6
9
|
const timeoutMs = Math.max(250, options.timeoutMs ?? 3_000);
|
|
7
10
|
const executionMode = options.executionMode ?? 'shadow-only';
|
|
8
|
-
const
|
|
11
|
+
const storageKey = options.storageKey?.trim() || `pulse.${options.appSlug.trim()}.outcomes.v1`;
|
|
12
|
+
const maxQueue = Math.max(1, options.maxQueue ?? DEFAULT_OUTCOME_MAX_QUEUE);
|
|
13
|
+
let outcomeQueue = readOutcomeQueue(options.storage, storageKey, maxQueue);
|
|
14
|
+
let outcomeSending = false;
|
|
15
|
+
let outcomeNextAttemptAt = 0;
|
|
16
|
+
let disposed = false;
|
|
17
|
+
const persistOutcomes = () => {
|
|
18
|
+
if (!options.storage) return;
|
|
9
19
|
try {
|
|
10
|
-
|
|
20
|
+
options.storage.set(storageKey, JSON.stringify(outcomeQueue));
|
|
21
|
+
} catch {
|
|
22
|
+
// A storage failure may reduce durability, but decision execution itself must
|
|
23
|
+
// remain available and the caller still receives the delivery result.
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const flushOutcomes = async () => {
|
|
27
|
+
if (disposed || outcomeSending || outcomeQueue.length === 0 || Date.now() < outcomeNextAttemptAt) return 0;
|
|
28
|
+
outcomeSending = true;
|
|
29
|
+
const queued = outcomeQueue[0];
|
|
30
|
+
try {
|
|
31
|
+
const response = await timedFetch(fetcher, `${base}/pulse/decisions/${slug}/${encodeURIComponent(queued.decisionId)}/outcome`, {
|
|
11
32
|
method: 'POST',
|
|
12
33
|
headers: {
|
|
13
34
|
'Content-Type': 'application/json'
|
|
14
35
|
},
|
|
15
36
|
body: JSON.stringify({
|
|
16
|
-
outcome,
|
|
17
|
-
...(metadata ? {
|
|
18
|
-
metadata
|
|
37
|
+
outcome: queued.outcome,
|
|
38
|
+
...(queued.metadata ? {
|
|
39
|
+
metadata: queued.metadata
|
|
19
40
|
} : {})
|
|
20
41
|
})
|
|
21
42
|
}, timeoutMs);
|
|
22
|
-
|
|
43
|
+
if (!response.ok) throw new Error(`Pulse outcome HTTP ${response.status}`);
|
|
44
|
+
|
|
45
|
+
// A newer terminal state may have replaced this one while the request was in
|
|
46
|
+
// flight (accepted -> converted). Remove only the exact revision delivered.
|
|
47
|
+
outcomeQueue = outcomeQueue.filter(item => item.decisionId !== queued.decisionId || item.revision !== queued.revision);
|
|
48
|
+
outcomeNextAttemptAt = 0;
|
|
49
|
+
persistOutcomes();
|
|
50
|
+
return 1;
|
|
23
51
|
} catch (error) {
|
|
52
|
+
const current = outcomeQueue.find(item => item.decisionId === queued.decisionId);
|
|
53
|
+
if (current?.revision === queued.revision) current.attempts += 1;
|
|
54
|
+
const attempts = Math.min(current?.attempts ?? queued.attempts + 1, 6);
|
|
55
|
+
const baseDelay = Math.min(60_000, 1_000 * 2 ** Math.max(0, attempts - 1));
|
|
56
|
+
outcomeNextAttemptAt = Date.now() + baseDelay;
|
|
57
|
+
persistOutcomes();
|
|
24
58
|
options.onError?.(error);
|
|
25
|
-
return
|
|
59
|
+
return 0;
|
|
60
|
+
} finally {
|
|
61
|
+
outcomeSending = false;
|
|
62
|
+
if (!disposed && outcomeNextAttemptAt === 0 && outcomeQueue.length > 0) void flushOutcomes();
|
|
26
63
|
}
|
|
27
64
|
};
|
|
65
|
+
const reportOutcome = async (decisionId, outcome, metadata) => {
|
|
66
|
+
if (!decisionId.trim() || disposed) return false;
|
|
67
|
+
const next = {
|
|
68
|
+
decisionId,
|
|
69
|
+
outcome,
|
|
70
|
+
metadata,
|
|
71
|
+
revision: randomKey(),
|
|
72
|
+
attempts: 0
|
|
73
|
+
};
|
|
74
|
+
const existing = outcomeQueue.findIndex(item => item.decisionId === decisionId);
|
|
75
|
+
if (existing >= 0) outcomeQueue[existing] = next;else outcomeQueue.push(next);
|
|
76
|
+
outcomeQueue = outcomeQueue.slice(-maxQueue);
|
|
77
|
+
outcomeNextAttemptAt = 0;
|
|
78
|
+
persistOutcomes();
|
|
79
|
+
await flushOutcomes();
|
|
80
|
+
return !outcomeQueue.some(item => item.decisionId === decisionId && item.revision === next.revision);
|
|
81
|
+
};
|
|
28
82
|
const decide = async (trigger, request = {}) => {
|
|
29
83
|
try {
|
|
30
84
|
const context = await options.getContext();
|
|
@@ -77,11 +131,39 @@ export function createPulseDecisionClient(options) {
|
|
|
77
131
|
return null;
|
|
78
132
|
}
|
|
79
133
|
};
|
|
134
|
+
const timer = setInterval(() => void flushOutcomes(), options.flushIntervalMs ?? DEFAULT_OUTCOME_FLUSH_MS);
|
|
135
|
+
timer.unref?.();
|
|
136
|
+
void flushOutcomes();
|
|
80
137
|
return {
|
|
81
138
|
decide,
|
|
82
|
-
reportOutcome
|
|
139
|
+
reportOutcome,
|
|
140
|
+
flushOutcomes,
|
|
141
|
+
pendingOutcomeCount: () => outcomeQueue.length,
|
|
142
|
+
outcomeDeliveryInfo: () => ({
|
|
143
|
+
queueDepth: outcomeQueue.length,
|
|
144
|
+
sending: outcomeSending,
|
|
145
|
+
nextAttemptAt: outcomeNextAttemptAt
|
|
146
|
+
}),
|
|
147
|
+
dispose: async () => {
|
|
148
|
+
clearInterval(timer);
|
|
149
|
+
await flushOutcomes();
|
|
150
|
+
disposed = true;
|
|
151
|
+
persistOutcomes();
|
|
152
|
+
}
|
|
83
153
|
};
|
|
84
154
|
}
|
|
155
|
+
function readOutcomeQueue(storage, key, maxQueue) {
|
|
156
|
+
if (!storage) return [];
|
|
157
|
+
try {
|
|
158
|
+
const raw = storage.getString(key);
|
|
159
|
+
if (!raw) return [];
|
|
160
|
+
const parsed = JSON.parse(raw);
|
|
161
|
+
if (!Array.isArray(parsed)) return [];
|
|
162
|
+
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);
|
|
163
|
+
} catch {
|
|
164
|
+
return [];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
85
167
|
function parseDecision(raw) {
|
|
86
168
|
if (!raw || typeof raw !== 'object') throw new Error('Malformed Pulse decision');
|
|
87
169
|
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","outcomeDeliveryInfo","queueDepth","sending","nextAttemptAt","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":[]}
|