@adtrackify/at-service-common 5.1.2 → 5.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/dist/cjs/__tests__/clients/acuity-client.spec.js +20 -21
  2. package/dist/cjs/__tests__/clients/acuity-client.spec.js.map +1 -1
  3. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js +86 -97
  4. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
  5. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js +95 -94
  6. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  7. package/dist/cjs/__tests__/clients/event-collector-client.spec.js +58 -58
  8. package/dist/cjs/__tests__/clients/event-collector-client.spec.js.map +1 -1
  9. package/dist/cjs/__tests__/clients/liveintent-client.spec.js +37 -0
  10. package/dist/cjs/__tests__/clients/liveintent-client.spec.js.map +1 -0
  11. package/dist/cjs/__tests__/clients/open-exchange-rates-client.spec.js +17 -18
  12. package/dist/cjs/__tests__/clients/open-exchange-rates-client.spec.js.map +1 -1
  13. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +255 -273
  14. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
  15. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js +125 -137
  16. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -1
  17. package/dist/cjs/__tests__/clients/sqs-client.spec.js +77 -78
  18. package/dist/cjs/__tests__/clients/sqs-client.spec.js.map +1 -1
  19. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +430 -431
  20. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
  21. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +29 -30
  22. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -1
  23. package/dist/cjs/__tests__/db/destinations-db-service.spec.js +47 -45
  24. package/dist/cjs/__tests__/db/destinations-db-service.spec.js.map +1 -1
  25. package/dist/cjs/__tests__/db/products-db-service.spec.js +40 -41
  26. package/dist/cjs/__tests__/db/products-db-service.spec.js.map +1 -1
  27. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +26 -27
  28. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js.map +1 -1
  29. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js +37 -38
  30. package/dist/cjs/__tests__/db/shopify-app-installs-db-service.spec.js.map +1 -1
  31. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js +35 -36
  32. package/dist/cjs/__tests__/db/subscriptions-db-service.spec.js.map +1 -1
  33. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js +27 -28
  34. package/dist/cjs/__tests__/db/user-accounts-db-service.spec.js.map +1 -1
  35. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +64 -65
  36. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js.map +1 -1
  37. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js +18 -19
  38. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js.map +1 -1
  39. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +23 -24
  40. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -1
  41. package/dist/cjs/__tests__/helpers/cognito-auth-helper.spec.js +16 -17
  42. package/dist/cjs/__tests__/helpers/cognito-auth-helper.spec.js.map +1 -1
  43. package/dist/cjs/__tests__/helpers/order-calculation-helper.spec.js +42 -43
  44. package/dist/cjs/__tests__/helpers/order-calculation-helper.spec.js.map +1 -1
  45. package/dist/cjs/__tests__/helpers/public-api-response-helper.spec.js +23 -24
  46. package/dist/cjs/__tests__/helpers/public-api-response-helper.spec.js.map +1 -1
  47. package/dist/cjs/__tests__/identity-cache/helpers.spec.js +114 -115
  48. package/dist/cjs/__tests__/identity-cache/helpers.spec.js.map +1 -1
  49. package/dist/cjs/__tests__/identity-cache/identity-cache-alias-write.spec.js +29 -30
  50. package/dist/cjs/__tests__/identity-cache/identity-cache-alias-write.spec.js.map +1 -1
  51. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +19 -20
  52. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
  53. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +200 -223
  54. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
  55. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js +114 -123
  56. package/dist/cjs/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  57. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js +107 -110
  58. package/dist/cjs/__tests__/identity-cache/identity-client.spec.js.map +1 -1
  59. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +31 -32
  60. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -1
  61. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +47 -60
  62. package/dist/cjs/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -1
  63. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js +15 -16
  64. package/dist/cjs/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -1
  65. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +28 -35
  66. package/dist/cjs/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -1
  67. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +27 -28
  68. package/dist/cjs/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -1
  69. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +52 -74
  70. package/dist/cjs/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -1
  71. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.d.ts +18 -14
  72. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js +30 -37
  73. package/dist/cjs/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -1
  74. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +424 -403
  75. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
  76. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js +218 -219
  77. package/dist/cjs/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
  78. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +117 -118
  79. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
  80. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +7 -8
  81. package/dist/cjs/__tests__/libs/compress-decompress.spec.js.map +1 -1
  82. package/dist/cjs/__tests__/libs/contacts.spec.js +101 -102
  83. package/dist/cjs/__tests__/libs/contacts.spec.js.map +1 -1
  84. package/dist/cjs/__tests__/libs/currency.spec.js +56 -57
  85. package/dist/cjs/__tests__/libs/currency.spec.js.map +1 -1
  86. package/dist/cjs/__tests__/libs/dates.spec.js +94 -82
  87. package/dist/cjs/__tests__/libs/dates.spec.js.map +1 -1
  88. package/dist/cjs/__tests__/libs/domain.spec.js +68 -69
  89. package/dist/cjs/__tests__/libs/domain.spec.js.map +1 -1
  90. package/dist/cjs/__tests__/libs/numbers.spec.js +249 -250
  91. package/dist/cjs/__tests__/libs/numbers.spec.js.map +1 -1
  92. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +16 -15
  93. package/dist/cjs/__tests__/s3-client/s3-client.spec.js.map +1 -1
  94. package/dist/cjs/__tests__/services/acuity-api-service.spec.js +32 -35
  95. package/dist/cjs/__tests__/services/acuity-api-service.spec.js.map +1 -1
  96. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js +14 -15
  97. package/dist/cjs/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -1
  98. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js +949 -1187
  99. package/dist/cjs/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -1
  100. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js +39 -40
  101. package/dist/cjs/__tests__/services/cost/cost-currency-service.spec.js.map +1 -1
  102. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js +204 -201
  103. package/dist/cjs/__tests__/services/cost/cost-filter-service.spec.js.map +1 -1
  104. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +174 -299
  105. package/dist/cjs/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -1
  106. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js +39 -41
  107. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -1
  108. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js +22 -27
  109. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -1
  110. package/dist/cjs/__tests__/services/events/collect-queue-tracking-service.spec.js +64 -67
  111. package/dist/cjs/__tests__/services/events/collect-queue-tracking-service.spec.js.map +1 -1
  112. package/dist/cjs/__tests__/services/events/tracking-event-sqs-service.spec.js +51 -54
  113. package/dist/cjs/__tests__/services/events/tracking-event-sqs-service.spec.js.map +1 -1
  114. package/dist/cjs/__tests__/services/liveintent-api-service.spec.js +67 -0
  115. package/dist/cjs/__tests__/services/liveintent-api-service.spec.js.map +1 -0
  116. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +9 -10
  117. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js.map +1 -1
  118. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js +58 -69
  119. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
  120. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js +31 -32
  121. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -1
  122. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js +64 -65
  123. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -1
  124. package/dist/cjs/clients/generic/cognito-client.js +14 -14
  125. package/dist/cjs/clients/generic/cognito-client.js.map +1 -1
  126. package/dist/cjs/clients/generic/dynamodb-client.js +9 -9
  127. package/dist/cjs/clients/generic/dynamodb-client.js.map +1 -1
  128. package/dist/cjs/clients/generic/eventbridge-client.js +2 -2
  129. package/dist/cjs/clients/generic/eventbridge-client.js.map +1 -1
  130. package/dist/cjs/clients/generic/http-client.js +5 -5
  131. package/dist/cjs/clients/generic/http-client.js.map +1 -1
  132. package/dist/cjs/clients/generic/lambda-invoke-client.js.map +1 -1
  133. package/dist/cjs/clients/generic/location-client.js +2 -2
  134. package/dist/cjs/clients/generic/location-client.js.map +1 -1
  135. package/dist/cjs/clients/generic/redis-client.js +2 -13
  136. package/dist/cjs/clients/generic/redis-client.js.map +1 -1
  137. package/dist/cjs/clients/generic/s3-client.d.ts +1 -0
  138. package/dist/cjs/clients/generic/s3-client.js +19 -19
  139. package/dist/cjs/clients/generic/s3-client.js.map +1 -1
  140. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +2 -2
  141. package/dist/cjs/clients/generic/singlestore-db-client.js +8 -18
  142. package/dist/cjs/clients/generic/singlestore-db-client.js.map +1 -1
  143. package/dist/cjs/clients/generic/sqs-bundled-client.js +2 -2
  144. package/dist/cjs/clients/generic/sqs-bundled-client.js.map +1 -1
  145. package/dist/cjs/clients/generic/sqs-bundled-client.types.js +1 -1
  146. package/dist/cjs/clients/generic/sqs-bundled-client.types.js.map +1 -1
  147. package/dist/cjs/clients/generic/sqs-client.d.ts +1 -1
  148. package/dist/cjs/clients/generic/sqs-client.js +2 -2
  149. package/dist/cjs/clients/generic/sqs-client.js.map +1 -1
  150. package/dist/cjs/clients/generic/sqs-unbundle.js +7 -6
  151. package/dist/cjs/clients/generic/sqs-unbundle.js.map +1 -1
  152. package/dist/cjs/clients/internal-api/accounts-client.js +14 -14
  153. package/dist/cjs/clients/internal-api/accounts-client.js.map +1 -1
  154. package/dist/cjs/clients/internal-api/cache-lambda-client.js.map +1 -1
  155. package/dist/cjs/clients/internal-api/db-management-client.js.map +1 -1
  156. package/dist/cjs/clients/internal-api/destinations-client.d.ts +2 -1
  157. package/dist/cjs/clients/internal-api/destinations-client.js +15 -8
  158. package/dist/cjs/clients/internal-api/destinations-client.js.map +1 -1
  159. package/dist/cjs/clients/internal-api/event-collector-client.js.map +1 -1
  160. package/dist/cjs/clients/internal-api/identity-client.js.map +1 -1
  161. package/dist/cjs/clients/internal-api/shopify-app-install-client.js.map +1 -1
  162. package/dist/cjs/clients/internal-api/subscriptions-client.js.map +1 -1
  163. package/dist/cjs/clients/internal-api/users-auth-client.js +11 -11
  164. package/dist/cjs/clients/internal-api/users-auth-client.js.map +1 -1
  165. package/dist/cjs/clients/third-party/acuity-client.js.map +1 -1
  166. package/dist/cjs/clients/third-party/emailable-client.js.map +1 -1
  167. package/dist/cjs/clients/third-party/index.d.ts +1 -0
  168. package/dist/cjs/clients/third-party/index.js +1 -0
  169. package/dist/cjs/clients/third-party/index.js.map +1 -1
  170. package/dist/cjs/clients/third-party/liveintent-client.d.ts +11 -0
  171. package/dist/cjs/clients/third-party/liveintent-client.js +25 -0
  172. package/dist/cjs/clients/third-party/liveintent-client.js.map +1 -0
  173. package/dist/cjs/clients/third-party/loops-client.js.map +1 -1
  174. package/dist/cjs/clients/third-party/open-exchange-rates-client.js.map +1 -1
  175. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
  176. package/dist/cjs/clients/third-party/shopify-client.js +15 -15
  177. package/dist/cjs/clients/third-party/shopify-client.js.map +1 -1
  178. package/dist/cjs/constants/sqs.js +5 -5
  179. package/dist/cjs/constants/sqs.js.map +1 -1
  180. package/dist/cjs/helpers/account-users-helper.js.map +1 -1
  181. package/dist/cjs/helpers/acuity-helper.js.map +1 -1
  182. package/dist/cjs/helpers/api-key-auth-helper.d.ts +1 -2
  183. package/dist/cjs/helpers/api-key-auth-helper.js.map +1 -1
  184. package/dist/cjs/helpers/api-key-authorizer-helper.js.map +1 -1
  185. package/dist/cjs/helpers/cognito-auth-helper.d.ts +1 -2
  186. package/dist/cjs/helpers/cognito-auth-helper.js.map +1 -1
  187. package/dist/cjs/helpers/input-validation-helper.d.ts +1 -1
  188. package/dist/cjs/helpers/input-validation-helper.js.map +1 -1
  189. package/dist/cjs/helpers/logging-helper.d.ts +5 -5
  190. package/dist/cjs/helpers/logging-helper.js +7 -17
  191. package/dist/cjs/helpers/logging-helper.js.map +1 -1
  192. package/dist/cjs/helpers/order-calculation-helper.js.map +1 -1
  193. package/dist/cjs/helpers/public-api-response-helper.js.map +1 -1
  194. package/dist/cjs/helpers/response-helper.js.map +1 -1
  195. package/dist/cjs/helpers/shopify-helper.js.map +1 -1
  196. package/dist/cjs/helpers/sqs-utils.js +4 -8
  197. package/dist/cjs/helpers/sqs-utils.js.map +1 -1
  198. package/dist/cjs/libs/api-router/public-api-router.d.ts +2 -2
  199. package/dist/cjs/libs/api-router/public-api-router.js.map +1 -1
  200. package/dist/cjs/libs/api-router/route-matcher.js.map +1 -1
  201. package/dist/cjs/libs/click-id-parser.js +1 -1
  202. package/dist/cjs/libs/click-id-parser.js.map +1 -1
  203. package/dist/cjs/libs/compression.d.ts +1 -1
  204. package/dist/cjs/libs/compression.js.map +1 -1
  205. package/dist/cjs/libs/contacts.js.map +1 -1
  206. package/dist/cjs/libs/cookie.js +1 -1
  207. package/dist/cjs/libs/cookie.js.map +1 -1
  208. package/dist/cjs/libs/crypto.js.map +1 -1
  209. package/dist/cjs/libs/csv.js.map +1 -1
  210. package/dist/cjs/libs/currency.js.map +1 -1
  211. package/dist/cjs/libs/dates.d.ts +1 -0
  212. package/dist/cjs/libs/dates.js +18 -1
  213. package/dist/cjs/libs/dates.js.map +1 -1
  214. package/dist/cjs/libs/domain.js.map +1 -1
  215. package/dist/cjs/libs/emails.js.map +1 -1
  216. package/dist/cjs/libs/http-error.js.map +1 -1
  217. package/dist/cjs/libs/http-status-codes.js +1 -1
  218. package/dist/cjs/libs/http-status-codes.js.map +1 -1
  219. package/dist/cjs/libs/numbers.js.map +1 -1
  220. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +1 -0
  221. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +2 -2
  222. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  223. package/dist/cjs/libs/strings.js.map +1 -1
  224. package/dist/cjs/libs/traits.js.map +1 -1
  225. package/dist/cjs/libs/url.js.map +1 -1
  226. package/dist/cjs/services/acuity-api-service.js.map +1 -1
  227. package/dist/cjs/services/cache/product-cache-service.js.map +1 -1
  228. package/dist/cjs/services/cost/cost-calculation-types.js +2 -1
  229. package/dist/cjs/services/cost/cost-calculation-types.js.map +1 -1
  230. package/dist/cjs/services/cost/cost-calculator-service.js +10 -43
  231. package/dist/cjs/services/cost/cost-calculator-service.js.map +1 -1
  232. package/dist/cjs/services/cost/cost-currency-service.js.map +1 -1
  233. package/dist/cjs/services/cost/cost-filter-service.js +7 -16
  234. package/dist/cjs/services/cost/cost-filter-service.js.map +1 -1
  235. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js +9 -24
  236. package/dist/cjs/services/cost/order-cost/order-cost-resolution-service.js.map +1 -1
  237. package/dist/cjs/services/db/accounts-db-service.js.map +1 -1
  238. package/dist/cjs/services/db/api-keys-db-service.js.map +1 -1
  239. package/dist/cjs/services/db/contact-enrichments-db-service.js.map +1 -1
  240. package/dist/cjs/services/db/custom-measures-db-service.js.map +1 -1
  241. package/dist/cjs/services/db/destinations-db-service.js.map +1 -1
  242. package/dist/cjs/services/db/identity-cache-db-service.d.ts +1 -1
  243. package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
  244. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +1 -5
  245. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  246. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +7 -21
  247. package/dist/cjs/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  248. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js +7 -7
  249. package/dist/cjs/services/db/identity-cache-dynamodb-service/key-builders.js.map +1 -1
  250. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js +3 -3
  251. package/dist/cjs/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  252. package/dist/cjs/services/db/index.d.ts +0 -1
  253. package/dist/cjs/services/db/index.js +0 -1
  254. package/dist/cjs/services/db/index.js.map +1 -1
  255. package/dist/cjs/services/db/log-events-db-service.js.map +1 -1
  256. package/dist/cjs/services/db/pixels-db-service.js.map +1 -1
  257. package/dist/cjs/services/db/products-db-service.js +16 -45
  258. package/dist/cjs/services/db/products-db-service.js.map +1 -1
  259. package/dist/cjs/services/db/purchasable-contacts-db-service.js.map +1 -1
  260. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
  261. package/dist/cjs/services/db/shopify-app-installs-db-service.js.map +1 -1
  262. package/dist/cjs/services/db/shopify-products-cache-db-service.js.map +1 -1
  263. package/dist/cjs/services/db/subscriptions-db-service.js.map +1 -1
  264. package/dist/cjs/services/db/tracking-events-db-service.js.map +1 -1
  265. package/dist/cjs/services/db/user-accounts-db-service.js.map +1 -1
  266. package/dist/cjs/services/email-verification/contact-email-verification-service.js.map +1 -1
  267. package/dist/cjs/services/email-verification/email-verification-service.js.map +1 -1
  268. package/dist/cjs/services/eventbridge-integration-service.js.map +1 -1
  269. package/dist/cjs/services/events/build-collect-queue-tracking-event.js +2 -2
  270. package/dist/cjs/services/events/build-collect-queue-tracking-event.js.map +1 -1
  271. package/dist/cjs/services/events/collect-queue-tracking-service.js.map +1 -1
  272. package/dist/cjs/services/events/log-event-service.js.map +1 -1
  273. package/dist/cjs/services/events/metric-event-service.js.map +1 -1
  274. package/dist/cjs/services/events/tracking-event-sqs-service.js.map +1 -1
  275. package/dist/cjs/services/generic-cache-service.js.map +1 -1
  276. package/dist/cjs/services/index.d.ts +1 -1
  277. package/dist/cjs/services/index.js +1 -1
  278. package/dist/cjs/services/index.js.map +1 -1
  279. package/dist/cjs/services/ipdata-lookup-service.d.ts +1 -1
  280. package/dist/cjs/services/ipdata-lookup-service.js.map +1 -1
  281. package/dist/cjs/services/liveintent-api-service.d.ts +15 -0
  282. package/dist/cjs/services/liveintent-api-service.js +59 -0
  283. package/dist/cjs/services/liveintent-api-service.js.map +1 -0
  284. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
  285. package/dist/cjs/services/shopify/shopify-graphql-transformer.js +1 -1
  286. package/dist/cjs/services/shopify/shopify-graphql-transformer.js.map +1 -1
  287. package/dist/cjs/types/index.d.ts +1 -0
  288. package/dist/cjs/types/index.js +8 -17
  289. package/dist/cjs/types/index.js.map +1 -1
  290. package/dist/cjs/types/internal-events/event-detail-types.js +4 -4
  291. package/dist/cjs/types/internal-events/event-detail-types.js.map +1 -1
  292. package/dist/cjs/types/liveintent-types.d.ts +8 -0
  293. package/dist/cjs/types/liveintent-types.js +3 -0
  294. package/dist/cjs/types/liveintent-types.js.map +1 -0
  295. package/dist/cjs/types/public-api-types.js +1 -1
  296. package/dist/cjs/types/public-api-types.js.map +1 -1
  297. package/dist/cjs/types/shopify-graphql-types/admin.types.js +491 -491
  298. package/dist/cjs/types/shopify-graphql-types/admin.types.js.map +1 -1
  299. package/dist/cjs/types/shopify-rest-types.d.ts +1 -1
  300. package/dist/cjs/utils/compression.d.ts +2 -0
  301. package/dist/cjs/utils/compression.js +11 -11
  302. package/dist/cjs/utils/compression.js.map +1 -1
  303. package/dist/cjs/utils/custom-measure-formula-utils.js.map +1 -1
  304. package/dist/cjs/utils/retry-envelope.js +4 -3
  305. package/dist/cjs/utils/retry-envelope.js.map +1 -1
  306. package/dist/cjs/utils/size.js +3 -2
  307. package/dist/cjs/utils/size.js.map +1 -1
  308. package/dist/esm/__tests__/clients/acuity-client.spec.js +5 -6
  309. package/dist/esm/__tests__/clients/acuity-client.spec.js.map +1 -1
  310. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js +0 -1
  311. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js.map +1 -1
  312. package/dist/esm/__tests__/clients/dynamodb-client.spec.js +42 -41
  313. package/dist/esm/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  314. package/dist/esm/__tests__/clients/event-collector-client.spec.js +18 -18
  315. package/dist/esm/__tests__/clients/event-collector-client.spec.js.map +1 -1
  316. package/dist/esm/__tests__/clients/liveintent-client.spec.js +35 -0
  317. package/dist/esm/__tests__/clients/liveintent-client.spec.js.map +1 -0
  318. package/dist/esm/__tests__/clients/open-exchange-rates-client.spec.js +3 -4
  319. package/dist/esm/__tests__/clients/open-exchange-rates-client.spec.js.map +1 -1
  320. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +47 -55
  321. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js.map +1 -1
  322. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js +1 -3
  323. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -1
  324. package/dist/esm/__tests__/clients/sqs-client.spec.js +21 -22
  325. package/dist/esm/__tests__/clients/sqs-client.spec.js.map +1 -1
  326. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +8 -9
  327. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js.map +1 -1
  328. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +5 -6
  329. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -1
  330. package/dist/esm/__tests__/db/destinations-db-service.spec.js +11 -9
  331. package/dist/esm/__tests__/db/destinations-db-service.spec.js.map +1 -1
  332. package/dist/esm/__tests__/db/products-db-service.spec.js +8 -9
  333. package/dist/esm/__tests__/db/products-db-service.spec.js.map +1 -1
  334. package/dist/esm/__tests__/db/shared-read-db-services.spec.js +6 -7
  335. package/dist/esm/__tests__/db/shared-read-db-services.spec.js.map +1 -1
  336. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js +12 -13
  337. package/dist/esm/__tests__/db/shopify-app-installs-db-service.spec.js.map +1 -1
  338. package/dist/esm/__tests__/db/subscriptions-db-service.spec.js +11 -12
  339. package/dist/esm/__tests__/db/subscriptions-db-service.spec.js.map +1 -1
  340. package/dist/esm/__tests__/db/user-accounts-db-service.spec.js +6 -7
  341. package/dist/esm/__tests__/db/user-accounts-db-service.spec.js.map +1 -1
  342. package/dist/esm/__tests__/helpers/account-users-helper.spec.js +3 -4
  343. package/dist/esm/__tests__/helpers/account-users-helper.spec.js.map +1 -1
  344. package/dist/esm/__tests__/helpers/acuity-helper.spec.js +0 -1
  345. package/dist/esm/__tests__/helpers/acuity-helper.spec.js.map +1 -1
  346. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +3 -4
  347. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -1
  348. package/dist/esm/__tests__/helpers/cognito-auth-helper.spec.js +1 -2
  349. package/dist/esm/__tests__/helpers/cognito-auth-helper.spec.js.map +1 -1
  350. package/dist/esm/__tests__/helpers/order-calculation-helper.spec.js +4 -5
  351. package/dist/esm/__tests__/helpers/order-calculation-helper.spec.js.map +1 -1
  352. package/dist/esm/__tests__/helpers/public-api-response-helper.spec.js +1 -2
  353. package/dist/esm/__tests__/helpers/public-api-response-helper.spec.js.map +1 -1
  354. package/dist/esm/__tests__/identity-cache/helpers.spec.js +1 -2
  355. package/dist/esm/__tests__/identity-cache/helpers.spec.js.map +1 -1
  356. package/dist/esm/__tests__/identity-cache/identity-cache-alias-write.spec.js +15 -16
  357. package/dist/esm/__tests__/identity-cache/identity-cache-alias-write.spec.js.map +1 -1
  358. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +1 -2
  359. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js.map +1 -1
  360. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js +29 -52
  361. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-db-service.spec.js.map +1 -1
  362. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js +31 -40
  363. package/dist/esm/__tests__/identity-cache/identity-cache-tier-routing.spec.js.map +1 -1
  364. package/dist/esm/__tests__/identity-cache/identity-client.spec.js +21 -24
  365. package/dist/esm/__tests__/identity-cache/identity-client.spec.js.map +1 -1
  366. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js +0 -1
  367. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-hit.spec.js.map +1 -1
  368. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js +4 -17
  369. package/dist/esm/__tests__/identity-cache/identity-gateway-cache-miss.spec.js.map +1 -1
  370. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js +0 -1
  371. package/dist/esm/__tests__/identity-cache/identity-gateway-constructor.spec.js.map +1 -1
  372. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js +2 -9
  373. package/dist/esm/__tests__/identity-cache/identity-gateway-edge-cases.spec.js.map +1 -1
  374. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js +0 -1
  375. package/dist/esm/__tests__/identity-cache/identity-gateway-enqueue-async.spec.js.map +1 -1
  376. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js +7 -29
  377. package/dist/esm/__tests__/identity-cache/identity-gateway-stale-cache.spec.js.map +1 -1
  378. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.d.ts +18 -14
  379. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js +30 -37
  380. package/dist/esm/__tests__/identity-cache/identity-gateway-test-setup.js.map +1 -1
  381. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +37 -16
  382. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js.map +1 -1
  383. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js +5 -6
  384. package/dist/esm/__tests__/identity-cache/volatile-traits-optimization.spec.js.map +1 -1
  385. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +9 -10
  386. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -1
  387. package/dist/esm/__tests__/libs/compress-decompress.spec.js +1 -2
  388. package/dist/esm/__tests__/libs/compress-decompress.spec.js.map +1 -1
  389. package/dist/esm/__tests__/libs/contacts.spec.js +0 -1
  390. package/dist/esm/__tests__/libs/contacts.spec.js.map +1 -1
  391. package/dist/esm/__tests__/libs/currency.spec.js +3 -4
  392. package/dist/esm/__tests__/libs/currency.spec.js.map +1 -1
  393. package/dist/esm/__tests__/libs/dates.spec.js +23 -11
  394. package/dist/esm/__tests__/libs/dates.spec.js.map +1 -1
  395. package/dist/esm/__tests__/libs/domain.spec.js +0 -1
  396. package/dist/esm/__tests__/libs/domain.spec.js.map +1 -1
  397. package/dist/esm/__tests__/libs/numbers.spec.js +0 -1
  398. package/dist/esm/__tests__/libs/numbers.spec.js.map +1 -1
  399. package/dist/esm/__tests__/s3-client/s3-client.spec.js +7 -6
  400. package/dist/esm/__tests__/s3-client/s3-client.spec.js.map +1 -1
  401. package/dist/esm/__tests__/services/acuity-api-service.spec.js +10 -13
  402. package/dist/esm/__tests__/services/acuity-api-service.spec.js.map +1 -1
  403. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js +0 -1
  404. package/dist/esm/__tests__/services/cost/cost-calculation-types.spec.js.map +1 -1
  405. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js +280 -518
  406. package/dist/esm/__tests__/services/cost/cost-calculator-service.spec.js.map +1 -1
  407. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js +3 -4
  408. package/dist/esm/__tests__/services/cost/cost-currency-service.spec.js.map +1 -1
  409. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js +22 -19
  410. package/dist/esm/__tests__/services/cost/cost-filter-service.spec.js.map +1 -1
  411. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js +41 -133
  412. package/dist/esm/__tests__/services/cost/order-cost/order-cost-resolution-service.spec.js.map +1 -1
  413. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js +6 -8
  414. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -1
  415. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js +5 -10
  416. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -1
  417. package/dist/esm/__tests__/services/events/collect-queue-tracking-service.spec.js +14 -17
  418. package/dist/esm/__tests__/services/events/collect-queue-tracking-service.spec.js.map +1 -1
  419. package/dist/esm/__tests__/services/events/tracking-event-sqs-service.spec.js +16 -19
  420. package/dist/esm/__tests__/services/events/tracking-event-sqs-service.spec.js.map +1 -1
  421. package/dist/esm/__tests__/services/liveintent-api-service.spec.js +65 -0
  422. package/dist/esm/__tests__/services/liveintent-api-service.spec.js.map +1 -0
  423. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +1 -2
  424. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js.map +1 -1
  425. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js +14 -15
  426. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -1
  427. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js +1 -2
  428. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -1
  429. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js +0 -1
  430. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -1
  431. package/dist/esm/clients/generic/cognito-client.js +2 -2
  432. package/dist/esm/clients/generic/cognito-client.js.map +1 -1
  433. package/dist/esm/clients/generic/dynamodb-client.js +9 -9
  434. package/dist/esm/clients/generic/dynamodb-client.js.map +1 -1
  435. package/dist/esm/clients/generic/eventbridge-client.js +1 -1
  436. package/dist/esm/clients/generic/eventbridge-client.js.map +1 -1
  437. package/dist/esm/clients/generic/http-client.js +5 -5
  438. package/dist/esm/clients/generic/http-client.js.map +1 -1
  439. package/dist/esm/clients/generic/lambda-invoke-client.js.map +1 -1
  440. package/dist/esm/clients/generic/location-client.js +1 -1
  441. package/dist/esm/clients/generic/location-client.js.map +1 -1
  442. package/dist/esm/clients/generic/redis-client.js +2 -13
  443. package/dist/esm/clients/generic/redis-client.js.map +1 -1
  444. package/dist/esm/clients/generic/s3-client.d.ts +1 -0
  445. package/dist/esm/clients/generic/s3-client.js +1 -1
  446. package/dist/esm/clients/generic/s3-client.js.map +1 -1
  447. package/dist/esm/clients/generic/singlestore-db-client.d.ts +2 -2
  448. package/dist/esm/clients/generic/singlestore-db-client.js +1 -1
  449. package/dist/esm/clients/generic/singlestore-db-client.js.map +1 -1
  450. package/dist/esm/clients/generic/sqs-bundled-client.js +2 -2
  451. package/dist/esm/clients/generic/sqs-bundled-client.js.map +1 -1
  452. package/dist/esm/clients/generic/sqs-client.d.ts +1 -1
  453. package/dist/esm/clients/generic/sqs-client.js +2 -2
  454. package/dist/esm/clients/generic/sqs-client.js.map +1 -1
  455. package/dist/esm/clients/generic/sqs-unbundle.js +2 -2
  456. package/dist/esm/clients/generic/sqs-unbundle.js.map +1 -1
  457. package/dist/esm/clients/internal-api/accounts-client.js +1 -1
  458. package/dist/esm/clients/internal-api/accounts-client.js.map +1 -1
  459. package/dist/esm/clients/internal-api/cache-lambda-client.js.map +1 -1
  460. package/dist/esm/clients/internal-api/destinations-client.d.ts +2 -1
  461. package/dist/esm/clients/internal-api/destinations-client.js +8 -1
  462. package/dist/esm/clients/internal-api/destinations-client.js.map +1 -1
  463. package/dist/esm/clients/internal-api/event-collector-client.js.map +1 -1
  464. package/dist/esm/clients/internal-api/identity-client.js.map +1 -1
  465. package/dist/esm/clients/internal-api/users-auth-client.js +1 -1
  466. package/dist/esm/clients/internal-api/users-auth-client.js.map +1 -1
  467. package/dist/esm/clients/third-party/emailable-client.js.map +1 -1
  468. package/dist/esm/clients/third-party/index.d.ts +1 -0
  469. package/dist/esm/clients/third-party/index.js +1 -0
  470. package/dist/esm/clients/third-party/index.js.map +1 -1
  471. package/dist/esm/clients/third-party/liveintent-client.d.ts +11 -0
  472. package/dist/esm/clients/third-party/liveintent-client.js +21 -0
  473. package/dist/esm/clients/third-party/liveintent-client.js.map +1 -0
  474. package/dist/esm/clients/third-party/loops-client.js.map +1 -1
  475. package/dist/esm/clients/third-party/open-exchange-rates-client.js.map +1 -1
  476. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +1 -1
  477. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js.map +1 -1
  478. package/dist/esm/clients/third-party/shopify-client.js +1 -1
  479. package/dist/esm/clients/third-party/shopify-client.js.map +1 -1
  480. package/dist/esm/constants/sqs.js +3 -3
  481. package/dist/esm/constants/sqs.js.map +1 -1
  482. package/dist/esm/helpers/account-users-helper.js.map +1 -1
  483. package/dist/esm/helpers/acuity-helper.js.map +1 -1
  484. package/dist/esm/helpers/api-key-auth-helper.d.ts +1 -2
  485. package/dist/esm/helpers/api-key-auth-helper.js.map +1 -1
  486. package/dist/esm/helpers/api-key-authorizer-helper.js.map +1 -1
  487. package/dist/esm/helpers/cognito-auth-helper.d.ts +1 -2
  488. package/dist/esm/helpers/cognito-auth-helper.js.map +1 -1
  489. package/dist/esm/helpers/input-validation-helper.d.ts +1 -1
  490. package/dist/esm/helpers/input-validation-helper.js.map +1 -1
  491. package/dist/esm/helpers/logging-helper.d.ts +5 -5
  492. package/dist/esm/helpers/logging-helper.js.map +1 -1
  493. package/dist/esm/helpers/order-calculation-helper.js.map +1 -1
  494. package/dist/esm/helpers/public-api-response-helper.js.map +1 -1
  495. package/dist/esm/helpers/response-helper.js.map +1 -1
  496. package/dist/esm/helpers/shopify-helper.js.map +1 -1
  497. package/dist/esm/helpers/sqs-utils.js +1 -6
  498. package/dist/esm/helpers/sqs-utils.js.map +1 -1
  499. package/dist/esm/libs/api-router/public-api-router.d.ts +2 -2
  500. package/dist/esm/libs/api-router/public-api-router.js.map +1 -1
  501. package/dist/esm/libs/api-router/route-matcher.js.map +1 -1
  502. package/dist/esm/libs/click-id-parser.js.map +1 -1
  503. package/dist/esm/libs/compression.d.ts +1 -1
  504. package/dist/esm/libs/compression.js.map +1 -1
  505. package/dist/esm/libs/contacts.js.map +1 -1
  506. package/dist/esm/libs/cookie.js.map +1 -1
  507. package/dist/esm/libs/csv.js.map +1 -1
  508. package/dist/esm/libs/currency.js.map +1 -1
  509. package/dist/esm/libs/dates.d.ts +1 -0
  510. package/dist/esm/libs/dates.js +16 -0
  511. package/dist/esm/libs/dates.js.map +1 -1
  512. package/dist/esm/libs/domain.js.map +1 -1
  513. package/dist/esm/libs/emails.js.map +1 -1
  514. package/dist/esm/libs/http-error.js.map +1 -1
  515. package/dist/esm/libs/numbers.js.map +1 -1
  516. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +1 -0
  517. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +2 -2
  518. package/dist/esm/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  519. package/dist/esm/libs/strings.js.map +1 -1
  520. package/dist/esm/libs/traits.js.map +1 -1
  521. package/dist/esm/services/acuity-api-service.js.map +1 -1
  522. package/dist/esm/services/cache/product-cache-service.js.map +1 -1
  523. package/dist/esm/services/cost/cost-calculation-types.js.map +1 -1
  524. package/dist/esm/services/cost/cost-calculator-service.js +10 -43
  525. package/dist/esm/services/cost/cost-calculator-service.js.map +1 -1
  526. package/dist/esm/services/cost/cost-currency-service.js.map +1 -1
  527. package/dist/esm/services/cost/cost-filter-service.js +7 -16
  528. package/dist/esm/services/cost/cost-filter-service.js.map +1 -1
  529. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js +9 -24
  530. package/dist/esm/services/cost/order-cost/order-cost-resolution-service.js.map +1 -1
  531. package/dist/esm/services/db/accounts-db-service.js.map +1 -1
  532. package/dist/esm/services/db/api-keys-db-service.js.map +1 -1
  533. package/dist/esm/services/db/contact-enrichments-db-service.js.map +1 -1
  534. package/dist/esm/services/db/custom-measures-db-service.js.map +1 -1
  535. package/dist/esm/services/db/identity-cache-db-service.d.ts +1 -1
  536. package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
  537. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js +2 -6
  538. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-cache-dynamodb-db-service.js.map +1 -1
  539. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js +8 -22
  540. package/dist/esm/services/db/identity-cache-dynamodb-service/identity-gateway-service.js.map +1 -1
  541. package/dist/esm/services/db/identity-cache-dynamodb-service/types.js.map +1 -1
  542. package/dist/esm/services/db/index.d.ts +0 -1
  543. package/dist/esm/services/db/index.js +0 -1
  544. package/dist/esm/services/db/index.js.map +1 -1
  545. package/dist/esm/services/db/log-events-db-service.js.map +1 -1
  546. package/dist/esm/services/db/products-db-service.js +16 -45
  547. package/dist/esm/services/db/products-db-service.js.map +1 -1
  548. package/dist/esm/services/db/purchasable-contacts-db-service.js.map +1 -1
  549. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -1
  550. package/dist/esm/services/db/shopify-app-installs-db-service.js.map +1 -1
  551. package/dist/esm/services/db/shopify-products-cache-db-service.js.map +1 -1
  552. package/dist/esm/services/db/subscriptions-db-service.js.map +1 -1
  553. package/dist/esm/services/db/tracking-events-db-service.js.map +1 -1
  554. package/dist/esm/services/email-verification/contact-email-verification-service.js.map +1 -1
  555. package/dist/esm/services/email-verification/email-verification-service.js.map +1 -1
  556. package/dist/esm/services/events/build-collect-queue-tracking-event.js.map +1 -1
  557. package/dist/esm/services/events/collect-queue-tracking-service.js +1 -1
  558. package/dist/esm/services/events/collect-queue-tracking-service.js.map +1 -1
  559. package/dist/esm/services/events/log-event-service.js.map +1 -1
  560. package/dist/esm/services/events/metric-event-service.js.map +1 -1
  561. package/dist/esm/services/events/tracking-event-sqs-service.js.map +1 -1
  562. package/dist/esm/services/generic-cache-service.js.map +1 -1
  563. package/dist/esm/services/index.d.ts +1 -1
  564. package/dist/esm/services/index.js +1 -1
  565. package/dist/esm/services/index.js.map +1 -1
  566. package/dist/esm/services/ipdata-lookup-service.d.ts +1 -1
  567. package/dist/esm/services/ipdata-lookup-service.js.map +1 -1
  568. package/dist/esm/services/liveintent-api-service.d.ts +15 -0
  569. package/dist/esm/services/liveintent-api-service.js +55 -0
  570. package/dist/esm/services/liveintent-api-service.js.map +1 -0
  571. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
  572. package/dist/esm/services/shopify/shopify-graphql-transformer.js +1 -1
  573. package/dist/esm/services/shopify/shopify-graphql-transformer.js.map +1 -1
  574. package/dist/esm/types/index.d.ts +1 -0
  575. package/dist/esm/types/index.js +1 -0
  576. package/dist/esm/types/index.js.map +1 -1
  577. package/dist/esm/types/liveintent-types.d.ts +8 -0
  578. package/dist/esm/types/liveintent-types.js +2 -0
  579. package/dist/esm/types/liveintent-types.js.map +1 -0
  580. package/dist/esm/types/shopify-rest-types.d.ts +1 -1
  581. package/dist/esm/utils/compression.d.ts +2 -0
  582. package/dist/esm/utils/compression.js +3 -3
  583. package/dist/esm/utils/compression.js.map +1 -1
  584. package/dist/esm/utils/custom-measure-formula-utils.js.map +1 -1
  585. package/dist/esm/utils/retry-envelope.js.map +1 -1
  586. package/dist/esm/utils/size.js.map +1 -1
  587. package/package.json +136 -139
  588. package/dist/cjs/__tests__/clients/client-timeout-inventory.spec.js +0 -21
  589. package/dist/cjs/__tests__/clients/client-timeout-inventory.spec.js.map +0 -1
  590. package/dist/cjs/__tests__/clients/redis-client.spec.js +0 -79
  591. package/dist/cjs/__tests__/clients/redis-client.spec.js.map +0 -1
  592. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js +0 -40
  593. package/dist/cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +0 -1
  594. package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +0 -17
  595. package/dist/cjs/clients/third-party/exchange-rate-api-client.js +0 -20
  596. package/dist/cjs/clients/third-party/exchange-rate-api-client.js.map +0 -1
  597. package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +0 -12
  598. package/dist/cjs/services/currency-exchange-rate-lookup-service.js +0 -98
  599. package/dist/cjs/services/currency-exchange-rate-lookup-service.js.map +0 -1
  600. package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +0 -21
  601. package/dist/cjs/services/db/currency-exchange-rates-db-service.js +0 -40
  602. package/dist/cjs/services/db/currency-exchange-rates-db-service.js.map +0 -1
  603. package/dist/esm/__tests__/clients/client-timeout-inventory.spec.js +0 -19
  604. package/dist/esm/__tests__/clients/client-timeout-inventory.spec.js.map +0 -1
  605. package/dist/esm/__tests__/clients/redis-client.spec.d.ts +0 -1
  606. package/dist/esm/__tests__/clients/redis-client.spec.js +0 -77
  607. package/dist/esm/__tests__/clients/redis-client.spec.js.map +0 -1
  608. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts +0 -1
  609. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js +0 -38
  610. package/dist/esm/__tests__/services/currency-exchange-rate-lookup-service.spec.js.map +0 -1
  611. package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +0 -17
  612. package/dist/esm/clients/third-party/exchange-rate-api-client.js +0 -16
  613. package/dist/esm/clients/third-party/exchange-rate-api-client.js.map +0 -1
  614. package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +0 -12
  615. package/dist/esm/services/currency-exchange-rate-lookup-service.js +0 -94
  616. package/dist/esm/services/currency-exchange-rate-lookup-service.js.map +0 -1
  617. package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +0 -21
  618. package/dist/esm/services/db/currency-exchange-rates-db-service.js +0 -36
  619. package/dist/esm/services/db/currency-exchange-rates-db-service.js.map +0 -1
  620. /package/dist/cjs/__tests__/clients/{client-timeout-inventory.spec.d.ts → liveintent-client.spec.d.ts} +0 -0
  621. /package/dist/cjs/__tests__/{clients/redis-client.spec.d.ts → services/liveintent-api-service.spec.d.ts} +0 -0
  622. /package/dist/{cjs/__tests__/services/currency-exchange-rate-lookup-service.spec.d.ts → esm/__tests__/clients/liveintent-client.spec.d.ts} +0 -0
  623. /package/dist/esm/__tests__/{clients/client-timeout-inventory.spec.d.ts → services/liveintent-api-service.spec.d.ts} +0 -0
