@adtrackify/at-service-common 4.0.14 → 4.0.16

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 (61) hide show
  1. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +29 -25
  2. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  3. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +138 -0
  4. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -0
  5. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +153 -0
  6. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -0
  7. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.d.ts +1 -0
  8. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js +72 -0
  9. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -0
  10. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.d.ts +1 -0
  11. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +89 -0
  12. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -0
  13. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.d.ts +1 -0
  14. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +136 -0
  15. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -0
  16. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.d.ts +1 -0
  17. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +224 -0
  18. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -0
  19. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.d.ts +28 -0
  20. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js +90 -0
  21. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -0
  22. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +11 -12
  23. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +15 -18
  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 +2 -4
  26. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  27. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +29 -25
  28. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  29. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.d.ts +1 -0
  30. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +136 -0
  31. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -0
  32. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.d.ts +1 -0
  33. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +151 -0
  34. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -0
  35. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.d.ts +1 -0
  36. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js +70 -0
  37. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -0
  38. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.d.ts +1 -0
  39. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +87 -0
  40. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -0
  41. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.d.ts +1 -0
  42. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +134 -0
  43. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -0
  44. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.d.ts +1 -0
  45. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +222 -0
  46. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -0
  47. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.d.ts +28 -0
  48. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js +83 -0
  49. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -0
  50. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +11 -12
  51. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +15 -18
  52. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  53. package/dist/esm/services/db/identity-cache-dynamodb-service/types.d.ts +2 -4
  54. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  55. package/package.json +2 -2
  56. package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js +0 -1244
  57. package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js.map +0 -1
  58. package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js +0 -1242
  59. package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js.map +0 -1
  60. /package/dist/cjs/__tests__/identity-cache/{identity-gateway-service.spec.d.ts → identity-gateway-cache-hit.spec.d.ts} +0 -0
  61. /package/dist/{esm/__tests__/identity-cache/identity-gateway-service.spec.d.ts → cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-gateway-enqueue-async.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/identity-cache/identity-gateway-enqueue-async.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ import { createService, createServiceWithSqs, createCachedIdentity, mockGetIdentity, mockBuildAndSendMessage, mockedDynamoDbClient, resetAllMocks, TEST_PIXEL_ID, IDENTITY_CACHE_WITH_CACHING_OUTCOME, } from './identity-gateway-test-setup.js';
2
+ describe('IdentityGatewayService stale cache scenarios', () => {
3
+ const pixelId = TEST_PIXEL_ID;
4
+ beforeEach(() => {
5
+ resetAllMocks();
6
+ });
7
+ describe('identity-defining trait changes → Neptune', () => {
8
+ it('should call Neptune when new emails are added', async () => {
9
+ const service = createService();
10
+ const cachedResponse = createCachedIdentity(pixelId, 'staleness-compute', {
11
+ emails: ['old@email.com'],
12
+ });
13
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
14
+ mockGetIdentity.mockResolvedValueOnce({
15
+ identityId: 'staleness-compute',
16
+ traits: { emails: ['old@email.com', 'new@email.com'] },
17
+ });
18
+ const incomingIdentity = {
19
+ identityId: 'staleness-compute',
20
+ traits: {
21
+ emails: ['old@email.com', 'new@email.com'],
22
+ },
23
+ };
24
+ const result = await service.resolveIdentityWithCaching(pixelId, incomingIdentity);
25
+ expect(result.didCallNeptune).toBe(true);
26
+ expect(result.stalenessResult?.staleTraits).toContain('emails');
27
+ });
28
+ it('should not skip Neptune for IDENTITY_STALE tier', async () => {
29
+ const service = createService();
30
+ const cachedResponse = createCachedIdentity(pixelId, 'call-neptune', {
31
+ emails: ['old@email.com'],
32
+ });
33
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
34
+ mockGetIdentity.mockResolvedValueOnce({
35
+ identityId: 'call-neptune',
36
+ traits: { emails: ['old@email.com', 'new@email.com'] },
37
+ });
38
+ const incomingIdentity = {
39
+ identityId: 'call-neptune',
40
+ traits: {
41
+ emails: ['old@email.com', 'new@email.com'],
42
+ },
43
+ };
44
+ const result = await service.resolveIdentityWithCaching(pixelId, incomingIdentity);
45
+ expect(result.didSkipNeptune).toBe(false);
46
+ expect(result.didCallNeptune).toBe(true);
47
+ expect(mockGetIdentity).toHaveBeenCalled();
48
+ });
49
+ });
50
+ describe('Neptune resolution success', () => {
51
+ it('should return NEPTUNE_RESOLVED outcome', async () => {
52
+ const service = createService();
53
+ const cachedResponse = createCachedIdentity(pixelId, 'stale-reason', {
54
+ emails: ['old@email.com'],
55
+ });
56
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
57
+ mockGetIdentity.mockResolvedValueOnce({
58
+ identityId: 'stale-reason',
59
+ traits: { emails: ['old@email.com', 'new@email.com'] },
60
+ });
61
+ const incomingIdentity = {
62
+ identityId: 'stale-reason',
63
+ traits: {
64
+ emails: ['old@email.com', 'new@email.com'],
65
+ },
66
+ };
67
+ const result = await service.resolveIdentityWithCaching(pixelId, incomingIdentity);
68
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED);
69
+ });
70
+ it('should compute traitChanges between cached and Neptune identity', async () => {
71
+ const service = createService();
72
+ const cachedResponse = createCachedIdentity(pixelId, 'trait-changes', {
73
+ emails: ['old@email.com'],
74
+ phones: ['555-old'],
75
+ });
76
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
77
+ mockGetIdentity.mockResolvedValueOnce({
78
+ identityId: 'trait-changes',
79
+ traits: {
80
+ emails: ['old@email.com', 'new@email.com'],
81
+ phones: ['555-old', '555-new'],
82
+ },
83
+ });
84
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'trait-changes', traits: { emails: ['old@email.com', 'new@email.com'] } });
85
+ expect(result.traitChanges).toBeDefined();
86
+ expect(result.traitChanges?.emails).toBeDefined();
87
+ });
88
+ it('should not write to cache (identity service handles writes)', async () => {
89
+ const service = createService();
90
+ const cachedResponse = createCachedIdentity(pixelId, 'neptune-write', {
91
+ emails: ['old@email.com'],
92
+ });
93
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
94
+ mockGetIdentity.mockResolvedValueOnce({
95
+ identityId: 'neptune-write',
96
+ traits: {
97
+ emails: ['old@email.com', 'new@email.com'],
98
+ phones: ['555-neptune'],
99
+ },
100
+ });
101
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'neptune-write', traits: { emails: ['old@email.com', 'new@email.com'] } });
102
+ expect(result.didWriteCache).toBe(false);
103
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED);
104
+ expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
105
+ });
106
+ it('should still return Neptune identity when it matches cached', async () => {
107
+ const service = createService();
108
+ const cachedResponse = createCachedIdentity(pixelId, 'no-changes', {
109
+ emails: ['same@email.com'],
110
+ });
111
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
112
+ mockGetIdentity.mockResolvedValueOnce({
113
+ identityId: 'no-changes',
114
+ traits: { emails: ['same@email.com'] },
115
+ });
116
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'no-changes', traits: { emails: ['same@email.com', 'thought-new@email.com'] } });
117
+ expect(result.didCallNeptune).toBe(true);
118
+ expect(result.didWriteCache).toBe(false);
119
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED);
120
+ });
121
+ it('should strip address timestamps when comparing Neptune result', async () => {
122
+ const service = createService();
123
+ const now = Date.now();
124
+ const cachedResponse = {
125
+ pk: `identity#${pixelId}#addr-timestamp`,
126
+ pixelId,
127
+ identityId: 'addr-timestamp',
128
+ response: {
129
+ identityId: 'addr-timestamp',
130
+ traits: {
131
+ emails: ['test@email.com'],
132
+ addresses: [{ city: 'NYC', cra: now - 1000, upa: now - 500 }],
133
+ },
134
+ },
135
+ updatedAt: new Date().toISOString(),
136
+ };
137
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
138
+ mockGetIdentity.mockResolvedValueOnce({
139
+ identityId: 'addr-timestamp',
140
+ traits: {
141
+ emails: ['test@email.com'],
142
+ addresses: [{ city: 'NYC', cra: now, upa: now }],
143
+ },
144
+ });
145
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'addr-timestamp', traits: { emails: ['test@email.com', 'new@email.com'] } });
146
+ expect(result.didWriteCache).toBe(false);
147
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED);
148
+ });
149
+ });
150
+ describe('Neptune resolution failure', () => {
151
+ it('should return NEPTUNE_RESOLUTION_FAILED outcome', async () => {
152
+ const service = createService();
153
+ const cachedResponse = createCachedIdentity(pixelId, 'neptune-throws', {
154
+ emails: ['old@email.com'],
155
+ });
156
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
157
+ mockGetIdentity.mockRejectedValueOnce(new Error('Neptune invocation failed'));
158
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'neptune-throws', traits: { emails: ['old@email.com', 'new@email.com'] } });
159
+ expect(result.didCallNeptune).toBe(true);
160
+ expect(result.didWriteCache).toBe(false);
161
+ expect(result.outcome).toBe(IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLUTION_FAILED);
162
+ });
163
+ it('should return merged identity on Neptune failure (fail-open)', async () => {
164
+ const service = createService();
165
+ const cachedResponse = createCachedIdentity(pixelId, 'neptune-throws', {
166
+ emails: ['old@email.com'],
167
+ });
168
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
169
+ mockGetIdentity.mockRejectedValueOnce(new Error('Neptune invocation failed'));
170
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'neptune-throws', traits: { emails: ['old@email.com', 'new@email.com'] } });
171
+ expect(result.identity).toBeDefined();
172
+ expect(result.identity?.identityId).toBe('neptune-throws');
173
+ expect(result.identity?.traits?.emails).toEqual(['old@email.com', 'new@email.com']);
174
+ });
175
+ it('should not write to cache when Neptune fails', async () => {
176
+ const service = createService();
177
+ const cachedResponse = createCachedIdentity(pixelId, 'no-write-fail', {
178
+ emails: ['test@email.com'],
179
+ });
180
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
181
+ mockGetIdentity.mockRejectedValueOnce(new Error('Network error'));
182
+ const result = await service.resolveIdentityWithCaching(pixelId, { identityId: 'no-write-fail', traits: { emails: ['test@email.com', 'extra@email.com'] } });
183
+ expect(result.didWriteCache).toBe(false);
184
+ expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
185
+ });
186
+ });
187
+ describe('address update path', () => {
188
+ it('should enqueue async update on address changes', async () => {
189
+ const service = createServiceWithSqs();
190
+ mockBuildAndSendMessage.mockResolvedValueOnce({ MessageId: 'test-msg-id' });
191
+ const cachedResponse = {
192
+ pk: `identity#${pixelId}#identity456`,
193
+ pixelId,
194
+ identityId: 'identity456',
195
+ response: {
196
+ identityId: 'identity456',
197
+ traits: {
198
+ emails: ['test@email.com'],
199
+ addresses: [{ city: 'Old City', upa: 1704067200000 }],
200
+ },
201
+ },
202
+ updatedAt: new Date().toISOString(),
203
+ };
204
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedResponse);
205
+ const identityWithNewAddress = {
206
+ identityId: 'identity456',
207
+ traits: {
208
+ emails: ['test@email.com'],
209
+ addresses: [{ city: 'New City', upa: 1717200000000 }],
210
+ },
211
+ };
212
+ const result = await service.resolveIdentityWithCaching(pixelId, identityWithNewAddress);
213
+ if (result.outcome === IDENTITY_CACHE_WITH_CACHING_OUTCOME.ADDRESS_UPDATE_ASYNC) {
214
+ expect(result.didWriteCache).toBe(false);
215
+ expect(result.didEnqueueAsync).toBe(true);
216
+ expect(mockedDynamoDbClient.safeBatchWrite).not.toHaveBeenCalled();
217
+ expect(mockBuildAndSendMessage).toHaveBeenCalled();
218
+ }
219
+ });
220
+ });
221
+ });
222
+ //# sourceMappingURL=identity-gateway-stale-cache.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-gateway-stale-cache.spec.js","sourceRoot":"","sources":["../../../../src/__tests__/identity-cache/identity-gateway-stale-cache.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /// <reference types="jest" />
2
+ import { EventContext, EventIdentity, IdentityDynamoDbCache } from '@adtrackify/at-tracking-event-types';
3
+ export declare const mockLambdaInvokeFunction: jest.Mock<any, any>;
4
+ export declare const mockBuildAndSendMessage: jest.Mock<any, any>;
5
+ export declare const mockSQSClientConstructor: jest.Mock<any, any>;
6
+ export declare const mockGetIdentity: jest.Mock<any, any>;
7
+ import { IdentityGatewayService, IdentityGatewayServiceOptions } from '../../services/db/identity-cache-dynamodb-service/identity-gateway-service.js';
8
+ import { IDENTITY_CACHE_WITH_CACHING_OUTCOME } from '../../services/db/identity-cache-dynamodb-service/types.js';
9
+ import { DynamoDbClient, SQSClient } from '../../clients/index.js';
10
+ export declare const mockedDynamoDbClient: jest.Mocked<typeof DynamoDbClient>;
11
+ export declare const mockedLogger: jest.Mocked<{
12
+ log: (logLevel: string, msg: string | Error, meta?: object | undefined, tags?: string[] | undefined) => void;
13
+ debug: (msg: string, meta?: object | undefined, tags?: string[] | undefined) => void;
14
+ info: (msg: string, meta?: object | undefined, tags?: string[] | undefined) => void;
15
+ warn: (msg: string, meta?: object | undefined, tags?: string[] | undefined) => void;
16
+ error: (msg: string | Error, meta?: object | undefined, tags?: string[] | undefined) => void;
17
+ }>;
18
+ export declare const mockedSQSClient: jest.MockedClass<typeof SQSClient>;
19
+ export { IdentityGatewayService };
20
+ export { IDENTITY_CACHE_WITH_CACHING_OUTCOME };
21
+ export type { IdentityGatewayServiceOptions };
22
+ export type { EventContext, EventIdentity, IdentityDynamoDbCache };
23
+ export declare const TEST_PIXEL_ID = "pixel123";
24
+ export declare const TEST_LAMBDA_ARN = "arn:aws:lambda:us-east-1:123456789:function:identity-private";
25
+ export declare const createService: (options?: IdentityGatewayServiceOptions) => IdentityGatewayService;
26
+ export declare const createServiceWithSqs: (overrides?: Partial<IdentityGatewayServiceOptions>) => IdentityGatewayService;
27
+ export declare const resetAllMocks: () => void;
28
+ export declare const createCachedIdentity: (pixelId: string, identityId: string, traits: EventIdentity['traits'], updatedAt?: string) => IdentityDynamoDbCache;
@@ -0,0 +1,83 @@
1
+ export const mockLambdaInvokeFunction = jest.fn();
2
+ export const mockBuildAndSendMessage = jest.fn();
3
+ export const mockSQSClientConstructor = jest.fn();
4
+ export const mockGetIdentity = jest.fn();
5
+ jest.mock('../../clients/index.js', () => ({
6
+ DynamoDbClient: {
7
+ safeGet: jest.fn(),
8
+ safePut: jest.fn(),
9
+ safeDelete: jest.fn(),
10
+ safeBatchGet: jest.fn(),
11
+ safeBatchWrite: jest.fn(),
12
+ safeQueryByGSI: jest.fn(),
13
+ batchWrite: jest.fn(),
14
+ },
15
+ LambdaInvokeClient: jest.fn().mockImplementation(() => ({
16
+ invokeFunction: mockLambdaInvokeFunction,
17
+ })),
18
+ SQSClient: jest.fn().mockImplementation((_region, _accountId, _queueName) => {
19
+ mockSQSClientConstructor(_region, _accountId, _queueName);
20
+ return {
21
+ buildAndSendMessage: mockBuildAndSendMessage,
22
+ queueUrl: `https://sqs.${_region}.amazonaws.com/${_accountId}/${_queueName}`,
23
+ };
24
+ }),
25
+ }));
26
+ jest.mock('../../helpers/index.js', () => ({
27
+ Logger: {
28
+ debug: jest.fn(),
29
+ info: jest.fn(),
30
+ warn: jest.fn(),
31
+ error: jest.fn(),
32
+ },
33
+ }));
34
+ jest.mock('../../clients/internal-api/identity-client.js', () => ({
35
+ IdentityClient: jest.fn().mockImplementation(() => ({
36
+ getIdentity: mockGetIdentity,
37
+ })),
38
+ }));
39
+ import { IdentityGatewayService, } from '../../services/db/identity-cache-dynamodb-service/identity-gateway-service.js';
40
+ import { IDENTITY_CACHE_WITH_CACHING_OUTCOME, } from '../../services/db/identity-cache-dynamodb-service/types.js';
41
+ import { DynamoDbClient, SQSClient } from '../../clients/index.js';
42
+ import { Logger } from '../../helpers/index.js';
43
+ export const mockedDynamoDbClient = DynamoDbClient;
44
+ export const mockedLogger = Logger;
45
+ export const mockedSQSClient = SQSClient;
46
+ export { IdentityGatewayService };
47
+ export { IDENTITY_CACHE_WITH_CACHING_OUTCOME };
48
+ export const TEST_PIXEL_ID = 'pixel123';
49
+ export const TEST_LAMBDA_ARN = 'arn:aws:lambda:us-east-1:123456789:function:identity-private';
50
+ export const createService = (options = { identifyPrivateLambdaArn: TEST_LAMBDA_ARN }) => {
51
+ return new IdentityGatewayService(options);
52
+ };
53
+ export const createServiceWithSqs = (overrides = {}) => {
54
+ return new IdentityGatewayService({
55
+ identifyPrivateLambdaArn: TEST_LAMBDA_ARN,
56
+ awsRegion: 'us-east-1',
57
+ awsAccountId: '123456789',
58
+ asyncUpdateQueueName: 'test-queue',
59
+ ...overrides,
60
+ });
61
+ };
62
+ export const resetAllMocks = () => {
63
+ jest.clearAllMocks();
64
+ mockedDynamoDbClient.safeGet.mockReset();
65
+ mockedDynamoDbClient.safePut.mockReset();
66
+ mockedDynamoDbClient.safeDelete.mockReset();
67
+ mockedDynamoDbClient.safeBatchGet.mockReset();
68
+ mockedDynamoDbClient.safeBatchWrite.mockReset();
69
+ mockedDynamoDbClient.safeQueryByGSI.mockReset();
70
+ mockedDynamoDbClient.batchWrite.mockReset();
71
+ mockGetIdentity.mockReset();
72
+ mockBuildAndSendMessage.mockReset();
73
+ mockSQSClientConstructor.mockReset();
74
+ mockedSQSClient.mockClear();
75
+ };
76
+ export const createCachedIdentity = (pixelId, identityId, traits, updatedAt = new Date().toISOString()) => ({
77
+ pk: `identity#${pixelId}#${identityId}`,
78
+ pixelId,
79
+ identityId,
80
+ response: { identityId, traits },
81
+ updatedAt,
82
+ });
83
+ //# sourceMappingURL=identity-gateway-test-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-gateway-test-setup.js","sourceRoot":"","sources":["../../../../src/__tests__/identity-cache/identity-gateway-test-setup.ts"],"names":[],"mappings":"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"}
@@ -9,16 +9,15 @@ export interface IdentityGatewayServiceOptions {
9
9
  identityBaseApiUrl?: string;
10
10
  }
