@adtrackify/at-service-common 5.0.7 → 5.1.2

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 (1166) 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 +44 -43
  3. package/dist/cjs/__tests__/clients/acuity-client.spec.js.map +1 -1
  4. package/dist/cjs/__tests__/clients/client-timeout-inventory.spec.d.ts +1 -0
  5. package/dist/cjs/__tests__/clients/client-timeout-inventory.spec.js +21 -0
  6. package/dist/cjs/__tests__/clients/client-timeout-inventory.spec.js.map +1 -0
  7. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.d.ts +1 -1
  8. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js +365 -354
  9. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
  10. package/dist/cjs/__tests__/clients/dynamodb-client.spec.d.ts +1 -1
  11. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js +193 -194
  12. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  13. package/dist/cjs/__tests__/clients/event-collector-client.spec.d.ts +1 -1
  14. package/dist/cjs/__tests__/clients/event-collector-client.spec.js +227 -227
  15. package/dist/cjs/__tests__/clients/event-collector-client.spec.js.map +1 -1
  16. package/dist/cjs/__tests__/clients/open-exchange-rates-client.spec.d.ts +1 -1
  17. package/dist/cjs/__tests__/clients/open-exchange-rates-client.spec.js +56 -55
  18. package/dist/cjs/__tests__/clients/open-exchange-rates-client.spec.js.map +1 -1
  19. package/dist/cjs/__tests__/clients/redis-client.spec.d.ts +1 -0
  20. package/dist/cjs/__tests__/clients/redis-client.spec.js +79 -0
  21. package/dist/cjs/__tests__/clients/redis-client.spec.js.map +1 -0
  22. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
  23. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +949 -931
  24. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
  25. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -1
  26. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js +575 -563
  27. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -1
  28. package/dist/cjs/__tests__/clients/sqs-client.spec.d.ts +1 -1
  29. package/dist/cjs/__tests__/clients/sqs-client.spec.js +192 -191
  30. package/dist/cjs/__tests__/clients/sqs-client.spec.js.map +1 -1
  31. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
  32. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +1358 -1357
  33. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
  34. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -1
  35. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +69 -68
  36. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -1
  37. package/dist/cjs/__tests__/db/destinations-db-service.spec.d.ts +1 -1
  38. package/dist/cjs/__tests__/db/destinations-db-service.spec.js +123 -125
  39. package/dist/cjs/__tests__/db/destinations-db-service.spec.js.map +1 -1
  40. package/dist/cjs/__tests__/db/products-db-service.spec.d.ts +1 -1
  41. package/dist/cjs/__tests__/db/products-db-service.spec.js +90 -89
  42. package/dist/cjs/__tests__/db/products-db-service.spec.js.map +1 -1
  43. package/dist/cjs/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  44. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +90 -89
  45. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js.map +1 -1
  46. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.d.ts +1 -1
  47. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js +105 -104
  48. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js.map +1 -1
  49. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.d.ts +1 -1
  50. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js +96 -95
  51. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js.map +1 -1
  52. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.d.ts +1 -1
  53. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js +77 -76
  54. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js.map +1 -1
  55. package/dist/cjs/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  56. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +221 -220
  57. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js.map +1 -1
  58. package/dist/cjs/__tests__/helpers/acuity-helper.spec.d.ts +1 -1
  59. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js +70 -69
  60. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js.map +1 -1
  61. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
  62. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +83 -82
  63. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -1
  64. package/dist/cjs/__tests__/helpers/cognito-auth-helper.spec.d.ts +1 -1
  65. package/dist/cjs/__tests__/helpers/cognito-auth-helper.spec.js +47 -46
  66. package/dist/cjs/__tests__/helpers/cognito-auth-helper.spec.js.map +1 -1
  67. package/dist/cjs/__tests__/helpers/order-calculation-helper.spec.d.ts +1 -1
  68. package/dist/cjs/__tests__/helpers/order-calculation-helper.spec.js +153 -152
  69. package/dist/cjs/__tests__/helpers/order-calculation-helper.spec.js.map +1 -1
  70. package/dist/cjs/__tests__/helpers/public-api-response-helper.spec.d.ts +1 -1
  71. package/dist/cjs/__tests__/helpers/public-api-response-helper.spec.js +61 -60
  72. package/dist/cjs/__tests__/helpers/public-api-response-helper.spec.js.map +1 -1
  73. package/dist/cjs/__tests__/identity-cache/helpers.spec.d.ts +1 -1
  74. package/dist/cjs/__tests__/identity-cache/helpers.spec.js +593 -592
  75. package/dist/cjs/__tests__/identity-cache/helpers.spec.js.map +1 -1
  76. package/dist/cjs/__tests__/identity-cache/identity-cache-alias-write.spec.d.ts +1 -1
  77. package/dist/cjs/__tests__/identity-cache/identity-cache-alias-write.spec.js +71 -70
  78. package/dist/cjs/__tests__/identity-cache/identity-cache-alias-write.spec.js.map +1 -1
  79. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  80. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +677 -676
  81. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
  82. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.d.ts +1 -1
  83. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +750 -727
  84. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
  85. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.d.ts +1 -1
  86. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +640 -631
  87. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  88. package/dist/cjs/__tests__/identity-cache/identity-client.spec.d.ts +1 -1
  89. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js +362 -359
  90. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js.map +1 -1
  91. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.d.ts +1 -1
  92. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +138 -137
  93. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -1
  94. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.d.ts +1 -1
  95. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +165 -152
  96. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -1
  97. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.d.ts +1 -1
  98. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js +72 -71
  99. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -1
  100. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.d.ts +1 -1
  101. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +95 -88
  102. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -1
  103. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.d.ts +1 -1
  104. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +136 -135
  105. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -1
  106. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.d.ts +1 -1
  107. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +245 -223
  108. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -1
  109. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.d.ts +24 -28
  110. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js +96 -89
  111. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -1
  112. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  113. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +1749 -1770
  114. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
  115. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.d.ts +1 -1
  116. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js +819 -818
  117. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
  118. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
  119. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +585 -584
  120. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
  121. package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  122. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +17 -16
  123. package/dist/cjs/__tests__/libs/compress-decompress.spec.js.map +1 -1
  124. package/dist/cjs/__tests__/libs/contacts.spec.d.ts +1 -1
  125. package/dist/cjs/__tests__/libs/contacts.spec.js +295 -294
  126. package/dist/cjs/__tests__/libs/contacts.spec.js.map +1 -1
  127. package/dist/cjs/__tests__/libs/currency.spec.d.ts +1 -1
  128. package/dist/cjs/__tests__/libs/currency.spec.js +221 -220
  129. package/dist/cjs/__tests__/libs/currency.spec.js.map +1 -1
  130. package/dist/cjs/__tests__/libs/dates.spec.d.ts +1 -1
  131. package/dist/cjs/__tests__/libs/dates.spec.js +131 -130
  132. package/dist/cjs/__tests__/libs/dates.spec.js.map +1 -1
  133. package/dist/cjs/__tests__/libs/domain.spec.d.ts +1 -1
  134. package/dist/cjs/__tests__/libs/domain.spec.js +108 -107
  135. package/dist/cjs/__tests__/libs/domain.spec.js.map +1 -1
  136. package/dist/cjs/__tests__/libs/numbers.spec.d.ts +1 -1
  137. package/dist/cjs/__tests__/libs/numbers.spec.js +262 -261
  138. package/dist/cjs/__tests__/libs/numbers.spec.js.map +1 -1
  139. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  140. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +32 -33
  141. package/dist/cjs/__tests__/s3-client/s3-client.spec.js.map +1 -1
  142. package/dist/cjs/__tests__/services/acuity-api-service.spec.d.ts +1 -1
  143. package/dist/cjs/__tests__/services/acuity-api-service.spec.js +74 -71
  144. package/dist/cjs/__tests__/services/acuity-api-service.spec.js.map +1 -1
  145. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.d.ts +1 -1
  146. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js +24 -23
  147. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -1
  148. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.d.ts +1 -1
  149. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js +3599 -3361
  150. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -1
  151. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.d.ts +1 -1
  152. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js +115 -114
  153. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js.map +1 -1
  154. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.d.ts +1 -1
  155. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js +465 -468
  156. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js.map +1 -1
  157. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.d.ts +1 -1
  158. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +485 -360
  159. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -1
  160. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts +1 -1
  161. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js +39 -34
  162. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +1 -1
  163. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -1
  164. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js +95 -93
  165. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -1
  166. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -1
  167. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js +62 -57
  168. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -1
  169. package/dist/cjs/__tests__/services/events/collect-queue-tracking-service.spec.d.ts +1 -1
  170. package/dist/cjs/__tests__/services/events/collect-queue-tracking-service.spec.js +232 -229
  171. package/dist/cjs/__tests__/services/events/collect-queue-tracking-service.spec.js.map +1 -1
  172. package/dist/cjs/__tests__/services/events/tracking-event-sqs-service.spec.d.ts +1 -1
  173. package/dist/cjs/__tests__/services/events/tracking-event-sqs-service.spec.js +194 -191
  174. package/dist/cjs/__tests__/services/events/tracking-event-sqs-service.spec.js.map +1 -1
  175. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  176. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +36 -35
  177. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js.map +1 -1
  178. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
  179. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js +192 -181
  180. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
  181. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
  182. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js +70 -69
  183. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -1
  184. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -1
  185. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js +147 -146
  186. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -1
  187. package/dist/cjs/clients/generic/cognito-client.d.ts +23 -23
  188. package/dist/cjs/clients/generic/cognito-client.js +209 -209
  189. package/dist/cjs/clients/generic/cognito-client.js.map +1 -1
  190. package/dist/cjs/clients/generic/dynamodb-client.d.ts +20 -20
  191. package/dist/cjs/clients/generic/dynamodb-client.js +235 -235
  192. package/dist/cjs/clients/generic/dynamodb-client.js.map +1 -1
  193. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  194. package/dist/cjs/clients/generic/eventbridge-client.js +51 -51
  195. package/dist/cjs/clients/generic/eventbridge-client.js.map +1 -1
  196. package/dist/cjs/clients/generic/http-client.d.ts +14 -14
  197. package/dist/cjs/clients/generic/http-client.js +61 -61
  198. package/dist/cjs/clients/generic/http-client.js.map +1 -1
  199. package/dist/cjs/clients/generic/index.d.ts +13 -13
  200. package/dist/cjs/clients/generic/index.js +29 -29
  201. package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
  202. package/dist/cjs/clients/generic/lambda-invoke-client.js +39 -39
  203. package/dist/cjs/clients/generic/lambda-invoke-client.js.map +1 -1
  204. package/dist/cjs/clients/generic/location-client.d.ts +8 -8
  205. package/dist/cjs/clients/generic/location-client.js +31 -31
  206. package/dist/cjs/clients/generic/location-client.js.map +1 -1
  207. package/dist/cjs/clients/generic/redis-client.d.ts +33 -33
  208. package/dist/cjs/clients/generic/redis-client.js +202 -191
  209. package/dist/cjs/clients/generic/redis-client.js.map +1 -1
  210. package/dist/cjs/clients/generic/s3-client.d.ts +22 -23
  211. package/dist/cjs/clients/generic/s3-client.js +216 -216
  212. package/dist/cjs/clients/generic/s3-client.js.map +1 -1
  213. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +21 -21
  214. package/dist/cjs/clients/generic/singlestore-db-client.js +102 -92
  215. package/dist/cjs/clients/generic/singlestore-db-client.js.map +1 -1
  216. package/dist/cjs/clients/generic/sqs-bundled-client.d.ts +15 -15
  217. package/dist/cjs/clients/generic/sqs-bundled-client.js +311 -311
  218. package/dist/cjs/clients/generic/sqs-bundled-client.js.map +1 -1
  219. package/dist/cjs/clients/generic/sqs-bundled-client.types.d.ts +53 -53
  220. package/dist/cjs/clients/generic/sqs-bundled-client.types.js +17 -17
  221. package/dist/cjs/clients/generic/sqs-bundled-client.types.js.map +1 -1
  222. package/dist/cjs/clients/generic/sqs-client.d.ts +53 -53
  223. package/dist/cjs/clients/generic/sqs-client.js +285 -285
  224. package/dist/cjs/clients/generic/sqs-client.js.map +1 -1
  225. package/dist/cjs/clients/generic/sqs-unbundle.d.ts +32 -32
  226. package/dist/cjs/clients/generic/sqs-unbundle.js +143 -144
  227. package/dist/cjs/clients/generic/sqs-unbundle.js.map +1 -1
  228. package/dist/cjs/clients/index.d.ts +3 -3
  229. package/dist/cjs/clients/index.js +19 -19
  230. package/dist/cjs/clients/internal-api/accounts-client.d.ts +91 -91
  231. package/dist/cjs/clients/internal-api/accounts-client.js +129 -129
  232. package/dist/cjs/clients/internal-api/accounts-client.js.map +1 -1
  233. package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +26 -26
  234. package/dist/cjs/clients/internal-api/cache-lambda-client.js +89 -89
  235. package/dist/cjs/clients/internal-api/cache-lambda-client.js.map +1 -1
  236. package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
  237. package/dist/cjs/clients/internal-api/db-management-client.js +36 -36
  238. package/dist/cjs/clients/internal-api/db-management-client.js.map +1 -1
  239. package/dist/cjs/clients/internal-api/destinations-client.d.ts +34 -34
  240. package/dist/cjs/clients/internal-api/destinations-client.js +79 -79
  241. package/dist/cjs/clients/internal-api/destinations-client.js.map +1 -1
  242. package/dist/cjs/clients/internal-api/event-collector-client.d.ts +122 -122
  243. package/dist/cjs/clients/internal-api/event-collector-client.js +78 -78
  244. package/dist/cjs/clients/internal-api/event-collector-client.js.map +1 -1
  245. package/dist/cjs/clients/internal-api/identity-client.d.ts +41 -41
  246. package/dist/cjs/clients/internal-api/identity-client.js +137 -137
  247. package/dist/cjs/clients/internal-api/identity-client.js.map +1 -1
  248. package/dist/cjs/clients/internal-api/index.d.ts +9 -9
  249. package/dist/cjs/clients/internal-api/index.js +25 -25
  250. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  251. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +81 -81
  252. package/dist/cjs/clients/internal-api/shopify-app-install-client.js.map +1 -1
  253. package/dist/cjs/clients/internal-api/subscriptions-client.d.ts +26 -26
  254. package/dist/cjs/clients/internal-api/subscriptions-client.js +77 -77
  255. package/dist/cjs/clients/internal-api/subscriptions-client.js.map +1 -1
  256. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +35 -35
  257. package/dist/cjs/clients/internal-api/users-auth-client.js +110 -110
  258. package/dist/cjs/clients/internal-api/users-auth-client.js.map +1 -1
  259. package/dist/cjs/clients/third-party/acuity-client.d.ts +10 -10
  260. package/dist/cjs/clients/third-party/acuity-client.js +40 -40
  261. package/dist/cjs/clients/third-party/acuity-client.js.map +1 -1
  262. package/dist/cjs/clients/third-party/emailable-client.d.ts +7 -7
  263. package/dist/cjs/clients/third-party/emailable-client.js +25 -25
  264. package/dist/cjs/clients/third-party/emailable-client.js.map +1 -1
  265. package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  266. package/dist/cjs/clients/third-party/exchange-rate-api-client.js +19 -19
  267. package/dist/cjs/clients/third-party/exchange-rate-api-client.js.map +1 -1
  268. package/dist/cjs/clients/third-party/index.d.ts +6 -6
  269. package/dist/cjs/clients/third-party/index.js +22 -22
  270. package/dist/cjs/clients/third-party/loops-client.d.ts +10 -10
  271. package/dist/cjs/clients/third-party/loops-client.js +30 -30
  272. package/dist/cjs/clients/third-party/loops-client.js.map +1 -1
  273. package/dist/cjs/clients/third-party/open-exchange-rates-client.d.ts +8 -8
  274. package/dist/cjs/clients/third-party/open-exchange-rates-client.js +27 -27
  275. package/dist/cjs/clients/third-party/open-exchange-rates-client.js.map +1 -1
  276. package/dist/cjs/clients/third-party/shopify/graphql-analytics-queries.d.ts +18 -18
  277. package/dist/cjs/clients/third-party/shopify/graphql-analytics-queries.js +22 -22
  278. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  279. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.js +4 -4
  280. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  281. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.js +5 -5
  282. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.d.ts +42 -42
  283. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js +352 -352
  284. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
  285. package/dist/cjs/clients/third-party/shopify-client.d.ts +29 -29
  286. package/dist/cjs/clients/third-party/shopify-client.js +146 -146
  287. package/dist/cjs/clients/third-party/shopify-client.js.map +1 -1
  288. package/dist/cjs/constants/index.d.ts +1 -1
  289. package/dist/cjs/constants/index.js +17 -17
  290. package/dist/cjs/constants/sqs.d.ts +20 -20
  291. package/dist/cjs/constants/sqs.js +26 -26
  292. package/dist/cjs/constants/sqs.js.map +1 -1
  293. package/dist/cjs/helpers/account-users-helper.d.ts +2 -2
  294. package/dist/cjs/helpers/account-users-helper.js +22 -22
  295. package/dist/cjs/helpers/account-users-helper.js.map +1 -1
  296. package/dist/cjs/helpers/acuity-helper.d.ts +4 -4
  297. package/dist/cjs/helpers/acuity-helper.js +56 -56
  298. package/dist/cjs/helpers/acuity-helper.js.map +1 -1
  299. package/dist/cjs/helpers/api-key-auth-helper.d.ts +10 -9
  300. package/dist/cjs/helpers/api-key-auth-helper.js +40 -40
  301. package/dist/cjs/helpers/api-key-auth-helper.js.map +1 -1
  302. package/dist/cjs/helpers/api-key-authorizer-helper.d.ts +36 -36
  303. package/dist/cjs/helpers/api-key-authorizer-helper.js +87 -87
  304. package/dist/cjs/helpers/api-key-authorizer-helper.js.map +1 -1
  305. package/dist/cjs/helpers/cognito-auth-helper.d.ts +6 -5
  306. package/dist/cjs/helpers/cognito-auth-helper.js +14 -14
  307. package/dist/cjs/helpers/cognito-auth-helper.js.map +1 -1
  308. package/dist/cjs/helpers/index.d.ts +12 -12
  309. package/dist/cjs/helpers/index.js +28 -28
  310. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  311. package/dist/cjs/helpers/input-validation-helper.js +22 -22
  312. package/dist/cjs/helpers/input-validation-helper.js.map +1 -1
  313. package/dist/cjs/helpers/logging-helper.d.ts +16 -16
  314. package/dist/cjs/helpers/logging-helper.js +94 -84
  315. package/dist/cjs/helpers/logging-helper.js.map +1 -1
  316. package/dist/cjs/helpers/order-calculation-helper.d.ts +13 -13
  317. package/dist/cjs/helpers/order-calculation-helper.js +117 -117
  318. package/dist/cjs/helpers/order-calculation-helper.js.map +1 -1
  319. package/dist/cjs/helpers/public-api-response-helper.d.ts +21 -21
  320. package/dist/cjs/helpers/public-api-response-helper.js +45 -45
  321. package/dist/cjs/helpers/public-api-response-helper.js.map +1 -1
  322. package/dist/cjs/helpers/response-helper.d.ts +18 -18
  323. package/dist/cjs/helpers/response-helper.js +43 -43
  324. package/dist/cjs/helpers/response-helper.js.map +1 -1
  325. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  326. package/dist/cjs/helpers/shopify-helper.js +26 -26
  327. package/dist/cjs/helpers/shopify-helper.js.map +1 -1
  328. package/dist/cjs/helpers/sqs-utils.d.ts +6 -6
  329. package/dist/cjs/helpers/sqs-utils.js +18 -14
  330. package/dist/cjs/helpers/sqs-utils.js.map +1 -1
  331. package/dist/cjs/index.d.ts +7 -7
  332. package/dist/cjs/index.js +23 -23
  333. package/dist/cjs/libs/api-router/index.d.ts +2 -2
  334. package/dist/cjs/libs/api-router/index.js +18 -18
  335. package/dist/cjs/libs/api-router/public-api-router.d.ts +3 -3
  336. package/dist/cjs/libs/api-router/public-api-router.js +36 -36
  337. package/dist/cjs/libs/api-router/public-api-router.js.map +1 -1
  338. package/dist/cjs/libs/api-router/route-matcher.d.ts +21 -21
  339. package/dist/cjs/libs/api-router/route-matcher.js +36 -36
  340. package/dist/cjs/libs/api-router/route-matcher.js.map +1 -1
  341. package/dist/cjs/libs/click-id-parser.d.ts +23 -23
  342. package/dist/cjs/libs/click-id-parser.js +49 -49
  343. package/dist/cjs/libs/click-id-parser.js.map +1 -1
  344. package/dist/cjs/libs/compression.d.ts +2 -2
  345. package/dist/cjs/libs/compression.js +33 -33
  346. package/dist/cjs/libs/compression.js.map +1 -1
  347. package/dist/cjs/libs/contacts.d.ts +7 -7
  348. package/dist/cjs/libs/contacts.js +152 -152
  349. package/dist/cjs/libs/contacts.js.map +1 -1
  350. package/dist/cjs/libs/cookie.d.ts +17 -17
  351. package/dist/cjs/libs/cookie.js +76 -76
  352. package/dist/cjs/libs/cookie.js.map +1 -1
  353. package/dist/cjs/libs/crypto.d.ts +4 -4
  354. package/dist/cjs/libs/crypto.js +25 -25
  355. package/dist/cjs/libs/crypto.js.map +1 -1
  356. package/dist/cjs/libs/csv.d.ts +2 -2
  357. package/dist/cjs/libs/csv.js +35 -35
  358. package/dist/cjs/libs/csv.js.map +1 -1
  359. package/dist/cjs/libs/currency.d.ts +1 -1
  360. package/dist/cjs/libs/currency.js +29 -29
  361. package/dist/cjs/libs/currency.js.map +1 -1
  362. package/dist/cjs/libs/dates.d.ts +12 -12
  363. package/dist/cjs/libs/dates.js +96 -96
  364. package/dist/cjs/libs/dates.js.map +1 -1
  365. package/dist/cjs/libs/domain.d.ts +2 -2
  366. package/dist/cjs/libs/domain.js +38 -38
  367. package/dist/cjs/libs/domain.js.map +1 -1
  368. package/dist/cjs/libs/emails.d.ts +8 -8
  369. package/dist/cjs/libs/emails.js +154 -154
  370. package/dist/cjs/libs/emails.js.map +1 -1
  371. package/dist/cjs/libs/http-error.d.ts +21 -21
  372. package/dist/cjs/libs/http-error.js +63 -63
  373. package/dist/cjs/libs/http-error.js.map +1 -1
  374. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  375. package/dist/cjs/libs/http-status-codes.js +62 -62
  376. package/dist/cjs/libs/http-status-codes.js.map +1 -1
  377. package/dist/cjs/libs/index.d.ts +19 -19
  378. package/dist/cjs/libs/index.js +35 -35
  379. package/dist/cjs/libs/numbers.d.ts +1 -1
  380. package/dist/cjs/libs/numbers.js +15 -15
  381. package/dist/cjs/libs/numbers.js.map +1 -1
  382. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  383. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  384. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  385. package/dist/cjs/libs/referrer-parser/referrer-data.js +3307 -3307
  386. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +19 -20
  387. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +131 -131
  388. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  389. package/dist/cjs/libs/strings.d.ts +3 -3
  390. package/dist/cjs/libs/strings.js +46 -46
  391. package/dist/cjs/libs/strings.js.map +1 -1
  392. package/dist/cjs/libs/traits.d.ts +6 -6
  393. package/dist/cjs/libs/traits.js +65 -65
  394. package/dist/cjs/libs/traits.js.map +1 -1
  395. package/dist/cjs/libs/url.d.ts +1 -1
  396. package/dist/cjs/libs/url.js +13 -13
  397. package/dist/cjs/libs/url.js.map +1 -1
  398. package/dist/cjs/services/acuity-api-service.d.ts +9 -9
  399. package/dist/cjs/services/acuity-api-service.js +73 -73
  400. package/dist/cjs/services/acuity-api-service.js.map +1 -1
  401. package/dist/cjs/services/cache/generic-cached-object.d.ts +5 -5
  402. package/dist/cjs/services/cache/generic-cached-object.js +2 -2
  403. package/dist/cjs/services/cache/index.d.ts +1 -1
  404. package/dist/cjs/services/cache/index.js +17 -17
  405. package/dist/cjs/services/cache/product-cache-service.d.ts +21 -21
  406. package/dist/cjs/services/cache/product-cache-service.js +76 -76
  407. package/dist/cjs/services/cache/product-cache-service.js.map +1 -1
  408. package/dist/cjs/services/cost/cost-calculation-types.d.ts +69 -69
  409. package/dist/cjs/services/cost/cost-calculation-types.js +18 -19
  410. package/dist/cjs/services/cost/cost-calculation-types.js.map +1 -1
  411. package/dist/cjs/services/cost/cost-calculator-service.d.ts +24 -24
  412. package/dist/cjs/services/cost/cost-calculator-service.js +495 -462
  413. package/dist/cjs/services/cost/cost-calculator-service.js.map +1 -1
  414. package/dist/cjs/services/cost/cost-currency-service.d.ts +6 -6
  415. package/dist/cjs/services/cost/cost-currency-service.js +87 -87
  416. package/dist/cjs/services/cost/cost-currency-service.js.map +1 -1
  417. package/dist/cjs/services/cost/cost-filter-service.d.ts +10 -10
  418. package/dist/cjs/services/cost/cost-filter-service.js +130 -121
  419. package/dist/cjs/services/cost/cost-filter-service.js.map +1 -1
  420. package/dist/cjs/services/cost/index.d.ts +5 -5
  421. package/dist/cjs/services/cost/index.js +21 -21
  422. package/dist/cjs/services/cost/order-cost/index.d.ts +2 -2
  423. package/dist/cjs/services/cost/order-cost/index.js +18 -18
  424. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.d.ts +23 -23
  425. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js +308 -293
  426. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js.map +1 -1
  427. package/dist/cjs/services/cost/order-cost/order-cost-resolution-types.d.ts +31 -31
  428. package/dist/cjs/services/cost/order-cost/order-cost-resolution-types.js +2 -2
  429. package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +12 -12
  430. package/dist/cjs/services/currency-exchange-rate-lookup-service.js +97 -94
  431. package/dist/cjs/services/currency-exchange-rate-lookup-service.js.map +1 -1
  432. package/dist/cjs/services/db/accounts-db-service.d.ts +9 -9
  433. package/dist/cjs/services/db/accounts-db-service.js +33 -33
  434. package/dist/cjs/services/db/accounts-db-service.js.map +1 -1
  435. package/dist/cjs/services/db/api-keys-db-service.d.ts +10 -10
  436. package/dist/cjs/services/db/api-keys-db-service.js +36 -36
  437. package/dist/cjs/services/db/api-keys-db-service.js.map +1 -1
  438. package/dist/cjs/services/db/contact-enrichments-db-service.d.ts +15 -15
  439. package/dist/cjs/services/db/contact-enrichments-db-service.js +94 -94
  440. package/dist/cjs/services/db/contact-enrichments-db-service.js.map +1 -1
  441. package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  442. package/dist/cjs/services/db/currency-exchange-rates-db-service.js +39 -39
  443. package/dist/cjs/services/db/currency-exchange-rates-db-service.js.map +1 -1
  444. package/dist/cjs/services/db/custom-measures-db-service.d.ts +14 -14
  445. package/dist/cjs/services/db/custom-measures-db-service.js +48 -48
  446. package/dist/cjs/services/db/custom-measures-db-service.js.map +1 -1
  447. package/dist/cjs/services/db/destinations-db-service.d.ts +13 -13
  448. package/dist/cjs/services/db/destinations-db-service.js +74 -74
  449. package/dist/cjs/services/db/destinations-db-service.js.map +1 -1
  450. package/dist/cjs/services/db/identity-cache-db-service.d.ts +28 -28
  451. package/dist/cjs/services/db/identity-cache-db-service.js +320 -320
  452. package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
  453. package/dist/cjs/services/db/identity-cache-dynamodb-service/constants.d.ts +3 -3
  454. package/dist/cjs/services/db/identity-cache-dynamodb-service/constants.js +6 -6
  455. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +25 -25
  456. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +529 -525
  457. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  458. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +23 -23
  459. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +236 -222
  460. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  461. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.d.ts +4 -4
  462. package/dist/cjs/services/db/identity-cache-dynamodb-service/index.js +20 -20
  463. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.d.ts +12 -12
  464. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js +31 -31
  465. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js.map +1 -1
  466. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.d.ts +82 -82
  467. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js +28 -28
  468. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  469. package/dist/cjs/services/db/index.d.ts +22 -22
  470. package/dist/cjs/services/db/index.js +38 -38
  471. package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
  472. package/dist/cjs/services/db/log-events-db-service.js +181 -181
  473. package/dist/cjs/services/db/log-events-db-service.js.map +1 -1
  474. package/dist/cjs/services/db/pixels-db-service.d.ts +8 -8
  475. package/dist/cjs/services/db/pixels-db-service.js +35 -35
  476. package/dist/cjs/services/db/pixels-db-service.js.map +1 -1
  477. package/dist/cjs/services/db/products-db-service-types.d.ts +10 -10
  478. package/dist/cjs/services/db/products-db-service-types.js +2 -2
  479. package/dist/cjs/services/db/products-db-service.d.ts +19 -19
  480. package/dist/cjs/services/db/products-db-service.js +310 -281
  481. package/dist/cjs/services/db/products-db-service.js.map +1 -1
  482. package/dist/cjs/services/db/purchasable-contacts-db-service.d.ts +9 -9
  483. package/dist/cjs/services/db/purchasable-contacts-db-service.js +43 -43
  484. package/dist/cjs/services/db/purchasable-contacts-db-service.js.map +1 -1
  485. package/dist/cjs/services/db/purchased-contacts/index.d.ts +2 -2
  486. package/dist/cjs/services/db/purchased-contacts/index.js +18 -18
  487. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.d.ts +18 -18
  488. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js +152 -152
  489. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
  490. package/dist/cjs/services/db/purchased-contacts/types.d.ts +11 -11
  491. package/dist/cjs/services/db/purchased-contacts/types.js +2 -2
  492. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +10 -10
  493. package/dist/cjs/services/db/shopify-app-installs-db-service.js +52 -52
  494. package/dist/cjs/services/db/shopify-app-installs-db-service.js.map +1 -1
  495. package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +16 -16
  496. package/dist/cjs/services/db/shopify-products-cache-db-service.js +73 -73
  497. package/dist/cjs/services/db/shopify-products-cache-db-service.js.map +1 -1
  498. package/dist/cjs/services/db/subscriptions-db-service.d.ts +11 -11
  499. package/dist/cjs/services/db/subscriptions-db-service.js +38 -38
  500. package/dist/cjs/services/db/subscriptions-db-service.js.map +1 -1
  501. package/dist/cjs/services/db/tracking-events-db-service.d.ts +21 -21
  502. package/dist/cjs/services/db/tracking-events-db-service.js +188 -188
  503. package/dist/cjs/services/db/tracking-events-db-service.js.map +1 -1
  504. package/dist/cjs/services/db/user-accounts-db-service.d.ts +7 -7
  505. package/dist/cjs/services/db/user-accounts-db-service.js +17 -17
  506. package/dist/cjs/services/db/user-accounts-db-service.js.map +1 -1
  507. package/dist/cjs/services/email-verification/contact-email-verification-service.d.ts +7 -7
  508. package/dist/cjs/services/email-verification/contact-email-verification-service.js +101 -101
  509. package/dist/cjs/services/email-verification/contact-email-verification-service.js.map +1 -1
  510. package/dist/cjs/services/email-verification/email-verification-service.d.ts +19 -19
  511. package/dist/cjs/services/email-verification/email-verification-service.js +131 -131
  512. package/dist/cjs/services/email-verification/email-verification-service.js.map +1 -1
  513. package/dist/cjs/services/email-verification/index.d.ts +2 -2
  514. package/dist/cjs/services/email-verification/index.js +18 -18
  515. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  516. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  517. package/dist/cjs/services/eventbridge-integration-service.js.map +1 -1
  518. package/dist/cjs/services/events/build-collect-queue-tracking-event.d.ts +11 -11
  519. package/dist/cjs/services/events/build-collect-queue-tracking-event.js +23 -23
  520. package/dist/cjs/services/events/build-collect-queue-tracking-event.js.map +1 -1
  521. package/dist/cjs/services/events/collect-queue-tracking-service.d.ts +12 -12
  522. package/dist/cjs/services/events/collect-queue-tracking-service.js +22 -22
  523. package/dist/cjs/services/events/collect-queue-tracking-service.js.map +1 -1
  524. package/dist/cjs/services/events/index.d.ts +5 -5
  525. package/dist/cjs/services/events/index.js +21 -21
  526. package/dist/cjs/services/events/log-event-service.d.ts +19 -19
  527. package/dist/cjs/services/events/log-event-service.js +77 -77
  528. package/dist/cjs/services/events/log-event-service.js.map +1 -1
  529. package/dist/cjs/services/events/metric-event-service.d.ts +9 -9
  530. package/dist/cjs/services/events/metric-event-service.js +49 -49
  531. package/dist/cjs/services/events/metric-event-service.js.map +1 -1
  532. package/dist/cjs/services/events/tracking-event-sqs-service.d.ts +8 -8
  533. package/dist/cjs/services/events/tracking-event-sqs-service.js +36 -36
  534. package/dist/cjs/services/events/tracking-event-sqs-service.js.map +1 -1
  535. package/dist/cjs/services/generic-cache-service.d.ts +7 -7
  536. package/dist/cjs/services/generic-cache-service.js +33 -33
  537. package/dist/cjs/services/generic-cache-service.js.map +1 -1
  538. package/dist/cjs/services/index.d.ts +11 -11
  539. package/dist/cjs/services/index.js +27 -27
  540. package/dist/cjs/services/ipdata-lookup-service.d.ts +20 -20
  541. package/dist/cjs/services/ipdata-lookup-service.js +112 -112
  542. package/dist/cjs/services/ipdata-lookup-service.js.map +1 -1
  543. package/dist/cjs/services/shopify/index.d.ts +2 -2
  544. package/dist/cjs/services/shopify/index.js +18 -18
  545. package/dist/cjs/services/shopify/products/index.d.ts +1 -1
  546. package/dist/cjs/services/shopify/products/index.js +17 -17
  547. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  548. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js +112 -112
  549. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
  550. package/dist/cjs/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  551. package/dist/cjs/services/shopify/shopify-graphql-transformer.js +141 -141
  552. package/dist/cjs/services/shopify/shopify-graphql-transformer.js.map +1 -1
  553. package/dist/cjs/types/acuity-types.d.ts +74 -74
  554. package/dist/cjs/types/acuity-types.js +2 -2
  555. package/dist/cjs/types/api-response.d.ts +6 -6
  556. package/dist/cjs/types/api-response.js +2 -2
  557. package/dist/cjs/types/index.d.ts +6 -6
  558. package/dist/cjs/types/index.js +45 -35
  559. package/dist/cjs/types/index.js.map +1 -1
  560. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  561. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  562. package/dist/cjs/types/internal-events/event-detail-types.js.map +1 -1
  563. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  564. package/dist/cjs/types/internal-events/index.js +17 -17
  565. package/dist/cjs/types/open-exchange-rates-types.d.ts +10 -10
  566. package/dist/cjs/types/open-exchange-rates-types.js +2 -2
  567. package/dist/cjs/types/public-api-types.d.ts +24 -24
  568. package/dist/cjs/types/public-api-types.js +13 -13
  569. package/dist/cjs/types/public-api-types.js.map +1 -1
  570. package/dist/cjs/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  571. package/dist/cjs/types/shopify-graphql-types/admin.generated.js +2 -2
  572. package/dist/cjs/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  573. package/dist/cjs/types/shopify-graphql-types/admin.types.js +5311 -5311
  574. package/dist/cjs/types/shopify-graphql-types/admin.types.js.map +1 -1
  575. package/dist/cjs/types/shopify-graphql-types/index.d.ts +2 -2
  576. package/dist/cjs/types/shopify-graphql-types/index.js +18 -18
  577. package/dist/cjs/types/shopify-rest-types.d.ts +767 -767
  578. package/dist/cjs/types/shopify-rest-types.js +2 -2
  579. package/dist/cjs/utils/compression.d.ts +34 -36
  580. package/dist/cjs/utils/compression.js +198 -198
  581. package/dist/cjs/utils/compression.js.map +1 -1
  582. package/dist/cjs/utils/custom-measure-formula-utils.d.ts +6 -6
  583. package/dist/cjs/utils/custom-measure-formula-utils.js +209 -209
  584. package/dist/cjs/utils/custom-measure-formula-utils.js.map +1 -1
  585. package/dist/cjs/utils/index.d.ts +4 -4
  586. package/dist/cjs/utils/index.js +20 -20
  587. package/dist/cjs/utils/retry-envelope.d.ts +12 -12
  588. package/dist/cjs/utils/retry-envelope.js +27 -28
  589. package/dist/cjs/utils/retry-envelope.js.map +1 -1
  590. package/dist/cjs/utils/size.d.ts +2 -2
  591. package/dist/cjs/utils/size.js +48 -49
  592. package/dist/cjs/utils/size.js.map +1 -1
  593. package/dist/esm/__tests__/clients/acuity-client.spec.d.ts +1 -1
  594. package/dist/esm/__tests__/clients/acuity-client.spec.js +42 -41
  595. package/dist/esm/__tests__/clients/acuity-client.spec.js.map +1 -1
  596. package/dist/esm/__tests__/clients/client-timeout-inventory.spec.d.ts +1 -0
  597. package/dist/esm/__tests__/clients/client-timeout-inventory.spec.js +19 -0
  598. package/dist/esm/__tests__/clients/client-timeout-inventory.spec.js.map +1 -0
  599. package/dist/esm/__tests__/clients/cross-platform-compression.spec.d.ts +1 -1
  600. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js +330 -329
  601. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
  602. package/dist/esm/__tests__/clients/dynamodb-client.spec.d.ts +1 -1
  603. package/dist/esm/__tests__/clients/dynamodb-client.spec.js +191 -192
  604. package/dist/esm/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  605. package/dist/esm/__tests__/clients/event-collector-client.spec.d.ts +1 -1
  606. package/dist/esm/__tests__/clients/event-collector-client.spec.js +225 -225
  607. package/dist/esm/__tests__/clients/event-collector-client.spec.js.map +1 -1
  608. package/dist/esm/__tests__/clients/open-exchange-rates-client.spec.d.ts +1 -1
  609. package/dist/esm/__tests__/clients/open-exchange-rates-client.spec.js +54 -53
  610. package/dist/esm/__tests__/clients/open-exchange-rates-client.spec.js.map +1 -1
  611. package/dist/esm/__tests__/clients/redis-client.spec.d.ts +1 -0
  612. package/dist/esm/__tests__/clients/redis-client.spec.js +77 -0
  613. package/dist/esm/__tests__/clients/redis-client.spec.js.map +1 -0
  614. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
  615. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +914 -906
  616. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
  617. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -1
  618. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js +540 -538
  619. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -1
  620. package/dist/esm/__tests__/clients/sqs-client.spec.d.ts +1 -1
  621. package/dist/esm/__tests__/clients/sqs-client.spec.js +190 -189
  622. package/dist/esm/__tests__/clients/sqs-client.spec.js.map +1 -1
  623. package/dist/esm/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
  624. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +1356 -1355
  625. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
  626. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -1
  627. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +67 -66
  628. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -1
  629. package/dist/esm/__tests__/db/destinations-db-service.spec.d.ts +1 -1
  630. package/dist/esm/__tests__/db/destinations-db-service.spec.js +121 -123
  631. package/dist/esm/__tests__/db/destinations-db-service.spec.js.map +1 -1
  632. package/dist/esm/__tests__/db/products-db-service.spec.d.ts +1 -1
  633. package/dist/esm/__tests__/db/products-db-service.spec.js +88 -87
  634. package/dist/esm/__tests__/db/products-db-service.spec.js.map +1 -1
  635. package/dist/esm/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  636. package/dist/esm/__tests__/db/shared-read-db-services.spec.js +88 -87
  637. package/dist/esm/__tests__/db/shared-read-db-services.spec.js.map +1 -1
  638. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.d.ts +1 -1
  639. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js +103 -102
  640. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js.map +1 -1
  641. package/dist/esm/__tests__/db/subscriptions-db-service.spec.d.ts +1 -1
  642. package/dist/esm/__tests__/db/subscriptions-db-service.spec.js +94 -93
  643. package/dist/esm/__tests__/db/subscriptions-db-service.spec.js.map +1 -1
  644. package/dist/esm/__tests__/db/user-accounts-db-service.spec.d.ts +1 -1
  645. package/dist/esm/__tests__/db/user-accounts-db-service.spec.js +75 -74
  646. package/dist/esm/__tests__/db/user-accounts-db-service.spec.js.map +1 -1
  647. package/dist/esm/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  648. package/dist/esm/__tests__/helpers/account-users-helper.spec.js +219 -218
  649. package/dist/esm/__tests__/helpers/account-users-helper.spec.js.map +1 -1
  650. package/dist/esm/__tests__/helpers/acuity-helper.spec.d.ts +1 -1
  651. package/dist/esm/__tests__/helpers/acuity-helper.spec.js +68 -67
  652. package/dist/esm/__tests__/helpers/acuity-helper.spec.js.map +1 -1
  653. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
  654. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +81 -80
  655. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -1
  656. package/dist/esm/__tests__/helpers/cognito-auth-helper.spec.d.ts +1 -1
  657. package/dist/esm/__tests__/helpers/cognito-auth-helper.spec.js +45 -44
  658. package/dist/esm/__tests__/helpers/cognito-auth-helper.spec.js.map +1 -1
  659. package/dist/esm/__tests__/helpers/order-calculation-helper.spec.d.ts +1 -1
  660. package/dist/esm/__tests__/helpers/order-calculation-helper.spec.js +151 -150
  661. package/dist/esm/__tests__/helpers/order-calculation-helper.spec.js.map +1 -1
  662. package/dist/esm/__tests__/helpers/public-api-response-helper.spec.d.ts +1 -1
  663. package/dist/esm/__tests__/helpers/public-api-response-helper.spec.js +56 -55
  664. package/dist/esm/__tests__/helpers/public-api-response-helper.spec.js.map +1 -1
  665. package/dist/esm/__tests__/identity-cache/helpers.spec.d.ts +1 -1
  666. package/dist/esm/__tests__/identity-cache/helpers.spec.js +591 -590
  667. package/dist/esm/__tests__/identity-cache/helpers.spec.js.map +1 -1
  668. package/dist/esm/__tests__/identity-cache/identity-cache-alias-write.spec.d.ts +1 -1
  669. package/dist/esm/__tests__/identity-cache/identity-cache-alias-write.spec.js +69 -68
  670. package/dist/esm/__tests__/identity-cache/identity-cache-alias-write.spec.js.map +1 -1
  671. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  672. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +675 -674
  673. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
  674. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.d.ts +1 -1
  675. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +748 -725
  676. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
  677. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.d.ts +1 -1
  678. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +638 -629
  679. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  680. package/dist/esm/__tests__/identity-cache/identity-client.spec.d.ts +1 -1
  681. package/dist/esm/__tests__/identity-cache/identity-client.spec.js +360 -357
  682. package/dist/esm/__tests__/identity-cache/identity-client.spec.js.map +1 -1
  683. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.d.ts +1 -1
  684. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +136 -135
  685. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -1
  686. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.d.ts +1 -1
  687. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +163 -150
  688. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -1
  689. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.d.ts +1 -1
  690. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js +70 -69
  691. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -1
  692. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.d.ts +1 -1
  693. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +93 -86
  694. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -1
  695. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.d.ts +1 -1
  696. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +134 -133
  697. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -1
  698. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.d.ts +1 -1
  699. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +243 -221
  700. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -1
  701. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.d.ts +24 -28
  702. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js +89 -82
  703. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -1
  704. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  705. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +1747 -1768
  706. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
  707. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.d.ts +1 -1
  708. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js +817 -816
  709. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
  710. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
  711. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +583 -582
  712. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
  713. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  714. package/dist/esm/__tests__/libs/compress-decompress.spec.js +15 -14
  715. package/dist/esm/__tests__/libs/compress-decompress.spec.js.map +1 -1
  716. package/dist/esm/__tests__/libs/contacts.spec.d.ts +1 -1
  717. package/dist/esm/__tests__/libs/contacts.spec.js +293 -292
  718. package/dist/esm/__tests__/libs/contacts.spec.js.map +1 -1
  719. package/dist/esm/__tests__/libs/currency.spec.d.ts +1 -1
  720. package/dist/esm/__tests__/libs/currency.spec.js +219 -218
  721. package/dist/esm/__tests__/libs/currency.spec.js.map +1 -1
  722. package/dist/esm/__tests__/libs/dates.spec.d.ts +1 -1
  723. package/dist/esm/__tests__/libs/dates.spec.js +129 -128
  724. package/dist/esm/__tests__/libs/dates.spec.js.map +1 -1
  725. package/dist/esm/__tests__/libs/domain.spec.d.ts +1 -1
  726. package/dist/esm/__tests__/libs/domain.spec.js +106 -105
  727. package/dist/esm/__tests__/libs/domain.spec.js.map +1 -1
  728. package/dist/esm/__tests__/libs/numbers.spec.d.ts +1 -1
  729. package/dist/esm/__tests__/libs/numbers.spec.js +260 -259
  730. package/dist/esm/__tests__/libs/numbers.spec.js.map +1 -1
  731. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  732. package/dist/esm/__tests__/s3-client/s3-client.spec.js +30 -31
  733. package/dist/esm/__tests__/s3-client/s3-client.spec.js.map +1 -1
  734. package/dist/esm/__tests__/services/acuity-api-service.spec.d.ts +1 -1
  735. package/dist/esm/__tests__/services/acuity-api-service.spec.js +72 -69
  736. package/dist/esm/__tests__/services/acuity-api-service.spec.js.map +1 -1
  737. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.d.ts +1 -1
  738. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js +22 -21
  739. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -1
  740. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.d.ts +1 -1
  741. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js +3597 -3359
  742. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -1
  743. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.d.ts +1 -1
  744. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js +113 -112
  745. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js.map +1 -1
  746. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.d.ts +1 -1
  747. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js +463 -466
  748. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js.map +1 -1
  749. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.d.ts +1 -1
  750. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +450 -358
  751. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -1
  752. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts +1 -1
  753. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js +37 -32
  754. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +1 -1
  755. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -1
  756. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js +93 -91
  757. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -1
  758. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -1
  759. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js +60 -55
  760. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -1
  761. package/dist/esm/__tests__/services/events/collect-queue-tracking-service.spec.d.ts +1 -1
  762. package/dist/esm/__tests__/services/events/collect-queue-tracking-service.spec.js +230 -227
  763. package/dist/esm/__tests__/services/events/collect-queue-tracking-service.spec.js.map +1 -1
  764. package/dist/esm/__tests__/services/events/tracking-event-sqs-service.spec.d.ts +1 -1
  765. package/dist/esm/__tests__/services/events/tracking-event-sqs-service.spec.js +192 -189
  766. package/dist/esm/__tests__/services/events/tracking-event-sqs-service.spec.js.map +1 -1
  767. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  768. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +34 -33
  769. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js.map +1 -1
  770. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
  771. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js +157 -156
  772. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
  773. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
  774. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js +68 -67
  775. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -1
  776. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -1
  777. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js +145 -144
  778. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -1
  779. package/dist/esm/clients/generic/cognito-client.d.ts +23 -23
  780. package/dist/esm/clients/generic/cognito-client.js +204 -204
  781. package/dist/esm/clients/generic/cognito-client.js.map +1 -1
  782. package/dist/esm/clients/generic/dynamodb-client.d.ts +20 -20
  783. package/dist/esm/clients/generic/dynamodb-client.js +231 -231
  784. package/dist/esm/clients/generic/dynamodb-client.js.map +1 -1
  785. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  786. package/dist/esm/clients/generic/eventbridge-client.js +47 -47
  787. package/dist/esm/clients/generic/eventbridge-client.js.map +1 -1
  788. package/dist/esm/clients/generic/http-client.d.ts +14 -14
  789. package/dist/esm/clients/generic/http-client.js +53 -53
  790. package/dist/esm/clients/generic/http-client.js.map +1 -1
  791. package/dist/esm/clients/generic/index.d.ts +13 -13
  792. package/dist/esm/clients/generic/index.js +13 -13
  793. package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
  794. package/dist/esm/clients/generic/lambda-invoke-client.js +35 -35
  795. package/dist/esm/clients/generic/lambda-invoke-client.js.map +1 -1
  796. package/dist/esm/clients/generic/location-client.d.ts +8 -8
  797. package/dist/esm/clients/generic/location-client.js +27 -27
  798. package/dist/esm/clients/generic/location-client.js.map +1 -1
  799. package/dist/esm/clients/generic/redis-client.d.ts +33 -33
  800. package/dist/esm/clients/generic/redis-client.js +195 -184
  801. package/dist/esm/clients/generic/redis-client.js.map +1 -1
  802. package/dist/esm/clients/generic/s3-client.d.ts +22 -23
  803. package/dist/esm/clients/generic/s3-client.js +209 -209
  804. package/dist/esm/clients/generic/s3-client.js.map +1 -1
  805. package/dist/esm/clients/generic/singlestore-db-client.d.ts +21 -21
  806. package/dist/esm/clients/generic/singlestore-db-client.js +65 -65
  807. package/dist/esm/clients/generic/singlestore-db-client.js.map +1 -1
  808. package/dist/esm/clients/generic/sqs-bundled-client.d.ts +15 -15
  809. package/dist/esm/clients/generic/sqs-bundled-client.js +307 -307
  810. package/dist/esm/clients/generic/sqs-bundled-client.js.map +1 -1
  811. package/dist/esm/clients/generic/sqs-bundled-client.types.d.ts +53 -53
  812. package/dist/esm/clients/generic/sqs-bundled-client.types.js +14 -14
  813. package/dist/esm/clients/generic/sqs-client.d.ts +53 -53
  814. package/dist/esm/clients/generic/sqs-client.js +281 -281
  815. package/dist/esm/clients/generic/sqs-client.js.map +1 -1
  816. package/dist/esm/clients/generic/sqs-unbundle.d.ts +32 -32
  817. package/dist/esm/clients/generic/sqs-unbundle.js +137 -137
  818. package/dist/esm/clients/generic/sqs-unbundle.js.map +1 -1
  819. package/dist/esm/clients/index.d.ts +3 -3
  820. package/dist/esm/clients/index.js +3 -3
  821. package/dist/esm/clients/internal-api/accounts-client.d.ts +91 -91
  822. package/dist/esm/clients/internal-api/accounts-client.js +125 -125
  823. package/dist/esm/clients/internal-api/accounts-client.js.map +1 -1
  824. package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +26 -26
  825. package/dist/esm/clients/internal-api/cache-lambda-client.js +85 -85
  826. package/dist/esm/clients/internal-api/cache-lambda-client.js.map +1 -1
  827. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  828. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  829. package/dist/esm/clients/internal-api/destinations-client.d.ts +34 -34
  830. package/dist/esm/clients/internal-api/destinations-client.js +75 -75
  831. package/dist/esm/clients/internal-api/destinations-client.js.map +1 -1
  832. package/dist/esm/clients/internal-api/event-collector-client.d.ts +122 -122
  833. package/dist/esm/clients/internal-api/event-collector-client.js +74 -74
  834. package/dist/esm/clients/internal-api/event-collector-client.js.map +1 -1
  835. package/dist/esm/clients/internal-api/identity-client.d.ts +41 -41
  836. package/dist/esm/clients/internal-api/identity-client.js +133 -133
  837. package/dist/esm/clients/internal-api/identity-client.js.map +1 -1
  838. package/dist/esm/clients/internal-api/index.d.ts +9 -9
  839. package/dist/esm/clients/internal-api/index.js +9 -9
  840. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  841. package/dist/esm/clients/internal-api/shopify-app-install-client.js +77 -77
  842. package/dist/esm/clients/internal-api/subscriptions-client.d.ts +26 -26
  843. package/dist/esm/clients/internal-api/subscriptions-client.js +73 -73
  844. package/dist/esm/clients/internal-api/users-auth-client.d.ts +35 -35
  845. package/dist/esm/clients/internal-api/users-auth-client.js +106 -106
  846. package/dist/esm/clients/internal-api/users-auth-client.js.map +1 -1
  847. package/dist/esm/clients/third-party/acuity-client.d.ts +10 -10
  848. package/dist/esm/clients/third-party/acuity-client.js +36 -36
  849. package/dist/esm/clients/third-party/emailable-client.d.ts +7 -7
  850. package/dist/esm/clients/third-party/emailable-client.js +21 -21
  851. package/dist/esm/clients/third-party/emailable-client.js.map +1 -1
  852. package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  853. package/dist/esm/clients/third-party/exchange-rate-api-client.js +15 -15
  854. package/dist/esm/clients/third-party/index.d.ts +6 -6
  855. package/dist/esm/clients/third-party/index.js +6 -6
  856. package/dist/esm/clients/third-party/loops-client.d.ts +10 -10
  857. package/dist/esm/clients/third-party/loops-client.js +26 -26
  858. package/dist/esm/clients/third-party/loops-client.js.map +1 -1
  859. package/dist/esm/clients/third-party/open-exchange-rates-client.d.ts +8 -8
  860. package/dist/esm/clients/third-party/open-exchange-rates-client.js +23 -23
  861. package/dist/esm/clients/third-party/open-exchange-rates-client.js.map +1 -1
  862. package/dist/esm/clients/third-party/shopify/graphql-analytics-queries.d.ts +18 -18
  863. package/dist/esm/clients/third-party/shopify/graphql-analytics-queries.js +19 -19
  864. package/dist/esm/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  865. package/dist/esm/clients/third-party/shopify/graphql-order-queries.js +1 -1
  866. package/dist/esm/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  867. package/dist/esm/clients/third-party/shopify/graphql-product-queries.js +2 -2
  868. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.d.ts +42 -42
  869. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +348 -348
  870. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
  871. package/dist/esm/clients/third-party/shopify-client.d.ts +29 -29
  872. package/dist/esm/clients/third-party/shopify-client.js +142 -142
  873. package/dist/esm/clients/third-party/shopify-client.js.map +1 -1
  874. package/dist/esm/constants/index.d.ts +1 -1
  875. package/dist/esm/constants/index.js +1 -1
  876. package/dist/esm/constants/sqs.d.ts +20 -20
  877. package/dist/esm/constants/sqs.js +22 -22
  878. package/dist/esm/constants/sqs.js.map +1 -1
  879. package/dist/esm/helpers/account-users-helper.d.ts +2 -2
  880. package/dist/esm/helpers/account-users-helper.js +18 -18
  881. package/dist/esm/helpers/account-users-helper.js.map +1 -1
  882. package/dist/esm/helpers/acuity-helper.d.ts +4 -4
  883. package/dist/esm/helpers/acuity-helper.js +51 -51
  884. package/dist/esm/helpers/acuity-helper.js.map +1 -1
  885. package/dist/esm/helpers/api-key-auth-helper.d.ts +10 -9
  886. package/dist/esm/helpers/api-key-auth-helper.js +35 -35
  887. package/dist/esm/helpers/api-key-auth-helper.js.map +1 -1
  888. package/dist/esm/helpers/api-key-authorizer-helper.d.ts +36 -36
  889. package/dist/esm/helpers/api-key-authorizer-helper.js +83 -83
  890. package/dist/esm/helpers/api-key-authorizer-helper.js.map +1 -1
  891. package/dist/esm/helpers/cognito-auth-helper.d.ts +6 -5
  892. package/dist/esm/helpers/cognito-auth-helper.js +10 -10
  893. package/dist/esm/helpers/cognito-auth-helper.js.map +1 -1
  894. package/dist/esm/helpers/index.d.ts +12 -12
  895. package/dist/esm/helpers/index.js +12 -12
  896. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  897. package/dist/esm/helpers/input-validation-helper.js +18 -18
  898. package/dist/esm/helpers/input-validation-helper.js.map +1 -1
  899. package/dist/esm/helpers/logging-helper.d.ts +16 -16
  900. package/dist/esm/helpers/logging-helper.js +56 -56
  901. package/dist/esm/helpers/logging-helper.js.map +1 -1
  902. package/dist/esm/helpers/order-calculation-helper.d.ts +13 -13
  903. package/dist/esm/helpers/order-calculation-helper.js +111 -111
  904. package/dist/esm/helpers/order-calculation-helper.js.map +1 -1
  905. package/dist/esm/helpers/public-api-response-helper.d.ts +21 -21
  906. package/dist/esm/helpers/public-api-response-helper.js +38 -38
  907. package/dist/esm/helpers/public-api-response-helper.js.map +1 -1
  908. package/dist/esm/helpers/response-helper.d.ts +18 -18
  909. package/dist/esm/helpers/response-helper.js +37 -37
  910. package/dist/esm/helpers/response-helper.js.map +1 -1
  911. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  912. package/dist/esm/helpers/shopify-helper.js +21 -21
  913. package/dist/esm/helpers/shopify-helper.js.map +1 -1
  914. package/dist/esm/helpers/sqs-utils.d.ts +6 -6
  915. package/dist/esm/helpers/sqs-utils.js +14 -9
  916. package/dist/esm/helpers/sqs-utils.js.map +1 -1
  917. package/dist/esm/index.d.ts +7 -7
  918. package/dist/esm/index.js +7 -7
  919. package/dist/esm/libs/api-router/index.d.ts +2 -2
  920. package/dist/esm/libs/api-router/index.js +2 -2
  921. package/dist/esm/libs/api-router/public-api-router.d.ts +3 -3
  922. package/dist/esm/libs/api-router/public-api-router.js +32 -32
  923. package/dist/esm/libs/api-router/public-api-router.js.map +1 -1
  924. package/dist/esm/libs/api-router/route-matcher.d.ts +21 -21
  925. package/dist/esm/libs/api-router/route-matcher.js +30 -30
  926. package/dist/esm/libs/api-router/route-matcher.js.map +1 -1
  927. package/dist/esm/libs/click-id-parser.d.ts +23 -23
  928. package/dist/esm/libs/click-id-parser.js +45 -45
  929. package/dist/esm/libs/click-id-parser.js.map +1 -1
  930. package/dist/esm/libs/compression.d.ts +2 -2
  931. package/dist/esm/libs/compression.js +25 -25
  932. package/dist/esm/libs/compression.js.map +1 -1
  933. package/dist/esm/libs/contacts.d.ts +7 -7
  934. package/dist/esm/libs/contacts.js +143 -143
  935. package/dist/esm/libs/contacts.js.map +1 -1
  936. package/dist/esm/libs/cookie.d.ts +17 -17
  937. package/dist/esm/libs/cookie.js +70 -70
  938. package/dist/esm/libs/cookie.js.map +1 -1
  939. package/dist/esm/libs/crypto.d.ts +4 -4
  940. package/dist/esm/libs/crypto.js +15 -15
  941. package/dist/esm/libs/csv.d.ts +2 -2
  942. package/dist/esm/libs/csv.js +30 -30
  943. package/dist/esm/libs/csv.js.map +1 -1
  944. package/dist/esm/libs/currency.d.ts +1 -1
  945. package/dist/esm/libs/currency.js +22 -22
  946. package/dist/esm/libs/currency.js.map +1 -1
  947. package/dist/esm/libs/dates.d.ts +12 -12
  948. package/dist/esm/libs/dates.js +83 -83
  949. package/dist/esm/libs/dates.js.map +1 -1
  950. package/dist/esm/libs/domain.d.ts +2 -2
  951. package/dist/esm/libs/domain.js +33 -33
  952. package/dist/esm/libs/domain.js.map +1 -1
  953. package/dist/esm/libs/emails.d.ts +8 -8
  954. package/dist/esm/libs/emails.js +146 -146
  955. package/dist/esm/libs/emails.js.map +1 -1
  956. package/dist/esm/libs/http-error.d.ts +21 -21
  957. package/dist/esm/libs/http-error.js +59 -59
  958. package/dist/esm/libs/http-error.js.map +1 -1
  959. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  960. package/dist/esm/libs/http-status-codes.js +59 -59
  961. package/dist/esm/libs/index.d.ts +19 -19
  962. package/dist/esm/libs/index.js +19 -19
  963. package/dist/esm/libs/numbers.d.ts +1 -1
  964. package/dist/esm/libs/numbers.js +11 -11
  965. package/dist/esm/libs/numbers.js.map +1 -1
  966. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  967. package/dist/esm/libs/referrer-parser/index.js +2 -2
  968. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  969. package/dist/esm/libs/referrer-parser/referrer-data.js +3304 -3304
  970. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +19 -20
  971. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +124 -124
  972. package/dist/esm/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  973. package/dist/esm/libs/strings.d.ts +3 -3
  974. package/dist/esm/libs/strings.js +40 -40
  975. package/dist/esm/libs/strings.js.map +1 -1
  976. package/dist/esm/libs/traits.d.ts +6 -6
  977. package/dist/esm/libs/traits.js +54 -54
  978. package/dist/esm/libs/traits.js.map +1 -1
  979. package/dist/esm/libs/url.d.ts +1 -1
  980. package/dist/esm/libs/url.js +9 -9
  981. package/dist/esm/services/acuity-api-service.d.ts +9 -9
  982. package/dist/esm/services/acuity-api-service.js +69 -69
  983. package/dist/esm/services/acuity-api-service.js.map +1 -1
  984. package/dist/esm/services/cache/generic-cached-object.d.ts +5 -5
  985. package/dist/esm/services/cache/generic-cached-object.js +1 -1
  986. package/dist/esm/services/cache/index.d.ts +1 -1
  987. package/dist/esm/services/cache/index.js +1 -1
  988. package/dist/esm/services/cache/product-cache-service.d.ts +21 -21
  989. package/dist/esm/services/cache/product-cache-service.js +68 -68
  990. package/dist/esm/services/cache/product-cache-service.js.map +1 -1
  991. package/dist/esm/services/cost/cost-calculation-types.d.ts +69 -69
  992. package/dist/esm/services/cost/cost-calculation-types.js +15 -15
  993. package/dist/esm/services/cost/cost-calculation-types.js.map +1 -1
  994. package/dist/esm/services/cost/cost-calculator-service.d.ts +24 -24
  995. package/dist/esm/services/cost/cost-calculator-service.js +489 -456
  996. package/dist/esm/services/cost/cost-calculator-service.js.map +1 -1
  997. package/dist/esm/services/cost/cost-currency-service.d.ts +6 -6
  998. package/dist/esm/services/cost/cost-currency-service.js +84 -84
  999. package/dist/esm/services/cost/cost-currency-service.js.map +1 -1
  1000. package/dist/esm/services/cost/cost-filter-service.d.ts +10 -10
  1001. package/dist/esm/services/cost/cost-filter-service.js +127 -118
  1002. package/dist/esm/services/cost/cost-filter-service.js.map +1 -1
  1003. package/dist/esm/services/cost/index.d.ts +5 -5
  1004. package/dist/esm/services/cost/index.js +5 -5
  1005. package/dist/esm/services/cost/order-cost/index.d.ts +2 -2
  1006. package/dist/esm/services/cost/order-cost/index.js +2 -2
  1007. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.d.ts +23 -23
  1008. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js +302 -287
  1009. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js.map +1 -1
  1010. package/dist/esm/services/cost/order-cost/order-cost-resolution-types.d.ts +31 -31
  1011. package/dist/esm/services/cost/order-cost/order-cost-resolution-types.js +1 -1
  1012. package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +12 -12
  1013. package/dist/esm/services/currency-exchange-rate-lookup-service.js +93 -90
  1014. package/dist/esm/services/currency-exchange-rate-lookup-service.js.map +1 -1
  1015. package/dist/esm/services/db/accounts-db-service.d.ts +9 -9
  1016. package/dist/esm/services/db/accounts-db-service.js +29 -29
  1017. package/dist/esm/services/db/accounts-db-service.js.map +1 -1
  1018. package/dist/esm/services/db/api-keys-db-service.d.ts +10 -10
  1019. package/dist/esm/services/db/api-keys-db-service.js +32 -32
  1020. package/dist/esm/services/db/api-keys-db-service.js.map +1 -1
  1021. package/dist/esm/services/db/contact-enrichments-db-service.d.ts +15 -15
  1022. package/dist/esm/services/db/contact-enrichments-db-service.js +90 -90
  1023. package/dist/esm/services/db/contact-enrichments-db-service.js.map +1 -1
  1024. package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  1025. package/dist/esm/services/db/currency-exchange-rates-db-service.js +35 -35
  1026. package/dist/esm/services/db/custom-measures-db-service.d.ts +14 -14
  1027. package/dist/esm/services/db/custom-measures-db-service.js +44 -44
  1028. package/dist/esm/services/db/custom-measures-db-service.js.map +1 -1
  1029. package/dist/esm/services/db/destinations-db-service.d.ts +13 -13
  1030. package/dist/esm/services/db/destinations-db-service.js +70 -70
  1031. package/dist/esm/services/db/identity-cache-db-service.d.ts +28 -28
  1032. package/dist/esm/services/db/identity-cache-db-service.js +313 -313
  1033. package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
  1034. package/dist/esm/services/db/identity-cache-dynamodb-service/constants.d.ts +3 -3
  1035. package/dist/esm/services/db/identity-cache-dynamodb-service/constants.js +3 -3
  1036. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.d.ts +25 -25
  1037. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +525 -521
  1038. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  1039. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.d.ts +23 -23
  1040. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +232 -218
  1041. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  1042. package/dist/esm/services/db/identity-cache-dynamodb-service/index.d.ts +4 -4
  1043. package/dist/esm/services/db/identity-cache-dynamodb-service/index.js +4 -4
  1044. package/dist/esm/services/db/identity-cache-dynamodb-service/key-builders.d.ts +12 -12
  1045. package/dist/esm/services/db/identity-cache-dynamodb-service/key-builders.js +23 -23
  1046. package/dist/esm/services/db/identity-cache-dynamodb-service/types.d.ts +82 -82
  1047. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js +25 -25
  1048. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  1049. package/dist/esm/services/db/index.d.ts +22 -22
  1050. package/dist/esm/services/db/index.js +22 -22
  1051. package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
  1052. package/dist/esm/services/db/log-events-db-service.js +177 -177
  1053. package/dist/esm/services/db/log-events-db-service.js.map +1 -1
  1054. package/dist/esm/services/db/pixels-db-service.d.ts +8 -8
  1055. package/dist/esm/services/db/pixels-db-service.js +31 -31
  1056. package/dist/esm/services/db/products-db-service-types.d.ts +10 -10
  1057. package/dist/esm/services/db/products-db-service-types.js +1 -1
  1058. package/dist/esm/services/db/products-db-service.d.ts +19 -19
  1059. package/dist/esm/services/db/products-db-service.js +306 -277
  1060. package/dist/esm/services/db/products-db-service.js.map +1 -1
  1061. package/dist/esm/services/db/purchasable-contacts-db-service.d.ts +9 -9
  1062. package/dist/esm/services/db/purchasable-contacts-db-service.js +39 -39
  1063. package/dist/esm/services/db/purchasable-contacts-db-service.js.map +1 -1
  1064. package/dist/esm/services/db/purchased-contacts/index.d.ts +2 -2
  1065. package/dist/esm/services/db/purchased-contacts/index.js +2 -2
  1066. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.d.ts +18 -18
  1067. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js +148 -148
  1068. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
  1069. package/dist/esm/services/db/purchased-contacts/types.d.ts +11 -11
  1070. package/dist/esm/services/db/purchased-contacts/types.js +1 -1
  1071. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +10 -10
  1072. package/dist/esm/services/db/shopify-app-installs-db-service.js +48 -48
  1073. package/dist/esm/services/db/shopify-app-installs-db-service.js.map +1 -1
  1074. package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +16 -16
  1075. package/dist/esm/services/db/shopify-products-cache-db-service.js +66 -66
  1076. package/dist/esm/services/db/shopify-products-cache-db-service.js.map +1 -1
  1077. package/dist/esm/services/db/subscriptions-db-service.d.ts +11 -11
  1078. package/dist/esm/services/db/subscriptions-db-service.js +34 -34
  1079. package/dist/esm/services/db/subscriptions-db-service.js.map +1 -1
  1080. package/dist/esm/services/db/tracking-events-db-service.d.ts +21 -21
  1081. package/dist/esm/services/db/tracking-events-db-service.js +184 -184
  1082. package/dist/esm/services/db/tracking-events-db-service.js.map +1 -1
  1083. package/dist/esm/services/db/user-accounts-db-service.d.ts +7 -7
  1084. package/dist/esm/services/db/user-accounts-db-service.js +13 -13
  1085. package/dist/esm/services/email-verification/contact-email-verification-service.d.ts +7 -7
  1086. package/dist/esm/services/email-verification/contact-email-verification-service.js +97 -97
  1087. package/dist/esm/services/email-verification/contact-email-verification-service.js.map +1 -1
  1088. package/dist/esm/services/email-verification/email-verification-service.d.ts +19 -19
  1089. package/dist/esm/services/email-verification/email-verification-service.js +127 -127
  1090. package/dist/esm/services/email-verification/email-verification-service.js.map +1 -1
  1091. package/dist/esm/services/email-verification/index.d.ts +2 -2
  1092. package/dist/esm/services/email-verification/index.js +2 -2
  1093. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  1094. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  1095. package/dist/esm/services/events/build-collect-queue-tracking-event.d.ts +11 -11
  1096. package/dist/esm/services/events/build-collect-queue-tracking-event.js +19 -19
  1097. package/dist/esm/services/events/build-collect-queue-tracking-event.js.map +1 -1
  1098. package/dist/esm/services/events/collect-queue-tracking-service.d.ts +12 -12
  1099. package/dist/esm/services/events/collect-queue-tracking-service.js +18 -18
  1100. package/dist/esm/services/events/collect-queue-tracking-service.js.map +1 -1
  1101. package/dist/esm/services/events/index.d.ts +5 -5
  1102. package/dist/esm/services/events/index.js +5 -5
  1103. package/dist/esm/services/events/log-event-service.d.ts +19 -19
  1104. package/dist/esm/services/events/log-event-service.js +73 -73
  1105. package/dist/esm/services/events/log-event-service.js.map +1 -1
  1106. package/dist/esm/services/events/metric-event-service.d.ts +9 -9
  1107. package/dist/esm/services/events/metric-event-service.js +45 -45
  1108. package/dist/esm/services/events/metric-event-service.js.map +1 -1
  1109. package/dist/esm/services/events/tracking-event-sqs-service.d.ts +8 -8
  1110. package/dist/esm/services/events/tracking-event-sqs-service.js +32 -32
  1111. package/dist/esm/services/events/tracking-event-sqs-service.js.map +1 -1
  1112. package/dist/esm/services/generic-cache-service.d.ts +7 -7
  1113. package/dist/esm/services/generic-cache-service.js +29 -29
  1114. package/dist/esm/services/generic-cache-service.js.map +1 -1
  1115. package/dist/esm/services/index.d.ts +11 -11
  1116. package/dist/esm/services/index.js +11 -11
  1117. package/dist/esm/services/ipdata-lookup-service.d.ts +20 -20
  1118. package/dist/esm/services/ipdata-lookup-service.js +108 -108
  1119. package/dist/esm/services/ipdata-lookup-service.js.map +1 -1
  1120. package/dist/esm/services/shopify/index.d.ts +2 -2
  1121. package/dist/esm/services/shopify/index.js +2 -2
  1122. package/dist/esm/services/shopify/products/index.d.ts +1 -1
  1123. package/dist/esm/services/shopify/products/index.js +1 -1
  1124. package/dist/esm/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  1125. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js +108 -108
  1126. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
  1127. package/dist/esm/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  1128. package/dist/esm/services/shopify/shopify-graphql-transformer.js +138 -138
  1129. package/dist/esm/services/shopify/shopify-graphql-transformer.js.map +1 -1
  1130. package/dist/esm/types/acuity-types.d.ts +74 -74
  1131. package/dist/esm/types/acuity-types.js +1 -1
  1132. package/dist/esm/types/api-response.d.ts +6 -6
  1133. package/dist/esm/types/api-response.js +1 -1
  1134. package/dist/esm/types/index.d.ts +6 -6
  1135. package/dist/esm/types/index.js +6 -6
  1136. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  1137. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  1138. package/dist/esm/types/internal-events/index.d.ts +1 -1
  1139. package/dist/esm/types/internal-events/index.js +1 -1
  1140. package/dist/esm/types/open-exchange-rates-types.d.ts +10 -10
  1141. package/dist/esm/types/open-exchange-rates-types.js +1 -1
  1142. package/dist/esm/types/public-api-types.d.ts +24 -24
  1143. package/dist/esm/types/public-api-types.js +10 -10
  1144. package/dist/esm/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  1145. package/dist/esm/types/shopify-graphql-types/admin.generated.js +1 -1
  1146. package/dist/esm/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  1147. package/dist/esm/types/shopify-graphql-types/admin.types.js +5299 -5299
  1148. package/dist/esm/types/shopify-graphql-types/index.d.ts +2 -2
  1149. package/dist/esm/types/shopify-graphql-types/index.js +2 -2
  1150. package/dist/esm/types/shopify-rest-types.d.ts +767 -767
  1151. package/dist/esm/types/shopify-rest-types.js +1 -1
  1152. package/dist/esm/utils/compression.d.ts +34 -36
  1153. package/dist/esm/utils/compression.js +187 -187
  1154. package/dist/esm/utils/compression.js.map +1 -1
  1155. package/dist/esm/utils/custom-measure-formula-utils.d.ts +6 -6
  1156. package/dist/esm/utils/custom-measure-formula-utils.js +201 -201
  1157. package/dist/esm/utils/custom-measure-formula-utils.js.map +1 -1
  1158. package/dist/esm/utils/index.d.ts +4 -4
  1159. package/dist/esm/utils/index.js +4 -4
  1160. package/dist/esm/utils/retry-envelope.d.ts +12 -12
  1161. package/dist/esm/utils/retry-envelope.js +22 -22
  1162. package/dist/esm/utils/retry-envelope.js.map +1 -1
  1163. package/dist/esm/utils/size.d.ts +2 -2
  1164. package/dist/esm/utils/size.js +44 -44
  1165. package/dist/esm/utils/size.js.map +1 -1
  1166. package/package.json +45 -40
