@adtrackify/at-service-common 4.0.5 → 4.0.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.
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.d.ts +1 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js +646 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js.map +1 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.d.ts +1 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +327 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +1 -0
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +277 -131
- package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +74 -80
- package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.d.ts +1 -0
- package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js +567 -0
- package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js.map +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/constants.d.ts +3 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/constants.js +7 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/constants.js.map +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.d.ts +14 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js +251 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js.map +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +24 -0
- package/dist/cjs/services/db/{identity-cache-dynamodb-service.js → identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js} +221 -343
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +22 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +375 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/index.d.ts +4 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js +21 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js.map +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.d.ts +12 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js +32 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js.map +1 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/types.d.ts +205 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js +35 -0
- package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -0
- package/dist/cjs/services/db/index.d.ts +4 -1
- package/dist/cjs/services/db/index.js +4 -1
- package/dist/cjs/services/db/index.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.d.ts +1 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js +644 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js.map +1 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.d.ts +1 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +325 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +1 -0
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +277 -131
- package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +74 -80
- package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
- package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.d.ts +1 -0
- package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js +565 -0
- package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js.map +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/constants.d.ts +3 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/constants.js +4 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/constants.js.map +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.d.ts +14 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js +234 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js.map +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +24 -0
- package/dist/esm/services/db/{identity-cache-dynamodb-service.js → identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js} +199 -321
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +22 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +368 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/index.d.ts +4 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/index.js +5 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/index.js.map +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/key-builders.d.ts +12 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/key-builders.js +24 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/key-builders.js.map +1 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/types.d.ts +205 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/types.js +32 -0
- package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -0
- package/dist/esm/services/db/index.d.ts +4 -1
- package/dist/esm/services/db/index.js +4 -1
- package/dist/esm/services/db/index.js.map +1 -1
- package/package.json +2 -1
- package/dist/cjs/services/db/identity-cache-dynamodb-service.d.ts +0 -44
- package/dist/cjs/services/db/identity-cache-dynamodb-service.js.map +0 -1
- package/dist/esm/services/db/identity-cache-dynamodb-service.d.ts +0 -44
- package/dist/esm/services/db/identity-cache-dynamodb-service.js.map +0 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { EventContext, EventIdentity, EventIdentityTraits, IdentityDynamoDbCache, IdentityMapDynamoDbCache, ForcePurgeDynamoDbCache, IdentityPointerRecord } from '@adtrackify/at-tracking-event-types';
|
|
2
|
+
import { IDENTITY_CACHE_STALENESS_TIER, IdentityCacheStaleTracker } from '../../../helpers/identity-cache-helper.js';
|
|
3
|
+
export type { IdentityDynamoDbCache, IdentityMapDynamoDbCache, ForcePurgeDynamoDbCache, IdentityPointerRecord };
|
|
4
|
+
export declare enum CACHE_WRITE_REASON {
|
|
5
|
+
CACHE_MISS = "cache_miss",
|
|
6
|
+
STALE_TRAITS = "stale_traits",
|
|
7
|
+
EMAIL_POINTER_DISCOVERY = "email_pointer_discovery",
|
|
8
|
+
ADDRESS_UPDATE = "address_update"
|
|
9
|
+
}
|
|
10
|
+
export interface IdentityCacheResult {
|
|
11
|
+
resolvedIdentity?: EventIdentity;
|
|
12
|
+
isCacheStale: boolean;
|
|
13
|
+
cachedIdentity?: EventIdentity;
|
|
14
|
+
staleTracker?: IdentityCacheStaleTracker;
|
|
15
|
+
writeReason?: CACHE_WRITE_REASON;
|
|
16
|
+
staleTier?: IDENTITY_CACHE_STALENESS_TIER;
|
|
17
|
+
skipNeptune?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare enum IDENTITY_CACHE_LOOKUP_OUTCOME {
|
|
20
|
+
INVALID_INPUT = "invalid_input",
|
|
21
|
+
PRIMARY_CACHE_MISS = "primary_cache_miss",
|
|
22
|
+
PRIMARY_CACHE_MISS_NO_RESPONSE = "primary_cache_miss_no_response",
|
|
23
|
+
PRIMARY_CACHE_HIT = "primary_cache_hit",
|
|
24
|
+
PRIMARY_CACHE_STALE = "primary_cache_stale",
|
|
25
|
+
EMAIL_POINTER_DISCOVERY = "email_pointer_discovery",
|
|
26
|
+
EMAIL_POINTER_MISS = "email_pointer_miss",
|
|
27
|
+
FAILED = "failed"
|
|
28
|
+
}
|
|
29
|
+
export interface IdentityCacheLookupSummary {
|
|
30
|
+
outcome: IDENTITY_CACHE_LOOKUP_OUTCOME;
|
|
31
|
+
pixelId: string;
|
|
32
|
+
identityId?: string;
|
|
33
|
+
didLookupByIdentityId: boolean;
|
|
34
|
+
didLookupByEmail: boolean;
|
|
35
|
+
isDeepEqual?: boolean;
|
|
36
|
+
isCacheStale: boolean;
|
|
37
|
+
staleTier?: IDENTITY_CACHE_STALENESS_TIER;
|
|
38
|
+
staleTraits: string[];
|
|
39
|
+
writeReason?: CACHE_WRITE_REASON;
|
|
40
|
+
skipNeptune?: boolean;
|
|
41
|
+
cachedIdentity?: EventIdentity;
|
|
42
|
+
incomingIdentity?: EventIdentity;
|
|
43
|
+
mergedIdentity?: EventIdentity;
|
|
44
|
+
resolvedIdentity?: EventIdentity;
|
|
45
|
+
discoveredIdentityId?: string;
|
|
46
|
+
incomingClick?: EventIdentityTraits['click'] | null;
|
|
47
|
+
cachedClick?: EventIdentityTraits['click'] | null;
|
|
48
|
+
mergedClick?: EventIdentityTraits['click'] | null;
|
|
49
|
+
errorMessage?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface IdentityCacheLookupResult {
|
|
52
|
+
cacheResult: IdentityCacheResult;
|
|
53
|
+
summary: IdentityCacheLookupSummary;
|
|
54
|
+
}
|
|
55
|
+
export interface IdentityCacheLookupSummaryInput {
|
|
56
|
+
outcome: IDENTITY_CACHE_LOOKUP_OUTCOME;
|
|
57
|
+
pixelId: string;
|
|
58
|
+
identityId?: string;
|
|
59
|
+
didLookupByIdentityId?: boolean;
|
|
60
|
+
didLookupByEmail?: boolean;
|
|
61
|
+
isDeepEqual?: boolean;
|
|
62
|
+
isCacheStale?: boolean;
|
|
63
|
+
staleTier?: IDENTITY_CACHE_STALENESS_TIER;
|
|
64
|
+
staleTraits?: string[];
|
|
65
|
+
writeReason?: CACHE_WRITE_REASON;
|
|
66
|
+
skipNeptune?: boolean;
|
|
67
|
+
cachedIdentity?: EventIdentity;
|
|
68
|
+
incomingIdentity?: EventIdentity;
|
|
69
|
+
mergedIdentity?: EventIdentity;
|
|
70
|
+
resolvedIdentity?: EventIdentity;
|
|
71
|
+
discoveredIdentityId?: string;
|
|
72
|
+
errorMessage?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface IdentityCacheLookupState {
|
|
75
|
+
pixelId: string;
|
|
76
|
+
incomingIdentity: EventIdentity;
|
|
77
|
+
cachedIdentityResponse?: IdentityDynamoDbCache;
|
|
78
|
+
cachedIdentity?: EventIdentity;
|
|
79
|
+
mergedIdentity?: EventIdentity;
|
|
80
|
+
resolvedIdentity?: EventIdentity;
|
|
81
|
+
identityStaleCacheTracker?: IdentityCacheStaleTracker;
|
|
82
|
+
discoveredIdentityId?: string;
|
|
83
|
+
didLookupByIdentityId: boolean;
|
|
84
|
+
didLookupByEmail: boolean;
|
|
85
|
+
isDeepEqual?: boolean;
|
|
86
|
+
isCacheStale: boolean;
|
|
87
|
+
staleTier?: IDENTITY_CACHE_STALENESS_TIER;
|
|
88
|
+
writeReason?: CACHE_WRITE_REASON;
|
|
89
|
+
skipNeptune?: boolean;
|
|
90
|
+
staleTraits: string[];
|
|
91
|
+
}
|
|
92
|
+
export interface IdentityCacheLookupStateSummaryInput extends Partial<IdentityCacheLookupSummaryInput> {
|
|
93
|
+
outcome: IDENTITY_CACHE_LOOKUP_OUTCOME;
|
|
94
|
+
}
|
|
95
|
+
export declare enum IDENTITY_CACHE_WITH_CACHING_OUTCOME {
|
|
96
|
+
INVALID_INPUT = "invalid_input",
|
|
97
|
+
FRESH_CACHE_HIT = "fresh_cache_hit",
|
|
98
|
+
VOLATILE_ONLY_CACHE_HIT = "volatile_only_cache_hit",
|
|
99
|
+
ADDRESS_UPDATE_WRITE = "address_update_write",
|
|
100
|
+
NEPTUNE_FETCH = "neptune_fetch",
|
|
101
|
+
NEPTUNE_WRITE_BACK = "neptune_write_back",
|
|
102
|
+
NEPTUNE_SKIP_WRITE = "neptune_skip_write",
|
|
103
|
+
NEPTUNE_RESOLUTION_FAILED = "neptune_resolution_failed",
|
|
104
|
+
FALLBACK_INCOMING = "fallback_incoming",
|
|
105
|
+
FAILED = "failed"
|
|
106
|
+
}
|
|
107
|
+
export interface IdentityCacheTraitChange {
|
|
108
|
+
cached?: unknown;
|
|
109
|
+
resolved?: unknown;
|
|
110
|
+
}
|
|
111
|
+
export interface IdentityCacheTraitChanges {
|
|
112
|
+
[traitName: string]: IdentityCacheTraitChange;
|
|
113
|
+
}
|
|
114
|
+
export interface IdentityCacheWithCachingSummary {
|
|
115
|
+
outcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME;
|
|
116
|
+
pixelId: string;
|
|
117
|
+
identityId?: string;
|
|
118
|
+
writeReason?: CACHE_WRITE_REASON;
|
|
119
|
+
staleTier?: IDENTITY_CACHE_STALENESS_TIER;
|
|
120
|
+
staleTraits: string[];
|
|
121
|
+
didReadCache: boolean;
|
|
122
|
+
didCallNeptune: boolean;
|
|
123
|
+
didWriteCache: boolean;
|
|
124
|
+
didSkipNeptune: boolean;
|
|
125
|
+
didFallbackToIncoming: boolean;
|
|
126
|
+
cachedIdentity?: EventIdentity;
|
|
127
|
+
incomingIdentity?: EventIdentity;
|
|
128
|
+
identityForNeptune?: EventIdentity;
|
|
129
|
+
resolvedIdentity?: EventIdentity;
|
|
130
|
+
neptuneIdentity?: EventIdentity;
|
|
131
|
+
incomingClick?: EventIdentityTraits['click'] | null;
|
|
132
|
+
cachedClick?: EventIdentityTraits['click'] | null;
|
|
133
|
+
resolvedClick?: EventIdentityTraits['click'] | null;
|
|
134
|
+
neptuneClick?: EventIdentityTraits['click'] | null;
|
|
135
|
+
traitChanges?: IdentityCacheTraitChanges;
|
|
136
|
+
hasDiscoveredIdentityId?: boolean;
|
|
137
|
+
lookupSummary?: IdentityCacheLookupSummary;
|
|
138
|
+
errorMessage?: string;
|
|
139
|
+
}
|
|
140
|
+
export interface IdentityCacheWithCachingResult {
|
|
141
|
+
identity?: EventIdentity;
|
|
142
|
+
summary: IdentityCacheWithCachingSummary;
|
|
143
|
+
}
|
|
144
|
+
export interface IdentityCacheWithCachingSummaryInput {
|
|
145
|
+
outcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME;
|
|
146
|
+
pixelId: string;
|
|
147
|
+
identityId?: string;
|
|
148
|
+
writeReason?: CACHE_WRITE_REASON;
|
|
149
|
+
staleTier?: IDENTITY_CACHE_STALENESS_TIER;
|
|
150
|
+
staleTraits?: string[];
|
|
151
|
+
didReadCache?: boolean;
|
|
152
|
+
didCallNeptune?: boolean;
|
|
153
|
+
didWriteCache?: boolean;
|
|
154
|
+
didSkipNeptune?: boolean;
|
|
155
|
+
didFallbackToIncoming?: boolean;
|
|
156
|
+
cachedIdentity?: EventIdentity;
|
|
157
|
+
incomingIdentity?: EventIdentity;
|
|
158
|
+
identityForNeptune?: EventIdentity;
|
|
159
|
+
resolvedIdentity?: EventIdentity;
|
|
160
|
+
neptuneIdentity?: EventIdentity;
|
|
161
|
+
traitChanges?: IdentityCacheTraitChanges;
|
|
162
|
+
hasDiscoveredIdentityId?: boolean;
|
|
163
|
+
lookupSummary?: IdentityCacheLookupSummary;
|
|
164
|
+
errorMessage?: string;
|
|
165
|
+
}
|
|
166
|
+
export interface IdentityCacheWithCachingState {
|
|
167
|
+
pixelId: string;
|
|
168
|
+
incomingIdentity?: EventIdentity;
|
|
169
|
+
identifyPrivateLambdaArn: string;
|
|
170
|
+
cacheResponse?: IdentityCacheResult;
|
|
171
|
+
lookupSummary?: IdentityCacheLookupSummary;
|
|
172
|
+
resolvedIdentity?: EventIdentity;
|
|
173
|
+
cachedIdentity?: EventIdentity;
|
|
174
|
+
identityForNeptune?: EventIdentity;
|
|
175
|
+
neptuneIdentity?: EventIdentity;
|
|
176
|
+
staleTraits: string[];
|
|
177
|
+
didReadCache: boolean;
|
|
178
|
+
didCallNeptune: boolean;
|
|
179
|
+
didWriteCache: boolean;
|
|
180
|
+
didSkipNeptune: boolean;
|
|
181
|
+
didFallbackToIncoming: boolean;
|
|
182
|
+
}
|
|
183
|
+
export interface IdentityCacheWithCachingStateSummaryInput extends Partial<IdentityCacheWithCachingSummaryInput> {
|
|
184
|
+
outcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME;
|
|
185
|
+
}
|
|
186
|
+
export interface IdentityWithCachingOptions {
|
|
187
|
+
skipCacheWrite?: boolean;
|
|
188
|
+
}
|
|
189
|
+
export interface EnqueueAsyncIdentityUpdateRequest {
|
|
190
|
+
pixelId: string;
|
|
191
|
+
identity: EventIdentity;
|
|
192
|
+
context: EventContext;
|
|
193
|
+
reason: string;
|
|
194
|
+
eventId?: string;
|
|
195
|
+
}
|
|
196
|
+
export interface IdentifyAsyncUpdateMessage {
|
|
197
|
+
pixelId: string;
|
|
198
|
+
incomingIdentityId: string;
|
|
199
|
+
context: EventContext;
|
|
200
|
+
}
|
|
201
|
+
export interface EnqueueAsyncIdentityUpdateResult {
|
|
202
|
+
success: boolean;
|
|
203
|
+
messageId?: string;
|
|
204
|
+
error?: string;
|
|
205
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export var CACHE_WRITE_REASON;
|
|
2
|
+
(function (CACHE_WRITE_REASON) {
|
|
3
|
+
CACHE_WRITE_REASON["CACHE_MISS"] = "cache_miss";
|
|
4
|
+
CACHE_WRITE_REASON["STALE_TRAITS"] = "stale_traits";
|
|
5
|
+
CACHE_WRITE_REASON["EMAIL_POINTER_DISCOVERY"] = "email_pointer_discovery";
|
|
6
|
+
CACHE_WRITE_REASON["ADDRESS_UPDATE"] = "address_update";
|
|
7
|
+
})(CACHE_WRITE_REASON || (CACHE_WRITE_REASON = {}));
|
|
8
|
+
export var IDENTITY_CACHE_LOOKUP_OUTCOME;
|
|
9
|
+
(function (IDENTITY_CACHE_LOOKUP_OUTCOME) {
|
|
10
|
+
IDENTITY_CACHE_LOOKUP_OUTCOME["INVALID_INPUT"] = "invalid_input";
|
|
11
|
+
IDENTITY_CACHE_LOOKUP_OUTCOME["PRIMARY_CACHE_MISS"] = "primary_cache_miss";
|
|
12
|
+
IDENTITY_CACHE_LOOKUP_OUTCOME["PRIMARY_CACHE_MISS_NO_RESPONSE"] = "primary_cache_miss_no_response";
|
|
13
|
+
IDENTITY_CACHE_LOOKUP_OUTCOME["PRIMARY_CACHE_HIT"] = "primary_cache_hit";
|
|
14
|
+
IDENTITY_CACHE_LOOKUP_OUTCOME["PRIMARY_CACHE_STALE"] = "primary_cache_stale";
|
|
15
|
+
IDENTITY_CACHE_LOOKUP_OUTCOME["EMAIL_POINTER_DISCOVERY"] = "email_pointer_discovery";
|
|
16
|
+
IDENTITY_CACHE_LOOKUP_OUTCOME["EMAIL_POINTER_MISS"] = "email_pointer_miss";
|
|
17
|
+
IDENTITY_CACHE_LOOKUP_OUTCOME["FAILED"] = "failed";
|
|
18
|
+
})(IDENTITY_CACHE_LOOKUP_OUTCOME || (IDENTITY_CACHE_LOOKUP_OUTCOME = {}));
|
|
19
|
+
export var IDENTITY_CACHE_WITH_CACHING_OUTCOME;
|
|
20
|
+
(function (IDENTITY_CACHE_WITH_CACHING_OUTCOME) {
|
|
21
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["INVALID_INPUT"] = "invalid_input";
|
|
22
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["FRESH_CACHE_HIT"] = "fresh_cache_hit";
|
|
23
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["VOLATILE_ONLY_CACHE_HIT"] = "volatile_only_cache_hit";
|
|
24
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["ADDRESS_UPDATE_WRITE"] = "address_update_write";
|
|
25
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["NEPTUNE_FETCH"] = "neptune_fetch";
|
|
26
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["NEPTUNE_WRITE_BACK"] = "neptune_write_back";
|
|
27
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["NEPTUNE_SKIP_WRITE"] = "neptune_skip_write";
|
|
28
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["NEPTUNE_RESOLUTION_FAILED"] = "neptune_resolution_failed";
|
|
29
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["FALLBACK_INCOMING"] = "fallback_incoming";
|
|
30
|
+
IDENTITY_CACHE_WITH_CACHING_OUTCOME["FAILED"] = "failed";
|
|
31
|
+
})(IDENTITY_CACHE_WITH_CACHING_OUTCOME || (IDENTITY_CACHE_WITH_CACHING_OUTCOME = {}));
|
|
32
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/services/db/identity-cache-dynamodb-service/types.ts"],"names":[],"mappings":"AAaA,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,mDAA6B,CAAA;IAC7B,yEAAmD,CAAA;IACnD,uDAAiC,CAAA;AACnC,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAYD,MAAM,CAAN,IAAY,6BASX;AATD,WAAY,6BAA6B;IACvC,gEAA+B,CAAA;IAC/B,0EAAyC,CAAA;IACzC,kGAAiE,CAAA;IACjE,wEAAuC,CAAA;IACvC,4EAA2C,CAAA;IAC3C,oFAAmD,CAAA;IACnD,0EAAyC,CAAA;IACzC,kDAAiB,CAAA;AACnB,CAAC,EATW,6BAA6B,KAA7B,6BAA6B,QASxC;AAyED,MAAM,CAAN,IAAY,mCAWX;AAXD,WAAY,mCAAmC;IAC7C,sEAA+B,CAAA;IAC/B,0EAAmC,CAAA;IACnC,0FAAmD,CAAA;IACnD,oFAA6C,CAAA;IAC7C,sEAA+B,CAAA;IAC/B,gFAAyC,CAAA;IACzC,gFAAyC,CAAA;IACzC,8FAAuD,CAAA;IACvD,8EAAuC,CAAA;IACvC,wDAAiB,CAAA;AACnB,CAAC,EAXW,mCAAmC,KAAnC,mCAAmC,QAW9C"}
|
|
@@ -8,7 +8,10 @@ export * from './tracking-events-db-service.js';
|
|
|
8
8
|
export * from './shopify-products-cache-db-service.js';
|
|
9
9
|
export * from './shopify-app-installs-db-service.js';
|
|
10
10
|
export * from './identity-cache-db-service.js';
|
|
11
|
-
export * from './identity-cache-dynamodb-service.js';
|
|
11
|
+
export * from './identity-cache-dynamodb-service/types.js';
|
|
12
|
+
export * from './identity-cache-dynamodb-service/key-builders.js';
|
|
13
|
+
export * from './identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js';
|
|
14
|
+
export * from './identity-cache-dynamodb-service/identity-gateway-service.js';
|
|
12
15
|
export * from './currency-exchange-rates-db-service.js';
|
|
13
16
|
export * from './accounts-db-service.js';
|
|
14
17
|
export * from './subscriptions-db-service.js';
|
|
@@ -8,7 +8,10 @@ export * from './tracking-events-db-service.js';
|
|
|
8
8
|
export * from './shopify-products-cache-db-service.js';
|
|
9
9
|
export * from './shopify-app-installs-db-service.js';
|
|
10
10
|
export * from './identity-cache-db-service.js';
|
|
11
|
-
export * from './identity-cache-dynamodb-service.js';
|
|
11
|
+
export * from './identity-cache-dynamodb-service/types.js';
|
|
12
|
+
export * from './identity-cache-dynamodb-service/key-builders.js';
|
|
13
|
+
export * from './identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js';
|
|
14
|
+
export * from './identity-cache-dynamodb-service/identity-gateway-service.js';
|
|
12
15
|
export * from './currency-exchange-rates-db-service.js';
|
|
13
16
|
export * from './accounts-db-service.js';
|
|
14
17
|
export * from './subscriptions-db-service.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/db/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/db/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mDAAmD,CAAC;AAClE,cAAc,yEAAyE,CAAC;AACxF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,yCAAyC,CAAC;AACxD,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adtrackify/at-service-common",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.7",
|
|
4
4
|
"description": "",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/*"
|
|
7
7
|
],
|
|
8
8
|
"main": "./dist/cjs/index.js",
|
|
9
9
|
"module": "./dist/esm/index.js",
|
|
10
|
+
"types": "./dist/cjs/index.d.ts",
|
|
10
11
|
"type": "module",
|
|
11
12
|
"engines": {
|
|
12
13
|
"node": ">=24.0.0",
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { EventIdentity, IdentityDynamoDbCache, IdentityMapDynamoDbCache, ForcePurgeDynamoDbCache, IdentityPointerRecord } from '@adtrackify/at-tracking-event-types';
|
|
2
|
-
export type { IdentityDynamoDbCache, IdentityMapDynamoDbCache, ForcePurgeDynamoDbCache, IdentityPointerRecord };
|
|
3
|
-
import { IdentityCacheStaleTracker, IDENTITY_CACHE_STALENESS_TIER } from '../../helpers/identity-cache-helper.js';
|
|
4
|
-
export declare enum CACHE_WRITE_REASON {
|
|
5
|
-
CACHE_MISS = "cache_miss",
|
|
6
|
-
STALE_TRAITS = "stale_traits",
|
|
7
|
-
EMAIL_POINTER_DISCOVERY = "email_pointer_discovery",
|
|
8
|
-
ADDRESS_UPDATE = "address_update"
|
|
9
|
-
}
|
|
10
|
-
interface IdentityCacheResult {
|
|
11
|
-
resolvedIdentity?: EventIdentity;
|
|
12
|
-
isCacheStale: boolean;
|
|
13
|
-
cachedIdentity?: EventIdentity;
|
|
14
|
-
staleTracker?: IdentityCacheStaleTracker;
|
|
15
|
-
writeReason?: CACHE_WRITE_REASON;
|
|
16
|
-
staleTier?: IDENTITY_CACHE_STALENESS_TIER;
|
|
17
|
-
skipNeptune?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export declare class IdentityCacheDynamoDbService {
|
|
20
|
-
private static lambdaInvokeClient;
|
|
21
|
-
private static getLambdaInvokeClient;
|
|
22
|
-
static getIdentityWithCaching: (pixelId: string, incomingIdentity: EventIdentity, identifyPrivateLambdaArn: string) => Promise<EventIdentity | undefined>;
|
|
23
|
-
static getIdentityFromCache: (pixelId: string, incomingIdentity: EventIdentity) => Promise<IdentityCacheResult>;
|
|
24
|
-
static getIdentityMap: (pixelId: string, identityId: string) => Promise<IdentityMapDynamoDbCache | undefined>;
|
|
25
|
-
static getForcePurgeFlag: (pixelId: string, identityId: string) => Promise<boolean>;
|
|
26
|
-
static updateIdentityCache: (pixelId: string, response: EventIdentity) => Promise<void>;
|
|
27
|
-
static putIdentityMap: (pixelId: string, identityId: string, linkedIdentities: string[]) => Promise<void>;
|
|
28
|
-
static setForcePurgeFlag: (pixelId: string, identityId: string, ttlSeconds?: number) => Promise<void>;
|
|
29
|
-
static deleteIdentityCache: (pixelId: string, incomingIdentity: EventIdentity, resolvedIdentity: EventIdentity) => Promise<void>;
|
|
30
|
-
static deleteIdentityMap: (pixelId: string, identityId: string) => Promise<void>;
|
|
31
|
-
static deleteForcePurgeFlag: (pixelId: string, identityId: string) => Promise<void>;
|
|
32
|
-
private static readFromCache;
|
|
33
|
-
private static resolveFromNeptune;
|
|
34
|
-
private static writeBackToCache;
|
|
35
|
-
private static safeWriteBackToCache;
|
|
36
|
-
private static getIdentityIdFromEmailLookup;
|
|
37
|
-
private static getItemByPk;
|
|
38
|
-
private static queryByGsi1;
|
|
39
|
-
private static safeBatchDelete;
|
|
40
|
-
private static chunkArray;
|
|
41
|
-
private static stripAddressTimestamps;
|
|
42
|
-
private static extractStaleTraitNames;
|
|
43
|
-
private static computeTraitChanges;
|
|
44
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity-cache-dynamodb-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-dynamodb-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { EventIdentity, IdentityDynamoDbCache, IdentityMapDynamoDbCache, ForcePurgeDynamoDbCache, IdentityPointerRecord } from '@adtrackify/at-tracking-event-types';
|
|
2
|
-
export type { IdentityDynamoDbCache, IdentityMapDynamoDbCache, ForcePurgeDynamoDbCache, IdentityPointerRecord };
|
|
3
|
-
import { IdentityCacheStaleTracker, IDENTITY_CACHE_STALENESS_TIER } from '../../helpers/identity-cache-helper.js';
|
|
4
|
-
export declare enum CACHE_WRITE_REASON {
|
|
5
|
-
CACHE_MISS = "cache_miss",
|
|
6
|
-
STALE_TRAITS = "stale_traits",
|
|
7
|
-
EMAIL_POINTER_DISCOVERY = "email_pointer_discovery",
|
|
8
|
-
ADDRESS_UPDATE = "address_update"
|
|
9
|
-
}
|
|
10
|
-
interface IdentityCacheResult {
|
|
11
|
-
resolvedIdentity?: EventIdentity;
|
|
12
|
-
isCacheStale: boolean;
|
|
13
|
-
cachedIdentity?: EventIdentity;
|
|
14
|
-
staleTracker?: IdentityCacheStaleTracker;
|
|
15
|
-
writeReason?: CACHE_WRITE_REASON;
|
|
16
|
-
staleTier?: IDENTITY_CACHE_STALENESS_TIER;
|
|
17
|
-
skipNeptune?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export declare class IdentityCacheDynamoDbService {
|
|
20
|
-
private static lambdaInvokeClient;
|
|
21
|
-
private static getLambdaInvokeClient;
|
|
22
|
-
static getIdentityWithCaching: (pixelId: string, incomingIdentity: EventIdentity, identifyPrivateLambdaArn: string) => Promise<EventIdentity | undefined>;
|
|
23
|
-
static getIdentityFromCache: (pixelId: string, incomingIdentity: EventIdentity) => Promise<IdentityCacheResult>;
|
|
24
|
-
static getIdentityMap: (pixelId: string, identityId: string) => Promise<IdentityMapDynamoDbCache | undefined>;
|
|
25
|
-
static getForcePurgeFlag: (pixelId: string, identityId: string) => Promise<boolean>;
|
|
26
|
-
static updateIdentityCache: (pixelId: string, response: EventIdentity) => Promise<void>;
|
|
27
|
-
static putIdentityMap: (pixelId: string, identityId: string, linkedIdentities: string[]) => Promise<void>;
|
|
28
|
-
static setForcePurgeFlag: (pixelId: string, identityId: string, ttlSeconds?: number) => Promise<void>;
|
|
29
|
-
static deleteIdentityCache: (pixelId: string, incomingIdentity: EventIdentity, resolvedIdentity: EventIdentity) => Promise<void>;
|
|
30
|
-
static deleteIdentityMap: (pixelId: string, identityId: string) => Promise<void>;
|
|
31
|
-
static deleteForcePurgeFlag: (pixelId: string, identityId: string) => Promise<void>;
|
|
32
|
-
private static readFromCache;
|
|
33
|
-
private static resolveFromNeptune;
|
|
34
|
-
private static writeBackToCache;
|
|
35
|
-
private static safeWriteBackToCache;
|
|
36
|
-
private static getIdentityIdFromEmailLookup;
|
|
37
|
-
private static getItemByPk;
|
|
38
|
-
private static queryByGsi1;
|
|
39
|
-
private static safeBatchDelete;
|
|
40
|
-
private static chunkArray;
|
|
41
|
-
private static stripAddressTimestamps;
|
|
42
|
-
private static extractStaleTraitNames;
|
|
43
|
-
private static computeTraitChanges;
|
|
44
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity-cache-dynamodb-service.js","sourceRoot":"","sources":["../../../../src/services/db/identity-cache-dynamodb-service.ts"],"names":[],"mappings":"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"}
|