@adtrackify/at-service-common 3.19.23 → 3.19.25

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 (747) hide show
  1. package/dist/cjs/__tests__/clients/acuity-client.spec.d.ts +1 -1
  2. package/dist/cjs/__tests__/clients/acuity-client.spec.js +43 -43
  3. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.d.ts +1 -1
  4. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js +354 -354
  5. package/dist/cjs/__tests__/clients/dynamodb-client.spec.d.ts +1 -1
  6. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js +194 -194
  7. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
  8. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +931 -931
  9. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -1
  10. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js +563 -563
  11. package/dist/cjs/__tests__/clients/sqs-client.spec.d.ts +1 -1
  12. package/dist/cjs/__tests__/clients/sqs-client.spec.js +191 -191
  13. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
  14. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +1357 -1357
  15. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -1
  16. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +68 -68
  17. package/dist/cjs/__tests__/db/destinations-db-service.spec.d.ts +1 -1
  18. package/dist/cjs/__tests__/db/destinations-db-service.spec.js +125 -125
  19. package/dist/cjs/__tests__/db/products-db-service.spec.d.ts +1 -0
  20. package/dist/cjs/__tests__/db/products-db-service.spec.js +90 -0
  21. package/dist/cjs/__tests__/db/products-db-service.spec.js.map +1 -0
  22. package/dist/cjs/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  23. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +89 -89
  24. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.d.ts +1 -1
  25. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js +104 -104
  26. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.d.ts +1 -1
  27. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js +95 -95
  28. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.d.ts +1 -1
  29. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js +76 -76
  30. package/dist/cjs/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  31. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +220 -220
  32. package/dist/cjs/__tests__/helpers/acuity-helper.spec.d.ts +1 -1
  33. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js +69 -69
  34. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
  35. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +82 -82
  36. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  37. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +674 -674
  38. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.d.ts +1 -1
  39. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +1140 -1140
  40. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  41. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +588 -588
  42. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
  43. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +584 -584
  44. package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  45. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +16 -16
  46. package/dist/cjs/__tests__/libs/contacts.spec.d.ts +1 -1
  47. package/dist/cjs/__tests__/libs/contacts.spec.js +294 -294
  48. package/dist/cjs/__tests__/libs/currency.spec.d.ts +1 -1
  49. package/dist/cjs/__tests__/libs/currency.spec.js +220 -220
  50. package/dist/cjs/__tests__/libs/dates.spec.d.ts +1 -1
  51. package/dist/cjs/__tests__/libs/dates.spec.js +130 -130
  52. package/dist/cjs/__tests__/libs/domain.spec.d.ts +1 -1
  53. package/dist/cjs/__tests__/libs/domain.spec.js +107 -107
  54. package/dist/cjs/__tests__/libs/numbers.spec.d.ts +1 -1
  55. package/dist/cjs/__tests__/libs/numbers.spec.js +261 -261
  56. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  57. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +33 -33
  58. package/dist/cjs/__tests__/services/acuity-api-service.spec.d.ts +1 -1
  59. package/dist/cjs/__tests__/services/acuity-api-service.spec.js +71 -71
  60. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.d.ts +1 -0
  61. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js +24 -0
  62. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -0
  63. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.d.ts +1 -0
  64. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js +3320 -0
  65. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -0
  66. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.d.ts +1 -0
  67. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js +115 -0
  68. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js.map +1 -0
  69. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.d.ts +1 -0
  70. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js +469 -0
  71. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js.map +1 -0
  72. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.d.ts +1 -0
  73. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +207 -0
  74. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -0
  75. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts +1 -0
  76. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js +35 -0
  77. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +1 -0
  78. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -1
  79. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js +93 -93
  80. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -1
  81. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js +57 -57
  82. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  83. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +35 -35
  84. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
  85. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js +181 -181
  86. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
  87. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js +69 -69
  88. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -1
  89. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js +139 -139
  90. package/dist/cjs/clients/generic/cognito-client.d.ts +23 -23
  91. package/dist/cjs/clients/generic/cognito-client.js +209 -209
  92. package/dist/cjs/clients/generic/dynamodb-client.d.ts +20 -20
  93. package/dist/cjs/clients/generic/dynamodb-client.js +235 -235
  94. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  95. package/dist/cjs/clients/generic/eventbridge-client.js +51 -51
  96. package/dist/cjs/clients/generic/http-client.d.ts +14 -14
  97. package/dist/cjs/clients/generic/http-client.js +61 -61
  98. package/dist/cjs/clients/generic/index.d.ts +13 -13
  99. package/dist/cjs/clients/generic/index.js +29 -29
  100. package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
  101. package/dist/cjs/clients/generic/lambda-invoke-client.js +39 -39
  102. package/dist/cjs/clients/generic/location-client.d.ts +8 -8
  103. package/dist/cjs/clients/generic/location-client.js +31 -31
  104. package/dist/cjs/clients/generic/redis-client.d.ts +33 -33
  105. package/dist/cjs/clients/generic/redis-client.js +191 -191
  106. package/dist/cjs/clients/generic/s3-client.d.ts +23 -23
  107. package/dist/cjs/clients/generic/s3-client.js +216 -216
  108. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +14 -14
  109. package/dist/cjs/clients/generic/singlestore-db-client.js +67 -67
  110. package/dist/cjs/clients/generic/sqs-bundled-client.d.ts +15 -15
  111. package/dist/cjs/clients/generic/sqs-bundled-client.js +311 -311
  112. package/dist/cjs/clients/generic/sqs-bundled-client.types.d.ts +53 -53
  113. package/dist/cjs/clients/generic/sqs-bundled-client.types.js +17 -17
  114. package/dist/cjs/clients/generic/sqs-client.d.ts +53 -53
  115. package/dist/cjs/clients/generic/sqs-client.js +285 -285
  116. package/dist/cjs/clients/generic/sqs-unbundle.d.ts +32 -32
  117. package/dist/cjs/clients/generic/sqs-unbundle.js +144 -144
  118. package/dist/cjs/clients/index.d.ts +3 -3
  119. package/dist/cjs/clients/index.js +19 -19
  120. package/dist/cjs/clients/internal-api/accounts-client.d.ts +91 -91
  121. package/dist/cjs/clients/internal-api/accounts-client.js +129 -129
  122. package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +26 -26
  123. package/dist/cjs/clients/internal-api/cache-lambda-client.js +89 -89
  124. package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
  125. package/dist/cjs/clients/internal-api/db-management-client.js +36 -36
  126. package/dist/cjs/clients/internal-api/destinations-client.d.ts +34 -34
  127. package/dist/cjs/clients/internal-api/destinations-client.js +79 -79
  128. package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
  129. package/dist/cjs/clients/internal-api/event-collector-client.js +36 -36
  130. package/dist/cjs/clients/internal-api/identity-client.d.ts +31 -31
  131. package/dist/cjs/clients/internal-api/identity-client.js +91 -91
  132. package/dist/cjs/clients/internal-api/index.d.ts +9 -9
  133. package/dist/cjs/clients/internal-api/index.js +25 -25
  134. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  135. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +81 -81
  136. package/dist/cjs/clients/internal-api/subscriptions-client.d.ts +26 -26
  137. package/dist/cjs/clients/internal-api/subscriptions-client.js +77 -77
  138. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +35 -35
  139. package/dist/cjs/clients/internal-api/users-auth-client.js +110 -110
  140. package/dist/cjs/clients/third-party/acuity-client.d.ts +10 -10
  141. package/dist/cjs/clients/third-party/acuity-client.js +40 -40
  142. package/dist/cjs/clients/third-party/emailable-client.d.ts +7 -7
  143. package/dist/cjs/clients/third-party/emailable-client.js +25 -25
  144. package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  145. package/dist/cjs/clients/third-party/exchange-rate-api-client.js +19 -19
  146. package/dist/cjs/clients/third-party/index.d.ts +5 -5
  147. package/dist/cjs/clients/third-party/index.js +21 -21
  148. package/dist/cjs/clients/third-party/loops-client.d.ts +10 -10
  149. package/dist/cjs/clients/third-party/loops-client.js +30 -30
  150. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  151. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.js +4 -4
  152. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  153. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.js +5 -5
  154. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
  155. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js +161 -161
  156. package/dist/cjs/clients/third-party/shopify-client.d.ts +29 -29
  157. package/dist/cjs/clients/third-party/shopify-client.js +146 -146
  158. package/dist/cjs/constants/index.d.ts +1 -1
  159. package/dist/cjs/constants/index.js +17 -17
  160. package/dist/cjs/constants/sqs.d.ts +20 -20
  161. package/dist/cjs/constants/sqs.js +26 -26
  162. package/dist/cjs/helpers/account-users-helper.d.ts +2 -2
  163. package/dist/cjs/helpers/account-users-helper.js +22 -22
  164. package/dist/cjs/helpers/acuity-helper.d.ts +4 -4
  165. package/dist/cjs/helpers/acuity-helper.js +56 -56
  166. package/dist/cjs/helpers/api-key-auth-helper.d.ts +9 -9
  167. package/dist/cjs/helpers/api-key-auth-helper.js +40 -40
  168. package/dist/cjs/helpers/api-key-authorizer-helper.d.ts +36 -36
  169. package/dist/cjs/helpers/api-key-authorizer-helper.js +87 -87
  170. package/dist/cjs/helpers/identity-cache-helper.d.ts +21 -21
  171. package/dist/cjs/helpers/identity-cache-helper.js +157 -157
  172. package/dist/cjs/helpers/index.d.ts +10 -10
  173. package/dist/cjs/helpers/index.js +26 -26
  174. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  175. package/dist/cjs/helpers/input-validation-helper.js +22 -22
  176. package/dist/cjs/helpers/logging-helper.d.ts +16 -16
  177. package/dist/cjs/helpers/logging-helper.js +84 -84
  178. package/dist/cjs/helpers/response-helper.d.ts +18 -18
  179. package/dist/cjs/helpers/response-helper.js +43 -43
  180. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  181. package/dist/cjs/helpers/shopify-helper.js +26 -26
  182. package/dist/cjs/helpers/sqs-utils.d.ts +6 -6
  183. package/dist/cjs/helpers/sqs-utils.js +14 -14
  184. package/dist/cjs/index.d.ts +7 -7
  185. package/dist/cjs/index.js +23 -23
  186. package/dist/cjs/libs/api-router/index.d.ts +2 -2
  187. package/dist/cjs/libs/api-router/index.js +18 -18
  188. package/dist/cjs/libs/api-router/public-api-router.d.ts +3 -3
  189. package/dist/cjs/libs/api-router/public-api-router.js +36 -36
  190. package/dist/cjs/libs/api-router/route-matcher.d.ts +21 -21
  191. package/dist/cjs/libs/api-router/route-matcher.js +36 -36
  192. package/dist/cjs/libs/click-id-parser.d.ts +23 -23
  193. package/dist/cjs/libs/click-id-parser.js +49 -49
  194. package/dist/cjs/libs/compression.d.ts +2 -2
  195. package/dist/cjs/libs/compression.js +33 -33
  196. package/dist/cjs/libs/contacts.d.ts +7 -7
  197. package/dist/cjs/libs/contacts.js +152 -152
  198. package/dist/cjs/libs/cookie.d.ts +17 -17
  199. package/dist/cjs/libs/cookie.js +76 -76
  200. package/dist/cjs/libs/crypto.d.ts +4 -4
  201. package/dist/cjs/libs/crypto.js +25 -25
  202. package/dist/cjs/libs/csv.d.ts +2 -2
  203. package/dist/cjs/libs/csv.js +35 -35
  204. package/dist/cjs/libs/currency.d.ts +1 -1
  205. package/dist/cjs/libs/currency.js +29 -29
  206. package/dist/cjs/libs/dates.d.ts +12 -12
  207. package/dist/cjs/libs/dates.js +96 -96
  208. package/dist/cjs/libs/domain.d.ts +2 -2
  209. package/dist/cjs/libs/domain.js +38 -38
  210. package/dist/cjs/libs/emails.d.ts +8 -8
  211. package/dist/cjs/libs/emails.js +154 -154
  212. package/dist/cjs/libs/http-error.d.ts +21 -21
  213. package/dist/cjs/libs/http-error.js +63 -63
  214. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  215. package/dist/cjs/libs/http-status-codes.js +62 -62
  216. package/dist/cjs/libs/index.d.ts +19 -19
  217. package/dist/cjs/libs/index.js +35 -35
  218. package/dist/cjs/libs/numbers.d.ts +1 -1
  219. package/dist/cjs/libs/numbers.js +15 -15
  220. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  221. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  222. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  223. package/dist/cjs/libs/referrer-parser/referrer-data.js +3307 -3307
  224. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  225. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +131 -131
  226. package/dist/cjs/libs/strings.d.ts +3 -3
  227. package/dist/cjs/libs/strings.js +46 -46
  228. package/dist/cjs/libs/traits.d.ts +6 -6
  229. package/dist/cjs/libs/traits.js +65 -65
  230. package/dist/cjs/libs/url.d.ts +1 -1
  231. package/dist/cjs/libs/url.js +13 -13
  232. package/dist/cjs/services/acuity-api-service.d.ts +9 -9
  233. package/dist/cjs/services/acuity-api-service.js +73 -73
  234. package/dist/cjs/services/cache/generic-cached-object.d.ts +5 -5
  235. package/dist/cjs/services/cache/generic-cached-object.js +2 -2
  236. package/dist/cjs/services/cache/index.d.ts +1 -1
  237. package/dist/cjs/services/cache/index.js +17 -17
  238. package/dist/cjs/services/cache/product-cache-service.d.ts +21 -21
  239. package/dist/cjs/services/cache/product-cache-service.js +76 -76
  240. package/dist/cjs/services/cost/cost-calculation-types.d.ts +69 -0
  241. package/dist/cjs/services/cost/cost-calculation-types.js +20 -0
  242. package/dist/cjs/services/cost/cost-calculation-types.js.map +1 -0
  243. package/dist/cjs/services/cost/cost-calculator-service.d.ts +24 -0
  244. package/dist/cjs/services/cost/cost-calculator-service.js +457 -0
  245. package/dist/cjs/services/cost/cost-calculator-service.js.map +1 -0
  246. package/dist/cjs/services/cost/cost-currency-service.d.ts +6 -0
  247. package/dist/cjs/services/cost/cost-currency-service.js +88 -0
  248. package/dist/cjs/services/cost/cost-currency-service.js.map +1 -0
  249. package/dist/cjs/services/cost/cost-filter-service.d.ts +10 -0
  250. package/dist/cjs/services/cost/cost-filter-service.js +122 -0
  251. package/dist/cjs/services/cost/cost-filter-service.js.map +1 -0
  252. package/dist/cjs/services/cost/index.d.ts +5 -0
  253. package/dist/cjs/services/cost/index.js +22 -0
  254. package/dist/cjs/services/cost/index.js.map +1 -0
  255. package/dist/cjs/services/cost/order-cost/index.d.ts +2 -0
  256. package/dist/cjs/services/cost/order-cost/index.js +19 -0
  257. package/dist/cjs/services/cost/order-cost/index.js.map +1 -0
  258. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.d.ts +23 -0
  259. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js +362 -0
  260. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js.map +1 -0
  261. package/dist/cjs/services/cost/order-cost/order-cost-resolution-types.d.ts +37 -0
  262. package/dist/cjs/services/cost/order-cost/order-cost-resolution-types.js +3 -0
  263. package/dist/cjs/services/cost/order-cost/order-cost-resolution-types.js.map +1 -0
  264. package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +12 -11
  265. package/dist/cjs/services/currency-exchange-rate-lookup-service.js +94 -66
  266. package/dist/cjs/services/currency-exchange-rate-lookup-service.js.map +1 -1
  267. package/dist/cjs/services/db/accounts-db-service.d.ts +9 -9
  268. package/dist/cjs/services/db/accounts-db-service.js +33 -33
  269. package/dist/cjs/services/db/api-keys-db-service.d.ts +10 -10
  270. package/dist/cjs/services/db/api-keys-db-service.js +36 -36
  271. package/dist/cjs/services/db/contact-enrichments-db-service.d.ts +15 -15
  272. package/dist/cjs/services/db/contact-enrichments-db-service.js +94 -94
  273. package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  274. package/dist/cjs/services/db/currency-exchange-rates-db-service.js +39 -39
  275. package/dist/cjs/services/db/custom-measures-db-service.d.ts +14 -14
  276. package/dist/cjs/services/db/custom-measures-db-service.js +48 -48
  277. package/dist/cjs/services/db/destinations-db-service.d.ts +13 -13
  278. package/dist/cjs/services/db/destinations-db-service.js +74 -74
  279. package/dist/cjs/services/db/identity-cache-db-service.d.ts +28 -28
  280. package/dist/cjs/services/db/identity-cache-db-service.js +320 -320
  281. package/dist/cjs/services/db/identity-cache-dynamodb-service.d.ts +38 -34
  282. package/dist/cjs/services/db/identity-cache-dynamodb-service.js +439 -433
  283. package/dist/cjs/services/db/identity-cache-dynamodb-service.js.map +1 -1
  284. package/dist/cjs/services/db/index.d.ts +19 -17
  285. package/dist/cjs/services/db/index.js +35 -33
  286. package/dist/cjs/services/db/index.js.map +1 -1
  287. package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
  288. package/dist/cjs/services/db/log-events-db-service.js +181 -181
  289. package/dist/cjs/services/db/pixels-db-service.d.ts +8 -8
  290. package/dist/cjs/services/db/pixels-db-service.js +35 -35
  291. package/dist/cjs/services/db/products-db-service-types.d.ts +10 -0
  292. package/dist/cjs/services/db/products-db-service-types.js +3 -0
  293. package/dist/cjs/services/db/products-db-service-types.js.map +1 -0
  294. package/dist/cjs/services/db/products-db-service.d.ts +19 -0
  295. package/dist/cjs/services/db/products-db-service.js +282 -0
  296. package/dist/cjs/services/db/products-db-service.js.map +1 -0
  297. package/dist/cjs/services/db/purchasable-contacts-db-service.d.ts +9 -9
  298. package/dist/cjs/services/db/purchasable-contacts-db-service.js +43 -43
  299. package/dist/cjs/services/db/purchased-contacts/index.d.ts +2 -2
  300. package/dist/cjs/services/db/purchased-contacts/index.js +18 -18
  301. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.d.ts +18 -18
  302. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js +152 -152
  303. package/dist/cjs/services/db/purchased-contacts/types.d.ts +11 -11
  304. package/dist/cjs/services/db/purchased-contacts/types.js +2 -2
  305. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +10 -10
  306. package/dist/cjs/services/db/shopify-app-installs-db-service.js +52 -52
  307. package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +16 -16
  308. package/dist/cjs/services/db/shopify-products-cache-db-service.js +73 -73
  309. package/dist/cjs/services/db/subscriptions-db-service.d.ts +11 -11
  310. package/dist/cjs/services/db/subscriptions-db-service.js +38 -38
  311. package/dist/cjs/services/db/tracking-events-db-service.d.ts +21 -21
  312. package/dist/cjs/services/db/tracking-events-db-service.js +188 -188
  313. package/dist/cjs/services/db/user-accounts-db-service.d.ts +7 -7
  314. package/dist/cjs/services/db/user-accounts-db-service.js +17 -17
  315. package/dist/cjs/services/email-verification/contact-email-verification-service.d.ts +7 -7
  316. package/dist/cjs/services/email-verification/contact-email-verification-service.js +101 -101
  317. package/dist/cjs/services/email-verification/email-verification-service.d.ts +19 -19
  318. package/dist/cjs/services/email-verification/email-verification-service.js +131 -131
  319. package/dist/cjs/services/email-verification/index.d.ts +2 -2
  320. package/dist/cjs/services/email-verification/index.js +18 -18
  321. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  322. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  323. package/dist/cjs/services/events/index.d.ts +3 -3
  324. package/dist/cjs/services/events/index.js +19 -19
  325. package/dist/cjs/services/events/log-event-service.d.ts +19 -19
  326. package/dist/cjs/services/events/log-event-service.js +77 -77
  327. package/dist/cjs/services/events/metric-event-service.d.ts +9 -9
  328. package/dist/cjs/services/events/metric-event-service.js +49 -49
  329. package/dist/cjs/services/events/tracking-event-sqs-service.d.ts +8 -8
  330. package/dist/cjs/services/events/tracking-event-sqs-service.js +34 -34
  331. package/dist/cjs/services/generic-cache-service.d.ts +7 -7
  332. package/dist/cjs/services/generic-cache-service.js +33 -33
  333. package/dist/cjs/services/index.d.ts +11 -10
  334. package/dist/cjs/services/index.js +27 -26
  335. package/dist/cjs/services/index.js.map +1 -1
  336. package/dist/cjs/services/ipdata-lookup-service.d.ts +20 -20
  337. package/dist/cjs/services/ipdata-lookup-service.js +112 -112
  338. package/dist/cjs/services/shopify/index.d.ts +2 -2
  339. package/dist/cjs/services/shopify/index.js +18 -18
  340. package/dist/cjs/services/shopify/products/index.d.ts +1 -1
  341. package/dist/cjs/services/shopify/products/index.js +17 -17
  342. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  343. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js +112 -112
  344. package/dist/cjs/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  345. package/dist/cjs/services/shopify/shopify-graphql-transformer.js +141 -141
  346. package/dist/cjs/types/acuity-types.d.ts +74 -74
  347. package/dist/cjs/types/acuity-types.js +2 -2
  348. package/dist/cjs/types/api-response.d.ts +6 -6
  349. package/dist/cjs/types/api-response.js +2 -2
  350. package/dist/cjs/types/index.d.ts +4 -4
  351. package/dist/cjs/types/index.js +33 -33
  352. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  353. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  354. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  355. package/dist/cjs/types/internal-events/index.js +17 -17
  356. package/dist/cjs/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  357. package/dist/cjs/types/shopify-graphql-types/admin.generated.js +2 -2
  358. package/dist/cjs/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  359. package/dist/cjs/types/shopify-graphql-types/admin.types.js +5311 -5311
  360. package/dist/cjs/types/shopify-graphql-types/index.d.ts +2 -2
  361. package/dist/cjs/types/shopify-graphql-types/index.js +18 -18
  362. package/dist/cjs/types/shopify-rest-types.d.ts +767 -767
  363. package/dist/cjs/types/shopify-rest-types.js +2 -2
  364. package/dist/cjs/utils/compression.d.ts +36 -36
  365. package/dist/cjs/utils/compression.js +198 -198
  366. package/dist/cjs/utils/custom-measure-formula-utils.d.ts +6 -6
  367. package/dist/cjs/utils/custom-measure-formula-utils.js +209 -209
  368. package/dist/cjs/utils/index.d.ts +4 -4
  369. package/dist/cjs/utils/index.js +20 -20
  370. package/dist/cjs/utils/retry-envelope.d.ts +12 -12
  371. package/dist/cjs/utils/retry-envelope.js +28 -28
  372. package/dist/cjs/utils/size.d.ts +2 -2
  373. package/dist/cjs/utils/size.js +49 -49
  374. package/dist/esm/__tests__/clients/acuity-client.spec.d.ts +1 -1
  375. package/dist/esm/__tests__/clients/acuity-client.spec.js +41 -41
  376. package/dist/esm/__tests__/clients/cross-platform-compression.spec.d.ts +1 -1
  377. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js +329 -329
  378. package/dist/esm/__tests__/clients/dynamodb-client.spec.d.ts +1 -1
  379. package/dist/esm/__tests__/clients/dynamodb-client.spec.js +192 -192
  380. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
  381. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +906 -906
  382. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -1
  383. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js +538 -538
  384. package/dist/esm/__tests__/clients/sqs-client.spec.d.ts +1 -1
  385. package/dist/esm/__tests__/clients/sqs-client.spec.js +189 -189
  386. package/dist/esm/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
  387. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +1355 -1355
  388. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -1
  389. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +66 -66
  390. package/dist/esm/__tests__/db/destinations-db-service.spec.d.ts +1 -1
  391. package/dist/esm/__tests__/db/destinations-db-service.spec.js +123 -123
  392. package/dist/esm/__tests__/db/products-db-service.spec.d.ts +1 -0
  393. package/dist/esm/__tests__/db/products-db-service.spec.js +88 -0
  394. package/dist/esm/__tests__/db/products-db-service.spec.js.map +1 -0
  395. package/dist/esm/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  396. package/dist/esm/__tests__/db/shared-read-db-services.spec.js +87 -87
  397. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.d.ts +1 -1
  398. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js +102 -102
  399. package/dist/esm/__tests__/db/subscriptions-db-service.spec.d.ts +1 -1
  400. package/dist/esm/__tests__/db/subscriptions-db-service.spec.js +93 -93
  401. package/dist/esm/__tests__/db/user-accounts-db-service.spec.d.ts +1 -1
  402. package/dist/esm/__tests__/db/user-accounts-db-service.spec.js +74 -74
  403. package/dist/esm/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  404. package/dist/esm/__tests__/helpers/account-users-helper.spec.js +218 -218
  405. package/dist/esm/__tests__/helpers/acuity-helper.spec.d.ts +1 -1
  406. package/dist/esm/__tests__/helpers/acuity-helper.spec.js +67 -67
  407. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
  408. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +80 -80
  409. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  410. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +672 -672
  411. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.d.ts +1 -1
  412. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +1138 -1138
  413. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  414. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +586 -586
  415. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
  416. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +582 -582
  417. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  418. package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
  419. package/dist/esm/__tests__/libs/contacts.spec.d.ts +1 -1
  420. package/dist/esm/__tests__/libs/contacts.spec.js +292 -292
  421. package/dist/esm/__tests__/libs/currency.spec.d.ts +1 -1
  422. package/dist/esm/__tests__/libs/currency.spec.js +218 -218
  423. package/dist/esm/__tests__/libs/dates.spec.d.ts +1 -1
  424. package/dist/esm/__tests__/libs/dates.spec.js +128 -128
  425. package/dist/esm/__tests__/libs/domain.spec.d.ts +1 -1
  426. package/dist/esm/__tests__/libs/domain.spec.js +105 -105
  427. package/dist/esm/__tests__/libs/numbers.spec.d.ts +1 -1
  428. package/dist/esm/__tests__/libs/numbers.spec.js +259 -259
  429. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  430. package/dist/esm/__tests__/s3-client/s3-client.spec.js +31 -31
  431. package/dist/esm/__tests__/services/acuity-api-service.spec.d.ts +1 -1
  432. package/dist/esm/__tests__/services/acuity-api-service.spec.js +69 -69
  433. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.d.ts +1 -0
  434. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js +22 -0
  435. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -0
  436. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.d.ts +1 -0
  437. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js +3318 -0
  438. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -0
  439. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.d.ts +1 -0
  440. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js +113 -0
  441. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js.map +1 -0
  442. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.d.ts +1 -0
  443. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js +467 -0
  444. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js.map +1 -0
  445. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.d.ts +1 -0
  446. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +205 -0
  447. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -0
  448. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts +1 -0
  449. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js +33 -0
  450. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +1 -0
  451. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -1
  452. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js +91 -91
  453. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -1
  454. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js +55 -55
  455. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  456. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +33 -33
  457. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
  458. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js +156 -156
  459. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
  460. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js +67 -67
  461. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -1
  462. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js +137 -137
  463. package/dist/esm/clients/generic/cognito-client.d.ts +23 -23
  464. package/dist/esm/clients/generic/cognito-client.js +204 -204
  465. package/dist/esm/clients/generic/dynamodb-client.d.ts +20 -20
  466. package/dist/esm/clients/generic/dynamodb-client.js +231 -231
  467. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  468. package/dist/esm/clients/generic/eventbridge-client.js +47 -47
  469. package/dist/esm/clients/generic/http-client.d.ts +14 -14
  470. package/dist/esm/clients/generic/http-client.js +53 -53
  471. package/dist/esm/clients/generic/index.d.ts +13 -13
  472. package/dist/esm/clients/generic/index.js +13 -13
  473. package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
  474. package/dist/esm/clients/generic/lambda-invoke-client.js +35 -35
  475. package/dist/esm/clients/generic/location-client.d.ts +8 -8
  476. package/dist/esm/clients/generic/location-client.js +27 -27
  477. package/dist/esm/clients/generic/redis-client.d.ts +33 -33
  478. package/dist/esm/clients/generic/redis-client.js +184 -184
  479. package/dist/esm/clients/generic/s3-client.d.ts +23 -23
  480. package/dist/esm/clients/generic/s3-client.js +209 -209
  481. package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
  482. package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
  483. package/dist/esm/clients/generic/sqs-bundled-client.d.ts +15 -15
  484. package/dist/esm/clients/generic/sqs-bundled-client.js +307 -307
  485. package/dist/esm/clients/generic/sqs-bundled-client.types.d.ts +53 -53
  486. package/dist/esm/clients/generic/sqs-bundled-client.types.js +14 -14
  487. package/dist/esm/clients/generic/sqs-client.d.ts +53 -53
  488. package/dist/esm/clients/generic/sqs-client.js +281 -281
  489. package/dist/esm/clients/generic/sqs-unbundle.d.ts +32 -32
  490. package/dist/esm/clients/generic/sqs-unbundle.js +137 -137
  491. package/dist/esm/clients/index.d.ts +3 -3
  492. package/dist/esm/clients/index.js +3 -3
  493. package/dist/esm/clients/internal-api/accounts-client.d.ts +91 -91
  494. package/dist/esm/clients/internal-api/accounts-client.js +125 -125
  495. package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +26 -26
  496. package/dist/esm/clients/internal-api/cache-lambda-client.js +85 -85
  497. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  498. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  499. package/dist/esm/clients/internal-api/destinations-client.d.ts +34 -34
  500. package/dist/esm/clients/internal-api/destinations-client.js +75 -75
  501. package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
  502. package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
  503. package/dist/esm/clients/internal-api/identity-client.d.ts +31 -31
  504. package/dist/esm/clients/internal-api/identity-client.js +87 -87
  505. package/dist/esm/clients/internal-api/index.d.ts +9 -9
  506. package/dist/esm/clients/internal-api/index.js +9 -9
  507. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  508. package/dist/esm/clients/internal-api/shopify-app-install-client.js +77 -77
  509. package/dist/esm/clients/internal-api/subscriptions-client.d.ts +26 -26
  510. package/dist/esm/clients/internal-api/subscriptions-client.js +73 -73
  511. package/dist/esm/clients/internal-api/users-auth-client.d.ts +35 -35
  512. package/dist/esm/clients/internal-api/users-auth-client.js +106 -106
  513. package/dist/esm/clients/third-party/acuity-client.d.ts +10 -10
  514. package/dist/esm/clients/third-party/acuity-client.js +36 -36
  515. package/dist/esm/clients/third-party/emailable-client.d.ts +7 -7
  516. package/dist/esm/clients/third-party/emailable-client.js +21 -21
  517. package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  518. package/dist/esm/clients/third-party/exchange-rate-api-client.js +15 -15
  519. package/dist/esm/clients/third-party/index.d.ts +5 -5
  520. package/dist/esm/clients/third-party/index.js +5 -5
  521. package/dist/esm/clients/third-party/loops-client.d.ts +10 -10
  522. package/dist/esm/clients/third-party/loops-client.js +26 -26
  523. package/dist/esm/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  524. package/dist/esm/clients/third-party/shopify/graphql-order-queries.js +1 -1
  525. package/dist/esm/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  526. package/dist/esm/clients/third-party/shopify/graphql-product-queries.js +2 -2
  527. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
  528. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +157 -157
  529. package/dist/esm/clients/third-party/shopify-client.d.ts +29 -29
  530. package/dist/esm/clients/third-party/shopify-client.js +142 -142
  531. package/dist/esm/constants/index.d.ts +1 -1
  532. package/dist/esm/constants/index.js +1 -1
  533. package/dist/esm/constants/sqs.d.ts +20 -20
  534. package/dist/esm/constants/sqs.js +22 -22
  535. package/dist/esm/helpers/account-users-helper.d.ts +2 -2
  536. package/dist/esm/helpers/account-users-helper.js +18 -18
  537. package/dist/esm/helpers/acuity-helper.d.ts +4 -4
  538. package/dist/esm/helpers/acuity-helper.js +51 -51
  539. package/dist/esm/helpers/api-key-auth-helper.d.ts +9 -9
  540. package/dist/esm/helpers/api-key-auth-helper.js +35 -35
  541. package/dist/esm/helpers/api-key-authorizer-helper.d.ts +36 -36
  542. package/dist/esm/helpers/api-key-authorizer-helper.js +83 -83
  543. package/dist/esm/helpers/identity-cache-helper.d.ts +21 -21
  544. package/dist/esm/helpers/identity-cache-helper.js +152 -152
  545. package/dist/esm/helpers/index.d.ts +10 -10
  546. package/dist/esm/helpers/index.js +10 -10
  547. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  548. package/dist/esm/helpers/input-validation-helper.js +18 -18
  549. package/dist/esm/helpers/logging-helper.d.ts +16 -16
  550. package/dist/esm/helpers/logging-helper.js +56 -56
  551. package/dist/esm/helpers/response-helper.d.ts +18 -18
  552. package/dist/esm/helpers/response-helper.js +37 -37
  553. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  554. package/dist/esm/helpers/shopify-helper.js +21 -21
  555. package/dist/esm/helpers/sqs-utils.d.ts +6 -6
  556. package/dist/esm/helpers/sqs-utils.js +9 -9
  557. package/dist/esm/index.d.ts +7 -7
  558. package/dist/esm/index.js +7 -7
  559. package/dist/esm/libs/api-router/index.d.ts +2 -2
  560. package/dist/esm/libs/api-router/index.js +2 -2
  561. package/dist/esm/libs/api-router/public-api-router.d.ts +3 -3
  562. package/dist/esm/libs/api-router/public-api-router.js +32 -32
  563. package/dist/esm/libs/api-router/route-matcher.d.ts +21 -21
  564. package/dist/esm/libs/api-router/route-matcher.js +30 -30
  565. package/dist/esm/libs/click-id-parser.d.ts +23 -23
  566. package/dist/esm/libs/click-id-parser.js +45 -45
  567. package/dist/esm/libs/compression.d.ts +2 -2
  568. package/dist/esm/libs/compression.js +25 -25
  569. package/dist/esm/libs/contacts.d.ts +7 -7
  570. package/dist/esm/libs/contacts.js +143 -143
  571. package/dist/esm/libs/cookie.d.ts +17 -17
  572. package/dist/esm/libs/cookie.js +70 -70
  573. package/dist/esm/libs/crypto.d.ts +4 -4
  574. package/dist/esm/libs/crypto.js +15 -15
  575. package/dist/esm/libs/csv.d.ts +2 -2
  576. package/dist/esm/libs/csv.js +30 -30
  577. package/dist/esm/libs/currency.d.ts +1 -1
  578. package/dist/esm/libs/currency.js +22 -22
  579. package/dist/esm/libs/dates.d.ts +12 -12
  580. package/dist/esm/libs/dates.js +83 -83
  581. package/dist/esm/libs/domain.d.ts +2 -2
  582. package/dist/esm/libs/domain.js +33 -33
  583. package/dist/esm/libs/emails.d.ts +8 -8
  584. package/dist/esm/libs/emails.js +146 -146
  585. package/dist/esm/libs/http-error.d.ts +21 -21
  586. package/dist/esm/libs/http-error.js +59 -59
  587. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  588. package/dist/esm/libs/http-status-codes.js +59 -59
  589. package/dist/esm/libs/index.d.ts +19 -19
  590. package/dist/esm/libs/index.js +19 -19
  591. package/dist/esm/libs/numbers.d.ts +1 -1
  592. package/dist/esm/libs/numbers.js +11 -11
  593. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  594. package/dist/esm/libs/referrer-parser/index.js +2 -2
  595. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  596. package/dist/esm/libs/referrer-parser/referrer-data.js +3304 -3304
  597. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  598. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +124 -124
  599. package/dist/esm/libs/strings.d.ts +3 -3
  600. package/dist/esm/libs/strings.js +40 -40
  601. package/dist/esm/libs/traits.d.ts +6 -6
  602. package/dist/esm/libs/traits.js +54 -54
  603. package/dist/esm/libs/url.d.ts +1 -1
  604. package/dist/esm/libs/url.js +9 -9
  605. package/dist/esm/services/acuity-api-service.d.ts +9 -9
  606. package/dist/esm/services/acuity-api-service.js +69 -69
  607. package/dist/esm/services/cache/generic-cached-object.d.ts +5 -5
  608. package/dist/esm/services/cache/generic-cached-object.js +1 -1
  609. package/dist/esm/services/cache/index.d.ts +1 -1
  610. package/dist/esm/services/cache/index.js +1 -1
  611. package/dist/esm/services/cache/product-cache-service.d.ts +21 -21
  612. package/dist/esm/services/cache/product-cache-service.js +68 -68
  613. package/dist/esm/services/cost/cost-calculation-types.d.ts +69 -0
  614. package/dist/esm/services/cost/cost-calculation-types.js +16 -0
  615. package/dist/esm/services/cost/cost-calculation-types.js.map +1 -0
  616. package/dist/esm/services/cost/cost-calculator-service.d.ts +24 -0
  617. package/dist/esm/services/cost/cost-calculator-service.js +451 -0
  618. package/dist/esm/services/cost/cost-calculator-service.js.map +1 -0
  619. package/dist/esm/services/cost/cost-currency-service.d.ts +6 -0
  620. package/dist/esm/services/cost/cost-currency-service.js +85 -0
  621. package/dist/esm/services/cost/cost-currency-service.js.map +1 -0
  622. package/dist/esm/services/cost/cost-filter-service.d.ts +10 -0
  623. package/dist/esm/services/cost/cost-filter-service.js +119 -0
  624. package/dist/esm/services/cost/cost-filter-service.js.map +1 -0
  625. package/dist/esm/services/cost/index.d.ts +5 -0
  626. package/dist/esm/services/cost/index.js +6 -0
  627. package/dist/esm/services/cost/index.js.map +1 -0
  628. package/dist/esm/services/cost/order-cost/index.d.ts +2 -0
  629. package/dist/esm/services/cost/order-cost/index.js +3 -0
  630. package/dist/esm/services/cost/order-cost/index.js.map +1 -0
  631. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.d.ts +23 -0
  632. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js +356 -0
  633. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js.map +1 -0
  634. package/dist/esm/services/cost/order-cost/order-cost-resolution-types.d.ts +37 -0
  635. package/dist/esm/services/cost/order-cost/order-cost-resolution-types.js +2 -0
  636. package/dist/esm/services/cost/order-cost/order-cost-resolution-types.js.map +1 -0
  637. package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +12 -11
  638. package/dist/esm/services/currency-exchange-rate-lookup-service.js +90 -62
  639. package/dist/esm/services/currency-exchange-rate-lookup-service.js.map +1 -1
  640. package/dist/esm/services/db/accounts-db-service.d.ts +9 -9
  641. package/dist/esm/services/db/accounts-db-service.js +29 -29
  642. package/dist/esm/services/db/api-keys-db-service.d.ts +10 -10
  643. package/dist/esm/services/db/api-keys-db-service.js +32 -32
  644. package/dist/esm/services/db/contact-enrichments-db-service.d.ts +15 -15
  645. package/dist/esm/services/db/contact-enrichments-db-service.js +90 -90
  646. package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  647. package/dist/esm/services/db/currency-exchange-rates-db-service.js +35 -35
  648. package/dist/esm/services/db/custom-measures-db-service.d.ts +14 -14
  649. package/dist/esm/services/db/custom-measures-db-service.js +44 -44
  650. package/dist/esm/services/db/destinations-db-service.d.ts +13 -13
  651. package/dist/esm/services/db/destinations-db-service.js +70 -70
  652. package/dist/esm/services/db/identity-cache-db-service.d.ts +28 -28
  653. package/dist/esm/services/db/identity-cache-db-service.js +313 -313
  654. package/dist/esm/services/db/identity-cache-dynamodb-service.d.ts +38 -34
  655. package/dist/esm/services/db/identity-cache-dynamodb-service.js +432 -426
  656. package/dist/esm/services/db/identity-cache-dynamodb-service.js.map +1 -1
  657. package/dist/esm/services/db/index.d.ts +19 -17
  658. package/dist/esm/services/db/index.js +19 -17
  659. package/dist/esm/services/db/index.js.map +1 -1
  660. package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
  661. package/dist/esm/services/db/log-events-db-service.js +177 -177
  662. package/dist/esm/services/db/pixels-db-service.d.ts +8 -8
  663. package/dist/esm/services/db/pixels-db-service.js +31 -31
  664. package/dist/esm/services/db/products-db-service-types.d.ts +10 -0
  665. package/dist/esm/services/db/products-db-service-types.js +2 -0
  666. package/dist/esm/services/db/products-db-service-types.js.map +1 -0
  667. package/dist/esm/services/db/products-db-service.d.ts +19 -0
  668. package/dist/esm/services/db/products-db-service.js +278 -0
  669. package/dist/esm/services/db/products-db-service.js.map +1 -0
  670. package/dist/esm/services/db/purchasable-contacts-db-service.d.ts +9 -9
  671. package/dist/esm/services/db/purchasable-contacts-db-service.js +39 -39
  672. package/dist/esm/services/db/purchased-contacts/index.d.ts +2 -2
  673. package/dist/esm/services/db/purchased-contacts/index.js +2 -2
  674. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.d.ts +18 -18
  675. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js +148 -148
  676. package/dist/esm/services/db/purchased-contacts/types.d.ts +11 -11
  677. package/dist/esm/services/db/purchased-contacts/types.js +1 -1
  678. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +10 -10
  679. package/dist/esm/services/db/shopify-app-installs-db-service.js +48 -48
  680. package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +16 -16
  681. package/dist/esm/services/db/shopify-products-cache-db-service.js +66 -66
  682. package/dist/esm/services/db/subscriptions-db-service.d.ts +11 -11
  683. package/dist/esm/services/db/subscriptions-db-service.js +34 -34
  684. package/dist/esm/services/db/tracking-events-db-service.d.ts +21 -21
  685. package/dist/esm/services/db/tracking-events-db-service.js +184 -184
  686. package/dist/esm/services/db/user-accounts-db-service.d.ts +7 -7
  687. package/dist/esm/services/db/user-accounts-db-service.js +13 -13
  688. package/dist/esm/services/email-verification/contact-email-verification-service.d.ts +7 -7
  689. package/dist/esm/services/email-verification/contact-email-verification-service.js +97 -97
  690. package/dist/esm/services/email-verification/email-verification-service.d.ts +19 -19
  691. package/dist/esm/services/email-verification/email-verification-service.js +127 -127
  692. package/dist/esm/services/email-verification/index.d.ts +2 -2
  693. package/dist/esm/services/email-verification/index.js +2 -2
  694. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  695. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  696. package/dist/esm/services/events/index.d.ts +3 -3
  697. package/dist/esm/services/events/index.js +3 -3
  698. package/dist/esm/services/events/log-event-service.d.ts +19 -19
  699. package/dist/esm/services/events/log-event-service.js +73 -73
  700. package/dist/esm/services/events/metric-event-service.d.ts +9 -9
  701. package/dist/esm/services/events/metric-event-service.js +45 -45
  702. package/dist/esm/services/events/tracking-event-sqs-service.d.ts +8 -8
  703. package/dist/esm/services/events/tracking-event-sqs-service.js +30 -30
  704. package/dist/esm/services/generic-cache-service.d.ts +7 -7
  705. package/dist/esm/services/generic-cache-service.js +29 -29
  706. package/dist/esm/services/index.d.ts +11 -10
  707. package/dist/esm/services/index.js +11 -10
  708. package/dist/esm/services/index.js.map +1 -1
  709. package/dist/esm/services/ipdata-lookup-service.d.ts +20 -20
  710. package/dist/esm/services/ipdata-lookup-service.js +108 -108
  711. package/dist/esm/services/shopify/index.d.ts +2 -2
  712. package/dist/esm/services/shopify/index.js +2 -2
  713. package/dist/esm/services/shopify/products/index.d.ts +1 -1
  714. package/dist/esm/services/shopify/products/index.js +1 -1
  715. package/dist/esm/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  716. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js +108 -108
  717. package/dist/esm/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  718. package/dist/esm/services/shopify/shopify-graphql-transformer.js +138 -138
  719. package/dist/esm/types/acuity-types.d.ts +74 -74
  720. package/dist/esm/types/acuity-types.js +1 -1
  721. package/dist/esm/types/api-response.d.ts +6 -6
  722. package/dist/esm/types/api-response.js +1 -1
  723. package/dist/esm/types/index.d.ts +4 -4
  724. package/dist/esm/types/index.js +4 -4
  725. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  726. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  727. package/dist/esm/types/internal-events/index.d.ts +1 -1
  728. package/dist/esm/types/internal-events/index.js +1 -1
  729. package/dist/esm/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  730. package/dist/esm/types/shopify-graphql-types/admin.generated.js +1 -1
  731. package/dist/esm/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  732. package/dist/esm/types/shopify-graphql-types/admin.types.js +5299 -5299
  733. package/dist/esm/types/shopify-graphql-types/index.d.ts +2 -2
  734. package/dist/esm/types/shopify-graphql-types/index.js +2 -2
  735. package/dist/esm/types/shopify-rest-types.d.ts +767 -767
  736. package/dist/esm/types/shopify-rest-types.js +1 -1
  737. package/dist/esm/utils/compression.d.ts +36 -36
  738. package/dist/esm/utils/compression.js +187 -187
  739. package/dist/esm/utils/custom-measure-formula-utils.d.ts +6 -6
  740. package/dist/esm/utils/custom-measure-formula-utils.js +201 -201
  741. package/dist/esm/utils/index.d.ts +4 -4
  742. package/dist/esm/utils/index.js +4 -4
  743. package/dist/esm/utils/retry-envelope.d.ts +12 -12
  744. package/dist/esm/utils/retry-envelope.js +22 -22
  745. package/dist/esm/utils/size.d.ts +2 -2
  746. package/dist/esm/utils/size.js +44 -44
  747. package/package.json +134 -134
