@adtrackify/at-service-common 3.19.20 → 3.19.22

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 (810) 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 +364 -354
  5. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
  6. package/dist/cjs/__tests__/clients/dynamodb-client.spec.d.ts +1 -1
  7. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js +194 -194
  8. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  9. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
  10. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +941 -931
  11. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
  12. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -1
  13. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js +573 -563
  14. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -1
  15. package/dist/cjs/__tests__/clients/sqs-client.spec.d.ts +1 -1
  16. package/dist/cjs/__tests__/clients/sqs-client.spec.js +191 -191
  17. package/dist/cjs/__tests__/clients/sqs-client.spec.js.map +1 -1
  18. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
  19. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +1357 -1357
  20. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
  21. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -1
  22. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +68 -68
  23. package/dist/cjs/__tests__/db/destinations-db-service.spec.d.ts +1 -1
  24. package/dist/cjs/__tests__/db/destinations-db-service.spec.js +125 -125
  25. package/dist/cjs/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  26. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +89 -89
  27. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.d.ts +1 -1
  28. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js +104 -104
  29. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.d.ts +1 -1
  30. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js +95 -95
  31. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.d.ts +1 -1
  32. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js +76 -76
  33. package/dist/cjs/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  34. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +220 -220
  35. package/dist/cjs/__tests__/helpers/acuity-helper.spec.d.ts +1 -1
  36. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js +69 -69
  37. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
  38. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +82 -82
  39. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  40. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +674 -674
  41. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.d.ts +1 -1
  42. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +1140 -1140
  43. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
  44. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  45. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +588 -588
  46. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
  47. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +584 -584
  48. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
  49. package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  50. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +16 -16
  51. package/dist/cjs/__tests__/libs/contacts.spec.d.ts +1 -1
  52. package/dist/cjs/__tests__/libs/contacts.spec.js +294 -294
  53. package/dist/cjs/__tests__/libs/currency.spec.d.ts +1 -1
  54. package/dist/cjs/__tests__/libs/currency.spec.js +220 -220
  55. package/dist/cjs/__tests__/libs/dates.spec.d.ts +1 -1
  56. package/dist/cjs/__tests__/libs/dates.spec.js +130 -130
  57. package/dist/cjs/__tests__/libs/dates.spec.js.map +1 -1
  58. package/dist/cjs/__tests__/libs/domain.spec.d.ts +1 -1
  59. package/dist/cjs/__tests__/libs/domain.spec.js +107 -107
  60. package/dist/cjs/__tests__/libs/numbers.spec.d.ts +1 -1
  61. package/dist/cjs/__tests__/libs/numbers.spec.js +261 -261
  62. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  63. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +33 -33
  64. package/dist/cjs/__tests__/services/acuity-api-service.spec.d.ts +1 -1
  65. package/dist/cjs/__tests__/services/acuity-api-service.spec.js +71 -71
  66. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -1
  67. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js +93 -93
  68. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -1
  69. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js +57 -57
  70. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  71. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +35 -35
  72. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
  73. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js +191 -181
  74. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
  75. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
  76. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js +69 -69
  77. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -1
  78. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js +139 -139
  79. package/dist/cjs/clients/generic/cognito-client.d.ts +23 -23
  80. package/dist/cjs/clients/generic/cognito-client.js +209 -209
  81. package/dist/cjs/clients/generic/cognito-client.js.map +1 -1
  82. package/dist/cjs/clients/generic/dynamodb-client.d.ts +20 -20
  83. package/dist/cjs/clients/generic/dynamodb-client.js +235 -229
  84. package/dist/cjs/clients/generic/dynamodb-client.js.map +1 -1
  85. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  86. package/dist/cjs/clients/generic/eventbridge-client.js +51 -51
  87. package/dist/cjs/clients/generic/http-client.d.ts +14 -14
  88. package/dist/cjs/clients/generic/http-client.js +61 -61
  89. package/dist/cjs/clients/generic/http-client.js.map +1 -1
  90. package/dist/cjs/clients/generic/index.d.ts +13 -13
  91. package/dist/cjs/clients/generic/index.js +29 -29
  92. package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
  93. package/dist/cjs/clients/generic/lambda-invoke-client.js +39 -39
  94. package/dist/cjs/clients/generic/lambda-invoke-client.js.map +1 -1
  95. package/dist/cjs/clients/generic/location-client.d.ts +8 -8
  96. package/dist/cjs/clients/generic/location-client.js +31 -31
  97. package/dist/cjs/clients/generic/location-client.js.map +1 -1
  98. package/dist/cjs/clients/generic/redis-client.d.ts +33 -33
  99. package/dist/cjs/clients/generic/redis-client.js +191 -191
  100. package/dist/cjs/clients/generic/redis-client.js.map +1 -1
  101. package/dist/cjs/clients/generic/s3-client.d.ts +22 -23
  102. package/dist/cjs/clients/generic/s3-client.js +216 -216
  103. package/dist/cjs/clients/generic/s3-client.js.map +1 -1
  104. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +14 -14
  105. package/dist/cjs/clients/generic/singlestore-db-client.js +77 -67
  106. package/dist/cjs/clients/generic/singlestore-db-client.js.map +1 -1
  107. package/dist/cjs/clients/generic/sqs-bundled-client.d.ts +15 -15
  108. package/dist/cjs/clients/generic/sqs-bundled-client.js +311 -311
  109. package/dist/cjs/clients/generic/sqs-bundled-client.js.map +1 -1
  110. package/dist/cjs/clients/generic/sqs-bundled-client.types.d.ts +53 -53
  111. package/dist/cjs/clients/generic/sqs-bundled-client.types.js +17 -17
  112. package/dist/cjs/clients/generic/sqs-bundled-client.types.js.map +1 -1
  113. package/dist/cjs/clients/generic/sqs-client.d.ts +53 -53
  114. package/dist/cjs/clients/generic/sqs-client.js +285 -285
  115. package/dist/cjs/clients/generic/sqs-client.js.map +1 -1
  116. package/dist/cjs/clients/generic/sqs-unbundle.d.ts +32 -32
  117. package/dist/cjs/clients/generic/sqs-unbundle.js +143 -144
  118. package/dist/cjs/clients/generic/sqs-unbundle.js.map +1 -1
  119. package/dist/cjs/clients/index.d.ts +3 -3
  120. package/dist/cjs/clients/index.js +19 -19
  121. package/dist/cjs/clients/internal-api/accounts-client.d.ts +91 -91
  122. package/dist/cjs/clients/internal-api/accounts-client.js +129 -129
  123. package/dist/cjs/clients/internal-api/accounts-client.js.map +1 -1
  124. package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +26 -26
  125. package/dist/cjs/clients/internal-api/cache-lambda-client.js +89 -89
  126. package/dist/cjs/clients/internal-api/cache-lambda-client.js.map +1 -1
  127. package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
  128. package/dist/cjs/clients/internal-api/db-management-client.js +36 -36
  129. package/dist/cjs/clients/internal-api/destinations-client.d.ts +34 -34
  130. package/dist/cjs/clients/internal-api/destinations-client.js +79 -79
  131. package/dist/cjs/clients/internal-api/destinations-client.js.map +1 -1
  132. package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
  133. package/dist/cjs/clients/internal-api/event-collector-client.js +36 -36
  134. package/dist/cjs/clients/internal-api/identity-client.d.ts +31 -31
  135. package/dist/cjs/clients/internal-api/identity-client.js +91 -91
  136. package/dist/cjs/clients/internal-api/identity-client.js.map +1 -1
  137. package/dist/cjs/clients/internal-api/index.d.ts +9 -9
  138. package/dist/cjs/clients/internal-api/index.js +25 -25
  139. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  140. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +81 -81
  141. package/dist/cjs/clients/internal-api/subscriptions-client.d.ts +26 -26
  142. package/dist/cjs/clients/internal-api/subscriptions-client.js +77 -77
  143. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +35 -35
  144. package/dist/cjs/clients/internal-api/users-auth-client.js +110 -110
  145. package/dist/cjs/clients/internal-api/users-auth-client.js.map +1 -1
  146. package/dist/cjs/clients/third-party/acuity-client.d.ts +10 -10
  147. package/dist/cjs/clients/third-party/acuity-client.js +40 -40
  148. package/dist/cjs/clients/third-party/emailable-client.d.ts +7 -7
  149. package/dist/cjs/clients/third-party/emailable-client.js +25 -25
  150. package/dist/cjs/clients/third-party/emailable-client.js.map +1 -1
  151. package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  152. package/dist/cjs/clients/third-party/exchange-rate-api-client.js +19 -19
  153. package/dist/cjs/clients/third-party/index.d.ts +5 -5
  154. package/dist/cjs/clients/third-party/index.js +21 -21
  155. package/dist/cjs/clients/third-party/loops-client.d.ts +10 -10
  156. package/dist/cjs/clients/third-party/loops-client.js +30 -30
  157. package/dist/cjs/clients/third-party/loops-client.js.map +1 -1
  158. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  159. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.js +4 -4
  160. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  161. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.js +5 -5
  162. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
  163. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js +161 -161
  164. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
  165. package/dist/cjs/clients/third-party/shopify-client.d.ts +29 -29
  166. package/dist/cjs/clients/third-party/shopify-client.js +146 -146
  167. package/dist/cjs/clients/third-party/shopify-client.js.map +1 -1
  168. package/dist/cjs/constants/index.d.ts +1 -1
  169. package/dist/cjs/constants/index.js +17 -17
  170. package/dist/cjs/constants/sqs.d.ts +20 -20
  171. package/dist/cjs/constants/sqs.js +26 -26
  172. package/dist/cjs/constants/sqs.js.map +1 -1
  173. package/dist/cjs/helpers/account-users-helper.d.ts +2 -2
  174. package/dist/cjs/helpers/account-users-helper.js +22 -22
  175. package/dist/cjs/helpers/account-users-helper.js.map +1 -1
  176. package/dist/cjs/helpers/acuity-helper.d.ts +4 -4
  177. package/dist/cjs/helpers/acuity-helper.js +56 -56
  178. package/dist/cjs/helpers/acuity-helper.js.map +1 -1
  179. package/dist/cjs/helpers/api-key-auth-helper.d.ts +10 -9
  180. package/dist/cjs/helpers/api-key-auth-helper.js +40 -40
  181. package/dist/cjs/helpers/api-key-auth-helper.js.map +1 -1
  182. package/dist/cjs/helpers/api-key-authorizer-helper.d.ts +36 -36
  183. package/dist/cjs/helpers/api-key-authorizer-helper.js +87 -87
  184. package/dist/cjs/helpers/api-key-authorizer-helper.js.map +1 -1
  185. package/dist/cjs/helpers/identity-cache-helper.d.ts +21 -21
  186. package/dist/cjs/helpers/identity-cache-helper.js +157 -157
  187. package/dist/cjs/helpers/identity-cache-helper.js.map +1 -1
  188. package/dist/cjs/helpers/index.d.ts +10 -10
  189. package/dist/cjs/helpers/index.js +26 -26
  190. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  191. package/dist/cjs/helpers/input-validation-helper.js +22 -22
  192. package/dist/cjs/helpers/input-validation-helper.js.map +1 -1
  193. package/dist/cjs/helpers/logging-helper.d.ts +16 -16
  194. package/dist/cjs/helpers/logging-helper.js +94 -84
  195. package/dist/cjs/helpers/logging-helper.js.map +1 -1
  196. package/dist/cjs/helpers/response-helper.d.ts +18 -18
  197. package/dist/cjs/helpers/response-helper.js +43 -43
  198. package/dist/cjs/helpers/response-helper.js.map +1 -1
  199. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  200. package/dist/cjs/helpers/shopify-helper.js +26 -26
  201. package/dist/cjs/helpers/shopify-helper.js.map +1 -1
  202. package/dist/cjs/helpers/sqs-utils.d.ts +6 -6
  203. package/dist/cjs/helpers/sqs-utils.js +13 -14
  204. package/dist/cjs/helpers/sqs-utils.js.map +1 -1
  205. package/dist/cjs/index.d.ts +7 -7
  206. package/dist/cjs/index.js +23 -23
  207. package/dist/cjs/libs/api-router/index.d.ts +2 -2
  208. package/dist/cjs/libs/api-router/index.js +18 -18
  209. package/dist/cjs/libs/api-router/public-api-router.d.ts +3 -3
  210. package/dist/cjs/libs/api-router/public-api-router.js +36 -36
  211. package/dist/cjs/libs/api-router/public-api-router.js.map +1 -1
  212. package/dist/cjs/libs/api-router/route-matcher.d.ts +21 -21
  213. package/dist/cjs/libs/api-router/route-matcher.js +36 -36
  214. package/dist/cjs/libs/api-router/route-matcher.js.map +1 -1
  215. package/dist/cjs/libs/click-id-parser.d.ts +23 -23
  216. package/dist/cjs/libs/click-id-parser.js +49 -49
  217. package/dist/cjs/libs/click-id-parser.js.map +1 -1
  218. package/dist/cjs/libs/compression.d.ts +2 -2
  219. package/dist/cjs/libs/compression.js +33 -33
  220. package/dist/cjs/libs/compression.js.map +1 -1
  221. package/dist/cjs/libs/contacts.d.ts +7 -7
  222. package/dist/cjs/libs/contacts.js +152 -152
  223. package/dist/cjs/libs/contacts.js.map +1 -1
  224. package/dist/cjs/libs/cookie.d.ts +17 -17
  225. package/dist/cjs/libs/cookie.js +76 -76
  226. package/dist/cjs/libs/cookie.js.map +1 -1
  227. package/dist/cjs/libs/crypto.d.ts +4 -4
  228. package/dist/cjs/libs/crypto.js +25 -25
  229. package/dist/cjs/libs/csv.d.ts +2 -2
  230. package/dist/cjs/libs/csv.js +35 -35
  231. package/dist/cjs/libs/csv.js.map +1 -1
  232. package/dist/cjs/libs/currency.d.ts +1 -1
  233. package/dist/cjs/libs/currency.js +29 -29
  234. package/dist/cjs/libs/currency.js.map +1 -1
  235. package/dist/cjs/libs/dates.d.ts +12 -12
  236. package/dist/cjs/libs/dates.js +96 -96
  237. package/dist/cjs/libs/dates.js.map +1 -1
  238. package/dist/cjs/libs/domain.d.ts +2 -2
  239. package/dist/cjs/libs/domain.js +38 -38
  240. package/dist/cjs/libs/domain.js.map +1 -1
  241. package/dist/cjs/libs/emails.d.ts +8 -8
  242. package/dist/cjs/libs/emails.js +154 -154
  243. package/dist/cjs/libs/emails.js.map +1 -1
  244. package/dist/cjs/libs/http-error.d.ts +21 -21
  245. package/dist/cjs/libs/http-error.js +63 -63
  246. package/dist/cjs/libs/http-error.js.map +1 -1
  247. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  248. package/dist/cjs/libs/http-status-codes.js +62 -62
  249. package/dist/cjs/libs/http-status-codes.js.map +1 -1
  250. package/dist/cjs/libs/index.d.ts +19 -19
  251. package/dist/cjs/libs/index.js +35 -35
  252. package/dist/cjs/libs/numbers.d.ts +1 -1
  253. package/dist/cjs/libs/numbers.js +15 -15
  254. package/dist/cjs/libs/numbers.js.map +1 -1
  255. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  256. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  257. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  258. package/dist/cjs/libs/referrer-parser/referrer-data.js +3307 -3307
  259. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +19 -20
  260. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +131 -131
  261. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  262. package/dist/cjs/libs/strings.d.ts +3 -3
  263. package/dist/cjs/libs/strings.js +46 -46
  264. package/dist/cjs/libs/strings.js.map +1 -1
  265. package/dist/cjs/libs/traits.d.ts +6 -6
  266. package/dist/cjs/libs/traits.js +65 -65
  267. package/dist/cjs/libs/traits.js.map +1 -1
  268. package/dist/cjs/libs/url.d.ts +1 -1
  269. package/dist/cjs/libs/url.js +13 -13
  270. package/dist/cjs/services/acuity-api-service.d.ts +9 -9
  271. package/dist/cjs/services/acuity-api-service.js +73 -73
  272. package/dist/cjs/services/acuity-api-service.js.map +1 -1
  273. package/dist/cjs/services/cache/generic-cached-object.d.ts +5 -5
  274. package/dist/cjs/services/cache/generic-cached-object.js +2 -2
  275. package/dist/cjs/services/cache/index.d.ts +1 -1
  276. package/dist/cjs/services/cache/index.js +17 -17
  277. package/dist/cjs/services/cache/product-cache-service.d.ts +21 -21
  278. package/dist/cjs/services/cache/product-cache-service.js +76 -76
  279. package/dist/cjs/services/cache/product-cache-service.js.map +1 -1
  280. package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +11 -11
  281. package/dist/cjs/services/currency-exchange-rate-lookup-service.js +66 -66
  282. package/dist/cjs/services/currency-exchange-rate-lookup-service.js.map +1 -1
  283. package/dist/cjs/services/db/accounts-db-service.d.ts +9 -9
  284. package/dist/cjs/services/db/accounts-db-service.js +33 -33
  285. package/dist/cjs/services/db/accounts-db-service.js.map +1 -1
  286. package/dist/cjs/services/db/api-keys-db-service.d.ts +10 -10
  287. package/dist/cjs/services/db/api-keys-db-service.js +36 -36
  288. package/dist/cjs/services/db/api-keys-db-service.js.map +1 -1
  289. package/dist/cjs/services/db/contact-enrichments-db-service.d.ts +15 -15
  290. package/dist/cjs/services/db/contact-enrichments-db-service.js +94 -94
  291. package/dist/cjs/services/db/contact-enrichments-db-service.js.map +1 -1
  292. package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  293. package/dist/cjs/services/db/currency-exchange-rates-db-service.js +39 -39
  294. package/dist/cjs/services/db/custom-measures-db-service.d.ts +14 -14
  295. package/dist/cjs/services/db/custom-measures-db-service.js +48 -48
  296. package/dist/cjs/services/db/custom-measures-db-service.js.map +1 -1
  297. package/dist/cjs/services/db/destinations-db-service.d.ts +13 -13
  298. package/dist/cjs/services/db/destinations-db-service.js +74 -74
  299. package/dist/cjs/services/db/identity-cache-db-service.d.ts +28 -28
  300. package/dist/cjs/services/db/identity-cache-db-service.js +320 -320
  301. package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
  302. package/dist/cjs/services/db/identity-cache-dynamodb-service.d.ts +28 -28
  303. package/dist/cjs/services/db/identity-cache-dynamodb-service.js +377 -377
  304. package/dist/cjs/services/db/identity-cache-dynamodb-service.js.map +1 -1
  305. package/dist/cjs/services/db/index.d.ts +17 -17
  306. package/dist/cjs/services/db/index.js +33 -33
  307. package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
  308. package/dist/cjs/services/db/log-events-db-service.js +181 -181
  309. package/dist/cjs/services/db/log-events-db-service.js.map +1 -1
  310. package/dist/cjs/services/db/pixels-db-service.d.ts +8 -8
  311. package/dist/cjs/services/db/pixels-db-service.js +35 -35
  312. package/dist/cjs/services/db/purchasable-contacts-db-service.d.ts +9 -9
  313. package/dist/cjs/services/db/purchasable-contacts-db-service.js +43 -43
  314. package/dist/cjs/services/db/purchasable-contacts-db-service.js.map +1 -1
  315. package/dist/cjs/services/db/purchased-contacts/index.d.ts +2 -2
  316. package/dist/cjs/services/db/purchased-contacts/index.js +18 -18
  317. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.d.ts +18 -18
  318. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js +152 -152
  319. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
  320. package/dist/cjs/services/db/purchased-contacts/types.d.ts +11 -11
  321. package/dist/cjs/services/db/purchased-contacts/types.js +2 -2
  322. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +10 -10
  323. package/dist/cjs/services/db/shopify-app-installs-db-service.js +52 -52
  324. package/dist/cjs/services/db/shopify-app-installs-db-service.js.map +1 -1
  325. package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +16 -16
  326. package/dist/cjs/services/db/shopify-products-cache-db-service.js +73 -73
  327. package/dist/cjs/services/db/shopify-products-cache-db-service.js.map +1 -1
  328. package/dist/cjs/services/db/subscriptions-db-service.d.ts +11 -11
  329. package/dist/cjs/services/db/subscriptions-db-service.js +38 -38
  330. package/dist/cjs/services/db/subscriptions-db-service.js.map +1 -1
  331. package/dist/cjs/services/db/tracking-events-db-service.d.ts +21 -21
  332. package/dist/cjs/services/db/tracking-events-db-service.js +188 -188
  333. package/dist/cjs/services/db/tracking-events-db-service.js.map +1 -1
  334. package/dist/cjs/services/db/user-accounts-db-service.d.ts +7 -7
  335. package/dist/cjs/services/db/user-accounts-db-service.js +17 -17
  336. package/dist/cjs/services/email-verification/contact-email-verification-service.d.ts +7 -7
  337. package/dist/cjs/services/email-verification/contact-email-verification-service.js +101 -101
  338. package/dist/cjs/services/email-verification/contact-email-verification-service.js.map +1 -1
  339. package/dist/cjs/services/email-verification/email-verification-service.d.ts +19 -19
  340. package/dist/cjs/services/email-verification/email-verification-service.js +131 -131
  341. package/dist/cjs/services/email-verification/email-verification-service.js.map +1 -1
  342. package/dist/cjs/services/email-verification/index.d.ts +2 -2
  343. package/dist/cjs/services/email-verification/index.js +18 -18
  344. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  345. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  346. package/dist/cjs/services/events/index.d.ts +3 -3
  347. package/dist/cjs/services/events/index.js +19 -19
  348. package/dist/cjs/services/events/log-event-service.d.ts +19 -19
  349. package/dist/cjs/services/events/log-event-service.js +77 -77
  350. package/dist/cjs/services/events/log-event-service.js.map +1 -1
  351. package/dist/cjs/services/events/metric-event-service.d.ts +9 -9
  352. package/dist/cjs/services/events/metric-event-service.js +49 -49
  353. package/dist/cjs/services/events/tracking-event-sqs-service.d.ts +8 -8
  354. package/dist/cjs/services/events/tracking-event-sqs-service.js +34 -34
  355. package/dist/cjs/services/events/tracking-event-sqs-service.js.map +1 -1
  356. package/dist/cjs/services/generic-cache-service.d.ts +7 -7
  357. package/dist/cjs/services/generic-cache-service.js +33 -33
  358. package/dist/cjs/services/generic-cache-service.js.map +1 -1
  359. package/dist/cjs/services/index.d.ts +10 -10
  360. package/dist/cjs/services/index.js +26 -26
  361. package/dist/cjs/services/ipdata-lookup-service.d.ts +20 -20
  362. package/dist/cjs/services/ipdata-lookup-service.js +112 -112
  363. package/dist/cjs/services/ipdata-lookup-service.js.map +1 -1
  364. package/dist/cjs/services/shopify/index.d.ts +2 -2
  365. package/dist/cjs/services/shopify/index.js +18 -18
  366. package/dist/cjs/services/shopify/products/index.d.ts +1 -1
  367. package/dist/cjs/services/shopify/products/index.js +17 -17
  368. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  369. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js +112 -112
  370. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
  371. package/dist/cjs/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  372. package/dist/cjs/services/shopify/shopify-graphql-transformer.js +141 -141
  373. package/dist/cjs/services/shopify/shopify-graphql-transformer.js.map +1 -1
  374. package/dist/cjs/types/acuity-types.d.ts +74 -74
  375. package/dist/cjs/types/acuity-types.js +2 -2
  376. package/dist/cjs/types/api-response.d.ts +6 -6
  377. package/dist/cjs/types/api-response.js +2 -2
  378. package/dist/cjs/types/index.d.ts +4 -4
  379. package/dist/cjs/types/index.js +43 -33
  380. package/dist/cjs/types/index.js.map +1 -1
  381. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  382. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  383. package/dist/cjs/types/internal-events/event-detail-types.js.map +1 -1
  384. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  385. package/dist/cjs/types/internal-events/index.js +17 -17
  386. package/dist/cjs/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  387. package/dist/cjs/types/shopify-graphql-types/admin.generated.js +2 -2
  388. package/dist/cjs/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  389. package/dist/cjs/types/shopify-graphql-types/admin.types.js +5311 -5311
  390. package/dist/cjs/types/shopify-graphql-types/admin.types.js.map +1 -1
  391. package/dist/cjs/types/shopify-graphql-types/index.d.ts +2 -2
  392. package/dist/cjs/types/shopify-graphql-types/index.js +18 -18
  393. package/dist/cjs/types/shopify-rest-types.d.ts +767 -767
  394. package/dist/cjs/types/shopify-rest-types.js +2 -2
  395. package/dist/cjs/utils/compression.d.ts +34 -36
  396. package/dist/cjs/utils/compression.js +198 -198
  397. package/dist/cjs/utils/compression.js.map +1 -1
  398. package/dist/cjs/utils/custom-measure-formula-utils.d.ts +6 -6
  399. package/dist/cjs/utils/custom-measure-formula-utils.js +209 -209
  400. package/dist/cjs/utils/custom-measure-formula-utils.js.map +1 -1
  401. package/dist/cjs/utils/index.d.ts +4 -4
  402. package/dist/cjs/utils/index.js +20 -20
  403. package/dist/cjs/utils/retry-envelope.d.ts +12 -12
  404. package/dist/cjs/utils/retry-envelope.js +27 -28
  405. package/dist/cjs/utils/retry-envelope.js.map +1 -1
  406. package/dist/cjs/utils/size.d.ts +2 -2
  407. package/dist/cjs/utils/size.js +48 -49
  408. package/dist/cjs/utils/size.js.map +1 -1
  409. package/dist/esm/__tests__/clients/acuity-client.spec.d.ts +1 -1
  410. package/dist/esm/__tests__/clients/acuity-client.spec.js +41 -41
  411. package/dist/esm/__tests__/clients/cross-platform-compression.spec.d.ts +1 -1
  412. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js +329 -329
  413. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
  414. package/dist/esm/__tests__/clients/dynamodb-client.spec.d.ts +1 -1
  415. package/dist/esm/__tests__/clients/dynamodb-client.spec.js +192 -192
  416. package/dist/esm/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  417. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -1
  418. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +906 -906
  419. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
  420. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -1
  421. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js +538 -538
  422. package/dist/esm/__tests__/clients/sqs-client.spec.d.ts +1 -1
  423. package/dist/esm/__tests__/clients/sqs-client.spec.js +189 -189
  424. package/dist/esm/__tests__/clients/sqs-client.spec.js.map +1 -1
  425. package/dist/esm/__tests__/clients/sqs-unbundle.spec.d.ts +1 -1
  426. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +1355 -1355
  427. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
  428. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -1
  429. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +66 -66
  430. package/dist/esm/__tests__/db/destinations-db-service.spec.d.ts +1 -1
  431. package/dist/esm/__tests__/db/destinations-db-service.spec.js +123 -123
  432. package/dist/esm/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  433. package/dist/esm/__tests__/db/shared-read-db-services.spec.js +87 -87
  434. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.d.ts +1 -1
  435. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js +102 -102
  436. package/dist/esm/__tests__/db/subscriptions-db-service.spec.d.ts +1 -1
  437. package/dist/esm/__tests__/db/subscriptions-db-service.spec.js +93 -93
  438. package/dist/esm/__tests__/db/user-accounts-db-service.spec.d.ts +1 -1
  439. package/dist/esm/__tests__/db/user-accounts-db-service.spec.js +74 -74
  440. package/dist/esm/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  441. package/dist/esm/__tests__/helpers/account-users-helper.spec.js +218 -218
  442. package/dist/esm/__tests__/helpers/acuity-helper.spec.d.ts +1 -1
  443. package/dist/esm/__tests__/helpers/acuity-helper.spec.js +67 -67
  444. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -1
  445. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +80 -80
  446. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  447. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +672 -672
  448. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.d.ts +1 -1
  449. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +1138 -1138
  450. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
  451. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  452. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +586 -586
  453. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -1
  454. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +582 -582
  455. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
  456. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  457. package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
  458. package/dist/esm/__tests__/libs/contacts.spec.d.ts +1 -1
  459. package/dist/esm/__tests__/libs/contacts.spec.js +292 -292
  460. package/dist/esm/__tests__/libs/currency.spec.d.ts +1 -1
  461. package/dist/esm/__tests__/libs/currency.spec.js +218 -218
  462. package/dist/esm/__tests__/libs/dates.spec.d.ts +1 -1
  463. package/dist/esm/__tests__/libs/dates.spec.js +128 -128
  464. package/dist/esm/__tests__/libs/dates.spec.js.map +1 -1
  465. package/dist/esm/__tests__/libs/domain.spec.d.ts +1 -1
  466. package/dist/esm/__tests__/libs/domain.spec.js +105 -105
  467. package/dist/esm/__tests__/libs/numbers.spec.d.ts +1 -1
  468. package/dist/esm/__tests__/libs/numbers.spec.js +259 -259
  469. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  470. package/dist/esm/__tests__/s3-client/s3-client.spec.js +31 -31
  471. package/dist/esm/__tests__/services/acuity-api-service.spec.d.ts +1 -1
  472. package/dist/esm/__tests__/services/acuity-api-service.spec.js +69 -69
  473. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -1
  474. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js +91 -91
  475. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -1
  476. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js +55 -55
  477. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  478. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +33 -33
  479. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -1
  480. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js +156 -156
  481. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
  482. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -1
  483. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js +67 -67
  484. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -1
  485. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js +137 -137
  486. package/dist/esm/clients/generic/cognito-client.d.ts +23 -23
  487. package/dist/esm/clients/generic/cognito-client.js +204 -204
  488. package/dist/esm/clients/generic/cognito-client.js.map +1 -1
  489. package/dist/esm/clients/generic/dynamodb-client.d.ts +20 -20
  490. package/dist/esm/clients/generic/dynamodb-client.js +231 -225
  491. package/dist/esm/clients/generic/dynamodb-client.js.map +1 -1
  492. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  493. package/dist/esm/clients/generic/eventbridge-client.js +47 -47
  494. package/dist/esm/clients/generic/http-client.d.ts +14 -14
  495. package/dist/esm/clients/generic/http-client.js +53 -53
  496. package/dist/esm/clients/generic/http-client.js.map +1 -1
  497. package/dist/esm/clients/generic/index.d.ts +13 -13
  498. package/dist/esm/clients/generic/index.js +13 -13
  499. package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
  500. package/dist/esm/clients/generic/lambda-invoke-client.js +35 -35
  501. package/dist/esm/clients/generic/lambda-invoke-client.js.map +1 -1
  502. package/dist/esm/clients/generic/location-client.d.ts +8 -8
  503. package/dist/esm/clients/generic/location-client.js +27 -27
  504. package/dist/esm/clients/generic/location-client.js.map +1 -1
  505. package/dist/esm/clients/generic/redis-client.d.ts +33 -33
  506. package/dist/esm/clients/generic/redis-client.js +184 -184
  507. package/dist/esm/clients/generic/redis-client.js.map +1 -1
  508. package/dist/esm/clients/generic/s3-client.d.ts +22 -23
  509. package/dist/esm/clients/generic/s3-client.js +209 -209
  510. package/dist/esm/clients/generic/s3-client.js.map +1 -1
  511. package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
  512. package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
  513. package/dist/esm/clients/generic/singlestore-db-client.js.map +1 -1
  514. package/dist/esm/clients/generic/sqs-bundled-client.d.ts +15 -15
  515. package/dist/esm/clients/generic/sqs-bundled-client.js +307 -307
  516. package/dist/esm/clients/generic/sqs-bundled-client.js.map +1 -1
  517. package/dist/esm/clients/generic/sqs-bundled-client.types.d.ts +53 -53
  518. package/dist/esm/clients/generic/sqs-bundled-client.types.js +14 -14
  519. package/dist/esm/clients/generic/sqs-client.d.ts +53 -53
  520. package/dist/esm/clients/generic/sqs-client.js +281 -281
  521. package/dist/esm/clients/generic/sqs-client.js.map +1 -1
  522. package/dist/esm/clients/generic/sqs-unbundle.d.ts +32 -32
  523. package/dist/esm/clients/generic/sqs-unbundle.js +137 -137
  524. package/dist/esm/clients/generic/sqs-unbundle.js.map +1 -1
  525. package/dist/esm/clients/index.d.ts +3 -3
  526. package/dist/esm/clients/index.js +3 -3
  527. package/dist/esm/clients/internal-api/accounts-client.d.ts +91 -91
  528. package/dist/esm/clients/internal-api/accounts-client.js +125 -125
  529. package/dist/esm/clients/internal-api/accounts-client.js.map +1 -1
  530. package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +26 -26
  531. package/dist/esm/clients/internal-api/cache-lambda-client.js +85 -85
  532. package/dist/esm/clients/internal-api/cache-lambda-client.js.map +1 -1
  533. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  534. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  535. package/dist/esm/clients/internal-api/destinations-client.d.ts +34 -34
  536. package/dist/esm/clients/internal-api/destinations-client.js +75 -75
  537. package/dist/esm/clients/internal-api/destinations-client.js.map +1 -1
  538. package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
  539. package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
  540. package/dist/esm/clients/internal-api/identity-client.d.ts +31 -31
  541. package/dist/esm/clients/internal-api/identity-client.js +87 -87
  542. package/dist/esm/clients/internal-api/identity-client.js.map +1 -1
  543. package/dist/esm/clients/internal-api/index.d.ts +9 -9
  544. package/dist/esm/clients/internal-api/index.js +9 -9
  545. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  546. package/dist/esm/clients/internal-api/shopify-app-install-client.js +77 -77
  547. package/dist/esm/clients/internal-api/subscriptions-client.d.ts +26 -26
  548. package/dist/esm/clients/internal-api/subscriptions-client.js +73 -73
  549. package/dist/esm/clients/internal-api/users-auth-client.d.ts +35 -35
  550. package/dist/esm/clients/internal-api/users-auth-client.js +106 -106
  551. package/dist/esm/clients/internal-api/users-auth-client.js.map +1 -1
  552. package/dist/esm/clients/third-party/acuity-client.d.ts +10 -10
  553. package/dist/esm/clients/third-party/acuity-client.js +36 -36
  554. package/dist/esm/clients/third-party/emailable-client.d.ts +7 -7
  555. package/dist/esm/clients/third-party/emailable-client.js +21 -21
  556. package/dist/esm/clients/third-party/emailable-client.js.map +1 -1
  557. package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  558. package/dist/esm/clients/third-party/exchange-rate-api-client.js +15 -15
  559. package/dist/esm/clients/third-party/index.d.ts +5 -5
  560. package/dist/esm/clients/third-party/index.js +5 -5
  561. package/dist/esm/clients/third-party/loops-client.d.ts +10 -10
  562. package/dist/esm/clients/third-party/loops-client.js +26 -26
  563. package/dist/esm/clients/third-party/loops-client.js.map +1 -1
  564. package/dist/esm/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  565. package/dist/esm/clients/third-party/shopify/graphql-order-queries.js +1 -1
  566. package/dist/esm/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  567. package/dist/esm/clients/third-party/shopify/graphql-product-queries.js +2 -2
  568. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
  569. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +157 -157
  570. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
  571. package/dist/esm/clients/third-party/shopify-client.d.ts +29 -29
  572. package/dist/esm/clients/third-party/shopify-client.js +142 -142
  573. package/dist/esm/clients/third-party/shopify-client.js.map +1 -1
  574. package/dist/esm/constants/index.d.ts +1 -1
  575. package/dist/esm/constants/index.js +1 -1
  576. package/dist/esm/constants/sqs.d.ts +20 -20
  577. package/dist/esm/constants/sqs.js +22 -22
  578. package/dist/esm/constants/sqs.js.map +1 -1
  579. package/dist/esm/helpers/account-users-helper.d.ts +2 -2
  580. package/dist/esm/helpers/account-users-helper.js +18 -18
  581. package/dist/esm/helpers/account-users-helper.js.map +1 -1
  582. package/dist/esm/helpers/acuity-helper.d.ts +4 -4
  583. package/dist/esm/helpers/acuity-helper.js +51 -51
  584. package/dist/esm/helpers/acuity-helper.js.map +1 -1
  585. package/dist/esm/helpers/api-key-auth-helper.d.ts +10 -9
  586. package/dist/esm/helpers/api-key-auth-helper.js +35 -35
  587. package/dist/esm/helpers/api-key-auth-helper.js.map +1 -1
  588. package/dist/esm/helpers/api-key-authorizer-helper.d.ts +36 -36
  589. package/dist/esm/helpers/api-key-authorizer-helper.js +83 -83
  590. package/dist/esm/helpers/api-key-authorizer-helper.js.map +1 -1
  591. package/dist/esm/helpers/identity-cache-helper.d.ts +21 -21
  592. package/dist/esm/helpers/identity-cache-helper.js +152 -152
  593. package/dist/esm/helpers/identity-cache-helper.js.map +1 -1
  594. package/dist/esm/helpers/index.d.ts +10 -10
  595. package/dist/esm/helpers/index.js +10 -10
  596. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  597. package/dist/esm/helpers/input-validation-helper.js +18 -18
  598. package/dist/esm/helpers/input-validation-helper.js.map +1 -1
  599. package/dist/esm/helpers/logging-helper.d.ts +16 -16
  600. package/dist/esm/helpers/logging-helper.js +56 -56
  601. package/dist/esm/helpers/logging-helper.js.map +1 -1
  602. package/dist/esm/helpers/response-helper.d.ts +18 -18
  603. package/dist/esm/helpers/response-helper.js +37 -37
  604. package/dist/esm/helpers/response-helper.js.map +1 -1
  605. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  606. package/dist/esm/helpers/shopify-helper.js +21 -21
  607. package/dist/esm/helpers/shopify-helper.js.map +1 -1
  608. package/dist/esm/helpers/sqs-utils.d.ts +6 -6
  609. package/dist/esm/helpers/sqs-utils.js +9 -9
  610. package/dist/esm/index.d.ts +7 -7
  611. package/dist/esm/index.js +7 -7
  612. package/dist/esm/libs/api-router/index.d.ts +2 -2
  613. package/dist/esm/libs/api-router/index.js +2 -2
  614. package/dist/esm/libs/api-router/public-api-router.d.ts +3 -3
  615. package/dist/esm/libs/api-router/public-api-router.js +32 -32
  616. package/dist/esm/libs/api-router/public-api-router.js.map +1 -1
  617. package/dist/esm/libs/api-router/route-matcher.d.ts +21 -21
  618. package/dist/esm/libs/api-router/route-matcher.js +30 -30
  619. package/dist/esm/libs/api-router/route-matcher.js.map +1 -1
  620. package/dist/esm/libs/click-id-parser.d.ts +23 -23
  621. package/dist/esm/libs/click-id-parser.js +45 -45
  622. package/dist/esm/libs/click-id-parser.js.map +1 -1
  623. package/dist/esm/libs/compression.d.ts +2 -2
  624. package/dist/esm/libs/compression.js +25 -25
  625. package/dist/esm/libs/compression.js.map +1 -1
  626. package/dist/esm/libs/contacts.d.ts +7 -7
  627. package/dist/esm/libs/contacts.js +143 -143
  628. package/dist/esm/libs/contacts.js.map +1 -1
  629. package/dist/esm/libs/cookie.d.ts +17 -17
  630. package/dist/esm/libs/cookie.js +70 -70
  631. package/dist/esm/libs/cookie.js.map +1 -1
  632. package/dist/esm/libs/crypto.d.ts +4 -4
  633. package/dist/esm/libs/crypto.js +15 -15
  634. package/dist/esm/libs/csv.d.ts +2 -2
  635. package/dist/esm/libs/csv.js +30 -30
  636. package/dist/esm/libs/csv.js.map +1 -1
  637. package/dist/esm/libs/currency.d.ts +1 -1
  638. package/dist/esm/libs/currency.js +22 -22
  639. package/dist/esm/libs/currency.js.map +1 -1
  640. package/dist/esm/libs/dates.d.ts +12 -12
  641. package/dist/esm/libs/dates.js +83 -83
  642. package/dist/esm/libs/dates.js.map +1 -1
  643. package/dist/esm/libs/domain.d.ts +2 -2
  644. package/dist/esm/libs/domain.js +33 -33
  645. package/dist/esm/libs/domain.js.map +1 -1
  646. package/dist/esm/libs/emails.d.ts +8 -8
  647. package/dist/esm/libs/emails.js +146 -146
  648. package/dist/esm/libs/emails.js.map +1 -1
  649. package/dist/esm/libs/http-error.d.ts +21 -21
  650. package/dist/esm/libs/http-error.js +59 -59
  651. package/dist/esm/libs/http-error.js.map +1 -1
  652. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  653. package/dist/esm/libs/http-status-codes.js +59 -59
  654. package/dist/esm/libs/index.d.ts +19 -19
  655. package/dist/esm/libs/index.js +19 -19
  656. package/dist/esm/libs/numbers.d.ts +1 -1
  657. package/dist/esm/libs/numbers.js +11 -11
  658. package/dist/esm/libs/numbers.js.map +1 -1
  659. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  660. package/dist/esm/libs/referrer-parser/index.js +2 -2
  661. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  662. package/dist/esm/libs/referrer-parser/referrer-data.js +3304 -3304
  663. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +19 -20
  664. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +124 -124
  665. package/dist/esm/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  666. package/dist/esm/libs/strings.d.ts +3 -3
  667. package/dist/esm/libs/strings.js +40 -40
  668. package/dist/esm/libs/strings.js.map +1 -1
  669. package/dist/esm/libs/traits.d.ts +6 -6
  670. package/dist/esm/libs/traits.js +54 -54
  671. package/dist/esm/libs/traits.js.map +1 -1
  672. package/dist/esm/libs/url.d.ts +1 -1
  673. package/dist/esm/libs/url.js +9 -9
  674. package/dist/esm/services/acuity-api-service.d.ts +9 -9
  675. package/dist/esm/services/acuity-api-service.js +69 -69
  676. package/dist/esm/services/acuity-api-service.js.map +1 -1
  677. package/dist/esm/services/cache/generic-cached-object.d.ts +5 -5
  678. package/dist/esm/services/cache/generic-cached-object.js +1 -1
  679. package/dist/esm/services/cache/index.d.ts +1 -1
  680. package/dist/esm/services/cache/index.js +1 -1
  681. package/dist/esm/services/cache/product-cache-service.d.ts +21 -21
  682. package/dist/esm/services/cache/product-cache-service.js +68 -68
  683. package/dist/esm/services/cache/product-cache-service.js.map +1 -1
  684. package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +11 -11
  685. package/dist/esm/services/currency-exchange-rate-lookup-service.js +62 -62
  686. package/dist/esm/services/currency-exchange-rate-lookup-service.js.map +1 -1
  687. package/dist/esm/services/db/accounts-db-service.d.ts +9 -9
  688. package/dist/esm/services/db/accounts-db-service.js +29 -29
  689. package/dist/esm/services/db/accounts-db-service.js.map +1 -1
  690. package/dist/esm/services/db/api-keys-db-service.d.ts +10 -10
  691. package/dist/esm/services/db/api-keys-db-service.js +32 -32
  692. package/dist/esm/services/db/api-keys-db-service.js.map +1 -1
  693. package/dist/esm/services/db/contact-enrichments-db-service.d.ts +15 -15
  694. package/dist/esm/services/db/contact-enrichments-db-service.js +90 -90
  695. package/dist/esm/services/db/contact-enrichments-db-service.js.map +1 -1
  696. package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  697. package/dist/esm/services/db/currency-exchange-rates-db-service.js +35 -35
  698. package/dist/esm/services/db/custom-measures-db-service.d.ts +14 -14
  699. package/dist/esm/services/db/custom-measures-db-service.js +44 -44
  700. package/dist/esm/services/db/custom-measures-db-service.js.map +1 -1
  701. package/dist/esm/services/db/destinations-db-service.d.ts +13 -13
  702. package/dist/esm/services/db/destinations-db-service.js +70 -70
  703. package/dist/esm/services/db/identity-cache-db-service.d.ts +28 -28
  704. package/dist/esm/services/db/identity-cache-db-service.js +313 -313
  705. package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
  706. package/dist/esm/services/db/identity-cache-dynamodb-service.d.ts +28 -28
  707. package/dist/esm/services/db/identity-cache-dynamodb-service.js +370 -370
  708. package/dist/esm/services/db/identity-cache-dynamodb-service.js.map +1 -1
  709. package/dist/esm/services/db/index.d.ts +17 -17
  710. package/dist/esm/services/db/index.js +17 -17
  711. package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
  712. package/dist/esm/services/db/log-events-db-service.js +177 -177
  713. package/dist/esm/services/db/log-events-db-service.js.map +1 -1
  714. package/dist/esm/services/db/pixels-db-service.d.ts +8 -8
  715. package/dist/esm/services/db/pixels-db-service.js +31 -31
  716. package/dist/esm/services/db/purchasable-contacts-db-service.d.ts +9 -9
  717. package/dist/esm/services/db/purchasable-contacts-db-service.js +39 -39
  718. package/dist/esm/services/db/purchasable-contacts-db-service.js.map +1 -1
  719. package/dist/esm/services/db/purchased-contacts/index.d.ts +2 -2
  720. package/dist/esm/services/db/purchased-contacts/index.js +2 -2
  721. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.d.ts +18 -18
  722. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js +148 -148
  723. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
  724. package/dist/esm/services/db/purchased-contacts/types.d.ts +11 -11
  725. package/dist/esm/services/db/purchased-contacts/types.js +1 -1
  726. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +10 -10
  727. package/dist/esm/services/db/shopify-app-installs-db-service.js +48 -48
  728. package/dist/esm/services/db/shopify-app-installs-db-service.js.map +1 -1
  729. package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +16 -16
  730. package/dist/esm/services/db/shopify-products-cache-db-service.js +66 -66
  731. package/dist/esm/services/db/shopify-products-cache-db-service.js.map +1 -1
  732. package/dist/esm/services/db/subscriptions-db-service.d.ts +11 -11
  733. package/dist/esm/services/db/subscriptions-db-service.js +34 -34
  734. package/dist/esm/services/db/subscriptions-db-service.js.map +1 -1
  735. package/dist/esm/services/db/tracking-events-db-service.d.ts +21 -21
  736. package/dist/esm/services/db/tracking-events-db-service.js +184 -184
  737. package/dist/esm/services/db/tracking-events-db-service.js.map +1 -1
  738. package/dist/esm/services/db/user-accounts-db-service.d.ts +7 -7
  739. package/dist/esm/services/db/user-accounts-db-service.js +13 -13
  740. package/dist/esm/services/email-verification/contact-email-verification-service.d.ts +7 -7
  741. package/dist/esm/services/email-verification/contact-email-verification-service.js +97 -97
  742. package/dist/esm/services/email-verification/contact-email-verification-service.js.map +1 -1
  743. package/dist/esm/services/email-verification/email-verification-service.d.ts +19 -19
  744. package/dist/esm/services/email-verification/email-verification-service.js +127 -127
  745. package/dist/esm/services/email-verification/email-verification-service.js.map +1 -1
  746. package/dist/esm/services/email-verification/index.d.ts +2 -2
  747. package/dist/esm/services/email-verification/index.js +2 -2
  748. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  749. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  750. package/dist/esm/services/events/index.d.ts +3 -3
  751. package/dist/esm/services/events/index.js +3 -3
  752. package/dist/esm/services/events/log-event-service.d.ts +19 -19
  753. package/dist/esm/services/events/log-event-service.js +73 -73
  754. package/dist/esm/services/events/log-event-service.js.map +1 -1
  755. package/dist/esm/services/events/metric-event-service.d.ts +9 -9
  756. package/dist/esm/services/events/metric-event-service.js +45 -45
  757. package/dist/esm/services/events/tracking-event-sqs-service.d.ts +8 -8
  758. package/dist/esm/services/events/tracking-event-sqs-service.js +30 -30
  759. package/dist/esm/services/events/tracking-event-sqs-service.js.map +1 -1
  760. package/dist/esm/services/generic-cache-service.d.ts +7 -7
  761. package/dist/esm/services/generic-cache-service.js +29 -29
  762. package/dist/esm/services/generic-cache-service.js.map +1 -1
  763. package/dist/esm/services/index.d.ts +10 -10
  764. package/dist/esm/services/index.js +10 -10
  765. package/dist/esm/services/ipdata-lookup-service.d.ts +20 -20
  766. package/dist/esm/services/ipdata-lookup-service.js +108 -108
  767. package/dist/esm/services/ipdata-lookup-service.js.map +1 -1
  768. package/dist/esm/services/shopify/index.d.ts +2 -2
  769. package/dist/esm/services/shopify/index.js +2 -2
  770. package/dist/esm/services/shopify/products/index.d.ts +1 -1
  771. package/dist/esm/services/shopify/products/index.js +1 -1
  772. package/dist/esm/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  773. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js +108 -108
  774. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
  775. package/dist/esm/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  776. package/dist/esm/services/shopify/shopify-graphql-transformer.js +138 -138
  777. package/dist/esm/services/shopify/shopify-graphql-transformer.js.map +1 -1
  778. package/dist/esm/types/acuity-types.d.ts +74 -74
  779. package/dist/esm/types/acuity-types.js +1 -1
  780. package/dist/esm/types/api-response.d.ts +6 -6
  781. package/dist/esm/types/api-response.js +1 -1
  782. package/dist/esm/types/index.d.ts +4 -4
  783. package/dist/esm/types/index.js +4 -4
  784. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  785. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  786. package/dist/esm/types/internal-events/index.d.ts +1 -1
  787. package/dist/esm/types/internal-events/index.js +1 -1
  788. package/dist/esm/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  789. package/dist/esm/types/shopify-graphql-types/admin.generated.js +1 -1
  790. package/dist/esm/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  791. package/dist/esm/types/shopify-graphql-types/admin.types.js +5299 -5299
  792. package/dist/esm/types/shopify-graphql-types/index.d.ts +2 -2
  793. package/dist/esm/types/shopify-graphql-types/index.js +2 -2
  794. package/dist/esm/types/shopify-rest-types.d.ts +767 -767
  795. package/dist/esm/types/shopify-rest-types.js +1 -1
  796. package/dist/esm/utils/compression.d.ts +34 -36
  797. package/dist/esm/utils/compression.js +187 -187
  798. package/dist/esm/utils/compression.js.map +1 -1
  799. package/dist/esm/utils/custom-measure-formula-utils.d.ts +6 -6
  800. package/dist/esm/utils/custom-measure-formula-utils.js +201 -201
  801. package/dist/esm/utils/custom-measure-formula-utils.js.map +1 -1
  802. package/dist/esm/utils/index.d.ts +4 -4
  803. package/dist/esm/utils/index.js +4 -4
  804. package/dist/esm/utils/retry-envelope.d.ts +12 -12
  805. package/dist/esm/utils/retry-envelope.js +22 -22
  806. package/dist/esm/utils/retry-envelope.js.map +1 -1
  807. package/dist/esm/utils/size.d.ts +2 -2
  808. package/dist/esm/utils/size.js +44 -44
  809. package/dist/esm/utils/size.js.map +1 -1
  810. package/package.json +2 -2