@@ -1,43 +1,9 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const vitest_1 = require("vitest");
37
3
  const order_cost_resolution_service_1 = require("../../../../services/cost/order-cost/order-cost-resolution-service");
38
4
  const cost_calculator_service_1 = require("../../../../services/cost/cost-calculator-service");
39
- vitest_1.vi.mock('../../../../helpers/logging-helper', () => ({
40
- Logger: { debug: vitest_1.vi.fn(), info: vitest_1.vi.fn(), warn: vitest_1.vi.fn(), error: vitest_1.vi.fn() },
5
+ jest.mock('../../../../helpers/logging-helper', () => ({
6
+ Logger: { debug: jest.fn(), info: jest.fn(), warn: jest.fn(), error: jest.fn() },
41
7
  }));
42
8
  const PIXEL_ID = 'pixel-1';
43
9
  const createOrder = (overrides = {}) => ({
@@ -49,221 +15,184 @@ const createOrder = (overrides = {}) => ({
49
15
  refunds: [],
50
16
  ...overrides,
51
17
  });
52
- const lineItem = (over = {}) => ({
53
- id: 1,
54
- product_id: 10,
55
- variant_id: 20,
56
- price: '10.00',
57
- quantity: 2,
58
- ...over,
59
- });
18
+ const lineItem = (over = {}) => ({ id: 1, product_id: 10, variant_id: 20, price: '10.00', quantity: 2, ...over });
60
19
  const variantRecord = (over = {}) => ({ pixelId: PIXEL_ID, productId: '10', variantId: '20', ...over });
61
- const configs = (defaultCogs) => ({
62
- globalProductOverride: defaultCogs === undefined ? null : { defaultCogs },
63
- order: null,
64
- gateway: null,
65
- shipping: null,
66
- });
67
- (0, vitest_1.describe)('OrderCostResolutionService', () => {
68
- (0, vitest_1.beforeEach)(() => vitest_1.vi.clearAllMocks());
69
- (0, vitest_1.afterEach)(() => vitest_1.vi.restoreAllMocks());
70
- (0, vitest_1.describe)('getTotalProductCost', () => {
71
- (0, vitest_1.it)('sums unitCost * quantity for line items with a resolved cost', () => {
72
- const order = createOrder({
73
- line_items: [lineItem({ id: 1, quantity: 2 }), lineItem({ id: 2, quantity: 3 })],
74
- });
75
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.getTotalProductCost(order, { 1: 3, 2: 1 })).toBe(9);
76
- });
77
- (0, vitest_1.it)('returns undefined when no line item has a cost', () => {
20
+ const configs = (defaultCogs) => ({ globalProductOverride: defaultCogs === undefined ? null : { defaultCogs }, order: null, gateway: null, shipping: null });
21
+ describe('OrderCostResolutionService', () => {
22
+ beforeEach(() => jest.clearAllMocks());
23
+ afterEach(() => jest.restoreAllMocks());
24
+ describe('getTotalProductCost', () => {
25
+ it('sums unitCost * quantity for line items with a resolved cost', () => {
26
+ const order = createOrder({ line_items: [lineItem({ id: 1, quantity: 2 }), lineItem({ id: 2, quantity: 3 })] });
27
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.getTotalProductCost(order, { 1: 3, 2: 1 })).toBe(9);
28
+ });
29
+ it('returns undefined when no line item has a cost', () => {
78
30
  const order = createOrder({ line_items: [lineItem({ id: 1, quantity: 2 })] });
79
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.getTotalProductCost(order, {})).toBeUndefined();
31
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.getTotalProductCost(order, {})).toBeUndefined();
80
32
  });
81
33
  });
82
- (0, vitest_1.describe)('getOrderCreatedAt', () => {
83
- (0, vitest_1.it)('returns created_at for web orders', () => {
84
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.getOrderCreatedAt(createOrder({ source_name: 'web', created_at: 'c', processed_at: 'p' }))).toBe('c');
34
+ describe('getOrderCreatedAt', () => {
35
+ it('returns created_at for web orders', () => {
36
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.getOrderCreatedAt(createOrder({ source_name: 'web', created_at: 'c', processed_at: 'p' }))).toBe('c');
85
37
  });
86
- (0, vitest_1.it)('uses processed_at for non-web orders only when the flag is set', () => {
38
+ it('uses processed_at for non-web orders only when the flag is set', () => {
87
39
  const order = createOrder({ source_name: 'pos', created_at: 'c', processed_at: 'p' });
88
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.getOrderCreatedAt(order, true)).toBe('p');
89
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.getOrderCreatedAt(order, false)).toBe('c');
40
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.getOrderCreatedAt(order, true)).toBe('p');
41
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.getOrderCreatedAt(order, false)).toBe('c');
90
42
  });
91
- (0, vitest_1.describe)('USE_PROCESSED_AT_FOR_NON_WEB_ORDERS env default', () => {
43
+ describe('USE_PROCESSED_AT_FOR_NON_WEB_ORDERS env default', () => {
92
44
  const originalFlag = process.env.USE_PROCESSED_AT_FOR_NON_WEB_ORDERS;
93
45
  const nonWebOrder = createOrder({ source_name: 'pos', created_at: 'c', processed_at: 'p' });
94
- const loadService = async (flag) => {
95
- vitest_1.vi.resetModules();
46
+ const loadService = (flag) => {
47
+ jest.resetModules();
96
48
  if (flag === undefined) {
97
49
  delete process.env.USE_PROCESSED_AT_FOR_NON_WEB_ORDERS;
98
50
  }
99
51
  else {
100
52
  process.env.USE_PROCESSED_AT_FOR_NON_WEB_ORDERS = flag;
101
53
  }
102
- return (await Promise.resolve().then(() => __importStar(require('../../../../services/cost/order-cost/order-cost-resolution-service'))))
103
- .OrderCostResolutionService;
54
+ return require('../../../../services/cost/order-cost/order-cost-resolution-service').OrderCostResolutionService;
104
55
  };
105
- (0, vitest_1.afterAll)(() => {
56
+ afterAll(() => {
106
57
  if (originalFlag === undefined) {
107
58
  delete process.env.USE_PROCESSED_AT_FOR_NON_WEB_ORDERS;
108
59
  }
109
60
  else {
110
61
  process.env.USE_PROCESSED_AT_FOR_NON_WEB_ORDERS = originalFlag;
111
62
  }
112
- vitest_1.vi.resetModules();
63
+ jest.resetModules();
113
64
  });
114
- (0, vitest_1.it)('defaults to the env flag when no argument is passed', async () => {
115
- (0, vitest_1.expect)((await loadService('true')).getOrderCreatedAt(nonWebOrder)).toBe('p');
65
+ it('defaults to the env flag when no argument is passed', () => {
66
+ expect(loadService('true').getOrderCreatedAt(nonWebOrder)).toBe('p');
116
67
  });
117
- (0, vitest_1.it)('uses created_at when the env flag is unset or not "true"', async () => {
118
- (0, vitest_1.expect)((await loadService(undefined)).getOrderCreatedAt(nonWebOrder)).toBe('c');
119
- (0, vitest_1.expect)((await loadService('false')).getOrderCreatedAt(nonWebOrder)).toBe('c');
68
+ it('uses created_at when the env flag is unset or not "true"', () => {
69
+ expect(loadService(undefined).getOrderCreatedAt(nonWebOrder)).toBe('c');
70
+ expect(loadService('false').getOrderCreatedAt(nonWebOrder)).toBe('c');
120
71
  });
121
- (0, vitest_1.it)('lets an explicit argument override the env flag in both directions', async () => {
122
- (0, vitest_1.expect)((await loadService('true')).getOrderCreatedAt(nonWebOrder, false)).toBe('c');
123
- (0, vitest_1.expect)((await loadService('false')).getOrderCreatedAt(nonWebOrder, true)).toBe('p');
72
+ it('lets an explicit argument override the env flag in both directions', () => {
73
+ expect(loadService('true').getOrderCreatedAt(nonWebOrder, false)).toBe('c');
74
+ expect(loadService('false').getOrderCreatedAt(nonWebOrder, true)).toBe('p');
124
75
  });
125
- (0, vitest_1.it)('never overrides for web orders regardless of the env flag', async () => {
76
+ it('never overrides for web orders regardless of the env flag', () => {
126
77
  const webOrder = createOrder({ source_name: 'web', created_at: 'c', processed_at: 'p' });
127
- (0, vitest_1.expect)((await loadService('true')).getOrderCreatedAt(webOrder)).toBe('c');
78
+ expect(loadService('true').getOrderCreatedAt(webOrder)).toBe('c');
128
79
  });
129
80
  });
130
81
  });
131
- (0, vitest_1.describe)('isValidCost', () => {
132
- (0, vitest_1.it)('accepts 0..1_000_000, rejects negatives / over-max / NaN', () => {
133
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.isValidCost(5)).toBe(true);
134
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.isValidCost(-1)).toBe(false);
135
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.isValidCost(2_000_000)).toBe(false);
136
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.isValidCost(Number.NaN)).toBe(false);
82
+ describe('isValidCost', () => {
83
+ it('accepts 0..1_000_000, rejects negatives / over-max / NaN', () => {
84
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.isValidCost(5)).toBe(true);
85
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.isValidCost(-1)).toBe(false);
86
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.isValidCost(2000000)).toBe(false);
87
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.isValidCost(Number.NaN)).toBe(false);
137
88
  });
138
89
  });
139
- (0, vitest_1.describe)('hasConfirmedShopifyZeroCost', () => {
140
- const withUnitCost = (inventoryItem) => variantRecord({
141
- variant: (inventoryItem === undefined ? {} : { inventoryItem }),
142
- });
143
- const openEntry = {
144
- effectiveStartDate: '2026-01-01T00:00:00Z',
145
- effectiveEndDate: null,
146
- cost: 0,
147
- };
148
- const closedEntry = {
149
- effectiveStartDate: '2026-01-01T00:00:00Z',
150
- effectiveEndDate: '2026-03-01T00:00:00Z',
151
- cost: 0,
152
- };
90
+ describe('hasConfirmedShopifyZeroCost', () => {
91
+ const withUnitCost = (inventoryItem) => variantRecord({ variant: (inventoryItem === undefined ? {} : { inventoryItem }) });
92
+ const openEntry = { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 0 };
93
+ const closedEntry = { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: '2026-03-01T00:00:00Z', cost: 0 };
153
94
  const orderInWindow = '2026-02-01T00:00:00Z';
154
95
  const orderBeforeWindow = '2025-12-01T00:00:00Z';
155
- (0, vitest_1.it)('confirms only the open-ended entry when Shopify reports exactly 0 and order is in window', () => {
156
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({ unitCost: 0 }), openEntry, orderInWindow)).toBe(true);
157
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({ unitCost: 5 }), openEntry, orderInWindow)).toBe(false);
96
+ it('confirms only the open-ended entry when Shopify reports exactly 0 and order is in window', () => {
97
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({ unitCost: 0 }), openEntry, orderInWindow)).toBe(true);
98
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({ unitCost: 5 }), openEntry, orderInWindow)).toBe(false);
158
99
  });
159
- (0, vitest_1.it)('never confirms a closed entry, since the payload only describes the current period', () => {
160
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({ unitCost: 0 }), closedEntry, orderInWindow)).toBe(false);
100
+ it('never confirms a closed entry, since the payload only describes the current period', () => {
101
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({ unitCost: 0 }), closedEntry, orderInWindow)).toBe(false);
161
102
  });
162
- (0, vitest_1.it)('is false when the unit cost or inventory item is absent', () => {
163
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({}), openEntry, orderInWindow)).toBe(false);
164
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost(), openEntry, orderInWindow)).toBe(false);
103
+ it('is false when the unit cost or inventory item is absent', () => {
104
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({}), openEntry, orderInWindow)).toBe(false);
105
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost(), openEntry, orderInWindow)).toBe(false);
165
106
  });
166
- (0, vitest_1.it)('is false when order date is before the cost entry start date (Bugbot fix)', () => {
167
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({ unitCost: 0 }), openEntry, orderBeforeWindow)).toBe(false);
107
+ it('is false when order date is before the cost entry start date (Bugbot fix)', () => {
108
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.hasConfirmedShopifyZeroCost(withUnitCost({ unitCost: 0 }), openEntry, orderBeforeWindow)).toBe(false);
168
109
  });
169
110
  });
170
- (0, vitest_1.describe)('findCostHistoryRecordInEffectiveWindow', () => {
111
+ describe('findCostHistoryRecordInEffectiveWindow', () => {
171
112
  const windowedHistory = [
172
- {
173
- effectiveStartDate: '2026-03-01T00:00:00Z',
174
- effectiveEndDate: '2026-03-31T00:00:00Z',
175
- cost: 7,
176
- },
113
+ { effectiveStartDate: '2026-03-01T00:00:00Z', effectiveEndDate: '2026-03-31T00:00:00Z', cost: 7 },
177
114
  ];
178
- (0, vitest_1.it)('returns the record when the order date is inside the window', () => {
179
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(windowedHistory, '2026-03-15T00:00:00Z')?.cost).toBe(7);
115
+ it('returns the record when the order date is inside the window', () => {
116
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(windowedHistory, '2026-03-15T00:00:00Z')?.cost).toBe(7);
180
117
  });
181
- (0, vitest_1.it)('returns null when the order date is before the window', () => {
182
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(windowedHistory, '2026-01-15T00:00:00Z')).toBeNull();
118
+ it('returns null when the order date is before the window', () => {
119
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(windowedHistory, '2026-01-15T00:00:00Z')).toBeNull();
183
120
  });
184
- (0, vitest_1.it)('returns null when the order date is after the window', () => {
185
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(windowedHistory, '2026-06-15T00:00:00Z')).toBeNull();
121
+ it('returns null when the order date is after the window', () => {
122
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(windowedHistory, '2026-06-15T00:00:00Z')).toBeNull();
186
123
  });
187
- (0, vitest_1.it)('matches an open-ended window', () => {
188
- const openEnded = [
189
- { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 9 },
190
- ];
191
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(openEnded, '2026-12-01T00:00:00Z')?.cost).toBe(9);
124
+ it('matches an open-ended window', () => {
125
+ const openEnded = [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 9 }];
126
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(openEnded, '2026-12-01T00:00:00Z')?.cost).toBe(9);
192
127
  });
193
- (0, vitest_1.it)('returns null for empty history or invalid date', () => {
194
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow([], '2026-06-01T00:00:00Z')).toBeNull();
195
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(windowedHistory, '')).toBeNull();
128
+ it('returns null for empty history or invalid date', () => {
129
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow([], '2026-06-01T00:00:00Z')).toBeNull();
130
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(windowedHistory, '')).toBeNull();
196
131
  });
197
- (0, vitest_1.describe)('date-only boundaries from the UI', () => {
132
+ describe('date-only boundaries from the UI', () => {
198
133
  const find = (history, orderCreatedAt) => order_cost_resolution_service_1.OrderCostResolutionService.findCostHistoryRecordInEffectiveWindow(history, orderCreatedAt)?.cost ?? null;
199
134
  const singleDay = [
200
135
  { effectiveStartDate: '2026-07-28', effectiveEndDate: '2026-07-28', cost: 500 },
201
136
  ];
202
- (0, vitest_1.it)('covers the whole end day, not just its first instant', () => {
203
- (0, vitest_1.expect)(find(singleDay, '2026-07-28T00:00:00Z')).toBe(500);
204
- (0, vitest_1.expect)(find(singleDay, '2026-07-28T10:30:00Z')).toBe(500);
205
- (0, vitest_1.expect)(find(singleDay, '2026-07-28T23:59:59Z')).toBe(500);
137
+ it('covers the whole end day, not just its first instant', () => {
138
+ expect(find(singleDay, '2026-07-28T00:00:00Z')).toBe(500);
139
+ expect(find(singleDay, '2026-07-28T10:30:00Z')).toBe(500);
140
+ expect(find(singleDay, '2026-07-28T23:59:59Z')).toBe(500);
206
141
  });
207
- (0, vitest_1.it)('starts at the beginning of the start day', () => {
208
- (0, vitest_1.expect)(find(singleDay, '2026-07-27T23:59:59Z')).toBeNull();
142
+ it('starts at the beginning of the start day', () => {
143
+ expect(find(singleDay, '2026-07-27T23:59:59Z')).toBeNull();
209
144
  });
210
- (0, vitest_1.it)('excludes the day after the end date', () => {
211
- (0, vitest_1.expect)(find(singleDay, '2026-07-29T00:00:00Z')).toBeNull();
145
+ it('excludes the day after the end date', () => {
146
+ expect(find(singleDay, '2026-07-29T00:00:00Z')).toBeNull();
212
147
  });
213
- (0, vitest_1.it)('picks the correct entry across adjacent date-only windows', () => {
148
+ it('picks the correct entry across adjacent date-only windows', () => {
214
149
  const adjacent = [
215
150
  { effectiveStartDate: '2026-07-28', effectiveEndDate: '2026-07-28', cost: 500 },
216
151
  { effectiveStartDate: '2026-07-29', effectiveEndDate: null, cost: 200 },
217
152
  ];
218
- (0, vitest_1.expect)(find(adjacent, '2026-07-28T18:00:00Z')).toBe(500);
219
- (0, vitest_1.expect)(find(adjacent, '2026-07-29T18:00:00Z')).toBe(200);
153
+ expect(find(adjacent, '2026-07-28T18:00:00Z')).toBe(500);
154
+ expect(find(adjacent, '2026-07-29T18:00:00Z')).toBe(200);
220
155
  });
221
- (0, vitest_1.it)('leaves full timestamp boundaries exact', () => {
156
+ it('leaves full timestamp boundaries exact', () => {
222
157
  const timestamped = [
223
158
  { effectiveStartDate: '2026-07-28T06:38:01Z', effectiveEndDate: '2026-07-29T14:01:57Z', cost: 100 },
224
159
  ];
225
- (0, vitest_1.expect)(find(timestamped, '2026-07-29T14:01:57Z')).toBe(100);
226
- (0, vitest_1.expect)(find(timestamped, '2026-07-29T14:01:58Z')).toBeNull();
160
+ expect(find(timestamped, '2026-07-29T14:01:57Z')).toBe(100);
161
+ expect(find(timestamped, '2026-07-29T14:01:58Z')).toBeNull();
227
162
  });
228
- (0, vitest_1.it)('mixes a date-only end with a timestamped start', () => {
163
+ it('mixes a date-only end with a timestamped start', () => {
229
164
  const mixed = [
230
165
  { effectiveStartDate: '2026-07-28T06:38:01Z', effectiveEndDate: '2026-07-29', cost: 42 },
231
166
  ];
232
- (0, vitest_1.expect)(find(mixed, '2026-07-29T23:59:59Z')).toBe(42);
233
- (0, vitest_1.expect)(find(mixed, '2026-07-30T00:00:00Z')).toBeNull();
167
+ expect(find(mixed, '2026-07-29T23:59:59Z')).toBe(42);
168
+ expect(find(mixed, '2026-07-30T00:00:00Z')).toBeNull();
234
169
  });
235
170
  });
236
171
  });
237
- (0, vitest_1.describe)('parseCostWindowEndDate', () => {
238
- (0, vitest_1.it)('expands a date-only end to the last instant of that day', () => {
239
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.parseCostWindowEndDate('2026-07-28').toUTC().toISO()).toBe('2026-07-28T23:59:59.999Z');
172
+ describe('parseCostWindowEndDate', () => {
173
+ it('expands a date-only end to the last instant of that day', () => {
174
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.parseCostWindowEndDate('2026-07-28').toUTC().toISO()).toBe('2026-07-28T23:59:59.999Z');
240
175
  });
241
- (0, vitest_1.it)('leaves a full timestamp untouched', () => {
242
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.parseCostWindowEndDate('2026-07-29T14:01:57Z').toUTC().toISO()).toBe('2026-07-29T14:01:57.000Z');
176
+ it('leaves a full timestamp untouched', () => {
177
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.parseCostWindowEndDate('2026-07-29T14:01:57Z').toUTC().toISO()).toBe('2026-07-29T14:01:57.000Z');
243
178
  });
244
- (0, vitest_1.it)('returns an invalid DateTime for an unparseable value', () => {
245
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.parseCostWindowEndDate('not-a-date').isValid).toBe(false);
179
+ it('returns an invalid DateTime for an unparseable value', () => {
180
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.parseCostWindowEndDate('not-a-date').isValid).toBe(false);
246
181
  });
247
182
  });
248
- (0, vitest_1.describe)('resolveOrderLineItemUnitCosts', () => {
183
+ describe('resolveOrderLineItemUnitCosts', () => {
249
184
  const byPixel = (defaultCogs) => ({ [PIXEL_ID]: configs(defaultCogs) });
250
- (0, vitest_1.it)('resolves unit cost from variant shopifyCostHistory', () => {
251
- const variants = {
252
- [`${PIXEL_ID}_10_20`]: variantRecord({
253
- shopifyCostHistory: [
254
- { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 4 },
255
- ],
256
- }),
257
- };
185
+ it('resolves unit cost from variant shopifyCostHistory', () => {
186
+ const variants = { [`${PIXEL_ID}_10_20`]: variantRecord({ shopifyCostHistory: [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 4 }] }) };
258
187
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel());
259
- (0, vitest_1.expect)(result).toEqual({ '1': 4 });
188
+ expect(result).toEqual({ '1': 4 });
260
189
  });
261
- (0, vitest_1.it)('falls back to defaultCogs percent of line price when no variant cost', () => {
190
+ it('falls back to defaultCogs percent of line price when no variant cost', () => {
262
191
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem({ price: '10', quantity: 2 })], PIXEL_ID, '2026-06-01T00:00:00Z', {}, byPixel(50));
263
- (0, vitest_1.expect)(result).toEqual({ '1': 5 });
192
+ expect(result).toEqual({ '1': 5 });
264
193
  });
265
- (0, vitest_1.it)('resolves nothing when no variant cost and no defaultCogs', () => {
266
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', {}, byPixel())).toEqual({});
194
+ it('resolves nothing when no variant cost and no defaultCogs', () => {
195
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', {}, byPixel())).toEqual({});
267
196
  });
268
197
  const withHistories = (manual, shopify, unitCost) => ({
269
198
  [`${PIXEL_ID}_10_20`]: variantRecord({
@@ -272,95 +201,87 @@ const configs = (defaultCogs) => ({
272
201
  variant: { inventoryItem: unitCost === undefined ? {} : { unitCost } },
273
202
  }),
274
203
  });
275
- (0, vitest_1.it)('prefers manual cost over shopify cost for the same order date', () => {
204
+ it('prefers manual cost over shopify cost for the same order date', () => {
276
205
  const variants = withHistories([{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 8 }], [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 4 }]);
277
206
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel(50));
278
- (0, vitest_1.expect)(result).toEqual({ '1': 8 });
207
+ expect(result).toEqual({ '1': 8 });
279
208
  });
280
- (0, vitest_1.it)('prefers manual cost over defaultCogs', () => {
209
+ it('prefers manual cost over defaultCogs', () => {
281
210
  const variants = withHistories([{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 8 }]);
282
211
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel(50));
283
- (0, vitest_1.expect)(result).toEqual({ '1': 8 });
212
+ expect(result).toEqual({ '1': 8 });
284
213
  });
285
- (0, vitest_1.it)('falls through to shopify cost when the order date is outside the manual window', () => {
214
+ it('falls through to shopify cost when the order date is outside the manual window', () => {
286
215
  const variants = withHistories([{ effectiveStartDate: '2026-03-01T00:00:00Z', effectiveEndDate: '2026-03-31T00:00:00Z', cost: 8 }], [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 4 }]);
287
216
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-01-15T00:00:00Z', variants, byPixel());
288
- (0, vitest_1.expect)(result).toEqual({ '1': 4 });
217
+ expect(result).toEqual({ '1': 4 });
289
218
  });
290
- (0, vitest_1.it)('honours a manual cost of 0 instead of falling through to defaultCogs', () => {
219
+ it('honours a manual cost of 0 instead of falling through to defaultCogs', () => {
291
220
  const variants = withHistories([{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 0 }]);
292
221
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel(50));
293
- (0, vitest_1.expect)(result).toEqual({ '1': 0 });
222
+ expect(result).toEqual({ '1': 0 });
294
223
  });
295
- (0, vitest_1.it)('honours a shopify cost of 0 when the payload confirms a zero unit cost', () => {
224
+ it('honours a shopify cost of 0 when the payload confirms a zero unit cost', () => {
296
225
  const variants = withHistories(undefined, [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 0 }], 0);
297
226
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem({ price: '10', quantity: 2 })], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel(50));
298
- (0, vitest_1.expect)(result).toEqual({ '1': 0 });
227
+ expect(result).toEqual({ '1': 0 });
299
228
  });
300
- (0, vitest_1.it)('does not confirm a closed shopify zero row from the current payload', () => {
229
+ it('does not confirm a closed shopify zero row from the current payload', () => {
301
230
  const variants = withHistories(undefined, [
302
231
  { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: '2026-03-01T00:00:00Z', cost: 0 },
303
232
  { effectiveStartDate: '2026-03-02T00:00:00Z', effectiveEndDate: null, cost: 0 },
304
233
  ], 0);
305
234
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem({ price: '10', quantity: 2 })], PIXEL_ID, '2026-02-01T00:00:00Z', variants, byPixel(50));
306
- (0, vitest_1.expect)(result).toEqual({ '1': 5 });
235
+ expect(result).toEqual({ '1': 5 });
307
236
  });
308
- (0, vitest_1.it)('falls through to defaultCogs for a legacy shopify cost of 0 with no unit cost on the payload', () => {
309
- const variants = withHistories(undefined, [
310
- { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 0 },
311
- ]);
237
+ it('falls through to defaultCogs for a legacy shopify cost of 0 with no unit cost on the payload', () => {
238
+ const variants = withHistories(undefined, [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 0 }]);
312
239
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem({ price: '10', quantity: 2 })], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel(50));
313
- (0, vitest_1.expect)(result).toEqual({ '1': 5 });
240
+ expect(result).toEqual({ '1': 5 });
314
241
  });
315
- (0, vitest_1.it)('resolves nothing for a legacy shopify cost of 0 when there is no defaultCogs to fall back to', () => {
316
- const variants = withHistories(undefined, [
317
- { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 0 },
318
- ]);
242
+ it('resolves nothing for a legacy shopify cost of 0 when there is no defaultCogs to fall back to', () => {
243
+ const variants = withHistories(undefined, [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 0 }]);
319
244
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel());
320
- (0, vitest_1.expect)(result).toEqual({});
245
+ expect(result).toEqual({});
321
246
  });
322
- (0, vitest_1.it)('still prefers a manual cost of 0 over an unconfirmed shopify zero', () => {
247
+ it('still prefers a manual cost of 0 over an unconfirmed shopify zero', () => {
323
248
  const variants = withHistories([{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 0 }], [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 0 }]);
324
249
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem({ price: '10', quantity: 2 })], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel(50));
325
- (0, vitest_1.expect)(result).toEqual({ '1': 0 });
250
+ expect(result).toEqual({ '1': 0 });
326
251
  });
327
- (0, vitest_1.it)('falls through to defaultCogs when the order predates every shopify window', () => {
328
- const variants = withHistories(undefined, [
329
- { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 4 },
330
- ]);
252
+ it('falls through to defaultCogs when the order predates every shopify window', () => {
253
+ const variants = withHistories(undefined, [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 4 }]);
331
254
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem({ price: '10', quantity: 2 })], PIXEL_ID, '2025-06-01T00:00:00Z', variants, byPixel(50));
332
- (0, vitest_1.expect)(result).toEqual({ '1': 5 });
255
+ expect(result).toEqual({ '1': 5 });
333
256
  });
334
- (0, vitest_1.it)('falls through to defaultCogs when the order predates every manual window and there is no shopify cost', () => {
257
+ it('falls through to defaultCogs when the order predates every manual window and there is no shopify cost', () => {
335
258
  const variants = withHistories([{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 8 }]);
336
259
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem({ price: '10', quantity: 2 })], PIXEL_ID, '2025-06-01T00:00:00Z', variants, byPixel(50));
337
- (0, vitest_1.expect)(result).toEqual({ '1': 5 });
260
+ expect(result).toEqual({ '1': 5 });
338
261
  });
339
- (0, vitest_1.it)('falls through to defaultCogs when the shopify entry has no cost at all', () => {
340
- const variants = withHistories(undefined, [
341
- { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null },
342
- ]);
262
+ it('falls through to defaultCogs when the shopify entry has no cost at all', () => {
263
+ const variants = withHistories(undefined, [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null }]);
343
264
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem({ price: '10', quantity: 2 })], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel(50));
344
- (0, vitest_1.expect)(result).toEqual({ '1': 5 });
265
+ expect(result).toEqual({ '1': 5 });
345
266
  });
346
- (0, vitest_1.it)('falls through to shopify cost when the manual entry has no cost at all', () => {
267
+ it('falls through to shopify cost when the manual entry has no cost at all', () => {
347
268
  const variants = withHistories([{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null }], [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 4 }]);
348
269
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel());
349
- (0, vitest_1.expect)(result).toEqual({ '1': 4 });
270
+ expect(result).toEqual({ '1': 4 });
350
271
  });
351
- (0, vitest_1.it)('falls through to shopify cost when manualCostHistory is empty or undefined', () => {
272
+ it('falls through to shopify cost when manualCostHistory is empty or undefined', () => {
352
273
  const shopify = [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 4 }];
353
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', withHistories([], shopify), byPixel())).toEqual({ '1': 4 });
354
- (0, vitest_1.expect)(order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', withHistories(undefined, shopify), byPixel())).toEqual({ '1': 4 });
274
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', withHistories([], shopify), byPixel())).toEqual({ '1': 4 });
275
+ expect(order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', withHistories(undefined, shopify), byPixel())).toEqual({ '1': 4 });
355
276
  });
356
- (0, vitest_1.it)('ignores an invalid manual cost and falls through to shopify cost', () => {
277
+ it('ignores an invalid manual cost and falls through to shopify cost', () => {
357
278
  const variants = withHistories([{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: -5 }], [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 4 }]);
358
279
  const result = order_cost_resolution_service_1.OrderCostResolutionService.resolveOrderLineItemUnitCosts([lineItem()], PIXEL_ID, '2026-06-01T00:00:00Z', variants, byPixel());
359
- (0, vitest_1.expect)(result).toEqual({ '1': 4 });
280
+ expect(result).toEqual({ '1': 4 });
360
281
  });
361
282
  });
362
- (0, vitest_1.describe)('buildOrderCostContext', () => {
363
- (0, vitest_1.it)('maps product attributes + refund quantity + totals from records', () => {
283
+ describe('buildOrderCostContext', () => {
284
+ it('maps product attributes + refund quantity + totals from records', () => {
364
285
  const order = createOrder({
365
286
  line_items: [lineItem({ id: 1, product_id: 10, variant_id: 20, quantity: 2 })],
366
287
  tags: 'vip, sale',
@@ -372,21 +293,8 @@ const configs = (defaultCogs) => ({
372
293
  total_price_set: { shop_money: { amount: '20.00' } },
373
294
  refunds: [{ id: 1 }],
374
295
  });
375
- const variants = {
376
- [`${PIXEL_ID}_10_20`]: variantRecord({
377
- vendor: 'Acme',
378
- productType: 'Shirt',
379
- tags: ['cotton'],
380
- handlingFee: 1.5,
381
- }),
382
- };
383
- const products = {
384
- [`${PIXEL_ID}_10`]: {
385
- pixelId: PIXEL_ID,
386
- productId: '10',
387
- product: { category: { fullName: 'Apparel > Tops' } },
388
- },
389
- };
296
+ const variants = { [`${PIXEL_ID}_10_20`]: variantRecord({ vendor: 'Acme', productType: 'Shirt', tags: ['cotton'], handlingFee: 1.5 }) };
297
+ const products = { [`${PIXEL_ID}_10`]: { pixelId: PIXEL_ID, productId: '10', product: { category: { fullName: 'Apparel > Tops' } } } };
390
298
  const ctx = order_cost_resolution_service_1.OrderCostResolutionService.buildOrderCostContext({
391
299
  pixelId: PIXEL_ID,
392
300
  order,
@@ -396,90 +304,57 @@ const configs = (defaultCogs) => ({
396
304
  refundInfoByLineItemId: { '1': { refundQuantity: 1 } },
397
305
  saleTotals: { grossSalePrice: 20, netSalePrice: 18, totalProductCost: 6 },
398
306
  });
399
- (0, vitest_1.expect)(ctx.orderFilterContext).toMatchObject({
400
- tags: ['vip', 'sale'],
401
- paymentGateways: ['shopify_payments'],
402
- shippingTitles: ['Standard'],
403
- shipCountryCode: 'US',
404
- sourceName: 'web',
405
- });
406
- (0, vitest_1.expect)(ctx.grossSalePrice).toBe(20);
407
- (0, vitest_1.expect)(ctx.netSalePrice).toBe(18);
408
- (0, vitest_1.expect)(ctx.totalProductCost).toBe(6);
409
- (0, vitest_1.expect)(ctx.totalShipping).toBe(7.5);
410
- (0, vitest_1.expect)(ctx.totalWeight).toBe(500);
411
- (0, vitest_1.expect)(ctx.totalQuantity).toBe(2);
412
- (0, vitest_1.expect)(ctx.hasRefund).toBe(true);
413
- (0, vitest_1.expect)(ctx.lineItems[0]).toMatchObject({
307
+ expect(ctx.orderFilterContext).toMatchObject({ tags: ['vip', 'sale'], paymentGateways: ['shopify_payments'], shippingTitles: ['Standard'], shipCountryCode: 'US', sourceName: 'web' });
308
+ expect(ctx.grossSalePrice).toBe(20);
309
+ expect(ctx.netSalePrice).toBe(18);
310
+ expect(ctx.totalProductCost).toBe(6);
311
+ expect(ctx.totalShipping).toBe(7.5);
312
+ expect(ctx.totalWeight).toBe(500);
313
+ expect(ctx.totalQuantity).toBe(2);
314
+ expect(ctx.hasRefund).toBe(true);
315
+ expect(ctx.lineItems[0]).toMatchObject({
414
316
  lineItemId: '1',
415
317
  quantity: 2,
416
318
  refundedQuantity: 1,
417
319
  variantHandlingFee: 1.5,
418
- filterContext: {
419
- vendor: 'Acme',
420
- productType: 'Shirt',
421
- tags: ['cotton'],
422
- category: 'Apparel > Tops',
423
- productId: '10',
424
- variantId: '20',
425
- },
320
+ filterContext: { vendor: 'Acme', productType: 'Shirt', tags: ['cotton'], category: 'Apparel > Tops', productId: '10', variantId: '20' },
426
321
  });
427
322
  });
428
323
  });
429
- (0, vitest_1.describe)('computeOrderCostResult', () => {
324
+ describe('computeOrderCostResult', () => {
430
325
  const emptyRates = {};
431
- (0, vitest_1.it)('composes the pipeline and calls calculateOrderCosts with the resolved context', () => {
326
+ it('composes the pipeline and calls calculateOrderCosts with the resolved context', () => {
432
327
  const order = createOrder({
433
328
  currency: 'CAD',
434
329
  line_items: [lineItem({ id: 1, price: '10', quantity: 2 })],
435
330
  total_discounts_set: { shop_money: { amount: '4' } },
436
331
  });
437
- const variants = {
438
- [`${PIXEL_ID}_10_20`]: variantRecord({
439
- shopifyCostHistory: [
440
- { effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 3 },
441
- ],
442
- }),
443
- };
444
- const spy = vitest_1.vi
445
- .spyOn(cost_calculator_service_1.CostCalculatorService, 'calculateOrderCosts')
446
- .mockReturnValue({ tag: 'result' });
332
+ const variants = { [`${PIXEL_ID}_10_20`]: variantRecord({ shopifyCostHistory: [{ effectiveStartDate: '2026-01-01T00:00:00Z', effectiveEndDate: null, cost: 3 }] }) };
333
+ const spy = jest.spyOn(cost_calculator_service_1.CostCalculatorService, 'calculateOrderCosts').mockReturnValue({ tag: 'result' });
447
334
  const result = order_cost_resolution_service_1.OrderCostResolutionService.computeOrderCostResult({
448
- pixelId: PIXEL_ID,
449
- order,
450
- variantRecords: variants,
451
- productRecords: {},
452
- costConfigs: configs(),
453
- exchangeRatesMap: emptyRates,
335
+ pixelId: PIXEL_ID, order, variantRecords: variants, productRecords: {}, costConfigs: configs(), exchangeRatesMap: emptyRates,
454
336
  });
455
- (0, vitest_1.expect)(result).toEqual({ tag: 'result' });
456
- (0, vitest_1.expect)(spy).toHaveBeenCalledTimes(1);
337
+ expect(result).toEqual({ tag: 'result' });
338
+ expect(spy).toHaveBeenCalledTimes(1);
457
339
  const [configsArg, contextArg, currencyArg, ratesArg] = spy.mock.calls[0];
458
- (0, vitest_1.expect)(configsArg).toEqual(configs());
459
- (0, vitest_1.expect)(currencyArg).toBe('CAD');
460
- (0, vitest_1.expect)(ratesArg).toBe(emptyRates);
340
+ expect(configsArg).toEqual(configs());
341
+ expect(currencyArg).toBe('CAD');
342
+ expect(ratesArg).toBe(emptyRates);
461
343
  const ctx = contextArg;
462
- (0, vitest_1.expect)(ctx.grossSalePrice).toBe(20);
463
- (0, vitest_1.expect)(ctx.netSalePrice).toBe(16);
464
- (0, vitest_1.expect)(ctx.totalProductCost).toBe(6);
465
- (0, vitest_1.expect)(ctx.totalQuantity).toBe(2);
466
- });
467
- (0, vitest_1.it)('returns a zeroed OrderCostResult when calculation throws (fail-safe)', () => {
468
- vitest_1.vi.spyOn(cost_calculator_service_1.CostCalculatorService, 'calculateOrderCosts').mockImplementation(() => {
469
- throw new Error('boom');
470
- });
344
+ expect(ctx.grossSalePrice).toBe(20);
345
+ expect(ctx.netSalePrice).toBe(16);
346
+ expect(ctx.totalProductCost).toBe(6);
347
+ expect(ctx.totalQuantity).toBe(2);
348
+ });
349
+ it('returns a zeroed OrderCostResult when calculation throws (fail-safe)', () => {
350
+ jest.spyOn(cost_calculator_service_1.CostCalculatorService, 'calculateOrderCosts').mockImplementation(() => { throw new Error('boom'); });
471
351
  const result = order_cost_resolution_service_1.OrderCostResolutionService.computeOrderCostResult({
472
- pixelId: PIXEL_ID,
473
- order: createOrder({ line_items: [lineItem()] }),
474
- variantRecords: {},
475
- productRecords: {},
476
- costConfigs: null,
477
- exchangeRatesMap: {},
352
+ pixelId: PIXEL_ID, order: createOrder({ line_items: [lineItem()] }), variantRecords: {}, productRecords: {}, costConfigs: null, exchangeRatesMap: {},
478
353
  });
479
- (0, vitest_1.expect)(result.totalHandlingCost).toBe(0);
480
- (0, vitest_1.expect)(result.totalShippingCost).toBe(0);
481
- (0, vitest_1.expect)(result.lineItemCosts).toEqual({});
482
- (0, vitest_1.expect)(result.categoryCosts.totalOtherCogs).toBe(0);
354
+ expect(result.totalHandlingCost).toBe(0);
355
+ expect(result.totalShippingCost).toBe(0);
356
+ expect(result.lineItemCosts).toEqual({});
357
+ expect(result.categoryCosts.totalOtherCogs).toBe(0);
483
358
  });
484
359
  });
485
360
  });