@adtrackify/at-service-common 3.5.11 → 3.5.13

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 (403) hide show
  1. package/dist/cjs/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  2. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +200 -200
  3. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  4. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +674 -674
  5. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  6. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +586 -586
  7. package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  8. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +16 -16
  9. package/dist/cjs/__tests__/libs/currency.spec.d.ts +1 -1
  10. package/dist/cjs/__tests__/libs/currency.spec.js +220 -220
  11. package/dist/cjs/__tests__/libs/dates.spec.d.ts +1 -1
  12. package/dist/cjs/__tests__/libs/dates.spec.js +132 -132
  13. package/dist/cjs/__tests__/libs/domain.spec.d.ts +1 -1
  14. package/dist/cjs/__tests__/libs/domain.spec.js +107 -107
  15. package/dist/cjs/__tests__/libs/numbers.spec.d.ts +1 -1
  16. package/dist/cjs/__tests__/libs/numbers.spec.js +261 -261
  17. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  18. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +26 -26
  19. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  20. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +35 -35
  21. package/dist/cjs/clients/generic/cognito-client.d.ts +23 -23
  22. package/dist/cjs/clients/generic/cognito-client.js +209 -209
  23. package/dist/cjs/clients/generic/dynamodb-client.d.ts +17 -17
  24. package/dist/cjs/clients/generic/dynamodb-client.js +170 -170
  25. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  26. package/dist/cjs/clients/generic/eventbridge-client.js +49 -49
  27. package/dist/cjs/clients/generic/http-client.d.ts +14 -14
  28. package/dist/cjs/clients/generic/http-client.js +61 -61
  29. package/dist/cjs/clients/generic/index.d.ts +10 -10
  30. package/dist/cjs/clients/generic/index.js +26 -26
  31. package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
  32. package/dist/cjs/clients/generic/lambda-invoke-client.js +35 -35
  33. package/dist/cjs/clients/generic/location-client.d.ts +8 -8
  34. package/dist/cjs/clients/generic/location-client.js +31 -31
  35. package/dist/cjs/clients/generic/redis-client.d.ts +18 -18
  36. package/dist/cjs/clients/generic/redis-client.js +128 -128
  37. package/dist/cjs/clients/generic/s3-client.d.ts +23 -23
  38. package/dist/cjs/clients/generic/s3-client.js +198 -198
  39. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +14 -14
  40. package/dist/cjs/clients/generic/singlestore-db-client.js +67 -67
  41. package/dist/cjs/clients/generic/sqs-client.d.ts +20 -20
  42. package/dist/cjs/clients/generic/sqs-client.js +36 -36
  43. package/dist/cjs/clients/index.d.ts +3 -3
  44. package/dist/cjs/clients/index.js +19 -19
  45. package/dist/cjs/clients/internal-api/accounts-client.d.ts +83 -83
  46. package/dist/cjs/clients/internal-api/accounts-client.js +107 -107
  47. package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +25 -25
  48. package/dist/cjs/clients/internal-api/cache-lambda-client.js +79 -79
  49. package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
  50. package/dist/cjs/clients/internal-api/db-management-client.js +36 -36
  51. package/dist/cjs/clients/internal-api/destinations-client.d.ts +27 -27
  52. package/dist/cjs/clients/internal-api/destinations-client.js +51 -51
  53. package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
  54. package/dist/cjs/clients/internal-api/event-collector-client.js +36 -36
  55. package/dist/cjs/clients/internal-api/identity-client.d.ts +31 -31
  56. package/dist/cjs/clients/internal-api/identity-client.js +83 -83
  57. package/dist/cjs/clients/internal-api/index.d.ts +9 -9
  58. package/dist/cjs/clients/internal-api/index.js +25 -25
  59. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +36 -36
  60. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +68 -68
  61. package/dist/cjs/clients/internal-api/subscriptions-client.d.ts +23 -23
  62. package/dist/cjs/clients/internal-api/subscriptions-client.js +58 -58
  63. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +35 -35
  64. package/dist/cjs/clients/internal-api/users-auth-client.js +110 -110
  65. package/dist/cjs/clients/third-party/emailable-client.d.ts +7 -7
  66. package/dist/cjs/clients/third-party/emailable-client.js +25 -25
  67. package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  68. package/dist/cjs/clients/third-party/exchange-rate-api-client.js +19 -19
  69. package/dist/cjs/clients/third-party/index.d.ts +2 -2
  70. package/dist/cjs/clients/third-party/index.js +18 -18
  71. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  72. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.js +5 -5
  73. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.d.ts +9 -9
  74. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js +95 -95
  75. package/dist/cjs/clients/third-party/shopify-client.d.ts +29 -29
  76. package/dist/cjs/clients/third-party/shopify-client.js +144 -144
  77. package/dist/cjs/helpers/account-users-helper.d.ts +2 -2
  78. package/dist/cjs/helpers/account-users-helper.js +22 -22
  79. package/dist/cjs/helpers/identity-cache-helper.d.ts +21 -21
  80. package/dist/cjs/helpers/identity-cache-helper.js +157 -157
  81. package/dist/cjs/helpers/index.d.ts +6 -6
  82. package/dist/cjs/helpers/index.js +22 -22
  83. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  84. package/dist/cjs/helpers/input-validation-helper.js +22 -22
  85. package/dist/cjs/helpers/logging-helper.d.ts +16 -16
  86. package/dist/cjs/helpers/logging-helper.js +84 -84
  87. package/dist/cjs/helpers/response-helper.d.ts +18 -15
  88. package/dist/cjs/helpers/response-helper.js +43 -42
  89. package/dist/cjs/helpers/response-helper.js.map +1 -1
  90. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  91. package/dist/cjs/helpers/shopify-helper.js +28 -28
  92. package/dist/cjs/index.d.ts +5 -5
  93. package/dist/cjs/index.js +21 -21
  94. package/dist/cjs/libs/click-id-parser.d.ts +23 -23
  95. package/dist/cjs/libs/click-id-parser.js +49 -49
  96. package/dist/cjs/libs/compression.d.ts +2 -2
  97. package/dist/cjs/libs/compression.js +33 -33
  98. package/dist/cjs/libs/cookie.d.ts +12 -11
  99. package/dist/cjs/libs/cookie.js +68 -65
  100. package/dist/cjs/libs/cookie.js.map +1 -1
  101. package/dist/cjs/libs/crypto.d.ts +2 -2
  102. package/dist/cjs/libs/crypto.js +16 -16
  103. package/dist/cjs/libs/csv.d.ts +2 -2
  104. package/dist/cjs/libs/csv.js +35 -35
  105. package/dist/cjs/libs/currency.d.ts +1 -1
  106. package/dist/cjs/libs/currency.js +24 -24
  107. package/dist/cjs/libs/dates.d.ts +12 -12
  108. package/dist/cjs/libs/dates.js +96 -96
  109. package/dist/cjs/libs/domain.d.ts +2 -2
  110. package/dist/cjs/libs/domain.js +38 -38
  111. package/dist/cjs/libs/http-error.d.ts +21 -21
  112. package/dist/cjs/libs/http-error.js +59 -59
  113. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  114. package/dist/cjs/libs/http-status-codes.js +62 -62
  115. package/dist/cjs/libs/index.d.ts +16 -16
  116. package/dist/cjs/libs/index.js +32 -32
  117. package/dist/cjs/libs/numbers.d.ts +1 -1
  118. package/dist/cjs/libs/numbers.js +15 -15
  119. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  120. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  121. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  122. package/dist/cjs/libs/referrer-parser/referrer-data.js +4712 -4712
  123. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  124. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +128 -128
  125. package/dist/cjs/libs/strings.d.ts +3 -3
  126. package/dist/cjs/libs/strings.js +46 -46
  127. package/dist/cjs/libs/traits.d.ts +2 -2
  128. package/dist/cjs/libs/traits.js +21 -21
  129. package/dist/cjs/libs/url.d.ts +1 -1
  130. package/dist/cjs/libs/url.js +13 -13
  131. package/dist/cjs/services/cache/generic-cached-object.d.ts +5 -5
  132. package/dist/cjs/services/cache/generic-cached-object.js +2 -2
  133. package/dist/cjs/services/cache/index.d.ts +1 -1
  134. package/dist/cjs/services/cache/index.js +17 -17
  135. package/dist/cjs/services/cache/product-cache-service.d.ts +21 -21
  136. package/dist/cjs/services/cache/product-cache-service.js +68 -68
  137. package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +11 -11
  138. package/dist/cjs/services/currency-exchange-rate-lookup-service.js +50 -50
  139. package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  140. package/dist/cjs/services/db/currency-exchange-rates-db-service.js +39 -39
  141. package/dist/cjs/services/db/destinations-db-service.d.ts +9 -9
  142. package/dist/cjs/services/db/destinations-db-service.js +57 -57
  143. package/dist/cjs/services/db/identity-cache-db-service.d.ts +28 -28
  144. package/dist/cjs/services/db/identity-cache-db-service.js +278 -278
  145. package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
  146. package/dist/cjs/services/db/index.d.ts +9 -9
  147. package/dist/cjs/services/db/index.js +25 -25
  148. package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
  149. package/dist/cjs/services/db/log-events-db-service.js +172 -172
  150. package/dist/cjs/services/db/purchasable-contacts-db-service.d.ts +9 -9
  151. package/dist/cjs/services/db/purchasable-contacts-db-service.js +43 -43
  152. package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +11 -11
  153. package/dist/cjs/services/db/purchased-contacts-db-service.js +68 -68
  154. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +7 -7
  155. package/dist/cjs/services/db/shopify-app-installs-db-service.js +47 -47
  156. package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +16 -16
  157. package/dist/cjs/services/db/shopify-products-cache-db-service.js +65 -65
  158. package/dist/cjs/services/db/tracking-events-db-service.d.ts +20 -20
  159. package/dist/cjs/services/db/tracking-events-db-service.js +162 -162
  160. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  161. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  162. package/dist/cjs/services/events/index.d.ts +3 -3
  163. package/dist/cjs/services/events/index.js +19 -19
  164. package/dist/cjs/services/events/log-event-service.d.ts +9 -9
  165. package/dist/cjs/services/events/log-event-service.js +56 -56
  166. package/dist/cjs/services/events/metric-event-service.d.ts +9 -9
  167. package/dist/cjs/services/events/metric-event-service.js +49 -49
  168. package/dist/cjs/services/events/tracking-event-sqs-service.d.ts +8 -8
  169. package/dist/cjs/services/events/tracking-event-sqs-service.js +29 -29
  170. package/dist/cjs/services/generic-cache-service.d.ts +7 -7
  171. package/dist/cjs/services/generic-cache-service.js +33 -33
  172. package/dist/cjs/services/index.d.ts +8 -8
  173. package/dist/cjs/services/index.js +24 -24
  174. package/dist/cjs/services/ipdata-lookup-service.d.ts +19 -19
  175. package/dist/cjs/services/ipdata-lookup-service.js +77 -77
  176. package/dist/cjs/services/shopify/index.d.ts +3 -3
  177. package/dist/cjs/services/shopify/index.js +19 -19
  178. package/dist/cjs/services/shopify/products/index.d.ts +1 -1
  179. package/dist/cjs/services/shopify/products/index.js +17 -17
  180. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  181. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js +103 -103
  182. package/dist/cjs/services/shopify/shopify-graphql-transformer.d.ts +9 -9
  183. package/dist/cjs/services/shopify/shopify-graphql-transformer.js +137 -137
  184. package/dist/cjs/services/shopify/types/index.d.ts +1 -1
  185. package/dist/cjs/services/shopify/types/index.js +17 -17
  186. package/dist/cjs/services/shopify/types/product.d.ts +115 -115
  187. package/dist/cjs/services/shopify/types/product.js +9 -9
  188. package/dist/cjs/types/api-response.d.ts +6 -6
  189. package/dist/cjs/types/api-response.js +2 -2
  190. package/dist/cjs/types/index.d.ts +2 -2
  191. package/dist/cjs/types/index.js +18 -18
  192. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  193. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  194. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  195. package/dist/cjs/types/internal-events/index.js +17 -17
  196. package/dist/cjs/types/shopify-graphql-types/admin.generated.d.ts +105 -105
  197. package/dist/cjs/types/shopify-graphql-types/admin.generated.js +2 -2
  198. package/dist/cjs/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  199. package/dist/cjs/types/shopify-graphql-types/admin.types.js +5311 -5311
  200. package/dist/cjs/types/shopify-graphql-types/index.d.ts +2 -2
  201. package/dist/cjs/types/shopify-graphql-types/index.js +18 -18
  202. package/dist/esm/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  203. package/dist/esm/__tests__/helpers/account-users-helper.spec.js +198 -198
  204. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  205. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +672 -672
  206. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  207. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +584 -584
  208. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  209. package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
  210. package/dist/esm/__tests__/libs/currency.spec.d.ts +1 -1
  211. package/dist/esm/__tests__/libs/currency.spec.js +218 -218
  212. package/dist/esm/__tests__/libs/dates.spec.d.ts +1 -1
  213. package/dist/esm/__tests__/libs/dates.spec.js +130 -130
  214. package/dist/esm/__tests__/libs/domain.spec.d.ts +1 -1
  215. package/dist/esm/__tests__/libs/domain.spec.js +105 -105
  216. package/dist/esm/__tests__/libs/numbers.spec.d.ts +1 -1
  217. package/dist/esm/__tests__/libs/numbers.spec.js +259 -259
  218. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  219. package/dist/esm/__tests__/s3-client/s3-client.spec.js +24 -24
  220. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  221. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +33 -33
  222. package/dist/esm/clients/generic/cognito-client.d.ts +23 -23
  223. package/dist/esm/clients/generic/cognito-client.js +204 -204
  224. package/dist/esm/clients/generic/dynamodb-client.d.ts +17 -17
  225. package/dist/esm/clients/generic/dynamodb-client.js +166 -166
  226. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  227. package/dist/esm/clients/generic/eventbridge-client.js +45 -45
  228. package/dist/esm/clients/generic/http-client.d.ts +14 -14
  229. package/dist/esm/clients/generic/http-client.js +53 -53
  230. package/dist/esm/clients/generic/index.d.ts +10 -10
  231. package/dist/esm/clients/generic/index.js +10 -10
  232. package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
  233. package/dist/esm/clients/generic/lambda-invoke-client.js +31 -31
  234. package/dist/esm/clients/generic/location-client.d.ts +8 -8
  235. package/dist/esm/clients/generic/location-client.js +27 -27
  236. package/dist/esm/clients/generic/redis-client.d.ts +18 -18
  237. package/dist/esm/clients/generic/redis-client.js +121 -121
  238. package/dist/esm/clients/generic/s3-client.d.ts +23 -23
  239. package/dist/esm/clients/generic/s3-client.js +191 -191
  240. package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
  241. package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
  242. package/dist/esm/clients/generic/sqs-client.d.ts +20 -20
  243. package/dist/esm/clients/generic/sqs-client.js +32 -32
  244. package/dist/esm/clients/index.d.ts +3 -3
  245. package/dist/esm/clients/index.js +3 -3
  246. package/dist/esm/clients/internal-api/accounts-client.d.ts +83 -83
  247. package/dist/esm/clients/internal-api/accounts-client.js +103 -103
  248. package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +25 -25
  249. package/dist/esm/clients/internal-api/cache-lambda-client.js +75 -75
  250. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  251. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  252. package/dist/esm/clients/internal-api/destinations-client.d.ts +27 -27
  253. package/dist/esm/clients/internal-api/destinations-client.js +47 -47
  254. package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
  255. package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
  256. package/dist/esm/clients/internal-api/identity-client.d.ts +31 -31
  257. package/dist/esm/clients/internal-api/identity-client.js +79 -79
  258. package/dist/esm/clients/internal-api/index.d.ts +9 -9
  259. package/dist/esm/clients/internal-api/index.js +9 -9
  260. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +36 -36
  261. package/dist/esm/clients/internal-api/shopify-app-install-client.js +64 -64
  262. package/dist/esm/clients/internal-api/subscriptions-client.d.ts +23 -23
  263. package/dist/esm/clients/internal-api/subscriptions-client.js +54 -54
  264. package/dist/esm/clients/internal-api/users-auth-client.d.ts +35 -35
  265. package/dist/esm/clients/internal-api/users-auth-client.js +106 -106
  266. package/dist/esm/clients/third-party/emailable-client.d.ts +7 -7
  267. package/dist/esm/clients/third-party/emailable-client.js +21 -21
  268. package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  269. package/dist/esm/clients/third-party/exchange-rate-api-client.js +15 -15
  270. package/dist/esm/clients/third-party/index.d.ts +2 -2
  271. package/dist/esm/clients/third-party/index.js +2 -2
  272. package/dist/esm/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  273. package/dist/esm/clients/third-party/shopify/graphql-product-queries.js +2 -2
  274. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.d.ts +9 -9
  275. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +91 -91
  276. package/dist/esm/clients/third-party/shopify-client.d.ts +29 -29
  277. package/dist/esm/clients/third-party/shopify-client.js +140 -140
  278. package/dist/esm/helpers/account-users-helper.d.ts +2 -2
  279. package/dist/esm/helpers/account-users-helper.js +18 -18
  280. package/dist/esm/helpers/identity-cache-helper.d.ts +21 -21
  281. package/dist/esm/helpers/identity-cache-helper.js +152 -152
  282. package/dist/esm/helpers/index.d.ts +6 -6
  283. package/dist/esm/helpers/index.js +6 -6
  284. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  285. package/dist/esm/helpers/input-validation-helper.js +18 -18
  286. package/dist/esm/helpers/logging-helper.d.ts +16 -16
  287. package/dist/esm/helpers/logging-helper.js +56 -56
  288. package/dist/esm/helpers/response-helper.d.ts +18 -15
  289. package/dist/esm/helpers/response-helper.js +37 -36
  290. package/dist/esm/helpers/response-helper.js.map +1 -1
  291. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  292. package/dist/esm/helpers/shopify-helper.js +23 -23
  293. package/dist/esm/index.d.ts +5 -5
  294. package/dist/esm/index.js +5 -5
  295. package/dist/esm/libs/click-id-parser.d.ts +23 -23
  296. package/dist/esm/libs/click-id-parser.js +45 -45
  297. package/dist/esm/libs/compression.d.ts +2 -2
  298. package/dist/esm/libs/compression.js +25 -25
  299. package/dist/esm/libs/cookie.d.ts +12 -11
  300. package/dist/esm/libs/cookie.js +62 -59
  301. package/dist/esm/libs/cookie.js.map +1 -1
  302. package/dist/esm/libs/crypto.d.ts +2 -2
  303. package/dist/esm/libs/crypto.js +8 -8
  304. package/dist/esm/libs/csv.d.ts +2 -2
  305. package/dist/esm/libs/csv.js +30 -30
  306. package/dist/esm/libs/currency.d.ts +1 -1
  307. package/dist/esm/libs/currency.js +17 -17
  308. package/dist/esm/libs/dates.d.ts +12 -12
  309. package/dist/esm/libs/dates.js +83 -83
  310. package/dist/esm/libs/domain.d.ts +2 -2
  311. package/dist/esm/libs/domain.js +33 -33
  312. package/dist/esm/libs/http-error.d.ts +21 -21
  313. package/dist/esm/libs/http-error.js +55 -55
  314. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  315. package/dist/esm/libs/http-status-codes.js +59 -59
  316. package/dist/esm/libs/index.d.ts +16 -16
  317. package/dist/esm/libs/index.js +16 -16
  318. package/dist/esm/libs/numbers.d.ts +1 -1
  319. package/dist/esm/libs/numbers.js +11 -11
  320. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  321. package/dist/esm/libs/referrer-parser/index.js +2 -2
  322. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  323. package/dist/esm/libs/referrer-parser/referrer-data.js +4709 -4709
  324. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  325. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +121 -121
  326. package/dist/esm/libs/strings.d.ts +3 -3
  327. package/dist/esm/libs/strings.js +40 -40
  328. package/dist/esm/libs/traits.d.ts +2 -2
  329. package/dist/esm/libs/traits.js +14 -14
  330. package/dist/esm/libs/url.d.ts +1 -1
  331. package/dist/esm/libs/url.js +9 -9
  332. package/dist/esm/services/cache/generic-cached-object.d.ts +5 -5
  333. package/dist/esm/services/cache/generic-cached-object.js +1 -1
  334. package/dist/esm/services/cache/index.d.ts +1 -1
  335. package/dist/esm/services/cache/index.js +1 -1
  336. package/dist/esm/services/cache/product-cache-service.d.ts +21 -21
  337. package/dist/esm/services/cache/product-cache-service.js +60 -60
  338. package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +11 -11
  339. package/dist/esm/services/currency-exchange-rate-lookup-service.js +46 -46
  340. package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  341. package/dist/esm/services/db/currency-exchange-rates-db-service.js +35 -35
  342. package/dist/esm/services/db/destinations-db-service.d.ts +9 -9
  343. package/dist/esm/services/db/destinations-db-service.js +53 -53
  344. package/dist/esm/services/db/identity-cache-db-service.d.ts +28 -28
  345. package/dist/esm/services/db/identity-cache-db-service.js +271 -271
  346. package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
  347. package/dist/esm/services/db/index.d.ts +9 -9
  348. package/dist/esm/services/db/index.js +9 -9
  349. package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
  350. package/dist/esm/services/db/log-events-db-service.js +168 -168
  351. package/dist/esm/services/db/purchasable-contacts-db-service.d.ts +9 -9
  352. package/dist/esm/services/db/purchasable-contacts-db-service.js +39 -39
  353. package/dist/esm/services/db/purchased-contacts-db-service.d.ts +11 -11
  354. package/dist/esm/services/db/purchased-contacts-db-service.js +64 -64
  355. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +7 -7
  356. package/dist/esm/services/db/shopify-app-installs-db-service.js +43 -43
  357. package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +16 -16
  358. package/dist/esm/services/db/shopify-products-cache-db-service.js +58 -58
  359. package/dist/esm/services/db/tracking-events-db-service.d.ts +20 -20
  360. package/dist/esm/services/db/tracking-events-db-service.js +158 -158
  361. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  362. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  363. package/dist/esm/services/events/index.d.ts +3 -3
  364. package/dist/esm/services/events/index.js +3 -3
  365. package/dist/esm/services/events/log-event-service.d.ts +9 -9
  366. package/dist/esm/services/events/log-event-service.js +52 -52
  367. package/dist/esm/services/events/metric-event-service.d.ts +9 -9
  368. package/dist/esm/services/events/metric-event-service.js +45 -45
  369. package/dist/esm/services/events/tracking-event-sqs-service.d.ts +8 -8
  370. package/dist/esm/services/events/tracking-event-sqs-service.js +25 -25
  371. package/dist/esm/services/generic-cache-service.d.ts +7 -7
  372. package/dist/esm/services/generic-cache-service.js +29 -29
  373. package/dist/esm/services/index.d.ts +8 -8
  374. package/dist/esm/services/index.js +8 -8
  375. package/dist/esm/services/ipdata-lookup-service.d.ts +19 -19
  376. package/dist/esm/services/ipdata-lookup-service.js +73 -73
  377. package/dist/esm/services/shopify/index.d.ts +3 -3
  378. package/dist/esm/services/shopify/index.js +3 -3
  379. package/dist/esm/services/shopify/products/index.d.ts +1 -1
  380. package/dist/esm/services/shopify/products/index.js +1 -1
  381. package/dist/esm/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  382. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js +99 -99
  383. package/dist/esm/services/shopify/shopify-graphql-transformer.d.ts +9 -9
  384. package/dist/esm/services/shopify/shopify-graphql-transformer.js +134 -134
  385. package/dist/esm/services/shopify/types/index.d.ts +1 -1
  386. package/dist/esm/services/shopify/types/index.js +1 -1
  387. package/dist/esm/services/shopify/types/product.d.ts +115 -115
  388. package/dist/esm/services/shopify/types/product.js +6 -6
  389. package/dist/esm/types/api-response.d.ts +6 -6
  390. package/dist/esm/types/api-response.js +1 -1
  391. package/dist/esm/types/index.d.ts +2 -2
  392. package/dist/esm/types/index.js +2 -2
  393. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  394. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  395. package/dist/esm/types/internal-events/index.d.ts +1 -1
  396. package/dist/esm/types/internal-events/index.js +1 -1
  397. package/dist/esm/types/shopify-graphql-types/admin.generated.d.ts +105 -105
  398. package/dist/esm/types/shopify-graphql-types/admin.generated.js +1 -1
  399. package/dist/esm/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  400. package/dist/esm/types/shopify-graphql-types/admin.types.js +5299 -5299
  401. package/dist/esm/types/shopify-graphql-types/index.d.ts +2 -2
  402. package/dist/esm/types/shopify-graphql-types/index.js +2 -2
  403. package/package.json +1 -1
