@adtrackify/at-service-common 4.0.4 → 4.0.6

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 (779) hide show
  1. package/dist/cjs/__tests__/clients/acuity-client.spec.d.ts +1 -1
  2. package/dist/cjs/__tests__/clients/acuity-client.spec.js +43 -43
  3. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.d.ts +1 -1
  4. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js +354 -354
  5. package/dist/cjs/__tests__/clients/dynamodb-client.spec.d.ts +1 -1
  6. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js +194 -194
  7. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
  8. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +931 -931
  9. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -1
  10. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js +563 -563
  11. package/dist/cjs/__tests__/clients/sqs-client.spec.d.ts +1 -1
  12. package/dist/cjs/__tests__/clients/sqs-client.spec.js +191 -191
  13. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
  14. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +1357 -1357
  15. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -1
  16. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +68 -68
  17. package/dist/cjs/__tests__/db/destinations-db-service.spec.d.ts +1 -1
  18. package/dist/cjs/__tests__/db/destinations-db-service.spec.js +125 -125
  19. package/dist/cjs/__tests__/db/products-db-service.spec.d.ts +1 -1
  20. package/dist/cjs/__tests__/db/products-db-service.spec.js +89 -89
  21. package/dist/cjs/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  22. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +89 -89
  23. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.d.ts +1 -1
  24. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js +104 -104
  25. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.d.ts +1 -1
  26. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js +95 -95
  27. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.d.ts +1 -1
  28. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js +76 -76
  29. package/dist/cjs/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  30. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +220 -220
  31. package/dist/cjs/__tests__/helpers/acuity-helper.spec.d.ts +1 -1
  32. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js +69 -69
  33. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
  34. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +82 -82
  35. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  36. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +676 -676
  37. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.d.ts +1 -0
  38. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js +646 -0
  39. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js.map +1 -0
  40. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.d.ts +1 -0
  41. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +327 -0
  42. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +1 -0
  43. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.d.ts +1 -1
  44. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +1282 -1140
  45. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
  46. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.d.ts +1 -1
  47. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +852 -851
  48. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  49. package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.d.ts +1 -0
  50. package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js +567 -0
  51. package/dist/cjs/__tests__/identity-cache/identity-gateway-service.spec.js.map +1 -0
  52. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  53. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +1060 -1060
  54. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.d.ts +1 -1
  55. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js +818 -818
  56. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
  57. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +584 -584
  58. package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  59. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +16 -16
  60. package/dist/cjs/__tests__/libs/contacts.spec.d.ts +1 -1
  61. package/dist/cjs/__tests__/libs/contacts.spec.js +294 -294
  62. package/dist/cjs/__tests__/libs/currency.spec.d.ts +1 -1
  63. package/dist/cjs/__tests__/libs/currency.spec.js +220 -220
  64. package/dist/cjs/__tests__/libs/dates.spec.d.ts +1 -1
  65. package/dist/cjs/__tests__/libs/dates.spec.js +130 -130
  66. package/dist/cjs/__tests__/libs/domain.spec.d.ts +1 -1
  67. package/dist/cjs/__tests__/libs/domain.spec.js +107 -107
  68. package/dist/cjs/__tests__/libs/numbers.spec.d.ts +1 -1
  69. package/dist/cjs/__tests__/libs/numbers.spec.js +261 -261
  70. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  71. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +33 -33
  72. package/dist/cjs/__tests__/services/acuity-api-service.spec.d.ts +1 -1
  73. package/dist/cjs/__tests__/services/acuity-api-service.spec.js +71 -71
  74. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.d.ts +1 -1
  75. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js +23 -23
  76. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.d.ts +1 -1
  77. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js +3319 -3319
  78. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.d.ts +1 -1
  79. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js +114 -114
  80. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.d.ts +1 -1
  81. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js +468 -468
  82. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.d.ts +1 -1
  83. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +206 -206
  84. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts +1 -1
  85. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js +34 -34
  86. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -1
  87. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js +93 -93
  88. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -1
  89. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js +57 -57
  90. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  91. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +35 -35
  92. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
  93. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js +181 -181
  94. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
  95. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js +69 -69
  96. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -1
  97. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js +139 -139
  98. package/dist/cjs/clients/generic/cognito-client.d.ts +23 -23
  99. package/dist/cjs/clients/generic/cognito-client.js +209 -209
  100. package/dist/cjs/clients/generic/dynamodb-client.d.ts +20 -20
  101. package/dist/cjs/clients/generic/dynamodb-client.js +235 -235
  102. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  103. package/dist/cjs/clients/generic/eventbridge-client.js +51 -51
  104. package/dist/cjs/clients/generic/http-client.d.ts +14 -14
  105. package/dist/cjs/clients/generic/http-client.js +61 -61
  106. package/dist/cjs/clients/generic/index.d.ts +13 -13
  107. package/dist/cjs/clients/generic/index.js +29 -29
  108. package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
  109. package/dist/cjs/clients/generic/lambda-invoke-client.js +39 -39
  110. package/dist/cjs/clients/generic/location-client.d.ts +8 -8
  111. package/dist/cjs/clients/generic/location-client.js +31 -31
  112. package/dist/cjs/clients/generic/redis-client.d.ts +33 -33
  113. package/dist/cjs/clients/generic/redis-client.js +191 -191
  114. package/dist/cjs/clients/generic/s3-client.d.ts +23 -23
  115. package/dist/cjs/clients/generic/s3-client.js +216 -216
  116. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +14 -14
  117. package/dist/cjs/clients/generic/singlestore-db-client.js +67 -67
  118. package/dist/cjs/clients/generic/sqs-bundled-client.d.ts +15 -15
  119. package/dist/cjs/clients/generic/sqs-bundled-client.js +311 -311
  120. package/dist/cjs/clients/generic/sqs-bundled-client.types.d.ts +53 -53
  121. package/dist/cjs/clients/generic/sqs-bundled-client.types.js +17 -17
  122. package/dist/cjs/clients/generic/sqs-client.d.ts +53 -53
  123. package/dist/cjs/clients/generic/sqs-client.js +285 -285
  124. package/dist/cjs/clients/generic/sqs-unbundle.d.ts +32 -32
  125. package/dist/cjs/clients/generic/sqs-unbundle.js +144 -144
  126. package/dist/cjs/clients/index.d.ts +3 -3
  127. package/dist/cjs/clients/index.js +19 -19
  128. package/dist/cjs/clients/internal-api/accounts-client.d.ts +91 -91
  129. package/dist/cjs/clients/internal-api/accounts-client.js +129 -129
  130. package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +26 -26
  131. package/dist/cjs/clients/internal-api/cache-lambda-client.js +89 -89
  132. package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
  133. package/dist/cjs/clients/internal-api/db-management-client.js +36 -36
  134. package/dist/cjs/clients/internal-api/destinations-client.d.ts +34 -34
  135. package/dist/cjs/clients/internal-api/destinations-client.js +79 -79
  136. package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
  137. package/dist/cjs/clients/internal-api/event-collector-client.js +36 -36
  138. package/dist/cjs/clients/internal-api/identity-client.d.ts +31 -31
  139. package/dist/cjs/clients/internal-api/identity-client.js +91 -91
  140. package/dist/cjs/clients/internal-api/index.d.ts +9 -9
  141. package/dist/cjs/clients/internal-api/index.js +25 -25
  142. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  143. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +81 -81
  144. package/dist/cjs/clients/internal-api/subscriptions-client.d.ts +26 -26
  145. package/dist/cjs/clients/internal-api/subscriptions-client.js +77 -77
  146. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +35 -35
  147. package/dist/cjs/clients/internal-api/users-auth-client.js +110 -110
  148. package/dist/cjs/clients/third-party/acuity-client.d.ts +10 -10
  149. package/dist/cjs/clients/third-party/acuity-client.js +40 -40
  150. package/dist/cjs/clients/third-party/emailable-client.d.ts +7 -7
  151. package/dist/cjs/clients/third-party/emailable-client.js +25 -25
  152. package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  153. package/dist/cjs/clients/third-party/exchange-rate-api-client.js +19 -19
  154. package/dist/cjs/clients/third-party/index.d.ts +5 -5
  155. package/dist/cjs/clients/third-party/index.js +21 -21
  156. package/dist/cjs/clients/third-party/loops-client.d.ts +10 -10
  157. package/dist/cjs/clients/third-party/loops-client.js +30 -30
  158. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  159. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.js +4 -4
  160. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  161. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.js +5 -5
  162. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
  163. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js +161 -161
  164. package/dist/cjs/clients/third-party/shopify-client.d.ts +29 -29
  165. package/dist/cjs/clients/third-party/shopify-client.js +146 -146
  166. package/dist/cjs/constants/index.d.ts +1 -1
  167. package/dist/cjs/constants/index.js +17 -17
  168. package/dist/cjs/constants/sqs.d.ts +20 -20
  169. package/dist/cjs/constants/sqs.js +26 -26
  170. package/dist/cjs/helpers/account-users-helper.d.ts +2 -2
  171. package/dist/cjs/helpers/account-users-helper.js +22 -22
  172. package/dist/cjs/helpers/acuity-helper.d.ts +4 -4
  173. package/dist/cjs/helpers/acuity-helper.js +56 -56
  174. package/dist/cjs/helpers/api-key-auth-helper.d.ts +9 -9
  175. package/dist/cjs/helpers/api-key-auth-helper.js +40 -40
  176. package/dist/cjs/helpers/api-key-authorizer-helper.d.ts +36 -36
  177. package/dist/cjs/helpers/api-key-authorizer-helper.js +87 -87
  178. package/dist/cjs/helpers/identity-cache-helper.d.ts +30 -30
  179. package/dist/cjs/helpers/identity-cache-helper.js +253 -253
  180. package/dist/cjs/helpers/index.d.ts +10 -10
  181. package/dist/cjs/helpers/index.js +26 -26
  182. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  183. package/dist/cjs/helpers/input-validation-helper.js +22 -22
  184. package/dist/cjs/helpers/logging-helper.d.ts +16 -16
  185. package/dist/cjs/helpers/logging-helper.js +84 -84
  186. package/dist/cjs/helpers/response-helper.d.ts +18 -18
  187. package/dist/cjs/helpers/response-helper.js +43 -43
  188. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  189. package/dist/cjs/helpers/shopify-helper.js +26 -26
  190. package/dist/cjs/helpers/sqs-utils.d.ts +6 -6
  191. package/dist/cjs/helpers/sqs-utils.js +14 -14
  192. package/dist/cjs/index.d.ts +7 -7
  193. package/dist/cjs/index.js +23 -23
  194. package/dist/cjs/libs/api-router/index.d.ts +2 -2
  195. package/dist/cjs/libs/api-router/index.js +18 -18
  196. package/dist/cjs/libs/api-router/public-api-router.d.ts +3 -3
  197. package/dist/cjs/libs/api-router/public-api-router.js +36 -36
  198. package/dist/cjs/libs/api-router/route-matcher.d.ts +21 -21
  199. package/dist/cjs/libs/api-router/route-matcher.js +36 -36
  200. package/dist/cjs/libs/click-id-parser.d.ts +23 -23
  201. package/dist/cjs/libs/click-id-parser.js +49 -49
  202. package/dist/cjs/libs/compression.d.ts +2 -2
  203. package/dist/cjs/libs/compression.js +33 -33
  204. package/dist/cjs/libs/contacts.d.ts +7 -7
  205. package/dist/cjs/libs/contacts.js +152 -152
  206. package/dist/cjs/libs/cookie.d.ts +17 -17
  207. package/dist/cjs/libs/cookie.js +76 -76
  208. package/dist/cjs/libs/crypto.d.ts +4 -4
  209. package/dist/cjs/libs/crypto.js +25 -25
  210. package/dist/cjs/libs/csv.d.ts +2 -2
  211. package/dist/cjs/libs/csv.js +35 -35
  212. package/dist/cjs/libs/currency.d.ts +1 -1
  213. package/dist/cjs/libs/currency.js +29 -29
  214. package/dist/cjs/libs/dates.d.ts +12 -12
  215. package/dist/cjs/libs/dates.js +96 -96
  216. package/dist/cjs/libs/domain.d.ts +2 -2
  217. package/dist/cjs/libs/domain.js +38 -38
  218. package/dist/cjs/libs/emails.d.ts +8 -8
  219. package/dist/cjs/libs/emails.js +154 -154
  220. package/dist/cjs/libs/http-error.d.ts +21 -21
  221. package/dist/cjs/libs/http-error.js +63 -63
  222. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  223. package/dist/cjs/libs/http-status-codes.js +62 -62
  224. package/dist/cjs/libs/index.d.ts +19 -19
  225. package/dist/cjs/libs/index.js +35 -35
  226. package/dist/cjs/libs/numbers.d.ts +1 -1
  227. package/dist/cjs/libs/numbers.js +15 -15
  228. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  229. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  230. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  231. package/dist/cjs/libs/referrer-parser/referrer-data.js +3307 -3307
  232. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  233. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +131 -131
  234. package/dist/cjs/libs/strings.d.ts +3 -3
  235. package/dist/cjs/libs/strings.js +46 -46
  236. package/dist/cjs/libs/traits.d.ts +6 -6
  237. package/dist/cjs/libs/traits.js +65 -65
  238. package/dist/cjs/libs/url.d.ts +1 -1
  239. package/dist/cjs/libs/url.js +13 -13
  240. package/dist/cjs/services/acuity-api-service.d.ts +9 -9
  241. package/dist/cjs/services/acuity-api-service.js +73 -73
  242. package/dist/cjs/services/cache/generic-cached-object.d.ts +5 -5
  243. package/dist/cjs/services/cache/generic-cached-object.js +2 -2
  244. package/dist/cjs/services/cache/index.d.ts +1 -1
  245. package/dist/cjs/services/cache/index.js +17 -17
  246. package/dist/cjs/services/cache/product-cache-service.d.ts +21 -21
  247. package/dist/cjs/services/cache/product-cache-service.js +76 -76
  248. package/dist/cjs/services/cost/cost-calculation-types.d.ts +69 -69
  249. package/dist/cjs/services/cost/cost-calculation-types.js +19 -19
  250. package/dist/cjs/services/cost/cost-calculator-service.d.ts +24 -24
  251. package/dist/cjs/services/cost/cost-calculator-service.js +456 -456
  252. package/dist/cjs/services/cost/cost-currency-service.d.ts +6 -6
  253. package/dist/cjs/services/cost/cost-currency-service.js +87 -87
  254. package/dist/cjs/services/cost/cost-filter-service.d.ts +10 -10
  255. package/dist/cjs/services/cost/cost-filter-service.js +121 -121
  256. package/dist/cjs/services/cost/index.d.ts +5 -5
  257. package/dist/cjs/services/cost/index.js +21 -21
  258. package/dist/cjs/services/cost/order-cost/index.d.ts +2 -2
  259. package/dist/cjs/services/cost/order-cost/index.js +18 -18
  260. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.d.ts +23 -23
  261. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js +361 -361
  262. package/dist/cjs/services/cost/order-cost/order-cost-resolution-types.d.ts +37 -37
  263. package/dist/cjs/services/cost/order-cost/order-cost-resolution-types.js +2 -2
  264. package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +12 -12
  265. package/dist/cjs/services/currency-exchange-rate-lookup-service.js +94 -94
  266. package/dist/cjs/services/db/accounts-db-service.d.ts +9 -9
  267. package/dist/cjs/services/db/accounts-db-service.js +33 -33
  268. package/dist/cjs/services/db/api-keys-db-service.d.ts +10 -10
  269. package/dist/cjs/services/db/api-keys-db-service.js +36 -36
  270. package/dist/cjs/services/db/contact-enrichments-db-service.d.ts +15 -15
  271. package/dist/cjs/services/db/contact-enrichments-db-service.js +94 -94
  272. package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  273. package/dist/cjs/services/db/currency-exchange-rates-db-service.js +39 -39
  274. package/dist/cjs/services/db/custom-measures-db-service.d.ts +14 -14
  275. package/dist/cjs/services/db/custom-measures-db-service.js +48 -48
  276. package/dist/cjs/services/db/destinations-db-service.d.ts +13 -13
  277. package/dist/cjs/services/db/destinations-db-service.js +74 -74
  278. package/dist/cjs/services/db/identity-cache-db-service.d.ts +28 -28
  279. package/dist/cjs/services/db/identity-cache-db-service.js +320 -320
  280. package/dist/cjs/services/db/identity-cache-dynamodb-service/constants.d.ts +3 -0
  281. package/dist/cjs/services/db/identity-cache-dynamodb-service/constants.js +7 -0
  282. package/dist/cjs/services/db/identity-cache-dynamodb-service/constants.js.map +1 -0
  283. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.d.ts +14 -0
  284. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js +251 -0
  285. package/dist/cjs/services/db/identity-cache-dynamodb-service/helpers.js.map +1 -0
  286. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +24 -0
  287. package/dist/cjs/services/db/{identity-cache-dynamodb-service.js → identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js} +613 -735
  288. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -0
  289. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +22 -0
  290. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +375 -0
  291. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -0
  292. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.d.ts +4 -0
  293. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js +21 -0
  294. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js.map +1 -0
  295. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.d.ts +12 -0
  296. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js +32 -0
  297. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js.map +1 -0
  298. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.d.ts +205 -0
  299. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js +35 -0
  300. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -0
  301. package/dist/cjs/services/db/index.d.ts +22 -19
  302. package/dist/cjs/services/db/index.js +38 -35
  303. package/dist/cjs/services/db/index.js.map +1 -1
  304. package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
  305. package/dist/cjs/services/db/log-events-db-service.js +181 -181
  306. package/dist/cjs/services/db/pixels-db-service.d.ts +8 -8
  307. package/dist/cjs/services/db/pixels-db-service.js +35 -35
  308. package/dist/cjs/services/db/products-db-service-types.d.ts +10 -10
  309. package/dist/cjs/services/db/products-db-service-types.js +2 -2
  310. package/dist/cjs/services/db/products-db-service.d.ts +19 -19
  311. package/dist/cjs/services/db/products-db-service.js +281 -281
  312. package/dist/cjs/services/db/purchasable-contacts-db-service.d.ts +9 -9
  313. package/dist/cjs/services/db/purchasable-contacts-db-service.js +43 -43
  314. package/dist/cjs/services/db/purchased-contacts/index.d.ts +2 -2
  315. package/dist/cjs/services/db/purchased-contacts/index.js +18 -18
  316. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.d.ts +18 -18
  317. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js +152 -152
  318. package/dist/cjs/services/db/purchased-contacts/types.d.ts +11 -11
  319. package/dist/cjs/services/db/purchased-contacts/types.js +2 -2
  320. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +10 -10
  321. package/dist/cjs/services/db/shopify-app-installs-db-service.js +52 -52
  322. package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +16 -16
  323. package/dist/cjs/services/db/shopify-products-cache-db-service.js +73 -73
  324. package/dist/cjs/services/db/subscriptions-db-service.d.ts +11 -11
  325. package/dist/cjs/services/db/subscriptions-db-service.js +38 -38
  326. package/dist/cjs/services/db/tracking-events-db-service.d.ts +21 -21
  327. package/dist/cjs/services/db/tracking-events-db-service.js +188 -188
  328. package/dist/cjs/services/db/user-accounts-db-service.d.ts +7 -7
  329. package/dist/cjs/services/db/user-accounts-db-service.js +17 -17
  330. package/dist/cjs/services/email-verification/contact-email-verification-service.d.ts +7 -7
  331. package/dist/cjs/services/email-verification/contact-email-verification-service.js +101 -101
  332. package/dist/cjs/services/email-verification/email-verification-service.d.ts +19 -19
  333. package/dist/cjs/services/email-verification/email-verification-service.js +131 -131
  334. package/dist/cjs/services/email-verification/index.d.ts +2 -2
  335. package/dist/cjs/services/email-verification/index.js +18 -18
  336. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  337. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  338. package/dist/cjs/services/events/index.d.ts +3 -3
  339. package/dist/cjs/services/events/index.js +19 -19
  340. package/dist/cjs/services/events/log-event-service.d.ts +19 -19
  341. package/dist/cjs/services/events/log-event-service.js +77 -77
  342. package/dist/cjs/services/events/metric-event-service.d.ts +9 -9
  343. package/dist/cjs/services/events/metric-event-service.js +49 -49
  344. package/dist/cjs/services/events/tracking-event-sqs-service.d.ts +8 -8
  345. package/dist/cjs/services/events/tracking-event-sqs-service.js +34 -34
  346. package/dist/cjs/services/generic-cache-service.d.ts +7 -7
  347. package/dist/cjs/services/generic-cache-service.js +33 -33
  348. package/dist/cjs/services/index.d.ts +11 -11
  349. package/dist/cjs/services/index.js +27 -27
  350. package/dist/cjs/services/ipdata-lookup-service.d.ts +20 -20
  351. package/dist/cjs/services/ipdata-lookup-service.js +112 -112
  352. package/dist/cjs/services/shopify/index.d.ts +2 -2
  353. package/dist/cjs/services/shopify/index.js +18 -18
  354. package/dist/cjs/services/shopify/products/index.d.ts +1 -1
  355. package/dist/cjs/services/shopify/products/index.js +17 -17
  356. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  357. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js +112 -112
  358. package/dist/cjs/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  359. package/dist/cjs/services/shopify/shopify-graphql-transformer.js +141 -141
  360. package/dist/cjs/types/acuity-types.d.ts +74 -74
  361. package/dist/cjs/types/acuity-types.js +2 -2
  362. package/dist/cjs/types/api-response.d.ts +6 -6
  363. package/dist/cjs/types/api-response.js +2 -2
  364. package/dist/cjs/types/index.d.ts +4 -4
  365. package/dist/cjs/types/index.js +33 -33
  366. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  367. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  368. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  369. package/dist/cjs/types/internal-events/index.js +17 -17
  370. package/dist/cjs/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  371. package/dist/cjs/types/shopify-graphql-types/admin.generated.js +2 -2
  372. package/dist/cjs/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  373. package/dist/cjs/types/shopify-graphql-types/admin.types.js +5311 -5311
  374. package/dist/cjs/types/shopify-graphql-types/index.d.ts +2 -2
  375. package/dist/cjs/types/shopify-graphql-types/index.js +18 -18
  376. package/dist/cjs/types/shopify-rest-types.d.ts +767 -767
  377. package/dist/cjs/types/shopify-rest-types.js +2 -2
  378. package/dist/cjs/utils/compression.d.ts +36 -36
  379. package/dist/cjs/utils/compression.js +198 -198
  380. package/dist/cjs/utils/custom-measure-formula-utils.d.ts +6 -6
  381. package/dist/cjs/utils/custom-measure-formula-utils.js +209 -209
  382. package/dist/cjs/utils/index.d.ts +4 -4
  383. package/dist/cjs/utils/index.js +20 -20
  384. package/dist/cjs/utils/retry-envelope.d.ts +12 -12
  385. package/dist/cjs/utils/retry-envelope.js +28 -28
  386. package/dist/cjs/utils/size.d.ts +2 -2
  387. package/dist/cjs/utils/size.js +49 -49
  388. package/dist/esm/__tests__/clients/acuity-client.spec.d.ts +1 -1
  389. package/dist/esm/__tests__/clients/acuity-client.spec.js +41 -41
  390. package/dist/esm/__tests__/clients/cross-platform-compression.spec.d.ts +1 -1
  391. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js +329 -329
  392. package/dist/esm/__tests__/clients/dynamodb-client.spec.d.ts +1 -1
  393. package/dist/esm/__tests__/clients/dynamodb-client.spec.js +192 -192
  394. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
  395. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +906 -906
  396. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -1
  397. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js +538 -538
  398. package/dist/esm/__tests__/clients/sqs-client.spec.d.ts +1 -1
  399. package/dist/esm/__tests__/clients/sqs-client.spec.js +189 -189
  400. package/dist/esm/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
  401. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +1355 -1355
  402. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -1
  403. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +66 -66
  404. package/dist/esm/__tests__/db/destinations-db-service.spec.d.ts +1 -1
  405. package/dist/esm/__tests__/db/destinations-db-service.spec.js +123 -123
  406. package/dist/esm/__tests__/db/products-db-service.spec.d.ts +1 -1
  407. package/dist/esm/__tests__/db/products-db-service.spec.js +87 -87
  408. package/dist/esm/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  409. package/dist/esm/__tests__/db/shared-read-db-services.spec.js +87 -87
  410. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.d.ts +1 -1
  411. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js +102 -102
  412. package/dist/esm/__tests__/db/subscriptions-db-service.spec.d.ts +1 -1
  413. package/dist/esm/__tests__/db/subscriptions-db-service.spec.js +93 -93
  414. package/dist/esm/__tests__/db/user-accounts-db-service.spec.d.ts +1 -1
  415. package/dist/esm/__tests__/db/user-accounts-db-service.spec.js +74 -74
  416. package/dist/esm/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  417. package/dist/esm/__tests__/helpers/account-users-helper.spec.js +218 -218
  418. package/dist/esm/__tests__/helpers/acuity-helper.spec.d.ts +1 -1
  419. package/dist/esm/__tests__/helpers/acuity-helper.spec.js +67 -67
  420. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
  421. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +80 -80
  422. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  423. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +674 -674
  424. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.d.ts +1 -0
  425. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js +644 -0
  426. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service-v2-comparison.spec.js.map +1 -0
  427. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.d.ts +1 -0
  428. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js +325 -0
  429. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service-v2-comparison.spec.js.map +1 -0
  430. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.d.ts +1 -1
  431. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +1280 -1138
  432. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
  433. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.d.ts +1 -1
  434. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +850 -849
  435. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  436. package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.d.ts +1 -0
  437. package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js +565 -0
  438. package/dist/esm/__tests__/identity-cache/identity-gateway-service.spec.js.map +1 -0
  439. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  440. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +1058 -1058
  441. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.d.ts +1 -1
  442. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js +816 -816
  443. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
  444. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +582 -582
  445. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  446. package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
  447. package/dist/esm/__tests__/libs/contacts.spec.d.ts +1 -1
  448. package/dist/esm/__tests__/libs/contacts.spec.js +292 -292
  449. package/dist/esm/__tests__/libs/currency.spec.d.ts +1 -1
  450. package/dist/esm/__tests__/libs/currency.spec.js +218 -218
  451. package/dist/esm/__tests__/libs/dates.spec.d.ts +1 -1
  452. package/dist/esm/__tests__/libs/dates.spec.js +128 -128
  453. package/dist/esm/__tests__/libs/domain.spec.d.ts +1 -1
  454. package/dist/esm/__tests__/libs/domain.spec.js +105 -105
  455. package/dist/esm/__tests__/libs/numbers.spec.d.ts +1 -1
  456. package/dist/esm/__tests__/libs/numbers.spec.js +259 -259
  457. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  458. package/dist/esm/__tests__/s3-client/s3-client.spec.js +31 -31
  459. package/dist/esm/__tests__/services/acuity-api-service.spec.d.ts +1 -1
  460. package/dist/esm/__tests__/services/acuity-api-service.spec.js +69 -69
  461. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.d.ts +1 -1
  462. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js +21 -21
  463. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.d.ts +1 -1
  464. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js +3317 -3317
  465. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.d.ts +1 -1
  466. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js +112 -112
  467. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.d.ts +1 -1
  468. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js +466 -466
  469. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.d.ts +1 -1
  470. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +204 -204
  471. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts +1 -1
  472. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js +32 -32
  473. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -1
  474. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js +91 -91
  475. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -1
  476. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js +55 -55
  477. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  478. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +33 -33
  479. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
  480. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js +156 -156
  481. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
  482. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js +67 -67
  483. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -1
  484. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js +137 -137
  485. package/dist/esm/clients/generic/cognito-client.d.ts +23 -23
  486. package/dist/esm/clients/generic/cognito-client.js +204 -204
  487. package/dist/esm/clients/generic/dynamodb-client.d.ts +20 -20
  488. package/dist/esm/clients/generic/dynamodb-client.js +231 -231
  489. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  490. package/dist/esm/clients/generic/eventbridge-client.js +47 -47
  491. package/dist/esm/clients/generic/http-client.d.ts +14 -14
  492. package/dist/esm/clients/generic/http-client.js +53 -53
  493. package/dist/esm/clients/generic/index.d.ts +13 -13
  494. package/dist/esm/clients/generic/index.js +13 -13
  495. package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
  496. package/dist/esm/clients/generic/lambda-invoke-client.js +35 -35
  497. package/dist/esm/clients/generic/location-client.d.ts +8 -8
  498. package/dist/esm/clients/generic/location-client.js +27 -27
  499. package/dist/esm/clients/generic/redis-client.d.ts +33 -33
  500. package/dist/esm/clients/generic/redis-client.js +184 -184
  501. package/dist/esm/clients/generic/s3-client.d.ts +23 -23
  502. package/dist/esm/clients/generic/s3-client.js +209 -209
  503. package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
  504. package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
  505. package/dist/esm/clients/generic/sqs-bundled-client.d.ts +15 -15
  506. package/dist/esm/clients/generic/sqs-bundled-client.js +307 -307
  507. package/dist/esm/clients/generic/sqs-bundled-client.types.d.ts +53 -53
  508. package/dist/esm/clients/generic/sqs-bundled-client.types.js +14 -14
  509. package/dist/esm/clients/generic/sqs-client.d.ts +53 -53
  510. package/dist/esm/clients/generic/sqs-client.js +281 -281
  511. package/dist/esm/clients/generic/sqs-unbundle.d.ts +32 -32
  512. package/dist/esm/clients/generic/sqs-unbundle.js +137 -137
  513. package/dist/esm/clients/index.d.ts +3 -3
  514. package/dist/esm/clients/index.js +3 -3
  515. package/dist/esm/clients/internal-api/accounts-client.d.ts +91 -91
  516. package/dist/esm/clients/internal-api/accounts-client.js +125 -125
  517. package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +26 -26
  518. package/dist/esm/clients/internal-api/cache-lambda-client.js +85 -85
  519. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  520. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  521. package/dist/esm/clients/internal-api/destinations-client.d.ts +34 -34
  522. package/dist/esm/clients/internal-api/destinations-client.js +75 -75
  523. package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
  524. package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
  525. package/dist/esm/clients/internal-api/identity-client.d.ts +31 -31
  526. package/dist/esm/clients/internal-api/identity-client.js +87 -87
  527. package/dist/esm/clients/internal-api/index.d.ts +9 -9
  528. package/dist/esm/clients/internal-api/index.js +9 -9
  529. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  530. package/dist/esm/clients/internal-api/shopify-app-install-client.js +77 -77
  531. package/dist/esm/clients/internal-api/subscriptions-client.d.ts +26 -26
  532. package/dist/esm/clients/internal-api/subscriptions-client.js +73 -73
  533. package/dist/esm/clients/internal-api/users-auth-client.d.ts +35 -35
  534. package/dist/esm/clients/internal-api/users-auth-client.js +106 -106
  535. package/dist/esm/clients/third-party/acuity-client.d.ts +10 -10
  536. package/dist/esm/clients/third-party/acuity-client.js +36 -36
  537. package/dist/esm/clients/third-party/emailable-client.d.ts +7 -7
  538. package/dist/esm/clients/third-party/emailable-client.js +21 -21
  539. package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  540. package/dist/esm/clients/third-party/exchange-rate-api-client.js +15 -15
  541. package/dist/esm/clients/third-party/index.d.ts +5 -5
  542. package/dist/esm/clients/third-party/index.js +5 -5
  543. package/dist/esm/clients/third-party/loops-client.d.ts +10 -10
  544. package/dist/esm/clients/third-party/loops-client.js +26 -26
  545. package/dist/esm/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  546. package/dist/esm/clients/third-party/shopify/graphql-order-queries.js +1 -1
  547. package/dist/esm/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  548. package/dist/esm/clients/third-party/shopify/graphql-product-queries.js +2 -2
  549. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
  550. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +157 -157
  551. package/dist/esm/clients/third-party/shopify-client.d.ts +29 -29
  552. package/dist/esm/clients/third-party/shopify-client.js +142 -142
  553. package/dist/esm/constants/index.d.ts +1 -1
  554. package/dist/esm/constants/index.js +1 -1
  555. package/dist/esm/constants/sqs.d.ts +20 -20
  556. package/dist/esm/constants/sqs.js +22 -22
  557. package/dist/esm/helpers/account-users-helper.d.ts +2 -2
  558. package/dist/esm/helpers/account-users-helper.js +18 -18
  559. package/dist/esm/helpers/acuity-helper.d.ts +4 -4
  560. package/dist/esm/helpers/acuity-helper.js +51 -51
  561. package/dist/esm/helpers/api-key-auth-helper.d.ts +9 -9
  562. package/dist/esm/helpers/api-key-auth-helper.js +35 -35
  563. package/dist/esm/helpers/api-key-authorizer-helper.d.ts +36 -36
  564. package/dist/esm/helpers/api-key-authorizer-helper.js +83 -83
  565. package/dist/esm/helpers/identity-cache-helper.d.ts +30 -30
  566. package/dist/esm/helpers/identity-cache-helper.js +248 -248
  567. package/dist/esm/helpers/index.d.ts +10 -10
  568. package/dist/esm/helpers/index.js +10 -10
  569. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  570. package/dist/esm/helpers/input-validation-helper.js +18 -18
  571. package/dist/esm/helpers/logging-helper.d.ts +16 -16
  572. package/dist/esm/helpers/logging-helper.js +56 -56
  573. package/dist/esm/helpers/response-helper.d.ts +18 -18
  574. package/dist/esm/helpers/response-helper.js +37 -37
  575. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  576. package/dist/esm/helpers/shopify-helper.js +21 -21
  577. package/dist/esm/helpers/sqs-utils.d.ts +6 -6
  578. package/dist/esm/helpers/sqs-utils.js +9 -9
  579. package/dist/esm/index.d.ts +7 -7
  580. package/dist/esm/index.js +7 -7
  581. package/dist/esm/libs/api-router/index.d.ts +2 -2
  582. package/dist/esm/libs/api-router/index.js +2 -2
  583. package/dist/esm/libs/api-router/public-api-router.d.ts +3 -3
  584. package/dist/esm/libs/api-router/public-api-router.js +32 -32
  585. package/dist/esm/libs/api-router/route-matcher.d.ts +21 -21
  586. package/dist/esm/libs/api-router/route-matcher.js +30 -30
  587. package/dist/esm/libs/click-id-parser.d.ts +23 -23
  588. package/dist/esm/libs/click-id-parser.js +45 -45
  589. package/dist/esm/libs/compression.d.ts +2 -2
  590. package/dist/esm/libs/compression.js +25 -25
  591. package/dist/esm/libs/contacts.d.ts +7 -7
  592. package/dist/esm/libs/contacts.js +143 -143
  593. package/dist/esm/libs/cookie.d.ts +17 -17
  594. package/dist/esm/libs/cookie.js +70 -70
  595. package/dist/esm/libs/crypto.d.ts +4 -4
  596. package/dist/esm/libs/crypto.js +15 -15
  597. package/dist/esm/libs/csv.d.ts +2 -2
  598. package/dist/esm/libs/csv.js +30 -30
  599. package/dist/esm/libs/currency.d.ts +1 -1
  600. package/dist/esm/libs/currency.js +22 -22
  601. package/dist/esm/libs/dates.d.ts +12 -12
  602. package/dist/esm/libs/dates.js +83 -83
  603. package/dist/esm/libs/domain.d.ts +2 -2
  604. package/dist/esm/libs/domain.js +33 -33
  605. package/dist/esm/libs/emails.d.ts +8 -8
  606. package/dist/esm/libs/emails.js +146 -146
  607. package/dist/esm/libs/http-error.d.ts +21 -21
  608. package/dist/esm/libs/http-error.js +59 -59
  609. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  610. package/dist/esm/libs/http-status-codes.js +59 -59
  611. package/dist/esm/libs/index.d.ts +19 -19
  612. package/dist/esm/libs/index.js +19 -19
  613. package/dist/esm/libs/numbers.d.ts +1 -1
  614. package/dist/esm/libs/numbers.js +11 -11
  615. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  616. package/dist/esm/libs/referrer-parser/index.js +2 -2
  617. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  618. package/dist/esm/libs/referrer-parser/referrer-data.js +3304 -3304
  619. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  620. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +124 -124
  621. package/dist/esm/libs/strings.d.ts +3 -3
  622. package/dist/esm/libs/strings.js +40 -40
  623. package/dist/esm/libs/traits.d.ts +6 -6
  624. package/dist/esm/libs/traits.js +54 -54
  625. package/dist/esm/libs/url.d.ts +1 -1
  626. package/dist/esm/libs/url.js +9 -9
  627. package/dist/esm/services/acuity-api-service.d.ts +9 -9
  628. package/dist/esm/services/acuity-api-service.js +69 -69
  629. package/dist/esm/services/cache/generic-cached-object.d.ts +5 -5
  630. package/dist/esm/services/cache/generic-cached-object.js +1 -1
  631. package/dist/esm/services/cache/index.d.ts +1 -1
  632. package/dist/esm/services/cache/index.js +1 -1
  633. package/dist/esm/services/cache/product-cache-service.d.ts +21 -21
  634. package/dist/esm/services/cache/product-cache-service.js +68 -68
  635. package/dist/esm/services/cost/cost-calculation-types.d.ts +69 -69
  636. package/dist/esm/services/cost/cost-calculation-types.js +15 -15
  637. package/dist/esm/services/cost/cost-calculator-service.d.ts +24 -24
  638. package/dist/esm/services/cost/cost-calculator-service.js +450 -450
  639. package/dist/esm/services/cost/cost-currency-service.d.ts +6 -6
  640. package/dist/esm/services/cost/cost-currency-service.js +84 -84
  641. package/dist/esm/services/cost/cost-filter-service.d.ts +10 -10
  642. package/dist/esm/services/cost/cost-filter-service.js +118 -118
  643. package/dist/esm/services/cost/index.d.ts +5 -5
  644. package/dist/esm/services/cost/index.js +5 -5
  645. package/dist/esm/services/cost/order-cost/index.d.ts +2 -2
  646. package/dist/esm/services/cost/order-cost/index.js +2 -2
  647. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.d.ts +23 -23
  648. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js +355 -355
  649. package/dist/esm/services/cost/order-cost/order-cost-resolution-types.d.ts +37 -37
  650. package/dist/esm/services/cost/order-cost/order-cost-resolution-types.js +1 -1
  651. package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +12 -12
  652. package/dist/esm/services/currency-exchange-rate-lookup-service.js +90 -90
  653. package/dist/esm/services/db/accounts-db-service.d.ts +9 -9
  654. package/dist/esm/services/db/accounts-db-service.js +29 -29
  655. package/dist/esm/services/db/api-keys-db-service.d.ts +10 -10
  656. package/dist/esm/services/db/api-keys-db-service.js +32 -32
  657. package/dist/esm/services/db/contact-enrichments-db-service.d.ts +15 -15
  658. package/dist/esm/services/db/contact-enrichments-db-service.js +90 -90
  659. package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  660. package/dist/esm/services/db/currency-exchange-rates-db-service.js +35 -35
  661. package/dist/esm/services/db/custom-measures-db-service.d.ts +14 -14
  662. package/dist/esm/services/db/custom-measures-db-service.js +44 -44
  663. package/dist/esm/services/db/destinations-db-service.d.ts +13 -13
  664. package/dist/esm/services/db/destinations-db-service.js +70 -70
  665. package/dist/esm/services/db/identity-cache-db-service.d.ts +28 -28
  666. package/dist/esm/services/db/identity-cache-db-service.js +313 -313
  667. package/dist/esm/services/db/identity-cache-dynamodb-service/constants.d.ts +3 -0
  668. package/dist/esm/services/db/identity-cache-dynamodb-service/constants.js +4 -0
  669. package/dist/esm/services/db/identity-cache-dynamodb-service/constants.js.map +1 -0
  670. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.d.ts +14 -0
  671. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js +234 -0
  672. package/dist/esm/services/db/identity-cache-dynamodb-service/helpers.js.map +1 -0
  673. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +24 -0
  674. package/dist/esm/services/db/{identity-cache-dynamodb-service.js → identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js} +606 -728
  675. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -0
  676. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +22 -0
  677. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +368 -0
  678. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -0
  679. package/dist/esm/services/db/identity-cache-dynamodb-service/index.d.ts +4 -0
  680. package/dist/esm/services/db/identity-cache-dynamodb-service/index.js +5 -0
  681. package/dist/esm/services/db/identity-cache-dynamodb-service/index.js.map +1 -0
  682. package/dist/esm/services/db/identity-cache-dynamodb-service/key-builders.d.ts +12 -0
  683. package/dist/esm/services/db/identity-cache-dynamodb-service/key-builders.js +24 -0
  684. package/dist/esm/services/db/identity-cache-dynamodb-service/key-builders.js.map +1 -0
  685. package/dist/esm/services/db/identity-cache-dynamodb-service/types.d.ts +205 -0
  686. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js +32 -0
  687. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -0
  688. package/dist/esm/services/db/index.d.ts +22 -19
  689. package/dist/esm/services/db/index.js +22 -19
  690. package/dist/esm/services/db/index.js.map +1 -1
  691. package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
  692. package/dist/esm/services/db/log-events-db-service.js +177 -177
  693. package/dist/esm/services/db/pixels-db-service.d.ts +8 -8
  694. package/dist/esm/services/db/pixels-db-service.js +31 -31
  695. package/dist/esm/services/db/products-db-service-types.d.ts +10 -10
  696. package/dist/esm/services/db/products-db-service-types.js +1 -1
  697. package/dist/esm/services/db/products-db-service.d.ts +19 -19
  698. package/dist/esm/services/db/products-db-service.js +277 -277
  699. package/dist/esm/services/db/purchasable-contacts-db-service.d.ts +9 -9
  700. package/dist/esm/services/db/purchasable-contacts-db-service.js +39 -39
  701. package/dist/esm/services/db/purchased-contacts/index.d.ts +2 -2
  702. package/dist/esm/services/db/purchased-contacts/index.js +2 -2
  703. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.d.ts +18 -18
  704. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js +148 -148
  705. package/dist/esm/services/db/purchased-contacts/types.d.ts +11 -11
  706. package/dist/esm/services/db/purchased-contacts/types.js +1 -1
  707. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +10 -10
  708. package/dist/esm/services/db/shopify-app-installs-db-service.js +48 -48
  709. package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +16 -16
  710. package/dist/esm/services/db/shopify-products-cache-db-service.js +66 -66
  711. package/dist/esm/services/db/subscriptions-db-service.d.ts +11 -11
  712. package/dist/esm/services/db/subscriptions-db-service.js +34 -34
  713. package/dist/esm/services/db/tracking-events-db-service.d.ts +21 -21
  714. package/dist/esm/services/db/tracking-events-db-service.js +184 -184
  715. package/dist/esm/services/db/user-accounts-db-service.d.ts +7 -7
  716. package/dist/esm/services/db/user-accounts-db-service.js +13 -13
  717. package/dist/esm/services/email-verification/contact-email-verification-service.d.ts +7 -7
  718. package/dist/esm/services/email-verification/contact-email-verification-service.js +97 -97
  719. package/dist/esm/services/email-verification/email-verification-service.d.ts +19 -19
  720. package/dist/esm/services/email-verification/email-verification-service.js +127 -127
  721. package/dist/esm/services/email-verification/index.d.ts +2 -2
  722. package/dist/esm/services/email-verification/index.js +2 -2
  723. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  724. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  725. package/dist/esm/services/events/index.d.ts +3 -3
  726. package/dist/esm/services/events/index.js +3 -3
  727. package/dist/esm/services/events/log-event-service.d.ts +19 -19
  728. package/dist/esm/services/events/log-event-service.js +73 -73
  729. package/dist/esm/services/events/metric-event-service.d.ts +9 -9
  730. package/dist/esm/services/events/metric-event-service.js +45 -45
  731. package/dist/esm/services/events/tracking-event-sqs-service.d.ts +8 -8
  732. package/dist/esm/services/events/tracking-event-sqs-service.js +30 -30
  733. package/dist/esm/services/generic-cache-service.d.ts +7 -7
  734. package/dist/esm/services/generic-cache-service.js +29 -29
  735. package/dist/esm/services/index.d.ts +11 -11
  736. package/dist/esm/services/index.js +11 -11
  737. package/dist/esm/services/ipdata-lookup-service.d.ts +20 -20
  738. package/dist/esm/services/ipdata-lookup-service.js +108 -108
  739. package/dist/esm/services/shopify/index.d.ts +2 -2
  740. package/dist/esm/services/shopify/index.js +2 -2
  741. package/dist/esm/services/shopify/products/index.d.ts +1 -1
  742. package/dist/esm/services/shopify/products/index.js +1 -1
  743. package/dist/esm/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  744. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js +108 -108
  745. package/dist/esm/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  746. package/dist/esm/services/shopify/shopify-graphql-transformer.js +138 -138
  747. package/dist/esm/types/acuity-types.d.ts +74 -74
  748. package/dist/esm/types/acuity-types.js +1 -1
  749. package/dist/esm/types/api-response.d.ts +6 -6
  750. package/dist/esm/types/api-response.js +1 -1
  751. package/dist/esm/types/index.d.ts +4 -4
  752. package/dist/esm/types/index.js +4 -4
  753. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  754. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  755. package/dist/esm/types/internal-events/index.d.ts +1 -1
  756. package/dist/esm/types/internal-events/index.js +1 -1
  757. package/dist/esm/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  758. package/dist/esm/types/shopify-graphql-types/admin.generated.js +1 -1
  759. package/dist/esm/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  760. package/dist/esm/types/shopify-graphql-types/admin.types.js +5299 -5299
  761. package/dist/esm/types/shopify-graphql-types/index.d.ts +2 -2
  762. package/dist/esm/types/shopify-graphql-types/index.js +2 -2
  763. package/dist/esm/types/shopify-rest-types.d.ts +767 -767
  764. package/dist/esm/types/shopify-rest-types.js +1 -1
  765. package/dist/esm/utils/compression.d.ts +36 -36
  766. package/dist/esm/utils/compression.js +187 -187
  767. package/dist/esm/utils/custom-measure-formula-utils.d.ts +6 -6
  768. package/dist/esm/utils/custom-measure-formula-utils.js +201 -201
  769. package/dist/esm/utils/index.d.ts +4 -4
  770. package/dist/esm/utils/index.js +4 -4
  771. package/dist/esm/utils/retry-envelope.d.ts +12 -12
  772. package/dist/esm/utils/retry-envelope.js +22 -22
  773. package/dist/esm/utils/size.d.ts +2 -2
  774. package/dist/esm/utils/size.js +44 -44
  775. package/package.json +135 -134
  776. package/dist/cjs/services/db/identity-cache-dynamodb-service.d.ts +0 -44
  777. package/dist/cjs/services/db/identity-cache-dynamodb-service.js.map +0 -1
  778. package/dist/esm/services/db/identity-cache-dynamodb-service.d.ts +0 -44
  779. package/dist/esm/services/db/identity-cache-dynamodb-service.js.map +0 -1
