pulse-updates 1.3.7 → 1.3.9

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.
@@ -36,6 +36,7 @@ let sending = false;
36
36
  let nextAttemptAt = 0;
37
37
  let lifecycleSubscription = null;
38
38
  let trackingGeneration = 0;
39
+ const asynchronousStorageAdapters = new WeakSet();
39
40
 
40
41
  /** Turns a config url into the track url; leaves an explicit track url alone. */
41
42
  function trackUrl(url) {
@@ -60,10 +61,37 @@ export function configureTracking(opts) {
60
61
  * caller has to wrap.
61
62
  */
62
63
  export function track(event, props, time) {
63
- if (!options || !event) return;
64
- if (options.hasConsent?.() === false) {
64
+ void enqueueEvent(randomEventId(), event, props, time, false);
65
+ }
66
+
67
+ /**
68
+ * Durably enqueue one logical event with a caller-owned UUID. Replaying the same id is safe:
69
+ * Pulse's server/read model deduplicates it, while the local outbox avoids duplicate rows that
70
+ * are still pending. `true` means the event is present in persistent storage, not delivered yet;
71
+ * once acknowledged, Track keeps it in that outbox through retries and process restarts until a
72
+ * successful server response removes it transactionally.
73
+ */
74
+ export function trackIdempotent(eventId, event, props, time) {
75
+ const normalizedId = eventId.trim().toLowerCase();
76
+ if (!UUID_PATTERN.test(normalizedId)) return false;
77
+ return enqueueEvent(normalizedId, event, props, time, true);
78
+ }
79
+ function enqueueEvent(eventId, event, props, time, requirePersistentAck) {
80
+ if (!options || !event) return false;
81
+ try {
82
+ if (options.hasConsent?.() === false) {
83
+ options.onDropped?.(1, 'no-consent');
84
+ return false;
85
+ }
86
+ } catch {
65
87
  options.onDropped?.(1, 'no-consent');
66
- return;
88
+ return false;
89
+ }
90
+ if (requirePersistentAck) {
91
+ // Probe with the unchanged queue before accepting caller-owned data. This discovers custom
92
+ // adapters that secretly return a Promise without ever placing the terminal event in Track;
93
+ // the upstream Links outbox remains the single source of truth.
94
+ if (!options.storage || !supportsDurableSyncWrites(options.storage) || !persistQueue()) return false;
67
95
  }
68
96
  const flat = {};
69
97
  const allow = options.propertyAllowlist ? new Set(options.propertyAllowlist) : null;
@@ -73,29 +101,77 @@ export function track(event, props, time) {
73
101
  if (allow && !allow.has(key)) continue;
74
102
  flat[key] = redact.has(key) ? '[REDACTED]' : typeof value === 'string' ? value : String(value);
75
103
  }
104
+ let occurredAt;
105
+ try {
106
+ occurredAt = (time ?? new Date()).toISOString();
107
+ } catch {
108
+ return false;
109
+ }
110
+ const existing = queue.find(queued => queued.id === eventId);
111
+ if (existing) {
112
+ const sameLogicalEvent = existing.event === event && existing.time === occurredAt && JSON.stringify(existing.props) === JSON.stringify(flat);
113
+ if (!sameLogicalEvent) return false;
114
+ if (requirePersistentAck && existing.durable !== true) {
115
+ existing.durable = true;
116
+ if (!persistQueue()) {
117
+ delete existing.durable;
118
+ persistQueue();
119
+ return false;
120
+ }
121
+ }
122
+ return true;
123
+ }
124
+ const queueBeforeDurableEnqueue = requirePersistentAck ? [...queue] : null;
76
125
  queue.push({
77
- id: randomEventId(),
126
+ id: eventId,
78
127
  event,
79
- time: (time ?? new Date()).toISOString(),
128
+ time: occurredAt,
80
129
  props: flat,
81
- attempts: 0
130
+ attempts: 0,
131
+ ...(requirePersistentAck ? {
132
+ durable: true
133
+ } : {})
82
134
  });
83
- const maxQueue = options.maxQueue ?? DEFAULT_MAX_QUEUE;
84
- if (queue.length > maxQueue) {
85
- const dropped = queue.length - maxQueue;
86
- queue = queue.slice(dropped);
87
- options.onDropped?.(dropped, 'queue-full');
135
+ const maxQueue = Math.max(0, options.maxQueue ?? DEFAULT_MAX_QUEUE);
136
+ let dropped = 0;
137
+ while (queue.length > maxQueue) {
138
+ // Never evict a previously acknowledged durable event to make room. When every queued row
139
+ // is durable, the newest enqueue is refused and its upstream outbox remains authoritative.
140
+ const bestEffortIndex = queue.findIndex(queued => queued.durable !== true);
141
+ if (bestEffortIndex < 0) {
142
+ // The queue can already exceed a newly lowered max after restart. Refuse only the newest
143
+ // durable enqueue; previously acknowledged records must still reach the server.
144
+ const newestIndex = queue.findIndex(queued => queued.id === eventId);
145
+ if (newestIndex >= 0) {
146
+ queue.splice(newestIndex, 1);
147
+ dropped += 1;
148
+ }
149
+ break;
150
+ }
151
+ const index = bestEffortIndex;
152
+ queue.splice(index, 1);
153
+ dropped += 1;
88
154
  }
89
- persistQueue();
155
+ const retained = queue.some(queued => queued.id === eventId);
156
+ const persisted = persistQueue();
157
+ if (requirePersistentAck && (!retained || !persisted)) {
158
+ queue = queueBeforeDurableEnqueue ?? queue;
159
+ // If an adapter revealed itself as asynchronous only on the second write, schedule a
160
+ // compensating best-effort mirror without the caller-owned event.
161
+ persistQueue();
162
+ return false;
163
+ }
164
+ if (dropped > 0) options.onDropped?.(dropped, 'queue-full');
90
165
  if (queue.length >= (options.maxBatch ?? DEFAULT_MAX_BATCH)) void flushEvents();
166
+ return retained && (!requirePersistentAck || persisted);
91
167
  }
92
168
 
93
169
  /**
94
170
  * Send what is queued. Returns how many events the server accepted.
95
171
  *
96
- * Failures put the batch back at the front of the queue rather than dropping it: the
97
- * usual cause is a network that is about to come back, and the usual moment is right
98
- * after launch, when the first events of a session are the ones a funnel needs most.
172
+ * The batch remains in the durable queue while HTTP is in flight and is removed only after a
173
+ * successful response is also persisted locally. This intentionally permits duplicate replay
174
+ * after a crash, while a caller-owned event id lets the server/read model deduplicate it.
99
175
  */
100
176
  export async function flushEvents() {
101
177
  if (!options || sending || queue.length === 0 || Date.now() < nextAttemptAt) return 0;
@@ -109,8 +185,6 @@ export async function flushEvents() {
109
185
  if (!anonymousInstallation && !ctx.deviceId) return 0;
110
186
  const requestDeviceId = anonymousInstallation ? analyticsInstallationId : ctx.deviceId;
111
187
  const batch = queue.slice(0, opts.maxBatch ?? DEFAULT_MAX_BATCH);
112
- queue = queue.slice(batch.length);
113
- persistQueue();
114
188
  sending = true;
115
189
  const controller = typeof AbortController !== 'undefined' ? new AbortController() : null;
116
190
  const timeout = controller ? setTimeout(() => controller.abort(), opts.timeoutMs ?? DEFAULT_TIMEOUT_MS) : null;
@@ -139,11 +213,9 @@ export async function flushEvents() {
139
213
  signal: controller?.signal
140
214
  });
141
215
  if (!response.ok) {
142
- // Rate limited or briefly down: keep the events, try on the next tick.
216
+ // Rate limited or briefly down: the batch never left the durable queue.
143
217
  if (requestGeneration === trackingGeneration && options === opts) {
144
- requeueWithBackoff(batch, response.status);
145
- } else {
146
- restoreStaleBatch(opts, batch, response.status);
218
+ markBatchForRetry(batch, response.status);
147
219
  }
148
220
  if (response.status !== 429) opts.onError?.(new Error(`Pulse track failed: ${response.status}`));
149
221
  return 0;
@@ -152,10 +224,15 @@ export async function flushEvents() {
152
224
  if (requestGeneration !== trackingGeneration || options !== opts) return body.accepted ?? 0;
153
225
  if (body.ignored && body.ignored.length > 0) opts.onIgnored?.(body.ignored);
154
226
  nextAttemptAt = 0;
155
- persistQueue();
227
+ if (!acknowledgeBatch(opts, batch)) {
228
+ // The server may already have accepted the ids. Keep and replay them rather than creating
229
+ // the loss window between remote ACK and local deletion.
230
+ nextAttemptAt = Date.now() + retryDelayFor(batch);
231
+ opts.onError?.(new Error('Pulse track acknowledgement was not persisted'));
232
+ }
156
233
  return body.accepted ?? 0;
157
234
  } catch (error) {
158
- if (requestGeneration === trackingGeneration && options === opts) requeueWithBackoff(batch);else restoreStaleBatch(opts, batch);
235
+ if (requestGeneration === trackingGeneration && options === opts) markBatchForRetry(batch);
159
236
  opts.onError?.(error);
160
237
  return 0;
161
238
  } finally {
@@ -203,60 +280,70 @@ function startTimer() {
203
280
  // and a CLI importing this should still be able to exit.
204
281
  timer.unref?.();
205
282
  }
206
- function requeueWithBackoff(batch, status) {
283
+ function markBatchForRetry(batch, status) {
207
284
  if (!options) return;
208
285
  const maxAttempts = options.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
209
- const retryable = [];
286
+ const batchIds = new Set(batch.map(event => event.id));
210
287
  let dropped = 0;
211
- for (const event of batch) {
288
+ queue = queue.flatMap(event => {
289
+ if (!batchIds.has(event.id)) return [event];
212
290
  const next = {
213
291
  ...event,
214
- attempts: event.attempts + 1
292
+ attempts: Math.min(event.attempts + 1, 100_000)
215
293
  };
216
- if (next.attempts >= maxAttempts && status !== 429) dropped++;else retryable.push(next);
217
- }
218
- queue = [...retryable, ...queue];
294
+ if (next.durable !== true && next.attempts >= maxAttempts && status !== 429) {
295
+ dropped += 1;
296
+ return [];
297
+ }
298
+ return [next];
299
+ });
219
300
  if (dropped > 0) options.onDropped?.(dropped, 'max-attempts');
220
- const attempts = retryable.reduce((max, event) => Math.max(max, event.attempts), 1);
221
- const base = Math.min(60_000, 1_000 * 2 ** Math.min(attempts - 1, 6));
222
- nextAttemptAt = Date.now() + base + Math.floor(Math.random() * Math.max(1, base / 4));
301
+ nextAttemptAt = Date.now() + retryDelayFor(batch.map(event => ({
302
+ ...event,
303
+ attempts: Math.min(event.attempts + 1, 100_000)
304
+ })));
223
305
  persistQueue();
224
306
  }
225
-
226
- /**
227
- * An old request may fail after another app has been configured. Its rows belong in
228
- * the old app's outbox, never in the new app's in-memory queue. When the same app was
229
- * merely reconfigured, merge them back into the live queue so it need not restart to
230
- * see them; otherwise persist directly under the captured app-scoped key.
231
- */
232
- function restoreStaleBatch(opts, batch, status) {
233
- const maxAttempts = opts.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
234
- const retryable = [];
235
- let dropped = 0;
236
- for (const event of batch) {
237
- const next = {
238
- ...event,
239
- attempts: event.attempts + 1
240
- };
241
- if (next.attempts >= maxAttempts && status !== 429) dropped++;else retryable.push(next);
307
+ function acknowledgeBatch(opts, batch) {
308
+ const acknowledgedIds = new Set(batch.map(event => event.id));
309
+ const remaining = queue.filter(event => !acknowledgedIds.has(event.id));
310
+ if (!opts.storage) {
311
+ queue = remaining;
312
+ return true;
242
313
  }
243
- if (dropped > 0) opts.onDropped?.(dropped, 'max-attempts');
244
- if (retryable.length === 0) return;
245
- const currentOptions = options;
246
- const sameOutbox = currentOptions?.storage === opts.storage && currentOptions !== null && storageKey(currentOptions) === storageKey(opts);
247
- if (sameOutbox) {
248
- queue = [...retryable, ...queue].slice(-(options?.maxQueue ?? DEFAULT_MAX_QUEUE));
249
- persistQueue();
250
- return;
314
+ const includesDurable = batch.some(event => event.durable === true);
315
+ // Never schedule a destructive outbox write through an adapter already known to be async.
316
+ // The server may have accepted this batch, but retaining it for a deduplicated replay is safer
317
+ // than losing it during the gap before an asynchronous deletion reaches disk.
318
+ if (!supportsDurableSyncWrites(opts.storage)) {
319
+ if (includesDurable) return false;
320
+ queue = remaining;
321
+ // Best-effort events keep the historical AsyncStorage behavior: the in-memory batch drains
322
+ // after 2xx and the mirror may replay after a crash, but it cannot block or resend forever.
323
+ writeStorageValue(opts.storage, storageKey(opts), JSON.stringify(remaining), opts.onError, true);
324
+ return true;
251
325
  }
252
- if (!opts.storage) return;
253
- try {
254
- const stored = readQueue(opts);
255
- const restored = [...retryable, ...stored].slice(-(opts.maxQueue ?? DEFAULT_MAX_QUEUE));
256
- opts.storage.set(storageKey(opts), JSON.stringify(restored));
257
- } catch {
258
- // Best effort only; a telemetry recovery must not affect the new app session.
326
+ const persisted = writeStorageValue(opts.storage, storageKey(opts), JSON.stringify(remaining), opts.onError, false);
327
+ if (!persisted) {
328
+ if (!includesDurable && !supportsDurableSyncWrites(opts.storage)) {
329
+ queue = remaining;
330
+ writeStorageValue(opts.storage, storageKey(opts), JSON.stringify(remaining), opts.onError, true);
331
+ return true;
332
+ }
333
+ if (!supportsDurableSyncWrites(opts.storage)) {
334
+ // A conditional thenable may already have scheduled deletion. Immediately schedule the
335
+ // unchanged durable outbox behind it so a normal ordered async adapter restores the record.
336
+ writeStorageValue(opts.storage, storageKey(opts), JSON.stringify(queue), opts.onError, true);
337
+ }
338
+ return false;
259
339
  }
340
+ queue = remaining;
341
+ return true;
342
+ }
343
+ function retryDelayFor(batch) {
344
+ const attempts = batch.reduce((max, event) => Math.max(max, event.attempts), 1);
345
+ const base = Math.min(60_000, 1_000 * 2 ** Math.min(Math.max(attempts - 1, 0), 6));
346
+ return base + Math.floor(Math.random() * Math.max(1, base / 4));
260
347
  }
261
348
  function storageKey(opts) {
262
349
  return opts.storageKey?.trim() || DEFAULT_STORAGE_KEY;
@@ -275,11 +362,9 @@ function resolveAnalyticsInstallationId(opts) {
275
362
  }
276
363
  const generated = randomAnalyticsInstallationId();
277
364
  if (opts.storage) {
278
- try {
279
- opts.storage.set(analyticsInstallationIdStorageKey(opts), generated);
280
- } catch {
281
- // A telemetry identifier can stay memory-only when storage is unavailable.
282
- }
365
+ // This identifier does not acknowledge delivery, so asynchronous best-effort persistence is
366
+ // acceptable. The helper still observes rejections and marks accidental thenable adapters.
367
+ writeStorageValue(opts.storage, analyticsInstallationIdStorageKey(opts), generated, opts.onError, true);
283
368
  }
284
369
  return generated;
285
370
  }
@@ -290,19 +375,56 @@ function readQueue(opts) {
290
375
  if (!raw) return [];
291
376
  const parsed = JSON.parse(raw);
292
377
  if (!Array.isArray(parsed)) return [];
293
- return parsed.filter(item => Boolean(item && typeof item === 'object' && typeof item.id === 'string' && typeof item.event === 'string' && typeof item.time === 'string' && typeof item.props === 'object' && typeof item.attempts === 'number')).slice(-(opts.maxQueue ?? DEFAULT_MAX_QUEUE));
378
+ const restored = parsed.filter(item => Boolean(item && typeof item === 'object' && typeof item.id === 'string' && typeof item.event === 'string' && typeof item.time === 'string' && item.props && typeof item.props === 'object' && !Array.isArray(item.props) && typeof item.attempts === 'number' && Number.isSafeInteger(item.attempts) && item.attempts >= 0 && item.attempts <= 100_000 && (item.durable === undefined || item.durable === true)));
379
+ const maxQueue = Math.max(0, opts.maxQueue ?? DEFAULT_MAX_QUEUE);
380
+ if (restored.length <= maxQueue) return restored;
381
+ const selected = new Set();
382
+ restored.forEach((event, index) => {
383
+ if (event.durable === true) selected.add(index);
384
+ });
385
+ // A lower max in a later app version may not erase already-ACKed durable rows. Fill any
386
+ // remaining capacity with the newest best-effort events, retaining original send order.
387
+ for (let index = restored.length - 1; index >= 0 && selected.size < maxQueue; index -= 1) {
388
+ if (restored[index]?.durable !== true) selected.add(index);
389
+ }
390
+ return restored.filter((_event, index) => selected.has(index));
294
391
  } catch {
295
392
  return [];
296
393
  }
297
394
  }
298
395
  function persistQueue() {
299
- if (!options?.storage) return;
396
+ if (!options?.storage) return false;
397
+ // Best-effort track() still mirrors through AsyncStorage, but the return value stays false so
398
+ // trackIdempotent() cannot claim synchronous durability that the adapter has not provided.
399
+ return writeStorageValue(options.storage, storageKey(options), JSON.stringify(queue), options.onError, true);
400
+ }
401
+ function supportsDurableSyncWrites(storage) {
402
+ return storage.supportsDurableSyncWrites !== false && !asynchronousStorageAdapters.has(storage);
403
+ }
404
+ function writeStorageValue(storage, key, value, onError, allowKnownAsyncBestEffort) {
405
+ const declaredOrObservedAsync = !supportsDurableSyncWrites(storage);
406
+ if (declaredOrObservedAsync && !allowKnownAsyncBestEffort) return false;
300
407
  try {
301
- options.storage.set(storageKey(options), JSON.stringify(queue));
302
- } catch {
303
- // Telemetry persistence must never become an app failure.
408
+ const result = storage.set(key, value);
409
+ if (isThenable(result)) {
410
+ asynchronousStorageAdapters.add(storage);
411
+ void Promise.resolve(result).catch(error => reportStorageError(onError, error));
412
+ return false;
413
+ }
414
+ return !declaredOrObservedAsync;
415
+ } catch (error) {
416
+ reportStorageError(onError, error);
417
+ return false;
304
418
  }
305
419
  }
420
+ function isThenable(value) {
421
+ return typeof value === 'object' && value !== null || typeof value === 'function' ? typeof value.then === 'function' : false;
422
+ }
423
+ function reportStorageError(onError, error) {
424
+ try {
425
+ onError?.(error);
426
+ } catch {/* telemetry diagnostics never become an app failure */}
427
+ }
306
428
  function randomEventId() {
307
429
  const cryptoLike = globalThis.crypto;
308
430
  if (typeof cryptoLike?.randomUUID === 'function') return cryptoLike.randomUUID();
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_FLUSH_MS","DEFAULT_MAX_BATCH","DEFAULT_MAX_QUEUE","DEFAULT_TIMEOUT_MS","DEFAULT_MAX_ATTEMPTS","DEFAULT_STORAGE_KEY","ANALYTICS_INSTALLATION_ID_SUFFIX","UUID_PATTERN","options","queue","analyticsInstallationId","timer","sending","nextAttemptAt","lifecycleSubscription","trackingGeneration","trackUrl","url","trimmed","replace","includes","configureTracking","opts","disposeTracking","readQueue","identityMode","resolveAnalyticsInstallationId","startTimer","appState","addEventListener","state","flushEvents","track","event","props","time","hasConsent","onDropped","flat","allow","propertyAllowlist","Set","redact","redactProperties","key","value","Object","entries","undefined","has","String","push","id","randomEventId","Date","toISOString","attempts","maxQueue","length","dropped","slice","persistQueue","maxBatch","now","requestGeneration","ctx","getContext","anonymousInstallation","deviceId","requestDeviceId","batch","controller","AbortController","timeout","setTimeout","abort","timeoutMs","response","fetch","method","headers","body","JSON","stringify","userId","platform","appVersion","events","map","e","signal","ok","requeueWithBackoff","status","restoreStaleBatch","onError","Error","json","accepted","ignored","onIgnored","error","clearTimeout","pendingEventCount","getTrackingInfo","queueDepth","clearInterval","remove","stopTracking","every","flushIntervalMs","setInterval","unref","maxAttempts","retryable","next","reduce","max","Math","base","min","floor","random","currentOptions","sameOutbox","storage","storageKey","stored","restored","set","trim","analyticsInstallationIdStorageKey","getString","test","toLowerCase","generated","randomAnalyticsInstallationId","raw","parsed","parse","Array","isArray","filter","item","Boolean","cryptoLike","globalThis","crypto","randomUUID","toString","bytes","Uint8Array","getRandomValues","i","hex","from","padStart","join"],"sourceRoot":"../../src","sources":["track.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmFA,MAAMA,gBAAgB,GAAG,MAAM;AAC/B,MAAMC,iBAAiB,GAAG,GAAG;AAC7B,MAAMC,iBAAiB,GAAG,GAAG;AAC7B,MAAMC,kBAAkB,GAAG,MAAM;AACjC,MAAMC,oBAAoB,GAAG,EAAE;AAC/B,MAAMC,mBAAmB,GAAG,iBAAiB;AAC7C,MAAMC,gCAAgC,GAAG,4BAA4B;AACrE,MAAMC,YAAY,GAAG,wEAAwE;AAE7F,IAAIC,OAA4B,GAAG,IAAI;AACvC,IAAIC,KAAoB,GAAG,EAAE;AAC7B,IAAIC,uBAAuB,GAAG,EAAE;AAChC,IAAIC,KAA4C,GAAG,IAAI;AACvD,IAAIC,OAAO,GAAG,KAAK;AACnB,IAAIC,aAAa,GAAG,CAAC;AACrB,IAAIC,qBAAoD,GAAG,IAAI;AAC/D,IAAIC,kBAAkB,GAAG,CAAC;;AAE1B;AACA,SAASC,QAAQA,CAACC,GAAW,EAAU;EACrC,MAAMC,OAAO,GAAGD,GAAG,CAACE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EACvC,OAAOD,OAAO,CAACE,QAAQ,CAAC,gBAAgB,CAAC,GACrCF,OAAO,CAACC,OAAO,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAClDD,OAAO;AACb;AAEA,OAAO,SAASG,iBAAiBA,CAACC,IAAkB,EAAQ;EAC1DC,eAAe,CAAC,CAAC;EACjBf,OAAO,GAAGc,IAAI;EACdb,KAAK,GAAGe,SAAS,CAACF,IAAI,CAAC;EACvBZ,uBAAuB,GAAGY,IAAI,CAACG,YAAY,KAAK,wBAAwB,GACpEC,8BAA8B,CAACJ,IAAI,CAAC,GACpC,EAAE;EACNT,aAAa,GAAG,CAAC;EACjBc,UAAU,CAAC,CAAC;EACZb,qBAAqB,GAAGQ,IAAI,CAACM,QAAQ,EAAEC,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;IAC3E,IAAIA,KAAK,KAAK,QAAQ,EAAE,KAAKC,WAAW,CAAC,CAAC;EAC5C,CAAC,CAAC,IAAI,IAAI;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,KAAa,EAAEC,KAAkC,EAAEC,IAAW,EAAQ;EAC1F,IAAI,CAAC3B,OAAO,IAAI,CAACyB,KAAK,EAAE;EACxB,IAAIzB,OAAO,CAAC4B,UAAU,GAAG,CAAC,KAAK,KAAK,EAAE;IACpC5B,OAAO,CAAC6B,SAAS,GAAG,CAAC,EAAE,YAAY,CAAC;IACpC;EACF;EAEA,MAAMC,IAA4B,GAAG,CAAC,CAAC;EACvC,MAAMC,KAAK,GAAG/B,OAAO,CAACgC,iBAAiB,GAAG,IAAIC,GAAG,CAACjC,OAAO,CAACgC,iBAAiB,CAAC,GAAG,IAAI;EACnF,MAAME,MAAM,GAAG,IAAID,GAAG,CAACjC,OAAO,CAACmC,gBAAgB,IAAI,EAAE,CAAC;EACtD,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACb,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE;IACtD,IAAIW,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKG,SAAS,EAAE;IAC3C,IAAIT,KAAK,IAAI,CAACA,KAAK,CAACU,GAAG,CAACL,GAAG,CAAC,EAAE;IAC9BN,IAAI,CAACM,GAAG,CAAC,GAAGF,MAAM,CAACO,GAAG,CAACL,GAAG,CAAC,GAAG,YAAY,GAAI,OAAOC,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGK,MAAM,CAACL,KAAK,CAAE;EAClG;EAEApC,KAAK,CAAC0C,IAAI,CAAC;IAAEC,EAAE,EAAEC,aAAa,CAAC,CAAC;IAAEpB,KAAK;IAAEE,IAAI,EAAE,CAACA,IAAI,IAAI,IAAImB,IAAI,CAAC,CAAC,EAAEC,WAAW,CAAC,CAAC;IAAErB,KAAK,EAAEI,IAAI;IAAEkB,QAAQ,EAAE;EAAE,CAAC,CAAC;EAE9G,MAAMC,QAAQ,GAAGjD,OAAO,CAACiD,QAAQ,IAAIvD,iBAAiB;EACtD,IAAIO,KAAK,CAACiD,MAAM,GAAGD,QAAQ,EAAE;IAC3B,MAAME,OAAO,GAAGlD,KAAK,CAACiD,MAAM,GAAGD,QAAQ;IACvChD,KAAK,GAAGA,KAAK,CAACmD,KAAK,CAACD,OAAO,CAAC;IAC5BnD,OAAO,CAAC6B,SAAS,GAAGsB,OAAO,EAAE,YAAY,CAAC;EAC5C;EACAE,YAAY,CAAC,CAAC;EAEd,IAAIpD,KAAK,CAACiD,MAAM,KAAKlD,OAAO,CAACsD,QAAQ,IAAI7D,iBAAiB,CAAC,EAAE,KAAK8B,WAAW,CAAC,CAAC;AACjF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeA,WAAWA,CAAA,EAAoB;EACnD,IAAI,CAACvB,OAAO,IAAII,OAAO,IAAIH,KAAK,CAACiD,MAAM,KAAK,CAAC,IAAIJ,IAAI,CAACS,GAAG,CAAC,CAAC,GAAGlD,aAAa,EAAE,OAAO,CAAC;EAErF,MAAMS,IAAI,GAAGd,OAAO;EACpB,MAAMwD,iBAAiB,GAAGjD,kBAAkB;EAC5C,MAAMkD,GAAG,GAAG3C,IAAI,CAAC4C,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC;EACrC,MAAMC,qBAAqB,GAAG7C,IAAI,CAACG,YAAY,KAAK,wBAAwB;;EAE5E;EACA;EACA,IAAI,CAAC0C,qBAAqB,IAAI,CAACF,GAAG,CAACG,QAAQ,EAAE,OAAO,CAAC;EACrD,MAAMC,eAAe,GAAGF,qBAAqB,GAAGzD,uBAAuB,GAAGuD,GAAG,CAACG,QAAQ;EAEtF,MAAME,KAAK,GAAG7D,KAAK,CAACmD,KAAK,CAAC,CAAC,EAAEtC,IAAI,CAACwC,QAAQ,IAAI7D,iBAAiB,CAAC;EAChEQ,KAAK,GAAGA,KAAK,CAACmD,KAAK,CAACU,KAAK,CAACZ,MAAM,CAAC;EACjCG,YAAY,CAAC,CAAC;EACdjD,OAAO,GAAG,IAAI;EAEd,MAAM2D,UAAU,GAAG,OAAOC,eAAe,KAAK,WAAW,GAAG,IAAIA,eAAe,CAAC,CAAC,GAAG,IAAI;EACxF,MAAMC,OAAO,GAAGF,UAAU,GACtBG,UAAU,CAAC,MAAMH,UAAU,CAACI,KAAK,CAAC,CAAC,EAAErD,IAAI,CAACsD,SAAS,IAAIzE,kBAAkB,CAAC,GAC1E,IAAI;EAER,IAAI;IACF,MAAM0E,QAAQ,GAAG,MAAMC,KAAK,CAAC9D,QAAQ,CAACM,IAAI,CAACL,GAAG,CAAC,EAAE;MAC/C8D,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QAAE,cAAc,EAAE;MAAmB,CAAC;MAC/CC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;QACnBf,QAAQ,EAAEC,eAAe;QACzB;QACA;QACA,IAAIF,qBAAqB,GAAG,CAAC,CAAC,GAAG;UAAEiB,MAAM,EAAEnB,GAAG,CAACmB;QAAO,CAAC,CAAC;QACxDC,QAAQ,EAAEpB,GAAG,CAACoB,QAAQ;QACtBC,UAAU,EAAErB,GAAG,CAACqB,UAAU;QAC1BC,MAAM,EAAEjB,KAAK,CAACkB,GAAG,CAAEC,CAAC,KAAM;UAAErC,EAAE,EAAEqC,CAAC,CAACrC,EAAE;UAAEnB,KAAK,EAAEwD,CAAC,CAACxD,KAAK;UAAEE,IAAI,EAAEsD,CAAC,CAACtD,IAAI;UAAED,KAAK,EAAEuD,CAAC,CAACvD;QAAM,CAAC,CAAC;MACvF,CAAC,CAAC;MACFwD,MAAM,EAAEnB,UAAU,EAAEmB;IACtB,CAAC,CAAC;IAEF,IAAI,CAACb,QAAQ,CAACc,EAAE,EAAE;MAChB;MACA,IAAI3B,iBAAiB,KAAKjD,kBAAkB,IAAIP,OAAO,KAAKc,IAAI,EAAE;QAChEsE,kBAAkB,CAACtB,KAAK,EAAEO,QAAQ,CAACgB,MAAM,CAAC;MAC5C,CAAC,MAAM;QACLC,iBAAiB,CAACxE,IAAI,EAAEgD,KAAK,EAAEO,QAAQ,CAACgB,MAAM,CAAC;MACjD;MACA,IAAIhB,QAAQ,CAACgB,MAAM,KAAK,GAAG,EAAEvE,IAAI,CAACyE,OAAO,GAAG,IAAIC,KAAK,CAAC,uBAAuBnB,QAAQ,CAACgB,MAAM,EAAE,CAAC,CAAC;MAChG,OAAO,CAAC;IACV;IAEA,MAAMZ,IAAI,GAAI,MAAMJ,QAAQ,CAACoB,IAAI,CAAC,CAA+C;IACjF,IAAIjC,iBAAiB,KAAKjD,kBAAkB,IAAIP,OAAO,KAAKc,IAAI,EAAE,OAAO2D,IAAI,CAACiB,QAAQ,IAAI,CAAC;IAC3F,IAAIjB,IAAI,CAACkB,OAAO,IAAIlB,IAAI,CAACkB,OAAO,CAACzC,MAAM,GAAG,CAAC,EAAEpC,IAAI,CAAC8E,SAAS,GAAGnB,IAAI,CAACkB,OAAO,CAAC;IAC3EtF,aAAa,GAAG,CAAC;IACjBgD,YAAY,CAAC,CAAC;IACd,OAAOoB,IAAI,CAACiB,QAAQ,IAAI,CAAC;EAC3B,CAAC,CAAC,OAAOG,KAAK,EAAE;IACd,IAAIrC,iBAAiB,KAAKjD,kBAAkB,IAAIP,OAAO,KAAKc,IAAI,EAAEsE,kBAAkB,CAACtB,KAAK,CAAC,CAAC,KACvFwB,iBAAiB,CAACxE,IAAI,EAAEgD,KAAK,CAAC;IACnChD,IAAI,CAACyE,OAAO,GAAGM,KAAK,CAAC;IACrB,OAAO,CAAC;EACV,CAAC,SAAS;IACR,IAAI5B,OAAO,EAAE6B,YAAY,CAAC7B,OAAO,CAAC;IAClC,IAAIT,iBAAiB,KAAKjD,kBAAkB,EAAEH,OAAO,GAAG,KAAK;EAC/D;AACF;;AAEA;AACA,OAAO,SAAS2F,iBAAiBA,CAAA,EAAW;EAC1C,OAAO9F,KAAK,CAACiD,MAAM;AACrB;AAEA,OAAO,SAAS8C,eAAeA,CAAA,EAI7B;EACA,OAAO;IAAEC,UAAU,EAAEhG,KAAK,CAACiD,MAAM;IAAE9C,OAAO;IAAEC;EAAc,CAAC;AAC7D;;AAEA;AACA,OAAO,SAASU,eAAeA,CAAA,EAAS;EACtCR,kBAAkB,IAAI,CAAC;EACvB,IAAIJ,KAAK,EAAE+F,aAAa,CAAC/F,KAAK,CAAC;EAC/BA,KAAK,GAAG,IAAI;EACZG,qBAAqB,EAAE6F,MAAM,CAAC,CAAC;EAC/B7F,qBAAqB,GAAG,IAAI;EAC5B+C,YAAY,CAAC,CAAC;EACdrD,OAAO,GAAG,IAAI;EACdI,OAAO,GAAG,KAAK;AACjB;AAEA,OAAO,SAASgG,YAAYA,CAAA,EAAS;EACnCrF,eAAe,CAAC,CAAC;EACjBf,OAAO,GAAG,IAAI;EACdC,KAAK,GAAG,EAAE;EACVC,uBAAuB,GAAG,EAAE;EAC5BE,OAAO,GAAG,KAAK;EACfC,aAAa,GAAG,CAAC;AACnB;AAEA,SAASc,UAAUA,CAAA,EAAS;EAC1B,IAAIhB,KAAK,EAAE+F,aAAa,CAAC/F,KAAK,CAAC;EAC/B,MAAMkG,KAAK,GAAGrG,OAAO,EAAEsG,eAAe,IAAI9G,gBAAgB;EAC1DW,KAAK,GAAGoG,WAAW,CAAC,MAAM,KAAKhF,WAAW,CAAC,CAAC,EAAE8E,KAAK,CAAC;EACpD;EACA;EACClG,KAAK,CAAuCqG,KAAK,GAAG,CAAC;AACxD;AAEA,SAASpB,kBAAkBA,CAACtB,KAAoB,EAAEuB,MAAe,EAAQ;EACvE,IAAI,CAACrF,OAAO,EAAE;EACd,MAAMyG,WAAW,GAAGzG,OAAO,CAACyG,WAAW,IAAI7G,oBAAoB;EAC/D,MAAM8G,SAAwB,GAAG,EAAE;EACnC,IAAIvD,OAAO,GAAG,CAAC;EACf,KAAK,MAAM1B,KAAK,IAAIqC,KAAK,EAAE;IACzB,MAAM6C,IAAI,GAAG;MAAE,GAAGlF,KAAK;MAAEuB,QAAQ,EAAEvB,KAAK,CAACuB,QAAQ,GAAG;IAAE,CAAC;IACvD,IAAI2D,IAAI,CAAC3D,QAAQ,IAAIyD,WAAW,IAAIpB,MAAM,KAAK,GAAG,EAAElC,OAAO,EAAE,CAAC,KACzDuD,SAAS,CAAC/D,IAAI,CAACgE,IAAI,CAAC;EAC3B;EACA1G,KAAK,GAAG,CAAC,GAAGyG,SAAS,EAAE,GAAGzG,KAAK,CAAC;EAChC,IAAIkD,OAAO,GAAG,CAAC,EAAEnD,OAAO,CAAC6B,SAAS,GAAGsB,OAAO,EAAE,cAAc,CAAC;EAC7D,MAAMH,QAAQ,GAAG0D,SAAS,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEpF,KAAK,KAAKqF,IAAI,CAACD,GAAG,CAACA,GAAG,EAAEpF,KAAK,CAACuB,QAAQ,CAAC,EAAE,CAAC,CAAC;EACnF,MAAM+D,IAAI,GAAGD,IAAI,CAACE,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,IAAIF,IAAI,CAACE,GAAG,CAAChE,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;EACrE3C,aAAa,GAAGyC,IAAI,CAACS,GAAG,CAAC,CAAC,GAAGwD,IAAI,GAAGD,IAAI,CAACG,KAAK,CAACH,IAAI,CAACI,MAAM,CAAC,CAAC,GAAGJ,IAAI,CAACD,GAAG,CAAC,CAAC,EAAEE,IAAI,GAAG,CAAC,CAAC,CAAC;EACrF1D,YAAY,CAAC,CAAC;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASiC,iBAAiBA,CAACxE,IAAkB,EAAEgD,KAAoB,EAAEuB,MAAe,EAAQ;EAC1F,MAAMoB,WAAW,GAAG3F,IAAI,CAAC2F,WAAW,IAAI7G,oBAAoB;EAC5D,MAAM8G,SAAwB,GAAG,EAAE;EACnC,IAAIvD,OAAO,GAAG,CAAC;EACf,KAAK,MAAM1B,KAAK,IAAIqC,KAAK,EAAE;IACzB,MAAM6C,IAAI,GAAG;MAAE,GAAGlF,KAAK;MAAEuB,QAAQ,EAAEvB,KAAK,CAACuB,QAAQ,GAAG;IAAE,CAAC;IACvD,IAAI2D,IAAI,CAAC3D,QAAQ,IAAIyD,WAAW,IAAIpB,MAAM,KAAK,GAAG,EAAElC,OAAO,EAAE,CAAC,KACzDuD,SAAS,CAAC/D,IAAI,CAACgE,IAAI,CAAC;EAC3B;EACA,IAAIxD,OAAO,GAAG,CAAC,EAAErC,IAAI,CAACe,SAAS,GAAGsB,OAAO,EAAE,cAAc,CAAC;EAC1D,IAAIuD,SAAS,CAACxD,MAAM,KAAK,CAAC,EAAE;EAE5B,MAAMiE,cAAc,GAAGnH,OAAO;EAC9B,MAAMoH,UAAU,GAAGD,cAAc,EAAEE,OAAO,KAAKvG,IAAI,CAACuG,OAAO,IACzDF,cAAc,KAAK,IAAI,IAAIG,UAAU,CAACH,cAAc,CAAC,KAAKG,UAAU,CAACxG,IAAI,CAAC;EAC5E,IAAIsG,UAAU,EAAE;IACdnH,KAAK,GAAG,CAAC,GAAGyG,SAAS,EAAE,GAAGzG,KAAK,CAAC,CAACmD,KAAK,CAAC,EAAEpD,OAAO,EAAEiD,QAAQ,IAAIvD,iBAAiB,CAAC,CAAC;IACjF2D,YAAY,CAAC,CAAC;IACd;EACF;EAEA,IAAI,CAACvC,IAAI,CAACuG,OAAO,EAAE;EACnB,IAAI;IACF,MAAME,MAAM,GAAGvG,SAAS,CAACF,IAAI,CAAC;IAC9B,MAAM0G,QAAQ,GAAG,CAAC,GAAGd,SAAS,EAAE,GAAGa,MAAM,CAAC,CAACnE,KAAK,CAAC,EAAEtC,IAAI,CAACmC,QAAQ,IAAIvD,iBAAiB,CAAC,CAAC;IACvFoB,IAAI,CAACuG,OAAO,CAACI,GAAG,CAACH,UAAU,CAACxG,IAAI,CAAC,EAAE4D,IAAI,CAACC,SAAS,CAAC6C,QAAQ,CAAC,CAAC;EAC9D,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ;AAEA,SAASF,UAAUA,CAACxG,IAAkB,EAAU;EAC9C,OAAOA,IAAI,CAACwG,UAAU,EAAEI,IAAI,CAAC,CAAC,IAAI7H,mBAAmB;AACvD;AAEA,SAAS8H,iCAAiCA,CAAC7G,IAAkB,EAAU;EACrE,OAAO,GAAGwG,UAAU,CAACxG,IAAI,CAAC,GAAGhB,gCAAgC,EAAE;AACjE;AAEA,SAASoB,8BAA8BA,CAACJ,IAAkB,EAAU;EAClE,IAAIA,IAAI,CAACuG,OAAO,EAAE;IAChB,IAAI;MACF,MAAME,MAAM,GAAGzG,IAAI,CAACuG,OAAO,CAACO,SAAS,CAACD,iCAAiC,CAAC7G,IAAI,CAAC,CAAC,EAAE4G,IAAI,CAAC,CAAC;MACtF,IAAIH,MAAM,IAAIxH,YAAY,CAAC8H,IAAI,CAACN,MAAM,CAAC,EAAE,OAAOA,MAAM,CAACO,WAAW,CAAC,CAAC;IACtE,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EAEA,MAAMC,SAAS,GAAGC,6BAA6B,CAAC,CAAC;EACjD,IAAIlH,IAAI,CAACuG,OAAO,EAAE;IAChB,IAAI;MACFvG,IAAI,CAACuG,OAAO,CAACI,GAAG,CAACE,iCAAiC,CAAC7G,IAAI,CAAC,EAAEiH,SAAS,CAAC;IACtE,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EACA,OAAOA,SAAS;AAClB;AAEA,SAAS/G,SAASA,CAACF,IAAkB,EAAiB;EACpD,IAAI,CAACA,IAAI,CAACuG,OAAO,EAAE,OAAO,EAAE;EAC5B,IAAI;IACF,MAAMY,GAAG,GAAGnH,IAAI,CAACuG,OAAO,CAACO,SAAS,CAACN,UAAU,CAACxG,IAAI,CAAC,CAAC;IACpD,IAAI,CAACmH,GAAG,EAAE,OAAO,EAAE;IACnB,MAAMC,MAAM,GAAGxD,IAAI,CAACyD,KAAK,CAACF,GAAG,CAAY;IACzC,IAAI,CAACG,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,EAAE,OAAO,EAAE;IACrC,OAAOA,MAAM,CAACI,MAAM,CAAEC,IAAI,IAA0BC,OAAO,CACzDD,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,IAAI,OAAOA,IAAI,CAAC3F,EAAE,KAAK,QAAQ,IAC/D,OAAO2F,IAAI,CAAC9G,KAAK,KAAK,QAAQ,IAAI,OAAO8G,IAAI,CAAC5G,IAAI,KAAK,QAAQ,IAC/D,OAAO4G,IAAI,CAAC7G,KAAK,KAAK,QAAQ,IAAI,OAAO6G,IAAI,CAACvF,QAAQ,KAAK,QAC7D,CAAC,CAAC,CAACI,KAAK,CAAC,EAAEtC,IAAI,CAACmC,QAAQ,IAAIvD,iBAAiB,CAAC,CAAC;EACjD,CAAC,CAAC,MAAM;IACN,OAAO,EAAE;EACX;AACF;AAEA,SAAS2D,YAAYA,CAAA,EAAS;EAC5B,IAAI,CAACrD,OAAO,EAAEqH,OAAO,EAAE;EACvB,IAAI;IACFrH,OAAO,CAACqH,OAAO,CAACI,GAAG,CAACH,UAAU,CAACtH,OAAO,CAAC,EAAE0E,IAAI,CAACC,SAAS,CAAC1E,KAAK,CAAC,CAAC;EACjE,CAAC,CAAC,MAAM;IACN;EAAA;AAEJ;AAEA,SAAS4C,aAAaA,CAAA,EAAW;EAC/B,MAAM4F,UAAU,GAAGC,UAAU,CAACC,MAAmD;EACjF,IAAI,OAAOF,UAAU,EAAEG,UAAU,KAAK,UAAU,EAAE,OAAOH,UAAU,CAACG,UAAU,CAAC,CAAC;EAChF,OAAO,OAAO9F,IAAI,CAACS,GAAG,CAAC,CAAC,IAAIuD,IAAI,CAACI,MAAM,CAAC,CAAC,CAAC2B,QAAQ,CAAC,EAAE,CAAC,CAACzF,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACvE;AAEA,SAAS4E,6BAA6BA,CAAA,EAAW;EAC/C,MAAMS,UAAU,GAAGC,UAAU,CAACC,MAGjB;EACb,IAAI,OAAOF,UAAU,EAAEG,UAAU,KAAK,UAAU,EAAE,OAAOH,UAAU,CAACG,UAAU,CAAC,CAAC,CAACd,WAAW,CAAC,CAAC;EAE9F,MAAMgB,KAAK,GAAG,IAAIC,UAAU,CAAC,EAAE,CAAC;EAChC,IAAI,OAAON,UAAU,EAAEO,eAAe,KAAK,UAAU,EAAEP,UAAU,CAACO,eAAe,CAACF,KAAK,CAAC,CAAC,KACpF,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,CAAC5F,MAAM,EAAE+F,CAAC,EAAE,EAAEH,KAAK,CAACG,CAAC,CAAC,GAAGnC,IAAI,CAACG,KAAK,CAACH,IAAI,CAACI,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;EACtF4B,KAAK,CAAC,CAAC,CAAC,GAAI,CAACA,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,GAAI,IAAI;EAC1CA,KAAK,CAAC,CAAC,CAAC,GAAI,CAACA,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,GAAI,IAAI;EAC1C,MAAMI,GAAG,GAAGd,KAAK,CAACe,IAAI,CAACL,KAAK,EAAGzG,KAAK,IAAKA,KAAK,CAACwG,QAAQ,CAAC,EAAE,CAAC,CAACO,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;EACtF,OAAO,GAAGH,GAAG,CAAC9F,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI8F,GAAG,CAAC9F,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI8F,GAAG,CAAC9F,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI8F,GAAG,CAAC9F,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI8F,GAAG,CAAC9F,KAAK,CAAC,EAAE,CAAC,EAAE;AAC5G","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_FLUSH_MS","DEFAULT_MAX_BATCH","DEFAULT_MAX_QUEUE","DEFAULT_TIMEOUT_MS","DEFAULT_MAX_ATTEMPTS","DEFAULT_STORAGE_KEY","ANALYTICS_INSTALLATION_ID_SUFFIX","UUID_PATTERN","options","queue","analyticsInstallationId","timer","sending","nextAttemptAt","lifecycleSubscription","trackingGeneration","asynchronousStorageAdapters","WeakSet","trackUrl","url","trimmed","replace","includes","configureTracking","opts","disposeTracking","readQueue","identityMode","resolveAnalyticsInstallationId","startTimer","appState","addEventListener","state","flushEvents","track","event","props","time","enqueueEvent","randomEventId","trackIdempotent","eventId","normalizedId","trim","toLowerCase","test","requirePersistentAck","hasConsent","onDropped","storage","supportsDurableSyncWrites","persistQueue","flat","allow","propertyAllowlist","Set","redact","redactProperties","key","value","Object","entries","undefined","has","String","occurredAt","Date","toISOString","existing","find","queued","id","sameLogicalEvent","JSON","stringify","durable","queueBeforeDurableEnqueue","push","attempts","maxQueue","Math","max","dropped","length","bestEffortIndex","findIndex","newestIndex","splice","index","retained","some","persisted","maxBatch","now","requestGeneration","ctx","getContext","anonymousInstallation","deviceId","requestDeviceId","batch","slice","controller","AbortController","timeout","setTimeout","abort","timeoutMs","response","fetch","method","headers","body","userId","platform","appVersion","events","map","e","signal","ok","markBatchForRetry","status","onError","Error","json","accepted","ignored","onIgnored","acknowledgeBatch","retryDelayFor","error","clearTimeout","pendingEventCount","getTrackingInfo","queueDepth","clearInterval","remove","stopTracking","every","flushIntervalMs","setInterval","unref","maxAttempts","batchIds","flatMap","next","min","acknowledgedIds","remaining","filter","includesDurable","writeStorageValue","storageKey","reduce","base","floor","random","analyticsInstallationIdStorageKey","stored","getString","generated","randomAnalyticsInstallationId","raw","parsed","parse","Array","isArray","restored","item","Boolean","Number","isSafeInteger","selected","forEach","add","size","_event","allowKnownAsyncBestEffort","declaredOrObservedAsync","result","set","isThenable","Promise","resolve","catch","reportStorageError","then","cryptoLike","globalThis","crypto","randomUUID","toString","bytes","Uint8Array","getRandomValues","i","hex","from","padStart","join"],"sourceRoot":"../../src","sources":["track.ts"],"mappings":"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","ignoreList":[]}
@@ -43,6 +43,12 @@ export type ConfigSignatureStatus = 'not-configured' | 'verified' | 'cached-veri
43
43
  export interface ConfigStorage {
44
44
  getString(key: string): string | null | undefined;
45
45
  set(key: string, value: string): void;
46
+ /**
47
+ * False when `set` only mirrors a write and schedules asynchronous persistence. Durable
48
+ * acknowledgement APIs must fail closed because process death may still lose that write.
49
+ * Omitted means the historical synchronous-storage contract.
50
+ */
51
+ readonly supportsDurableSyncWrites?: boolean;
46
52
  }
47
53
  /**
48
54
  * Everything the server may ever want to target on. Sent on every request even when
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -99,6 +99,7 @@ export interface PulseClient {
99
99
  configUrl: string;
100
100
  trackUrl: string;
101
101
  track: (event: string, props?: TrackedEventInput['props'], time?: Date) => void;
102
+ trackIdempotent: (eventId: string, event: string, props?: TrackedEventInput['props'], time?: Date) => boolean;
102
103
  flush: () => Promise<number>;
103
104
  setUser: (userId?: string, attributes?: Record<string, string>) => void;
104
105
  clearUser: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAEL,WAAW,EAGX,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,aAAa,EACb,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAClB,OAAO,EAIL,eAAe,EAEf,KAAK,iBAAiB,EACvB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IAEf,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAEhB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAErC,qFAAqF;IACrF,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAE7D,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC;IAE7C,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1C;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,SAAS,GAAG,wBAAwB,CAAC;IAEzD,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,qBAAqB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7G,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,yEAAyE;IACzE,QAAQ,CAAC,EAAE;QAAE,gBAAgB,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK;YAAE,MAAM,EAAE,MAAM,IAAI,CAAA;SAAE,CAAA;KAAE,CAAC;IAE9G,qFAAqF;IACrF,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAID,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACzC,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC3C,SAAS,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACtD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IAChF,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IACxE,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,mBAAmB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,MAAM,EAAE,MAAM,WAAW,CAAC;IAC1B,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,gBAAgB,CAAC;QACjC,MAAM,EAAE,OAAO,eAAe,CAAC;QAC/B,MAAM,EAAE,OAAO,eAAe,CAAC;QAC/B,IAAI,EAAE,OAAO,aAAa,CAAC;QAC3B,OAAO,EAAE,OAAO,WAAW,CAAC;KAC7B,CAAC;IACF,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAKD,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CA6I7D;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,iBAAiB,CAAA;CAAE,GACvE,OAAO,CAAC,WAAW,CAAC,CAoBtB"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
@@ -79,8 +79,43 @@ export interface AnonymousFirstOpenContext {
79
79
  /** JavaScript Date#getTimezoneOffset semantics, bounded to real-world UTC offsets. */
80
80
  timezoneOffsetMinutes?: number;
81
81
  isEmulator?: boolean;
82
+ /**
83
+ * The address the person is signed in with, when the host app has one. An install that arrives
84
+ * with an account does not need to be guessed at: the resolver binds it to the message sent to
85
+ * that address and skips probabilistic matching entirely. Omitted for signed-out first opens,
86
+ * and never read from the clipboard or any other ambient source — the app passes what it
87
+ * already knows, or nothing.
88
+ */
89
+ accountEmail?: string;
82
90
  }
83
91
  export type AnonymousFirstOpenResult = 'matched' | 'no_match' | 'ineligible' | 'deterministic_pending' | 'already_completed' | 'backoff' | 'retry_scheduled' | 'terminal_error';
92
+ export type AnonymousFirstOpenTerminalStatus = 'FOUND' | 'NOT_FOUND' | 'FAILURE';
93
+ /** Explicit receiver decision for one terminal-delivery attempt. */
94
+ export type AnonymousFirstOpenTerminalDisposition = 'accepted' | 'retry' | 'drop';
95
+ export type AnonymousFirstOpenTerminalReason = 'matched' | 'unmatched' | 'ambiguous' | 'holdout' | 'low_confidence' | 'shadow_would_route' | 'shadow_attributed' | 'analytics_attributed' | 'target_revoked' | 'disabled' | 'expired_replay' | 'invalid_request' | 'invalid_response' | 'policy_rejected';
96
+ /**
97
+ * Sanitized terminal result of the anonymous first-open rail. It deliberately carries no
98
+ * install-attempt id, token, device signal or raw server error. A 204 is always `no_route` and
99
+ * can never make the client navigate, including when Encore reports a shadow observation.
100
+ */
101
+ export interface AnonymousFirstOpenTerminalOutcome {
102
+ /** Stable UUIDv4 for receiver-side deduplication of at-least-once delivery. */
103
+ eventId: string;
104
+ status: AnonymousFirstOpenTerminalStatus;
105
+ rail: 'fast_route' | 'no_route';
106
+ routed: boolean;
107
+ retryable: false;
108
+ reason: AnonymousFirstOpenTerminalReason;
109
+ occurredAt: string;
110
+ /** Present only for FOUND and copied from the already-normalized resolver result. */
111
+ matchBasis?: DeferredLinkMatchBasis;
112
+ /** Present only for FOUND, finite and clamped to [0, 1]. */
113
+ confidence?: number;
114
+ /** Optional FOUND-only campaign dimensions; strings are trimmed and bounded to 128 chars. */
115
+ campaignId?: string | null;
116
+ experimentId?: string | null;
117
+ variantId?: string | null;
118
+ }
84
119
  export type AndroidInstallReferrerStatus = 'OK' | 'NO_TOKEN' | 'FEATURE_NOT_SUPPORTED' | 'SERVICE_UNAVAILABLE' | 'DEVELOPER_ERROR' | 'SERVICE_DISCONNECTED';
85
120
  export interface AndroidInstallReferrerResult {
86
121
  status: AndroidInstallReferrerStatus;
@@ -101,7 +136,13 @@ export interface DeferredLinkClientOptions<Action extends string = DeferredLinkA
101
136
  allowedActions?: readonly Action[];
102
137
  /** Actions that require both a deterministic match and a stable signed-in account. */
103
138
  sensitiveActions?: readonly Action[];
139
+ /**
140
+ * Routing callbacks are irreversible commit boundaries: return `false` when no navigation
141
+ * happened. If a newer accepted capture arrives while a successful callback is pending, Pulse
142
+ * persists it but will not auto-route a second journey in the same client lifecycle.
143
+ */
104
144
  onDeepLink: (deepLink: string, link: ResolvedDeferredLink<Action>) => boolean | void | Promise<boolean | void>;
145
+ /** Same commit-boundary contract as `onDeepLink`. */
105
146
  onAction?: (link: ResolvedDeferredLink<Action>) => boolean | void | Promise<boolean | void>;
106
147
  accountBridge?: DeferredLinkAccountBridge<Action>;
107
148
  isAccountReady?: () => boolean;
@@ -117,11 +158,27 @@ export interface DeferredLinkClientOptions<Action extends string = DeferredLinkA
117
158
  requestTimeoutMs?: number;
118
159
  retryBaseMs?: number;
119
160
  retryMaxMs?: number;
161
+ /** Timeout for one terminal-result acknowledgement attempt. Defaults to requestTimeoutMs. */
162
+ terminalDeliveryTimeoutMs?: number;
120
163
  tokenMaxAgeMs?: number;
121
164
  recentInstallMaxAgeMs?: number;
122
165
  autoRetry?: boolean;
123
166
  reportResolverOutcomes?: boolean;
124
167
  onOutcome?: (event: DeferredLinkOutcomeEvent) => void | Promise<void>;
168
+ /**
169
+ * Synchronous privacy gate evaluated before a terminal record or eventId is created. A false
170
+ * result or throw completes first-open matching without retaining terminal metadata.
171
+ */
172
+ shouldQueueFirstOpenResult?: () => boolean;
173
+ /**
174
+ * Durable at-least-once terminal delivery. Return `accepted` (or legacy `true`) only after the
175
+ * stable eventId is durably accepted, `retry`/false to replay it, or `drop` to deliberately and
176
+ * durably discard it (for example after consent revocation). Throw, rejection and timeout retry
177
+ * the same eventId. `drop` is sticky: failed local deletion retries never re-enter the receiver.
178
+ * Receivers must deduplicate because a crash after acceptance can replay it. When this handler
179
+ * is absent no terminal record is created or retained.
180
+ */
181
+ onFirstOpenResult?: (outcome: AnonymousFirstOpenTerminalOutcome) => AnonymousFirstOpenTerminalDisposition | boolean | Promise<AnonymousFirstOpenTerminalDisposition | boolean>;
125
182
  onStateChange?: (state: DeferredLinkState) => void;
126
183
  onError?: (error: unknown) => void;
127
184
  now?: () => number;
@@ -150,4 +207,10 @@ export declare function normalizeAndroidInstallReferrerResult(raw: unknown): And
150
207
  export declare function createPulseLinkClient<Action extends string = DeferredLinkAction>(options: DeferredLinkClientOptions<Action>): DeferredLinkClient;
151
208
  /** @deprecated Prefer the product-facing `createPulseLinkClient` name. */
152
209
  export declare const createDeferredLinkClient: typeof createPulseLinkClient;
210
+ /**
211
+ * An address is only useful to the resolver if it is the same shape the send was recorded with.
212
+ * Anything that is not plausibly an address is dropped rather than sent: a malformed value can
213
+ * only ever fail to match, and not sending it keeps the payload free of stray user input.
214
+ */
215
+ export declare function normalizeAccountEmail(raw: string | undefined | null): string | null;
153
216
  //# sourceMappingURL=links.d.ts.map