@@ -1,44 +1,44 @@
1
- import { DynamoDbClient } from '../../clients';
2
- import { Logger } from '../../helpers';
3
- export class ShopifyAppInstallsDbService {
4
- TABLE_NAME;
5
- constructor(tableName) {
6
- this.TABLE_NAME = tableName;
7
- }
8
- getShopifyAppInstallByShop = async (indexName, shop) => {
9
- try {
10
- const values = {
11
- ':shop': shop
12
- };
13
- const query = {
14
- TableName: this.TABLE_NAME,
15
- IndexName: indexName,
16
- KeyConditionExpression: 'shop = :shop',
17
- ExpressionAttributeValues: values
18
- };
19
- const shopifyAppInstalls = await DynamoDbClient.queryAll(query);
20
- if (shopifyAppInstalls && shopifyAppInstalls.length > 0) {
21
- return shopifyAppInstalls[0];
22
- }
23
- return null;
24
- }
25
- catch (error) {
26
- Logger.error('failed to shopifyAppInstall by shop', { error, indexName, shop });
27
- return null;
28
- }
29
- };
30
- getShopifyAppInstallByPixelId = async (indexName, pixelId) => {
31
- try {
32
- const shopifyAppInstalls = await DynamoDbClient.safeQueryByGSI(this.TABLE_NAME, indexName, 'pixelId', pixelId);
33
- if (shopifyAppInstalls && shopifyAppInstalls?.length > 0) {
34
- return shopifyAppInstalls[0];
35
- }
36
- return null;
37
- }
38
- catch (error) {
39
- Logger.error('failed to fetch shopifyAppInstall by pixelId', { error, indexName, pixelId });
40
- return null;
41
- }
42
- };
43
- }
1
+ import { DynamoDbClient } from '../../clients';
2
+ import { Logger } from '../../helpers';
3
+ export class ShopifyAppInstallsDbService {
4
+ TABLE_NAME;
5
+ constructor(tableName) {
6
+ this.TABLE_NAME = tableName;
7
+ }
8
+ getShopifyAppInstallByShop = async (indexName, shop) => {
9
+ try {
10
+ const values = {
11
+ ':shop': shop
12
+ };
13
+ const query = {
14
+ TableName: this.TABLE_NAME,
15
+ IndexName: indexName,
16
+ KeyConditionExpression: 'shop = :shop',
17
+ ExpressionAttributeValues: values
18
+ };
19
+ const shopifyAppInstalls = await DynamoDbClient.queryAll(query);
20
+ if (shopifyAppInstalls && shopifyAppInstalls.length > 0) {
21
+ return shopifyAppInstalls[0];
22
+ }
23
+ return null;
24
+ }
25
+ catch (error) {
26
+ Logger.error('failed to shopifyAppInstall by shop', { error, indexName, shop });
27
+ return null;
28
+ }
29
+ };
30
+ getShopifyAppInstallByPixelId = async (indexName, pixelId) => {
31
+ try {
32
+ const shopifyAppInstalls = await DynamoDbClient.safeQueryByGSI(this.TABLE_NAME, indexName, 'pixelId', pixelId);
33
+ if (shopifyAppInstalls && shopifyAppInstalls?.length > 0) {
34
+ return shopifyAppInstalls[0];
35
+ }
36
+ return null;
37
+ }
38
+ catch (error) {
39
+ Logger.error('failed to fetch shopifyAppInstall by pixelId', { error, indexName, pixelId });
40
+ return null;
41
+ }
42
+ };
43
+ }
44
44
  //# sourceMappingURL=shopify-app-installs-db-service.js.map