11
11
  export declare class IdentityGatewayService {
12
- private static identityClient;
13
- private static sqsClient;
14
- private static sqsQueueUrl;
15
- static configure(options: IdentityGatewayServiceOptions): void;
16
- static resolveIdentityWithCaching: (pixelId: string, incomingIdentity: EventIdentity) => Promise<IdentityResolutionResult>;
17
- private static createInitialResult;
18
- private static processCacheHit;
19
- private static processFreshCacheHit;
20
- private static processStaleCacheHit;
21
- private static resolveViaNeptune;
22
- private static resolveIdentity;
23
- static enqueueAsyncIdentityUpdate: (request: EnqueueAsyncIdentityUpdateRequest) => Promise<EnqueueAsyncIdentityUpdateResult>;
12
+ private readonly identityClient;
13
+ private readonly sqsClient;
14
+ constructor(options: IdentityGatewayServiceOptions);
15
+ resolveIdentityWithCaching(pixelId: string, incomingIdentity: EventIdentity): Promise<IdentityResolutionResult>;
16
+ private createInitialResult;
17
+ private processCacheHit;
18
+ private processFreshCacheHit;
19
+ private processStaleCacheHit;
20
+ private resolveViaNeptune;
21
+ private resolveIdentity;
22
+ enqueueAsyncIdentityUpdate(request: EnqueueAsyncIdentityUpdateRequest): Promise<EnqueueAsyncIdentityUpdateResult>;
24
23
  }