@@ -1,355 +1,365 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- const zlib = __importStar(require("zlib"));
27
- const util_1 = require("util");
28
- const sqs_unbundle_1 = require("../../clients/generic/sqs-unbundle");
29
- const compression_1 = require("../../utils/compression");
30
- const sqs_bundled_client_types_1 = require("../../clients/generic/sqs-bundled-client.types");
31
- const gzip = (0, util_1.promisify)(zlib.gzip);
32
- const gunzip = (0, util_1.promisify)(zlib.gunzip);
33
- async function cfWorkerCompress(data) {
34
- const stream = new CompressionStream('gzip');
35
- const writer = stream.writable.getWriter();
36
- await writer.write(data);
37
- await writer.close();
38
- const chunks = [];
39
- const reader = stream.readable.getReader();
40
- for (;;) {
41
- const { done, value } = await reader.read();
42
- if (done)
43
- break;
44
- chunks.push(value);
45
- }
46
- const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
47
- const result = new Uint8Array(totalLength);
48
- let offset = 0;
49
- for (const chunk of chunks) {
50
- result.set(chunk, offset);
51
- offset += chunk.length;
52
- }
53
- return result;
54
- }
55
- function cfWorkerToBase64(bytes) {
56
- let binary = '';
57
- for (let i = 0; i < bytes.length; i++) {
58
- binary += String.fromCharCode(bytes[i]);
59
- }
60
- return btoa(binary);
61
- }
62
- async function createCfWorkerBundledMessage(messageType, items) {
63
- const json = JSON.stringify(items);
64
- const encoder = new TextEncoder();
65
- const uncompressed = encoder.encode(json);
66
- const compressed = await cfWorkerCompress(uncompressed);
67
- const base64 = cfWorkerToBase64(compressed);
68
- const envelope = {
69
- v: 1,
70
- c: 'gzip',
71
- n: items.length,
72
- p: base64,
73
- s: json.length,
74
- };
75
- return {
76
- messageId: crypto.randomUUID(),
77
- messageType,
78
- messageTime: new Date().toISOString(),
79
- messageBody: envelope,
80
- };
81
- }
82
- function createSQSRecord(body, messageId) {
83
- return {
84
- messageId: messageId ?? crypto.randomUUID(),
85
- receiptHandle: 'test-receipt-handle',
86
- body,
87
- attributes: {
88
- ApproximateReceiveCount: '1',
89
- SentTimestamp: Date.now().toString(),
90
- SenderId: 'test-sender',
91
- ApproximateFirstReceiveTimestamp: Date.now().toString(),
92
- },
93
- messageAttributes: {},
94
- md5OfBody: 'test-md5',
95
- eventSource: 'aws:sqs',
96
- eventSourceARN: 'arn:aws:sqs:us-east-1:123456789:test-queue',
97
- awsRegion: 'us-east-1',
98
- };
99
- }
100
- const GOLDEN_ITEMS = [
101
- { pixelId: 'px_golden_001', event: 'page_view', data: { url: 'https://example.com/test' } },
102
- { pixelId: 'px_golden_002', event: 'purchase', data: { amount: 99.99, currency: 'USD' } },
103
- ];
104
- const GOLDEN_GZIP_BASE64 = 'H4sIAAAAAAAACnXMvQrDIBhG4Xt5Z4lpN527dC6dShHRjyTgH0ZTS/DeS7YsXc+B57UjLY3c3UIiNTVFZymocbyAgTYK5eh6IrUt9AGD1UVD7qjZQWIuJa2Sc2raJ0eDiZ4XWgt6Z//k61mu2cx6pROsfazHE2IQgsHUnCmYLySejxt6f/8AfIEZO7MAAAA=';
105
- describe('Cross-Platform Compression Compatibility', () => {
106
- describe('CompressionStream (CF Worker) → zlib.gunzip (Lambda)', () => {
107
- it('basic payload round-trips correctly', async () => {
108
- const originalData = { pixelId: 'px_test', event: 'page_view' };
109
- const json = JSON.stringify([originalData]);
110
- const compressed = await cfWorkerCompress(new TextEncoder().encode(json));
111
- expect(compressed[0]).toBe(0x1f);
112
- expect(compressed[1]).toBe(0x8b);
113
- const decompressed = await gunzip(Buffer.from(compressed));
114
- const parsed = JSON.parse(decompressed.toString('utf8'));
115
- expect(parsed).toEqual([originalData]);
116
- });
117
- it('CompressionStream output is valid GZIP decompressible by at-service-common', async () => {
118
- const items = [{ pixelId: 'px_001' }, { pixelId: 'px_002' }];
119
- const json = JSON.stringify(items);
120
- const compressed = await cfWorkerCompress(new TextEncoder().encode(json));
121
- const base64 = cfWorkerToBase64(compressed);
122
- const result = await (0, compression_1.decompressFromBase64)(base64, sqs_bundled_client_types_1.CompressionAlgorithm.GZIP);
123
- expect(result).toEqual(items);
124
- });
125
- it('unbundleRecords handles CF Worker compressed messages', async () => {
126
- const items = [
127
- { pixelId: 'px_cfworker_001', event: 'PageView' },
128
- { pixelId: 'px_cfworker_002', event: 'AddToCart' },
129
- ];
130
- const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
131
- const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
132
- const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
133
- expect(result.items).toHaveLength(2);
134
- expect(result.failedMessageIds).toHaveLength(0);
135
- expect(result.items).toEqual(items);
136
- });
137
- });
138
- describe('Node zlib.gzip → zlib.gunzip (baseline)', () => {
139
- it('Node gzip/gunzip round-trips correctly', async () => {
140
- const original = { test: 'data', number: 123 };
141
- const json = JSON.stringify(original);
142
- const compressed = await gzip(Buffer.from(json, 'utf8'));
143
- const decompressed = await gunzip(compressed);
144
- expect(JSON.parse(decompressed.toString('utf8'))).toEqual(original);
145
- });
146
- it('Node gzip output is decompressible by at-service-common', async () => {
147
- const items = [{ id: 1 }, { id: 2 }];
148
- const json = JSON.stringify(items);
149
- const compressed = await gzip(Buffer.from(json, 'utf8'));
150
- const base64 = compressed.toString('base64');
151
- const result = await (0, compression_1.decompressFromBase64)(base64, sqs_bundled_client_types_1.CompressionAlgorithm.GZIP);
152
- expect(result).toEqual(items);
153
- });
154
- });
155
- describe('Golden Payload Compatibility', () => {
156
- it('golden payload from at-cf-tracking-api is decompressible', async () => {
157
- const result = await (0, compression_1.decompressFromBase64)(GOLDEN_GZIP_BASE64, sqs_bundled_client_types_1.CompressionAlgorithm.GZIP);
158
- expect(result).toEqual(GOLDEN_ITEMS);
159
- });
160
- it('golden payload works through full unbundleRecords path', async () => {
161
- const envelope = {
162
- v: 1,
163
- c: 'gzip',
164
- n: GOLDEN_ITEMS.length,
165
- p: GOLDEN_GZIP_BASE64,
166
- s: 179,
167
- };
168
- const wrapped = {
169
- messageId: 'golden-test-id',
170
- messageType: 'TRACKING_EVENT_COLLECT',
171
- messageTime: new Date().toISOString(),
172
- messageBody: envelope,
173
- };
174
- const sqsRecord = createSQSRecord(JSON.stringify(wrapped));
175
- const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
176
- expect(result.items).toEqual(GOLDEN_ITEMS);
177
- expect(result.stats.bundledSqsRecords).toBe(1);
178
- });
179
- it('CompressionStream output matches zlib output content', async () => {
180
- const json = JSON.stringify(GOLDEN_ITEMS);
181
- const cfCompressed = await cfWorkerCompress(new TextEncoder().encode(json));
182
- const nodeCompressed = await gzip(Buffer.from(json, 'utf8'));
183
- const cfDecompressed = await gunzip(Buffer.from(cfCompressed));
184
- const nodeDecompressed = await gunzip(nodeCompressed);
185
- expect(cfDecompressed.toString('utf8')).toBe(json);
186
- expect(nodeDecompressed.toString('utf8')).toBe(json);
187
- expect(cfDecompressed.toString('utf8')).toBe(nodeDecompressed.toString('utf8'));
188
- });
189
- });
190
- describe('Unicode and Special Characters', () => {
191
- it('emoji and CJK characters survive CF Worker compression round-trip', async () => {
192
- const unicodeItems = [
193
- { pixelId: 'px_emoji', event: '🎉_celebration', data: { message: 'Success! 🚀✨' } },
194
- { pixelId: 'px_cjk', event: 'page_view', data: { title: '中文页面标题', description: '日本語の説明' } },
195
- { pixelId: 'px_rtl', event: 'page_view', data: { title: 'مرحبا بالعالم', content: 'שלום עולם' } },
196
- ];
197
- const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', unicodeItems);
198
- const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
199
- const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
200
- expect(result.items).toHaveLength(3);
201
- expect(result.items).toEqual(unicodeItems);
202
- const item0 = result.items[0];
203
- const item1 = result.items[1];
204
- const item2 = result.items[2];
205
- expect(item0.event).toBe('🎉_celebration');
206
- expect(item0.data.message).toBe('Success! 🚀✨');
207
- expect(item1.data.title).toBe('中文页面标题');
208
- expect(item2.data.title).toBe('مرحبا بالعالم');
209
- });
210
- it('special characters in JSON survive round-trip', async () => {
211
- const specialItems = [
212
- { pixelId: 'px_special', data: { name: 'O\'Brien & Co.', note: 'Line1\nLine2\tTabbed' } },
213
- { pixelId: 'px_quotes', data: { text: 'He said "hello"', escaped: '\\backslash' } },
214
- ];
215
- const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', specialItems);
216
- const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
217
- const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
218
- expect(result.items).toEqual(specialItems);
219
- });
220
- });
221
- describe('Large Payload Handling', () => {
222
- it('100 items compressed by CF Worker decompresses correctly', async () => {
223
- const items = Array.from({ length: 100 }, (_, i) => ({
224
- pixelId: `px_${i.toString().padStart(4, '0')}`,
225
- event: i % 2 === 0 ? 'page_view' : 'purchase',
226
- timestamp: new Date(Date.now() - i * 1000).toISOString(),
227
- }));
228
- const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
229
- const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
230
- const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
231
- expect(result.items).toHaveLength(100);
232
- expect(result.items).toEqual(items);
233
- });
234
- it('deeply nested objects survive compression', async () => {
235
- const nestedItems = [
236
- {
237
- pixelId: 'px_nested',
238
- data: {
239
- level1: {
240
- level2: {
241
- level3: {
242
- level4: {
243
- value: 'deep value',
244
- array: [1, 2, 3, { nested: true }],
245
- },
246
- },
247
- },
248
- },
249
- },
250
- },
251
- ];
252
- const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', nestedItems);
253
- const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
254
- const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
255
- expect(result.items).toEqual(nestedItems);
256
- const item = result.items[0];
257
- expect(item.data.level1.level2.level3.level4.value).toBe('deep value');
258
- });
259
- });
260
- describe('Edge Cases', () => {
261
- it('empty array compresses/decompresses correctly', async () => {
262
- const items = [];
263
- const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
264
- const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
265
- const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
266
- expect(result.items).toHaveLength(0);
267
- expect(result.failedMessageIds).toHaveLength(0);
268
- });
269
- it('single item compresses/decompresses correctly', async () => {
270
- const items = [{ pixelId: 'px_single' }];
271
- const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
272
- const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
273
- const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
274
- expect(result.items).toEqual(items);
275
- });
276
- it('null and undefined values in objects preserved', async () => {
277
- const items = [
278
- { pixelId: 'px_nulls', value: null, nested: { alsoNull: null } },
279
- { pixelId: 'px_zero', count: 0, price: 0.0 },
280
- { pixelId: 'px_empty', name: '', items: [] },
281
- { pixelId: 'px_bool', enabled: false, disabled: true },
282
- ];
283
- const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
284
- const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
285
- const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
286
- expect(result.items).toEqual(items);
287
- const item0 = result.items[0];
288
- const item1 = result.items[1];
289
- const item2 = result.items[2];
290
- const item3 = result.items[3];
291
- expect(item0.value).toBeNull();
292
- expect(item0?.nested?.alsoNull).toBeNull();
293
- expect(item1.count).toBe(0);
294
- expect(item1.price).toBe(0.0);
295
- expect(item2.name).toBe('');
296
- expect(item2.items).toEqual([]);
297
- expect(item3.enabled).toBe(false);
298
- expect(item3.disabled).toBe(true);
299
- });
300
- });
301
- describe('GZIP Header Validation', () => {
302
- it('CF Worker compression produces valid GZIP header', async () => {
303
- const data = new TextEncoder().encode('test data');
304
- const compressed = await cfWorkerCompress(data);
305
- expect(compressed[0]).toBe(0x1f);
306
- expect(compressed[1]).toBe(0x8b);
307
- expect(compressed[2]).toBe(8);
308
- });
309
- it('Node zlib compression produces valid GZIP header', async () => {
310
- const compressed = await gzip(Buffer.from('test data', 'utf8'));
311
- expect(compressed[0]).toBe(0x1f);
312
- expect(compressed[1]).toBe(0x8b);
313
- expect(compressed[2]).toBe(8);
314
- });
315
- });
316
- describe('Mixed Batch Processing', () => {
317
- it('handles mix of CF Worker compressed and Node compressed records', async () => {
318
- const cfItems = [{ pixelId: 'px_cf_001' }, { pixelId: 'px_cf_002' }];
319
- const cfMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', cfItems);
320
- const nodeItems = [{ pixelId: 'px_node_001' }];
321
- const nodeJson = JSON.stringify(nodeItems);
322
- const nodeCompressed = await gzip(Buffer.from(nodeJson, 'utf8'));
323
- const nodeEnvelope = {
324
- v: 1,
325
- c: 'gzip',
326
- n: 1,
327
- p: nodeCompressed.toString('base64'),
328
- s: nodeJson.length,
329
- };
330
- const nodeMessage = {
331
- messageId: crypto.randomUUID(),
332
- messageType: 'TRACKING_EVENT_COLLECT',
333
- messageTime: new Date().toISOString(),
334
- messageBody: nodeEnvelope,
335
- };
336
- const legacyItem = { pixelId: 'px_legacy' };
337
- const records = [
338
- createSQSRecord(JSON.stringify(cfMessage), 'msg-cf'),
339
- createSQSRecord(JSON.stringify(nodeMessage), 'msg-node'),
340
- createSQSRecord(JSON.stringify(legacyItem), 'msg-legacy'),
341
- ];
342
- const result = await (0, sqs_unbundle_1.unbundleRecords)(records);
343
- expect(result.items).toHaveLength(4);
344
- expect(result.failedMessageIds).toHaveLength(0);
345
- expect(result.stats.bundledSqsRecords).toBe(2);
346
- expect(result.stats.legacySqsRecords).toBe(1);
347
- const pixelIds = result.items.map((item) => item.pixelId);
348
- expect(pixelIds).toContain('px_cf_001');
349
- expect(pixelIds).toContain('px_cf_002');
350
- expect(pixelIds).toContain('px_node_001');
351
- expect(pixelIds).toContain('px_legacy');
352
- });
353
- });
354
- });
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const zlib = __importStar(require("zlib"));
37
+ const util_1 = require("util");
38
+ const sqs_unbundle_1 = require("../../clients/generic/sqs-unbundle");
39
+ const compression_1 = require("../../utils/compression");
40
+ const sqs_bundled_client_types_1 = require("../../clients/generic/sqs-bundled-client.types");
41
+ const gzip = (0, util_1.promisify)(zlib.gzip);
42
+ const gunzip = (0, util_1.promisify)(zlib.gunzip);
43
+ async function cfWorkerCompress(data) {
44
+ const stream = new CompressionStream('gzip');
45
+ const writer = stream.writable.getWriter();
46
+ await writer.write(data);
47
+ await writer.close();
48
+ const chunks = [];
49
+ const reader = stream.readable.getReader();
50
+ for (;;) {
51
+ const { done, value } = await reader.read();
52
+ if (done)
53
+ break;
54
+ chunks.push(value);
55
+ }
56
+ const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
57
+ const result = new Uint8Array(totalLength);
58
+ let offset = 0;
59
+ for (const chunk of chunks) {
60
+ result.set(chunk, offset);
61
+ offset += chunk.length;
62
+ }
63
+ return result;
64
+ }
65
+ function cfWorkerToBase64(bytes) {
66
+ let binary = '';
67
+ for (let i = 0; i < bytes.length; i++) {
68
+ binary += String.fromCharCode(bytes[i]);
69
+ }
70
+ return btoa(binary);
71
+ }
72
+ async function createCfWorkerBundledMessage(messageType, items) {
73
+ const json = JSON.stringify(items);
74
+ const encoder = new TextEncoder();
75
+ const uncompressed = encoder.encode(json);
76
+ const compressed = await cfWorkerCompress(uncompressed);
77
+ const base64 = cfWorkerToBase64(compressed);
78
+ const envelope = {
79
+ v: 1,
80
+ c: 'gzip',
81
+ n: items.length,
82
+ p: base64,
83
+ s: json.length,
84
+ };
85
+ return {
86
+ messageId: crypto.randomUUID(),
87
+ messageType,
88
+ messageTime: new Date().toISOString(),
89
+ messageBody: envelope,
90
+ };
91
+ }
92
+ function createSQSRecord(body, messageId) {
93
+ return {
94
+ messageId: messageId ?? crypto.randomUUID(),
95
+ receiptHandle: 'test-receipt-handle',
96
+ body,
97
+ attributes: {
98
+ ApproximateReceiveCount: '1',
99
+ SentTimestamp: Date.now().toString(),
100
+ SenderId: 'test-sender',
101
+ ApproximateFirstReceiveTimestamp: Date.now().toString(),
102
+ },
103
+ messageAttributes: {},
104
+ md5OfBody: 'test-md5',
105
+ eventSource: 'aws:sqs',
106
+ eventSourceARN: 'arn:aws:sqs:us-east-1:123456789:test-queue',
107
+ awsRegion: 'us-east-1',
108
+ };
109
+ }
110
+ const GOLDEN_ITEMS = [
111
+ { pixelId: 'px_golden_001', event: 'page_view', data: { url: 'https://example.com/test' } },
112
+ { pixelId: 'px_golden_002', event: 'purchase', data: { amount: 99.99, currency: 'USD' } },
113
+ ];
114
+ const GOLDEN_GZIP_BASE64 = 'H4sIAAAAAAAACnXMvQrDIBhG4Xt5Z4lpN527dC6dShHRjyTgH0ZTS/DeS7YsXc+B57UjLY3c3UIiNTVFZymocbyAgTYK5eh6IrUt9AGD1UVD7qjZQWIuJa2Sc2raJ0eDiZ4XWgt6Z//k61mu2cx6pROsfazHE2IQgsHUnCmYLySejxt6f/8AfIEZO7MAAAA=';
115
+ describe('Cross-Platform Compression Compatibility', () => {
116
+ describe('CompressionStream (CF Worker) → zlib.gunzip (Lambda)', () => {
117
+ it('basic payload round-trips correctly', async () => {
118
+ const originalData = { pixelId: 'px_test', event: 'page_view' };
119
+ const json = JSON.stringify([originalData]);
120
+ const compressed = await cfWorkerCompress(new TextEncoder().encode(json));
121
+ expect(compressed[0]).toBe(0x1f);
122
+ expect(compressed[1]).toBe(0x8b);
123
+ const decompressed = await gunzip(Buffer.from(compressed));
124
+ const parsed = JSON.parse(decompressed.toString('utf8'));
125
+ expect(parsed).toEqual([originalData]);
126
+ });
127
+ it('CompressionStream output is valid GZIP decompressible by at-service-common', async () => {
128
+ const items = [{ pixelId: 'px_001' }, { pixelId: 'px_002' }];
129
+ const json = JSON.stringify(items);
130
+ const compressed = await cfWorkerCompress(new TextEncoder().encode(json));
131
+ const base64 = cfWorkerToBase64(compressed);
132
+ const result = await (0, compression_1.decompressFromBase64)(base64, sqs_bundled_client_types_1.CompressionAlgorithm.GZIP);
133
+ expect(result).toEqual(items);
134
+ });
135
+ it('unbundleRecords handles CF Worker compressed messages', async () => {
136
+ const items = [
137
+ { pixelId: 'px_cfworker_001', event: 'PageView' },
138
+ { pixelId: 'px_cfworker_002', event: 'AddToCart' },
139
+ ];
140
+ const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
141
+ const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
142
+ const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
143
+ expect(result.items).toHaveLength(2);
144
+ expect(result.failedMessageIds).toHaveLength(0);
145
+ expect(result.items).toEqual(items);
146
+ });
147
+ });
148
+ describe('Node zlib.gzip zlib.gunzip (baseline)', () => {
149
+ it('Node gzip/gunzip round-trips correctly', async () => {
150
+ const original = { test: 'data', number: 123 };
151
+ const json = JSON.stringify(original);
152
+ const compressed = await gzip(Buffer.from(json, 'utf8'));
153
+ const decompressed = await gunzip(compressed);
154
+ expect(JSON.parse(decompressed.toString('utf8'))).toEqual(original);
155
+ });
156
+ it('Node gzip output is decompressible by at-service-common', async () => {
157
+ const items = [{ id: 1 }, { id: 2 }];
158
+ const json = JSON.stringify(items);
159
+ const compressed = await gzip(Buffer.from(json, 'utf8'));
160
+ const base64 = compressed.toString('base64');
161
+ const result = await (0, compression_1.decompressFromBase64)(base64, sqs_bundled_client_types_1.CompressionAlgorithm.GZIP);
162
+ expect(result).toEqual(items);
163
+ });
164
+ });
165
+ describe('Golden Payload Compatibility', () => {
166
+ it('golden payload from at-cf-tracking-api is decompressible', async () => {
167
+ const result = await (0, compression_1.decompressFromBase64)(GOLDEN_GZIP_BASE64, sqs_bundled_client_types_1.CompressionAlgorithm.GZIP);
168
+ expect(result).toEqual(GOLDEN_ITEMS);
169
+ });
170
+ it('golden payload works through full unbundleRecords path', async () => {
171
+ const envelope = {
172
+ v: 1,
173
+ c: 'gzip',
174
+ n: GOLDEN_ITEMS.length,
175
+ p: GOLDEN_GZIP_BASE64,
176
+ s: 179,
177
+ };
178
+ const wrapped = {
179
+ messageId: 'golden-test-id',
180
+ messageType: 'TRACKING_EVENT_COLLECT',
181
+ messageTime: new Date().toISOString(),
182
+ messageBody: envelope,
183
+ };
184
+ const sqsRecord = createSQSRecord(JSON.stringify(wrapped));
185
+ const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
186
+ expect(result.items).toEqual(GOLDEN_ITEMS);
187
+ expect(result.stats.bundledSqsRecords).toBe(1);
188
+ });
189
+ it('CompressionStream output matches zlib output content', async () => {
190
+ const json = JSON.stringify(GOLDEN_ITEMS);
191
+ const cfCompressed = await cfWorkerCompress(new TextEncoder().encode(json));
192
+ const nodeCompressed = await gzip(Buffer.from(json, 'utf8'));
193
+ const cfDecompressed = await gunzip(Buffer.from(cfCompressed));
194
+ const nodeDecompressed = await gunzip(nodeCompressed);
195
+ expect(cfDecompressed.toString('utf8')).toBe(json);
196
+ expect(nodeDecompressed.toString('utf8')).toBe(json);
197
+ expect(cfDecompressed.toString('utf8')).toBe(nodeDecompressed.toString('utf8'));
198
+ });
199
+ });
200
+ describe('Unicode and Special Characters', () => {
201
+ it('emoji and CJK characters survive CF Worker compression round-trip', async () => {
202
+ const unicodeItems = [
203
+ { pixelId: 'px_emoji', event: '🎉_celebration', data: { message: 'Success! 🚀✨' } },
204
+ { pixelId: 'px_cjk', event: 'page_view', data: { title: '中文页面标题', description: '日本語の説明' } },
205
+ { pixelId: 'px_rtl', event: 'page_view', data: { title: 'مرحبا بالعالم', content: 'שלום עולם' } },
206
+ ];
207
+ const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', unicodeItems);
208
+ const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
209
+ const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
210
+ expect(result.items).toHaveLength(3);
211
+ expect(result.items).toEqual(unicodeItems);
212
+ const item0 = result.items[0];
213
+ const item1 = result.items[1];
214
+ const item2 = result.items[2];
215
+ expect(item0.event).toBe('🎉_celebration');
216
+ expect(item0.data.message).toBe('Success! 🚀✨');
217
+ expect(item1.data.title).toBe('中文页面标题');
218
+ expect(item2.data.title).toBe('مرحبا بالعالم');
219
+ });
220
+ it('special characters in JSON survive round-trip', async () => {
221
+ const specialItems = [
222
+ { pixelId: 'px_special', data: { name: 'O\'Brien & Co.', note: 'Line1\nLine2\tTabbed' } },
223
+ { pixelId: 'px_quotes', data: { text: 'He said "hello"', escaped: '\\backslash' } },
224
+ ];
225
+ const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', specialItems);
226
+ const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
227
+ const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
228
+ expect(result.items).toEqual(specialItems);
229
+ });
230
+ });
231
+ describe('Large Payload Handling', () => {
232
+ it('100 items compressed by CF Worker decompresses correctly', async () => {
233
+ const items = Array.from({ length: 100 }, (_, i) => ({
234
+ pixelId: `px_${i.toString().padStart(4, '0')}`,
235
+ event: i % 2 === 0 ? 'page_view' : 'purchase',
236
+ timestamp: new Date(Date.now() - i * 1000).toISOString(),
237
+ }));
238
+ const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
239
+ const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
240
+ const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
241
+ expect(result.items).toHaveLength(100);
242
+ expect(result.items).toEqual(items);
243
+ });
244
+ it('deeply nested objects survive compression', async () => {
245
+ const nestedItems = [
246
+ {
247
+ pixelId: 'px_nested',
248
+ data: {
249
+ level1: {
250
+ level2: {
251
+ level3: {
252
+ level4: {
253
+ value: 'deep value',
254
+ array: [1, 2, 3, { nested: true }],
255
+ },
256
+ },
257
+ },
258
+ },
259
+ },
260
+ },
261
+ ];
262
+ const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', nestedItems);
263
+ const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
264
+ const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
265
+ expect(result.items).toEqual(nestedItems);
266
+ const item = result.items[0];
267
+ expect(item.data.level1.level2.level3.level4.value).toBe('deep value');
268
+ });
269
+ });
270
+ describe('Edge Cases', () => {
271
+ it('empty array compresses/decompresses correctly', async () => {
272
+ const items = [];
273
+ const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
274
+ const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
275
+ const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
276
+ expect(result.items).toHaveLength(0);
277
+ expect(result.failedMessageIds).toHaveLength(0);
278
+ });
279
+ it('single item compresses/decompresses correctly', async () => {
280
+ const items = [{ pixelId: 'px_single' }];
281
+ const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
282
+ const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
283
+ const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
284
+ expect(result.items).toEqual(items);
285
+ });
286
+ it('null and undefined values in objects preserved', async () => {
287
+ const items = [
288
+ { pixelId: 'px_nulls', value: null, nested: { alsoNull: null } },
289
+ { pixelId: 'px_zero', count: 0, price: 0.0 },
290
+ { pixelId: 'px_empty', name: '', items: [] },
291
+ { pixelId: 'px_bool', enabled: false, disabled: true },
292
+ ];
293
+ const bundledMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', items);
294
+ const sqsRecord = createSQSRecord(JSON.stringify(bundledMessage));
295
+ const result = await (0, sqs_unbundle_1.unbundleRecords)([sqsRecord]);
296
+ expect(result.items).toEqual(items);
297
+ const item0 = result.items[0];
298
+ const item1 = result.items[1];
299
+ const item2 = result.items[2];
300
+ const item3 = result.items[3];
301
+ expect(item0.value).toBeNull();
302
+ expect(item0?.nested?.alsoNull).toBeNull();
303
+ expect(item1.count).toBe(0);
304
+ expect(item1.price).toBe(0.0);
305
+ expect(item2.name).toBe('');
306
+ expect(item2.items).toEqual([]);
307
+ expect(item3.enabled).toBe(false);
308
+ expect(item3.disabled).toBe(true);
309
+ });
310
+ });
311
+ describe('GZIP Header Validation', () => {
312
+ it('CF Worker compression produces valid GZIP header', async () => {
313
+ const data = new TextEncoder().encode('test data');
314
+ const compressed = await cfWorkerCompress(data);
315
+ expect(compressed[0]).toBe(0x1f);
316
+ expect(compressed[1]).toBe(0x8b);
317
+ expect(compressed[2]).toBe(8);
318
+ });
319
+ it('Node zlib compression produces valid GZIP header', async () => {
320
+ const compressed = await gzip(Buffer.from('test data', 'utf8'));
321
+ expect(compressed[0]).toBe(0x1f);
322
+ expect(compressed[1]).toBe(0x8b);
323
+ expect(compressed[2]).toBe(8);
324
+ });
325
+ });
326
+ describe('Mixed Batch Processing', () => {
327
+ it('handles mix of CF Worker compressed and Node compressed records', async () => {
328
+ const cfItems = [{ pixelId: 'px_cf_001' }, { pixelId: 'px_cf_002' }];
329
+ const cfMessage = await createCfWorkerBundledMessage('TRACKING_EVENT_COLLECT', cfItems);
330
+ const nodeItems = [{ pixelId: 'px_node_001' }];
331
+ const nodeJson = JSON.stringify(nodeItems);
332
+ const nodeCompressed = await gzip(Buffer.from(nodeJson, 'utf8'));
333
+ const nodeEnvelope = {
334
+ v: 1,
335
+ c: 'gzip',
336
+ n: 1,
337
+ p: nodeCompressed.toString('base64'),
338
+ s: nodeJson.length,
339
+ };
340
+ const nodeMessage = {
341
+ messageId: crypto.randomUUID(),
342
+ messageType: 'TRACKING_EVENT_COLLECT',
343
+ messageTime: new Date().toISOString(),
344
+ messageBody: nodeEnvelope,
345
+ };
346
+ const legacyItem = { pixelId: 'px_legacy' };
347
+ const records = [
348
+ createSQSRecord(JSON.stringify(cfMessage), 'msg-cf'),
349
+ createSQSRecord(JSON.stringify(nodeMessage), 'msg-node'),
350
+ createSQSRecord(JSON.stringify(legacyItem), 'msg-legacy'),
351
+ ];
352
+ const result = await (0, sqs_unbundle_1.unbundleRecords)(records);
353
+ expect(result.items).toHaveLength(4);
354
+ expect(result.failedMessageIds).toHaveLength(0);
355
+ expect(result.stats.bundledSqsRecords).toBe(2);
356
+ expect(result.stats.legacySqsRecords).toBe(1);
357
+ const pixelIds = result.items.map((item) => item.pixelId);
358
+ expect(pixelIds).toContain('px_cf_001');
359
+ expect(pixelIds).toContain('px_cf_002');
360
+ expect(pixelIds).toContain('px_node_001');
361
+ expect(pixelIds).toContain('px_legacy');
362
+ });
363
+ });
364
+ });
355
365
  //# sourceMappingURL=cross-platform-compression.spec.js.map