@@ -1,16 +1,16 @@
1
- import { InternalProduct } from '../shopify/types/product';
2
- import { ProductCache } from '../cache';
3
- export interface ShopifyProductDynamoDbCache extends ProductCache {
4
- pixelId_productId: string;
5
- pixelId: string;
6
- productId: string;
7
- }
8
- export declare class ShopifyProductsCacheDbService {
9
- TABLE_NAME: string;
10
- KEY_NAME: string;
11
- private dynamoDbCacheTtlInSeconds;
12
- constructor(tableName: string, keyName: string, dynamoDbCacheTtlInSeconds: number);
13
- getProductFromDynamoDBCache: (pixelId: string, productId: string) => Promise<InternalProduct | undefined>;
14
- putProductInDynamoDBCache: (pixelId: string, productId: string, product: InternalProduct, ttlInSeconds?: number) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null>;
15
- private isProductCacheStale;
16
- }
1
+ import { InternalProduct } from '../shopify/types/product';
2
+ import { ProductCache } from '../cache';
3
+ export interface ShopifyProductDynamoDbCache extends ProductCache {
4
+ pixelId_productId: string;
5
+ pixelId: string;
6
+ productId: string;
7
+ }
8
+ export declare class ShopifyProductsCacheDbService {
9
+ TABLE_NAME: string;
10
+ KEY_NAME: string;
11
+ private dynamoDbCacheTtlInSeconds;
12
+ constructor(tableName: string, keyName: string, dynamoDbCacheTtlInSeconds: number);
13
+ getProductFromDynamoDBCache: (pixelId: string, productId: string) => Promise<InternalProduct | undefined>;
14
+ putProductInDynamoDBCache: (pixelId: string, productId: string, product: InternalProduct, ttlInSeconds?: number) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null>;
15
+ private isProductCacheStale;
16
+ }
@@ -1,59 +1,59 @@
1
- import { DynamoDbClient } from '../../clients';
2
- import { compressJSON, decompressJSON, getCurrentTimestamp } from '../../libs';
3
- import { DateTime } from 'luxon';
4
- import { Logger } from '../../helpers';
5
- import crypto from 'crypto';
6
- const DEFAULT_TTL_IN_SECONDS = 7 * 24 * 3600;
7
- export class ShopifyProductsCacheDbService {
8
- TABLE_NAME;
9
- KEY_NAME;
10
- dynamoDbCacheTtlInSeconds;
11
- constructor(tableName, keyName, dynamoDbCacheTtlInSeconds) {
12
- this.TABLE_NAME = tableName;
13
- this.KEY_NAME = keyName;
14
- this.dynamoDbCacheTtlInSeconds = dynamoDbCacheTtlInSeconds || DEFAULT_TTL_IN_SECONDS;
15
- }
16
- getProductFromDynamoDBCache = async (pixelId, productId) => {
17
- try {
18
- const cachedProduct = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, `${pixelId}_${productId}`);
19
- if (cachedProduct && !this.isProductCacheStale(cachedProduct)) {
20
- const product = decompressJSON(cachedProduct.productCompressed);
21
- return product;
22
- }
23
- return undefined;
24
- }
25
- catch (error) {
26
- Logger.error('Failed getShopifyProductCacheREST', { keyName: this.KEY_NAME, pixelId, productId, error });
27
- return undefined;
28
- }
29
- };
30
- putProductInDynamoDBCache = async (pixelId, productId, product, ttlInSeconds) => {
31
- const ttl = ttlInSeconds || this.dynamoDbCacheTtlInSeconds;
32
- const expiresAt = DateTime.utc().plus({ seconds: ttl }).toSeconds();
33
- const cachedAt = getCurrentTimestamp();
34
- const cachedAtEpoch = DateTime.utc().toSeconds();
35
- const fullSha256 = crypto.createHash('sha256').update(JSON.stringify(product)).digest('hex');
36
- const noInventoryProduct = { ...product, totalInventory: undefined, variants: product?.variants?.map(variant => ({ ...variant, inventoryQuantity: undefined, inventoryItem: undefined })) };
37
- const noInventorySha256 = crypto.createHash('sha256').update(JSON.stringify(noInventoryProduct)).digest('hex');
38
- const productCompressed = compressJSON(product);
39
- const shopifyProductCache = {
40
- pixelId_productId: `${pixelId}_${productId}`,
41
- pixelId,
42
- productId,
43
- productCompressed,
44
- fullSha256,
45
- noInventorySha256,
46
- cachedAt,
47
- cachedAtEpoch,
48
- expiresAt
49
- };
50
- return await DynamoDbClient.safePut(this.TABLE_NAME, shopifyProductCache);
51
- };
52
- isProductCacheStale = (cachedData) => {
53
- if (cachedData?.expiresAt && cachedData.expiresAt < DateTime.utc().toSeconds()) {
54
- return true;
55
- }
56
- return false;
57
- };
58
- }
1
+ import { DynamoDbClient } from '../../clients';
2
+ import { compressJSON, decompressJSON, getCurrentTimestamp } from '../../libs';
3
+ import { DateTime } from 'luxon';
4
+ import { Logger } from '../../helpers';
5
+ import crypto from 'crypto';
6
+ const DEFAULT_TTL_IN_SECONDS = 7 * 24 * 3600;
7
+ export class ShopifyProductsCacheDbService {
8
+ TABLE_NAME;
9
+ KEY_NAME;
10
+ dynamoDbCacheTtlInSeconds;
11
+ constructor(tableName, keyName, dynamoDbCacheTtlInSeconds) {
12
+ this.TABLE_NAME = tableName;
13
+ this.KEY_NAME = keyName;
14
+ this.dynamoDbCacheTtlInSeconds = dynamoDbCacheTtlInSeconds || DEFAULT_TTL_IN_SECONDS;
15
+ }
16
+ getProductFromDynamoDBCache = async (pixelId, productId) => {
17
+ try {
18
+ const cachedProduct = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, `${pixelId}_${productId}`);
19
+ if (cachedProduct && !this.isProductCacheStale(cachedProduct)) {
20
+ const product = decompressJSON(cachedProduct.productCompressed);
21
+ return product;
22
+ }
23
+ return undefined;
24
+ }
25
+ catch (error) {
26
+ Logger.error('Failed getShopifyProductCacheREST', { keyName: this.KEY_NAME, pixelId, productId, error });
27
+ return undefined;
28
+ }
29
+ };
30
+ putProductInDynamoDBCache = async (pixelId, productId, product, ttlInSeconds) => {
31
+ const ttl = ttlInSeconds || this.dynamoDbCacheTtlInSeconds;
32
+ const expiresAt = DateTime.utc().plus({ seconds: ttl }).toSeconds();
33
+ const cachedAt = getCurrentTimestamp();
34
+ const cachedAtEpoch = DateTime.utc().toSeconds();
35
+ const fullSha256 = crypto.createHash('sha256').update(JSON.stringify(product)).digest('hex');
36
+ const noInventoryProduct = { ...product, totalInventory: undefined, variants: product?.variants?.map(variant => ({ ...variant, inventoryQuantity: undefined, inventoryItem: undefined })) };
37
+ const noInventorySha256 = crypto.createHash('sha256').update(JSON.stringify(noInventoryProduct)).digest('hex');
38
+ const productCompressed = compressJSON(product);
39
+ const shopifyProductCache = {
40
+ pixelId_productId: `${pixelId}_${productId}`,
41
+ pixelId,
42
+ productId,
43
+ productCompressed,
44
+ fullSha256,
45
+ noInventorySha256,
46
+ cachedAt,
47
+ cachedAtEpoch,
48
+ expiresAt
49
+ };
50
+ return await DynamoDbClient.safePut(this.TABLE_NAME, shopifyProductCache);
51
+ };
52
+ isProductCacheStale = (cachedData) => {
53
+ if (cachedData?.expiresAt && cachedData.expiresAt < DateTime.utc().toSeconds()) {
54
+ return true;
55
+ }
56
+ return false;
57
+ };
58
+ }
59
59
  //# sourceMappingURL=shopify-products-cache-db-service.js.map