@@ -6,10 +6,9 @@ import { IdentityCacheDynamoDbDbService } from './identity-cache-dynamodb-db-ser
6
6
  import { IDENTITY_CACHE_WITH_CACHING_OUTCOME, } from './types.js';
7
7
  const IDENTIFY_ASYNC_UPDATE_MESSAGE_TYPE = 'identify.updateAsync';
8
8
  export class IdentityGatewayService {
9
- static identityClient;
10
- static sqsClient;
11
- static sqsQueueUrl;
12
- static configure(options) {
9
+ identityClient;
10
+ sqsClient;
11
+ constructor(options) {
13
12
  if (options.identifyPrivateLambdaArn) {
14
13
  this.identityClient = new IdentityClient({
15
14
  baseApiUrl: options.identityBaseApiUrl ?? '',
@@ -26,10 +25,9 @@ export class IdentityGatewayService {
26
25
  if (urlMatch) {
27
26
  const [, region, accountId, queueName] = urlMatch;
28
27
  this.sqsClient = new SQSClient(region, accountId, queueName);
29
- this.sqsQueueUrl = this.sqsClient.queueUrl;
30
28
  }
31
29
  else {
32
- Logger.warn('IdentityGateway - configure: invalid SQS URL format', {
30
+ Logger.warn('IdentityGateway - constructor: invalid SQS URL format', {
33
31
  asyncUpdateQueueUrl: options.asyncUpdateQueueUrl,
34
32
  });
35
33
  }
@@ -38,11 +36,10 @@ export class IdentityGatewayService {
38
36
  const queueName = options.asyncUpdateQueueName ?? process.env.IDENTIFY_ASYNC_UPDATE_QUEUE_NAME;
39
37
  if (queueName) {
40
38
  this.sqsClient = new SQSClient(options.awsRegion, options.awsAccountId, queueName);
41
- this.sqsQueueUrl = this.sqsClient.queueUrl;
42
39
  }
43
40
  }
44
41
  }
45
- static resolveIdentityWithCaching = async (pixelId, incomingIdentity) => {
42
+ async resolveIdentityWithCaching(pixelId, incomingIdentity) {
46
43
  const result = this.createInitialResult(pixelId, incomingIdentity);
47
44
  if (!pixelId || !incomingIdentity) {
48
45
  Logger.error('IdentityGateway - missing required params', { pixelId, incomingIdentity });
@@ -68,8 +65,8 @@ export class IdentityGatewayService {
68
65
  result.errorMessage = error instanceof Error ? error.message : String(error);
69
66
  return result;
70
67
  }
71
- };
72
- static createInitialResult(pixelId, incomingIdentity) {
68
+ }
69
+ createInitialResult(pixelId, incomingIdentity) {
73
70
  return {
74
71
  outcome: IDENTITY_CACHE_WITH_CACHING_OUTCOME.FAILED,
75
72
  pixelId,
@@ -82,7 +79,7 @@ export class IdentityGatewayService {
82
79
  didEnqueueAsync: false,
83
80
  };
84
81
  }
85
- static async processCacheHit(result, cachedIdentity) {
82
+ async processCacheHit(result, cachedIdentity) {
86
83
  const incomingIdentity = result.incomingIdentity;
87
84
  result.cachedIdentity = cachedIdentity;
88
85
  result.stalenessResult = mergeAndComputeIdentityStaleness(incomingIdentity, cachedIdentity);
@@ -99,7 +96,7 @@ export class IdentityGatewayService {
99
96
  }
100
97
  return this.processStaleCacheHit(result);
101
98
  }
102
- static processFreshCacheHit(result) {
99
+ processFreshCacheHit(result) {
103
100
  const stalenessResult = result.stalenessResult;
104
101
  result.outcome = stalenessResult.isVolatileOnly && !stalenessResult.isDeepEqual
105
102
  ? IDENTITY_CACHE_WITH_CACHING_OUTCOME.VOLATILE_ONLY_CACHE_HIT
@@ -113,7 +110,7 @@ export class IdentityGatewayService {
113
110
  });
114
111
  return result;
115
112
  }
116
- static async processStaleCacheHit(result) {
113
+ async processStaleCacheHit(result) {
117
114
  Logger.debug('IdentityGateway - cache stale: calling Neptune', {
118
115
  pixelId: result.pixelId,
119
116
  identityId: result.incomingIdentity?.identityId,
@@ -122,7 +119,7 @@ export class IdentityGatewayService {
122
119
  });
123
120
  return this.resolveViaNeptune(result);
124
121
  }
125
- static async resolveViaNeptune(result, context) {
122
+ async resolveViaNeptune(result, context) {
126
123
  const incomingIdentity = result.incomingIdentity;
127
124
  const discoveredIdentityId = context?.discoveredIdentityId;
128
125
  const identityForNeptune = incomingIdentity.identityId
@@ -160,9 +157,9 @@ export class IdentityGatewayService {
160
157
  });
161
158
  return result;
162
159
  }
163
- static async resolveIdentity(pixelId, incomingIdentity) {
160
+ async resolveIdentity(pixelId, incomingIdentity) {
164
161
  if (!this.identityClient) {
165
- Logger.error('IdentityGateway - identity client not configured, call configure() first', { pixelId });
162
+ Logger.error('IdentityGateway - identity client not configured', { pixelId });
166
163
  return undefined;
167
164
  }
168
165
  try {
@@ -179,7 +176,7 @@ export class IdentityGatewayService {
179
176
  return undefined;
180
177
  }
181
178
  }
182
- static enqueueAsyncIdentityUpdate = async (request) => {
179
+ async enqueueAsyncIdentityUpdate(request) {
183
180
  const { pixelId, identity, context, reason, eventId } = request;
184
181
  const identityId = identity?.identityId;
185
182
  if (!this.sqsClient) {
@@ -217,6 +214,6 @@ export class IdentityGatewayService {
217
214
  error: error instanceof Error ? error.message : String(error),
218
215
  };
219
216
  }
220
- };
217
+ }
221
218
  }
222
219
  //# sourceMappingURL=identity-gateway-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity-gateway-service.js","sourceRoot":"","sources":["../../../../../src/services/db/identity-cache-dynamodb-service/identity-gateway-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity-gateway-service.js","sourceRoot":"","sources":["../../../../../src/services/db/identity-cache-dynamodb-service/identity-gateway-service.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import { EventContext, EventIdentity, IdentityDynamoDbCache, IdentityMapDynamoDbCache, ForcePurgeDynamoDbCache, IdentityPointerRecord } from '@adtrackify/at-tracking-event-types';
2
- import { IDENTITY_CACHE_STALENESS_TIER, IdentityCacheTraitChange, IdentityCacheTraitChanges, MergeAndComputeIdentityStalenessResult } from '@adtrackify/at-shared-utils';
3
- export type { IdentityDynamoDbCache, IdentityMapDynamoDbCache, ForcePurgeDynamoDbCache, IdentityPointerRecord };
4
- export type { IdentityCacheTraitChange, IdentityCacheTraitChanges };
1
+ import { EventContext, EventIdentity } from '@adtrackify/at-tracking-event-types';
2
+ import { IDENTITY_CACHE_STALENESS_TIER, IdentityCacheTraitChanges, MergeAndComputeIdentityStalenessResult } from '@adtrackify/at-shared-utils';
5
3
  export declare enum CACHE_WRITE_REASON {
6
4
  CACHE_MISS = "cache_miss",
7
5
  STALE_TRAITS = "stale_traits",
@@ -1 +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;AAED,MAAM,CAAN,IAAY,mCAUX;AAVD,WAAY,mCAAmC;IAC7C,sEAA+B,CAAA;IAC/B,0EAAmC,CAAA;IACnC,0FAAmD,CAAA;IACnD,oFAA6C,CAAA;IAC7C,sEAA+B,CAAA;IAC/B,4EAAqC,CAAA;IACrC,8FAAuD,CAAA;IACvD,8EAAuC,CAAA;IACvC,wDAAiB,CAAA;AACnB,CAAC,EAVW,mCAAmC,KAAnC,mCAAmC,QAU9C;AAiED,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,qDAA2B,CAAA;IAC3B,yDAA+B,CAAA;IAC/B,uCAAa,CAAA;AACf,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/services/db/identity-cache-dynamodb-service/types.ts"],"names":[],"mappings":"AAOA,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;AAED,MAAM,CAAN,IAAY,mCAUX;AAVD,WAAY,mCAAmC;IAC7C,sEAA+B,CAAA;IAC/B,0EAAmC,CAAA;IACnC,0FAAmD,CAAA;IACnD,oFAA6C,CAAA;IAC7C,sEAA+B,CAAA;IAC/B,4EAAqC,CAAA;IACrC,8FAAuD,CAAA;IACvD,8EAAuC,CAAA;IACvC,wDAAiB,CAAA;AACnB,CAAC,EAVW,mCAAmC,KAAnC,mCAAmC,QAU9C;AAiED,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,qDAA2B,CAAA;IAC3B,yDAA+B,CAAA;IAC/B,uCAAa,CAAA;AACf,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adtrackify/at-service-common",
3
- "version": "4.0.14",
3
+ "version": "4.0.16",
4
4
  "description": "",
5
5
  "files": [
6
6
  "dist/*"
@@ -37,7 +37,7 @@
37
37
  "shopify:graphql:codegen": "graphql-codegen && node scripts/fix-codegen-imports.cjs"
38
38
  },
39
39
  "dependencies": {
40
- "@adtrackify/at-shared-utils": "^3.2.35",
40
+ "@adtrackify/at-shared-utils": "^3.2.36",
41
41
  "@adtrackify/at-tracking-event-types": "^4.71.21",
42
42
  "@aws-sdk/util-utf8": "^3.374.0",
43
43
  "@shopify/admin-api-client": "^1.0.4",