@adtrackify/at-service-common 4.0.9 → 4.0.11

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.
Files changed (57) hide show
  1. package/dist/cjs/__tests__/identity-cache/helpers.spec.js +4 -4
  2. package/dist/cjs/__tests__/identity-cache/helpers.spec.js.map +1 -1
  3. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +15 -15
  4. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
  5. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +1 -1
  6. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
  7. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +4 -4
  8. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  9. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +140 -141
  10. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
  11. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js +79 -79
  12. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
  13. package/dist/cjs/helpers/index.d.ts +0 -1
  14. package/dist/cjs/helpers/index.js +0 -1
  15. package/dist/cjs/helpers/index.js.map +1 -1
  16. package/dist/cjs/services/db/identity-cache-db-service.js +4 -4
  17. package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
  18. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.d.ts +1 -2
  19. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js +5 -6
  20. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js.map +1 -1
  21. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +8 -8
  22. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  23. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +20 -8
  24. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  25. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.d.ts +1 -1
  26. package/dist/esm/__tests__/identity-cache/helpers.spec.js +1 -1
  27. package/dist/esm/__tests__/identity-cache/helpers.spec.js.map +1 -1
  28. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +1 -1
  29. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
  30. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +1 -1
  31. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
  32. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +1 -1
  33. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  34. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +1 -2
  35. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
  36. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js +1 -1
  37. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
  38. package/dist/esm/helpers/index.d.ts +0 -1
  39. package/dist/esm/helpers/index.js +0 -1
  40. package/dist/esm/helpers/index.js.map +1 -1
  41. package/dist/esm/services/db/identity-cache-db-service.js +1 -1
  42. package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
  43. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.d.ts +1 -2
  44. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js +1 -2
  45. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js.map +1 -1
  46. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +5 -5
  47. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  48. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +17 -5
  49. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  50. package/dist/esm/services/db/identity-cache-dynamodb-service/types.d.ts +1 -1
  51. package/package.json +2 -2
  52. package/dist/cjs/helpers/identity-cache-helper.d.ts +0 -39
  53. package/dist/cjs/helpers/identity-cache-helper.js +0 -307
  54. package/dist/cjs/helpers/identity-cache-helper.js.map +0 -1
  55. package/dist/esm/helpers/identity-cache-helper.d.ts +0 -39
  56. package/dist/esm/helpers/identity-cache-helper.js +0 -300
  57. package/dist/esm/helpers/identity-cache-helper.js.map +0 -1