@@ -0,0 +1,644 @@
1
+ import { ADDRESS_INFO_SOURCE } from '@adtrackify/at-tracking-event-types';
2
+ jest.mock('../../clients/index.js', () => ({
3
+ DynamoDbClient: {
4
+ safeGet: jest.fn(),
5
+ safePut: jest.fn(),
6
+ safeDelete: jest.fn(),
7
+ safeBatchGet: jest.fn(),
8
+ safeBatchWrite: jest.fn(),
9
+ safeQueryByGSI: jest.fn(),
10
+ batchWrite: jest.fn(),
11
+ },
12
+ }));
13
+ jest.mock('../../helpers/index.js', () => ({
14
+ Logger: {
15
+ debug: jest.fn(),
16
+ info: jest.fn(),
17
+ warn: jest.fn(),
18
+ error: jest.fn(),
19
+ },
20
+ }));
21
+ import { DynamoDbClient } from '../../clients/index.js';
22
+ import { Logger } from '../../helpers/index.js';
23
+ import { IdentityCacheDynamoDbDbService } from '../../services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js';
24
+ import { CACHE_WRITE_REASON, IDENTITY_CACHE_LOOKUP_OUTCOME, } from '../../services/db/identity-cache-dynamodb-service/types.js';
25
+ const mockedDynamoDbClient = DynamoDbClient;
26
+ const mockedLogger = Logger;
27
+ const pixelId = 'pixel-cache-lookup-v2';
28
+ let dateNowSpy;
29
+ const deepClone = (value) => {
30
+ if (value === undefined) {
31
+ return value;
32
+ }
33
+ return JSON.parse(JSON.stringify(value));
34
+ };
35
+ const normalizeDynamicValues = (value) => {
36
+ if (Array.isArray(value)) {
37
+ return value.map(normalizeDynamicValues);
38
+ }
39
+ if (value && typeof value === 'object') {
40
+ const normalized = {};
41
+ for (const [key, objectValue] of Object.entries(value)) {
42
+ if (key === 'updatedAt' || key === 'createdAt') {
43
+ normalized[key] = '<timestamp>';
44
+ }
45
+ else {
46
+ normalized[key] = normalizeDynamicValues(objectValue);
47
+ }
48
+ }
49
+ return normalized;
50
+ }
51
+ return value;
52
+ };
53
+ const cloneCalls = (mockFunction) => normalizeDynamicValues(deepClone(mockFunction.mock.calls));
54
+ const captureDynamoDbCalls = () => ({
55
+ safeGet: cloneCalls(mockedDynamoDbClient.safeGet),
56
+ safePut: cloneCalls(mockedDynamoDbClient.safePut),
57
+ safeDelete: cloneCalls(mockedDynamoDbClient.safeDelete),
58
+ safeBatchGet: cloneCalls(mockedDynamoDbClient.safeBatchGet),
59
+ safeBatchWrite: cloneCalls(mockedDynamoDbClient.safeBatchWrite),
60
+ safeQueryByGSI: cloneCalls(mockedDynamoDbClient.safeQueryByGSI),
61
+ batchWrite: cloneCalls(mockedDynamoDbClient.batchWrite),
62
+ });
63
+ const captureLoggerCalls = () => ({
64
+ debug: cloneCalls(mockedLogger.debug),
65
+ info: cloneCalls(mockedLogger.info),
66
+ warn: cloneCalls(mockedLogger.warn),
67
+ error: cloneCalls(mockedLogger.error),
68
+ });
69
+ const resetMocksForRun = () => {
70
+ dateNowSpy?.mockRestore();
71
+ dateNowSpy = jest.spyOn(Date, 'now').mockReturnValue(1782532911813);
72
+ jest.clearAllMocks();
73
+ mockedDynamoDbClient.safeGet.mockReset();
74
+ mockedDynamoDbClient.safePut.mockReset();
75
+ mockedDynamoDbClient.safeDelete.mockReset();
76
+ mockedDynamoDbClient.safeBatchGet.mockReset();
77
+ mockedDynamoDbClient.safeBatchWrite.mockReset();
78
+ mockedDynamoDbClient.safeQueryByGSI.mockReset();
79
+ mockedDynamoDbClient.batchWrite.mockReset();
80
+ };
81
+ const buildCachedRecord = (identity) => ({
82
+ pk: `identity#${pixelId}#${identity.identityId}`,
83
+ pixelId,
84
+ identityId: identity.identityId ?? 'missing-id',
85
+ response: deepClone(identity),
86
+ updatedAt: '2026-01-01T00:00:00.000Z',
87
+ });
88
+ const runOriginal = async (scenario) => {
89
+ resetMocksForRun();
90
+ scenario.setupMocks();
91
+ const cacheResult = await IdentityCacheDynamoDbDbService.getIdentityFromCache(pixelId, deepClone(scenario.incomingIdentity));
92
+ return {
93
+ cacheResult: normalizeDynamicValues(deepClone(cacheResult)),
94
+ dynamoDbCalls: captureDynamoDbCalls(),
95
+ loggerCalls: captureLoggerCalls(),
96
+ };
97
+ };
98
+ const runV2 = async (scenario) => {
99
+ resetMocksForRun();
100
+ scenario.setupMocks();
101
+ const result = await IdentityCacheDynamoDbDbService.getIdentityFromCacheV2(pixelId, deepClone(scenario.incomingIdentity));
102
+ return {
103
+ cacheResult: normalizeDynamicValues(deepClone(result.cacheResult)),
104
+ summary: normalizeDynamicValues(deepClone(result.summary)),
105
+ dynamoDbCalls: captureDynamoDbCalls(),
106
+ loggerCalls: captureLoggerCalls(),
107
+ };
108
+ };
109
+ const expectV2ToMatchOriginal = async (scenario) => {
110
+ const originalRun = await runOriginal(scenario);
111
+ const v2Run = await runV2(scenario);
112
+ expect(v2Run.cacheResult).toEqual(originalRun.cacheResult);
113
+ expect(v2Run.dynamoDbCalls).toEqual(originalRun.dynamoDbCalls);
114
+ expect(v2Run.loggerCalls).toEqual(originalRun.loggerCalls);
115
+ expect(v2Run.summary.outcome).toBe(scenario.expectedOutcome);
116
+ scenario.assertSummary?.(v2Run.summary);
117
+ return { originalRun, v2Run };
118
+ };
119
+ describe('IdentityCacheDynamoDbDbService getIdentityFromCache() vs getIdentityFromCacheV2()', () => {
120
+ it('matches invalid input behavior', async () => {
121
+ await expectV2ToMatchOriginal({
122
+ incomingIdentity: null,
123
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.INVALID_INPUT,
124
+ setupMocks: () => undefined,
125
+ assertSummary: (summary) => {
126
+ expect(summary.isCacheStale).toBe(true);
127
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.CACHE_MISS);
128
+ },
129
+ });
130
+ });
131
+ it('matches primary identity cache miss behavior', async () => {
132
+ await expectV2ToMatchOriginal({
133
+ incomingIdentity: {
134
+ identityId: 'missing-primary',
135
+ traits: { emails: ['missing@example.com'] },
136
+ },
137
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_MISS,
138
+ setupMocks: () => {
139
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(null);
140
+ },
141
+ assertSummary: (summary) => {
142
+ expect(summary.didLookupByIdentityId).toBe(true);
143
+ expect(summary.didLookupByEmail).toBe(false);
144
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.CACHE_MISS);
145
+ },
146
+ });
147
+ });
148
+ it('matches cached identity without response behavior', async () => {
149
+ await expectV2ToMatchOriginal({
150
+ incomingIdentity: {
151
+ identityId: 'missing-response',
152
+ traits: { emails: ['missing-response@example.com'] },
153
+ },
154
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_MISS_NO_RESPONSE,
155
+ setupMocks: () => {
156
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce({
157
+ pk: `identity#${pixelId}#missing-response`,
158
+ pixelId,
159
+ identityId: 'missing-response',
160
+ updatedAt: '2026-01-01T00:00:00.000Z',
161
+ });
162
+ },
163
+ assertSummary: (summary) => {
164
+ expect(summary.didLookupByIdentityId).toBe(true);
165
+ expect(summary.isCacheStale).toBe(true);
166
+ },
167
+ });
168
+ });
169
+ it('matches primary cache hit behavior when traits are equal', async () => {
170
+ const cachedIdentity = {
171
+ identityId: 'fresh-primary',
172
+ traits: { emails: ['fresh@example.com'] },
173
+ };
174
+ await expectV2ToMatchOriginal({
175
+ incomingIdentity: deepClone(cachedIdentity),
176
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_HIT,
177
+ setupMocks: () => {
178
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
179
+ },
180
+ assertSummary: (summary) => {
181
+ expect(summary.didLookupByIdentityId).toBe(true);
182
+ expect(summary.isDeepEqual).toBe(true);
183
+ expect(summary.isCacheStale).toBe(false);
184
+ },
185
+ });
186
+ });
187
+ it('matches primary stale behavior for identity traits', async () => {
188
+ const cachedIdentity = {
189
+ identityId: 'stale-primary',
190
+ traits: { emails: ['old@example.com'] },
191
+ };
192
+ await expectV2ToMatchOriginal({
193
+ incomingIdentity: {
194
+ identityId: 'stale-primary',
195
+ traits: { emails: ['old@example.com', 'new@example.com'] },
196
+ },
197
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_STALE,
198
+ setupMocks: () => {
199
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
200
+ },
201
+ assertSummary: (summary) => {
202
+ expect(summary.isCacheStale).toBe(true);
203
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.STALE_TRAITS);
204
+ expect(summary.skipNeptune).toBe(false);
205
+ expect(summary.staleTraits).toContain('emails');
206
+ },
207
+ });
208
+ });
209
+ it('matches primary address update behavior', async () => {
210
+ const cachedIdentity = {
211
+ identityId: 'address-primary',
212
+ traits: {
213
+ emails: ['address@example.com'],
214
+ addresses: [],
215
+ },
216
+ };
217
+ await expectV2ToMatchOriginal({
218
+ incomingIdentity: {
219
+ identityId: 'address-primary',
220
+ traits: {
221
+ emails: ['address@example.com'],
222
+ addresses: [{ city: 'Boston', s: ADDRESS_INFO_SOURCE.INPUT }],
223
+ },
224
+ },
225
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_STALE,
226
+ setupMocks: () => {
227
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
228
+ },
229
+ assertSummary: (summary) => {
230
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.ADDRESS_UPDATE);
231
+ expect(summary.skipNeptune).toBe(true);
232
+ expect(summary.staleTraits).toContain('addresses');
233
+ },
234
+ });
235
+ });
236
+ it('matches volatile-only behavior', async () => {
237
+ const cachedIdentity = {
238
+ identityId: 'volatile-primary',
239
+ traits: {
240
+ emails: ['volatile@example.com'],
241
+ ipAddress: '192.168.1.1',
242
+ },
243
+ };
244
+ await expectV2ToMatchOriginal({
245
+ incomingIdentity: {
246
+ identityId: 'volatile-primary',
247
+ traits: {
248
+ emails: ['volatile@example.com'],
249
+ ipAddress: '10.0.0.1',
250
+ },
251
+ },
252
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_HIT,
253
+ setupMocks: () => {
254
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
255
+ },
256
+ assertSummary: (summary) => {
257
+ expect(summary.isCacheStale).toBe(false);
258
+ expect(summary.writeReason).toBeUndefined();
259
+ },
260
+ });
261
+ });
262
+ it('matches email pointer discovery behavior', async () => {
263
+ await expectV2ToMatchOriginal({
264
+ incomingIdentity: {
265
+ traits: { emails: ['pointer@example.com'] },
266
+ },
267
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.EMAIL_POINTER_DISCOVERY,
268
+ setupMocks: () => {
269
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce({
270
+ pk: `email#${pixelId}#pointer@example.com`,
271
+ pixelId,
272
+ identityId: 'discovered-id',
273
+ gsi1pk: 'discovered-id',
274
+ updatedAt: '2026-01-01T00:00:00.000Z',
275
+ });
276
+ },
277
+ assertSummary: (summary) => {
278
+ expect(summary.didLookupByEmail).toBe(true);
279
+ expect(summary.discoveredIdentityId).toBe('discovered-id');
280
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.EMAIL_POINTER_DISCOVERY);
281
+ },
282
+ });
283
+ });
284
+ it('matches email pointer miss behavior', async () => {
285
+ await expectV2ToMatchOriginal({
286
+ incomingIdentity: {
287
+ traits: { emails: ['missing-pointer@example.com'] },
288
+ },
289
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.EMAIL_POINTER_MISS,
290
+ setupMocks: () => {
291
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(null);
292
+ },
293
+ assertSummary: (summary) => {
294
+ expect(summary.didLookupByEmail).toBe(true);
295
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.CACHE_MISS);
296
+ },
297
+ });
298
+ });
299
+ it('matches no-email miss behavior without reading DynamoDB', async () => {
300
+ await expectV2ToMatchOriginal({
301
+ incomingIdentity: {
302
+ traits: { userIds: ['user-only'] },
303
+ },
304
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.EMAIL_POINTER_MISS,
305
+ setupMocks: () => undefined,
306
+ assertSummary: (summary) => {
307
+ expect(summary.didLookupByEmail).toBe(false);
308
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.CACHE_MISS);
309
+ },
310
+ });
311
+ });
312
+ it('matches fail-open behavior when primary lookup throws', async () => {
313
+ await expectV2ToMatchOriginal({
314
+ incomingIdentity: {
315
+ identityId: 'throws-primary',
316
+ traits: { emails: ['throws@example.com'] },
317
+ },
318
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_MISS,
319
+ setupMocks: () => {
320
+ mockedDynamoDbClient.safeGet.mockRejectedValueOnce(new Error('dynamo failed'));
321
+ },
322
+ assertSummary: (summary) => {
323
+ expect(summary.errorMessage).toBeUndefined();
324
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.CACHE_MISS);
325
+ },
326
+ });
327
+ });
328
+ it('matches fail-open behavior when email lookup throws', async () => {
329
+ await expectV2ToMatchOriginal({
330
+ incomingIdentity: {
331
+ traits: { emails: ['throws-email@example.com'] },
332
+ },
333
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.EMAIL_POINTER_MISS,
334
+ setupMocks: () => {
335
+ mockedDynamoDbClient.safeGet.mockRejectedValueOnce(new Error('email lookup dynamo failed'));
336
+ },
337
+ assertSummary: (summary) => {
338
+ expect(summary.didLookupByEmail).toBe(true);
339
+ expect(summary.errorMessage).toBeUndefined();
340
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.CACHE_MISS);
341
+ expect(summary.discoveredIdentityId).toBeUndefined();
342
+ },
343
+ });
344
+ });
345
+ it('matches primary cache hit with null traits on cached identity', async () => {
346
+ const cachedIdentity = {
347
+ identityId: 'null-traits-primary',
348
+ traits: null,
349
+ };
350
+ await expectV2ToMatchOriginal({
351
+ incomingIdentity: {
352
+ identityId: 'null-traits-primary',
353
+ traits: { emails: ['incoming@example.com'] },
354
+ },
355
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_STALE,
356
+ setupMocks: () => {
357
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
358
+ },
359
+ assertSummary: (summary) => {
360
+ expect(summary.didLookupByIdentityId).toBe(true);
361
+ expect(summary.isCacheStale).toBe(true);
362
+ expect(summary.cachedIdentity).toEqual(cachedIdentity);
363
+ expect(summary.mergedIdentity?.traits?.emails).toContain('incoming@example.com');
364
+ },
365
+ });
366
+ });
367
+ it('matches primary cache hit with empty traits object on cached identity', async () => {
368
+ const cachedIdentity = {
369
+ identityId: 'empty-traits-primary',
370
+ traits: {},
371
+ };
372
+ await expectV2ToMatchOriginal({
373
+ incomingIdentity: {
374
+ identityId: 'empty-traits-primary',
375
+ traits: { emails: ['new@example.com'] },
376
+ },
377
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_STALE,
378
+ setupMocks: () => {
379
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
380
+ },
381
+ assertSummary: (summary) => {
382
+ expect(summary.didLookupByIdentityId).toBe(true);
383
+ expect(summary.isCacheStale).toBe(true);
384
+ expect(summary.mergedIdentity?.traits?.emails).toContain('new@example.com');
385
+ },
386
+ });
387
+ });
388
+ it('matches primary cache hit when incoming has empty traits (subset of cached)', async () => {
389
+ const cachedIdentity = {
390
+ identityId: 'incoming-empty-traits',
391
+ traits: { emails: ['cached@example.com'], phones: ['+1234567890'] },
392
+ };
393
+ await expectV2ToMatchOriginal({
394
+ incomingIdentity: {
395
+ identityId: 'incoming-empty-traits',
396
+ traits: {},
397
+ },
398
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_HIT,
399
+ setupMocks: () => {
400
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
401
+ },
402
+ assertSummary: (summary) => {
403
+ expect(summary.didLookupByIdentityId).toBe(true);
404
+ expect(summary.isCacheStale).toBe(false);
405
+ expect(summary.isDeepEqual).toBe(true);
406
+ expect(summary.mergedIdentity?.traits?.emails).toContain('cached@example.com');
407
+ expect(summary.mergedIdentity?.traits?.phones).toContain('+1234567890');
408
+ },
409
+ });
410
+ });
411
+ it('matches timestamp stripping behavior - addresses differ only by timestamp', async () => {
412
+ const cachedIdentity = {
413
+ identityId: 'timestamp-diff-primary',
414
+ traits: {
415
+ emails: ['timestamp@example.com'],
416
+ addresses: [
417
+ { city: 'Boston', s: ADDRESS_INFO_SOURCE.INPUT, cra: 1704067200000, upa: 1704067200000 },
418
+ ],
419
+ },
420
+ };
421
+ const incomingIdentity = {
422
+ identityId: 'timestamp-diff-primary',
423
+ traits: {
424
+ emails: ['timestamp@example.com'],
425
+ addresses: [
426
+ { city: 'Boston', s: ADDRESS_INFO_SOURCE.INPUT, cra: 1717200000000, upa: 1718409600000 },
427
+ ],
428
+ },
429
+ };
430
+ await expectV2ToMatchOriginal({
431
+ incomingIdentity,
432
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_HIT,
433
+ setupMocks: () => {
434
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
435
+ },
436
+ assertSummary: (summary) => {
437
+ expect(summary.didLookupByIdentityId).toBe(true);
438
+ expect(summary.isDeepEqual).toBe(true);
439
+ expect(summary.isCacheStale).toBe(false);
440
+ expect(summary.writeReason).toBeUndefined();
441
+ },
442
+ });
443
+ });
444
+ it('verifies summary fields populated on primary cache hit', async () => {
445
+ const cachedIdentity = {
446
+ identityId: 'summary-hit-primary',
447
+ traits: { emails: ['summary-hit@example.com'], phones: ['+1111111111'] },
448
+ };
449
+ const incomingIdentity = {
450
+ identityId: 'summary-hit-primary',
451
+ traits: { emails: ['summary-hit@example.com'] },
452
+ };
453
+ const { v2Run } = await expectV2ToMatchOriginal({
454
+ incomingIdentity,
455
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_HIT,
456
+ setupMocks: () => {
457
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
458
+ },
459
+ assertSummary: (summary) => {
460
+ expect(summary.cachedIdentity).toEqual(cachedIdentity);
461
+ expect(summary.incomingIdentity).toEqual(incomingIdentity);
462
+ expect(summary.mergedIdentity).toBeDefined();
463
+ expect(summary.mergedIdentity?.traits?.emails).toContain('summary-hit@example.com');
464
+ expect(summary.mergedIdentity?.traits?.phones).toContain('+1111111111');
465
+ expect(summary.resolvedIdentity).toEqual(summary.mergedIdentity);
466
+ expect(summary.incomingClick).toBeNull();
467
+ expect(summary.cachedClick).toBeNull();
468
+ expect(summary.mergedClick).toBeNull();
469
+ },
470
+ });
471
+ const cacheResult = v2Run.cacheResult;
472
+ expect(cacheResult.resolvedIdentity).toEqual(v2Run.summary.mergedIdentity);
473
+ expect(cacheResult.isCacheStale).toBe(false);
474
+ expect(cacheResult.cachedIdentity).toEqual(cachedIdentity);
475
+ expect(cacheResult.staleTracker).toBeUndefined();
476
+ expect(cacheResult.writeReason).toBeUndefined();
477
+ });
478
+ it('verifies staleTracker present only when stale', async () => {
479
+ const cachedIdentity = {
480
+ identityId: 'stale-tracker-primary',
481
+ traits: { emails: ['old@example.com'] },
482
+ };
483
+ const staleIncoming = {
484
+ identityId: 'stale-tracker-primary',
485
+ traits: { emails: ['old@example.com', 'new@example.com'] },
486
+ };
487
+ const { v2Run: staleRun } = await expectV2ToMatchOriginal({
488
+ incomingIdentity: staleIncoming,
489
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_STALE,
490
+ setupMocks: () => {
491
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
492
+ },
493
+ assertSummary: (summary) => {
494
+ expect(summary.isCacheStale).toBe(true);
495
+ },
496
+ });
497
+ const staleCacheResult = staleRun.cacheResult;
498
+ expect(staleCacheResult.staleTracker).toEqual(expect.objectContaining({
499
+ isCacheStale: true,
500
+ isEmailsStale: true,
501
+ }));
502
+ const freshIncoming = {
503
+ identityId: 'stale-tracker-primary',
504
+ traits: { emails: ['old@example.com'] },
505
+ };
506
+ const { v2Run: freshRun } = await expectV2ToMatchOriginal({
507
+ incomingIdentity: freshIncoming,
508
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_HIT,
509
+ setupMocks: () => {
510
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
511
+ },
512
+ assertSummary: (summary) => {
513
+ expect(summary.isCacheStale).toBe(false);
514
+ },
515
+ });
516
+ const freshCacheResult = freshRun.cacheResult;
517
+ expect(freshCacheResult.staleTracker).toBeUndefined();
518
+ });
519
+ it('verifies summary fields populated on primary cache stale', async () => {
520
+ const cachedIdentity = {
521
+ identityId: 'summary-stale-primary',
522
+ traits: { emails: ['old@example.com'] },
523
+ };
524
+ const incomingIdentity = {
525
+ identityId: 'summary-stale-primary',
526
+ traits: { emails: ['old@example.com', 'new@example.com'], phones: ['+1234567890'] },
527
+ };
528
+ await expectV2ToMatchOriginal({
529
+ incomingIdentity,
530
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_STALE,
531
+ setupMocks: () => {
532
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
533
+ },
534
+ assertSummary: (summary) => {
535
+ expect(summary.cachedIdentity).toEqual(cachedIdentity);
536
+ expect(summary.incomingIdentity).toEqual(incomingIdentity);
537
+ expect(summary.mergedIdentity).toBeDefined();
538
+ expect(summary.mergedIdentity?.traits?.emails).toContain('old@example.com');
539
+ expect(summary.mergedIdentity?.traits?.emails).toContain('new@example.com');
540
+ expect(summary.mergedIdentity?.traits?.phones).toContain('+1234567890');
541
+ expect(summary.resolvedIdentity).toEqual(summary.mergedIdentity);
542
+ expect(summary.staleTier).toBeDefined();
543
+ expect(summary.staleTraits.length).toBeGreaterThan(0);
544
+ },
545
+ });
546
+ });
547
+ it('matches cache miss summary with correct flags', async () => {
548
+ await expectV2ToMatchOriginal({
549
+ incomingIdentity: {
550
+ traits: { userIds: ['user-only-no-email'] },
551
+ },
552
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.EMAIL_POINTER_MISS,
553
+ setupMocks: () => undefined,
554
+ assertSummary: (summary) => {
555
+ expect(summary.didLookupByIdentityId).toBe(false);
556
+ expect(summary.didLookupByEmail).toBe(false);
557
+ expect(summary.isCacheStale).toBe(true);
558
+ expect(summary.writeReason).toBe(CACHE_WRITE_REASON.CACHE_MISS);
559
+ expect(summary.cachedIdentity).toBeUndefined();
560
+ expect(summary.mergedIdentity).toBeUndefined();
561
+ expect(summary.resolvedIdentity).toBeUndefined();
562
+ expect(summary.discoveredIdentityId).toBeUndefined();
563
+ expect(summary.staleTraits).toEqual([]);
564
+ },
565
+ });
566
+ });
567
+ it('matches email pointer discovery summary fields', async () => {
568
+ const incomingIdentity = {
569
+ traits: { emails: ['discovery-summary@example.com'], phones: ['+9999999999'] },
570
+ };
571
+ await expectV2ToMatchOriginal({
572
+ incomingIdentity,
573
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.EMAIL_POINTER_DISCOVERY,
574
+ setupMocks: () => {
575
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce({
576
+ pk: `email#${pixelId}#discovery-summary@example.com`,
577
+ pixelId,
578
+ identityId: 'discovered-summary-id',
579
+ gsi1pk: 'discovered-summary-id',
580
+ updatedAt: '2026-01-01T00:00:00.000Z',
581
+ });
582
+ },
583
+ assertSummary: (summary) => {
584
+ expect(summary.didLookupByEmail).toBe(true);
585
+ expect(summary.discoveredIdentityId).toBe('discovered-summary-id');
586
+ expect(summary.resolvedIdentity?.identityId).toBe('discovered-summary-id');
587
+ expect(summary.resolvedIdentity?.traits?.emails).toContain('discovery-summary@example.com');
588
+ expect(summary.resolvedIdentity?.traits?.phones).toContain('+9999999999');
589
+ expect(summary.cachedIdentity).toBeUndefined();
590
+ expect(summary.mergedIdentity).toBeUndefined();
591
+ },
592
+ });
593
+ });
594
+ it('matches volatile-only with source field changes treated as cache hit', async () => {
595
+ const cachedIdentity = {
596
+ identityId: 'volatile-source-primary',
597
+ traits: {
598
+ emails: ['volatile-source@example.com'],
599
+ addresses: [{ city: 'Boston', s: ADDRESS_INFO_SOURCE.INPUT }],
600
+ ipAddress: '192.168.1.1',
601
+ userAgent: 'Mozilla/5.0 Old',
602
+ },
603
+ };
604
+ const incomingIdentity = {
605
+ identityId: 'volatile-source-primary',
606
+ traits: {
607
+ emails: ['volatile-source@example.com'],
608
+ addresses: [{ city: 'Boston', s: ADDRESS_INFO_SOURCE.INPUT }],
609
+ ipAddress: '10.0.0.1',
610
+ userAgent: 'Mozilla/5.0 New',
611
+ },
612
+ };
613
+ await expectV2ToMatchOriginal({
614
+ incomingIdentity,
615
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_HIT,
616
+ setupMocks: () => {
617
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
618
+ },
619
+ assertSummary: (summary) => {
620
+ expect(summary.isCacheStale).toBe(false);
621
+ expect(summary.writeReason).toBeUndefined();
622
+ expect(summary.skipNeptune).toBeUndefined();
623
+ },
624
+ });
625
+ });
626
+ it('matches skipNeptune undefined when cache is fresh', async () => {
627
+ const cachedIdentity = {
628
+ identityId: 'skip-neptune-fresh',
629
+ traits: { emails: ['fresh@example.com'] },
630
+ };
631
+ await expectV2ToMatchOriginal({
632
+ incomingIdentity: deepClone(cachedIdentity),
633
+ expectedOutcome: IDENTITY_CACHE_LOOKUP_OUTCOME.PRIMARY_CACHE_HIT,
634
+ setupMocks: () => {
635
+ mockedDynamoDbClient.safeGet.mockResolvedValueOnce(buildCachedRecord(cachedIdentity));
636
+ },
637
+ assertSummary: (summary) => {
638
+ expect(summary.isCacheStale).toBe(false);
639
+ expect(summary.skipNeptune).toBeUndefined();
640
+ },
641
+ });
642
+ });
643
+ });
644
+ //# sourceMappingURL=identity-cache-dynamodb-db-service-v2-comparison.spec.js.map