@@ -1,20 +1,20 @@
1
- import { AdClickInfo, TrackingEvent, TrackingEventRecord } from '@adtrackify/at-tracking-event-types';
2
- export interface LatestSessionResponseData {
3
- pixelId?: string;
4
- identityId?: string;
5
- sessionId?: string;
6
- click?: AdClickInfo;
7
- }
8
- export declare class TrackingEventsDbService {
9
- TABLE_NAME: string;
10
- KEY_NAME: string;
11
- constructor(tableName: string);
12
- private processResult;
13
- private processResults;
14
- getLatestSessionByIpAddressUserAgent: (indexName: string, ipAddressUserAgent: string, hostname?: string) => Promise<LatestSessionResponseData>;
15
- getTrackingEventsByPixelIdEventName: (indexName: string, pixelId: string, eventName: string, limit?: number, afterCollectedAt?: string) => Promise<TrackingEventRecord[]>;
16
- getTrackingEventCountByPixelId: (indexName: string, pixelId: string, offsetInMinutes?: number) => Promise<number>;
17
- getTrackingEvent: (eventId: string) => Promise<TrackingEventRecord | null>;
18
- buildTrackingEventRecord: (trackingEvent: TrackingEvent, ttlInDays?: number) => TrackingEventRecord;
19
- putTrackingEvent: (trackingEvent: TrackingEvent, ttlInDays?: number) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null | undefined>;
20
- }
1
+ import { AdClickInfo, TrackingEvent, TrackingEventRecord } from '@adtrackify/at-tracking-event-types';
2
+ export interface LatestSessionResponseData {
3
+ pixelId?: string;
4
+ identityId?: string;
5
+ sessionId?: string;
6
+ click?: AdClickInfo;
7
+ }
8
+ export declare class TrackingEventsDbService {
9
+ TABLE_NAME: string;
10
+ KEY_NAME: string;
11
+ constructor(tableName: string);
12
+ private processResult;
13
+ private processResults;
14
+ getLatestSessionByIpAddressUserAgent: (indexName: string, ipAddressUserAgent: string, hostname?: string) => Promise<LatestSessionResponseData>;
15
+ getTrackingEventsByPixelIdEventName: (indexName: string, pixelId: string, eventName: string, limit?: number, afterCollectedAt?: string) => Promise<TrackingEventRecord[]>;
16
+ getTrackingEventCountByPixelId: (indexName: string, pixelId: string, offsetInMinutes?: number) => Promise<number>;
17
+ getTrackingEvent: (eventId: string) => Promise<TrackingEventRecord | null>;
18
+ buildTrackingEventRecord: (trackingEvent: TrackingEvent, ttlInDays?: number) => TrackingEventRecord;
19
+ putTrackingEvent: (trackingEvent: TrackingEvent, ttlInDays?: number) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null | undefined>;
20
+ }
@@ -1,159 +1,159 @@
1
- import { DynamoDbClient } from '../../clients';
2
- import { Logger } from '../../helpers';
3
- import { DateTime } from 'luxon';
4
- import { compressJSON, decompressJSON } from '../../libs';
5
- export class TrackingEventsDbService {
6
- TABLE_NAME;
7
- KEY_NAME = 'eventId';
8
- constructor(tableName) {
9
- this.TABLE_NAME = tableName;
10
- }
11
- processResult = (trackingEventRecord) => {
12
- if (trackingEventRecord?.trackingEventCompressed) {
13
- const trackingEventDecompressed = decompressJSON(trackingEventRecord.trackingEventCompressed);
14
- if (trackingEventDecompressed) {
15
- trackingEventRecord.trackingEvent = trackingEventDecompressed;
16
- delete trackingEventRecord?.trackingEventCompressed;
17
- }
18
- }
19
- return trackingEventRecord;
20
- };
21
- processResults = (trackingEventRecords) => {
22
- return trackingEventRecords.map((trackingEventRecord) => this.processResult(trackingEventRecord));
23
- };
24
- getLatestSessionByIpAddressUserAgent = async (indexName, ipAddressUserAgent, hostname) => {
25
- try {
26
- const params = {
27
- TableName: this.TABLE_NAME,
28
- IndexName: indexName,
29
- KeyConditionExpression: 'ipAddressUserAgent = :ipAddressUserAgent',
30
- ExpressionAttributeValues: {
31
- ':ipAddressUserAgent': ipAddressUserAgent,
32
- },
33
- ScanIndexForward: false
34
- };
35
- const results = await DynamoDbClient.query(params);
36
- let trackingEventRecord;
37
- if (results?.Items && results.Items.length > 0) {
38
- trackingEventRecord = results.Items.find((item) => {
39
- const _trackingEvent = item.trackingEvent;
40
- const _hostname = item?.hostname;
41
- if (hostname && _hostname === hostname && _trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
42
- return true;
43
- }
44
- else if (_trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
45
- return true;
46
- }
47
- else {
48
- return false;
49
- }
50
- });
51
- }
52
- if (trackingEventRecord) {
53
- trackingEventRecord = this.processResult(trackingEventRecord);
54
- const trackingEvent = trackingEventRecord.trackingEvent;
55
- return {
56
- pixelId: trackingEvent?.pixelId,
57
- identityId: trackingEvent.context?.identity?.identityId,
58
- sessionId: trackingEvent.context?.properties?.sessionId,
59
- click: trackingEvent.context?.properties?.click
60
- };
61
- }
62
- else {
63
- return {};
64
- }
65
- }
66
- catch (e) {
67
- Logger.error('Failed to getLastTrackingEventByIpAddressUserAgent', { e });
68
- return {};
69
- }
70
- };
71
- getTrackingEventsByPixelIdEventName = async (indexName, pixelId, eventName, limit, afterCollectedAt) => {
72
- const query = {
73
- TableName: this.TABLE_NAME,
74
- IndexName: indexName,
75
- KeyConditionExpression: 'pixelIdEventName = :pixelIdEventName',
76
- ExpressionAttributeValues: {
77
- ':pixelIdEventName': `${pixelId}_${eventName}`,
78
- },
79
- ScanIndexForward: false,
80
- };
81
- if (limit) {
82
- query.Limit = limit;
83
- }
84
- if (afterCollectedAt) {
85
- query.KeyConditionExpression += ' and collectedAt > :collectedAt';
86
- query.ExpressionAttributeValues[':collectedAt'] = afterCollectedAt;
87
- }
88
- const result = await DynamoDbClient.query(query);
89
- const trackingEventRecords = (result?.Items ?? []);
90
- return this.processResults(trackingEventRecords);
91
- };
92
- getTrackingEventCountByPixelId = async (indexName, pixelId, offsetInMinutes = 30) => {
93
- try {
94
- const pastDateTime = DateTime.utc().minus({ minutes: offsetInMinutes }).toISO();
95
- const params = {
96
- TableName: this.TABLE_NAME,
97
- IndexName: indexName,
98
- KeyConditionExpression: 'pixelId = :pixelId and collectedAt > :collectedAt',
99
- ExpressionAttributeValues: {
100
- ':pixelId': pixelId,
101
- ':collectedAt': pastDateTime
102
- }
103
- };
104
- const results = await DynamoDbClient.query(params);
105
- return results?.Items?.length ?? 0;
106
- }
107
- catch (e) {
108
- Logger.error('Failed to getTrackingEventCountByPixelId', { e });
109
- return 0;
110
- }
111
- };
112
- getTrackingEvent = async (eventId) => {
113
- try {
114
- let trackingEventRecord = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, eventId);
115
- trackingEventRecord = this.processResult(trackingEventRecord);
116
- return trackingEventRecord;
117
- }
118
- catch (e) {
119
- Logger.error('Failed to getTrackingEvent', { e });
120
- return null;
121
- }
122
- };
123
- buildTrackingEventRecord = (trackingEvent, ttlInDays) => {
124
- const trackingEventCopy = JSON.parse(JSON.stringify(trackingEvent));
125
- delete trackingEventCopy?.context?.properties?.enrichment?.ipLookupResponse;
126
- const pageURL = trackingEventCopy?.context?.properties?.page?.url;
127
- const parsedPageURL = new URL(pageURL);
128
- const hostname = parsedPageURL?.hostname;
129
- const trackingEventsTableTTLDays = ttlInDays || 15;
130
- const expiredAt = DateTime.utc().plus({ days: trackingEventsTableTTLDays }).toSeconds();
131
- const trackingEventRecord = {
132
- eventId: trackingEventCopy.id,
133
- eventName: trackingEventCopy.name,
134
- pixelId: trackingEventCopy?.pixelId,
135
- pixelIdEventName: `${trackingEventCopy.pixelId}_${trackingEventCopy.name}`,
136
- ipAddressUserAgent: `${trackingEventCopy.context?.properties?.ipAddress}_${trackingEventCopy.context?.properties?.userAgent}`,
137
- hostname,
138
- identityId: trackingEventCopy?.context?.identity?.identityId,
139
- sessionId: trackingEventCopy?.context?.properties?.sessionId,
140
- collectedAt: trackingEventCopy.collectedAt,
141
- expiredAt,
142
- };
143
- const trackingEventCompressed = compressJSON(trackingEventCopy);
144
- if (trackingEventCompressed) {
145
- trackingEventRecord.trackingEventCompressed = trackingEventCompressed;
146
- }
147
- else {
148
- trackingEventRecord.trackingEvent = trackingEventCopy;
149
- }
150
- return trackingEventRecord;
151
- };
152
- putTrackingEvent = async (trackingEvent, ttlInDays) => {
153
- if (!trackingEvent.context?.properties?.ipAddress || !trackingEvent.context?.properties?.userAgent)
154
- return;
155
- const trackingEventRecord = this.buildTrackingEventRecord(trackingEvent, ttlInDays);
156
- return await DynamoDbClient.safePut(this.TABLE_NAME, trackingEventRecord);
157
- };
158
- }
1
+ import { DynamoDbClient } from '../../clients';
2
+ import { Logger } from '../../helpers';
3
+ import { DateTime } from 'luxon';
4
+ import { compressJSON, decompressJSON } from '../../libs';
5
+ export class TrackingEventsDbService {
6
+ TABLE_NAME;
7
+ KEY_NAME = 'eventId';
8
+ constructor(tableName) {
9
+ this.TABLE_NAME = tableName;
10
+ }
11
+ processResult = (trackingEventRecord) => {
12
+ if (trackingEventRecord?.trackingEventCompressed) {
13
+ const trackingEventDecompressed = decompressJSON(trackingEventRecord.trackingEventCompressed);
14
+ if (trackingEventDecompressed) {
15
+ trackingEventRecord.trackingEvent = trackingEventDecompressed;
16
+ delete trackingEventRecord?.trackingEventCompressed;
17
+ }
18
+ }
19
+ return trackingEventRecord;
20
+ };
21
+ processResults = (trackingEventRecords) => {
22
+ return trackingEventRecords.map((trackingEventRecord) => this.processResult(trackingEventRecord));
23
+ };
24
+ getLatestSessionByIpAddressUserAgent = async (indexName, ipAddressUserAgent, hostname) => {
25
+ try {
26
+ const params = {
27
+ TableName: this.TABLE_NAME,
28
+ IndexName: indexName,
29
+ KeyConditionExpression: 'ipAddressUserAgent = :ipAddressUserAgent',
30
+ ExpressionAttributeValues: {
31
+ ':ipAddressUserAgent': ipAddressUserAgent,
32
+ },
33
+ ScanIndexForward: false
34
+ };
35
+ const results = await DynamoDbClient.query(params);
36
+ let trackingEventRecord;
37
+ if (results?.Items && results.Items.length > 0) {
38
+ trackingEventRecord = results.Items.find((item) => {
39
+ const _trackingEvent = item.trackingEvent;
40
+ const _hostname = item?.hostname;
41
+ if (hostname && _hostname === hostname && _trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
42
+ return true;
43
+ }
44
+ else if (_trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
45
+ return true;
46
+ }
47
+ else {
48
+ return false;
49
+ }
50
+ });
51
+ }
52
+ if (trackingEventRecord) {
53
+ trackingEventRecord = this.processResult(trackingEventRecord);
54
+ const trackingEvent = trackingEventRecord.trackingEvent;
55
+ return {
56
+ pixelId: trackingEvent?.pixelId,
57
+ identityId: trackingEvent.context?.identity?.identityId,
58
+ sessionId: trackingEvent.context?.properties?.sessionId,
59
+ click: trackingEvent.context?.properties?.click
60
+ };
61
+ }
62
+ else {
63
+ return {};
64
+ }
65
+ }
66
+ catch (e) {
67
+ Logger.error('Failed to getLastTrackingEventByIpAddressUserAgent', { e });
68
+ return {};
69
+ }
70
+ };
71
+ getTrackingEventsByPixelIdEventName = async (indexName, pixelId, eventName, limit, afterCollectedAt) => {
72
+ const query = {
73
+ TableName: this.TABLE_NAME,
74
+ IndexName: indexName,
75
+ KeyConditionExpression: 'pixelIdEventName = :pixelIdEventName',
76
+ ExpressionAttributeValues: {
77
+ ':pixelIdEventName': `${pixelId}_${eventName}`,
78
+ },
79
+ ScanIndexForward: false,
80
+ };
81
+ if (limit) {
82
+ query.Limit = limit;
83
+ }
84
+ if (afterCollectedAt) {
85
+ query.KeyConditionExpression += ' and collectedAt > :collectedAt';
86
+ query.ExpressionAttributeValues[':collectedAt'] = afterCollectedAt;
87
+ }
88
+ const result = await DynamoDbClient.query(query);
89
+ const trackingEventRecords = (result?.Items ?? []);
90
+ return this.processResults(trackingEventRecords);
91
+ };
92
+ getTrackingEventCountByPixelId = async (indexName, pixelId, offsetInMinutes = 30) => {
93
+ try {
94
+ const pastDateTime = DateTime.utc().minus({ minutes: offsetInMinutes }).toISO();
95
+ const params = {
96
+ TableName: this.TABLE_NAME,
97
+ IndexName: indexName,
98
+ KeyConditionExpression: 'pixelId = :pixelId and collectedAt > :collectedAt',
99
+ ExpressionAttributeValues: {
100
+ ':pixelId': pixelId,
101
+ ':collectedAt': pastDateTime
102
+ }
103
+ };
104
+ const results = await DynamoDbClient.query(params);
105
+ return results?.Items?.length ?? 0;
106
+ }
107
+ catch (e) {
108
+ Logger.error('Failed to getTrackingEventCountByPixelId', { e });
109
+ return 0;
110
+ }
111
+ };
112
+ getTrackingEvent = async (eventId) => {
113
+ try {
114
+ let trackingEventRecord = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, eventId);
115
+ trackingEventRecord = this.processResult(trackingEventRecord);
116
+ return trackingEventRecord;
117
+ }
118
+ catch (e) {
119
+ Logger.error('Failed to getTrackingEvent', { e });
120
+ return null;
121
+ }
122
+ };
123
+ buildTrackingEventRecord = (trackingEvent, ttlInDays) => {
124
+ const trackingEventCopy = JSON.parse(JSON.stringify(trackingEvent));
125
+ delete trackingEventCopy?.context?.properties?.enrichment?.ipLookupResponse;
126
+ const pageURL = trackingEventCopy?.context?.properties?.page?.url;
127
+ const parsedPageURL = new URL(pageURL);
128
+ const hostname = parsedPageURL?.hostname;
129
+ const trackingEventsTableTTLDays = ttlInDays || 15;
130
+ const expiredAt = DateTime.utc().plus({ days: trackingEventsTableTTLDays }).toSeconds();
131
+ const trackingEventRecord = {
132
+ eventId: trackingEventCopy.id,
133
+ eventName: trackingEventCopy.name,
134
+ pixelId: trackingEventCopy?.pixelId,
135
+ pixelIdEventName: `${trackingEventCopy.pixelId}_${trackingEventCopy.name}`,
136
+ ipAddressUserAgent: `${trackingEventCopy.context?.properties?.ipAddress}_${trackingEventCopy.context?.properties?.userAgent}`,
137
+ hostname,
138
+ identityId: trackingEventCopy?.context?.identity?.identityId,
139
+ sessionId: trackingEventCopy?.context?.properties?.sessionId,
140
+ collectedAt: trackingEventCopy.collectedAt,
141
+ expiredAt,
142
+ };
143
+ const trackingEventCompressed = compressJSON(trackingEventCopy);
144
+ if (trackingEventCompressed) {
145
+ trackingEventRecord.trackingEventCompressed = trackingEventCompressed;
146
+ }
147
+ else {
148
+ trackingEventRecord.trackingEvent = trackingEventCopy;
149
+ }
150
+ return trackingEventRecord;
151
+ };
152
+ putTrackingEvent = async (trackingEvent, ttlInDays) => {
153
+ if (!trackingEvent.context?.properties?.ipAddress || !trackingEvent.context?.properties?.userAgent)
154
+ return;
155
+ const trackingEventRecord = this.buildTrackingEventRecord(trackingEvent, ttlInDays);
156
+ return await DynamoDbClient.safePut(this.TABLE_NAME, trackingEventRecord);
157
+ };
158
+ }
159
159
  //# sourceMappingURL=tracking-events-db-service.js.map