@@ -1,39 +0,0 @@
1
- import { AdClickInfo, EventIdentity, EventIdentityTraits } from '@adtrackify/at-tracking-event-types';
2
- export declare enum IDENTITY_CACHE_STALENESS_TIER {
3
- NONE = "none",
4
- VOLATILE_ONLY = "volatile_only",
5
- ADDRESS_UPDATE = "address_update",
6
- IDENTITY_STALE = "identity_stale"
7
- }
8
- export interface IdentityCacheStaleTracker {
9
- cachedTraits: EventIdentityTraits;
10
- incomingTraits: EventIdentityTraits;
11
- isIdentityIdStale: boolean;
12
- isUserIdsStale: boolean;
13
- isIdsStale: boolean;
14
- isEmailsStale: boolean;
15
- isPhonesStale: boolean;
16
- isShopifyYIdsStale: boolean;
17
- isGendersStale: boolean;
18
- isDobsStale: boolean;
19
- isAddressesStale: boolean;
20
- isIpAddressesStale: boolean;
21
- isNonIpAddressesStale: boolean;
22
- isClickInfosStale: boolean;
23
- isIpAddressStale: boolean;
24
- isUserAgentStale: boolean;
25
- isThirdPartyContactsStale: boolean;
26
- isCacheStale: boolean;
27
- staleTier: IDENTITY_CACHE_STALENESS_TIER;
28
- }
29
- export declare const isIdentityCacheStale: (identityCache: EventIdentity, incomingIdentity: EventIdentity) => IdentityCacheStaleTracker;
30
- export declare const isClickInfosStale: (cachedClick: AdClickInfo, incomingClick: AdClickInfo) => boolean;
31
- export declare function extractStaleTraitNames(tracker: IdentityCacheStaleTracker): string[];
32
- export interface MergeAndComputeIdentityStalenessResult {
33
- mergedIdentity: EventIdentity;
34
- staleTracker: IdentityCacheStaleTracker;
35
- staleTier: IDENTITY_CACHE_STALENESS_TIER;
36
- isCacheStale: boolean;
37
- staleTraits: string[];
38
- }
39
- export declare function mergeAndComputeIdentityStaleness(incomingIdentity: EventIdentity, cachedOrResolvedIdentity: EventIdentity): MergeAndComputeIdentityStalenessResult;
@@ -1,307 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mergeAndComputeIdentityStaleness = exports.extractStaleTraitNames = exports.isClickInfosStale = exports.isIdentityCacheStale = exports.IDENTITY_CACHE_STALENESS_TIER = void 0;
4
- const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
5
- const at_tracking_event_types_1 = require("@adtrackify/at-tracking-event-types");
6
- const logging_helper_1 = require("./logging-helper");
7
- var IDENTITY_CACHE_STALENESS_TIER;
8
- (function (IDENTITY_CACHE_STALENESS_TIER) {
9
- IDENTITY_CACHE_STALENESS_TIER["NONE"] = "none";
10
- IDENTITY_CACHE_STALENESS_TIER["VOLATILE_ONLY"] = "volatile_only";
11
- IDENTITY_CACHE_STALENESS_TIER["ADDRESS_UPDATE"] = "address_update";
12
- IDENTITY_CACHE_STALENESS_TIER["IDENTITY_STALE"] = "identity_stale";
13
- })(IDENTITY_CACHE_STALENESS_TIER = exports.IDENTITY_CACHE_STALENESS_TIER || (exports.IDENTITY_CACHE_STALENESS_TIER = {}));
14
- const createInitialTracker = (cachedTraits, incomingTraits) => ({
15
- cachedTraits,
16
- incomingTraits,
17
- isIdentityIdStale: false,
18
- isUserIdsStale: false,
19
- isIdsStale: false,
20
- isEmailsStale: false,
21
- isPhonesStale: false,
22
- isShopifyYIdsStale: false,
23
- isGendersStale: false,
24
- isDobsStale: false,
25
- isAddressesStale: false,
26
- isIpAddressesStale: false,
27
- isNonIpAddressesStale: false,
28
- isClickInfosStale: false,
29
- isIpAddressStale: false,
30
- isUserAgentStale: false,
31
- isThirdPartyContactsStale: false,
32
- isCacheStale: false,
33
- staleTier: IDENTITY_CACHE_STALENESS_TIER.NONE,
34
- });
35
- const markStaleTraitOnly = (tracker, trackerKey, logMessage) => {
36
- logging_helper_1.Logger.debug(`IdentityCache - identity cache check - ${logMessage}`, {
37
- cachedTraits: tracker.cachedTraits,
38
- incomingTraits: tracker.incomingTraits,
39
- });
40
- tracker[trackerKey] = true;
41
- };
42
- const isAddressIpSourced = (addr) => {
43
- if (addr?.s !== undefined) {
44
- return addr.s === at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS;
45
- }
46
- const hasPii = Boolean(addr?.firstName || addr?.lastName || addr?.email || addr?.phone);
47
- return !hasPii;
48
- };
49
- const filterAddressesBySource = (addresses, isIpSource) => {
50
- return addresses.filter((addr) => {
51
- const addressIsIp = isAddressIpSourced(addr);
52
- return isIpSource ? addressIsIp : !addressIsIp;
53
- });
54
- };
55
- const hasNewNonIpAddress = (cachedAddresses, incomingAddresses) => {
56
- const cachedNonIp = filterAddressesBySource(cachedAddresses, false);
57
- const incomingNonIp = filterAddressesBySource(incomingAddresses, false);
58
- return (0, at_shared_utils_1.hasNewAddress)(cachedNonIp, incomingNonIp);
59
- };
60
- const hasNewIpAddress = (cachedAddresses, incomingAddresses) => {
61
- const cachedIp = filterAddressesBySource(cachedAddresses, true);
62
- const incomingIp = filterAddressesBySource(incomingAddresses, true);
63
- return (0, at_shared_utils_1.hasNewAddress)(cachedIp, incomingIp);
64
- };
65
- const checkScalarTraitChanged = (cachedValue, incomingValue) => Boolean(incomingValue && cachedValue !== incomingValue);
66
- const computeStaleTier = (tracker) => {
67
- const hasIdentityStale = tracker.isIdentityIdStale ||
68
- tracker.isUserIdsStale ||
69
- tracker.isIdsStale ||
70
- tracker.isEmailsStale ||
71
- tracker.isPhonesStale ||
72
- tracker.isShopifyYIdsStale ||
73
- tracker.isGendersStale ||
74
- tracker.isDobsStale ||
75
- tracker.isClickInfosStale ||
76
- tracker.isThirdPartyContactsStale;
77
- if (hasIdentityStale) {
78
- return IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE;
79
- }
80
- if (tracker.isNonIpAddressesStale) {
81
- return IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE;
82
- }
83
- const hasVolatileStale = tracker.isIpAddressStale || tracker.isUserAgentStale || tracker.isIpAddressesStale;
84
- if (hasVolatileStale) {
85
- return IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY;
86
- }
87
- return IDENTITY_CACHE_STALENESS_TIER.NONE;
88
- };
89
- const isIdentityCacheStale = (identityCache, incomingIdentity) => {
90
- try {
91
- const cachedTraits = identityCache?.traits ?? {};
92
- const incomingTraits = incomingIdentity?.traits ?? {};
93
- const tracker = createInitialTracker(cachedTraits, incomingTraits);
94
- const cachedAddresses = cachedTraits?.addresses ?? [];
95
- const incomingAddresses = incomingTraits?.addresses ?? [];
96
- const identityChecks = [
97
- {
98
- trackerKey: 'isIdentityIdStale',
99
- logMessage: 'identityId changed',
100
- isStale: () => identityCache?.identityId !== incomingIdentity?.identityId,
101
- },
102
- {
103
- trackerKey: 'isUserIdsStale',
104
- logMessage: 'userIds changed',
105
- isStale: () => (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.userIds ?? [], incomingTraits?.userIds ?? []),
106
- },
107
- {
108
- trackerKey: 'isIdsStale',
109
- logMessage: 'ids changed',
110
- isStale: () => (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.ids ?? [], incomingTraits?.ids ?? []),
111
- },
112
- {
113
- trackerKey: 'isEmailsStale',
114
- logMessage: 'emails changed',
115
- isStale: () => (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.emails ?? [], incomingTraits?.emails ?? []),
116
- },
117
- {
118
- trackerKey: 'isPhonesStale',
119
- logMessage: 'phones changed',
120
- isStale: () => (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.phones ?? [], incomingTraits?.phones ?? []),
121
- },
122
- {
123
- trackerKey: 'isShopifyYIdsStale',
124
- logMessage: 'shopify Y ids changed',
125
- isStale: () => (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.shopifyYIds ?? [], incomingTraits?.shopifyYIds ?? []),
126
- },
127
- {
128
- trackerKey: 'isGendersStale',
129
- logMessage: 'genders changed',
130
- isStale: () => (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.genders ?? [], incomingTraits?.genders ?? []),
131
- },
132
- {
133
- trackerKey: 'isDobsStale',
134
- logMessage: 'dobs changed',
135
- isStale: () => (0, at_shared_utils_1.hasNewTrait)(cachedTraits?.dobs ?? [], incomingTraits?.dobs ?? []),
136
- },
137
- {
138
- trackerKey: 'isClickInfosStale',
139
- logMessage: 'clickInfos changed',
140
- isStale: () => (0, exports.isClickInfosStale)(cachedTraits?.click ?? {}, incomingTraits?.click ?? {}),
141
- },
142
- {
143
- trackerKey: 'isThirdPartyContactsStale',
144
- logMessage: 'thirdPartyContacts changed',
145
- isStale: () => (0, at_shared_utils_1.hasNewThirdPartyContact)(cachedTraits?.tpc ?? [], incomingTraits?.tpc ?? []),
146
- },
147
- ];
148
- const addressChecks = [
149
- {
150
- trackerKey: 'isNonIpAddressesStale',
151
- logMessage: 'non-IP address changed',
152
- isStale: () => hasNewNonIpAddress(cachedAddresses, incomingAddresses),
153
- isAddressUpdate: true,
154
- },
155
- {
156
- trackerKey: 'isIpAddressesStale',
157
- logMessage: 'IP-sourced address changed',
158
- isStale: () => hasNewIpAddress(cachedAddresses, incomingAddresses),
159
- isVolatile: true,
160
- },
161
- ];
162
- const volatileChecks = [
163
- {
164
- trackerKey: 'isIpAddressStale',
165
- logMessage: 'ipAddress changed',
166
- isStale: () => checkScalarTraitChanged(cachedTraits?.ipAddress, incomingTraits?.ipAddress),
167
- isVolatile: true,
168
- },
169
- {
170
- trackerKey: 'isUserAgentStale',
171
- logMessage: 'userAgent changed',
172
- isStale: () => checkScalarTraitChanged(cachedTraits?.userAgent, incomingTraits?.userAgent),
173
- isVolatile: true,
174
- },
175
- ];
176
- const allChecks = [...identityChecks, ...addressChecks, ...volatileChecks];
177
- for (const check of allChecks) {
178
- if (check.isStale()) {
179
- markStaleTraitOnly(tracker, check.trackerKey, check.logMessage);
180
- }
181
- }
182
- tracker.isAddressesStale = tracker.isIpAddressesStale || tracker.isNonIpAddressesStale;
183
- tracker.staleTier = computeStaleTier(tracker);
184
- tracker.isCacheStale =
185
- tracker.staleTier === IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE ||
186
- tracker.staleTier === IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE;
187
- if (tracker.staleTier !== IDENTITY_CACHE_STALENESS_TIER.NONE) {
188
- logging_helper_1.Logger.debug('IdentityCache - identity cache staleness check complete', {
189
- staleTier: tracker.staleTier,
190
- isCacheStale: tracker.isCacheStale,
191
- identityCacheStaleTracker: tracker,
192
- });
193
- }
194
- return tracker;
195
- }
196
- catch (error) {
197
- logging_helper_1.Logger.error('IdentityCache - error checking if identity cache is stale', {
198
- error,
199
- errorMessage: error instanceof Error ? error.message : String(error),
200
- });
201
- const errorTracker = createInitialTracker({}, {});
202
- errorTracker.isCacheStale = true;
203
- errorTracker.staleTier = IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE;
204
- return errorTracker;
205
- }
206
- };
207
- exports.isIdentityCacheStale = isIdentityCacheStale;
208
- const shouldSkipClickKey = (key) => key === 'googleClientInfos' || key.includes('CollectedAt');
209
- const extractFbclid = (fbc) => fbc?.split('.')?.[3];
210
- const isFbcStale = (cachedFbc, incomingFbc) => {
211
- if (incomingFbc && !cachedFbc) {
212
- return true;
213
- }
214
- if (!incomingFbc || !cachedFbc || incomingFbc === cachedFbc) {
215
- return false;
216
- }
217
- const incomingFbclid = extractFbclid(incomingFbc);
218
- const cachedFbclid = extractFbclid(cachedFbc);
219
- return !incomingFbclid || !cachedFbclid || incomingFbclid !== cachedFbclid;
220
- };
221
- const isGenericClickKeyStale = (cachedValue, incomingValue) => (Boolean(incomingValue) && !cachedValue) || incomingValue !== cachedValue;
222
- const isClickInfosStale = (cachedClick, incomingClick) => {
223
- try {
224
- const cleanedCachedClick = (0, at_shared_utils_1.removeEmptyFields)(cachedClick);
225
- const cleanedIncomingClick = (0, at_shared_utils_1.removeEmptyFields)(incomingClick);
226
- const incomingKeys = Object.keys(cleanedIncomingClick);
227
- const staleKeys = [];
228
- for (const key of incomingKeys) {
229
- if (shouldSkipClickKey(key)) {
230
- continue;
231
- }
232
- const cachedValue = cleanedCachedClick?.[key];
233
- const incomingValue = cleanedIncomingClick?.[key];
234
- const isStale = key === 'fbc'
235
- ? isFbcStale(cachedValue, incomingValue)
236
- : isGenericClickKeyStale(cachedValue, incomingValue);
237
- if (isStale) {
238
- staleKeys.push(key);
239
- }
240
- }
241
- if (staleKeys.length > 0) {
242
- logging_helper_1.Logger.debug('IdentityCache - identity cache miss - clickInfos changed', {
243
- cleanedCachedClick,
244
- cleanedIncomingClick,
245
- staleKeys,
246
- });
247
- }
248
- return staleKeys.length > 0;
249
- }
250
- catch (error) {
251
- logging_helper_1.Logger.error('IdentityCache - error checking if click infos are stale - assuming stale', {
252
- error,
253
- errorMessage: error instanceof Error ? error.message : String(error),
254
- });
255
- return true;
256
- }
257
- };
258
- exports.isClickInfosStale = isClickInfosStale;
259
- function extractStaleTraitNames(tracker) {
260
- const staleTraits = [];
261
- if (tracker.isIdentityIdStale)
262
- staleTraits.push('identityId');
263
- if (tracker.isUserIdsStale)
264
- staleTraits.push('userIds');
265
- if (tracker.isIdsStale)
266
- staleTraits.push('ids');
267
- if (tracker.isEmailsStale)
268
- staleTraits.push('emails');
269
- if (tracker.isPhonesStale)
270
- staleTraits.push('phones');
271
- if (tracker.isShopifyYIdsStale)
272
- staleTraits.push('shopifyYIds');
273
- if (tracker.isGendersStale)
274
- staleTraits.push('genders');
275
- if (tracker.isDobsStale)
276
- staleTraits.push('dobs');
277
- if (tracker.isAddressesStale)
278
- staleTraits.push('addresses');
279
- if (tracker.isClickInfosStale)
280
- staleTraits.push('clickInfos');
281
- if (tracker.isIpAddressStale)
282
- staleTraits.push('ipAddress');
283
- if (tracker.isUserAgentStale)
284
- staleTraits.push('userAgent');
285
- if (tracker.isThirdPartyContactsStale)
286
- staleTraits.push('thirdPartyContacts');
287
- return staleTraits;
288
- }
289
- exports.extractStaleTraitNames = extractStaleTraitNames;
290
- function mergeAndComputeIdentityStaleness(incomingIdentity, cachedOrResolvedIdentity) {
291
- const mergedTraits = (0, at_shared_utils_1.mergeIdentityTraits)(incomingIdentity.traits, cachedOrResolvedIdentity.traits);
292
- const mergedIdentity = { ...incomingIdentity, traits: mergedTraits };
293
- const staleTracker = (0, exports.isIdentityCacheStale)(cachedOrResolvedIdentity, incomingIdentity);
294
- const staleTier = staleTracker.staleTier;
295
- const isCacheStale = staleTier !== IDENTITY_CACHE_STALENESS_TIER.NONE &&
296
- staleTier !== IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY;
297
- const staleTraits = extractStaleTraitNames(staleTracker);
298
- return {
299
- mergedIdentity,
300
- staleTracker,
301
- staleTier,
302
- isCacheStale,
303
- staleTraits,
304
- };
305
- }
306
- exports.mergeAndComputeIdentityStaleness = mergeAndComputeIdentityStaleness;
307
- //# sourceMappingURL=identity-cache-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity-cache-helper.js","sourceRoot":"","sources":["../../../src/helpers/identity-cache-helper.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { AdClickInfo, EventIdentity, EventIdentityTraits } from '@adtrackify/at-tracking-event-types';
2
- export declare enum IDENTITY_CACHE_STALENESS_TIER {
3
- NONE = "none",
4
- VOLATILE_ONLY = "volatile_only",
5
- ADDRESS_UPDATE = "address_update",
6
- IDENTITY_STALE = "identity_stale"
7
- }
8
- export interface IdentityCacheStaleTracker {
9
- cachedTraits: EventIdentityTraits;
10
- incomingTraits: EventIdentityTraits;
11
- isIdentityIdStale: boolean;
12
- isUserIdsStale: boolean;
13
- isIdsStale: boolean;
14
- isEmailsStale: boolean;
15
- isPhonesStale: boolean;
16
- isShopifyYIdsStale: boolean;
17
- isGendersStale: boolean;
18
- isDobsStale: boolean;
19
- isAddressesStale: boolean;
20
- isIpAddressesStale: boolean;
21
- isNonIpAddressesStale: boolean;
22
- isClickInfosStale: boolean;
23
- isIpAddressStale: boolean;
24
- isUserAgentStale: boolean;
25
- isThirdPartyContactsStale: boolean;
26
- isCacheStale: boolean;
27
- staleTier: IDENTITY_CACHE_STALENESS_TIER;
28
- }
29
- export declare const isIdentityCacheStale: (identityCache: EventIdentity, incomingIdentity: EventIdentity) => IdentityCacheStaleTracker;
30
- export declare const isClickInfosStale: (cachedClick: AdClickInfo, incomingClick: AdClickInfo) => boolean;
31
- export declare function extractStaleTraitNames(tracker: IdentityCacheStaleTracker): string[];
32
- export interface MergeAndComputeIdentityStalenessResult {
33
- mergedIdentity: EventIdentity;
34
- staleTracker: IdentityCacheStaleTracker;
35
- staleTier: IDENTITY_CACHE_STALENESS_TIER;
36
- isCacheStale: boolean;
37
- staleTraits: string[];
38
- }
39
- export declare function mergeAndComputeIdentityStaleness(incomingIdentity: EventIdentity, cachedOrResolvedIdentity: EventIdentity): MergeAndComputeIdentityStalenessResult;