@adtrackify/at-service-common 4.0.13 → 4.0.15

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 (109) hide show
  1. package/dist/cjs/__tests__/identity-cache/helpers.spec.js +37 -38
  2. package/dist/cjs/__tests__/identity-cache/helpers.spec.js.map +1 -1
  3. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +92 -349
  4. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  5. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js +360 -0
  6. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js.map +1 -0
  7. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +138 -0
  8. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -0
  9. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +153 -0
  10. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -0
  11. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js +72 -0
  12. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -0
  13. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +89 -0
  14. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -0
  15. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +136 -0
  16. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +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/clients/internal-api/identity-client.d.ts +12 -2
  23. package/dist/cjs/clients/internal-api/identity-client.js +59 -13
  24. package/dist/cjs/clients/internal-api/identity-client.js.map +1 -1
  25. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +1 -7
  26. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +0 -305
  27. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  28. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +14 -14
  29. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +122 -330
  30. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  31. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.d.ts +0 -1
  32. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js +0 -1
  33. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js.map +1 -1
  34. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.d.ts +8 -158
  35. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js +1 -15
  36. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  37. package/dist/esm/__tests__/identity-cache/helpers.spec.js +26 -27
  38. package/dist/esm/__tests__/identity-cache/helpers.spec.js.map +1 -1
  39. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +92 -349
  40. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  41. package/dist/esm/__tests__/identity-cache/identity-client.spec.js +358 -0
  42. package/dist/esm/__tests__/identity-cache/identity-client.spec.js.map +1 -0
  43. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.d.ts +1 -0
  44. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +136 -0
  45. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -0
  46. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.d.ts +1 -0
  47. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +151 -0
  48. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -0
  49. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.d.ts +1 -0
  50. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js +70 -0
  51. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -0
  52. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.d.ts +1 -0
  53. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +87 -0
  54. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -0
  55. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.d.ts +1 -0
  56. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +134 -0
  57. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -0
  58. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.d.ts +1 -0
  59. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +222 -0
  60. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -0
  61. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.d.ts +28 -0
  62. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js +83 -0
  63. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -0
  64. package/dist/esm/clients/internal-api/identity-client.d.ts +12 -2
  65. package/dist/esm/clients/internal-api/identity-client.js +60 -14
  66. package/dist/esm/clients/internal-api/identity-client.js.map +1 -1
  67. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +1 -7
  68. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +1 -303
  69. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  70. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +14 -14
  71. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +125 -330
  72. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  73. package/dist/esm/services/db/identity-cache-dynamodb-service/index.d.ts +0 -1
  74. package/dist/esm/services/db/identity-cache-dynamodb-service/index.js +0 -1
  75. package/dist/esm/services/db/identity-cache-dynamodb-service/index.js.map +1 -1
  76. package/dist/esm/services/db/identity-cache-dynamodb-service/types.d.ts +8 -158
  77. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js +0 -14
  78. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  79. package/package.json +2 -2
  80. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js +0 -646
  81. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js.map +0 -1
  82. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +0 -325
  83. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +0 -1
  84. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +0 -1286
  85. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +0 -1
  86. package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js +0 -2170
  87. package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js.map +0 -1
  88. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.d.ts +0 -26
  89. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js +0 -252
  90. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js.map +0 -1
  91. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js +0 -644
  92. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js.map +0 -1
  93. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +0 -323
  94. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +0 -1
  95. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +0 -1284
  96. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +0 -1
  97. package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js +0 -2168
  98. package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js.map +0 -1
  99. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.d.ts +0 -26
  100. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js +0 -235
  101. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js.map +0 -1
  102. /package/dist/cjs/__tests__/identity-cache/{identity-cache-dynamodb-db-service-v2-comparison.spec.d.ts → identity-client.spec.d.ts} +0 -0
  103. /package/dist/cjs/__tests__/identity-cache/{identity-cache-dynamodb-service-v2-comparison.spec.d.ts → identity-gateway-cache-hit.spec.d.ts} +0 -0
  104. /package/dist/cjs/__tests__/identity-cache/{identity-cache-dynamodb-service.spec.d.ts → identity-gateway-cache-miss.spec.d.ts} +0 -0
  105. /package/dist/cjs/__tests__/identity-cache/{identity-gateway-service.spec.d.ts → identity-gateway-constructor.spec.d.ts} +0 -0
  106. /package/dist/{esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.d.ts → cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.d.ts} +0 -0
  107. /package/dist/{esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.d.ts → cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.d.ts} +0 -0
  108. /package/dist/{esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.d.ts → cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.d.ts} +0 -0
  109. /package/dist/esm/__tests__/identity-cache/{identity-gateway-service.spec.d.ts → identity-client.spec.d.ts} +0 -0