@@ -1,9 +1,9 @@
1
- import { EventBridgeClient } from '../clients/generic/eventbridge-client.js';
2
- import { Message, TemplatedMessage } from 'postmark';
3
- export declare class EventBridgeIntegrationService {
4
- eventBridgeClient: EventBridgeClient;
5
- EVENT_BUS_NAME: string;
6
- constructor(eventBusName: string);
7
- sendPostmarkEmailEvent: (eventSource: string, postmarkMessage: Message, postmarkServerToken: string) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
8
- sendPostmarkTemplatedEmailEvent: (eventSource: string, postmarkMessage: TemplatedMessage, postmarkServerToken: string) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
9
- }
1
+ import { EventBridgeClient } from '../clients/generic/eventbridge-client.js';
2
+ import { Message, TemplatedMessage } from 'postmark';
3
+ export declare class EventBridgeIntegrationService {
4
+ eventBridgeClient: EventBridgeClient;
5
+ EVENT_BUS_NAME: string;
6
+ constructor(eventBusName: string);
7
+ sendPostmarkEmailEvent: (eventSource: string, postmarkMessage: Message, postmarkServerToken: string) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
8
+ sendPostmarkTemplatedEmailEvent: (eventSource: string, postmarkMessage: TemplatedMessage, postmarkServerToken: string) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
9
+ }