@adtrackify/at-service-common 5.1.2 → 5.1.4

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 (623) hide show
  1. package/dist/cjs/__tests__/clients/acuity-client.spec.js +20 -21
  2. package/dist/cjs/__tests__/clients/acuity-client.spec.js.map +1 -1
  3. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js +86 -97
  4. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
  5. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js +95 -94
  6. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  7. package/dist/cjs/__tests__/clients/event-collector-client.spec.js +58 -58
  8. package/dist/cjs/__tests__/clients/event-collector-client.spec.js.map +1 -1
  9. package/dist/cjs/__tests__/clients/liveintent-client.spec.js +37 -0
  10. package/dist/cjs/__tests__/clients/liveintent-client.spec.js.map +1 -0
  11. package/dist/cjs/__tests__/clients/open-exchange-rates-client.spec.js +17 -18
  12. package/dist/cjs/__tests__/clients/open-exchange-rates-client.spec.js.map +1 -1
  13. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +255 -273
  14. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
  15. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js +125 -137
  16. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -1
  17. package/dist/cjs/__tests__/clients/sqs-client.spec.js +77 -78
  18. package/dist/cjs/__tests__/clients/sqs-client.spec.js.map +1 -1
  19. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +430 -431
  20. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
  21. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +29 -30
  22. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -1
  23. package/dist/cjs/__tests__/db/destinations-db-service.spec.js +47 -45
  24. package/dist/cjs/__tests__/db/destinations-db-service.spec.js.map +1 -1
  25. package/dist/cjs/__tests__/db/products-db-service.spec.js +40 -41
  26. package/dist/cjs/__tests__/db/products-db-service.spec.js.map +1 -1
  27. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +26 -27
  28. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js.map +1 -1
  29. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js +37 -38
  30. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js.map +1 -1
  31. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js +35 -36
  32. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js.map +1 -1
  33. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js +27 -28
  34. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js.map +1 -1
  35. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +64 -65
  36. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js.map +1 -1
  37. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js +18 -19
  38. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js.map +1 -1
  39. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +23 -24
  40. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -1
  41. package/dist/cjs/__tests__/helpers/cognito-auth-helper.spec.js +16 -17
  42. package/dist/cjs/__tests__/helpers/cognito-auth-helper.spec.js.map +1 -1
  43. package/dist/cjs/__tests__/helpers/order-calculation-helper.spec.js +42 -43
  44. package/dist/cjs/__tests__/helpers/order-calculation-helper.spec.js.map +1 -1
  45. package/dist/cjs/__tests__/helpers/public-api-response-helper.spec.js +23 -24
  46. package/dist/cjs/__tests__/helpers/public-api-response-helper.spec.js.map +1 -1
  47. package/dist/cjs/__tests__/identity-cache/helpers.spec.js +114 -115
  48. package/dist/cjs/__tests__/identity-cache/helpers.spec.js.map +1 -1
  49. package/dist/cjs/__tests__/identity-cache/identity-cache-alias-write.spec.js +29 -30
  50. package/dist/cjs/__tests__/identity-cache/identity-cache-alias-write.spec.js.map +1 -1
  51. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +19 -20
  52. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
  53. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +200 -223
  54. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
  55. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +114 -123
  56. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  57. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js +107 -110
  58. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js.map +1 -1
  59. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +31 -32
  60. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -1
  61. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +47 -60
  62. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -1
  63. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js +15 -16
  64. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -1
  65. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +28 -35
  66. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -1
  67. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +27 -28
  68. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -1
  69. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +52 -74
  70. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -1
  71. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.d.ts +18 -14
  72. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js +30 -37
  73. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -1
  74. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +424 -403
  75. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
  76. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js +218 -219
  77. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
  78. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +117 -118
  79. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
  80. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +7 -8
  81. package/dist/cjs/__tests__/libs/compress-decompress.spec.js.map +1 -1
  82. package/dist/cjs/__tests__/libs/contacts.spec.js +101 -102
  83. package/dist/cjs/__tests__/libs/contacts.spec.js.map +1 -1
  84. package/dist/cjs/__tests__/libs/currency.spec.js +56 -57
  85. package/dist/cjs/__tests__/libs/currency.spec.js.map +1 -1
  86. package/dist/cjs/__tests__/libs/dates.spec.js +94 -82
  87. package/dist/cjs/__tests__/libs/dates.spec.js.map +1 -1
  88. package/dist/cjs/__tests__/libs/domain.spec.js +68 -69
  89. package/dist/cjs/__tests__/libs/domain.spec.js.map +1 -1
  90. package/dist/cjs/__tests__/libs/numbers.spec.js +249 -250
  91. package/dist/cjs/__tests__/libs/numbers.spec.js.map +1 -1
  92. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +16 -15
  93. package/dist/cjs/__tests__/s3-client/s3-client.spec.js.map +1 -1
  94. package/dist/cjs/__tests__/services/acuity-api-service.spec.js +32 -35
  95. package/dist/cjs/__tests__/services/acuity-api-service.spec.js.map +1 -1
  96. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js +14 -15
  97. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -1
  98. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js +949 -1187
  99. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -1
  100. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js +39 -40
  101. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js.map +1 -1
  102. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js +204 -201
  103. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js.map +1 -1
  104. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +174 -299
  105. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -1
  106. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js +39 -41
  107. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -1
  108. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js +22 -27
  109. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -1
  110. package/dist/cjs/__tests__/services/events/collect-queue-tracking-service.spec.js +64 -67
  111. package/dist/cjs/__tests__/services/events/collect-queue-tracking-service.spec.js.map +1 -1
  112. package/dist/cjs/__tests__/services/events/tracking-event-sqs-service.spec.js +51 -54
  113. package/dist/cjs/__tests__/services/events/tracking-event-sqs-service.spec.js.map +1 -1
  114. package/dist/cjs/__tests__/services/liveintent-api-service.spec.js +67 -0
  115. package/dist/cjs/__tests__/services/liveintent-api-service.spec.js.map +1 -0
  116. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +9 -10
  117. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js.map +1 -1
  118. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js +58 -69
  119. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
  120. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js +31 -32
  121. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -1
  122. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js +64 -65
  123. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -1
  124. package/dist/cjs/clients/generic/cognito-client.js +14 -14
  125. package/dist/cjs/clients/generic/cognito-client.js.map +1 -1
  126. package/dist/cjs/clients/generic/dynamodb-client.js +9 -9
  127. package/dist/cjs/clients/generic/dynamodb-client.js.map +1 -1
  128. package/dist/cjs/clients/generic/eventbridge-client.js +2 -2
  129. package/dist/cjs/clients/generic/eventbridge-client.js.map +1 -1
  130. package/dist/cjs/clients/generic/http-client.js +5 -5
  131. package/dist/cjs/clients/generic/http-client.js.map +1 -1
  132. package/dist/cjs/clients/generic/lambda-invoke-client.js.map +1 -1
  133. package/dist/cjs/clients/generic/location-client.js +2 -2
  134. package/dist/cjs/clients/generic/location-client.js.map +1 -1
  135. package/dist/cjs/clients/generic/redis-client.js +2 -13
  136. package/dist/cjs/clients/generic/redis-client.js.map +1 -1
  137. package/dist/cjs/clients/generic/s3-client.d.ts +1 -0
  138. package/dist/cjs/clients/generic/s3-client.js +19 -19
  139. package/dist/cjs/clients/generic/s3-client.js.map +1 -1
  140. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +2 -2
  141. package/dist/cjs/clients/generic/singlestore-db-client.js +8 -18
  142. package/dist/cjs/clients/generic/singlestore-db-client.js.map +1 -1
  143. package/dist/cjs/clients/generic/sqs-bundled-client.js +2 -2
  144. package/dist/cjs/clients/generic/sqs-bundled-client.js.map +1 -1
  145. package/dist/cjs/clients/generic/sqs-bundled-client.types.js +1 -1
  146. package/dist/cjs/clients/generic/sqs-bundled-client.types.js.map +1 -1
  147. package/dist/cjs/clients/generic/sqs-client.d.ts +1 -1
  148. package/dist/cjs/clients/generic/sqs-client.js +2 -2
  149. package/dist/cjs/clients/generic/sqs-client.js.map +1 -1
  150. package/dist/cjs/clients/generic/sqs-unbundle.js +7 -6
  151. package/dist/cjs/clients/generic/sqs-unbundle.js.map +1 -1
  152. package/dist/cjs/clients/internal-api/accounts-client.js +14 -14
  153. package/dist/cjs/clients/internal-api/accounts-client.js.map +1 -1
  154. package/dist/cjs/clients/internal-api/cache-lambda-client.js.map +1 -1
  155. package/dist/cjs/clients/internal-api/db-management-client.js.map +1 -1
  156. package/dist/cjs/clients/internal-api/destinations-client.d.ts +2 -1
  157. package/dist/cjs/clients/internal-api/destinations-client.js +15 -8
  158. package/dist/cjs/clients/internal-api/destinations-client.js.map +1 -1
  159. package/dist/cjs/clients/internal-api/event-collector-client.js.map +1 -1
  160. package/dist/cjs/clients/internal-api/identity-client.js.map +1 -1
  161. package/dist/cjs/clients/internal-api/shopify-app-install-client.js.map +1 -1
  162. package/dist/cjs/clients/internal-api/subscriptions-client.js.map +1 -1
  163. package/dist/cjs/clients/internal-api/users-auth-client.js +11 -11
  164. package/dist/cjs/clients/internal-api/users-auth-client.js.map +1 -1
  165. package/dist/cjs/clients/third-party/acuity-client.js.map +1 -1
  166. package/dist/cjs/clients/third-party/emailable-client.js.map +1 -1
  167. package/dist/cjs/clients/third-party/index.d.ts +1 -0
  168. package/dist/cjs/clients/third-party/index.js +1 -0
  169. package/dist/cjs/clients/third-party/index.js.map +1 -1
  170. package/dist/cjs/clients/third-party/liveintent-client.d.ts +11 -0
  171. package/dist/cjs/clients/third-party/liveintent-client.js +25 -0
  172. package/dist/cjs/clients/third-party/liveintent-client.js.map +1 -0
  173. package/dist/cjs/clients/third-party/loops-client.js.map +1 -1
  174. package/dist/cjs/clients/third-party/open-exchange-rates-client.js.map +1 -1
  175. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
  176. package/dist/cjs/clients/third-party/shopify-client.js +15 -15
  177. package/dist/cjs/clients/third-party/shopify-client.js.map +1 -1
  178. package/dist/cjs/constants/sqs.js +5 -5
  179. package/dist/cjs/constants/sqs.js.map +1 -1
  180. package/dist/cjs/helpers/account-users-helper.js.map +1 -1
  181. package/dist/cjs/helpers/acuity-helper.js.map +1 -1
  182. package/dist/cjs/helpers/api-key-auth-helper.d.ts +1 -2
  183. package/dist/cjs/helpers/api-key-auth-helper.js.map +1 -1
  184. package/dist/cjs/helpers/api-key-authorizer-helper.js.map +1 -1
  185. package/dist/cjs/helpers/cognito-auth-helper.d.ts +1 -2
  186. package/dist/cjs/helpers/cognito-auth-helper.js.map +1 -1
  187. package/dist/cjs/helpers/input-validation-helper.d.ts +1 -1
  188. package/dist/cjs/helpers/input-validation-helper.js.map +1 -1
  189. package/dist/cjs/helpers/logging-helper.d.ts +5 -5
  190. package/dist/cjs/helpers/logging-helper.js +7 -17
  191. package/dist/cjs/helpers/logging-helper.js.map +1 -1
  192. package/dist/cjs/helpers/order-calculation-helper.js.map +1 -1
  193. package/dist/cjs/helpers/public-api-response-helper.js.map +1 -1
  194. package/dist/cjs/helpers/response-helper.js.map +1 -1
  195. package/dist/cjs/helpers/shopify-helper.js.map +1 -1
  196. package/dist/cjs/helpers/sqs-utils.js +4 -8
  197. package/dist/cjs/helpers/sqs-utils.js.map +1 -1
  198. package/dist/cjs/libs/api-router/public-api-router.d.ts +2 -2
  199. package/dist/cjs/libs/api-router/public-api-router.js.map +1 -1
  200. package/dist/cjs/libs/api-router/route-matcher.js.map +1 -1
  201. package/dist/cjs/libs/click-id-parser.js +1 -1
  202. package/dist/cjs/libs/click-id-parser.js.map +1 -1
  203. package/dist/cjs/libs/compression.d.ts +1 -1
  204. package/dist/cjs/libs/compression.js.map +1 -1
  205. package/dist/cjs/libs/contacts.js.map +1 -1
  206. package/dist/cjs/libs/cookie.js +1 -1
  207. package/dist/cjs/libs/cookie.js.map +1 -1
  208. package/dist/cjs/libs/crypto.js.map +1 -1
  209. package/dist/cjs/libs/csv.js.map +1 -1
  210. package/dist/cjs/libs/currency.js.map +1 -1
  211. package/dist/cjs/libs/dates.d.ts +1 -0
  212. package/dist/cjs/libs/dates.js +18 -1
  213. package/dist/cjs/libs/dates.js.map +1 -1
  214. package/dist/cjs/libs/domain.js.map +1 -1
  215. package/dist/cjs/libs/emails.js.map +1 -1
  216. package/dist/cjs/libs/http-error.js.map +1 -1
  217. package/dist/cjs/libs/http-status-codes.js +1 -1
  218. package/dist/cjs/libs/http-status-codes.js.map +1 -1
  219. package/dist/cjs/libs/numbers.js.map +1 -1
  220. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +1 -0
  221. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +2 -2
  222. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  223. package/dist/cjs/libs/strings.js.map +1 -1
  224. package/dist/cjs/libs/traits.js.map +1 -1
  225. package/dist/cjs/libs/url.js.map +1 -1
  226. package/dist/cjs/services/acuity-api-service.js.map +1 -1
  227. package/dist/cjs/services/cache/product-cache-service.js.map +1 -1
  228. package/dist/cjs/services/cost/cost-calculation-types.js +2 -1
  229. package/dist/cjs/services/cost/cost-calculation-types.js.map +1 -1
  230. package/dist/cjs/services/cost/cost-calculator-service.js +10 -43
  231. package/dist/cjs/services/cost/cost-calculator-service.js.map +1 -1
  232. package/dist/cjs/services/cost/cost-currency-service.js.map +1 -1
  233. package/dist/cjs/services/cost/cost-filter-service.js +7 -16
  234. package/dist/cjs/services/cost/cost-filter-service.js.map +1 -1
  235. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js +9 -24
  236. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js.map +1 -1
  237. package/dist/cjs/services/db/accounts-db-service.js.map +1 -1
  238. package/dist/cjs/services/db/api-keys-db-service.js.map +1 -1
  239. package/dist/cjs/services/db/contact-enrichments-db-service.js.map +1 -1
  240. package/dist/cjs/services/db/custom-measures-db-service.js.map +1 -1
  241. package/dist/cjs/services/db/destinations-db-service.js.map +1 -1
  242. package/dist/cjs/services/db/identity-cache-db-service.d.ts +1 -1
  243. package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
  244. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +1 -5
  245. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  246. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +7 -21
  247. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  248. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js +7 -7
  249. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js.map +1 -1
  250. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js +3 -3
  251. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  252. package/dist/cjs/services/db/index.d.ts +0 -1
  253. package/dist/cjs/services/db/index.js +0 -1
  254. package/dist/cjs/services/db/index.js.map +1 -1
  255. package/dist/cjs/services/db/log-events-db-service.js.map +1 -1
  256. package/dist/cjs/services/db/pixels-db-service.js.map +1 -1
  257. package/dist/cjs/services/db/products-db-service.js +16 -45
  258. package/dist/cjs/services/db/products-db-service.js.map +1 -1
  259. package/dist/cjs/services/db/purchasable-contacts-db-service.js.map +1 -1
  260. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
  261. package/dist/cjs/services/db/shopify-app-installs-db-service.js.map +1 -1
  262. package/dist/cjs/services/db/shopify-products-cache-db-service.js.map +1 -1
  263. package/dist/cjs/services/db/subscriptions-db-service.js.map +1 -1
  264. package/dist/cjs/services/db/tracking-events-db-service.js.map +1 -1
  265. package/dist/cjs/services/db/user-accounts-db-service.js.map +1 -1
  266. package/dist/cjs/services/email-verification/contact-email-verification-service.js.map +1 -1
  267. package/dist/cjs/services/email-verification/email-verification-service.js.map +1 -1
  268. package/dist/cjs/services/eventbridge-integration-service.js.map +1 -1
  269. package/dist/cjs/services/events/build-collect-queue-tracking-event.js +2 -2
  270. package/dist/cjs/services/events/build-collect-queue-tracking-event.js.map +1 -1
  271. package/dist/cjs/services/events/collect-queue-tracking-service.js.map +1 -1
  272. package/dist/cjs/services/events/log-event-service.js.map +1 -1
  273. package/dist/cjs/services/events/metric-event-service.js.map +1 -1
  274. package/dist/cjs/services/events/tracking-event-sqs-service.js.map +1 -1
  275. package/dist/cjs/services/generic-cache-service.js.map +1 -1
  276. package/dist/cjs/services/index.d.ts +1 -1
  277. package/dist/cjs/services/index.js +1 -1
  278. package/dist/cjs/services/index.js.map +1 -1
  279. package/dist/cjs/services/ipdata-lookup-service.d.ts +1 -1
  280. package/dist/cjs/services/ipdata-lookup-service.js.map +1 -1
  281. package/dist/cjs/services/liveintent-api-service.d.ts +15 -0
  282. package/dist/cjs/services/liveintent-api-service.js +59 -0
  283. package/dist/cjs/services/liveintent-api-service.js.map +1 -0
  284. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
  285. package/dist/cjs/services/shopify/shopify-graphql-transformer.js +1 -1
  286. package/dist/cjs/services/shopify/shopify-graphql-transformer.js.map +1 -1
  287. package/dist/cjs/types/index.d.ts +1 -0
  288. package/dist/cjs/types/index.js +8 -17
  289. package/dist/cjs/types/index.js.map +1 -1
  290. package/dist/cjs/types/internal-events/event-detail-types.js +4 -4
  291. package/dist/cjs/types/internal-events/event-detail-types.js.map +1 -1
  292. package/dist/cjs/types/liveintent-types.d.ts +8 -0
  293. package/dist/cjs/types/liveintent-types.js +3 -0
  294. package/dist/cjs/types/liveintent-types.js.map +1 -0
  295. package/dist/cjs/types/public-api-types.js +1 -1
  296. package/dist/cjs/types/public-api-types.js.map +1 -1
  297. package/dist/cjs/types/shopify-graphql-types/admin.types.js +491 -491
  298. package/dist/cjs/types/shopify-graphql-types/admin.types.js.map +1 -1
  299. package/dist/cjs/types/shopify-rest-types.d.ts +1 -1
  300. package/dist/cjs/utils/compression.d.ts +2 -0
  301. package/dist/cjs/utils/compression.js +11 -11
  302. package/dist/cjs/utils/compression.js.map +1 -1
  303. package/dist/cjs/utils/custom-measure-formula-utils.js.map +1 -1
  304. package/dist/cjs/utils/retry-envelope.js +4 -3
  305. package/dist/cjs/utils/retry-envelope.js.map +1 -1
  306. package/dist/cjs/utils/size.js +3 -2
  307. package/dist/cjs/utils/size.js.map +1 -1
  308. package/dist/esm/__tests__/clients/acuity-client.spec.js +5 -6
  309. package/dist/esm/__tests__/clients/acuity-client.spec.js.map +1 -1
  310. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js +0 -1
  311. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
  312. package/dist/esm/__tests__/clients/dynamodb-client.spec.js +42 -41
  313. package/dist/esm/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  314. package/dist/esm/__tests__/clients/event-collector-client.spec.js +18 -18
  315. package/dist/esm/__tests__/clients/event-collector-client.spec.js.map +1 -1
  316. package/dist/esm/__tests__/clients/liveintent-client.spec.js +35 -0
  317. package/dist/esm/__tests__/clients/liveintent-client.spec.js.map +1 -0
  318. package/dist/esm/__tests__/clients/open-exchange-rates-client.spec.js +3 -4
  319. package/dist/esm/__tests__/clients/open-exchange-rates-client.spec.js.map +1 -1
  320. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +47 -55
  321. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
  322. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js +1 -3
  323. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -1
  324. package/dist/esm/__tests__/clients/sqs-client.spec.js +21 -22
  325. package/dist/esm/__tests__/clients/sqs-client.spec.js.map +1 -1
  326. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +8 -9
  327. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
  328. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +5 -6
  329. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -1
  330. package/dist/esm/__tests__/db/destinations-db-service.spec.js +11 -9
  331. package/dist/esm/__tests__/db/destinations-db-service.spec.js.map +1 -1
  332. package/dist/esm/__tests__/db/products-db-service.spec.js +8 -9
  333. package/dist/esm/__tests__/db/products-db-service.spec.js.map +1 -1
  334. package/dist/esm/__tests__/db/shared-read-db-services.spec.js +6 -7
  335. package/dist/esm/__tests__/db/shared-read-db-services.spec.js.map +1 -1
  336. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js +12 -13
  337. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js.map +1 -1
  338. package/dist/esm/__tests__/db/subscriptions-db-service.spec.js +11 -12
  339. package/dist/esm/__tests__/db/subscriptions-db-service.spec.js.map +1 -1
  340. package/dist/esm/__tests__/db/user-accounts-db-service.spec.js +6 -7
  341. package/dist/esm/__tests__/db/user-accounts-db-service.spec.js.map +1 -1
  342. package/dist/esm/__tests__/helpers/account-users-helper.spec.js +3 -4
  343. package/dist/esm/__tests__/helpers/account-users-helper.spec.js.map +1 -1
  344. package/dist/esm/__tests__/helpers/acuity-helper.spec.js +0 -1
  345. package/dist/esm/__tests__/helpers/acuity-helper.spec.js.map +1 -1
  346. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +3 -4
  347. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -1
  348. package/dist/esm/__tests__/helpers/cognito-auth-helper.spec.js +1 -2
  349. package/dist/esm/__tests__/helpers/cognito-auth-helper.spec.js.map +1 -1
  350. package/dist/esm/__tests__/helpers/order-calculation-helper.spec.js +4 -5
  351. package/dist/esm/__tests__/helpers/order-calculation-helper.spec.js.map +1 -1
  352. package/dist/esm/__tests__/helpers/public-api-response-helper.spec.js +1 -2
  353. package/dist/esm/__tests__/helpers/public-api-response-helper.spec.js.map +1 -1
  354. package/dist/esm/__tests__/identity-cache/helpers.spec.js +1 -2
  355. package/dist/esm/__tests__/identity-cache/helpers.spec.js.map +1 -1
  356. package/dist/esm/__tests__/identity-cache/identity-cache-alias-write.spec.js +15 -16
  357. package/dist/esm/__tests__/identity-cache/identity-cache-alias-write.spec.js.map +1 -1
  358. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +1 -2
  359. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
  360. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +29 -52
  361. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
  362. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +31 -40
  363. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  364. package/dist/esm/__tests__/identity-cache/identity-client.spec.js +21 -24
  365. package/dist/esm/__tests__/identity-cache/identity-client.spec.js.map +1 -1
  366. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +0 -1
  367. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -1
  368. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +4 -17
  369. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -1
  370. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js +0 -1
  371. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -1
  372. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +2 -9
  373. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -1
  374. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +0 -1
  375. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -1
  376. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +7 -29
  377. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -1
  378. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.d.ts +18 -14
  379. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js +30 -37
  380. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -1
  381. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +37 -16
  382. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
  383. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js +5 -6
  384. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
  385. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +9 -10
  386. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
  387. package/dist/esm/__tests__/libs/compress-decompress.spec.js +1 -2
  388. package/dist/esm/__tests__/libs/compress-decompress.spec.js.map +1 -1
  389. package/dist/esm/__tests__/libs/contacts.spec.js +0 -1
  390. package/dist/esm/__tests__/libs/contacts.spec.js.map +1 -1
  391. package/dist/esm/__tests__/libs/currency.spec.js +3 -4
  392. package/dist/esm/__tests__/libs/currency.spec.js.map +1 -1
  393. package/dist/esm/__tests__/libs/dates.spec.js +23 -11
  394. package/dist/esm/__tests__/libs/dates.spec.js.map +1 -1
  395. package/dist/esm/__tests__/libs/domain.spec.js +0 -1
  396. package/dist/esm/__tests__/libs/domain.spec.js.map +1 -1
  397. package/dist/esm/__tests__/libs/numbers.spec.js +0 -1
  398. package/dist/esm/__tests__/libs/numbers.spec.js.map +1 -1
  399. package/dist/esm/__tests__/s3-client/s3-client.spec.js +7 -6
  400. package/dist/esm/__tests__/s3-client/s3-client.spec.js.map +1 -1
  401. package/dist/esm/__tests__/services/acuity-api-service.spec.js +10 -13
  402. package/dist/esm/__tests__/services/acuity-api-service.spec.js.map +1 -1
  403. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js +0 -1
  404. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -1
  405. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js +280 -518
  406. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -1
  407. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js +3 -4
  408. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js.map +1 -1
  409. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js +22 -19
  410. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js.map +1 -1
  411. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +41 -133
  412. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -1
  413. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js +6 -8
  414. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -1
  415. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js +5 -10
  416. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -1
  417. package/dist/esm/__tests__/services/events/collect-queue-tracking-service.spec.js +14 -17
  418. package/dist/esm/__tests__/services/events/collect-queue-tracking-service.spec.js.map +1 -1
  419. package/dist/esm/__tests__/services/events/tracking-event-sqs-service.spec.js +16 -19
  420. package/dist/esm/__tests__/services/events/tracking-event-sqs-service.spec.js.map +1 -1
  421. package/dist/esm/__tests__/services/liveintent-api-service.spec.js +65 -0
  422. package/dist/esm/__tests__/services/liveintent-api-service.spec.js.map +1 -0
  423. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +1 -2
  424. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js.map +1 -1
  425. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js +14 -15
  426. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
  427. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js +1 -2
  428. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -1
  429. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js +0 -1
  430. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -1
  431. package/dist/esm/clients/generic/cognito-client.js +2 -2
  432. package/dist/esm/clients/generic/cognito-client.js.map +1 -1
  433. package/dist/esm/clients/generic/dynamodb-client.js +9 -9
  434. package/dist/esm/clients/generic/dynamodb-client.js.map +1 -1
  435. package/dist/esm/clients/generic/eventbridge-client.js +1 -1
  436. package/dist/esm/clients/generic/eventbridge-client.js.map +1 -1
  437. package/dist/esm/clients/generic/http-client.js +5 -5
  438. package/dist/esm/clients/generic/http-client.js.map +1 -1
  439. package/dist/esm/clients/generic/lambda-invoke-client.js.map +1 -1
  440. package/dist/esm/clients/generic/location-client.js +1 -1
  441. package/dist/esm/clients/generic/location-client.js.map +1 -1
  442. package/dist/esm/clients/generic/redis-client.js +2 -13
  443. package/dist/esm/clients/generic/redis-client.js.map +1 -1
  444. package/dist/esm/clients/generic/s3-client.d.ts +1 -0
  445. package/dist/esm/clients/generic/s3-client.js +1 -1
  446. package/dist/esm/clients/generic/s3-client.js.map +1 -1
  447. package/dist/esm/clients/generic/singlestore-db-client.d.ts +2 -2
  448. package/dist/esm/clients/generic/singlestore-db-client.js +1 -1
  449. package/dist/esm/clients/generic/singlestore-db-client.js.map +1 -1
  450. package/dist/esm/clients/generic/sqs-bundled-client.js +2 -2
  451. package/dist/esm/clients/generic/sqs-bundled-client.js.map +1 -1
  452. package/dist/esm/clients/generic/sqs-client.d.ts +1 -1
  453. package/dist/esm/clients/generic/sqs-client.js +2 -2
  454. package/dist/esm/clients/generic/sqs-client.js.map +1 -1
  455. package/dist/esm/clients/generic/sqs-unbundle.js +2 -2
  456. package/dist/esm/clients/generic/sqs-unbundle.js.map +1 -1
  457. package/dist/esm/clients/internal-api/accounts-client.js +1 -1
  458. package/dist/esm/clients/internal-api/accounts-client.js.map +1 -1
  459. package/dist/esm/clients/internal-api/cache-lambda-client.js.map +1 -1
  460. package/dist/esm/clients/internal-api/destinations-client.d.ts +2 -1
  461. package/dist/esm/clients/internal-api/destinations-client.js +8 -1
  462. package/dist/esm/clients/internal-api/destinations-client.js.map +1 -1
  463. package/dist/esm/clients/internal-api/event-collector-client.js.map +1 -1
  464. package/dist/esm/clients/internal-api/identity-client.js.map +1 -1
  465. package/dist/esm/clients/internal-api/users-auth-client.js +1 -1
  466. package/dist/esm/clients/internal-api/users-auth-client.js.map +1 -1
  467. package/dist/esm/clients/third-party/emailable-client.js.map +1 -1
  468. package/dist/esm/clients/third-party/index.d.ts +1 -0
  469. package/dist/esm/clients/third-party/index.js +1 -0
  470. package/dist/esm/clients/third-party/index.js.map +1 -1
  471. package/dist/esm/clients/third-party/liveintent-client.d.ts +11 -0
  472. package/dist/esm/clients/third-party/liveintent-client.js +21 -0
  473. package/dist/esm/clients/third-party/liveintent-client.js.map +1 -0
  474. package/dist/esm/clients/third-party/loops-client.js.map +1 -1
  475. package/dist/esm/clients/third-party/open-exchange-rates-client.js.map +1 -1
  476. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +1 -1
  477. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
  478. package/dist/esm/clients/third-party/shopify-client.js +1 -1
  479. package/dist/esm/clients/third-party/shopify-client.js.map +1 -1
  480. package/dist/esm/constants/sqs.js +3 -3
  481. package/dist/esm/constants/sqs.js.map +1 -1
  482. package/dist/esm/helpers/account-users-helper.js.map +1 -1
  483. package/dist/esm/helpers/acuity-helper.js.map +1 -1
  484. package/dist/esm/helpers/api-key-auth-helper.d.ts +1 -2
  485. package/dist/esm/helpers/api-key-auth-helper.js.map +1 -1
  486. package/dist/esm/helpers/api-key-authorizer-helper.js.map +1 -1
  487. package/dist/esm/helpers/cognito-auth-helper.d.ts +1 -2
  488. package/dist/esm/helpers/cognito-auth-helper.js.map +1 -1
  489. package/dist/esm/helpers/input-validation-helper.d.ts +1 -1
  490. package/dist/esm/helpers/input-validation-helper.js.map +1 -1
  491. package/dist/esm/helpers/logging-helper.d.ts +5 -5
  492. package/dist/esm/helpers/logging-helper.js.map +1 -1
  493. package/dist/esm/helpers/order-calculation-helper.js.map +1 -1
  494. package/dist/esm/helpers/public-api-response-helper.js.map +1 -1
  495. package/dist/esm/helpers/response-helper.js.map +1 -1
  496. package/dist/esm/helpers/shopify-helper.js.map +1 -1
  497. package/dist/esm/helpers/sqs-utils.js +1 -6
  498. package/dist/esm/helpers/sqs-utils.js.map +1 -1
  499. package/dist/esm/libs/api-router/public-api-router.d.ts +2 -2
  500. package/dist/esm/libs/api-router/public-api-router.js.map +1 -1
  501. package/dist/esm/libs/api-router/route-matcher.js.map +1 -1
  502. package/dist/esm/libs/click-id-parser.js.map +1 -1
  503. package/dist/esm/libs/compression.d.ts +1 -1
  504. package/dist/esm/libs/compression.js.map +1 -1
  505. package/dist/esm/libs/contacts.js.map +1 -1
  506. package/dist/esm/libs/cookie.js.map +1 -1
  507. package/dist/esm/libs/csv.js.map +1 -1
  508. package/dist/esm/libs/currency.js.map +1 -1
  509. package/dist/esm/libs/dates.d.ts +1 -0
  510. package/dist/esm/libs/dates.js +16 -0
  511. package/dist/esm/libs/dates.js.map +1 -1
  512. package/dist/esm/libs/domain.js.map +1 -1
  513. package/dist/esm/libs/emails.js.map +1 -1
  514. package/dist/esm/libs/http-error.js.map +1 -1
  515. package/dist/esm/libs/numbers.js.map +1 -1
  516. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +1 -0
  517. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +2 -2
  518. package/dist/esm/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  519. package/dist/esm/libs/strings.js.map +1 -1
  520. package/dist/esm/libs/traits.js.map +1 -1
  521. package/dist/esm/services/acuity-api-service.js.map +1 -1
  522. package/dist/esm/services/cache/product-cache-service.js.map +1 -1
  523. package/dist/esm/services/cost/cost-calculation-types.js.map +1 -1
  524. package/dist/esm/services/cost/cost-calculator-service.js +10 -43
  525. package/dist/esm/services/cost/cost-calculator-service.js.map +1 -1
  526. package/dist/esm/services/cost/cost-currency-service.js.map +1 -1
  527. package/dist/esm/services/cost/cost-filter-service.js +7 -16
  528. package/dist/esm/services/cost/cost-filter-service.js.map +1 -1
  529. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js +9 -24
  530. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js.map +1 -1
  531. package/dist/esm/services/db/accounts-db-service.js.map +1 -1
  532. package/dist/esm/services/db/api-keys-db-service.js.map +1 -1
  533. package/dist/esm/services/db/contact-enrichments-db-service.js.map +1 -1
  534. package/dist/esm/services/db/custom-measures-db-service.js.map +1 -1
  535. package/dist/esm/services/db/identity-cache-db-service.d.ts +1 -1
  536. package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
  537. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +2 -6
  538. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  539. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +8 -22
  540. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  541. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  542. package/dist/esm/services/db/index.d.ts +0 -1
  543. package/dist/esm/services/db/index.js +0 -1
  544. package/dist/esm/services/db/index.js.map +1 -1
  545. package/dist/esm/services/db/log-events-db-service.js.map +1 -1
  546. package/dist/esm/services/db/products-db-service.js +16 -45
  547. package/dist/esm/services/db/products-db-service.js.map +1 -1
  548. package/dist/esm/services/db/purchasable-contacts-db-service.js.map +1 -1
  549. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
  550. package/dist/esm/services/db/shopify-app-installs-db-service.js.map +1 -1
  551. package/dist/esm/services/db/shopify-products-cache-db-service.js.map +1 -1
  552. package/dist/esm/services/db/subscriptions-db-service.js.map +1 -1
  553. package/dist/esm/services/db/tracking-events-db-service.js.map +1 -1
  554. package/dist/esm/services/email-verification/contact-email-verification-service.js.map +1 -1
  555. package/dist/esm/services/email-verification/email-verification-service.js.map +1 -1
  556. package/dist/esm/services/events/build-collect-queue-tracking-event.js.map +1 -1
  557. package/dist/esm/services/events/collect-queue-tracking-service.js +1 -1
  558. package/dist/esm/services/events/collect-queue-tracking-service.js.map +1 -1
  559. package/dist/esm/services/events/log-event-service.js.map +1 -1
  560. package/dist/esm/services/events/metric-event-service.js.map +1 -1
  561. package/dist/esm/services/events/tracking-event-sqs-service.js.map +1 -1
  562. package/dist/esm/services/generic-cache-service.js.map +1 -1
  563. package/dist/esm/services/index.d.ts +1 -1
  564. package/dist/esm/services/index.js +1 -1
  565. package/dist/esm/services/index.js.map +1 -1
  566. package/dist/esm/services/ipdata-lookup-service.d.ts +1 -1
  567. package/dist/esm/services/ipdata-lookup-service.js.map +1 -1
  568. package/dist/esm/services/liveintent-api-service.d.ts +15 -0
  569. package/dist/esm/services/liveintent-api-service.js +55 -0
  570. package/dist/esm/services/liveintent-api-service.js.map +1 -0
  571. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
  572. package/dist/esm/services/shopify/shopify-graphql-transformer.js +1 -1
  573. package/dist/esm/services/shopify/shopify-graphql-transformer.js.map +1 -1
  574. package/dist/esm/types/index.d.ts +1 -0
  575. package/dist/esm/types/index.js +1 -0
  576. package/dist/esm/types/index.js.map +1 -1
  577. package/dist/esm/types/liveintent-types.d.ts +8 -0
  578. package/dist/esm/types/liveintent-types.js +2 -0
  579. package/dist/esm/types/liveintent-types.js.map +1 -0
  580. package/dist/esm/types/shopify-rest-types.d.ts +1 -1
  581. package/dist/esm/utils/compression.d.ts +2 -0
  582. package/dist/esm/utils/compression.js +3 -3
  583. package/dist/esm/utils/compression.js.map +1 -1
  584. package/dist/esm/utils/custom-measure-formula-utils.js.map +1 -1
  585. package/dist/esm/utils/retry-envelope.js.map +1 -1
  586. package/dist/esm/utils/size.js.map +1 -1
  587. package/package.json +136 -139
  588. package/dist/cjs/__tests__/clients/client-timeout-inventory.spec.js +0 -21
  589. package/dist/cjs/__tests__/clients/client-timeout-inventory.spec.js.map +0 -1
  590. package/dist/cjs/__tests__/clients/redis-client.spec.js +0 -79
  591. package/dist/cjs/__tests__/clients/redis-client.spec.js.map +0 -1
  592. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js +0 -40
  593. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +0 -1
  594. package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +0 -17
  595. package/dist/cjs/clients/third-party/exchange-rate-api-client.js +0 -20
  596. package/dist/cjs/clients/third-party/exchange-rate-api-client.js.map +0 -1
  597. package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +0 -12
  598. package/dist/cjs/services/currency-exchange-rate-lookup-service.js +0 -98
  599. package/dist/cjs/services/currency-exchange-rate-lookup-service.js.map +0 -1
  600. package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +0 -21
  601. package/dist/cjs/services/db/currency-exchange-rates-db-service.js +0 -40
  602. package/dist/cjs/services/db/currency-exchange-rates-db-service.js.map +0 -1
  603. package/dist/esm/__tests__/clients/client-timeout-inventory.spec.js +0 -19
  604. package/dist/esm/__tests__/clients/client-timeout-inventory.spec.js.map +0 -1
  605. package/dist/esm/__tests__/clients/redis-client.spec.d.ts +0 -1
  606. package/dist/esm/__tests__/clients/redis-client.spec.js +0 -77
  607. package/dist/esm/__tests__/clients/redis-client.spec.js.map +0 -1
  608. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts +0 -1
  609. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js +0 -38
  610. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +0 -1
  611. package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +0 -17
  612. package/dist/esm/clients/third-party/exchange-rate-api-client.js +0 -16
  613. package/dist/esm/clients/third-party/exchange-rate-api-client.js.map +0 -1
  614. package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +0 -12
  615. package/dist/esm/services/currency-exchange-rate-lookup-service.js +0 -94
  616. package/dist/esm/services/currency-exchange-rate-lookup-service.js.map +0 -1
  617. package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +0 -21
  618. package/dist/esm/services/db/currency-exchange-rates-db-service.js +0 -36
  619. package/dist/esm/services/db/currency-exchange-rates-db-service.js.map +0 -1
  620. /package/dist/cjs/__tests__/clients/{client-timeout-inventory.spec.d.ts → liveintent-client.spec.d.ts} +0 -0
  621. /package/dist/cjs/__tests__/{clients/redis-client.spec.d.ts → services/liveintent-api-service.spec.d.ts} +0 -0
  622. /package/dist/{cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts → esm/__tests__/clients/liveintent-client.spec.d.ts} +0 -0
  623. /package/dist/esm/__tests__/{clients/client-timeout-inventory.spec.d.ts → services/liveintent-api-service.spec.d.ts} +0 -0