@@ -1,32 +1,36 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.IdentityGatewayService = void 0;
7
4
  const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
8
- const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
9
5
  const index_js_1 = require("../../../clients/index.js");
6
+ const identity_client_js_1 = require("../../../clients/internal-api/identity-client.js");
10
7
  const index_js_2 = require("../../../helpers/index.js");
11
- const helpers_js_1 = require("./helpers.js");
12
- const at_shared_utils_2 = require("@adtrackify/at-shared-utils");
13
8
  const identity_cache_dynamodb_db_service_js_1 = require("./identity-cache-dynamodb-db-service.js");
14
9
  const types_js_1 = require("./types.js");
15
10
  const IDENTIFY_ASYNC_UPDATE_MESSAGE_TYPE = 'identify.updateAsync';
16
11
  class IdentityGatewayService {
17
- static lambdaInvokeClient;
18
- static sqsClient;
19
- static sqsQueueUrl;
20
- static configure(options) {
12
+ identityClient;
13
+ sqsClient;
14
+ constructor(options) {
15
+ if (options.identifyPrivateLambdaArn) {
16
+ this.identityClient = new identity_client_js_1.IdentityClient({
17
+ baseApiUrl: options.identityBaseApiUrl ?? '',
18
+ identifyPrivateLambdaArn: options.identifyPrivateLambdaArn,
19
+ });
20
+ }
21
+ else if (options.identityBaseApiUrl) {
22
+ this.identityClient = new identity_client_js_1.IdentityClient({
23
+ baseApiUrl: options.identityBaseApiUrl,
24
+ });
25
+ }
21
26
  if (options.asyncUpdateQueueUrl) {
22
27
  const urlMatch = options.asyncUpdateQueueUrl.match(/^https:\/\/sqs\.([^.]+)\.amazonaws\.com\/(\d+)\/(.+)$/);
23
28
  if (urlMatch) {
24
29
  const [, region, accountId, queueName] = urlMatch;
25
30
  this.sqsClient = new index_js_1.SQSClient(region, accountId, queueName);
26
- this.sqsQueueUrl = this.sqsClient.queueUrl;
27
31
  }
28
32
  else {
29
- index_js_2.Logger.warn('IdentityGateway - configure: invalid SQS URL format', {
33
+ index_js_2.Logger.warn('IdentityGateway - constructor: invalid SQS URL format', {
30
34
  asyncUpdateQueueUrl: options.asyncUpdateQueueUrl,
31
35
  });
32
36
  }
@@ -35,169 +39,41 @@ class IdentityGatewayService {
35
39
  const queueName = options.asyncUpdateQueueName ?? process.env.IDENTIFY_ASYNC_UPDATE_QUEUE_NAME;
36
40
  if (queueName) {
37
41
  this.sqsClient = new index_js_1.SQSClient(options.awsRegion, options.awsAccountId, queueName);
38
- this.sqsQueueUrl = this.sqsClient.queueUrl;
39
42
  }
40
43
  }
41
44
  }
42
- static getLambdaInvokeClient() {
43
- if (!this.lambdaInvokeClient) {
44
- this.lambdaInvokeClient = new index_js_1.LambdaInvokeClient();
45
+ async resolveIdentityWithCaching(pixelId, incomingIdentity) {
46
+ const result = this.createInitialResult(pixelId, incomingIdentity);
47
+ if (!pixelId || !incomingIdentity) {
48
+ index_js_2.Logger.error('IdentityGateway - missing required params', { pixelId, incomingIdentity });
49
+ result.outcome = types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.INVALID_INPUT;
50
+ return result;
45
51
  }
46
- return this.lambdaInvokeClient;
47
- }
48
- static getIdentityWithCaching = async (pixelId, incomingIdentity, identifyPrivateLambdaArn) => {
49
52
  try {
50
- if (!pixelId || !incomingIdentity) {
51
- index_js_2.Logger.error('IdentityGateway - missing required params', { pixelId, incomingIdentity });
52
- return undefined;
53
- }
54
- const cacheResponse = await this.readFromCache(pixelId, incomingIdentity);
55
- let resolvedIdentity = cacheResponse.resolvedIdentity;
56
- const isCacheStale = cacheResponse.isCacheStale;
57
- const cachedIdentity = cacheResponse.cachedIdentity;
58
- const staleTracker = cacheResponse.staleTracker;
59
- const writeReason = cacheResponse.writeReason;
60
- const staleTier = cacheResponse.staleTier;
61
- const skipNeptune = cacheResponse.skipNeptune;
62
- if (resolvedIdentity && !isCacheStale) {
63
- const tierLabel = staleTier === at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY ? 'volatile_traits_only' : 'fresh';
64
- index_js_2.Logger.debug(`IdentityGateway - identity cache hit - ${tierLabel}`, {
65
- pixelId,
66
- identityId: resolvedIdentity.identityId,
67
- staleTier,
68
- cachedIdentity: cachedIdentity ?? null,
69
- incomingIdentity,
70
- resolvedIdentity,
71
- incomingClick: incomingIdentity?.traits?.click ?? null,
72
- cachedClick: cachedIdentity?.traits?.click ?? null,
73
- resolvedClick: resolvedIdentity?.traits?.click ?? null,
74
- });
75
- return resolvedIdentity;
76
- }
77
- if (resolvedIdentity && skipNeptune && writeReason === types_js_1.CACHE_WRITE_REASON.ADDRESS_UPDATE) {
78
- const staleTraits = staleTracker ? (0, at_shared_utils_2.extractStaleTraitNames)(staleTracker) : [];
79
- index_js_2.Logger.debug('IdentityGateway - identity cache write: address update only (skipping Neptune)', {
80
- pixelId,
81
- identityId: resolvedIdentity.identityId,
82
- writeReason,
83
- staleTier,
84
- staleTraits,
85
- cachedIdentity: cachedIdentity ?? null,
86
- incomingIdentity,
87
- resolvedIdentity,
88
- incomingClick: incomingIdentity?.traits?.click ?? null,
89
- cachedClick: cachedIdentity?.traits?.click ?? null,
90
- resolvedClick: resolvedIdentity?.traits?.click ?? null,
91
- traitChanges: cachedIdentity ? (0, helpers_js_1.computeTraitChanges)(cachedIdentity, resolvedIdentity) : { reason: 'no cached identity' },
92
- });
93
- await this.safeWriteBackToCache(pixelId, resolvedIdentity, 'address update');
94
- return resolvedIdentity;
95
- }
96
- const identityForNeptune = resolvedIdentity ?? incomingIdentity;
97
- index_js_2.Logger.debug('IdentityGateway - identity cache stale - fetching from Neptune', {
98
- pixelId,
99
- identityId: identityForNeptune?.identityId,
100
- staleTier,
101
- writeReason,
102
- staleTraits: staleTracker ? (0, at_shared_utils_2.extractStaleTraitNames)(staleTracker) : [],
103
- cachedIdentity: cachedIdentity ?? null,
104
- incomingIdentity,
105
- identityForNeptune,
106
- incomingClick: incomingIdentity?.traits?.click ?? null,
107
- cachedClick: cachedIdentity?.traits?.click ?? null,
108
- hasDiscoveredIdentityId: !!resolvedIdentity?.identityId,
109
- });
110
- const neptuneIdentity = await this.resolveFromNeptune(pixelId, identityForNeptune, identifyPrivateLambdaArn);
111
- if (neptuneIdentity) {
112
- resolvedIdentity = neptuneIdentity;
113
- const cachedForComparison = cachedIdentity ? (0, helpers_js_1.stripAddressTimestamps)(cachedIdentity) : undefined;
114
- const neptuneForComparison = (0, helpers_js_1.stripAddressTimestamps)(neptuneIdentity);
115
- const shouldWrite = !cachedForComparison || !(0, fast_deep_equal_1.default)(cachedForComparison, neptuneForComparison);
116
- if (shouldWrite) {
117
- const staleTraits = staleTracker ? (0, at_shared_utils_2.extractStaleTraitNames)(staleTracker) : [];
118
- const cacheWriteType = (() => {
119
- switch (writeReason) {
120
- case types_js_1.CACHE_WRITE_REASON.CACHE_MISS:
121
- return 'cache_miss';
122
- case types_js_1.CACHE_WRITE_REASON.EMAIL_POINTER_DISCOVERY:
123
- return 'email_discovery';
124
- case types_js_1.CACHE_WRITE_REASON.ADDRESS_UPDATE:
125
- return 'address_update';
126
- case types_js_1.CACHE_WRITE_REASON.STALE_TRAITS:
127
- default:
128
- return 'stale_traits_update';
129
- }
130
- })();
131
- index_js_2.Logger.debug(`IdentityGateway - identity cache write: ${cacheWriteType}`, {
132
- pixelId,
133
- identityId: neptuneIdentity.identityId,
134
- writeReason,
135
- staleTier,
136
- staleTraits,
137
- cachedIdentity: cachedIdentity ?? null,
138
- incomingIdentity,
139
- neptuneIdentity,
140
- incomingClick: incomingIdentity?.traits?.click ?? null,
141
- cachedClick: cachedIdentity?.traits?.click ?? null,
142
- neptuneClick: neptuneIdentity?.traits?.click ?? null,
143
- traitChanges: cachedIdentity
144
- ? (0, helpers_js_1.computeTraitChanges)(cachedIdentity, neptuneIdentity)
145
- : { reason: 'no cached identity' },
146
- });
147
- await this.safeWriteBackToCache(pixelId, resolvedIdentity, 'neptune write-back');
148
- }
149
- else {
150
- index_js_2.Logger.debug('IdentityGateway - identity cache skip write - Neptune matches cached', {
151
- pixelId,
152
- identityId: neptuneIdentity.identityId,
153
- staleTier,
154
- cachedIdentity: cachedIdentity ?? null,
155
- incomingIdentity,
156
- neptuneIdentity,
157
- incomingClick: incomingIdentity?.traits?.click ?? null,
158
- cachedClick: cachedIdentity?.traits?.click ?? null,
159
- neptuneClick: neptuneIdentity?.traits?.click ?? null,
160
- });
161
- }
162
- }
163
- else {
164
- index_js_2.Logger.error('IdentityGateway - Neptune resolution failed', {
165
- pixelId,
166
- staleTier,
167
- writeReason,
168
- cachedIdentity: cachedIdentity ?? null,
169
- incomingIdentity,
170
- identityForNeptune,
171
- incomingClick: incomingIdentity?.traits?.click ?? null,
172
- });
173
- }
174
- if (!resolvedIdentity) {
175
- index_js_2.Logger.error('IdentityGateway - no identity found, using incoming', {
176
- pixelId,
177
- incomingIdentity,
178
- incomingClick: incomingIdentity?.traits?.click ?? null,
179
- });
180
- resolvedIdentity = incomingIdentity;
53
+ const pureCacheResult = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
54
+ result.didReadCache = true;
55
+ if (!pureCacheResult.cacheHit || !pureCacheResult.cachedIdentity) {
56
+ return await this.resolveViaNeptune(result, { discoveredIdentityId: pureCacheResult.discoveredIdentityId });
181
57
  }
182
- return resolvedIdentity;
58
+ return await this.processCacheHit(result, pureCacheResult.cachedIdentity);
183
59
  }
184
60
  catch (error) {
185
- index_js_2.Logger.error('IdentityGateway - getIdentityWithCaching failed', {
61
+ index_js_2.Logger.error('IdentityGateway - resolveIdentityWithCaching failed', {
186
62
  error,
187
63
  errorMessage: error instanceof Error ? error.message : String(error),
188
64
  pixelId,
189
- incomingIdentity,
190
- incomingClick: incomingIdentity?.traits?.click ?? null,
65
+ identityId: incomingIdentity?.identityId,
191
66
  });
192
- return undefined;
67
+ result.outcome = types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.FAILED;
68
+ result.errorMessage = error instanceof Error ? error.message : String(error);
69
+ return result;
193
70
  }
194
- };
195
- static getIdentityWithCachingV2 = async (pixelId, incomingIdentity, identifyPrivateLambdaArn, options) => {
196
- const state = {
71
+ }
72
+ createInitialResult(pixelId, incomingIdentity) {
73
+ return {
74
+ outcome: types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.FAILED,
197
75
  pixelId,
198
76
  incomingIdentity,
199
- identifyPrivateLambdaArn,
200
- staleTraits: [],
201
77
  didReadCache: false,
202
78
  didCallNeptune: false,
203
79
  didWriteCache: false,
@@ -205,190 +81,116 @@ class IdentityGatewayService {
205
81
  didFallbackToIncoming: false,
206
82
  didEnqueueAsync: false,
207
83
  };
208
- if (!pixelId || !incomingIdentity) {
209
- index_js_2.Logger.error('IdentityGateway - missing required params', { pixelId, incomingIdentity });
210
- return (0, helpers_js_1.createIdentityCacheWithCachingResultFromState)(state, undefined, {
211
- outcome: types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.INVALID_INPUT,
212
- });
213
- }
214
- try {
215
- const pureCacheResult = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
216
- state.didReadCache = true;
217
- if (!pureCacheResult.cacheHit || !pureCacheResult.cachedIdentity) {
218
- const neptuneResult = await this.resolveViaNeptune(pixelId, incomingIdentity, identifyPrivateLambdaArn, state, { isCacheMiss: true, discoveredIdentityId: pureCacheResult.discoveredIdentityId });
219
- return (0, helpers_js_1.createIdentityCacheWithCachingResultFromState)(state, state.resolvedIdentity, {
220
- outcome: neptuneResult.outcome,
221
- traitChanges: neptuneResult.traitChanges,
222
- });
223
- }
224
- state.cachedIdentity = pureCacheResult.cachedIdentity;
225
- const cacheHit = (0, helpers_js_1.processCacheHit)(incomingIdentity, pureCacheResult.cachedIdentity);
226
- state.resolvedIdentity = cacheHit.mergedIdentity;
227
- state.staleTraits = cacheHit.staleTraits;
228
- if (!cacheHit.isCacheStale) {
229
- const outcome = cacheHit.isVolatileOnly && !cacheHit.isDeepEqual
230
- ? types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.VOLATILE_ONLY_CACHE_HIT
231
- : types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.FRESH_CACHE_HIT;
232
- const tierLabel = cacheHit.isVolatileOnly ? 'volatile_traits_only' : 'fresh';
233
- index_js_2.Logger.debug(`IdentityGateway - cache hit: ${tierLabel}`, {
234
- pixelId,
235
- identityId: state.resolvedIdentity?.identityId,
236
- staleTier: cacheHit.staleTier,
237
- outcome,
238
- });
239
- return (0, helpers_js_1.createIdentityCacheWithCachingResultFromState)(state, state.resolvedIdentity, {
240
- outcome,
241
- staleTier: cacheHit.staleTier,
242
- });
243
- }
244
- if (cacheHit.isAddressUpdate) {
245
- state.didSkipNeptune = true;
246
- const enqueueResult = await this.enqueueAsyncIdentityUpdate({
247
- pixelId,
248
- identity: state.resolvedIdentity,
249
- context: { identity: incomingIdentity },
250
- reason: 'address_update',
251
- });
252
- state.didEnqueueAsync = enqueueResult.success;
253
- index_js_2.Logger.debug('IdentityGateway - address update: enqueued async (skipping Neptune)', {
254
- pixelId,
255
- identityId: state.resolvedIdentity?.identityId,
256
- staleTier: cacheHit.staleTier,
257
- staleTraits: cacheHit.staleTraits,
258
- didEnqueueAsync: enqueueResult.success,
259
- });
260
- return (0, helpers_js_1.createIdentityCacheWithCachingResultFromState)(state, state.resolvedIdentity, {
261
- outcome: types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.ADDRESS_UPDATE_ASYNC,
262
- staleTier: cacheHit.staleTier,
263
- writeReason: cacheHit.writeReason,
264
- traitChanges: (0, helpers_js_1.computeTraitChanges)(pureCacheResult.cachedIdentity, state.resolvedIdentity),
265
- });
266
- }
267
- index_js_2.Logger.debug('IdentityGateway - cache stale: calling Neptune', {
268
- pixelId,
269
- identityId: incomingIdentity?.identityId,
270
- staleTier: cacheHit.staleTier,
271
- staleTraits: cacheHit.staleTraits,
272
- });
273
- const neptuneResult = await this.resolveViaNeptune(pixelId, incomingIdentity, identifyPrivateLambdaArn, state, { isCacheMiss: false, cachedIdentity: pureCacheResult.cachedIdentity });
274
- return (0, helpers_js_1.createIdentityCacheWithCachingResultFromState)(state, state.resolvedIdentity, {
275
- outcome: neptuneResult.outcome,
276
- staleTier: cacheHit.staleTier,
277
- traitChanges: neptuneResult.traitChanges,
278
- });
279
- }
280
- catch (error) {
281
- index_js_2.Logger.error('IdentityGateway - getIdentityWithCachingV2 failed', {
282
- error,
283
- errorMessage: error instanceof Error ? error.message : String(error),
284
- pixelId,
285
- identityId: incomingIdentity?.identityId,
286
- });
287
- return (0, helpers_js_1.createIdentityCacheWithCachingResultFromState)(state, undefined, {
288
- outcome: types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.FAILED,
289
- errorMessage: error instanceof Error ? error.message : String(error),
290
- });
84
+ }
85
+ async processCacheHit(result, cachedIdentity) {
86
+ const incomingIdentity = result.incomingIdentity;
87
+ result.cachedIdentity = cachedIdentity;
88
+ result.stalenessResult = (0, at_shared_utils_1.mergeAndComputeIdentityStaleness)(incomingIdentity, cachedIdentity);
89
+ result.identity = result.stalenessResult.mergedIdentity;
90
+ result.identityId = result.identity?.identityId;
91
+ result.staleTier = result.stalenessResult.staleTier;
92
+ index_js_2.Logger.debug('IdentityGateway - cache hit staleness computed', {
93
+ pixelId: result.pixelId,
94
+ identityId: result.identityId,
95
+ stalenessResult: result.stalenessResult,
96
+ });
97
+ if (!result.stalenessResult.isCacheStale) {
98
+ return this.processFreshCacheHit(result);
291
99
  }
292
- };
293
- static resolveViaNeptune = async (pixelId, incomingIdentity, identifyPrivateLambdaArn, state, context) => {
100
+ return this.processStaleCacheHit(result);
101
+ }
102
+ processFreshCacheHit(result) {
103
+ const stalenessResult = result.stalenessResult;
104
+ result.outcome = stalenessResult.isVolatileOnly && !stalenessResult.isDeepEqual
105
+ ? types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.VOLATILE_ONLY_CACHE_HIT
106
+ : types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.FRESH_CACHE_HIT;
107
+ const tierLabel = stalenessResult.isVolatileOnly ? 'volatile_traits_only' : 'fresh';
108
+ index_js_2.Logger.debug(`IdentityGateway - cache hit: ${tierLabel}`, {
109
+ pixelId: result.pixelId,
110
+ identityId: result.identityId,
111
+ staleTier: result.staleTier,
112
+ outcome: result.outcome,
113
+ });
114
+ return result;
115
+ }
116
+ async processStaleCacheHit(result) {
117
+ index_js_2.Logger.debug('IdentityGateway - cache stale: calling Neptune', {
118
+ pixelId: result.pixelId,
119
+ identityId: result.incomingIdentity?.identityId,
120
+ stalenessResult: result.stalenessResult,
121
+ cachedIdentity: result.cachedIdentity,
122
+ });
123
+ return this.resolveViaNeptune(result);
124
+ }
125
+ async resolveViaNeptune(result, context) {
126
+ const incomingIdentity = result.incomingIdentity;
127
+ const discoveredIdentityId = context?.discoveredIdentityId;
294
128
  const identityForNeptune = incomingIdentity.identityId
295
129
  ? incomingIdentity
296
- : context.discoveredIdentityId
297
- ? { ...incomingIdentity, identityId: context.discoveredIdentityId }
130
+ : discoveredIdentityId
131
+ ? { ...incomingIdentity, identityId: discoveredIdentityId }
298
132
  : incomingIdentity;
299
- state.identityForNeptune = identityForNeptune;
300
- state.didCallNeptune = true;
301
- state.neptuneIdentity = await this.resolveFromNeptune(pixelId, identityForNeptune, identifyPrivateLambdaArn);
302
- if (state.neptuneIdentity) {
303
- state.resolvedIdentity = state.neptuneIdentity;
304
- const contextLabel = context.isCacheMiss ? 'cache miss' : 'stale cache';
133
+ const isCacheMiss = !result.cachedIdentity;
134
+ const contextLabel = isCacheMiss ? 'cache miss' : 'stale cache';
135
+ result.identityForNeptune = identityForNeptune;
136
+ result.didCallNeptune = true;
137
+ result.neptuneIdentity = await this.resolveIdentity(result.pixelId, identityForNeptune);
138
+ if (result.neptuneIdentity) {
139
+ result.identity = result.neptuneIdentity;
140
+ result.identityId = result.neptuneIdentity.identityId;
141
+ result.outcome = types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED;
142
+ result.traitChanges = result.cachedIdentity
143
+ ? (0, at_shared_utils_1.computeTraitChanges)(result.cachedIdentity, result.neptuneIdentity)
144
+ : { reason: { resolved: 'no cached identity' } };
305
145
  index_js_2.Logger.debug(`IdentityGateway - ${contextLabel}: Neptune resolved`, {
306
- pixelId,
307
- identityId: state.neptuneIdentity.identityId,
308
- isCacheMiss: context.isCacheMiss,
309
- usedDiscoveredId: !incomingIdentity.identityId && !!context.discoveredIdentityId,
146
+ pixelId: result.pixelId,
147
+ identityId: result.identityId,
148
+ isCacheMiss,
149
+ usedDiscoveredId: !incomingIdentity.identityId && !!discoveredIdentityId,
310
150
  });
311
- return {
312
- outcome: types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLVED,
313
- traitChanges: context.cachedIdentity
314
- ? (0, helpers_js_1.computeTraitChanges)(context.cachedIdentity, state.neptuneIdentity)
315
- : { reason: { resolved: 'no cached identity' } },
316
- };
151
+ return result;
317
152
  }
318
- state.resolvedIdentity = identityForNeptune;
319
- state.didFallbackToIncoming = true;
320
- const contextLabel = context.isCacheMiss ? 'cache miss' : 'stale cache';
153
+ result.identity = identityForNeptune;
154
+ result.identityId = identityForNeptune?.identityId;
155
+ result.didFallbackToIncoming = true;
156
+ result.outcome = types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLUTION_FAILED;
321
157
  index_js_2.Logger.warn(`IdentityGateway - ${contextLabel}: Neptune failed, using incoming`, {
322
- pixelId,
323
- identityId: identityForNeptune?.identityId,
158
+ pixelId: result.pixelId,
159
+ identityId: result.identityId,
324
160
  });
325
- return {
326
- outcome: types_js_1.IDENTITY_CACHE_WITH_CACHING_OUTCOME.NEPTUNE_RESOLUTION_FAILED,
327
- };
328
- };
329
- static readFromCache = async (pixelId, incomingIdentity) => {
330
- return await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCache(pixelId, incomingIdentity);
331
- };
332
- static resolveFromNeptune = async (pixelId, incomingIdentity, identifyPrivateLambdaArn) => {
161
+ return result;
162
+ }
163
+ async resolveIdentity(pixelId, incomingIdentity) {
164
+ if (!this.identityClient) {
165
+ index_js_2.Logger.error('IdentityGateway - identity client not configured', { pixelId });
166
+ return undefined;
167
+ }
333
168
  try {
334
- const client = this.getLambdaInvokeClient();
335
- const response = await client.invokeFunction(identifyPrivateLambdaArn, {
336
- pixelId,
337
- context: { identity: incomingIdentity },
338
- });
339
- if (response?.statusCode === 200 && response?.body) {
340
- const identifyResponse = JSON.parse(response.body);
341
- return identifyResponse?.identity;
342
- }
343
- return incomingIdentity;
169
+ const identityResult = await this.identityClient.getIdentity(pixelId, { identity: incomingIdentity });
170
+ return identityResult ?? undefined;
344
171
  }
345
172
  catch (error) {
346
- index_js_2.Logger.error('IdentityGateway - Neptune resolution failed', {
173
+ index_js_2.Logger.error('IdentityGateway - identity resolution failed', {
347
174
  error,
348
175
  errorMessage: error instanceof Error ? error.message : String(error),
349
176
  pixelId,
350
177
  incomingIdentity,
351
- incomingClick: incomingIdentity?.traits?.click ?? null,
352
- });
353
- return undefined;
354
- }
355
- };
356
- static writeBackToCache = async (pixelId, resolvedIdentity) => {
357
- return await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.updateIdentityCache(pixelId, resolvedIdentity);
358
- };
359
- static safeWriteBackToCache = async (pixelId, resolvedIdentity, context) => {
360
- try {
361
- return await this.writeBackToCache(pixelId, resolvedIdentity);
362
- }
363
- catch (writeError) {
364
- index_js_2.Logger.error(`IdentityGateway - write back failed (${context})`, {
365
- error: writeError,
366
- errorMessage: writeError instanceof Error ? writeError.message : String(writeError),
367
- pixelId,
368
- identityId: resolvedIdentity?.identityId,
369
- resolvedClick: resolvedIdentity?.traits?.click ?? null,
370
178
  });
371
179
  return undefined;
372
180
  }
373
- };
374
- static enqueueAsyncIdentityUpdate = async (request) => {
181
+ }
182
+ async enqueueAsyncIdentityUpdate(request) {
375
183
  const { pixelId, identity, context, reason, eventId } = request;
376
184
  const identityId = identity?.identityId;
377
185
  if (!this.sqsClient) {
378
186
  index_js_2.Logger.warn('IdentityGateway - enqueueAsyncIdentityUpdate: SQS client not configured', {
379
- pixelId,
380
- identityId,
381
- reason,
382
- eventId,
187
+ pixelId, identityId, reason, eventId,
383
188
  });
384
189
  return { success: false, error: 'SQS client not configured' };
385
190
  }
386
191
  if (!pixelId || !identityId) {
387
192
  index_js_2.Logger.warn('IdentityGateway - enqueueAsyncIdentityUpdate: missing required params', {
388
- pixelId,
389
- identityId,
390
- reason,
391
- eventId,
193
+ pixelId, identityId, reason, eventId,
392
194
  });
393
195
  return { success: false, error: 'Missing required pixelId or identityId' };
394
196
  }
@@ -400,32 +202,22 @@ class IdentityGatewayService {
400
202
  };
401
203
  const response = await this.sqsClient.buildAndSendMessage(IDENTIFY_ASYNC_UPDATE_MESSAGE_TYPE, message);
402
204
  index_js_2.Logger.debug('IdentityGateway - enqueueAsyncIdentityUpdate: message sent', {
403
- pixelId,
404
- identityId,
405
- reason,
406
- eventId,
407
- sqsMessageId: response.MessageId,
205
+ pixelId, identityId, reason, eventId, sqsMessageId: response.MessageId,
408
206
  });
409
- return {
410
- success: true,
411
- messageId: response.MessageId,
412
- };
207
+ return { success: true, messageId: response.MessageId };
413
208
  }
414
209
  catch (error) {
415
210
  index_js_2.Logger.warn('IdentityGateway - enqueueAsyncIdentityUpdate: failed to enqueue (failing open)', {
416
211
  error,
417
212
  errorMessage: error instanceof Error ? error.message : String(error),
418
- pixelId,
419
- identityId,
420
- reason,
421
- eventId,
213
+ pixelId, identityId, reason, eventId,
422
214
  });
423
215
  return {
424
216
  success: false,
425
217
  error: error instanceof Error ? error.message : String(error),
426
218
  };
427
219
  }
428
- };
220
+ }
429
221
  }
430
222
  exports.IdentityGatewayService = IdentityGatewayService;
431
223
  //# 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,5 +1,4 @@
1
1
  export * from './types.js';
2
2
  export * from './key-builders.js';
3
- export * from './helpers.js';
4
3
  export * from './identity-gateway-service.js';
5
4
  export * from './identity-cache-dynamodb-db-service.js';
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./types.js"), exports);
18
18
  __exportStar(require("./key-builders.js"), exports);
19
- __exportStar(require("./helpers.js"), exports);
20
19
  __exportStar(require("./identity-gateway-service.js"), exports);
21
20
  __exportStar(require("./identity-cache-dynamodb-db-service.js"), exports);
22
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/db/identity-cache-dynamodb-service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,oDAAkC;AAClC,+CAA6B;AAC7B,gEAA8C;AAC9C,0EAAwD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/db/identity-cache-dynamodb-service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,oDAAkC;AAClC,gEAA8C;AAC9C,0EAAwD"}