@@ -1,427 +1,433 @@
1
- import { buildIdentityPk, buildEmailPk, buildIdentityMapPk, buildForcePurgePk, } from '@adtrackify/at-tracking-event-types';
2
- import { mergeIdentityTraits } from '@adtrackify/at-shared-utils';
3
- import fastDeepEqual from 'fast-deep-equal';
4
- import { DateTime } from 'luxon';
5
- import { DynamoDbClient, LambdaInvokeClient } from '../../clients/index.js';
6
- import { Logger } from '../../helpers/index.js';
7
- import { isIdentityCacheStale } from '../../helpers/identity-cache-helper.js';
8
- const TABLE_NAME = process.env.IDENTITY_CACHE_TABLE_V2 ?? '';
9
- const GSI1_NAME = process.env.IDENTITY_CACHE_GSI1 ?? 'gsi1pk-index';
10
- const FORCE_PURGE_TTL_SECONDS = 60 * 60 * 24 * 30;
11
- export class IdentityCacheDynamoDbService {
12
- static lambdaInvokeClient;
13
- static getLambdaInvokeClient() {
14
- if (!this.lambdaInvokeClient) {
15
- this.lambdaInvokeClient = new LambdaInvokeClient();
16
- }
17
- return this.lambdaInvokeClient;
18
- }
19
- static getIdentityWithCaching = async (pixelId, incomingIdentity, identifyPrivateLambdaArn) => {
20
- try {
21
- if (!pixelId || !incomingIdentity) {
22
- Logger.error('getIdentityWithCaching - No pixelId or incomingIdentity', { pixelId, incomingIdentity });
23
- return undefined;
24
- }
25
- const cacheResponse = await this.readFromCache(pixelId, incomingIdentity);
26
- let resolvedIdentity = cacheResponse.resolvedIdentity;
27
- const isCacheStale = cacheResponse.isCacheStale;
28
- const cachedIdentity = cacheResponse.cachedIdentity;
29
- const staleTracker = cacheResponse.staleTracker;
30
- const writeReason = cacheResponse.writeReason;
31
- if (resolvedIdentity && !isCacheStale) {
32
- Logger.debug('identity cache hit', { incomingIdentity });
33
- return resolvedIdentity;
34
- }
35
- const identityForNeptune = resolvedIdentity ?? incomingIdentity;
36
- Logger.debug('identity cache stale - fetching from identity service', {
37
- incomingIdentity,
38
- identityForNeptune,
39
- hasDiscoveredIdentityId: !!resolvedIdentity?.identityId,
40
- });
41
- const neptuneIdentity = await this.resolveFromNeptune(pixelId, identityForNeptune, identifyPrivateLambdaArn);
42
- if (neptuneIdentity) {
43
- resolvedIdentity = neptuneIdentity;
44
- const shouldWrite = !cachedIdentity || !fastDeepEqual(cachedIdentity, neptuneIdentity);
45
- if (shouldWrite) {
46
- const staleTraits = staleTracker ? this.extractStaleTraitNames(staleTracker) : [];
47
- Logger.info('identity cache write', {
48
- pixelId,
49
- identityId: neptuneIdentity.identityId,
50
- writeReason,
51
- staleTraits,
52
- emailCount: neptuneIdentity.traits?.emails?.length ?? 0,
53
- });
54
- await this.writeBackToCache(pixelId, resolvedIdentity);
55
- }
56
- else {
57
- Logger.debug('skipping write-back - Neptune result matches cached data', {
58
- pixelId,
59
- identityId: neptuneIdentity.identityId,
60
- });
61
- }
62
- }
63
- else {
64
- Logger.error('Failed to getIdentity from Neptune', {
65
- pixelId,
66
- incomingIdentity,
67
- identifyPrivateLambdaArn,
68
- });
69
- }
70
- if (!resolvedIdentity) {
71
- Logger.error('No identity found', { pixelId, incomingIdentity });
72
- resolvedIdentity = incomingIdentity;
73
- }
74
- return resolvedIdentity;
75
- }
76
- catch (error) {
77
- Logger.error('Error while getting identity with caching', { error });
78
- return undefined;
79
- }
80
- };
81
- static getIdentityFromCache = async (pixelId, incomingIdentity) => {
82
- try {
83
- if (!pixelId || !incomingIdentity) {
84
- return { resolvedIdentity: undefined, isCacheStale: true, writeReason: 'cache_miss' };
85
- }
86
- if (incomingIdentity.identityId) {
87
- const pk = buildIdentityPk(pixelId, incomingIdentity.identityId);
88
- Logger.debug('try lookup with identityId', { pk });
89
- const cachedIdentityResponse = await this.getItemByPk(pk);
90
- if (!cachedIdentityResponse) {
91
- return { resolvedIdentity: undefined, isCacheStale: true, writeReason: 'cache_miss' };
92
- }
93
- Logger.debug('found cached identity', { cachedIdentityResponse });
94
- const mergedTraits = mergeIdentityTraits(incomingIdentity.traits, cachedIdentityResponse.response.traits);
95
- const mergedIdentity = { ...incomingIdentity, traits: mergedTraits };
96
- const identityStaleCacheTracker = isIdentityCacheStale(cachedIdentityResponse.response, mergedIdentity);
97
- const isDeepEqual = fastDeepEqual(cachedIdentityResponse.response, mergedIdentity);
98
- let isCacheStale = identityStaleCacheTracker.isCacheStale;
99
- if (isDeepEqual) {
100
- Logger.debug('identity cache is deep equal', { pixelId, isCacheStale });
101
- isCacheStale = false;
102
- }
103
- else {
104
- Logger.debug('identity cache is not deep equal', { pixelId, identityStaleCacheTracker, isCacheStale });
105
- }
106
- if (isCacheStale) {
107
- Logger.debug('identity cache stale', { isCacheStale, isDeepEqual, pixelId });
108
- }
109
- return {
110
- resolvedIdentity: mergedIdentity,
111
- isCacheStale,
112
- cachedIdentity: cachedIdentityResponse.response,
113
- staleTracker: isCacheStale ? identityStaleCacheTracker : undefined,
114
- writeReason: isCacheStale ? 'stale_traits' : undefined,
115
- };
116
- }
117
- const discoveredIdentityId = await this.getIdentityIdFromEmailLookup(pixelId, incomingIdentity);
118
- if (discoveredIdentityId) {
119
- Logger.debug('discovered identityId from email pointer', { pixelId, discoveredIdentityId });
120
- const identityWithDiscoveredId = {
121
- ...incomingIdentity,
122
- identityId: discoveredIdentityId,
123
- };
124
- return { resolvedIdentity: identityWithDiscoveredId, isCacheStale: true, writeReason: 'email_pointer_discovery' };
125
- }
126
- return { resolvedIdentity: undefined, isCacheStale: true, writeReason: 'cache_miss' };
127
- }
128
- catch (error) {
129
- Logger.error('Error while getting identity from cache', { error });
130
- return { resolvedIdentity: undefined, isCacheStale: true, writeReason: 'cache_miss' };
131
- }
132
- };
133
- static getIdentityMap = async (pixelId, identityId) => {
134
- try {
135
- if (!pixelId || !identityId) {
136
- return undefined;
137
- }
138
- const pk = buildIdentityMapPk(pixelId, identityId);
139
- const result = (await DynamoDbClient.safeGet(TABLE_NAME, 'pk', pk));
140
- return result ?? undefined;
141
- }
142
- catch (error) {
143
- Logger.error('Error while getting identity map', { error, pixelId, identityId });
144
- return undefined;
145
- }
146
- };
147
- static getForcePurgeFlag = async (pixelId, identityId) => {
148
- try {
149
- if (!pixelId || !identityId) {
150
- return false;
151
- }
152
- const pk = buildForcePurgePk(pixelId, identityId);
153
- const result = await DynamoDbClient.safeGet(TABLE_NAME, 'pk', pk);
154
- return result !== null;
155
- }
156
- catch (error) {
157
- Logger.error('Error while getting force purge flag', { error, pixelId, identityId });
158
- return false;
159
- }
160
- };
161
- static updateIdentityCache = async (pixelId, response) => {
162
- try {
163
- if (!response?.identityId || !pixelId) {
164
- return;
165
- }
166
- const items = [];
167
- const now = new Date().toISOString();
168
- items.push({
169
- pk: buildIdentityPk(pixelId, response.identityId),
170
- response,
171
- updatedAt: now,
172
- pixelId,
173
- identityId: response.identityId,
174
- gsi1pk: response.identityId,
175
- });
176
- const emails = response.traits?.emails ?? [];
177
- for (const email of emails) {
178
- if (email) {
179
- const pointerRecord = {
180
- pk: buildEmailPk(pixelId, email),
181
- updatedAt: now,
182
- pixelId,
183
- identityId: response.identityId,
184
- gsi1pk: response.identityId,
185
- };
186
- items.push(pointerRecord);
187
- }
188
- }
189
- await DynamoDbClient.safeBatchWrite(TABLE_NAME, items);
190
- Logger.debug('updated identity cache', { pixelId, identityId: response.identityId, itemCount: items.length });
191
- }
192
- catch (error) {
193
- Logger.error('Error while updating identity cache', { error, pixelId });
194
- }
195
- };
196
- static putIdentityMap = async (pixelId, identityId, linkedIdentities) => {
197
- try {
198
- if (!pixelId || !identityId) {
199
- return;
200
- }
201
- const item = {
202
- pk: buildIdentityMapPk(pixelId, identityId),
203
- pixelId,
204
- identityId,
205
- linkedIdentities,
206
- updatedAt: new Date().toISOString(),
207
- };
208
- await DynamoDbClient.safePut(TABLE_NAME, item);
209
- Logger.debug('put identity map', { pixelId, identityId, linkedIdentities });
210
- }
211
- catch (error) {
212
- Logger.error('Error while putting identity map', { error, pixelId, identityId });
213
- }
214
- };
215
- static setForcePurgeFlag = async (pixelId, identityId, ttlSeconds = FORCE_PURGE_TTL_SECONDS) => {
216
- try {
217
- if (!pixelId || !identityId) {
218
- return;
219
- }
220
- const now = new Date().toISOString();
221
- const ttl = DateTime.utc().plus({ seconds: ttlSeconds }).toSeconds();
222
- const item = {
223
- pk: buildForcePurgePk(pixelId, identityId),
224
- pixelId,
225
- identityId,
226
- createdAt: now,
227
- ttl: Math.floor(ttl),
228
- };
229
- await DynamoDbClient.safePut(TABLE_NAME, item);
230
- Logger.debug('set force purge flag', { pixelId, identityId, ttlSeconds });
231
- }
232
- catch (error) {
233
- Logger.error('Error while setting force purge flag', { error, pixelId, identityId });
234
- }
235
- };
236
- static deleteIdentityCache = async (pixelId, incomingIdentity, resolvedIdentity) => {
237
- try {
238
- if (!pixelId) {
239
- return;
240
- }
241
- const deleteKeys = [];
242
- const identityIdsToDelete = new Set();
243
- if (incomingIdentity?.identityId) {
244
- identityIdsToDelete.add(incomingIdentity.identityId);
245
- }
246
- if (resolvedIdentity?.identityId) {
247
- identityIdsToDelete.add(resolvedIdentity.identityId);
248
- }
249
- for (const identityId of identityIdsToDelete) {
250
- const relatedItems = await this.queryByGsi1(identityId);
251
- for (const item of relatedItems) {
252
- if (item.pk && item.pixelId === pixelId) {
253
- deleteKeys.push({ pk: item.pk });
254
- }
255
- }
256
- }
257
- if (incomingIdentity?.traits?.emails) {
258
- for (const email of incomingIdentity.traits.emails) {
259
- deleteKeys.push({ pk: buildEmailPk(pixelId, email) });
260
- }
261
- }
262
- if (resolvedIdentity?.traits?.emails) {
263
- for (const email of resolvedIdentity.traits.emails) {
264
- deleteKeys.push({ pk: buildEmailPk(pixelId, email) });
265
- }
266
- }
267
- const uniqueKeys = Array.from(new Set(deleteKeys.map((k) => k.pk))).map((pk) => ({ pk }));
268
- if (uniqueKeys.length > 0) {
269
- await this.safeBatchDelete(uniqueKeys);
270
- Logger.debug('deleted identity cache items', { pixelId, deletedCount: uniqueKeys.length });
271
- }
272
- }
273
- catch (error) {
274
- Logger.error('Error while deleting identity cache', { error, pixelId });
275
- }
276
- };
277
- static deleteIdentityMap = async (pixelId, identityId) => {
278
- try {
279
- if (!pixelId || !identityId) {
280
- return;
281
- }
282
- const pk = buildIdentityMapPk(pixelId, identityId);
283
- await DynamoDbClient.safeDelete(TABLE_NAME, 'pk', pk);
284
- Logger.debug('deleted identity map', { pixelId, identityId });
285
- }
286
- catch (error) {
287
- Logger.error('Error while deleting identity map', { error, pixelId, identityId });
288
- }
289
- };
290
- static deleteForcePurgeFlag = async (pixelId, identityId) => {
291
- try {
292
- if (!pixelId || !identityId) {
293
- return;
294
- }
295
- const pk = buildForcePurgePk(pixelId, identityId);
296
- await DynamoDbClient.safeDelete(TABLE_NAME, 'pk', pk);
297
- Logger.debug('deleted force purge flag', { pixelId, identityId });
298
- }
299
- catch (error) {
300
- Logger.error('Error while deleting force purge flag', { error, pixelId, identityId });
301
- }
302
- };
303
- static readFromCache = async (pixelId, incomingIdentity) => {
304
- return await this.getIdentityFromCache(pixelId, incomingIdentity);
305
- };
306
- static resolveFromNeptune = async (pixelId, incomingIdentity, identifyPrivateLambdaArn) => {
307
- try {
308
- const client = this.getLambdaInvokeClient();
309
- const response = await client.invokeFunction(identifyPrivateLambdaArn, {
310
- pixelId,
311
- context: { identity: incomingIdentity },
312
- });
313
- if (response?.statusCode === 200 && response?.body) {
314
- const identifyResponse = JSON.parse(response.body);
315
- return identifyResponse?.identity;
316
- }
317
- return incomingIdentity;
318
- }
319
- catch (error) {
320
- Logger.error('Error while resolving identity from Neptune', { error });
321
- return undefined;
322
- }
323
- };
324
- static writeBackToCache = async (pixelId, resolvedIdentity) => {
325
- await this.updateIdentityCache(pixelId, resolvedIdentity);
326
- };
327
- static getIdentityIdFromEmailLookup = async (pixelId, incomingIdentity) => {
328
- try {
329
- if (!pixelId || !incomingIdentity) {
330
- return undefined;
331
- }
332
- const firstEmail = incomingIdentity.traits?.emails?.[0];
333
- if (!firstEmail) {
334
- return undefined;
335
- }
336
- const pk = buildEmailPk(pixelId, firstEmail);
337
- Logger.debug('email secondary lookup', { pk });
338
- const result = (await DynamoDbClient.safeGet(TABLE_NAME, 'pk', pk));
339
- if (!result) {
340
- return undefined;
341
- }
342
- Logger.debug('found identityId from email lookup', { pixelId, identityId: result.identityId });
343
- return result.identityId;
344
- }
345
- catch (error) {
346
- Logger.error('Error while getting identity from email lookup', { error, pixelId });
347
- return undefined;
348
- }
349
- };
350
- static getItemByPk = async (pk) => {
351
- try {
352
- const result = (await DynamoDbClient.safeGet(TABLE_NAME, 'pk', pk));
353
- return result ?? undefined;
354
- }
355
- catch (error) {
356
- Logger.error('Error while getting item by pk', { error, pk });
357
- return undefined;
358
- }
359
- };
360
- static queryByGsi1 = async (identityId) => {
361
- try {
362
- const results = await DynamoDbClient.safeQueryByGSI(TABLE_NAME, GSI1_NAME, 'gsi1pk', identityId);
363
- return (results ?? []);
364
- }
365
- catch (error) {
366
- Logger.error('Error while querying by GSI1', { error, identityId });
367
- return [];
368
- }
369
- };
370
- static safeBatchDelete = async (keys) => {
371
- if (keys.length === 0) {
372
- return;
373
- }
374
- const chunks = this.chunkArray(keys, 25);
375
- for (const chunk of chunks) {
376
- try {
377
- const deleteRequests = chunk.map((key) => ({
378
- DeleteRequest: { Key: { pk: key.pk } },
379
- }));
380
- await DynamoDbClient.batchWrite({
381
- RequestItems: { [TABLE_NAME]: deleteRequests },
382
- });
383
- }
384
- catch (error) {
385
- Logger.error('Batch delete failed', { error, chunkSize: chunk.length });
386
- }
387
- }
388
- };
389
- static chunkArray(items, size) {
390
- const chunks = [];
391
- for (let i = 0; i < items.length; i += size) {
392
- chunks.push(items.slice(i, i + size));
393
- }
394
- return chunks;
395
- }
396
- static extractStaleTraitNames(tracker) {
397
- const staleTraits = [];
398
- if (tracker.isIdentityIdStale)
399
- staleTraits.push('identityId');
400
- if (tracker.isUserIdsStale)
401
- staleTraits.push('userIds');
402
- if (tracker.isIdsStale)
403
- staleTraits.push('ids');
404
- if (tracker.isEmailsStale)
405
- staleTraits.push('emails');
406
- if (tracker.isPhonesStale)
407
- staleTraits.push('phones');
408
- if (tracker.isShopifyYIdsStale)
409
- staleTraits.push('shopifyYIds');
410
- if (tracker.isGendersStale)
411
- staleTraits.push('genders');
412
- if (tracker.isDobsStale)
413
- staleTraits.push('dobs');
414
- if (tracker.isAddressesStale)
415
- staleTraits.push('addresses');
416
- if (tracker.isClickInfosStale)
417
- staleTraits.push('clickInfos');
418
- if (tracker.isIpAddressStale)
419
- staleTraits.push('ipAddress');
420
- if (tracker.isUserAgentStale)
421
- staleTraits.push('userAgent');
422
- if (tracker.isThirdPartyContactsStale)
423
- staleTraits.push('thirdPartyContacts');
424
- return staleTraits;
425
- }
426
- }
1
+ import { buildIdentityPk, buildEmailPk, buildIdentityMapPk, buildForcePurgePk, } from '@adtrackify/at-tracking-event-types';
2
+ import { mergeIdentityTraits } from '@adtrackify/at-shared-utils';
3
+ import fastDeepEqual from 'fast-deep-equal';
4
+ import { DateTime } from 'luxon';
5
+ import { DynamoDbClient, LambdaInvokeClient } from '../../clients/index.js';
6
+ import { Logger } from '../../helpers/index.js';
7
+ import { isIdentityCacheStale } from '../../helpers/identity-cache-helper.js';
8
+ const TABLE_NAME = process.env.IDENTITY_CACHE_TABLE_V2 ?? '';
9
+ const GSI1_NAME = process.env.IDENTITY_CACHE_GSI1 ?? 'gsi1pk-index';
10
+ const FORCE_PURGE_TTL_SECONDS = 60 * 60 * 24 * 30;
11
+ var CACHE_WRITE_REASON;
12
+ (function (CACHE_WRITE_REASON) {
13
+ CACHE_WRITE_REASON["CACHE_MISS"] = "cache_miss";
14
+ CACHE_WRITE_REASON["STALE_TRAITS"] = "stale_traits";
15
+ CACHE_WRITE_REASON["EMAIL_POINTER_DISCOVERY"] = "email_pointer_discovery";
16
+ })(CACHE_WRITE_REASON || (CACHE_WRITE_REASON = {}));
17
+ export class IdentityCacheDynamoDbService {
18
+ static lambdaInvokeClient;
19
+ static getLambdaInvokeClient() {
20
+ if (!this.lambdaInvokeClient) {
21
+ this.lambdaInvokeClient = new LambdaInvokeClient();
22
+ }
23
+ return this.lambdaInvokeClient;
24
+ }
25
+ static getIdentityWithCaching = async (pixelId, incomingIdentity, identifyPrivateLambdaArn) => {
26
+ try {
27
+ if (!pixelId || !incomingIdentity) {
28
+ Logger.error('getIdentityWithCaching - No pixelId or incomingIdentity', { pixelId, incomingIdentity });
29
+ return undefined;
30
+ }
31
+ const cacheResponse = await this.readFromCache(pixelId, incomingIdentity);
32
+ let resolvedIdentity = cacheResponse.resolvedIdentity;
33
+ const isCacheStale = cacheResponse.isCacheStale;
34
+ const cachedIdentity = cacheResponse.cachedIdentity;
35
+ const staleTracker = cacheResponse.staleTracker;
36
+ const writeReason = cacheResponse.writeReason;
37
+ if (resolvedIdentity && !isCacheStale) {
38
+ Logger.debug('identity cache hit', { incomingIdentity });
39
+ return resolvedIdentity;
40
+ }
41
+ const identityForNeptune = resolvedIdentity ?? incomingIdentity;
42
+ Logger.debug('identity cache stale - fetching from identity service', {
43
+ incomingIdentity,
44
+ identityForNeptune,
45
+ hasDiscoveredIdentityId: !!resolvedIdentity?.identityId,
46
+ });
47
+ const neptuneIdentity = await this.resolveFromNeptune(pixelId, identityForNeptune, identifyPrivateLambdaArn);
48
+ if (neptuneIdentity) {
49
+ resolvedIdentity = neptuneIdentity;
50
+ const shouldWrite = !cachedIdentity || !fastDeepEqual(cachedIdentity, neptuneIdentity);
51
+ if (shouldWrite) {
52
+ const staleTraits = staleTracker ? this.extractStaleTraitNames(staleTracker) : [];
53
+ Logger.info('identity cache write', {
54
+ pixelId,
55
+ identityId: neptuneIdentity.identityId,
56
+ writeReason,
57
+ staleTraits,
58
+ emailCount: neptuneIdentity.traits?.emails?.length ?? 0,
59
+ });
60
+ await this.writeBackToCache(pixelId, resolvedIdentity);
61
+ }
62
+ else {
63
+ Logger.debug('skipping write-back - Neptune result matches cached data', {
64
+ pixelId,
65
+ identityId: neptuneIdentity.identityId,
66
+ });
67
+ }
68
+ }
69
+ else {
70
+ Logger.error('Failed to getIdentity from Neptune', {
71
+ pixelId,
72
+ incomingIdentity,
73
+ identifyPrivateLambdaArn,
74
+ });
75
+ }
76
+ if (!resolvedIdentity) {
77
+ Logger.error('No identity found', { pixelId, incomingIdentity });
78
+ resolvedIdentity = incomingIdentity;
79
+ }
80
+ return resolvedIdentity;
81
+ }
82
+ catch (error) {
83
+ Logger.error('Error while getting identity with caching', { error });
84
+ return undefined;
85
+ }
86
+ };
87
+ static getIdentityFromCache = async (pixelId, incomingIdentity) => {
88
+ try {
89
+ if (!pixelId || !incomingIdentity) {
90
+ return { resolvedIdentity: undefined, isCacheStale: true, writeReason: CACHE_WRITE_REASON.CACHE_MISS };
91
+ }
92
+ if (incomingIdentity.identityId) {
93
+ const pk = buildIdentityPk(pixelId, incomingIdentity.identityId);
94
+ Logger.debug('try lookup with identityId', { pk });
95
+ const cachedIdentityResponse = await this.getItemByPk(pk);
96
+ if (!cachedIdentityResponse) {
97
+ return { resolvedIdentity: undefined, isCacheStale: true, writeReason: CACHE_WRITE_REASON.CACHE_MISS };
98
+ }
99
+ Logger.debug('found cached identity', { cachedIdentityResponse });
100
+ const mergedTraits = mergeIdentityTraits(incomingIdentity.traits, cachedIdentityResponse.response.traits);
101
+ const mergedIdentity = { ...incomingIdentity, traits: mergedTraits };
102
+ const identityStaleCacheTracker = isIdentityCacheStale(cachedIdentityResponse.response, mergedIdentity);
103
+ const isDeepEqual = fastDeepEqual(cachedIdentityResponse.response, mergedIdentity);
104
+ let isCacheStale = identityStaleCacheTracker.isCacheStale;
105
+ if (isDeepEqual) {
106
+ Logger.debug('identity cache is deep equal', { pixelId, isCacheStale });
107
+ isCacheStale = false;
108
+ }
109
+ else {
110
+ Logger.debug('identity cache is not deep equal', { pixelId, identityStaleCacheTracker, isCacheStale });
111
+ }
112
+ if (isCacheStale) {
113
+ Logger.debug('identity cache stale', { isCacheStale, isDeepEqual, pixelId });
114
+ }
115
+ return {
116
+ resolvedIdentity: mergedIdentity,
117
+ isCacheStale,
118
+ cachedIdentity: cachedIdentityResponse.response,
119
+ staleTracker: isCacheStale ? identityStaleCacheTracker : undefined,
120
+ writeReason: isCacheStale ? CACHE_WRITE_REASON.STALE_TRAITS : undefined,
121
+ };
122
+ }
123
+ const discoveredIdentityId = await this.getIdentityIdFromEmailLookup(pixelId, incomingIdentity);
124
+ if (discoveredIdentityId) {
125
+ Logger.debug('discovered identityId from email pointer', { pixelId, discoveredIdentityId });
126
+ const identityWithDiscoveredId = {
127
+ ...incomingIdentity,
128
+ identityId: discoveredIdentityId,
129
+ };
130
+ return { resolvedIdentity: identityWithDiscoveredId, isCacheStale: true, writeReason: CACHE_WRITE_REASON.EMAIL_POINTER_DISCOVERY };
131
+ }
132
+ return { resolvedIdentity: undefined, isCacheStale: true, writeReason: CACHE_WRITE_REASON.CACHE_MISS };
133
+ }
134
+ catch (error) {
135
+ Logger.error('Error while getting identity from cache', { error });
136
+ return { resolvedIdentity: undefined, isCacheStale: true, writeReason: CACHE_WRITE_REASON.CACHE_MISS };
137
+ }
138
+ };
139
+ static getIdentityMap = async (pixelId, identityId) => {
140
+ try {
141
+ if (!pixelId || !identityId) {
142
+ return undefined;
143
+ }
144
+ const pk = buildIdentityMapPk(pixelId, identityId);
145
+ const result = (await DynamoDbClient.safeGet(TABLE_NAME, 'pk', pk));
146
+ return result ?? undefined;
147
+ }
148
+ catch (error) {
149
+ Logger.error('Error while getting identity map', { error, pixelId, identityId });
150
+ return undefined;
151
+ }
152
+ };
153
+ static getForcePurgeFlag = async (pixelId, identityId) => {
154
+ try {
155
+ if (!pixelId || !identityId) {
156
+ return false;
157
+ }
158
+ const pk = buildForcePurgePk(pixelId, identityId);
159
+ const result = await DynamoDbClient.safeGet(TABLE_NAME, 'pk', pk);
160
+ return result !== null;
161
+ }
162
+ catch (error) {
163
+ Logger.error('Error while getting force purge flag', { error, pixelId, identityId });
164
+ return false;
165
+ }
166
+ };
167
+ static updateIdentityCache = async (pixelId, response) => {
168
+ try {
169
+ if (!response?.identityId || !pixelId) {
170
+ return;
171
+ }
172
+ const items = [];
173
+ const now = new Date().toISOString();
174
+ items.push({
175
+ pk: buildIdentityPk(pixelId, response.identityId),
176
+ response,
177
+ updatedAt: now,
178
+ pixelId,
179
+ identityId: response.identityId,
180
+ gsi1pk: response.identityId,
181
+ });
182
+ const emails = response.traits?.emails ?? [];
183
+ for (const email of emails) {
184
+ if (email) {
185
+ const pointerRecord = {
186
+ pk: buildEmailPk(pixelId, email),
187
+ updatedAt: now,
188
+ pixelId,
189
+ identityId: response.identityId,
190
+ gsi1pk: response.identityId,
191
+ };
192
+ items.push(pointerRecord);
193
+ }
194
+ }
195
+ await DynamoDbClient.safeBatchWrite(TABLE_NAME, items);
196
+ Logger.debug('updated identity cache', { pixelId, identityId: response.identityId, itemCount: items.length });
197
+ }
198
+ catch (error) {
199
+ Logger.error('Error while updating identity cache', { error, pixelId });
200
+ }
201
+ };
202
+ static putIdentityMap = async (pixelId, identityId, linkedIdentities) => {
203
+ try {
204
+ if (!pixelId || !identityId) {
205
+ return;
206
+ }
207
+ const item = {
208
+ pk: buildIdentityMapPk(pixelId, identityId),
209
+ pixelId,
210
+ identityId,
211
+ linkedIdentities,
212
+ updatedAt: new Date().toISOString(),
213
+ };
214
+ await DynamoDbClient.safePut(TABLE_NAME, item);
215
+ Logger.debug('put identity map', { pixelId, identityId, linkedIdentities });
216
+ }
217
+ catch (error) {
218
+ Logger.error('Error while putting identity map', { error, pixelId, identityId });
219
+ }
220
+ };
221
+ static setForcePurgeFlag = async (pixelId, identityId, ttlSeconds = FORCE_PURGE_TTL_SECONDS) => {
222
+ try {
223
+ if (!pixelId || !identityId) {
224
+ return;
225
+ }
226
+ const now = new Date().toISOString();
227
+ const ttl = DateTime.utc().plus({ seconds: ttlSeconds }).toSeconds();
228
+ const item = {
229
+ pk: buildForcePurgePk(pixelId, identityId),
230
+ pixelId,
231
+ identityId,
232
+ createdAt: now,
233
+ ttl: Math.floor(ttl),
234
+ };
235
+ await DynamoDbClient.safePut(TABLE_NAME, item);
236
+ Logger.debug('set force purge flag', { pixelId, identityId, ttlSeconds });
237
+ }
238
+ catch (error) {
239
+ Logger.error('Error while setting force purge flag', { error, pixelId, identityId });
240
+ }
241
+ };
242
+ static deleteIdentityCache = async (pixelId, incomingIdentity, resolvedIdentity) => {
243
+ try {
244
+ if (!pixelId) {
245
+ return;
246
+ }
247
+ const deleteKeys = [];
248
+ const identityIdsToDelete = new Set();
249
+ if (incomingIdentity?.identityId) {
250
+ identityIdsToDelete.add(incomingIdentity.identityId);
251
+ }
252
+ if (resolvedIdentity?.identityId) {
253
+ identityIdsToDelete.add(resolvedIdentity.identityId);
254
+ }
255
+ for (const identityId of identityIdsToDelete) {
256
+ const relatedItems = await this.queryByGsi1(identityId);
257
+ for (const item of relatedItems) {
258
+ if (item.pk && item.pixelId === pixelId) {
259
+ deleteKeys.push({ pk: item.pk });
260
+ }
261
+ }
262
+ }
263
+ if (incomingIdentity?.traits?.emails) {
264
+ for (const email of incomingIdentity.traits.emails) {
265
+ deleteKeys.push({ pk: buildEmailPk(pixelId, email) });
266
+ }
267
+ }
268
+ if (resolvedIdentity?.traits?.emails) {
269
+ for (const email of resolvedIdentity.traits.emails) {
270
+ deleteKeys.push({ pk: buildEmailPk(pixelId, email) });
271
+ }
272
+ }
273
+ const uniqueKeys = Array.from(new Set(deleteKeys.map((k) => k.pk))).map((pk) => ({ pk }));
274
+ if (uniqueKeys.length > 0) {
275
+ await this.safeBatchDelete(uniqueKeys);
276
+ Logger.debug('deleted identity cache items', { pixelId, deletedCount: uniqueKeys.length });
277
+ }
278
+ }
279
+ catch (error) {
280
+ Logger.error('Error while deleting identity cache', { error, pixelId });
281
+ }
282
+ };
283
+ static deleteIdentityMap = async (pixelId, identityId) => {
284
+ try {
285
+ if (!pixelId || !identityId) {
286
+ return;
287
+ }
288
+ const pk = buildIdentityMapPk(pixelId, identityId);
289
+ await DynamoDbClient.safeDelete(TABLE_NAME, 'pk', pk);
290
+ Logger.debug('deleted identity map', { pixelId, identityId });
291
+ }
292
+ catch (error) {
293
+ Logger.error('Error while deleting identity map', { error, pixelId, identityId });
294
+ }
295
+ };
296
+ static deleteForcePurgeFlag = async (pixelId, identityId) => {
297
+ try {
298
+ if (!pixelId || !identityId) {
299
+ return;
300
+ }
301
+ const pk = buildForcePurgePk(pixelId, identityId);
302
+ await DynamoDbClient.safeDelete(TABLE_NAME, 'pk', pk);
303
+ Logger.debug('deleted force purge flag', { pixelId, identityId });
304
+ }
305
+ catch (error) {
306
+ Logger.error('Error while deleting force purge flag', { error, pixelId, identityId });
307
+ }
308
+ };
309
+ static readFromCache = async (pixelId, incomingIdentity) => {
310
+ return await this.getIdentityFromCache(pixelId, incomingIdentity);
311
+ };
312
+ static resolveFromNeptune = async (pixelId, incomingIdentity, identifyPrivateLambdaArn) => {
313
+ try {
314
+ const client = this.getLambdaInvokeClient();
315
+ const response = await client.invokeFunction(identifyPrivateLambdaArn, {
316
+ pixelId,
317
+ context: { identity: incomingIdentity },
318
+ });
319
+ if (response?.statusCode === 200 && response?.body) {
320
+ const identifyResponse = JSON.parse(response.body);
321
+ return identifyResponse?.identity;
322
+ }
323
+ return incomingIdentity;
324
+ }
325
+ catch (error) {
326
+ Logger.error('Error while resolving identity from Neptune', { error });
327
+ return undefined;
328
+ }
329
+ };
330
+ static writeBackToCache = async (pixelId, resolvedIdentity) => {
331
+ await this.updateIdentityCache(pixelId, resolvedIdentity);
332
+ };
333
+ static getIdentityIdFromEmailLookup = async (pixelId, incomingIdentity) => {
334
+ try {
335
+ if (!pixelId || !incomingIdentity) {
336
+ return undefined;
337
+ }
338
+ const firstEmail = incomingIdentity.traits?.emails?.[0];
339
+ if (!firstEmail) {
340
+ return undefined;
341
+ }
342
+ const pk = buildEmailPk(pixelId, firstEmail);
343
+ Logger.debug('email secondary lookup', { pk });
344
+ const result = (await DynamoDbClient.safeGet(TABLE_NAME, 'pk', pk));
345
+ if (!result) {
346
+ return undefined;
347
+ }
348
+ Logger.debug('found identityId from email lookup', { pixelId, identityId: result.identityId });
349
+ return result.identityId;
350
+ }
351
+ catch (error) {
352
+ Logger.error('Error while getting identity from email lookup', { error, pixelId });
353
+ return undefined;
354
+ }
355
+ };
356
+ static getItemByPk = async (pk) => {
357
+ try {
358
+ const result = (await DynamoDbClient.safeGet(TABLE_NAME, 'pk', pk));
359
+ return result ?? undefined;
360
+ }
361
+ catch (error) {
362
+ Logger.error('Error while getting item by pk', { error, pk });
363
+ return undefined;
364
+ }
365
+ };
366
+ static queryByGsi1 = async (identityId) => {
367
+ try {
368
+ const results = await DynamoDbClient.safeQueryByGSI(TABLE_NAME, GSI1_NAME, 'gsi1pk', identityId);
369
+ return (results ?? []);
370
+ }
371
+ catch (error) {
372
+ Logger.error('Error while querying by GSI1', { error, identityId });
373
+ return [];
374
+ }
375
+ };
376
+ static safeBatchDelete = async (keys) => {
377
+ if (keys.length === 0) {
378
+ return;
379
+ }
380
+ const chunks = this.chunkArray(keys, 25);
381
+ for (const chunk of chunks) {
382
+ try {
383
+ const deleteRequests = chunk.map((key) => ({
384
+ DeleteRequest: { Key: { pk: key.pk } },
385
+ }));
386
+ await DynamoDbClient.batchWrite({
387
+ RequestItems: { [TABLE_NAME]: deleteRequests },
388
+ });
389
+ }
390
+ catch (error) {
391
+ Logger.error('Batch delete failed', { error, chunkSize: chunk.length });
392
+ }
393
+ }
394
+ };
395
+ static chunkArray(items, size) {
396
+ const chunks = [];
397
+ for (let i = 0; i < items.length; i += size) {
398
+ chunks.push(items.slice(i, i + size));
399
+ }
400
+ return chunks;
401
+ }
402
+ static extractStaleTraitNames(tracker) {
403
+ const staleTraits = [];
404
+ if (tracker.isIdentityIdStale)
405
+ staleTraits.push('identityId');
406
+ if (tracker.isUserIdsStale)
407
+ staleTraits.push('userIds');
408
+ if (tracker.isIdsStale)
409
+ staleTraits.push('ids');
410
+ if (tracker.isEmailsStale)
411
+ staleTraits.push('emails');
412
+ if (tracker.isPhonesStale)
413
+ staleTraits.push('phones');
414
+ if (tracker.isShopifyYIdsStale)
415
+ staleTraits.push('shopifyYIds');
416
+ if (tracker.isGendersStale)
417
+ staleTraits.push('genders');
418
+ if (tracker.isDobsStale)
419
+ staleTraits.push('dobs');
420
+ if (tracker.isAddressesStale)
421
+ staleTraits.push('addresses');
422
+ if (tracker.isClickInfosStale)
423
+ staleTraits.push('clickInfos');
424
+ if (tracker.isIpAddressStale)
425
+ staleTraits.push('ipAddress');
426
+ if (tracker.isUserAgentStale)
427
+ staleTraits.push('userAgent');
428
+ if (tracker.isThirdPartyContactsStale)
429
+ staleTraits.push('thirdPartyContacts');
430
+ return staleTraits;
431
+ }
432
+ }
427
433
  //# sourceMappingURL=identity-cache-dynamodb-service.js.map