@@ -1,25 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
5
- vitest_1.vi.mock('../../clients/index.js', () => ({
3
+ jest.mock('../../clients/index.js', () => ({
6
4
  DynamoDbClient: {
7
- safeGet: vitest_1.vi.fn(),
8
- safePut: vitest_1.vi.fn(),
9
- safeDelete: vitest_1.vi.fn(),
10
- safeBatchGet: vitest_1.vi.fn(),
11
- safeBatchWrite: vitest_1.vi.fn(),
12
- safeQueryByGSI: vitest_1.vi.fn(),
13
- batchGet: vitest_1.vi.fn(),
14
- batchWrite: vitest_1.vi.fn(),
5
+ safeGet: jest.fn(),
6
+ safePut: jest.fn(),
7
+ safeDelete: jest.fn(),
8
+ safeBatchGet: jest.fn(),
9
+ safeBatchWrite: jest.fn(),
10
+ safeQueryByGSI: jest.fn(),
11
+ batchGet: jest.fn(),
12
+ batchWrite: jest.fn(),
15
13
  },
16
14
  }));
17
- vitest_1.vi.mock('../../helpers/index.js', () => ({
15
+ jest.mock('../../helpers/index.js', () => ({
18
16
  Logger: {
19
- debug: vitest_1.vi.fn(),
20
- info: vitest_1.vi.fn(),
21
- warn: vitest_1.vi.fn(),
22
- error: vitest_1.vi.fn(),
17
+ debug: jest.fn(),
18
+ info: jest.fn(),
19
+ warn: jest.fn(),
20
+ error: jest.fn(),
23
21
  },
24
22
  }));
25
23
  const identity_cache_dynamodb_db_service_js_1 = require("../../services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js");
@@ -28,18 +26,18 @@ const index_js_2 = require("../../helpers/index.js");
28
26
  const constants_js_1 = require("../../services/db/identity-cache-dynamodb-service/constants.js");
29
27
  const mockedDynamoDbClient = index_js_1.DynamoDbClient;
30
28
  const mockedLogger = index_js_2.Logger;
31
- (0, vitest_1.describe)('IdentityCacheDynamoDbDbService.getIdentityFromCachePure()', () => {
29
+ describe('IdentityCacheDynamoDbDbService.getIdentityFromCachePure()', () => {
32
30
  const pixelId = 'pixel-test-123';
33
- (0, vitest_1.beforeEach)(() => {
34
- vitest_1.vi.clearAllMocks();
31
+ beforeEach(() => {
32
+ jest.clearAllMocks();
35
33
  mockedDynamoDbClient.safeGet.mockReset();
36
34
  mockedDynamoDbClient.safePut.mockReset();
37
35
  mockedDynamoDbClient.safeBatchWrite.mockReset();
38
36
  mockedDynamoDbClient.batchGet.mockReset();
39
37
  mockedDynamoDbClient.batchWrite.mockReset();
40
38
  });
41
- (0, vitest_1.describe)('cache hit by identity ID', () => {
42
- (0, vitest_1.it)('should return cachedIdentity with lookupPath=identity_id and cacheHit=true', async () => {
39
+ describe('cache hit by identity ID', () => {
40
+ it('should return cachedIdentity with lookupPath=identity_id and cacheHit=true', async () => {
43
41
  const incomingIdentity = {
44
42
  identityId: 'identity-123',
45
43
  traits: { emails: ['test@email.com'] },
@@ -59,14 +57,14 @@ const mockedLogger = index_js_2.Logger;
59
57
  };
60
58
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedRecord);
61
59
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
62
- (0, vitest_1.expect)(result.cacheHit).toBe(true);
63
- (0, vitest_1.expect)(result.lookupPath).toBe('identity_id');
64
- (0, vitest_1.expect)(result.cachedIdentity).toEqual(cachedRecord.response);
65
- (0, vitest_1.expect)(result.discoveredIdentityId).toBeUndefined();
66
- (0, vitest_1.expect)(mockedDynamoDbClient.safeGet).toHaveBeenCalledTimes(1);
67
- (0, vitest_1.expect)(mockedDynamoDbClient.safeGet).toHaveBeenCalledWith(vitest_1.expect.any(String), 'pk', `identity#${pixelId}#identity-123`);
68
- });
69
- (0, vitest_1.it)('should return cachedIdentity with all traits preserved', async () => {
60
+ expect(result.cacheHit).toBe(true);
61
+ expect(result.lookupPath).toBe('identity_id');
62
+ expect(result.cachedIdentity).toEqual(cachedRecord.response);
63
+ expect(result.discoveredIdentityId).toBeUndefined();
64
+ expect(mockedDynamoDbClient.safeGet).toHaveBeenCalledTimes(1);
65
+ expect(mockedDynamoDbClient.safeGet).toHaveBeenCalledWith(expect.any(String), 'pk', `identity#${pixelId}#identity-123`);
66
+ });
67
+ it('should return cachedIdentity with all traits preserved', async () => {
70
68
  const incomingIdentity = {
71
69
  identityId: 'full-traits-id',
72
70
  traits: { emails: ['new@email.com'] },
@@ -93,13 +91,13 @@ const mockedLogger = index_js_2.Logger;
93
91
  };
94
92
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedRecord);
95
93
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
96
- (0, vitest_1.expect)(result.cacheHit).toBe(true);
97
- (0, vitest_1.expect)(result.cachedIdentity).toEqual(fullCachedIdentity);
98
- (0, vitest_1.expect)(result.cachedIdentity?.traits?.emails).toHaveLength(2);
99
- (0, vitest_1.expect)(result.cachedIdentity?.traits?.phones).toHaveLength(2);
100
- (0, vitest_1.expect)(result.cachedIdentity?.traits?.addresses).toHaveLength(1);
94
+ expect(result.cacheHit).toBe(true);
95
+ expect(result.cachedIdentity).toEqual(fullCachedIdentity);
96
+ expect(result.cachedIdentity?.traits?.emails).toHaveLength(2);
97
+ expect(result.cachedIdentity?.traits?.phones).toHaveLength(2);
98
+ expect(result.cachedIdentity?.traits?.addresses).toHaveLength(1);
101
99
  });
102
- (0, vitest_1.it)('should NOT perform any merge logic', async () => {
100
+ it('should NOT perform any merge logic', async () => {
103
101
  const incomingIdentity = {
104
102
  identityId: 'merge-test-id',
105
103
  traits: {
@@ -122,11 +120,11 @@ const mockedLogger = index_js_2.Logger;
122
120
  };
123
121
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedRecord);
124
122
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
125
- (0, vitest_1.expect)(result.cachedIdentity?.traits?.emails).toEqual(['old-email@test.com']);
126
- (0, vitest_1.expect)(result.cachedIdentity?.traits?.phones).toEqual(['111-2222']);
127
- (0, vitest_1.expect)(result.cachedIdentity?.traits?.emails).not.toContain('new-email@test.com');
123
+ expect(result.cachedIdentity?.traits?.emails).toEqual(['old-email@test.com']);
124
+ expect(result.cachedIdentity?.traits?.phones).toEqual(['111-2222']);
125
+ expect(result.cachedIdentity?.traits?.emails).not.toContain('new-email@test.com');
128
126
  });
129
- (0, vitest_1.it)('should NOT perform staleness computation', async () => {
127
+ it('should NOT perform staleness computation', async () => {
130
128
  const incomingIdentity = {
131
129
  identityId: 'stale-test-id',
132
130
  traits: {
@@ -147,15 +145,15 @@ const mockedLogger = index_js_2.Logger;
147
145
  };
148
146
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedRecord);
149
147
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
150
- (0, vitest_1.expect)(result).not.toHaveProperty('isCacheStale');
151
- (0, vitest_1.expect)(result).not.toHaveProperty('staleTier');
152
- (0, vitest_1.expect)(result).not.toHaveProperty('staleTracker');
153
- (0, vitest_1.expect)(result).not.toHaveProperty('writeReason');
154
- (0, vitest_1.expect)(result).not.toHaveProperty('skipNeptune');
148
+ expect(result).not.toHaveProperty('isCacheStale');
149
+ expect(result).not.toHaveProperty('staleTier');
150
+ expect(result).not.toHaveProperty('staleTracker');
151
+ expect(result).not.toHaveProperty('writeReason');
152
+ expect(result).not.toHaveProperty('skipNeptune');
155
153
  });
156
154
  });
157
- (0, vitest_1.describe)('cache hit by email pointer', () => {
158
- (0, vitest_1.it)('should return discoveredIdentityId with lookupPath=email_pointer and cacheHit=true', async () => {
155
+ describe('cache hit by email pointer', () => {
156
+ it('should return discoveredIdentityId with lookupPath=email_pointer and cacheHit=true', async () => {
159
157
  const incomingIdentity = {
160
158
  traits: { emails: ['lookup@email.com'] },
161
159
  };
@@ -167,12 +165,12 @@ const mockedLogger = index_js_2.Logger;
167
165
  };
168
166
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(emailPointerRecord);
169
167
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
170
- (0, vitest_1.expect)(result.cacheHit).toBe(true);
171
- (0, vitest_1.expect)(result.lookupPath).toBe('email_pointer');
172
- (0, vitest_1.expect)(result.discoveredIdentityId).toBe('discovered-identity-456');
173
- (0, vitest_1.expect)(result.cachedIdentity).toBeUndefined();
168
+ expect(result.cacheHit).toBe(true);
169
+ expect(result.lookupPath).toBe('email_pointer');
170
+ expect(result.discoveredIdentityId).toBe('discovered-identity-456');
171
+ expect(result.cachedIdentity).toBeUndefined();
174
172
  });
175
- (0, vitest_1.it)('should use first email in emails array for lookup', async () => {
173
+ it('should use first email in emails array for lookup', async () => {
176
174
  const incomingIdentity = {
177
175
  traits: { emails: ['first@email.com', 'second@email.com'] },
178
176
  };
@@ -184,10 +182,10 @@ const mockedLogger = index_js_2.Logger;
184
182
  };
185
183
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(emailPointerRecord);
186
184
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
187
- (0, vitest_1.expect)(result.discoveredIdentityId).toBe('pointer-identity-789');
188
- (0, vitest_1.expect)(mockedDynamoDbClient.safeGet).toHaveBeenCalledWith(vitest_1.expect.any(String), 'pk', `email#${pixelId}#first@email.com`);
185
+ expect(result.discoveredIdentityId).toBe('pointer-identity-789');
186
+ expect(mockedDynamoDbClient.safeGet).toHaveBeenCalledWith(expect.any(String), 'pk', `email#${pixelId}#first@email.com`);
189
187
  });
190
- (0, vitest_1.it)('should NOT merge traits when returning email pointer discovery', async () => {
188
+ it('should NOT merge traits when returning email pointer discovery', async () => {
191
189
  const incomingIdentity = {
192
190
  traits: {
193
191
  emails: ['discovery@email.com'],
@@ -202,35 +200,35 @@ const mockedLogger = index_js_2.Logger;
202
200
  };
203
201
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(emailPointerRecord);
204
202
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
205
- (0, vitest_1.expect)(result.cachedIdentity).toBeUndefined();
206
- (0, vitest_1.expect)(result.discoveredIdentityId).toBe('discovered-id');
203
+ expect(result.cachedIdentity).toBeUndefined();
204
+ expect(result.discoveredIdentityId).toBe('discovered-id');
207
205
  });
208
206
  });
209
- (0, vitest_1.describe)('cache miss', () => {
210
- (0, vitest_1.it)('should return lookupPath=miss and cacheHit=false when identity not found', async () => {
207
+ describe('cache miss', () => {
208
+ it('should return lookupPath=miss and cacheHit=false when identity not found', async () => {
211
209
  const incomingIdentity = {
212
210
  identityId: 'nonexistent-identity',
213
211
  traits: { emails: ['test@email.com'] },
214
212
  };
215
213
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(null);
216
214
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
217
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
218
- (0, vitest_1.expect)(result.lookupPath).toBe('identity_id');
219
- (0, vitest_1.expect)(result.cachedIdentity).toBeUndefined();
220
- (0, vitest_1.expect)(result.discoveredIdentityId).toBeUndefined();
215
+ expect(result.cacheHit).toBe(false);
216
+ expect(result.lookupPath).toBe('identity_id');
217
+ expect(result.cachedIdentity).toBeUndefined();
218
+ expect(result.discoveredIdentityId).toBeUndefined();
221
219
  });
222
- (0, vitest_1.it)('should return lookupPath=miss and cacheHit=false when email pointer not found', async () => {
220
+ it('should return lookupPath=miss and cacheHit=false when email pointer not found', async () => {
223
221
  const incomingIdentity = {
224
222
  traits: { emails: ['unknown@email.com'] },
225
223
  };
226
224
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(null);
227
225
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
228
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
229
- (0, vitest_1.expect)(result.lookupPath).toBe('miss');
230
- (0, vitest_1.expect)(result.cachedIdentity).toBeUndefined();
231
- (0, vitest_1.expect)(result.discoveredIdentityId).toBeUndefined();
226
+ expect(result.cacheHit).toBe(false);
227
+ expect(result.lookupPath).toBe('miss');
228
+ expect(result.cachedIdentity).toBeUndefined();
229
+ expect(result.discoveredIdentityId).toBeUndefined();
232
230
  });
233
- (0, vitest_1.it)('should return lookupPath=miss when cached record has no response field', async () => {
231
+ it('should return lookupPath=miss when cached record has no response field', async () => {
234
232
  const incomingIdentity = {
235
233
  identityId: 'no-response-identity',
236
234
  traits: { emails: ['test@email.com'] },
@@ -243,83 +241,83 @@ const mockedLogger = index_js_2.Logger;
243
241
  };
244
242
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(incompleteRecord);
245
243
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
246
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
247
- (0, vitest_1.expect)(result.lookupPath).toBe('identity_id');
248
- (0, vitest_1.expect)(result.cachedIdentity).toBeUndefined();
244
+ expect(result.cacheHit).toBe(false);
245
+ expect(result.lookupPath).toBe('identity_id');
246
+ expect(result.cachedIdentity).toBeUndefined();
249
247
  });
250
- (0, vitest_1.it)('should return lookupPath=miss when no email provided for pointer lookup', async () => {
248
+ it('should return lookupPath=miss when no email provided for pointer lookup', async () => {
251
249
  const incomingIdentity = {
252
250
  traits: { phones: ['555-1234'] },
253
251
  };
254
252
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
255
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
256
- (0, vitest_1.expect)(result.lookupPath).toBe('miss');
257
- (0, vitest_1.expect)(mockedDynamoDbClient.safeGet).not.toHaveBeenCalled();
253
+ expect(result.cacheHit).toBe(false);
254
+ expect(result.lookupPath).toBe('miss');
255
+ expect(mockedDynamoDbClient.safeGet).not.toHaveBeenCalled();
258
256
  });
259
257
  });
260
- (0, vitest_1.describe)('invalid input handling', () => {
261
- (0, vitest_1.it)('should return cache miss for undefined pixelId', async () => {
258
+ describe('invalid input handling', () => {
259
+ it('should return cache miss for undefined pixelId', async () => {
262
260
  const incomingIdentity = {
263
261
  identityId: 'test-identity',
264
262
  traits: { emails: ['test@email.com'] },
265
263
  };
266
264
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(undefined, incomingIdentity);
267
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
268
- (0, vitest_1.expect)(result.lookupPath).toBe('miss');
269
- (0, vitest_1.expect)(mockedDynamoDbClient.safeGet).not.toHaveBeenCalled();
265
+ expect(result.cacheHit).toBe(false);
266
+ expect(result.lookupPath).toBe('miss');
267
+ expect(mockedDynamoDbClient.safeGet).not.toHaveBeenCalled();
270
268
  });
271
- (0, vitest_1.it)('should return cache miss for empty pixelId', async () => {
269
+ it('should return cache miss for empty pixelId', async () => {
272
270
  const incomingIdentity = {
273
271
  identityId: 'test-identity',
274
272
  traits: { emails: ['test@email.com'] },
275
273
  };
276
274
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure('', incomingIdentity);
277
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
278
- (0, vitest_1.expect)(result.lookupPath).toBe('miss');
275
+ expect(result.cacheHit).toBe(false);
276
+ expect(result.lookupPath).toBe('miss');
279
277
  });
280
- (0, vitest_1.it)('should return cache miss for undefined incomingIdentity', async () => {
278
+ it('should return cache miss for undefined incomingIdentity', async () => {
281
279
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, undefined);
282
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
283
- (0, vitest_1.expect)(result.lookupPath).toBe('miss');
280
+ expect(result.cacheHit).toBe(false);
281
+ expect(result.lookupPath).toBe('miss');
284
282
  });
285
- (0, vitest_1.it)('should return cache miss for null incomingIdentity', async () => {
283
+ it('should return cache miss for null incomingIdentity', async () => {
286
284
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, null);
287
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
288
- (0, vitest_1.expect)(result.lookupPath).toBe('miss');
285
+ expect(result.cacheHit).toBe(false);
286
+ expect(result.lookupPath).toBe('miss');
289
287
  });
290
288
  });
291
- (0, vitest_1.describe)('error handling', () => {
292
- (0, vitest_1.it)('should return cache miss when DynamoDB throws an error', async () => {
289
+ describe('error handling', () => {
290
+ it('should return cache miss when DynamoDB throws an error', async () => {
293
291
  const incomingIdentity = {
294
292
  identityId: 'error-test-identity',
295
293
  traits: { emails: ['test@email.com'] },
296
294
  };
297
295
  mockedDynamoDbClient.safeGet.mockRejectedValueOnce(new Error('DynamoDB connection failed'));
298
296
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
299
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
300
- (0, vitest_1.expect)(result.lookupPath).toBe('identity_id');
301
- (0, vitest_1.expect)(result.cachedIdentity).toBeUndefined();
302
- (0, vitest_1.expect)(mockedLogger.error).toHaveBeenCalledWith('IdentityCache - getItemByPk failed', vitest_1.expect.objectContaining({
303
- error: vitest_1.expect.any(Error),
297
+ expect(result.cacheHit).toBe(false);
298
+ expect(result.lookupPath).toBe('identity_id');
299
+ expect(result.cachedIdentity).toBeUndefined();
300
+ expect(mockedLogger.error).toHaveBeenCalledWith('IdentityCache - getItemByPk failed', expect.objectContaining({
301
+ error: expect.any(Error),
304
302
  errorMessage: 'DynamoDB connection failed',
305
303
  }));
306
304
  });
307
- (0, vitest_1.it)('should handle non-Error thrown values', async () => {
305
+ it('should handle non-Error thrown values', async () => {
308
306
  const incomingIdentity = {
309
307
  identityId: 'string-error-identity',
310
308
  traits: { emails: ['test@email.com'] },
311
309
  };
312
310
  mockedDynamoDbClient.safeGet.mockRejectedValueOnce('String error message');
313
311
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
314
- (0, vitest_1.expect)(result.cacheHit).toBe(false);
315
- (0, vitest_1.expect)(result.lookupPath).toBe('identity_id');
316
- (0, vitest_1.expect)(mockedLogger.error).toHaveBeenCalledWith('IdentityCache - getItemByPk failed', vitest_1.expect.objectContaining({
312
+ expect(result.cacheHit).toBe(false);
313
+ expect(result.lookupPath).toBe('identity_id');
314
+ expect(mockedLogger.error).toHaveBeenCalledWith('IdentityCache - getItemByPk failed', expect.objectContaining({
317
315
  errorMessage: 'String error message',
318
316
  }));
319
317
  });
320
318
  });
321
- (0, vitest_1.describe)('verification: no merge or staleness logic', () => {
322
- (0, vitest_1.it)('should not call mergeIdentityTraits', async () => {
319
+ describe('verification: no merge or staleness logic', () => {
320
+ it('should not call mergeIdentityTraits', async () => {
323
321
  const incomingIdentity = {
324
322
  identityId: 'verify-no-merge',
325
323
  traits: { emails: ['incoming@email.com'] },
@@ -336,10 +334,10 @@ const mockedLogger = index_js_2.Logger;
336
334
  };
337
335
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedRecord);
338
336
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
339
- (0, vitest_1.expect)(result.cachedIdentity).toBe(cachedRecord.response);
340
- (0, vitest_1.expect)(result.cachedIdentity?.traits?.emails).toEqual(['cached@email.com']);
337
+ expect(result.cachedIdentity).toBe(cachedRecord.response);
338
+ expect(result.cachedIdentity?.traits?.emails).toEqual(['cached@email.com']);
341
339
  });
342
- (0, vitest_1.it)('should not call isIdentityCacheStale', async () => {
340
+ it('should not call isIdentityCacheStale', async () => {
343
341
  const incomingIdentity = {
344
342
  identityId: 'verify-no-staleness',
345
343
  traits: {
@@ -358,9 +356,9 @@ const mockedLogger = index_js_2.Logger;
358
356
  };
359
357
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedRecord);
360
358
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
361
- (0, vitest_1.expect)(Object.keys(result)).toEqual(['cachedIdentity', 'lookupPath', 'cacheHit']);
359
+ expect(Object.keys(result)).toEqual(['cachedIdentity', 'lookupPath', 'cacheHit']);
362
360
  });
363
- (0, vitest_1.it)('result should only contain pure lookup properties', async () => {
361
+ it('result should only contain pure lookup properties', async () => {
364
362
  const incomingIdentity = {
365
363
  identityId: 'result-shape-test',
366
364
  traits: { emails: ['test@email.com'] },
@@ -377,22 +375,22 @@ const mockedLogger = index_js_2.Logger;
377
375
  };
378
376
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedRecord);
379
377
  const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
380
- (0, vitest_1.expect)(result).toEqual({
378
+ expect(result).toEqual({
381
379
  cachedIdentity: cachedRecord.response,
382
380
  lookupPath: 'identity_id',
383
381
  cacheHit: true,
384
382
  });
385
- (0, vitest_1.expect)(result).not.toHaveProperty('resolvedIdentity');
386
- (0, vitest_1.expect)(result).not.toHaveProperty('isCacheStale');
387
- (0, vitest_1.expect)(result).not.toHaveProperty('staleTracker');
388
- (0, vitest_1.expect)(result).not.toHaveProperty('staleTier');
389
- (0, vitest_1.expect)(result).not.toHaveProperty('writeReason');
390
- (0, vitest_1.expect)(result).not.toHaveProperty('skipNeptune');
391
- (0, vitest_1.expect)(result).not.toHaveProperty('mergedIdentity');
383
+ expect(result).not.toHaveProperty('resolvedIdentity');
384
+ expect(result).not.toHaveProperty('isCacheStale');
385
+ expect(result).not.toHaveProperty('staleTracker');
386
+ expect(result).not.toHaveProperty('staleTier');
387
+ expect(result).not.toHaveProperty('writeReason');
388
+ expect(result).not.toHaveProperty('skipNeptune');
389
+ expect(result).not.toHaveProperty('mergedIdentity');
392
390
  });
393
391
  });
394
- (0, vitest_1.describe)('logging', () => {
395
- (0, vitest_1.it)('should log debug on cache hit by identity ID', async () => {
392
+ describe('logging', () => {
393
+ it('should log debug on cache hit by identity ID', async () => {
396
394
  const incomingIdentity = {
397
395
  identityId: 'log-test-id',
398
396
  traits: { emails: ['test@email.com'] },
@@ -409,24 +407,24 @@ const mockedLogger = index_js_2.Logger;
409
407
  };
410
408
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(cachedRecord);
411
409
  await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
412
- (0, vitest_1.expect)(mockedLogger.debug).toHaveBeenCalledWith('IdentityCache - pure lookup hit', vitest_1.expect.objectContaining({
410
+ expect(mockedLogger.debug).toHaveBeenCalledWith('IdentityCache - pure lookup hit', expect.objectContaining({
413
411
  pixelId,
414
412
  identityId: 'log-test-id',
415
413
  }));
416
414
  });
417
- (0, vitest_1.it)('should log debug on cache miss', async () => {
415
+ it('should log debug on cache miss', async () => {
418
416
  const incomingIdentity = {
419
417
  identityId: 'miss-log-test',
420
418
  traits: { emails: ['test@email.com'] },
421
419
  };
422
420
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(null);
423
421
  await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
424
- (0, vitest_1.expect)(mockedLogger.debug).toHaveBeenCalledWith('IdentityCache - pure lookup miss', vitest_1.expect.objectContaining({
422
+ expect(mockedLogger.debug).toHaveBeenCalledWith('IdentityCache - pure lookup miss', expect.objectContaining({
425
423
  pixelId,
426
424
  identityId: 'miss-log-test',
427
425
  }));
428
426
  });
429
- (0, vitest_1.it)('should log debug on email pointer discovery', async () => {
427
+ it('should log debug on email pointer discovery', async () => {
430
428
  const incomingIdentity = {
431
429
  traits: { emails: ['email-pointer@test.com'] },
432
430
  };
@@ -438,21 +436,21 @@ const mockedLogger = index_js_2.Logger;
438
436
  };
439
437
  mockedDynamoDbClient.safeGet.mockResolvedValueOnce(emailPointerRecord);
440
438
  await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getIdentityFromCachePure(pixelId, incomingIdentity);
441
- (0, vitest_1.expect)(mockedLogger.debug).toHaveBeenCalledWith('IdentityCache - pure email pointer discovery', vitest_1.expect.objectContaining({
439
+ expect(mockedLogger.debug).toHaveBeenCalledWith('IdentityCache - pure email pointer discovery', expect.objectContaining({
442
440
  pixelId,
443
441
  discoveredIdentityId: 'discovered-from-pointer',
444
442
  }));
445
443
  });
446
444
  });
447
445
  });
448
- (0, vitest_1.describe)('IdentityCacheDynamoDbDbService cluster traits operations', () => {
446
+ describe('IdentityCacheDynamoDbDbService cluster traits operations', () => {
449
447
  const pixelId = 'pixel-cluster';
450
448
  const primaryIdentityId = 'identity-primary';
451
449
  const secondaryIdentityId = 'identity-secondary';
452
- (0, vitest_1.beforeEach)(() => {
453
- vitest_1.vi.clearAllMocks();
450
+ beforeEach(() => {
451
+ jest.clearAllMocks();
454
452
  });
455
- (0, vitest_1.it)('returns records by requested identity ID when every key is processed', async () => {
453
+ it('returns records by requested identity ID when every key is processed', async () => {
456
454
  const primaryRecord = {
457
455
  pk: `identity#${pixelId}#${primaryIdentityId}`,
458
456
  pixelId,
@@ -465,16 +463,13 @@ const mockedLogger = index_js_2.Logger;
465
463
  UnprocessedKeys: {},
466
464
  $metadata: {},
467
465
  });
468
- const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [
469
- primaryIdentityId,
470
- secondaryIdentityId,
471
- ]);
472
- (0, vitest_1.expect)(result.complete).toBe(true);
473
- (0, vitest_1.expect)(result.failedIdentityIds).toEqual([]);
474
- (0, vitest_1.expect)(result.recordsByIdentityId.get(primaryIdentityId)).toEqual(primaryRecord);
475
- (0, vitest_1.expect)(result.recordsByIdentityId.has(secondaryIdentityId)).toBe(false);
466
+ const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [primaryIdentityId, secondaryIdentityId]);
467
+ expect(result.complete).toBe(true);
468
+ expect(result.failedIdentityIds).toEqual([]);
469
+ expect(result.recordsByIdentityId.get(primaryIdentityId)).toEqual(primaryRecord);
470
+ expect(result.recordsByIdentityId.has(secondaryIdentityId)).toBe(false);
476
471
  });
477
- (0, vitest_1.it)('treats an unprocessed key as a failed read', async () => {
472
+ it('treats an unprocessed key as a failed read', async () => {
478
473
  mockedDynamoDbClient.batchGet.mockResolvedValue({
479
474
  Responses: { [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: [] },
480
475
  UnprocessedKeys: {
@@ -484,23 +479,17 @@ const mockedLogger = index_js_2.Logger;
484
479
  },
485
480
  $metadata: {},
486
481
  });
487
- const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [
488
- primaryIdentityId,
489
- secondaryIdentityId,
490
- ]);
491
- (0, vitest_1.expect)(result.complete).toBe(false);
492
- (0, vitest_1.expect)(result.failedIdentityIds).toEqual([secondaryIdentityId]);
482
+ const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [primaryIdentityId, secondaryIdentityId]);
483
+ expect(result.complete).toBe(false);
484
+ expect(result.failedIdentityIds).toEqual([secondaryIdentityId]);
493
485
  });
494
- (0, vitest_1.it)('marks every key in a failed chunk as a failed read', async () => {
486
+ it('marks every key in a failed chunk as a failed read', async () => {
495
487
  mockedDynamoDbClient.batchGet.mockRejectedValue(new Error('read failed'));
496
- const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [
497
- primaryIdentityId,
498
- secondaryIdentityId,
499
- ]);
500
- (0, vitest_1.expect)(result.complete).toBe(false);
501
- (0, vitest_1.expect)(result.failedIdentityIds).toEqual([primaryIdentityId, secondaryIdentityId]);
488
+ const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [primaryIdentityId, secondaryIdentityId]);
489
+ expect(result.complete).toBe(false);
490
+ expect(result.failedIdentityIds).toEqual([primaryIdentityId, secondaryIdentityId]);
502
491
  });
503
- (0, vitest_1.it)('writes final primary traits and the migration marker in one item', async () => {
492
+ it('writes final primary traits and the migration marker in one item', async () => {
504
493
  mockedDynamoDbClient.safePut.mockResolvedValue({ $metadata: { httpStatusCode: 200 } });
505
494
  const success = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.putPrimaryIdentityTraits({
506
495
  pixelId,
@@ -508,8 +497,8 @@ const mockedLogger = index_js_2.Logger;
508
497
  traits: { emails: ['merged@test.com'] },
509
498
  traitsInDynamo: true,
510
499
  });
511
- (0, vitest_1.expect)(success).toBe(true);
512
- (0, vitest_1.expect)(mockedDynamoDbClient.safePut).toHaveBeenCalledWith(vitest_1.expect.any(String), vitest_1.expect.objectContaining({
500
+ expect(success).toBe(true);
501
+ expect(mockedDynamoDbClient.safePut).toHaveBeenCalledWith(expect.any(String), expect.objectContaining({
513
502
  pk: `identity#${pixelId}#${primaryIdentityId}`,
514
503
  identityId: primaryIdentityId,
515
504
  traitsInDynamo: true,
@@ -519,7 +508,7 @@ const mockedLogger = index_js_2.Logger;
519
508
  },
520
509
  }));
521
510
  });
522
- (0, vitest_1.it)('reports a failed primary traits write', async () => {
511
+ it('reports a failed primary traits write', async () => {
523
512
  mockedDynamoDbClient.safePut.mockResolvedValue(null);
524
513
  const success = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.putPrimaryIdentityTraits({
525
514
  pixelId,
@@ -527,25 +516,20 @@ const mockedLogger = index_js_2.Logger;
527
516
  traits: {},
528
517
  traitsInDynamo: true,
529
518
  });
530
- (0, vitest_1.expect)(success).toBe(false);
519
+ expect(success).toBe(false);
531
520
  });
532
- (0, vitest_1.it)('deletes exact identity keys and returns unprocessed identity IDs', async () => {
521
+ it('deletes exact identity keys and returns unprocessed identity IDs', async () => {
533
522
  mockedDynamoDbClient.batchWrite.mockResolvedValue({
534
523
  UnprocessedItems: {
535
- [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: [
536
- {
524
+ [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: [{
537
525
  DeleteRequest: { Key: { pk: `identity#${pixelId}#${secondaryIdentityId}` } },
538
- },
539
- ],
526
+ }],
540
527
  },
541
528
  $metadata: {},
542
529
  });
543
- const failedIdentityIds = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.deleteIdentityRecords(pixelId, [
544
- primaryIdentityId,
545
- secondaryIdentityId,
546
- ]);
547
- (0, vitest_1.expect)(failedIdentityIds).toEqual([secondaryIdentityId]);
548
- (0, vitest_1.expect)(mockedDynamoDbClient.batchWrite).toHaveBeenCalledWith({
530
+ const failedIdentityIds = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.deleteIdentityRecords(pixelId, [primaryIdentityId, secondaryIdentityId]);
531
+ expect(failedIdentityIds).toEqual([secondaryIdentityId]);
532
+ expect(mockedDynamoDbClient.batchWrite).toHaveBeenCalledWith({
549
533
  RequestItems: {
550
534
  [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: [
551
535
  { DeleteRequest: { Key: { pk: `identity#${pixelId}#${primaryIdentityId}` } } },
@@ -554,26 +538,19 @@ const mockedLogger = index_js_2.Logger;
554
538
  },
555
539
  });
556
540
  });
557
- (0, vitest_1.it)('returns every identity ID when an exact delete chunk fails', async () => {
541
+ it('returns every identity ID when an exact delete chunk fails', async () => {
558
542
  mockedDynamoDbClient.batchWrite.mockRejectedValue(new Error('delete failed'));
559
- const failedIdentityIds = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.deleteIdentityRecords(pixelId, [
560
- primaryIdentityId,
561
- secondaryIdentityId,
562
- ]);
563
- (0, vitest_1.expect)(failedIdentityIds).toEqual([primaryIdentityId, secondaryIdentityId]);
543
+ const failedIdentityIds = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.deleteIdentityRecords(pixelId, [primaryIdentityId, secondaryIdentityId]);
544
+ expect(failedIdentityIds).toEqual([primaryIdentityId, secondaryIdentityId]);
564
545
  });
565
- (0, vitest_1.it)('deduplicates requested identity IDs before issuing batchGet', async () => {
546
+ it('deduplicates requested identity IDs before issuing batchGet', async () => {
566
547
  mockedDynamoDbClient.batchGet.mockResolvedValue({
567
548
  Responses: { [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: [] },
568
549
  UnprocessedKeys: {},
569
550
  $metadata: {},
570
551
  });
571
- await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [
572
- primaryIdentityId,
573
- primaryIdentityId,
574
- secondaryIdentityId,
575
- ]);
576
- (0, vitest_1.expect)(mockedDynamoDbClient.batchGet).toHaveBeenCalledWith({
552
+ await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [primaryIdentityId, primaryIdentityId, secondaryIdentityId]);
553
+ expect(mockedDynamoDbClient.batchGet).toHaveBeenCalledWith({
577
554
  RequestItems: {
578
555
  [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: {
579
556
  Keys: [
@@ -584,21 +561,18 @@ const mockedLogger = index_js_2.Logger;
584
561
  },
585
562
  });
586
563
  });
587
- (0, vitest_1.it)('treats a processed key with no returned item as a successful miss', async () => {
564
+ it('treats a processed key with no returned item as a successful miss', async () => {
588
565
  mockedDynamoDbClient.batchGet.mockResolvedValue({
589
566
  Responses: { [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: [] },
590
567
  UnprocessedKeys: {},
591
568
  $metadata: {},
592
569
  });
593
- const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [
594
- primaryIdentityId,
595
- secondaryIdentityId,
596
- ]);
597
- (0, vitest_1.expect)(result.complete).toBe(true);
598
- (0, vitest_1.expect)(result.failedIdentityIds).toEqual([]);
599
- (0, vitest_1.expect)(result.recordsByIdentityId.size).toBe(0);
570
+ const result = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [primaryIdentityId, secondaryIdentityId]);
571
+ expect(result.complete).toBe(true);
572
+ expect(result.failedIdentityIds).toEqual([]);
573
+ expect(result.recordsByIdentityId.size).toBe(0);
600
574
  });
601
- (0, vitest_1.it)('reports a failed primary traits write when safePut throws', async () => {
575
+ it('reports a failed primary traits write when safePut throws', async () => {
602
576
  mockedDynamoDbClient.safePut.mockRejectedValue(new Error('put failed'));
603
577
  const success = await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.putPrimaryIdentityTraits({
604
578
  pixelId,
@@ -606,38 +580,41 @@ const mockedLogger = index_js_2.Logger;
606
580
  traits: { emails: ['merged@test.com'] },
607
581
  traitsInDynamo: true,
608
582
  });
609
- (0, vitest_1.expect)(success).toBe(false);
610
- (0, vitest_1.expect)(mockedLogger.error).toHaveBeenCalledWith('IdentityCache [primary traits write]: failed', vitest_1.expect.objectContaining({ pixelId, primaryIdentityId }));
583
+ expect(success).toBe(false);
584
+ expect(mockedLogger.error).toHaveBeenCalledWith('IdentityCache [primary traits write]: failed', expect.objectContaining({ pixelId, primaryIdentityId }));
611
585
  });
612
- (0, vitest_1.it)('deletes exact identity PKs without querying GSI1', async () => {
586
+ it('deletes exact identity PKs without querying GSI1', async () => {
613
587
  mockedDynamoDbClient.batchWrite.mockResolvedValue({
614
588
  UnprocessedItems: {},
615
589
  $metadata: {},
616
590
  });
617
591
  await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.deleteIdentityRecords(pixelId, [secondaryIdentityId]);
618
- (0, vitest_1.expect)(mockedDynamoDbClient.safeQueryByGSI).not.toHaveBeenCalled();
619
- (0, vitest_1.expect)(mockedDynamoDbClient.batchWrite).toHaveBeenCalledWith({
592
+ expect(mockedDynamoDbClient.safeQueryByGSI).not.toHaveBeenCalled();
593
+ expect(mockedDynamoDbClient.batchWrite).toHaveBeenCalledWith({
620
594
  RequestItems: {
621
- [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: [{ DeleteRequest: { Key: { pk: `identity#${pixelId}#${secondaryIdentityId}` } } }],
595
+ [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: [
596
+ { DeleteRequest: { Key: { pk: `identity#${pixelId}#${secondaryIdentityId}` } } },
597
+ ],
622
598
  },
623
599
  });
624
600
  });
625
- (0, vitest_1.it)('logs cluster read completion with requested identity IDs', async () => {
601
+ it('logs cluster read completion with requested identity IDs', async () => {
626
602
  mockedDynamoDbClient.batchGet.mockResolvedValue({
627
603
  Responses: { [constants_js_1.IDENTITY_CACHE_TABLE_NAME]: [] },
628
604
  UnprocessedKeys: {},
629
605
  $metadata: {},
630
606
  });
631
607
  await identity_cache_dynamodb_db_service_js_1.IdentityCacheDynamoDbDbService.getClusterIdentityRecords(pixelId, [primaryIdentityId]);
632
- (0, vitest_1.expect)(mockedLogger.debug).toHaveBeenCalledWith('IdentityCache [cluster traits read]: completed', vitest_1.expect.objectContaining({
608
+ expect(mockedLogger.debug).toHaveBeenCalledWith('IdentityCache [cluster traits read]: completed', expect.objectContaining({
633
609
  pixelId,
634
610
  identityIds: [primaryIdentityId],
635
611
  }));
636
612
  });
637
613
  });
638
- (0, vitest_1.describe)('mergeAndComputeIdentityStaleness (pure function)', () => {
639
- (0, vitest_1.describe)('merge behavior', () => {
640
- (0, vitest_1.it)('should merge incoming traits with cached traits', () => {
614
+ describe('mergeAndComputeIdentityStaleness (pure function)', () => {
615
+ const { mergeAndComputeIdentityStaleness, IDENTITY_CACHE_STALENESS_TIER } = jest.requireActual('@adtrackify/at-shared-utils');
616
+ describe('merge behavior', () => {
617
+ it('should merge incoming traits with cached traits', () => {
641
618
  const incomingIdentity = {
642
619
  identityId: 'merge-test',
643
620
  traits: {
@@ -651,14 +628,14 @@ const mockedLogger = index_js_2.Logger;
651
628
  phones: ['555-1234'],
652
629
  },
653
630
  };
654
- const result = (0, at_shared_utils_1.mergeAndComputeIdentityStaleness)(incomingIdentity, cachedIdentity);
655
- (0, vitest_1.expect)(result.mergedIdentity.traits?.emails).toContain('new@email.com');
656
- (0, vitest_1.expect)(result.mergedIdentity.traits?.emails).toContain('cached@email.com');
657
- (0, vitest_1.expect)(result.mergedIdentity.traits?.phones).toContain('555-1234');
631
+ const result = mergeAndComputeIdentityStaleness(incomingIdentity, cachedIdentity);
632
+ expect(result.mergedIdentity.traits?.emails).toContain('new@email.com');
633
+ expect(result.mergedIdentity.traits?.emails).toContain('cached@email.com');
634
+ expect(result.mergedIdentity.traits?.phones).toContain('555-1234');
658
635
  });
659
636
  });
660
- (0, vitest_1.describe)('staleness tier computation', () => {
661
- (0, vitest_1.it)('should return NONE tier when no traits are stale', () => {
637
+ describe('staleness tier computation', () => {
638
+ it('should return NONE tier when no traits are stale', () => {
662
639
  const incomingIdentity = {
663
640
  identityId: 'same-test',
664
641
  traits: { emails: ['same@email.com'] },
@@ -667,11 +644,11 @@ const mockedLogger = index_js_2.Logger;
667
644
  identityId: 'same-test',
668
645
  traits: { emails: ['same@email.com'] },
669
646
  };
670
- const result = (0, at_shared_utils_1.mergeAndComputeIdentityStaleness)(incomingIdentity, cachedIdentity);
671
- (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
672
- (0, vitest_1.expect)(result.isCacheStale).toBe(false);
647
+ const result = mergeAndComputeIdentityStaleness(incomingIdentity, cachedIdentity);
648
+ expect(result.staleTier).toBe(IDENTITY_CACHE_STALENESS_TIER.NONE);
649
+ expect(result.isCacheStale).toBe(false);
673
650
  });
674
- (0, vitest_1.it)('should return VOLATILE_ONLY tier when incoming has new IP address (cached has none)', () => {
651
+ it('should return VOLATILE_ONLY tier when incoming has new IP address (cached has none)', () => {
675
652
  const incomingIdentity = {
676
653
  identityId: 'volatile-test',
677
654
  traits: {
@@ -685,11 +662,11 @@ const mockedLogger = index_js_2.Logger;
685
662
  emails: ['same@email.com'],
686
663
  },
687
664
  };
688
- const result = (0, at_shared_utils_1.mergeAndComputeIdentityStaleness)(incomingIdentity, cachedIdentity);
689
- (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
690
- (0, vitest_1.expect)(result.isCacheStale).toBe(false);
665
+ const result = mergeAndComputeIdentityStaleness(incomingIdentity, cachedIdentity);
666
+ expect(result.staleTier).toBe(IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
667
+ expect(result.isCacheStale).toBe(false);
691
668
  });
692
- (0, vitest_1.it)('should return ADDRESS_UPDATE tier when non-IP address is new', () => {
669
+ it('should return ADDRESS_UPDATE tier when non-IP address is new', () => {
693
670
  const incomingIdentity = {
694
671
  identityId: 'address-test',
695
672
  traits: {
@@ -704,11 +681,11 @@ const mockedLogger = index_js_2.Logger;
704
681
  addresses: [],
705
682
  },
706
683
  };
707
- const result = (0, at_shared_utils_1.mergeAndComputeIdentityStaleness)(incomingIdentity, cachedIdentity);
708
- (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
709
- (0, vitest_1.expect)(result.isCacheStale).toBe(true);
684
+ const result = mergeAndComputeIdentityStaleness(incomingIdentity, cachedIdentity);
685
+ expect(result.staleTier).toBe(IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
686
+ expect(result.isCacheStale).toBe(true);
710
687
  });
711
- (0, vitest_1.it)('should return IDENTITY_STALE tier when email changes', () => {
688
+ it('should return IDENTITY_STALE tier when email changes', () => {
712
689
  const incomingIdentity = {
713
690
  identityId: 'stale-test',
714
691
  traits: {
@@ -721,13 +698,13 @@ const mockedLogger = index_js_2.Logger;
721
698
  emails: ['old@email.com'],
722
699
  },
723
700
  };
724
- const result = (0, at_shared_utils_1.mergeAndComputeIdentityStaleness)(incomingIdentity, cachedIdentity);
725
- (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
726
- (0, vitest_1.expect)(result.isCacheStale).toBe(true);
701
+ const result = mergeAndComputeIdentityStaleness(incomingIdentity, cachedIdentity);
702
+ expect(result.staleTier).toBe(IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
703
+ expect(result.isCacheStale).toBe(true);
727
704
  });
728
705
  });
729
- (0, vitest_1.describe)('staleTraits extraction', () => {
730
- (0, vitest_1.it)('should include changed trait names in staleTraits array', () => {
706
+ describe('staleTraits extraction', () => {
707
+ it('should include changed trait names in staleTraits array', () => {
731
708
  const incomingIdentity = {
732
709
  identityId: 'traits-test',
733
710
  traits: {
@@ -742,9 +719,9 @@ const mockedLogger = index_js_2.Logger;
742
719
  phones: ['111-2222'],
743
720
  },
744
721
  };
745
- const result = (0, at_shared_utils_1.mergeAndComputeIdentityStaleness)(incomingIdentity, cachedIdentity);
746
- (0, vitest_1.expect)(result.staleTraits).toContain('emails');
747
- (0, vitest_1.expect)(result.staleTraits).toContain('phones');
722
+ const result = mergeAndComputeIdentityStaleness(incomingIdentity, cachedIdentity);
723
+ expect(result.staleTraits).toContain('emails');
724
+ expect(result.staleTraits).toContain('phones');
748
725
  });
749
726
  });
750
727
  });