@@ -1,819 +1,820 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const at_tracking_event_types_1 = require("@adtrackify/at-tracking-event-types");
4
- const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
5
- describe('Volatile Traits Optimization - Tier Classification', () => {
6
- afterEach(() => {
7
- jest.resetModules();
8
- });
9
- describe('TIER: NONE — Cache is fresh', () => {
10
- it('should return NONE when cached and incoming are identical', () => {
11
- const identity = {
12
- identityId: 'test-id',
13
- traits: {
14
- emails: ['test@email.com'],
15
- phones: ['+1234567890'],
16
- ipAddress: '192.168.1.1',
17
- userAgent: 'Mozilla/5.0',
18
- addresses: [{ city: 'New York', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
19
- },
20
- };
21
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(identity, identity);
22
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
23
- expect(result.isCacheStale).toBe(false);
24
- expect(result.isIpAddressStale).toBe(false);
25
- expect(result.isUserAgentStale).toBe(false);
26
- expect(result.isEmailsStale).toBe(false);
27
- expect(result.isAddressesStale).toBe(false);
28
- });
29
- it('should return NONE when incoming is subset of cached', () => {
30
- const cachedIdentity = {
31
- identityId: 'test-id',
32
- traits: {
33
- emails: ['a@email.com', 'b@email.com'],
34
- phones: ['+1234567890', '+9876543210'],
35
- userIds: ['user1', 'user2'],
36
- },
37
- };
38
- const incomingIdentity = {
39
- identityId: 'test-id',
40
- traits: {
41
- emails: ['a@email.com'],
42
- phones: ['+1234567890'],
43
- },
44
- };
45
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
46
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
47
- expect(result.isCacheStale).toBe(false);
48
- });
49
- });
50
- describe('TIER: VOLATILE_ONLY — Only session traits changed', () => {
51
- it('should return VOLATILE_ONLY when only ipAddress is stale', () => {
52
- const cachedIdentity = {
53
- identityId: 'test-id',
54
- traits: {
55
- emails: ['test@email.com'],
56
- ipAddress: '192.168.1.1',
57
- },
58
- };
59
- const incomingIdentity = {
60
- identityId: 'test-id',
61
- traits: {
62
- emails: ['test@email.com'],
63
- ipAddress: '10.0.0.1',
64
- },
65
- };
66
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
67
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
68
- expect(result.isCacheStale).toBe(false);
69
- expect(result.isIpAddressStale).toBe(true);
70
- expect(result.isUserAgentStale).toBe(false);
71
- });
72
- it('should return VOLATILE_ONLY when only userAgent is stale', () => {
73
- const cachedIdentity = {
74
- identityId: 'test-id',
75
- traits: {
76
- emails: ['test@email.com'],
77
- userAgent: 'Mozilla/5.0 (Windows NT 10.0)',
78
- },
79
- };
80
- const incomingIdentity = {
81
- identityId: 'test-id',
82
- traits: {
83
- emails: ['test@email.com'],
84
- userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X)',
85
- },
86
- };
87
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
88
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
89
- expect(result.isCacheStale).toBe(false);
90
- expect(result.isUserAgentStale).toBe(true);
91
- expect(result.isIpAddressStale).toBe(false);
92
- });
93
- it('should return VOLATILE_ONLY when only IP-sourced addresses are stale', () => {
94
- const cachedIdentity = {
95
- identityId: 'test-id',
96
- traits: {
97
- emails: ['test@email.com'],
98
- addresses: [{ city: 'New York', country: 'USA', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
99
- },
100
- };
101
- const incomingIdentity = {
102
- identityId: 'test-id',
103
- traits: {
104
- emails: ['test@email.com'],
105
- addresses: [{ city: 'Los Angeles', country: 'USA', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
106
- },
107
- };
108
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
109
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
110
- expect(result.isCacheStale).toBe(false);
111
- expect(result.isIpAddressesStale).toBe(true);
112
- expect(result.isNonIpAddressesStale).toBe(false);
113
- });
114
- it('should return VOLATILE_ONLY when ipAddress AND userAgent are both stale', () => {
115
- const cachedIdentity = {
116
- identityId: 'test-id',
117
- traits: {
118
- emails: ['test@email.com'],
119
- ipAddress: '192.168.1.1',
120
- userAgent: 'Mozilla/5.0 (Windows)',
121
- },
122
- };
123
- const incomingIdentity = {
124
- identityId: 'test-id',
125
- traits: {
126
- emails: ['test@email.com'],
127
- ipAddress: '10.0.0.1',
128
- userAgent: 'Mozilla/5.0 (Mac)',
129
- },
130
- };
131
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
132
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
133
- expect(result.isCacheStale).toBe(false);
134
- expect(result.isIpAddressStale).toBe(true);
135
- expect(result.isUserAgentStale).toBe(true);
136
- });
137
- it('should return VOLATILE_ONLY when ipAddress AND IP-sourced address are both stale', () => {
138
- const cachedIdentity = {
139
- identityId: 'test-id',
140
- traits: {
141
- emails: ['test@email.com'],
142
- ipAddress: '192.168.1.1',
143
- addresses: [{ city: 'Chicago', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
144
- },
145
- };
146
- const incomingIdentity = {
147
- identityId: 'test-id',
148
- traits: {
149
- emails: ['test@email.com'],
150
- ipAddress: '10.0.0.1',
151
- addresses: [{ city: 'Denver', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
152
- },
153
- };
154
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
155
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
156
- expect(result.isCacheStale).toBe(false);
157
- expect(result.isIpAddressStale).toBe(true);
158
- expect(result.isIpAddressesStale).toBe(true);
159
- });
160
- it('should return VOLATILE_ONLY when all volatile traits are stale but no identity traits', () => {
161
- const cachedIdentity = {
162
- identityId: 'test-id',
163
- traits: {
164
- emails: ['test@email.com'],
165
- ipAddress: '192.168.1.1',
166
- userAgent: 'Mozilla/5.0 (Windows)',
167
- addresses: [{ city: 'Seattle', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
168
- },
169
- };
170
- const incomingIdentity = {
171
- identityId: 'test-id',
172
- traits: {
173
- emails: ['test@email.com'],
174
- ipAddress: '172.16.0.1',
175
- userAgent: 'Chrome/120.0',
176
- addresses: [{ city: 'Portland', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
177
- },
178
- };
179
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
180
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
181
- expect(result.isCacheStale).toBe(false);
182
- expect(result.isIpAddressStale).toBe(true);
183
- expect(result.isUserAgentStale).toBe(true);
184
- expect(result.isIpAddressesStale).toBe(true);
185
- });
186
- });
187
- describe('TIER: ADDRESS_UPDATE — Non-IP address changed', () => {
188
- it('should return ADDRESS_UPDATE when only non-IP address is new', () => {
189
- const cachedIdentity = {
190
- identityId: 'test-id',
191
- traits: {
192
- emails: ['test@email.com'],
193
- addresses: [],
194
- },
195
- };
196
- const incomingIdentity = {
197
- identityId: 'test-id',
198
- traits: {
199
- emails: ['test@email.com'],
200
- addresses: [{ city: 'Boston', province: 'MA', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
201
- },
202
- };
203
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
204
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
205
- expect(result.isCacheStale).toBe(true);
206
- expect(result.isNonIpAddressesStale).toBe(true);
207
- expect(result.isIpAddressesStale).toBe(false);
208
- });
209
- it('should return ADDRESS_UPDATE when non-IP address AND volatile traits are both stale', () => {
210
- const cachedIdentity = {
211
- identityId: 'test-id',
212
- traits: {
213
- emails: ['test@email.com'],
214
- ipAddress: '192.168.1.1',
215
- userAgent: 'Mozilla/5.0',
216
- addresses: [],
217
- },
218
- };
219
- const incomingIdentity = {
220
- identityId: 'test-id',
221
- traits: {
222
- emails: ['test@email.com'],
223
- ipAddress: '10.0.0.1',
224
- userAgent: 'Chrome/120.0',
225
- addresses: [{ city: 'Austin', firstName: 'John', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
226
- },
227
- };
228
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
229
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
230
- expect(result.isCacheStale).toBe(true);
231
- expect(result.isNonIpAddressesStale).toBe(true);
232
- expect(result.isIpAddressStale).toBe(true);
233
- expect(result.isUserAgentStale).toBe(true);
234
- });
235
- it('should return ADDRESS_UPDATE when new input address added to existing addresses', () => {
236
- const cachedIdentity = {
237
- identityId: 'test-id',
238
- traits: {
239
- emails: ['test@email.com'],
240
- addresses: [{ city: 'Miami', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
241
- },
242
- };
243
- const incomingIdentity = {
244
- identityId: 'test-id',
245
- traits: {
246
- emails: ['test@email.com'],
247
- addresses: [
248
- { city: 'Miami', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
249
- { city: 'Tampa', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
250
- ],
251
- },
252
- };
253
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
254
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
255
- expect(result.isCacheStale).toBe(true);
256
- expect(result.isNonIpAddressesStale).toBe(true);
257
- });
258
- it('should return ADDRESS_UPDATE when address with PII (no source field) is added', () => {
259
- const cachedIdentity = {
260
- identityId: 'test-id',
261
- traits: {
262
- emails: ['test@email.com'],
263
- addresses: [],
264
- },
265
- };
266
- const incomingIdentity = {
267
- identityId: 'test-id',
268
- traits: {
269
- emails: ['test@email.com'],
270
- addresses: [{ city: 'Dallas', firstName: 'Jane', lastName: 'Doe' }],
271
- },
272
- };
273
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
274
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
275
- expect(result.isCacheStale).toBe(true);
276
- expect(result.isNonIpAddressesStale).toBe(true);
277
- });
278
- });
279
- describe('TIER: IDENTITY_STALE — Identity-defining traits changed', () => {
280
- it('should return IDENTITY_STALE when emails are stale', () => {
281
- const cachedIdentity = {
282
- identityId: 'test-id',
283
- traits: { emails: ['old@email.com'] },
284
- };
285
- const incomingIdentity = {
286
- identityId: 'test-id',
287
- traits: { emails: ['old@email.com', 'new@email.com'] },
288
- };
289
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
290
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
291
- expect(result.isCacheStale).toBe(true);
292
- expect(result.isEmailsStale).toBe(true);
293
- });
294
- it('should return IDENTITY_STALE when phones are stale', () => {
295
- const cachedIdentity = {
296
- identityId: 'test-id',
297
- traits: { phones: ['+1234567890'] },
298
- };
299
- const incomingIdentity = {
300
- identityId: 'test-id',
301
- traits: { phones: ['+1234567890', '+9876543210'] },
302
- };
303
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
304
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
305
- expect(result.isCacheStale).toBe(true);
306
- expect(result.isPhonesStale).toBe(true);
307
- });
308
- it('should return IDENTITY_STALE when userIds are stale', () => {
309
- const cachedIdentity = {
310
- identityId: 'test-id',
311
- traits: { userIds: ['user1'] },
312
- };
313
- const incomingIdentity = {
314
- identityId: 'test-id',
315
- traits: { userIds: ['user1', 'user2'] },
316
- };
317
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
318
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
319
- expect(result.isCacheStale).toBe(true);
320
- expect(result.isUserIdsStale).toBe(true);
321
- });
322
- it('should return IDENTITY_STALE when clickInfos are stale', () => {
323
- const cachedIdentity = {
324
- identityId: 'test-id',
325
- traits: { click: { gclid: 'old_gclid' } },
326
- };
327
- const incomingIdentity = {
328
- identityId: 'test-id',
329
- traits: { click: { gclid: 'new_gclid' } },
330
- };
331
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
332
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
333
- expect(result.isCacheStale).toBe(true);
334
- expect(result.isClickInfosStale).toBe(true);
335
- });
336
- it('should return IDENTITY_STALE when identityId is stale', () => {
337
- const cachedIdentity = {
338
- identityId: 'old-id',
339
- traits: { emails: ['test@email.com'] },
340
- };
341
- const incomingIdentity = {
342
- identityId: 'new-id',
343
- traits: { emails: ['test@email.com'] },
344
- };
345
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
346
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
347
- expect(result.isCacheStale).toBe(true);
348
- expect(result.isIdentityIdStale).toBe(true);
349
- });
350
- it('should return IDENTITY_STALE when emails stale AND volatile traits stale (highest tier wins)', () => {
351
- const cachedIdentity = {
352
- identityId: 'test-id',
353
- traits: {
354
- emails: ['old@email.com'],
355
- ipAddress: '192.168.1.1',
356
- userAgent: 'Mozilla/5.0',
357
- },
358
- };
359
- const incomingIdentity = {
360
- identityId: 'test-id',
361
- traits: {
362
- emails: ['old@email.com', 'new@email.com'],
363
- ipAddress: '10.0.0.1',
364
- userAgent: 'Chrome/120.0',
365
- },
366
- };
367
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
368
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
369
- expect(result.isCacheStale).toBe(true);
370
- expect(result.isEmailsStale).toBe(true);
371
- expect(result.isIpAddressStale).toBe(true);
372
- expect(result.isUserAgentStale).toBe(true);
373
- });
374
- it('should return IDENTITY_STALE when emails stale AND non-IP address stale (highest tier wins)', () => {
375
- const cachedIdentity = {
376
- identityId: 'test-id',
377
- traits: {
378
- emails: ['old@email.com'],
379
- addresses: [],
380
- },
381
- };
382
- const incomingIdentity = {
383
- identityId: 'test-id',
384
- traits: {
385
- emails: ['old@email.com', 'new@email.com'],
386
- addresses: [{ city: 'Phoenix', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
387
- },
388
- };
389
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
390
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
391
- expect(result.isCacheStale).toBe(true);
392
- expect(result.isEmailsStale).toBe(true);
393
- expect(result.isNonIpAddressesStale).toBe(true);
394
- });
395
- });
396
- });
397
- describe('Volatile Traits Optimization - Address Source Filtering', () => {
398
- afterEach(() => {
399
- jest.resetModules();
400
- });
401
- describe('isAddressIpSourced inference', () => {
402
- it('should treat address with s: IP_ADDRESS as IP-sourced', () => {
403
- const cachedIdentity = {
404
- identityId: 'test-id',
405
- traits: { addresses: [] },
406
- };
407
- const incomingIdentity = {
408
- identityId: 'test-id',
409
- traits: {
410
- addresses: [{ city: 'Atlanta', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
411
- },
412
- };
413
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
414
- expect(result.isIpAddressesStale).toBe(true);
415
- expect(result.isNonIpAddressesStale).toBe(false);
416
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
417
- });
418
- it('should treat address with s: INPUT as non-IP-sourced', () => {
419
- const cachedIdentity = {
420
- identityId: 'test-id',
421
- traits: { addresses: [] },
422
- };
423
- const incomingIdentity = {
424
- identityId: 'test-id',
425
- traits: {
426
- addresses: [{ city: 'Houston', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
427
- },
428
- };
429
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
430
- expect(result.isNonIpAddressesStale).toBe(true);
431
- expect(result.isIpAddressesStale).toBe(false);
432
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
433
- });
434
- it('should treat address without s but with firstName/lastName as non-IP (inferred input)', () => {
435
- const cachedIdentity = {
436
- identityId: 'test-id',
437
- traits: { addresses: [] },
438
- };
439
- const incomingIdentity = {
440
- identityId: 'test-id',
441
- traits: {
442
- addresses: [{ city: 'San Diego', firstName: 'Alice', lastName: 'Smith' }],
443
- },
444
- };
445
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
446
- expect(result.isNonIpAddressesStale).toBe(true);
447
- expect(result.isIpAddressesStale).toBe(false);
448
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
449
- });
450
- it('should treat address without s but with email as non-IP (inferred input)', () => {
451
- const cachedIdentity = {
452
- identityId: 'test-id',
453
- traits: { addresses: [] },
454
- };
455
- const incomingIdentity = {
456
- identityId: 'test-id',
457
- traits: {
458
- addresses: [{ city: 'Sacramento', email: 'addr@email.com' }],
459
- },
460
- };
461
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
462
- expect(result.isNonIpAddressesStale).toBe(true);
463
- expect(result.isIpAddressesStale).toBe(false);
464
- });
465
- it('should treat address without s but with phone as non-IP (inferred input)', () => {
466
- const cachedIdentity = {
467
- identityId: 'test-id',
468
- traits: { addresses: [] },
469
- };
470
- const incomingIdentity = {
471
- identityId: 'test-id',
472
- traits: {
473
- addresses: [{ city: 'San Jose', phone: '+15551234567' }],
474
- },
475
- };
476
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
477
- expect(result.isNonIpAddressesStale).toBe(true);
478
- expect(result.isIpAddressesStale).toBe(false);
479
- });
480
- it('should treat address without s and without PII as IP-sourced (inferred IP)', () => {
481
- const cachedIdentity = {
482
- identityId: 'test-id',
483
- traits: { addresses: [] },
484
- };
485
- const incomingIdentity = {
486
- identityId: 'test-id',
487
- traits: {
488
- addresses: [{ city: 'Oakland', country: 'USA', countryCode: 'US' }],
489
- },
490
- };
491
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
492
- expect(result.isIpAddressesStale).toBe(true);
493
- expect(result.isNonIpAddressesStale).toBe(false);
494
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
495
- });
496
- });
497
- describe('filterAddressesBySource behavior', () => {
498
- it('should correctly separate IP and non-IP addresses when mixed', () => {
499
- const cachedIdentity = {
500
- identityId: 'test-id',
501
- traits: {
502
- addresses: [
503
- { city: 'IP City 1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
504
- { city: 'Input City 1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
505
- ],
506
- },
507
- };
508
- const incomingIdentity = {
509
- identityId: 'test-id',
510
- traits: {
511
- addresses: [
512
- { city: 'New IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
513
- { city: 'Input City 1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
514
- { city: 'New Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
515
- ],
516
- },
517
- };
518
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
519
- expect(result.isIpAddressesStale).toBe(true);
520
- expect(result.isNonIpAddressesStale).toBe(true);
521
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
522
- });
523
- });
524
- describe('hasNewNonIpAddress detection', () => {
525
- it('should detect new input address as stale', () => {
526
- const cachedIdentity = {
527
- identityId: 'test-id',
528
- traits: {
529
- addresses: [{ city: 'Old City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
530
- },
531
- };
532
- const incomingIdentity = {
533
- identityId: 'test-id',
534
- traits: {
535
- addresses: [
536
- { city: 'Old City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
537
- { city: 'New City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
538
- ],
539
- },
540
- };
541
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
542
- expect(result.isNonIpAddressesStale).toBe(true);
543
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
544
- });
545
- it('should NOT mark non-IP stale when only IP address is new', () => {
546
- const cachedIdentity = {
547
- identityId: 'test-id',
548
- traits: {
549
- addresses: [
550
- { city: 'IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
551
- { city: 'Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
552
- ],
553
- },
554
- };
555
- const incomingIdentity = {
556
- identityId: 'test-id',
557
- traits: {
558
- addresses: [
559
- { city: 'New IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
560
- { city: 'Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
561
- ],
562
- },
563
- };
564
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
565
- expect(result.isIpAddressesStale).toBe(true);
566
- expect(result.isNonIpAddressesStale).toBe(false);
567
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
568
- });
569
- });
570
- describe('hasNewIpAddress detection', () => {
571
- it('should detect new IP address for tracking purposes', () => {
572
- const cachedIdentity = {
573
- identityId: 'test-id',
574
- traits: {
575
- addresses: [{ city: 'Old IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
576
- },
577
- };
578
- const incomingIdentity = {
579
- identityId: 'test-id',
580
- traits: {
581
- addresses: [{ city: 'New IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
582
- },
583
- };
584
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
585
- expect(result.isIpAddressesStale).toBe(true);
586
- expect(result.isAddressesStale).toBe(true);
587
- });
588
- });
589
- describe('Empty addresses edge cases', () => {
590
- it('should return ADDRESS_UPDATE when cached empty and incoming has non-IP address', () => {
591
- const cachedIdentity = {
592
- identityId: 'test-id',
593
- traits: { addresses: [] },
594
- };
595
- const incomingIdentity = {
596
- identityId: 'test-id',
597
- traits: {
598
- addresses: [{ city: 'Memphis', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
599
- },
600
- };
601
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
602
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
603
- expect(result.isCacheStale).toBe(true);
604
- expect(result.isNonIpAddressesStale).toBe(true);
605
- });
606
- it('should return VOLATILE_ONLY when cached empty and incoming has only IP address', () => {
607
- const cachedIdentity = {
608
- identityId: 'test-id',
609
- traits: { addresses: [] },
610
- };
611
- const incomingIdentity = {
612
- identityId: 'test-id',
613
- traits: {
614
- addresses: [{ city: 'Detroit', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
615
- },
616
- };
617
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
618
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
619
- expect(result.isCacheStale).toBe(false);
620
- expect(result.isIpAddressesStale).toBe(true);
621
- expect(result.isNonIpAddressesStale).toBe(false);
622
- });
623
- it('should return NONE when both cached and incoming have empty addresses', () => {
624
- const cachedIdentity = {
625
- identityId: 'test-id',
626
- traits: { addresses: [] },
627
- };
628
- const incomingIdentity = {
629
- identityId: 'test-id',
630
- traits: { addresses: [] },
631
- };
632
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
633
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
634
- expect(result.isAddressesStale).toBe(false);
635
- });
636
- });
637
- describe('All addresses have s field explicitly set', () => {
638
- it('should correctly identify source when all addresses have explicit s field', () => {
639
- const cachedIdentity = {
640
- identityId: 'test-id',
641
- traits: {
642
- addresses: [
643
- { city: 'IP1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
644
- { city: 'IN1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
645
- ],
646
- },
647
- };
648
- const incomingIdentity = {
649
- identityId: 'test-id',
650
- traits: {
651
- addresses: [
652
- { city: 'IP1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
653
- { city: 'IN1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
654
- { city: 'IP2', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
655
- { city: 'IN2', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
656
- ],
657
- },
658
- };
659
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
660
- expect(result.isIpAddressesStale).toBe(true);
661
- expect(result.isNonIpAddressesStale).toBe(true);
662
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
663
- });
664
- });
665
- describe('Mixed addresses: some IP, some input — only input changes', () => {
666
- it('should return ADDRESS_UPDATE when only input address changes', () => {
667
- const cachedIdentity = {
668
- identityId: 'test-id',
669
- traits: {
670
- addresses: [
671
- { city: 'IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
672
- { city: 'Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
673
- ],
674
- },
675
- };
676
- const incomingIdentity = {
677
- identityId: 'test-id',
678
- traits: {
679
- addresses: [
680
- { city: 'IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
681
- { city: 'Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
682
- { city: 'New Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
683
- ],
684
- },
685
- };
686
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
687
- expect(result.isIpAddressesStale).toBe(false);
688
- expect(result.isNonIpAddressesStale).toBe(true);
689
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
690
- });
691
- });
692
- });
693
- describe('Volatile Traits Optimization - checkScalarTraitChanged behavior', () => {
694
- afterEach(() => {
695
- jest.resetModules();
696
- });
697
- it('should NOT mark stale when incoming is empty/undefined but cached has value', () => {
698
- const cachedIdentity = {
699
- identityId: 'test-id',
700
- traits: {
701
- ipAddress: '192.168.1.1',
702
- userAgent: 'Mozilla/5.0',
703
- },
704
- };
705
- const incomingIdentity = {
706
- identityId: 'test-id',
707
- traits: {},
708
- };
709
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
710
- expect(result.isIpAddressStale).toBe(false);
711
- expect(result.isUserAgentStale).toBe(false);
712
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
713
- });
714
- it('should mark stale when cached is undefined but incoming has value', () => {
715
- const cachedIdentity = {
716
- identityId: 'test-id',
717
- traits: {},
718
- };
719
- const incomingIdentity = {
720
- identityId: 'test-id',
721
- traits: {
722
- ipAddress: '192.168.1.1',
723
- userAgent: 'Mozilla/5.0',
724
- },
725
- };
726
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
727
- expect(result.isIpAddressStale).toBe(true);
728
- expect(result.isUserAgentStale).toBe(true);
729
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
730
- });
731
- it('should mark stale when both have values but they differ', () => {
732
- const cachedIdentity = {
733
- identityId: 'test-id',
734
- traits: { ipAddress: '192.168.1.1' },
735
- };
736
- const incomingIdentity = {
737
- identityId: 'test-id',
738
- traits: { ipAddress: '10.0.0.1' },
739
- };
740
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
741
- expect(result.isIpAddressStale).toBe(true);
742
- });
743
- });
744
- describe('Volatile Traits Optimization - Error Handling', () => {
745
- afterEach(() => {
746
- jest.resetModules();
747
- });
748
- it('should return NONE when both identities have same identityId but malformed traits', () => {
749
- const result = (0, at_shared_utils_1.isIdentityCacheStale)({ identityId: 'test', traits: 'not-an-object' }, { identityId: 'test', traits: 123 });
750
- expect(result.isCacheStale).toBe(false);
751
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
752
- });
753
- it('should return IDENTITY_STALE when cached identity is null but incoming has identityId', () => {
754
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(null, { identityId: 'test', traits: {} });
755
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
756
- expect(result.isCacheStale).toBe(true);
757
- expect(result.isIdentityIdStale).toBe(true);
758
- });
759
- it('should return IDENTITY_STALE when cached identity is undefined but incoming has identityId', () => {
760
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(undefined, { identityId: 'test', traits: {} });
761
- expect(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
762
- expect(result.isCacheStale).toBe(true);
763
- expect(result.isIdentityIdStale).toBe(true);
764
- });
765
- });
766
- describe('Volatile Traits Optimization - Backward Compatibility', () => {
767
- afterEach(() => {
768
- jest.resetModules();
769
- });
770
- it('should maintain isAddressesStale=true when either IP or non-IP addresses are stale', () => {
771
- const cachedIdentity = {
772
- identityId: 'test-id',
773
- traits: {
774
- addresses: [{ city: 'OldCity', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
775
- },
776
- };
777
- const incomingIdentity = {
778
- identityId: 'test-id',
779
- traits: {
780
- addresses: [{ city: 'NewCity', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
781
- },
782
- };
783
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
784
- expect(result.isAddressesStale).toBe(true);
785
- expect(result.isIpAddressesStale).toBe(true);
786
- expect(result.isNonIpAddressesStale).toBe(false);
787
- });
788
- it('should include all stale trait tracker fields', () => {
789
- const cachedIdentity = {
790
- identityId: 'test-id',
791
- traits: {},
792
- };
793
- const incomingIdentity = {
794
- identityId: 'test-id',
795
- traits: {},
796
- };
797
- const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
798
- expect(result).toHaveProperty('cachedTraits');
799
- expect(result).toHaveProperty('incomingTraits');
800
- expect(result).toHaveProperty('isIdentityIdStale');
801
- expect(result).toHaveProperty('isUserIdsStale');
802
- expect(result).toHaveProperty('isIdsStale');
803
- expect(result).toHaveProperty('isEmailsStale');
804
- expect(result).toHaveProperty('isPhonesStale');
805
- expect(result).toHaveProperty('isShopifyYIdsStale');
806
- expect(result).toHaveProperty('isGendersStale');
807
- expect(result).toHaveProperty('isDobsStale');
808
- expect(result).toHaveProperty('isAddressesStale');
809
- expect(result).toHaveProperty('isIpAddressesStale');
810
- expect(result).toHaveProperty('isNonIpAddressesStale');
811
- expect(result).toHaveProperty('isClickInfosStale');
812
- expect(result).toHaveProperty('isIpAddressStale');
813
- expect(result).toHaveProperty('isUserAgentStale');
814
- expect(result).toHaveProperty('isThirdPartyContactsStale');
815
- expect(result).toHaveProperty('isCacheStale');
816
- expect(result).toHaveProperty('staleTier');
817
- });
818
- });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const at_tracking_event_types_1 = require("@adtrackify/at-tracking-event-types");
5
+ const at_shared_utils_1 = require("@adtrackify/at-shared-utils");
6
+ (0, vitest_1.describe)('Volatile Traits Optimization - Tier Classification', () => {
7
+ (0, vitest_1.afterEach)(() => {
8
+ vitest_1.vi.resetModules();
9
+ });
10
+ (0, vitest_1.describe)('TIER: NONE — Cache is fresh', () => {
11
+ (0, vitest_1.it)('should return NONE when cached and incoming are identical', () => {
12
+ const identity = {
13
+ identityId: 'test-id',
14
+ traits: {
15
+ emails: ['test@email.com'],
16
+ phones: ['+1234567890'],
17
+ ipAddress: '192.168.1.1',
18
+ userAgent: 'Mozilla/5.0',
19
+ addresses: [{ city: 'New York', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
20
+ },
21
+ };
22
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(identity, identity);
23
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
24
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
25
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(false);
26
+ (0, vitest_1.expect)(result.isUserAgentStale).toBe(false);
27
+ (0, vitest_1.expect)(result.isEmailsStale).toBe(false);
28
+ (0, vitest_1.expect)(result.isAddressesStale).toBe(false);
29
+ });
30
+ (0, vitest_1.it)('should return NONE when incoming is subset of cached', () => {
31
+ const cachedIdentity = {
32
+ identityId: 'test-id',
33
+ traits: {
34
+ emails: ['a@email.com', 'b@email.com'],
35
+ phones: ['+1234567890', '+9876543210'],
36
+ userIds: ['user1', 'user2'],
37
+ },
38
+ };
39
+ const incomingIdentity = {
40
+ identityId: 'test-id',
41
+ traits: {
42
+ emails: ['a@email.com'],
43
+ phones: ['+1234567890'],
44
+ },
45
+ };
46
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
47
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
48
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
49
+ });
50
+ });
51
+ (0, vitest_1.describe)('TIER: VOLATILE_ONLY — Only session traits changed', () => {
52
+ (0, vitest_1.it)('should return VOLATILE_ONLY when only ipAddress is stale', () => {
53
+ const cachedIdentity = {
54
+ identityId: 'test-id',
55
+ traits: {
56
+ emails: ['test@email.com'],
57
+ ipAddress: '192.168.1.1',
58
+ },
59
+ };
60
+ const incomingIdentity = {
61
+ identityId: 'test-id',
62
+ traits: {
63
+ emails: ['test@email.com'],
64
+ ipAddress: '10.0.0.1',
65
+ },
66
+ };
67
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
68
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
69
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
70
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(true);
71
+ (0, vitest_1.expect)(result.isUserAgentStale).toBe(false);
72
+ });
73
+ (0, vitest_1.it)('should return VOLATILE_ONLY when only userAgent is stale', () => {
74
+ const cachedIdentity = {
75
+ identityId: 'test-id',
76
+ traits: {
77
+ emails: ['test@email.com'],
78
+ userAgent: 'Mozilla/5.0 (Windows NT 10.0)',
79
+ },
80
+ };
81
+ const incomingIdentity = {
82
+ identityId: 'test-id',
83
+ traits: {
84
+ emails: ['test@email.com'],
85
+ userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X)',
86
+ },
87
+ };
88
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
89
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
90
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
91
+ (0, vitest_1.expect)(result.isUserAgentStale).toBe(true);
92
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(false);
93
+ });
94
+ (0, vitest_1.it)('should return VOLATILE_ONLY when only IP-sourced addresses are stale', () => {
95
+ const cachedIdentity = {
96
+ identityId: 'test-id',
97
+ traits: {
98
+ emails: ['test@email.com'],
99
+ addresses: [{ city: 'New York', country: 'USA', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
100
+ },
101
+ };
102
+ const incomingIdentity = {
103
+ identityId: 'test-id',
104
+ traits: {
105
+ emails: ['test@email.com'],
106
+ addresses: [{ city: 'Los Angeles', country: 'USA', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
107
+ },
108
+ };
109
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
110
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
111
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
112
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
113
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(false);
114
+ });
115
+ (0, vitest_1.it)('should return VOLATILE_ONLY when ipAddress AND userAgent are both stale', () => {
116
+ const cachedIdentity = {
117
+ identityId: 'test-id',
118
+ traits: {
119
+ emails: ['test@email.com'],
120
+ ipAddress: '192.168.1.1',
121
+ userAgent: 'Mozilla/5.0 (Windows)',
122
+ },
123
+ };
124
+ const incomingIdentity = {
125
+ identityId: 'test-id',
126
+ traits: {
127
+ emails: ['test@email.com'],
128
+ ipAddress: '10.0.0.1',
129
+ userAgent: 'Mozilla/5.0 (Mac)',
130
+ },
131
+ };
132
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
133
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
134
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
135
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(true);
136
+ (0, vitest_1.expect)(result.isUserAgentStale).toBe(true);
137
+ });
138
+ (0, vitest_1.it)('should return VOLATILE_ONLY when ipAddress AND IP-sourced address are both stale', () => {
139
+ const cachedIdentity = {
140
+ identityId: 'test-id',
141
+ traits: {
142
+ emails: ['test@email.com'],
143
+ ipAddress: '192.168.1.1',
144
+ addresses: [{ city: 'Chicago', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
145
+ },
146
+ };
147
+ const incomingIdentity = {
148
+ identityId: 'test-id',
149
+ traits: {
150
+ emails: ['test@email.com'],
151
+ ipAddress: '10.0.0.1',
152
+ addresses: [{ city: 'Denver', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
153
+ },
154
+ };
155
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
156
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
157
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
158
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(true);
159
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
160
+ });
161
+ (0, vitest_1.it)('should return VOLATILE_ONLY when all volatile traits are stale but no identity traits', () => {
162
+ const cachedIdentity = {
163
+ identityId: 'test-id',
164
+ traits: {
165
+ emails: ['test@email.com'],
166
+ ipAddress: '192.168.1.1',
167
+ userAgent: 'Mozilla/5.0 (Windows)',
168
+ addresses: [{ city: 'Seattle', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
169
+ },
170
+ };
171
+ const incomingIdentity = {
172
+ identityId: 'test-id',
173
+ traits: {
174
+ emails: ['test@email.com'],
175
+ ipAddress: '172.16.0.1',
176
+ userAgent: 'Chrome/120.0',
177
+ addresses: [{ city: 'Portland', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
178
+ },
179
+ };
180
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
181
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
182
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
183
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(true);
184
+ (0, vitest_1.expect)(result.isUserAgentStale).toBe(true);
185
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
186
+ });
187
+ });
188
+ (0, vitest_1.describe)('TIER: ADDRESS_UPDATE — Non-IP address changed', () => {
189
+ (0, vitest_1.it)('should return ADDRESS_UPDATE when only non-IP address is new', () => {
190
+ const cachedIdentity = {
191
+ identityId: 'test-id',
192
+ traits: {
193
+ emails: ['test@email.com'],
194
+ addresses: [],
195
+ },
196
+ };
197
+ const incomingIdentity = {
198
+ identityId: 'test-id',
199
+ traits: {
200
+ emails: ['test@email.com'],
201
+ addresses: [{ city: 'Boston', province: 'MA', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
202
+ },
203
+ };
204
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
205
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
206
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
207
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
208
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(false);
209
+ });
210
+ (0, vitest_1.it)('should return ADDRESS_UPDATE when non-IP address AND volatile traits are both stale', () => {
211
+ const cachedIdentity = {
212
+ identityId: 'test-id',
213
+ traits: {
214
+ emails: ['test@email.com'],
215
+ ipAddress: '192.168.1.1',
216
+ userAgent: 'Mozilla/5.0',
217
+ addresses: [],
218
+ },
219
+ };
220
+ const incomingIdentity = {
221
+ identityId: 'test-id',
222
+ traits: {
223
+ emails: ['test@email.com'],
224
+ ipAddress: '10.0.0.1',
225
+ userAgent: 'Chrome/120.0',
226
+ addresses: [{ city: 'Austin', firstName: 'John', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
227
+ },
228
+ };
229
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
230
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
231
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
232
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
233
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(true);
234
+ (0, vitest_1.expect)(result.isUserAgentStale).toBe(true);
235
+ });
236
+ (0, vitest_1.it)('should return ADDRESS_UPDATE when new input address added to existing addresses', () => {
237
+ const cachedIdentity = {
238
+ identityId: 'test-id',
239
+ traits: {
240
+ emails: ['test@email.com'],
241
+ addresses: [{ city: 'Miami', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
242
+ },
243
+ };
244
+ const incomingIdentity = {
245
+ identityId: 'test-id',
246
+ traits: {
247
+ emails: ['test@email.com'],
248
+ addresses: [
249
+ { city: 'Miami', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
250
+ { city: 'Tampa', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
251
+ ],
252
+ },
253
+ };
254
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
255
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
256
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
257
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
258
+ });
259
+ (0, vitest_1.it)('should return ADDRESS_UPDATE when address with PII (no source field) is added', () => {
260
+ const cachedIdentity = {
261
+ identityId: 'test-id',
262
+ traits: {
263
+ emails: ['test@email.com'],
264
+ addresses: [],
265
+ },
266
+ };
267
+ const incomingIdentity = {
268
+ identityId: 'test-id',
269
+ traits: {
270
+ emails: ['test@email.com'],
271
+ addresses: [{ city: 'Dallas', firstName: 'Jane', lastName: 'Doe' }],
272
+ },
273
+ };
274
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
275
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
276
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
277
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
278
+ });
279
+ });
280
+ (0, vitest_1.describe)('TIER: IDENTITY_STALE — Identity-defining traits changed', () => {
281
+ (0, vitest_1.it)('should return IDENTITY_STALE when emails are stale', () => {
282
+ const cachedIdentity = {
283
+ identityId: 'test-id',
284
+ traits: { emails: ['old@email.com'] },
285
+ };
286
+ const incomingIdentity = {
287
+ identityId: 'test-id',
288
+ traits: { emails: ['old@email.com', 'new@email.com'] },
289
+ };
290
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
291
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
292
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
293
+ (0, vitest_1.expect)(result.isEmailsStale).toBe(true);
294
+ });
295
+ (0, vitest_1.it)('should return IDENTITY_STALE when phones are stale', () => {
296
+ const cachedIdentity = {
297
+ identityId: 'test-id',
298
+ traits: { phones: ['+1234567890'] },
299
+ };
300
+ const incomingIdentity = {
301
+ identityId: 'test-id',
302
+ traits: { phones: ['+1234567890', '+9876543210'] },
303
+ };
304
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
305
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
306
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
307
+ (0, vitest_1.expect)(result.isPhonesStale).toBe(true);
308
+ });
309
+ (0, vitest_1.it)('should return IDENTITY_STALE when userIds are stale', () => {
310
+ const cachedIdentity = {
311
+ identityId: 'test-id',
312
+ traits: { userIds: ['user1'] },
313
+ };
314
+ const incomingIdentity = {
315
+ identityId: 'test-id',
316
+ traits: { userIds: ['user1', 'user2'] },
317
+ };
318
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
319
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
320
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
321
+ (0, vitest_1.expect)(result.isUserIdsStale).toBe(true);
322
+ });
323
+ (0, vitest_1.it)('should return IDENTITY_STALE when clickInfos are stale', () => {
324
+ const cachedIdentity = {
325
+ identityId: 'test-id',
326
+ traits: { click: { gclid: 'old_gclid' } },
327
+ };
328
+ const incomingIdentity = {
329
+ identityId: 'test-id',
330
+ traits: { click: { gclid: 'new_gclid' } },
331
+ };
332
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
333
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
334
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
335
+ (0, vitest_1.expect)(result.isClickInfosStale).toBe(true);
336
+ });
337
+ (0, vitest_1.it)('should return IDENTITY_STALE when identityId is stale', () => {
338
+ const cachedIdentity = {
339
+ identityId: 'old-id',
340
+ traits: { emails: ['test@email.com'] },
341
+ };
342
+ const incomingIdentity = {
343
+ identityId: 'new-id',
344
+ traits: { emails: ['test@email.com'] },
345
+ };
346
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
347
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
348
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
349
+ (0, vitest_1.expect)(result.isIdentityIdStale).toBe(true);
350
+ });
351
+ (0, vitest_1.it)('should return IDENTITY_STALE when emails stale AND volatile traits stale (highest tier wins)', () => {
352
+ const cachedIdentity = {
353
+ identityId: 'test-id',
354
+ traits: {
355
+ emails: ['old@email.com'],
356
+ ipAddress: '192.168.1.1',
357
+ userAgent: 'Mozilla/5.0',
358
+ },
359
+ };
360
+ const incomingIdentity = {
361
+ identityId: 'test-id',
362
+ traits: {
363
+ emails: ['old@email.com', 'new@email.com'],
364
+ ipAddress: '10.0.0.1',
365
+ userAgent: 'Chrome/120.0',
366
+ },
367
+ };
368
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
369
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
370
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
371
+ (0, vitest_1.expect)(result.isEmailsStale).toBe(true);
372
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(true);
373
+ (0, vitest_1.expect)(result.isUserAgentStale).toBe(true);
374
+ });
375
+ (0, vitest_1.it)('should return IDENTITY_STALE when emails stale AND non-IP address stale (highest tier wins)', () => {
376
+ const cachedIdentity = {
377
+ identityId: 'test-id',
378
+ traits: {
379
+ emails: ['old@email.com'],
380
+ addresses: [],
381
+ },
382
+ };
383
+ const incomingIdentity = {
384
+ identityId: 'test-id',
385
+ traits: {
386
+ emails: ['old@email.com', 'new@email.com'],
387
+ addresses: [{ city: 'Phoenix', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
388
+ },
389
+ };
390
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
391
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
392
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
393
+ (0, vitest_1.expect)(result.isEmailsStale).toBe(true);
394
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
395
+ });
396
+ });
397
+ });
398
+ (0, vitest_1.describe)('Volatile Traits Optimization - Address Source Filtering', () => {
399
+ (0, vitest_1.afterEach)(() => {
400
+ vitest_1.vi.resetModules();
401
+ });
402
+ (0, vitest_1.describe)('isAddressIpSourced inference', () => {
403
+ (0, vitest_1.it)('should treat address with s: IP_ADDRESS as IP-sourced', () => {
404
+ const cachedIdentity = {
405
+ identityId: 'test-id',
406
+ traits: { addresses: [] },
407
+ };
408
+ const incomingIdentity = {
409
+ identityId: 'test-id',
410
+ traits: {
411
+ addresses: [{ city: 'Atlanta', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
412
+ },
413
+ };
414
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
415
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
416
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(false);
417
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
418
+ });
419
+ (0, vitest_1.it)('should treat address with s: INPUT as non-IP-sourced', () => {
420
+ const cachedIdentity = {
421
+ identityId: 'test-id',
422
+ traits: { addresses: [] },
423
+ };
424
+ const incomingIdentity = {
425
+ identityId: 'test-id',
426
+ traits: {
427
+ addresses: [{ city: 'Houston', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
428
+ },
429
+ };
430
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
431
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
432
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(false);
433
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
434
+ });
435
+ (0, vitest_1.it)('should treat address without s but with firstName/lastName as non-IP (inferred input)', () => {
436
+ const cachedIdentity = {
437
+ identityId: 'test-id',
438
+ traits: { addresses: [] },
439
+ };
440
+ const incomingIdentity = {
441
+ identityId: 'test-id',
442
+ traits: {
443
+ addresses: [{ city: 'San Diego', firstName: 'Alice', lastName: 'Smith' }],
444
+ },
445
+ };
446
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
447
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
448
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(false);
449
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
450
+ });
451
+ (0, vitest_1.it)('should treat address without s but with email as non-IP (inferred input)', () => {
452
+ const cachedIdentity = {
453
+ identityId: 'test-id',
454
+ traits: { addresses: [] },
455
+ };
456
+ const incomingIdentity = {
457
+ identityId: 'test-id',
458
+ traits: {
459
+ addresses: [{ city: 'Sacramento', email: 'addr@email.com' }],
460
+ },
461
+ };
462
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
463
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
464
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(false);
465
+ });
466
+ (0, vitest_1.it)('should treat address without s but with phone as non-IP (inferred input)', () => {
467
+ const cachedIdentity = {
468
+ identityId: 'test-id',
469
+ traits: { addresses: [] },
470
+ };
471
+ const incomingIdentity = {
472
+ identityId: 'test-id',
473
+ traits: {
474
+ addresses: [{ city: 'San Jose', phone: '+15551234567' }],
475
+ },
476
+ };
477
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
478
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
479
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(false);
480
+ });
481
+ (0, vitest_1.it)('should treat address without s and without PII as IP-sourced (inferred IP)', () => {
482
+ const cachedIdentity = {
483
+ identityId: 'test-id',
484
+ traits: { addresses: [] },
485
+ };
486
+ const incomingIdentity = {
487
+ identityId: 'test-id',
488
+ traits: {
489
+ addresses: [{ city: 'Oakland', country: 'USA', countryCode: 'US' }],
490
+ },
491
+ };
492
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
493
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
494
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(false);
495
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
496
+ });
497
+ });
498
+ (0, vitest_1.describe)('filterAddressesBySource behavior', () => {
499
+ (0, vitest_1.it)('should correctly separate IP and non-IP addresses when mixed', () => {
500
+ const cachedIdentity = {
501
+ identityId: 'test-id',
502
+ traits: {
503
+ addresses: [
504
+ { city: 'IP City 1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
505
+ { city: 'Input City 1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
506
+ ],
507
+ },
508
+ };
509
+ const incomingIdentity = {
510
+ identityId: 'test-id',
511
+ traits: {
512
+ addresses: [
513
+ { city: 'New IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
514
+ { city: 'Input City 1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
515
+ { city: 'New Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
516
+ ],
517
+ },
518
+ };
519
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
520
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
521
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
522
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
523
+ });
524
+ });
525
+ (0, vitest_1.describe)('hasNewNonIpAddress detection', () => {
526
+ (0, vitest_1.it)('should detect new input address as stale', () => {
527
+ const cachedIdentity = {
528
+ identityId: 'test-id',
529
+ traits: {
530
+ addresses: [{ city: 'Old City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
531
+ },
532
+ };
533
+ const incomingIdentity = {
534
+ identityId: 'test-id',
535
+ traits: {
536
+ addresses: [
537
+ { city: 'Old City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
538
+ { city: 'New City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
539
+ ],
540
+ },
541
+ };
542
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
543
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
544
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
545
+ });
546
+ (0, vitest_1.it)('should NOT mark non-IP stale when only IP address is new', () => {
547
+ const cachedIdentity = {
548
+ identityId: 'test-id',
549
+ traits: {
550
+ addresses: [
551
+ { city: 'IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
552
+ { city: 'Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
553
+ ],
554
+ },
555
+ };
556
+ const incomingIdentity = {
557
+ identityId: 'test-id',
558
+ traits: {
559
+ addresses: [
560
+ { city: 'New IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
561
+ { city: 'Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
562
+ ],
563
+ },
564
+ };
565
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
566
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
567
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(false);
568
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
569
+ });
570
+ });
571
+ (0, vitest_1.describe)('hasNewIpAddress detection', () => {
572
+ (0, vitest_1.it)('should detect new IP address for tracking purposes', () => {
573
+ const cachedIdentity = {
574
+ identityId: 'test-id',
575
+ traits: {
576
+ addresses: [{ city: 'Old IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
577
+ },
578
+ };
579
+ const incomingIdentity = {
580
+ identityId: 'test-id',
581
+ traits: {
582
+ addresses: [{ city: 'New IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
583
+ },
584
+ };
585
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
586
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
587
+ (0, vitest_1.expect)(result.isAddressesStale).toBe(true);
588
+ });
589
+ });
590
+ (0, vitest_1.describe)('Empty addresses edge cases', () => {
591
+ (0, vitest_1.it)('should return ADDRESS_UPDATE when cached empty and incoming has non-IP address', () => {
592
+ const cachedIdentity = {
593
+ identityId: 'test-id',
594
+ traits: { addresses: [] },
595
+ };
596
+ const incomingIdentity = {
597
+ identityId: 'test-id',
598
+ traits: {
599
+ addresses: [{ city: 'Memphis', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT }],
600
+ },
601
+ };
602
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
603
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
604
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
605
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
606
+ });
607
+ (0, vitest_1.it)('should return VOLATILE_ONLY when cached empty and incoming has only IP address', () => {
608
+ const cachedIdentity = {
609
+ identityId: 'test-id',
610
+ traits: { addresses: [] },
611
+ };
612
+ const incomingIdentity = {
613
+ identityId: 'test-id',
614
+ traits: {
615
+ addresses: [{ city: 'Detroit', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
616
+ },
617
+ };
618
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
619
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
620
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
621
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
622
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(false);
623
+ });
624
+ (0, vitest_1.it)('should return NONE when both cached and incoming have empty addresses', () => {
625
+ const cachedIdentity = {
626
+ identityId: 'test-id',
627
+ traits: { addresses: [] },
628
+ };
629
+ const incomingIdentity = {
630
+ identityId: 'test-id',
631
+ traits: { addresses: [] },
632
+ };
633
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
634
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
635
+ (0, vitest_1.expect)(result.isAddressesStale).toBe(false);
636
+ });
637
+ });
638
+ (0, vitest_1.describe)('All addresses have s field explicitly set', () => {
639
+ (0, vitest_1.it)('should correctly identify source when all addresses have explicit s field', () => {
640
+ const cachedIdentity = {
641
+ identityId: 'test-id',
642
+ traits: {
643
+ addresses: [
644
+ { city: 'IP1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
645
+ { city: 'IN1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
646
+ ],
647
+ },
648
+ };
649
+ const incomingIdentity = {
650
+ identityId: 'test-id',
651
+ traits: {
652
+ addresses: [
653
+ { city: 'IP1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
654
+ { city: 'IN1', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
655
+ { city: 'IP2', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
656
+ { city: 'IN2', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
657
+ ],
658
+ },
659
+ };
660
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
661
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
662
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
663
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
664
+ });
665
+ });
666
+ (0, vitest_1.describe)('Mixed addresses: some IP, some input — only input changes', () => {
667
+ (0, vitest_1.it)('should return ADDRESS_UPDATE when only input address changes', () => {
668
+ const cachedIdentity = {
669
+ identityId: 'test-id',
670
+ traits: {
671
+ addresses: [
672
+ { city: 'IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
673
+ { city: 'Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
674
+ ],
675
+ },
676
+ };
677
+ const incomingIdentity = {
678
+ identityId: 'test-id',
679
+ traits: {
680
+ addresses: [
681
+ { city: 'IP City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS },
682
+ { city: 'Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
683
+ { city: 'New Input City', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.INPUT },
684
+ ],
685
+ },
686
+ };
687
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
688
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(false);
689
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(true);
690
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.ADDRESS_UPDATE);
691
+ });
692
+ });
693
+ });
694
+ (0, vitest_1.describe)('Volatile Traits Optimization - checkScalarTraitChanged behavior', () => {
695
+ (0, vitest_1.afterEach)(() => {
696
+ vitest_1.vi.resetModules();
697
+ });
698
+ (0, vitest_1.it)('should NOT mark stale when incoming is empty/undefined but cached has value', () => {
699
+ const cachedIdentity = {
700
+ identityId: 'test-id',
701
+ traits: {
702
+ ipAddress: '192.168.1.1',
703
+ userAgent: 'Mozilla/5.0',
704
+ },
705
+ };
706
+ const incomingIdentity = {
707
+ identityId: 'test-id',
708
+ traits: {},
709
+ };
710
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
711
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(false);
712
+ (0, vitest_1.expect)(result.isUserAgentStale).toBe(false);
713
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
714
+ });
715
+ (0, vitest_1.it)('should mark stale when cached is undefined but incoming has value', () => {
716
+ const cachedIdentity = {
717
+ identityId: 'test-id',
718
+ traits: {},
719
+ };
720
+ const incomingIdentity = {
721
+ identityId: 'test-id',
722
+ traits: {
723
+ ipAddress: '192.168.1.1',
724
+ userAgent: 'Mozilla/5.0',
725
+ },
726
+ };
727
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
728
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(true);
729
+ (0, vitest_1.expect)(result.isUserAgentStale).toBe(true);
730
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.VOLATILE_ONLY);
731
+ });
732
+ (0, vitest_1.it)('should mark stale when both have values but they differ', () => {
733
+ const cachedIdentity = {
734
+ identityId: 'test-id',
735
+ traits: { ipAddress: '192.168.1.1' },
736
+ };
737
+ const incomingIdentity = {
738
+ identityId: 'test-id',
739
+ traits: { ipAddress: '10.0.0.1' },
740
+ };
741
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
742
+ (0, vitest_1.expect)(result.isIpAddressStale).toBe(true);
743
+ });
744
+ });
745
+ (0, vitest_1.describe)('Volatile Traits Optimization - Error Handling', () => {
746
+ (0, vitest_1.afterEach)(() => {
747
+ vitest_1.vi.resetModules();
748
+ });
749
+ (0, vitest_1.it)('should return NONE when both identities have same identityId but malformed traits', () => {
750
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)({ identityId: 'test', traits: 'not-an-object' }, { identityId: 'test', traits: 123 });
751
+ (0, vitest_1.expect)(result.isCacheStale).toBe(false);
752
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.NONE);
753
+ });
754
+ (0, vitest_1.it)('should return IDENTITY_STALE when cached identity is null but incoming has identityId', () => {
755
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(null, { identityId: 'test', traits: {} });
756
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
757
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
758
+ (0, vitest_1.expect)(result.isIdentityIdStale).toBe(true);
759
+ });
760
+ (0, vitest_1.it)('should return IDENTITY_STALE when cached identity is undefined but incoming has identityId', () => {
761
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(undefined, { identityId: 'test', traits: {} });
762
+ (0, vitest_1.expect)(result.staleTier).toBe(at_shared_utils_1.IDENTITY_CACHE_STALENESS_TIER.IDENTITY_STALE);
763
+ (0, vitest_1.expect)(result.isCacheStale).toBe(true);
764
+ (0, vitest_1.expect)(result.isIdentityIdStale).toBe(true);
765
+ });
766
+ });
767
+ (0, vitest_1.describe)('Volatile Traits Optimization - Backward Compatibility', () => {
768
+ (0, vitest_1.afterEach)(() => {
769
+ vitest_1.vi.resetModules();
770
+ });
771
+ (0, vitest_1.it)('should maintain isAddressesStale=true when either IP or non-IP addresses are stale', () => {
772
+ const cachedIdentity = {
773
+ identityId: 'test-id',
774
+ traits: {
775
+ addresses: [{ city: 'OldCity', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
776
+ },
777
+ };
778
+ const incomingIdentity = {
779
+ identityId: 'test-id',
780
+ traits: {
781
+ addresses: [{ city: 'NewCity', s: at_tracking_event_types_1.ADDRESS_INFO_SOURCE.IP_ADDRESS }],
782
+ },
783
+ };
784
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
785
+ (0, vitest_1.expect)(result.isAddressesStale).toBe(true);
786
+ (0, vitest_1.expect)(result.isIpAddressesStale).toBe(true);
787
+ (0, vitest_1.expect)(result.isNonIpAddressesStale).toBe(false);
788
+ });
789
+ (0, vitest_1.it)('should include all stale trait tracker fields', () => {
790
+ const cachedIdentity = {
791
+ identityId: 'test-id',
792
+ traits: {},
793
+ };
794
+ const incomingIdentity = {
795
+ identityId: 'test-id',
796
+ traits: {},
797
+ };
798
+ const result = (0, at_shared_utils_1.isIdentityCacheStale)(cachedIdentity, incomingIdentity);
799
+ (0, vitest_1.expect)(result).toHaveProperty('cachedTraits');
800
+ (0, vitest_1.expect)(result).toHaveProperty('incomingTraits');
801
+ (0, vitest_1.expect)(result).toHaveProperty('isIdentityIdStale');
802
+ (0, vitest_1.expect)(result).toHaveProperty('isUserIdsStale');
803
+ (0, vitest_1.expect)(result).toHaveProperty('isIdsStale');
804
+ (0, vitest_1.expect)(result).toHaveProperty('isEmailsStale');
805
+ (0, vitest_1.expect)(result).toHaveProperty('isPhonesStale');
806
+ (0, vitest_1.expect)(result).toHaveProperty('isShopifyYIdsStale');
807
+ (0, vitest_1.expect)(result).toHaveProperty('isGendersStale');
808
+ (0, vitest_1.expect)(result).toHaveProperty('isDobsStale');
809
+ (0, vitest_1.expect)(result).toHaveProperty('isAddressesStale');
810
+ (0, vitest_1.expect)(result).toHaveProperty('isIpAddressesStale');
811
+ (0, vitest_1.expect)(result).toHaveProperty('isNonIpAddressesStale');
812
+ (0, vitest_1.expect)(result).toHaveProperty('isClickInfosStale');
813
+ (0, vitest_1.expect)(result).toHaveProperty('isIpAddressStale');
814
+ (0, vitest_1.expect)(result).toHaveProperty('isUserAgentStale');
815
+ (0, vitest_1.expect)(result).toHaveProperty('isThirdPartyContactsStale');
816
+ (0, vitest_1.expect)(result).toHaveProperty('isCacheStale');
817
+ (0, vitest_1.expect)(result).toHaveProperty('staleTier');
818
+ });
819
+ });
819
820
  //# sourceMappingURL=volatile-traits-optimization.spec.js.map