pulse-updates 1.3.5 → 1.3.7

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.
@@ -38,8 +38,11 @@ const DEFAULT_MAX_QUEUE = 500;
38
38
  const DEFAULT_TIMEOUT_MS = 10_000;
39
39
  const DEFAULT_MAX_ATTEMPTS = 10;
40
40
  const DEFAULT_STORAGE_KEY = 'pulse.events.v1';
41
+ const ANALYTICS_INSTALLATION_ID_SUFFIX = '.analytics-installation-id';
42
+ const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
41
43
  let options = null;
42
44
  let queue = [];
45
+ let analyticsInstallationId = '';
43
46
  let timer = null;
44
47
  let sending = false;
45
48
  let nextAttemptAt = 0;
@@ -55,6 +58,7 @@ function configureTracking(opts) {
55
58
  disposeTracking();
56
59
  options = opts;
57
60
  queue = readQueue(opts);
61
+ analyticsInstallationId = opts.identityMode === 'anonymous_installation' ? resolveAnalyticsInstallationId(opts) : '';
58
62
  nextAttemptAt = 0;
59
63
  startTimer();
60
64
  lifecycleSubscription = opts.appState?.addEventListener('change', state => {
@@ -110,11 +114,12 @@ async function flushEvents() {
110
114
  const opts = options;
111
115
  const requestGeneration = trackingGeneration;
112
116
  const ctx = opts.getContext?.() ?? {};
117
+ const anonymousInstallation = opts.identityMode === 'anonymous_installation';
113
118
 
114
- // Without a device id the server cannot put the event in an arm, and an empty id
115
- // would pool every such install into one. Held rather than dropped: the id usually
116
- // arrives a moment after boot.
117
- if (!ctx.deviceId) return 0;
119
+ // The legacy/default mode intentionally preserves the original experiment-event
120
+ // contract. Anonymous campaign events opt into a separate identity explicitly.
121
+ if (!anonymousInstallation && !ctx.deviceId) return 0;
122
+ const requestDeviceId = anonymousInstallation ? analyticsInstallationId : ctx.deviceId;
118
123
  const batch = queue.slice(0, opts.maxBatch ?? DEFAULT_MAX_BATCH);
119
124
  queue = queue.slice(batch.length);
120
125
  persistQueue();
@@ -128,8 +133,12 @@ async function flushEvents() {
128
133
  'Content-Type': 'application/json'
129
134
  },
130
135
  body: JSON.stringify({
131
- deviceId: ctx.deviceId,
132
- userId: ctx.userId,
136
+ deviceId: requestDeviceId,
137
+ // Anonymous mode deliberately omits the property rather than serializing an
138
+ // empty identifier. Context mode remains backwards compatible.
139
+ ...(anonymousInstallation ? {} : {
140
+ userId: ctx.userId
141
+ }),
133
142
  platform: ctx.platform,
134
143
  appVersion: ctx.appVersion,
135
144
  events: batch.map(e => ({
@@ -194,6 +203,7 @@ function stopTracking() {
194
203
  disposeTracking();
195
204
  options = null;
196
205
  queue = [];
206
+ analyticsInstallationId = '';
197
207
  sending = false;
198
208
  nextAttemptAt = 0;
199
209
  }
@@ -263,6 +273,28 @@ function restoreStaleBatch(opts, batch, status) {
263
273
  function storageKey(opts) {
264
274
  return opts.storageKey?.trim() || DEFAULT_STORAGE_KEY;
265
275
  }
276
+ function analyticsInstallationIdStorageKey(opts) {
277
+ return `${storageKey(opts)}${ANALYTICS_INSTALLATION_ID_SUFFIX}`;
278
+ }
279
+ function resolveAnalyticsInstallationId(opts) {
280
+ if (opts.storage) {
281
+ try {
282
+ const stored = opts.storage.getString(analyticsInstallationIdStorageKey(opts))?.trim();
283
+ if (stored && UUID_PATTERN.test(stored)) return stored.toLowerCase();
284
+ } catch {
285
+ // A telemetry identifier can stay memory-only when storage is unavailable.
286
+ }
287
+ }
288
+ const generated = randomAnalyticsInstallationId();
289
+ if (opts.storage) {
290
+ try {
291
+ opts.storage.set(analyticsInstallationIdStorageKey(opts), generated);
292
+ } catch {
293
+ // A telemetry identifier can stay memory-only when storage is unavailable.
294
+ }
295
+ }
296
+ return generated;
297
+ }
266
298
  function readQueue(opts) {
267
299
  if (!opts.storage) return [];
268
300
  try {
@@ -288,4 +320,14 @@ function randomEventId() {
288
320
  if (typeof cryptoLike?.randomUUID === 'function') return cryptoLike.randomUUID();
289
321
  return `evt-${Date.now()}-${Math.random().toString(36).slice(2, 14)}`;
290
322
  }
323
+ function randomAnalyticsInstallationId() {
324
+ const cryptoLike = globalThis.crypto;
325
+ if (typeof cryptoLike?.randomUUID === 'function') return cryptoLike.randomUUID().toLowerCase();
326
+ const bytes = new Uint8Array(16);
327
+ if (typeof cryptoLike?.getRandomValues === 'function') cryptoLike.getRandomValues(bytes);else for (let i = 0; i < bytes.length; i++) bytes[i] = Math.floor(Math.random() * 256);
328
+ bytes[6] = (bytes[6] ?? 0) & 0x0f | 0x40;
329
+ bytes[8] = (bytes[8] ?? 0) & 0x3f | 0x80;
330
+ const hex = Array.from(bytes, value => value.toString(16).padStart(2, '0')).join('');
331
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
332
+ }
291
333
  //# sourceMappingURL=track.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_FLUSH_MS","DEFAULT_MAX_BATCH","DEFAULT_MAX_QUEUE","DEFAULT_TIMEOUT_MS","DEFAULT_MAX_ATTEMPTS","DEFAULT_STORAGE_KEY","options","queue","timer","sending","nextAttemptAt","lifecycleSubscription","trackingGeneration","trackUrl","url","trimmed","replace","includes","configureTracking","opts","disposeTracking","readQueue","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","deviceId","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","raw","getString","parsed","parse","Array","isArray","filter","item","Boolean","cryptoLike","globalThis","crypto","randomUUID","toString"],"sourceRoot":"../../src","sources":["track.ts"],"mappings":"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","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","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":"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","ignoreList":[]}
@@ -14,9 +14,10 @@
14
14
  * - the urls, from the base url and the slug, which is what stops the two halves
15
15
  * from ever addressing different apps;
16
16
  * - platform and OS version, from React Native;
17
- * - the device id, minted and persisted on first launch — an app that has a stable
18
- * identifier of its own (the vendor id, an installation id) should pass it, and an
19
- * app that has none should not have to invent one to be measurable.
17
+ * - the config/experiment id, minted and persisted on first launch — an app that has
18
+ * a stable identifier of its own may pass it. Event tracking keeps the original
19
+ * context identity by default; privacy-sensitive campaign events can explicitly
20
+ * opt into a separate random app-scoped analytics installation UUID.
20
21
  *
21
22
  * Deliberately not automatic: the app version. Nothing here can read the store build
22
23
  * reliably on both platforms, and a version guessed wrong aims a rollout at the wrong
@@ -29,7 +30,7 @@ const DEVICE_ID_KEY = 'pulse.device-id';
29
30
  let activeClient = null;
30
31
  let stopActiveRefresh = null;
31
32
 
32
- /** Wires config and events, and returns the context the two share. */
33
+ /** Wires config and events with an explicit event-envelope identity policy. */
33
34
  export function initPulse(opts) {
34
35
  // Reconfiguration is synchronous. Calling the old async dispose without awaiting
35
36
  // it lets its eventual flush tear down the brand-new tracker — exactly the race a
@@ -80,6 +81,7 @@ export function initPulse(opts) {
80
81
  configureTracking({
81
82
  url: trackUrl,
82
83
  getContext,
84
+ identityMode: opts.eventIdentityMode,
83
85
  flushIntervalMs: opts.flushIntervalMs,
84
86
  storage: opts.storage,
85
87
  storageKey: `pulse.${slug}.events.v1`,
@@ -167,12 +169,13 @@ export function initPulse(opts) {
167
169
  }
168
170
 
169
171
  /**
170
- * AsyncStorage-friendly one-call setup. It preloads only Pulse's three app-scoped
171
- * records, then exposes the same synchronous hot-path API as initPulse.
172
+ * AsyncStorage-friendly one-call setup. It preloads only Pulse's app-scoped config,
173
+ * event, analytics-installation and exposure records, then exposes the same
174
+ * synchronous hot-path API as initPulse.
172
175
  */
173
176
  export async function initPulseAsync(opts) {
174
177
  const slug = opts.appSlug.trim();
175
- const keys = [`pulse.${slug}.device-id`, `pulse.${slug}.config.v1`, `pulse.${slug}.events.v1`, `pulse.${slug}.exposures.v1`, DEVICE_ID_KEY];
178
+ const keys = [`pulse.${slug}.device-id`, `pulse.${slug}.config.v1`, `pulse.${slug}.events.v1`, `pulse.${slug}.events.v1.analytics-installation-id`, `pulse.${slug}.exposures.v1`, DEVICE_ID_KEY];
176
179
  const loaded = await Promise.all(keys.map(async key => [key, await opts.storage.getItem(key)]));
177
180
  const memory = new Map(loaded.filter(entry => entry[1] !== null));
178
181
  const storage = {
@@ -1 +1 @@
1
- {"version":3,"names":["configureConfig","fetchConfig","startConfigAutoRefresh","getConfigInfo","getConfigBoolean","getConfigNumber","getConfigString","getConfigJson","getExposureDeliveryInfo","configureTracking","disposeTracking","flushEvents","getTrackingInfo","track","DEVICE_ID_KEY","activeClient","stopActiveRefresh","initPulse","opts","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","url","defaults","storageKey","exposureStorageKey","reportExposure","pollIntervalMs","onError","signingPublicKey","signingKeyId","requireSignature","requireConfigSignature","verifySignature","verifyConfigSignature","verifyWithNativeKey","flushIntervalMs","propertyAllowlist","eventPropertyAllowlist","redactProperties","redactEventProperties","appState","onIgnored","onIgnoredEvents","Error","stopRefresh","client","flush","setUser","nextUserId","attributes","sanitizeAttributes","clearUser","setAnalyticsConsent","granted","resetInstallId","randomId","set","health","config","events","exposures","boolean","number","string","json","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","require","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":["configureConfig","fetchConfig","startConfigAutoRefresh","getConfigInfo","getConfigBoolean","getConfigNumber","getConfigString","getConfigJson","getExposureDeliveryInfo","configureTracking","disposeTracking","flushEvents","getTrackingInfo","track","DEVICE_ID_KEY","activeClient","stopActiveRefresh","initPulse","opts","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","url","defaults","storageKey","exposureStorageKey","reportExposure","pollIntervalMs","onError","signingPublicKey","signingKeyId","requireSignature","requireConfigSignature","verifySignature","verifyConfigSignature","verifyWithNativeKey","identityMode","eventIdentityMode","flushIntervalMs","propertyAllowlist","eventPropertyAllowlist","redactProperties","redactEventProperties","appState","onIgnored","onIgnoredEvents","Error","stopRefresh","client","flush","setUser","nextUserId","attributes","sanitizeAttributes","clearUser","setAnalyticsConsent","granted","resetInstallId","randomId","set","health","config","events","exposures","boolean","number","string","json","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","require","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":[]}
@@ -33,6 +33,10 @@ const MAX_APPLIED_IDS = 32;
33
33
  const MAX_NOTIFIED_OUTCOMES = MAX_APPLIED_IDS * 3;
34
34
  const MAX_RESOLVER_OUTCOMES = MAX_NOTIFIED_OUTCOMES;
35
35
  const MAX_PERSISTED_BYTES = 131_072;
36
+ const VERSION_SIGNAL = /^[A-Za-z0-9][A-Za-z0-9._+()-]*$/;
37
+ const DEVICE_MODEL_CODE = /^[A-Za-z0-9][A-Za-z0-9._,+-]*$/;
38
+ const DISTRIBUTION_SIGNAL = /^[a-z0-9][a-z0-9._-]*$/;
39
+ const DEVICE_TYPES = new Set(['phone', 'tablet', 'tv', 'desktop', 'gaming_console', 'unknown']);
36
40
  const emptyState = () => ({
37
41
  version: 1,
38
42
  status: 'idle',
@@ -347,8 +351,11 @@ export function createPulseLinkClient(options) {
347
351
  const emitOutcome = (link, name) => {
348
352
  const transitionKey = stableOutcomeKey(link.id, name);
349
353
  if (state.notifiedOutcomes.includes(transitionKey)) return;
350
- const occurredAt = new Date(now()).toISOString();
354
+ const outcomeTimestamp = now();
355
+ const occurredAt = new Date(outcomeTimestamp).toISOString();
351
356
  const shouldReportToResolver = (options.reportResolverOutcomes ?? true) && isPublicToken(link.id);
357
+ const firstOpenAttemptIsRecent = state.firstOpen.attemptedAt > 0 && state.firstOpen.attemptedAt <= outcomeTimestamp && outcomeTimestamp - state.firstOpen.attemptedAt <= recentInstallMaxAgeMs;
358
+ const correlatedInstallAttemptId = firstOpenAttemptIsRecent && link.matchGuaranteed && link.matchBasis !== 'unique_probabilistic' && link.matchBasis !== 'unmatched' ? state.firstOpen.installAttemptId : null;
352
359
  const queued = shouldReportToResolver ? {
353
360
  transitionKey,
354
361
  token: link.id,
@@ -357,6 +364,9 @@ export function createPulseLinkClient(options) {
357
364
  occurredAt,
358
365
  matchBasis: link.matchBasis,
359
366
  confidence: link.confidence,
367
+ ...(correlatedInstallAttemptId ? {
368
+ installAttemptId: correlatedInstallAttemptId
369
+ } : {}),
360
370
  attempts: 0,
361
371
  nextRetryAt: 0
362
372
  } : null;
@@ -684,7 +694,8 @@ export function createPulseLinkClient(options) {
684
694
  platform: 'ios',
685
695
  locale: normalizeLocale(context.locale),
686
696
  firstOpen: true,
687
- installAttemptId
697
+ installAttemptId,
698
+ ...normalizeAnonymousFirstOpenSignals(context)
688
699
  };
689
700
  try {
690
701
  const response = await withTimeout(fetcher, matchUrlOf(resolverBaseUrl), {
@@ -945,6 +956,50 @@ function isEligibleFirstOpen(context, now, maxAgeMs) {
945
956
  function normalizeLocale(locale) {
946
957
  return locale.trim().replace(/_/g, '-');
947
958
  }
959
+ function normalizeAnonymousFirstOpenSignals(context) {
960
+ const appVersion = normalizeSignalString(context.appVersion, VERSION_SIGNAL, 64);
961
+ const osVersion = normalizeSignalString(context.osVersion, VERSION_SIGNAL, 64);
962
+ const deviceModelCode = normalizeSignalString(context.deviceModelCode, DEVICE_MODEL_CODE, 80);
963
+ const distribution = normalizeDistributionSignal(context.distribution);
964
+ const normalizedDeviceType = typeof context.deviceType === 'string' ? context.deviceType.trim().toLowerCase() : '';
965
+ const deviceType = DEVICE_TYPES.has(normalizedDeviceType) ? normalizedDeviceType : undefined;
966
+ const timezoneOffsetMinutes = typeof context.timezoneOffsetMinutes === 'number' && Number.isFinite(context.timezoneOffsetMinutes) && Number.isInteger(context.timezoneOffsetMinutes) && context.timezoneOffsetMinutes >= -840 && context.timezoneOffsetMinutes <= 840 ? context.timezoneOffsetMinutes : undefined;
967
+ const isEmulator = typeof context.isEmulator === 'boolean' ? context.isEmulator : undefined;
968
+ return {
969
+ ...(appVersion ? {
970
+ appVersion
971
+ } : {}),
972
+ ...(osVersion ? {
973
+ osVersion
974
+ } : {}),
975
+ ...(deviceModelCode ? {
976
+ deviceModelCode
977
+ } : {}),
978
+ ...(deviceType ? {
979
+ deviceType
980
+ } : {}),
981
+ ...(distribution ? {
982
+ distribution
983
+ } : {}),
984
+ ...(timezoneOffsetMinutes !== undefined ? {
985
+ timezoneOffsetMinutes
986
+ } : {}),
987
+ ...(isEmulator !== undefined ? {
988
+ isEmulator
989
+ } : {})
990
+ };
991
+ }
992
+ function normalizeDistributionSignal(value) {
993
+ if (typeof value !== 'string') return undefined;
994
+ const normalized = value.trim().toLowerCase().replace(/[ -]+/g, '_');
995
+ const canonical = normalized === 'appstore' ? 'app_store' : normalized;
996
+ return normalizeSignalString(canonical, DISTRIBUTION_SIGNAL, 24);
997
+ }
998
+ function normalizeSignalString(value, grammar, maxLength) {
999
+ if (typeof value !== 'string') return undefined;
1000
+ const normalized = value.trim();
1001
+ return normalized.length > 0 && normalized.length <= maxLength && grammar.test(normalized) ? normalized : undefined;
1002
+ }
948
1003
  function makeInstallAttemptId(custom) {
949
1004
  try {
950
1005
  const candidate = custom?.() ?? globalThis.crypto?.randomUUID?.();
@@ -1002,7 +1057,10 @@ async function postResolverOutcome(fetcher, resolverBaseUrl, outcome, timeoutMs)
1002
1057
  eventId: outcome.eventId,
1003
1058
  occurredAt: outcome.occurredAt,
1004
1059
  matchBasis: outcome.matchBasis,
1005
- confidence: outcome.confidence
1060
+ confidence: outcome.confidence,
1061
+ ...(outcome.installAttemptId ? {
1062
+ installAttemptId: outcome.installAttemptId
1063
+ } : {})
1006
1064
  })
1007
1065
  }, timeoutMs);
1008
1066
  }
@@ -1026,6 +1084,7 @@ function readResolverOutcomeQueue(raw) {
1026
1084
  if (value.transitionKey !== transitionKey || seenTransitions.has(transitionKey) || seenEvents.has(eventId)) continue;
1027
1085
  const confidence = typeof value.confidence === 'number' && Number.isFinite(value.confidence) ? clampConfidence(value.confidence, 0) : null;
1028
1086
  if (confidence === null) continue;
1087
+ const installAttemptId = matchBasis !== 'unique_probabilistic' && matchBasis !== 'unmatched' && typeof value.installAttemptId === 'string' && INSTALL_ATTEMPT_ID.test(value.installAttemptId) ? value.installAttemptId.toLowerCase() : undefined;
1029
1088
  seenTransitions.add(transitionKey);
1030
1089
  seenEvents.add(eventId);
1031
1090
  queue.unshift({
@@ -1036,6 +1095,9 @@ function readResolverOutcomeQueue(raw) {
1036
1095
  occurredAt,
1037
1096
  matchBasis,
1038
1097
  confidence,
1098
+ ...(installAttemptId ? {
1099
+ installAttemptId
1100
+ } : {}),
1039
1101
  attempts: safeInteger(value.attempts, 100_000),
1040
1102
  nextRetryAt: safeTimestamp(value.nextRetryAt)
1041
1103
  });