pulse-updates 1.3.1 → 1.3.2

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/README.md CHANGED
@@ -81,7 +81,11 @@ OTA updates are the other half of the package and set up separately — see belo
81
81
 
82
82
  Pulse owns the reusable installed-app transport; Encore remains the phase-one Smart Link resolver
83
83
  and campaign ledger. The client persists only the opaque handoff state, retries transient failures,
84
- applies each resolved action once and accepts only app-owned deep-link prefixes:
84
+ applies each resolved action once and accepts only app-owned deep-link prefixes. Resolver outcomes
85
+ use a bounded durable outbox: each logical transition is queued once with a stable UUIDv4 and
86
+ timestamp before delivery, then retried with exponential backoff and jitter across app restarts.
87
+ The opaque exposure token remains only in local state and Encore's URL path; neither the POST body
88
+ nor the optional Pulse analytics callback receives it:
85
89
 
86
90
  ```ts
87
91
  import {
@@ -23,6 +23,7 @@ exports.normalizeDeferredHandoffToken = normalizeDeferredHandoffToken;
23
23
  const OPAQUE_TOKEN = /^[A-Za-z0-9_-]{16,512}$/;
24
24
  const PUBLIC_EXPOSURE = /^[a-f0-9]{32}$/i;
25
25
  const INSTALL_ATTEMPT_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
26
+ const UUID_V4 = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
26
27
  const APP_IDENTITY = /^[A-Za-z0-9.-]+$/;
27
28
  const LOCALE = /^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$/;
28
29
  const DEFAULT_PREFIXES = ['encore_handoff:', 'pulse_handoff:'];
@@ -41,7 +42,8 @@ const DEFAULT_TOKEN_MAX_AGE_MS = 90 * 24 * 60 * 60 * 1_000;
41
42
  const DEFAULT_RECENT_INSTALL_MAX_AGE_MS = 24 * 60 * 60 * 1_000;
42
43
  const MAX_APPLIED_IDS = 32;
43
44
  const MAX_NOTIFIED_OUTCOMES = MAX_APPLIED_IDS * 3;
44
- const MAX_PERSISTED_BYTES = 16_384;
45
+ const MAX_RESOLVER_OUTCOMES = MAX_NOTIFIED_OUTCOMES;
46
+ const MAX_PERSISTED_BYTES = 131_072;
45
47
  const emptyState = () => ({
46
48
  version: 1,
47
49
  status: 'idle',
@@ -49,6 +51,7 @@ const emptyState = () => ({
49
51
  lastAppliedId: null,
50
52
  appliedIds: [],
51
53
  notifiedOutcomes: [],
54
+ outcomeQueue: [],
52
55
  firstOpen: {
53
56
  installAttemptId: null,
54
57
  completed: false,
@@ -159,6 +162,7 @@ function createPulseLinkClient(options) {
159
162
  let processing = null;
160
163
  let processRequested = false;
161
164
  let retryTimer = null;
165
+ let outcomeSending = null;
162
166
  let accountRetryAt = 0;
163
167
  let accountAttempts = 0;
164
168
  let lastFirstOpenContext = null;
@@ -266,43 +270,140 @@ function createPulseLinkClient(options) {
266
270
  status: 'terminal_error'
267
271
  });
268
272
  };
273
+ const persistOutcomeState = () => {
274
+ writeState(options.storage, storageKey, state);
275
+ scheduleWake();
276
+ };
277
+ const flushResolverOutcomes = async () => {
278
+ if (disposed) return 0;
279
+ if (outcomeSending) return outcomeSending;
280
+ const run = async () => {
281
+ let delivered = 0;
282
+ while (!disposed) {
283
+ const queued = state.outcomeQueue[0];
284
+ if (!queued || queued.nextRetryAt > now()) break;
285
+ let response;
286
+ try {
287
+ response = await postResolverOutcome(fetcher, resolverBaseUrl, queued, requestTimeoutMs);
288
+ } catch (error) {
289
+ if (disposed) break;
290
+ const index = state.outcomeQueue.findIndex(item => item === queued);
291
+ if (index < 0) continue;
292
+ const current = state.outcomeQueue[index];
293
+ const attempts = Math.min(current.attempts + 1, 100_000);
294
+ const next = {
295
+ ...current,
296
+ attempts,
297
+ nextRetryAt: now() + resolverOutcomeRetryDelay(current.eventId, attempts, retryBaseMs, retryMaxMs)
298
+ };
299
+ state = {
300
+ ...state,
301
+ outcomeQueue: state.outcomeQueue.map((item, itemIndex) => itemIndex === index ? next : item)
302
+ };
303
+ persistOutcomeState();
304
+ reportError(error);
305
+ break;
306
+ }
307
+ if (disposed) break;
308
+ const index = state.outcomeQueue.findIndex(item => item === queued);
309
+ if (index < 0) continue;
310
+ const status = response.status;
311
+ if (status >= 200 && status < 300 || status === 409 || status === 404 || status === 410) {
312
+ state = {
313
+ ...state,
314
+ outcomeQueue: state.outcomeQueue.filter(item => item !== queued)
315
+ };
316
+ persistOutcomeState();
317
+ if (status >= 200 && status < 300 || status === 409) delivered += 1;
318
+ continue;
319
+ }
320
+ if (status === 429 || status >= 500) {
321
+ const current = state.outcomeQueue[index];
322
+ const attempts = Math.min(current.attempts + 1, 100_000);
323
+ const next = {
324
+ ...current,
325
+ attempts,
326
+ nextRetryAt: now() + resolverOutcomeRetryDelay(current.eventId, attempts, retryBaseMs, retryMaxMs)
327
+ };
328
+ state = {
329
+ ...state,
330
+ outcomeQueue: state.outcomeQueue.map((item, itemIndex) => itemIndex === index ? next : item)
331
+ };
332
+ persistOutcomeState();
333
+ reportError(new Error(`Pulse Links: Encore outcome HTTP ${status}`));
334
+ break;
335
+ }
336
+
337
+ // Other client/protocol errors cannot become valid by retrying the same payload.
338
+ state = {
339
+ ...state,
340
+ outcomeQueue: state.outcomeQueue.filter(item => item !== queued)
341
+ };
342
+ persistOutcomeState();
343
+ reportError(new Error(`Pulse Links: terminal Encore outcome HTTP ${status}`));
344
+ }
345
+ return delivered;
346
+ };
347
+ let owned;
348
+ owned = run().finally(() => {
349
+ if (outcomeSending === owned) outcomeSending = null;
350
+ const nextOutcome = state.outcomeQueue[0];
351
+ if (!disposed && nextOutcome && nextOutcome.nextRetryAt <= now()) {
352
+ void flushResolverOutcomes();
353
+ }
354
+ });
355
+ outcomeSending = owned;
356
+ return owned;
357
+ };
269
358
  const emitOutcome = (link, name) => {
270
359
  const transitionKey = stableOutcomeKey(link.id, name);
271
- if (!state.notifiedOutcomes.includes(transitionKey)) {
272
- // Persist before handing off to the general Pulse outbox. A process death after the callback
273
- // queues an event must not queue the same product transition again on restart.
274
- state = {
275
- ...state,
276
- notifiedOutcomes: [...state.notifiedOutcomes, transitionKey].slice(-MAX_NOTIFIED_OUTCOMES)
277
- };
278
- writeState(options.storage, storageKey, state);
279
- const event = {
280
- name,
281
- matchBasis: link.matchBasis,
282
- confidence: link.confidence,
283
- ...(link.campaignId !== undefined ? {
284
- campaignId: link.campaignId
285
- } : {}),
286
- ...(link.experimentId !== undefined ? {
287
- experimentId: link.experimentId
288
- } : {}),
289
- ...(link.variantId !== undefined ? {
290
- variantId: link.variantId
291
- } : {}),
292
- occurredAt: new Date(now()).toISOString()
293
- };
294
- try {
295
- const result = options.onOutcome?.(event);
296
- if (result && typeof result.catch === 'function') {
297
- void result.catch(reportError);
298
- }
299
- } catch (error) {
300
- reportError(error);
360
+ if (state.notifiedOutcomes.includes(transitionKey)) return;
361
+ const occurredAt = new Date(now()).toISOString();
362
+ const shouldReportToResolver = (options.reportResolverOutcomes ?? true) && isPublicToken(link.id);
363
+ const queued = shouldReportToResolver ? {
364
+ transitionKey,
365
+ token: link.id,
366
+ name,
367
+ eventId: makeOutcomeEventId(options.randomUUID, new Set(state.outcomeQueue.map(outcome => outcome.eventId))),
368
+ occurredAt,
369
+ matchBasis: link.matchBasis,
370
+ confidence: link.confidence,
371
+ attempts: 0,
372
+ nextRetryAt: 0
373
+ } : null;
374
+
375
+ // Persist the logical transition and complete Encore payload before either delivery path.
376
+ // The token remains only in this local record and in Encore's URL path.
377
+ state = {
378
+ ...state,
379
+ notifiedOutcomes: [...state.notifiedOutcomes, transitionKey].slice(-MAX_NOTIFIED_OUTCOMES),
380
+ outcomeQueue: queued ? [...state.outcomeQueue, queued].slice(-MAX_RESOLVER_OUTCOMES) : state.outcomeQueue
381
+ };
382
+ persistOutcomeState();
383
+ const event = {
384
+ name,
385
+ matchBasis: link.matchBasis,
386
+ confidence: link.confidence,
387
+ ...(link.campaignId !== undefined ? {
388
+ campaignId: link.campaignId
389
+ } : {}),
390
+ ...(link.experimentId !== undefined ? {
391
+ experimentId: link.experimentId
392
+ } : {}),
393
+ ...(link.variantId !== undefined ? {
394
+ variantId: link.variantId
395
+ } : {}),
396
+ occurredAt
397
+ };
398
+ try {
399
+ const result = options.onOutcome?.(event);
400
+ if (result && typeof result.catch === 'function') {
401
+ void result.catch(reportError);
301
402
  }
403
+ } catch (error) {
404
+ reportError(error);
302
405
  }
303
- if ((options.reportResolverOutcomes ?? true) && isPublicToken(link.id)) {
304
- void postResolverOutcome(fetcher, resolverBaseUrl, link, name, requestTimeoutMs).catch(reportError);
305
- }
406
+ if (queued) void flushResolverOutcomes();
306
407
  };
307
408
  const applyResolved = async (link, sourceToken) => {
308
409
  if (disposed) return false;
@@ -695,12 +796,13 @@ function createPulseLinkClient(options) {
695
796
  retryTimer = null;
696
797
  }
697
798
  if (disposed || options.autoRetry === false) return;
698
- const candidates = [state.pending?.nextRetryAt ?? 0, lastFirstOpenContext ? state.firstOpen.nextRetryAt : 0, accountRetryAt].filter(value => value > now());
799
+ const candidates = [state.pending?.nextRetryAt ?? 0, lastFirstOpenContext ? state.firstOpen.nextRetryAt : 0, accountRetryAt, state.outcomeQueue[0]?.nextRetryAt ?? 0].filter(value => value > now());
699
800
  if (candidates.length === 0) return;
700
801
  const next = Math.min(...candidates);
701
802
  retryTimer = setTimeout(() => {
702
803
  retryTimer = null;
703
804
  void process();
805
+ void flushResolverOutcomes();
704
806
  if (lastFirstOpenContext && state.firstOpen.nextRetryAt <= now()) {
705
807
  void matchFirstOpen(lastFirstOpenContext);
706
808
  }
@@ -719,6 +821,7 @@ function createPulseLinkClient(options) {
719
821
  }
720
822
  scheduleWake();
721
823
  void process();
824
+ void flushResolverOutcomes();
722
825
  return {
723
826
  capture,
724
827
  captureUrl: url => {
@@ -858,9 +961,36 @@ function makeInstallAttemptId(custom) {
858
961
  const candidate = custom?.() ?? globalThis.crypto?.randomUUID?.();
859
962
  if (candidate && INSTALL_ATTEMPT_ID.test(candidate)) return candidate.toLowerCase();
860
963
  } catch {/* use the non-identity fallback below */}
964
+ return fallbackUuidV4();
965
+ }
966
+ function makeOutcomeEventId(custom, existing = new Set()) {
967
+ try {
968
+ const candidate = custom?.() ?? globalThis.crypto?.randomUUID?.();
969
+ if (candidate && UUID_V4.test(candidate) && !existing.has(candidate.toLowerCase())) {
970
+ return candidate.toLowerCase();
971
+ }
972
+ } catch {/* use the UUIDv4 fallback below */}
973
+ let fallback = fallbackUuidV4();
974
+ while (existing.has(fallback)) fallback = fallbackUuidV4();
975
+ return fallback;
976
+ }
977
+ function fallbackUuidV4() {
861
978
  const hex = () => Math.floor(Math.random() * 0x10000).toString(16).padStart(4, '0');
862
979
  return `${hex()}${hex()}-${hex()}-4${hex().slice(1)}-${(8 + Math.floor(Math.random() * 4)).toString(16)}${hex().slice(1)}-${hex()}${hex()}${hex()}`;
863
980
  }
981
+
982
+ /** Deterministic equal jitter keeps a persisted retry stable while spreading different events. */
983
+ function resolverOutcomeRetryDelay(eventId, attempts, retryBaseMs, retryMaxMs) {
984
+ const exponent = Math.min(Math.max(attempts - 1, 0), 10);
985
+ const ceiling = Math.min(retryMaxMs, retryBaseMs * 2 ** exponent);
986
+ let hash = 0x811c9dc5;
987
+ const seed = `${eventId}:${attempts}`;
988
+ for (let index = 0; index < seed.length; index += 1) {
989
+ hash = Math.imul(hash ^ seed.charCodeAt(index), 0x01000193) >>> 0;
990
+ }
991
+ const jitter = 0.5 + hash / 0xffffffff * 0.5;
992
+ return Math.max(1, Math.floor(ceiling * jitter));
993
+ }
864
994
  async function withTimeout(fetcher, input, init, timeoutMs) {
865
995
  const controller = new AbortController();
866
996
  const timer = setTimeout(() => controller.abort(), timeoutMs);
@@ -873,18 +1003,65 @@ async function withTimeout(fetcher, input, init, timeoutMs) {
873
1003
  clearTimeout(timer);
874
1004
  }
875
1005
  }
876
- async function postResolverOutcome(fetcher, resolverBaseUrl, link, name, timeoutMs) {
877
- await withTimeout(fetcher, `${resolverBaseUrl}${encodeURIComponent(link.id)}/event/${name}`, {
1006
+ async function postResolverOutcome(fetcher, resolverBaseUrl, outcome, timeoutMs) {
1007
+ return withTimeout(fetcher, `${resolverBaseUrl}${encodeURIComponent(outcome.token)}/event/${outcome.name}`, {
878
1008
  method: 'POST',
879
1009
  headers: {
880
1010
  'Content-Type': 'application/json'
881
1011
  },
882
1012
  body: JSON.stringify({
883
- matchBasis: link.matchBasis,
884
- confidence: link.confidence
1013
+ eventId: outcome.eventId,
1014
+ occurredAt: outcome.occurredAt,
1015
+ matchBasis: outcome.matchBasis,
1016
+ confidence: outcome.confidence
885
1017
  })
886
1018
  }, timeoutMs);
887
1019
  }
1020
+ function readResolverOutcomeQueue(raw) {
1021
+ if (!Array.isArray(raw)) return [];
1022
+ const queue = [];
1023
+ const seenTransitions = new Set();
1024
+ const seenEvents = new Set();
1025
+ const candidates = [...raw].reverse();
1026
+ for (const candidate of candidates) {
1027
+ if (queue.length >= MAX_RESOLVER_OUTCOMES) break;
1028
+ if (!candidate || typeof candidate !== 'object') continue;
1029
+ const value = candidate;
1030
+ const token = normalizeDeferredHandoffToken(value.token);
1031
+ const name = isDeferredLinkOutcomeName(value.name) ? value.name : null;
1032
+ const eventId = typeof value.eventId === 'string' && UUID_V4.test(value.eventId) ? value.eventId.toLowerCase() : null;
1033
+ const occurredAt = normalizeOccurredAt(value.occurredAt);
1034
+ const matchBasis = typeof value.matchBasis === 'string' && MATCH_BASES.has(value.matchBasis) ? value.matchBasis : null;
1035
+ if (!token || !name || !eventId || !occurredAt || !matchBasis) continue;
1036
+ const transitionKey = stableOutcomeKey(token, name);
1037
+ if (value.transitionKey !== transitionKey || seenTransitions.has(transitionKey) || seenEvents.has(eventId)) continue;
1038
+ const confidence = typeof value.confidence === 'number' && Number.isFinite(value.confidence) ? clampConfidence(value.confidence, 0) : null;
1039
+ if (confidence === null) continue;
1040
+ seenTransitions.add(transitionKey);
1041
+ seenEvents.add(eventId);
1042
+ queue.unshift({
1043
+ transitionKey,
1044
+ token,
1045
+ name,
1046
+ eventId,
1047
+ occurredAt,
1048
+ matchBasis,
1049
+ confidence,
1050
+ attempts: safeInteger(value.attempts, 100_000),
1051
+ nextRetryAt: safeTimestamp(value.nextRetryAt)
1052
+ });
1053
+ }
1054
+ return queue;
1055
+ }
1056
+ function isDeferredLinkOutcomeName(value) {
1057
+ return value === 'app_open_confirmed' || value === 'deferred_link_resolved' || value === 'action_applied';
1058
+ }
1059
+ function normalizeOccurredAt(value) {
1060
+ if (typeof value !== 'string' || value.length > 40) return null;
1061
+ const timestamp = Date.parse(value);
1062
+ if (!Number.isFinite(timestamp)) return null;
1063
+ return new Date(timestamp).toISOString() === value ? value : null;
1064
+ }
888
1065
  function readState(storage, key) {
889
1066
  if (!storage) return emptyState();
890
1067
  try {
@@ -910,13 +1087,15 @@ function readState(storage, key) {
910
1087
  const firstValue = parsed.firstOpen && typeof parsed.firstOpen === 'object' ? parsed.firstOpen : {};
911
1088
  const attemptId = typeof firstValue.installAttemptId === 'string' && INSTALL_ATTEMPT_ID.test(firstValue.installAttemptId) ? firstValue.installAttemptId.toLowerCase() : null;
912
1089
  const notifiedOutcomes = Array.isArray(parsed.notifiedOutcomes) ? parsed.notifiedOutcomes.filter(value => typeof value === 'string' && /^[a-f0-9]{16}\|(app_open_confirmed|deferred_link_resolved|action_applied)$/.test(value)).slice(-MAX_NOTIFIED_OUTCOMES) : [];
1090
+ const outcomeQueue = readResolverOutcomeQueue(parsed.outcomeQueue);
913
1091
  return {
914
1092
  version: 1,
915
1093
  status: status === 'resolving' ? pending ? 'pending' : 'idle' : status,
916
1094
  pending,
917
1095
  lastAppliedId: lastApplied,
918
1096
  appliedIds: [...new Set(appliedIds)].slice(-MAX_APPLIED_IDS),
919
- notifiedOutcomes: [...new Set(notifiedOutcomes)].slice(-MAX_NOTIFIED_OUTCOMES),
1097
+ notifiedOutcomes: [...new Set([...notifiedOutcomes, ...outcomeQueue.map(outcome => outcome.transitionKey)])].slice(-MAX_NOTIFIED_OUTCOMES),
1098
+ outcomeQueue,
920
1099
  firstOpen: {
921
1100
  installAttemptId: attemptId,
922
1101
  completed: firstValue.completed === true,
@@ -1 +1 @@
1
- {"version":3,"names":["OPAQUE_TOKEN","PUBLIC_EXPOSURE","INSTALL_ATTEMPT_ID","APP_IDENTITY","LOCALE","DEFAULT_PREFIXES","DEFAULT_QUERY_KEYS","Set","MATCH_BASES","CAPTURE_BASES","STATUSES","INSTALL_REFERRER_STATUSES","DEFAULT_ACTIONS","DEFAULT_SENSITIVE_ACTIONS","DEFAULT_STORAGE_KEY","DEFAULT_REQUEST_TIMEOUT_MS","DEFAULT_RETRY_BASE_MS","DEFAULT_RETRY_MAX_MS","DEFAULT_TOKEN_MAX_AGE_MS","DEFAULT_RECENT_INSTALL_MAX_AGE_MS","MAX_APPLIED_IDS","MAX_NOTIFIED_OUTCOMES","MAX_PERSISTED_BYTES","emptyState","version","status","pending","lastAppliedId","appliedIds","notifiedOutcomes","firstOpen","installAttemptId","completed","attemptedAt","attempts","nextRetryAt","isOpaqueDeferredLinkToken","value","test","normalizeDeferredHandoffToken","raw","acceptedPrefixes","candidate","trim","lower","toLowerCase","prefix","find","normalized","length","startsWith","slice","extractDeferredHandoffToken","url","parsed","URL","protocol","queryCandidates","key","searchParams","entries","has","push","segments","hostname","pathname","split","filter","Boolean","index","marker","decodeURIComponent","normalizeAndroidInstallReferrerResult","retryable","Number","isFinite","Math","max","min","trunc","expectedRetryable","token","createPulseLinkClient","options","resolverBaseUrl","normalizeBaseUrl","Error","allowedDeepLinkPrefixes","map","allowedActions","sensitiveActions","now","Date","fetcher","fetch","globalThis","appSlug","normalizeAppSlug","explicitStorageKey","storageKey","storage","requestTimeoutMs","boundedDuration","retryBaseMs","retryMaxMs","tokenMaxAgeMs","recentInstallMaxAgeMs","isPublicToken","state","readState","disposed","processing","processRequested","retryTimer","accountRetryAt","accountAttempts","lastFirstOpenContext","unsubscribeAccount","listeners","reportError","error","onError","snapshot","persistAndNotify","writeState","listener","onStateChange","scheduleWake","patchState","patch","patchFirstOpen","isAccountReady","schedulePendingRetry","delay","scheduleFirstOpenRetry","scheduleAccountRetry","clearPendingAsTerminal","emitOutcome","link","name","transitionKey","stableOutcomeKey","id","includes","event","matchBasis","confidence","campaignId","undefined","experimentId","variantId","occurredAt","toISOString","result","onOutcome","catch","reportResolverOutcomes","postResolverOutcome","applyResolved","sourceToken","action","matchGuaranteed","deepLink","isAllowedDeepLink","onAction","applied","onDeepLink","newlyApplied","newlyAppliedSet","stillPending","process","resolvePublic","basis","kind","response","withTimeout","encodeURIComponent","method","headers","Accept","ok","normalizeResolved","json","processOnce","receivedAt","publicResult","accountBridge","claim","normalizedClaim","claimed","fallbackId","normalizedPending","pendingLink","run","ownedPromise","then","capture","rawToken","matchFirstOpen","context","isEligibleFirstOpen","makeInstallAttemptId","randomUUID","body","appBundleId","platform","locale","normalizeLocale","matchUrlOf","JSON","stringify","replace","captureAndroidInstallReferrer","bridge","getDeferredHandoff","clearTimeout","autoRetry","candidates","next","setTimeout","maybeTimer","unref","subscribeAccountState","captureUrl","getState","subscribe","add","delete","dispose","clear","reset","createDeferredLinkClient","exports","base","slug","fallback","prefixes","some","clampConfidence","number","linkId","first","second","code","charCodeAt","imul","toString","padStart","boundedMetadata","String","fallbackBasis","rawBasis","guaranteedDefault","rawId","expiresAt","expiry","getTime","source","maxAgeMs","installedAt","custom","crypto","hex","floor","random","input","init","timeoutMs","controller","AbortController","timer","abort","signal","getString","parse","pendingValue","pendingToken","pendingBasis","safeTimestamp","safeInteger","Array","isArray","lastApplied","firstValue","attemptId","set"],"sourceRoot":"../../src","sources":["links.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["OPAQUE_TOKEN","PUBLIC_EXPOSURE","INSTALL_ATTEMPT_ID","UUID_V4","APP_IDENTITY","LOCALE","DEFAULT_PREFIXES","DEFAULT_QUERY_KEYS","Set","MATCH_BASES","CAPTURE_BASES","STATUSES","INSTALL_REFERRER_STATUSES","DEFAULT_ACTIONS","DEFAULT_SENSITIVE_ACTIONS","DEFAULT_STORAGE_KEY","DEFAULT_REQUEST_TIMEOUT_MS","DEFAULT_RETRY_BASE_MS","DEFAULT_RETRY_MAX_MS","DEFAULT_TOKEN_MAX_AGE_MS","DEFAULT_RECENT_INSTALL_MAX_AGE_MS","MAX_APPLIED_IDS","MAX_NOTIFIED_OUTCOMES","MAX_RESOLVER_OUTCOMES","MAX_PERSISTED_BYTES","emptyState","version","status","pending","lastAppliedId","appliedIds","notifiedOutcomes","outcomeQueue","firstOpen","installAttemptId","completed","attemptedAt","attempts","nextRetryAt","isOpaqueDeferredLinkToken","value","test","normalizeDeferredHandoffToken","raw","acceptedPrefixes","candidate","trim","lower","toLowerCase","prefix","find","normalized","length","startsWith","slice","extractDeferredHandoffToken","url","parsed","URL","protocol","queryCandidates","key","searchParams","entries","has","push","segments","hostname","pathname","split","filter","Boolean","index","marker","decodeURIComponent","normalizeAndroidInstallReferrerResult","retryable","Number","isFinite","Math","max","min","trunc","expectedRetryable","token","createPulseLinkClient","options","resolverBaseUrl","normalizeBaseUrl","Error","allowedDeepLinkPrefixes","map","allowedActions","sensitiveActions","now","Date","fetcher","fetch","globalThis","appSlug","normalizeAppSlug","explicitStorageKey","storageKey","storage","requestTimeoutMs","boundedDuration","retryBaseMs","retryMaxMs","tokenMaxAgeMs","recentInstallMaxAgeMs","isPublicToken","state","readState","disposed","processing","processRequested","retryTimer","outcomeSending","accountRetryAt","accountAttempts","lastFirstOpenContext","unsubscribeAccount","listeners","reportError","error","onError","snapshot","persistAndNotify","writeState","listener","onStateChange","scheduleWake","patchState","patch","patchFirstOpen","isAccountReady","schedulePendingRetry","delay","scheduleFirstOpenRetry","scheduleAccountRetry","clearPendingAsTerminal","persistOutcomeState","flushResolverOutcomes","run","delivered","queued","response","postResolverOutcome","findIndex","item","current","next","resolverOutcomeRetryDelay","eventId","itemIndex","owned","finally","nextOutcome","emitOutcome","link","name","transitionKey","stableOutcomeKey","id","includes","occurredAt","toISOString","shouldReportToResolver","reportResolverOutcomes","makeOutcomeEventId","randomUUID","outcome","matchBasis","confidence","event","campaignId","undefined","experimentId","variantId","result","onOutcome","catch","applyResolved","sourceToken","action","matchGuaranteed","deepLink","isAllowedDeepLink","onAction","applied","onDeepLink","newlyApplied","newlyAppliedSet","stillPending","process","resolvePublic","basis","kind","withTimeout","encodeURIComponent","method","headers","Accept","ok","normalizeResolved","json","processOnce","receivedAt","publicResult","accountBridge","claim","normalizedClaim","claimed","fallbackId","normalizedPending","pendingLink","ownedPromise","then","capture","rawToken","matchFirstOpen","context","isEligibleFirstOpen","makeInstallAttemptId","body","appBundleId","platform","locale","normalizeLocale","matchUrlOf","JSON","stringify","replace","captureAndroidInstallReferrer","bridge","getDeferredHandoff","clearTimeout","autoRetry","candidates","setTimeout","maybeTimer","unref","subscribeAccountState","captureUrl","getState","subscribe","add","delete","dispose","clear","reset","createDeferredLinkClient","exports","base","slug","fallback","prefixes","some","clampConfidence","number","linkId","first","second","code","charCodeAt","imul","toString","padStart","boundedMetadata","String","fallbackBasis","rawBasis","guaranteedDefault","rawId","expiresAt","expiry","getTime","source","maxAgeMs","installedAt","custom","crypto","fallbackUuidV4","existing","hex","floor","random","exponent","ceiling","hash","seed","jitter","input","init","timeoutMs","controller","AbortController","timer","abort","signal","readResolverOutcomeQueue","Array","isArray","queue","seenTransitions","seenEvents","reverse","isDeferredLinkOutcomeName","normalizeOccurredAt","unshift","safeInteger","safeTimestamp","timestamp","parse","getString","pendingValue","pendingToken","pendingBasis","lastApplied","firstValue","attemptId","set"],"sourceRoot":"../../src","sources":["links.ts"],"mappings":"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","ignoreList":[]}