@adtrackify/at-service-common 3.17.1 → 3.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/dist/cjs/__tests__/clients/sqs-client.spec.d.ts +1 -1
  2. package/dist/cjs/__tests__/clients/sqs-client.spec.js +121 -121
  3. package/dist/cjs/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  4. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +89 -89
  5. package/dist/cjs/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  6. package/dist/cjs/__tests__/helpers/account-users-helper.spec.js +220 -220
  7. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  8. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +674 -674
  9. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  10. package/dist/cjs/__tests__/identity-cache/trait-merging-and-staleness.spec.js +588 -588
  11. package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  12. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +16 -16
  13. package/dist/cjs/__tests__/libs/currency.spec.d.ts +1 -1
  14. package/dist/cjs/__tests__/libs/currency.spec.js +220 -220
  15. package/dist/cjs/__tests__/libs/dates.spec.d.ts +1 -1
  16. package/dist/cjs/__tests__/libs/dates.spec.js +130 -130
  17. package/dist/cjs/__tests__/libs/domain.spec.d.ts +1 -1
  18. package/dist/cjs/__tests__/libs/domain.spec.js +107 -107
  19. package/dist/cjs/__tests__/libs/numbers.spec.d.ts +1 -1
  20. package/dist/cjs/__tests__/libs/numbers.spec.js +261 -261
  21. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  22. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +33 -33
  23. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  24. package/dist/cjs/__tests__/shopify/shopify-graphql-transformer.spec.js +35 -35
  25. package/dist/cjs/clients/generic/cognito-client.d.ts +23 -23
  26. package/dist/cjs/clients/generic/cognito-client.js +209 -209
  27. package/dist/cjs/clients/generic/dynamodb-client.d.ts +18 -18
  28. package/dist/cjs/clients/generic/dynamodb-client.js +172 -172
  29. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  30. package/dist/cjs/clients/generic/eventbridge-client.js +51 -51
  31. package/dist/cjs/clients/generic/http-client.d.ts +14 -14
  32. package/dist/cjs/clients/generic/http-client.js +61 -61
  33. package/dist/cjs/clients/generic/index.d.ts +10 -10
  34. package/dist/cjs/clients/generic/index.js +26 -26
  35. package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
  36. package/dist/cjs/clients/generic/lambda-invoke-client.js +39 -39
  37. package/dist/cjs/clients/generic/location-client.d.ts +8 -8
  38. package/dist/cjs/clients/generic/location-client.js +31 -31
  39. package/dist/cjs/clients/generic/redis-client.d.ts +33 -33
  40. package/dist/cjs/clients/generic/redis-client.js +191 -191
  41. package/dist/cjs/clients/generic/s3-client.d.ts +23 -23
  42. package/dist/cjs/clients/generic/s3-client.js +216 -216
  43. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +14 -14
  44. package/dist/cjs/clients/generic/singlestore-db-client.js +67 -67
  45. package/dist/cjs/clients/generic/sqs-client.d.ts +33 -33
  46. package/dist/cjs/clients/generic/sqs-client.js +111 -111
  47. package/dist/cjs/clients/index.d.ts +3 -3
  48. package/dist/cjs/clients/index.js +19 -19
  49. package/dist/cjs/clients/internal-api/accounts-client.d.ts +91 -91
  50. package/dist/cjs/clients/internal-api/accounts-client.js +129 -129
  51. package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +26 -26
  52. package/dist/cjs/clients/internal-api/cache-lambda-client.js +89 -89
  53. package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
  54. package/dist/cjs/clients/internal-api/db-management-client.js +36 -36
  55. package/dist/cjs/clients/internal-api/destinations-client.d.ts +34 -34
  56. package/dist/cjs/clients/internal-api/destinations-client.js +79 -79
  57. package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
  58. package/dist/cjs/clients/internal-api/event-collector-client.js +36 -36
  59. package/dist/cjs/clients/internal-api/identity-client.d.ts +31 -31
  60. package/dist/cjs/clients/internal-api/identity-client.js +91 -91
  61. package/dist/cjs/clients/internal-api/index.d.ts +9 -9
  62. package/dist/cjs/clients/internal-api/index.js +25 -25
  63. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  64. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +81 -81
  65. package/dist/cjs/clients/internal-api/subscriptions-client.d.ts +26 -26
  66. package/dist/cjs/clients/internal-api/subscriptions-client.js +77 -77
  67. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +35 -35
  68. package/dist/cjs/clients/internal-api/users-auth-client.js +110 -110
  69. package/dist/cjs/clients/third-party/emailable-client.d.ts +7 -7
  70. package/dist/cjs/clients/third-party/emailable-client.js +25 -25
  71. package/dist/cjs/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  72. package/dist/cjs/clients/third-party/exchange-rate-api-client.js +19 -19
  73. package/dist/cjs/clients/third-party/index.d.ts +4 -4
  74. package/dist/cjs/clients/third-party/index.js +20 -20
  75. package/dist/cjs/clients/third-party/loops-client.d.ts +10 -10
  76. package/dist/cjs/clients/third-party/loops-client.js +30 -30
  77. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  78. package/dist/cjs/clients/third-party/shopify/graphql-order-queries.js +30 -30
  79. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  80. package/dist/cjs/clients/third-party/shopify/graphql-product-queries.js +180 -180
  81. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
  82. package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js +161 -161
  83. package/dist/cjs/clients/third-party/shopify-client.d.ts +29 -29
  84. package/dist/cjs/clients/third-party/shopify-client.js +146 -146
  85. package/dist/cjs/helpers/account-users-helper.d.ts +2 -2
  86. package/dist/cjs/helpers/account-users-helper.js +22 -22
  87. package/dist/cjs/helpers/identity-cache-helper.d.ts +21 -21
  88. package/dist/cjs/helpers/identity-cache-helper.js +156 -156
  89. package/dist/cjs/helpers/index.d.ts +7 -7
  90. package/dist/cjs/helpers/index.js +23 -23
  91. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  92. package/dist/cjs/helpers/input-validation-helper.js +22 -22
  93. package/dist/cjs/helpers/logging-helper.d.ts +16 -16
  94. package/dist/cjs/helpers/logging-helper.js +84 -84
  95. package/dist/cjs/helpers/response-helper.d.ts +18 -18
  96. package/dist/cjs/helpers/response-helper.js +43 -43
  97. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  98. package/dist/cjs/helpers/shopify-helper.js +26 -26
  99. package/dist/cjs/helpers/sqs-utils.d.ts +6 -6
  100. package/dist/cjs/helpers/sqs-utils.js +14 -14
  101. package/dist/cjs/index.d.ts +5 -5
  102. package/dist/cjs/index.js +21 -21
  103. package/dist/cjs/libs/click-id-parser.d.ts +23 -23
  104. package/dist/cjs/libs/click-id-parser.js +49 -49
  105. package/dist/cjs/libs/compression.d.ts +2 -2
  106. package/dist/cjs/libs/compression.js +33 -33
  107. package/dist/cjs/libs/cookie.d.ts +17 -17
  108. package/dist/cjs/libs/cookie.js +76 -76
  109. package/dist/cjs/libs/crypto.d.ts +4 -4
  110. package/dist/cjs/libs/crypto.js +25 -25
  111. package/dist/cjs/libs/csv.d.ts +2 -2
  112. package/dist/cjs/libs/csv.js +35 -35
  113. package/dist/cjs/libs/currency.d.ts +1 -1
  114. package/dist/cjs/libs/currency.js +29 -29
  115. package/dist/cjs/libs/dates.d.ts +12 -12
  116. package/dist/cjs/libs/dates.js +96 -96
  117. package/dist/cjs/libs/domain.d.ts +2 -2
  118. package/dist/cjs/libs/domain.js +38 -38
  119. package/dist/cjs/libs/emails.d.ts +6 -6
  120. package/dist/cjs/libs/emails.js +122 -122
  121. package/dist/cjs/libs/http-error.d.ts +21 -21
  122. package/dist/cjs/libs/http-error.js +63 -63
  123. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  124. package/dist/cjs/libs/http-status-codes.js +62 -62
  125. package/dist/cjs/libs/index.d.ts +17 -17
  126. package/dist/cjs/libs/index.js +33 -33
  127. package/dist/cjs/libs/numbers.d.ts +1 -1
  128. package/dist/cjs/libs/numbers.js +15 -15
  129. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  130. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  131. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  132. package/dist/cjs/libs/referrer-parser/referrer-data.js +3307 -3307
  133. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  134. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +131 -131
  135. package/dist/cjs/libs/strings.d.ts +3 -3
  136. package/dist/cjs/libs/strings.js +46 -46
  137. package/dist/cjs/libs/traits.d.ts +6 -6
  138. package/dist/cjs/libs/traits.js +65 -65
  139. package/dist/cjs/libs/url.d.ts +1 -1
  140. package/dist/cjs/libs/url.js +13 -13
  141. package/dist/cjs/services/cache/generic-cached-object.d.ts +5 -5
  142. package/dist/cjs/services/cache/generic-cached-object.js +2 -2
  143. package/dist/cjs/services/cache/index.d.ts +1 -1
  144. package/dist/cjs/services/cache/index.js +17 -17
  145. package/dist/cjs/services/cache/product-cache-service.d.ts +21 -21
  146. package/dist/cjs/services/cache/product-cache-service.js +76 -76
  147. package/dist/cjs/services/currency-exchange-rate-lookup-service.d.ts +11 -11
  148. package/dist/cjs/services/currency-exchange-rate-lookup-service.js +66 -66
  149. package/dist/cjs/services/db/accounts-db-service.d.ts +9 -9
  150. package/dist/cjs/services/db/accounts-db-service.js +33 -33
  151. package/dist/cjs/services/db/accounts-db-service.js.map +1 -1
  152. package/dist/cjs/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  153. package/dist/cjs/services/db/currency-exchange-rates-db-service.js +39 -39
  154. package/dist/cjs/services/db/destinations-db-service.d.ts +12 -12
  155. package/dist/cjs/services/db/destinations-db-service.js +76 -76
  156. package/dist/cjs/services/db/identity-cache-db-service.d.ts +28 -28
  157. package/dist/cjs/services/db/identity-cache-db-service.js +320 -320
  158. package/dist/cjs/services/db/index.d.ts +12 -12
  159. package/dist/cjs/services/db/index.js +28 -28
  160. package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
  161. package/dist/cjs/services/db/log-events-db-service.js +181 -181
  162. package/dist/cjs/services/db/pixels-db-service.d.ts +8 -8
  163. package/dist/cjs/services/db/pixels-db-service.js +35 -35
  164. package/dist/cjs/services/db/purchasable-contacts-db-service.d.ts +9 -9
  165. package/dist/cjs/services/db/purchasable-contacts-db-service.js +43 -43
  166. package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +17 -17
  167. package/dist/cjs/services/db/purchased-contacts-db-service.js +143 -143
  168. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +8 -8
  169. package/dist/cjs/services/db/shopify-app-installs-db-service.js +51 -51
  170. package/dist/cjs/services/db/shopify-app-installs-db-service.js.map +1 -1
  171. package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +16 -16
  172. package/dist/cjs/services/db/shopify-products-cache-db-service.js +73 -73
  173. package/dist/cjs/services/db/subscriptions-db-service.d.ts +10 -10
  174. package/dist/cjs/services/db/subscriptions-db-service.js +34 -34
  175. package/dist/cjs/services/db/subscriptions-db-service.js.map +1 -1
  176. package/dist/cjs/services/db/tracking-events-db-service.d.ts +20 -20
  177. package/dist/cjs/services/db/tracking-events-db-service.js +165 -165
  178. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  179. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  180. package/dist/cjs/services/events/index.d.ts +3 -3
  181. package/dist/cjs/services/events/index.js +19 -19
  182. package/dist/cjs/services/events/log-event-service.d.ts +9 -9
  183. package/dist/cjs/services/events/log-event-service.js +56 -56
  184. package/dist/cjs/services/events/metric-event-service.d.ts +9 -9
  185. package/dist/cjs/services/events/metric-event-service.js +49 -49
  186. package/dist/cjs/services/events/tracking-event-sqs-service.d.ts +8 -8
  187. package/dist/cjs/services/events/tracking-event-sqs-service.js +34 -34
  188. package/dist/cjs/services/generic-cache-service.d.ts +7 -7
  189. package/dist/cjs/services/generic-cache-service.js +33 -33
  190. package/dist/cjs/services/index.d.ts +8 -8
  191. package/dist/cjs/services/index.js +24 -24
  192. package/dist/cjs/services/ipdata-lookup-service.d.ts +20 -20
  193. package/dist/cjs/services/ipdata-lookup-service.js +112 -112
  194. package/dist/cjs/services/shopify/index.d.ts +2 -2
  195. package/dist/cjs/services/shopify/index.js +18 -18
  196. package/dist/cjs/services/shopify/products/index.d.ts +1 -1
  197. package/dist/cjs/services/shopify/products/index.js +17 -17
  198. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  199. package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js +112 -112
  200. package/dist/cjs/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  201. package/dist/cjs/services/shopify/shopify-graphql-transformer.js +141 -141
  202. package/dist/cjs/types/api-response.d.ts +6 -6
  203. package/dist/cjs/types/api-response.js +2 -2
  204. package/dist/cjs/types/index.d.ts +1 -1
  205. package/dist/cjs/types/index.js +17 -17
  206. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  207. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  208. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  209. package/dist/cjs/types/internal-events/index.js +17 -17
  210. package/dist/cjs/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  211. package/dist/cjs/types/shopify-graphql-types/admin.generated.js +2 -2
  212. package/dist/cjs/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  213. package/dist/cjs/types/shopify-graphql-types/admin.types.js +5311 -5311
  214. package/dist/cjs/types/shopify-graphql-types/index.d.ts +2 -2
  215. package/dist/cjs/types/shopify-graphql-types/index.js +18 -18
  216. package/dist/esm/__tests__/clients/sqs-client.spec.d.ts +1 -1
  217. package/dist/esm/__tests__/clients/sqs-client.spec.js +119 -119
  218. package/dist/esm/__tests__/db/shared-read-db-services.spec.d.ts +1 -1
  219. package/dist/esm/__tests__/db/shared-read-db-services.spec.js +87 -87
  220. package/dist/esm/__tests__/helpers/account-users-helper.spec.d.ts +1 -1
  221. package/dist/esm/__tests__/helpers/account-users-helper.spec.js +218 -218
  222. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  223. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +672 -672
  224. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.d.ts +1 -1
  225. package/dist/esm/__tests__/identity-cache/trait-merging-and-staleness.spec.js +586 -586
  226. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  227. package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
  228. package/dist/esm/__tests__/libs/currency.spec.d.ts +1 -1
  229. package/dist/esm/__tests__/libs/currency.spec.js +218 -218
  230. package/dist/esm/__tests__/libs/dates.spec.d.ts +1 -1
  231. package/dist/esm/__tests__/libs/dates.spec.js +128 -128
  232. package/dist/esm/__tests__/libs/domain.spec.d.ts +1 -1
  233. package/dist/esm/__tests__/libs/domain.spec.js +105 -105
  234. package/dist/esm/__tests__/libs/numbers.spec.d.ts +1 -1
  235. package/dist/esm/__tests__/libs/numbers.spec.js +259 -259
  236. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  237. package/dist/esm/__tests__/s3-client/s3-client.spec.js +31 -31
  238. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.d.ts +1 -1
  239. package/dist/esm/__tests__/shopify/shopify-graphql-transformer.spec.js +33 -33
  240. package/dist/esm/clients/generic/cognito-client.d.ts +23 -23
  241. package/dist/esm/clients/generic/cognito-client.js +204 -204
  242. package/dist/esm/clients/generic/dynamodb-client.d.ts +18 -18
  243. package/dist/esm/clients/generic/dynamodb-client.js +168 -168
  244. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  245. package/dist/esm/clients/generic/eventbridge-client.js +47 -47
  246. package/dist/esm/clients/generic/http-client.d.ts +14 -14
  247. package/dist/esm/clients/generic/http-client.js +53 -53
  248. package/dist/esm/clients/generic/index.d.ts +10 -10
  249. package/dist/esm/clients/generic/index.js +10 -10
  250. package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
  251. package/dist/esm/clients/generic/lambda-invoke-client.js +35 -35
  252. package/dist/esm/clients/generic/location-client.d.ts +8 -8
  253. package/dist/esm/clients/generic/location-client.js +27 -27
  254. package/dist/esm/clients/generic/redis-client.d.ts +33 -33
  255. package/dist/esm/clients/generic/redis-client.js +184 -184
  256. package/dist/esm/clients/generic/s3-client.d.ts +23 -23
  257. package/dist/esm/clients/generic/s3-client.js +209 -209
  258. package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
  259. package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
  260. package/dist/esm/clients/generic/sqs-client.d.ts +33 -33
  261. package/dist/esm/clients/generic/sqs-client.js +107 -107
  262. package/dist/esm/clients/index.d.ts +3 -3
  263. package/dist/esm/clients/index.js +3 -3
  264. package/dist/esm/clients/internal-api/accounts-client.d.ts +91 -91
  265. package/dist/esm/clients/internal-api/accounts-client.js +125 -125
  266. package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +26 -26
  267. package/dist/esm/clients/internal-api/cache-lambda-client.js +85 -85
  268. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  269. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  270. package/dist/esm/clients/internal-api/destinations-client.d.ts +34 -34
  271. package/dist/esm/clients/internal-api/destinations-client.js +75 -75
  272. package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
  273. package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
  274. package/dist/esm/clients/internal-api/identity-client.d.ts +31 -31
  275. package/dist/esm/clients/internal-api/identity-client.js +87 -87
  276. package/dist/esm/clients/internal-api/index.d.ts +9 -9
  277. package/dist/esm/clients/internal-api/index.js +9 -9
  278. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +37 -37
  279. package/dist/esm/clients/internal-api/shopify-app-install-client.js +77 -77
  280. package/dist/esm/clients/internal-api/subscriptions-client.d.ts +26 -26
  281. package/dist/esm/clients/internal-api/subscriptions-client.js +73 -73
  282. package/dist/esm/clients/internal-api/users-auth-client.d.ts +35 -35
  283. package/dist/esm/clients/internal-api/users-auth-client.js +106 -106
  284. package/dist/esm/clients/third-party/emailable-client.d.ts +7 -7
  285. package/dist/esm/clients/third-party/emailable-client.js +21 -21
  286. package/dist/esm/clients/third-party/exchange-rate-api-client.d.ts +17 -17
  287. package/dist/esm/clients/third-party/exchange-rate-api-client.js +15 -15
  288. package/dist/esm/clients/third-party/index.d.ts +4 -4
  289. package/dist/esm/clients/third-party/index.js +4 -4
  290. package/dist/esm/clients/third-party/loops-client.d.ts +10 -10
  291. package/dist/esm/clients/third-party/loops-client.js +26 -26
  292. package/dist/esm/clients/third-party/shopify/graphql-order-queries.d.ts +25 -25
  293. package/dist/esm/clients/third-party/shopify/graphql-order-queries.js +27 -27
  294. package/dist/esm/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
  295. package/dist/esm/clients/third-party/shopify/graphql-product-queries.js +177 -177
  296. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.d.ts +10 -10
  297. package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +157 -157
  298. package/dist/esm/clients/third-party/shopify-client.d.ts +29 -29
  299. package/dist/esm/clients/third-party/shopify-client.js +142 -142
  300. package/dist/esm/helpers/account-users-helper.d.ts +2 -2
  301. package/dist/esm/helpers/account-users-helper.js +18 -18
  302. package/dist/esm/helpers/identity-cache-helper.d.ts +21 -21
  303. package/dist/esm/helpers/identity-cache-helper.js +151 -151
  304. package/dist/esm/helpers/index.d.ts +7 -7
  305. package/dist/esm/helpers/index.js +7 -7
  306. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  307. package/dist/esm/helpers/input-validation-helper.js +18 -18
  308. package/dist/esm/helpers/logging-helper.d.ts +16 -16
  309. package/dist/esm/helpers/logging-helper.js +56 -56
  310. package/dist/esm/helpers/response-helper.d.ts +18 -18
  311. package/dist/esm/helpers/response-helper.js +37 -37
  312. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  313. package/dist/esm/helpers/shopify-helper.js +21 -21
  314. package/dist/esm/helpers/sqs-utils.d.ts +6 -6
  315. package/dist/esm/helpers/sqs-utils.js +9 -9
  316. package/dist/esm/index.d.ts +5 -5
  317. package/dist/esm/index.js +5 -5
  318. package/dist/esm/libs/click-id-parser.d.ts +23 -23
  319. package/dist/esm/libs/click-id-parser.js +45 -45
  320. package/dist/esm/libs/compression.d.ts +2 -2
  321. package/dist/esm/libs/compression.js +25 -25
  322. package/dist/esm/libs/cookie.d.ts +17 -17
  323. package/dist/esm/libs/cookie.js +70 -70
  324. package/dist/esm/libs/crypto.d.ts +4 -4
  325. package/dist/esm/libs/crypto.js +15 -15
  326. package/dist/esm/libs/csv.d.ts +2 -2
  327. package/dist/esm/libs/csv.js +30 -30
  328. package/dist/esm/libs/currency.d.ts +1 -1
  329. package/dist/esm/libs/currency.js +22 -22
  330. package/dist/esm/libs/dates.d.ts +12 -12
  331. package/dist/esm/libs/dates.js +83 -83
  332. package/dist/esm/libs/domain.d.ts +2 -2
  333. package/dist/esm/libs/domain.js +33 -33
  334. package/dist/esm/libs/emails.d.ts +6 -6
  335. package/dist/esm/libs/emails.js +115 -115
  336. package/dist/esm/libs/http-error.d.ts +21 -21
  337. package/dist/esm/libs/http-error.js +59 -59
  338. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  339. package/dist/esm/libs/http-status-codes.js +59 -59
  340. package/dist/esm/libs/index.d.ts +17 -17
  341. package/dist/esm/libs/index.js +17 -17
  342. package/dist/esm/libs/numbers.d.ts +1 -1
  343. package/dist/esm/libs/numbers.js +11 -11
  344. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  345. package/dist/esm/libs/referrer-parser/index.js +2 -2
  346. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  347. package/dist/esm/libs/referrer-parser/referrer-data.js +3304 -3304
  348. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  349. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +124 -124
  350. package/dist/esm/libs/strings.d.ts +3 -3
  351. package/dist/esm/libs/strings.js +40 -40
  352. package/dist/esm/libs/traits.d.ts +6 -6
  353. package/dist/esm/libs/traits.js +54 -54
  354. package/dist/esm/libs/url.d.ts +1 -1
  355. package/dist/esm/libs/url.js +9 -9
  356. package/dist/esm/services/cache/generic-cached-object.d.ts +5 -5
  357. package/dist/esm/services/cache/generic-cached-object.js +1 -1
  358. package/dist/esm/services/cache/index.d.ts +1 -1
  359. package/dist/esm/services/cache/index.js +1 -1
  360. package/dist/esm/services/cache/product-cache-service.d.ts +21 -21
  361. package/dist/esm/services/cache/product-cache-service.js +68 -68
  362. package/dist/esm/services/currency-exchange-rate-lookup-service.d.ts +11 -11
  363. package/dist/esm/services/currency-exchange-rate-lookup-service.js +62 -62
  364. package/dist/esm/services/db/accounts-db-service.d.ts +9 -9
  365. package/dist/esm/services/db/accounts-db-service.js +29 -29
  366. package/dist/esm/services/db/accounts-db-service.js.map +1 -1
  367. package/dist/esm/services/db/currency-exchange-rates-db-service.d.ts +21 -21
  368. package/dist/esm/services/db/currency-exchange-rates-db-service.js +35 -35
  369. package/dist/esm/services/db/destinations-db-service.d.ts +12 -12
  370. package/dist/esm/services/db/destinations-db-service.js +72 -72
  371. package/dist/esm/services/db/identity-cache-db-service.d.ts +28 -28
  372. package/dist/esm/services/db/identity-cache-db-service.js +313 -313
  373. package/dist/esm/services/db/index.d.ts +12 -12
  374. package/dist/esm/services/db/index.js +12 -12
  375. package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
  376. package/dist/esm/services/db/log-events-db-service.js +177 -177
  377. package/dist/esm/services/db/pixels-db-service.d.ts +8 -8
  378. package/dist/esm/services/db/pixels-db-service.js +31 -31
  379. package/dist/esm/services/db/purchasable-contacts-db-service.d.ts +9 -9
  380. package/dist/esm/services/db/purchasable-contacts-db-service.js +39 -39
  381. package/dist/esm/services/db/purchased-contacts-db-service.d.ts +17 -17
  382. package/dist/esm/services/db/purchased-contacts-db-service.js +139 -139
  383. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +8 -8
  384. package/dist/esm/services/db/shopify-app-installs-db-service.js +47 -47
  385. package/dist/esm/services/db/shopify-app-installs-db-service.js.map +1 -1
  386. package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +16 -16
  387. package/dist/esm/services/db/shopify-products-cache-db-service.js +66 -66
  388. package/dist/esm/services/db/subscriptions-db-service.d.ts +10 -10
  389. package/dist/esm/services/db/subscriptions-db-service.js +30 -30
  390. package/dist/esm/services/db/subscriptions-db-service.js.map +1 -1
  391. package/dist/esm/services/db/tracking-events-db-service.d.ts +20 -20
  392. package/dist/esm/services/db/tracking-events-db-service.js +161 -161
  393. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  394. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  395. package/dist/esm/services/events/index.d.ts +3 -3
  396. package/dist/esm/services/events/index.js +3 -3
  397. package/dist/esm/services/events/log-event-service.d.ts +9 -9
  398. package/dist/esm/services/events/log-event-service.js +52 -52
  399. package/dist/esm/services/events/metric-event-service.d.ts +9 -9
  400. package/dist/esm/services/events/metric-event-service.js +45 -45
  401. package/dist/esm/services/events/tracking-event-sqs-service.d.ts +8 -8
  402. package/dist/esm/services/events/tracking-event-sqs-service.js +30 -30
  403. package/dist/esm/services/generic-cache-service.d.ts +7 -7
  404. package/dist/esm/services/generic-cache-service.js +29 -29
  405. package/dist/esm/services/index.d.ts +8 -8
  406. package/dist/esm/services/index.js +8 -8
  407. package/dist/esm/services/ipdata-lookup-service.d.ts +20 -20
  408. package/dist/esm/services/ipdata-lookup-service.js +108 -108
  409. package/dist/esm/services/shopify/index.d.ts +2 -2
  410. package/dist/esm/services/shopify/index.js +2 -2
  411. package/dist/esm/services/shopify/products/index.d.ts +1 -1
  412. package/dist/esm/services/shopify/products/index.js +1 -1
  413. package/dist/esm/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
  414. package/dist/esm/services/shopify/products/shopify-products-serviceV2.js +108 -108
  415. package/dist/esm/services/shopify/shopify-graphql-transformer.d.ts +8 -8
  416. package/dist/esm/services/shopify/shopify-graphql-transformer.js +138 -138
  417. package/dist/esm/types/api-response.d.ts +6 -6
  418. package/dist/esm/types/api-response.js +1 -1
  419. package/dist/esm/types/index.d.ts +1 -1
  420. package/dist/esm/types/index.js +1 -1
  421. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  422. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  423. package/dist/esm/types/internal-events/index.d.ts +1 -1
  424. package/dist/esm/types/internal-events/index.js +1 -1
  425. package/dist/esm/types/shopify-graphql-types/admin.generated.d.ts +123 -123
  426. package/dist/esm/types/shopify-graphql-types/admin.generated.js +1 -1
  427. package/dist/esm/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
  428. package/dist/esm/types/shopify-graphql-types/admin.types.js +5299 -5299
  429. package/dist/esm/types/shopify-graphql-types/index.d.ts +2 -2
  430. package/dist/esm/types/shopify-graphql-types/index.js +2 -2
  431. package/package.json +2 -2
@@ -1,10 +1,10 @@
1
- export interface CacheLambdaInvokeResponse {
2
- statusCode: number;
3
- headers: any;
4
- body: string;
5
- }
6
- export declare class LambdaInvokeClient {
7
- private lambda;
8
- constructor();
9
- invokeFunction(functionName: string, payload: any, enableResponseLogging?: boolean): Promise<CacheLambdaInvokeResponse | null>;
10
- }
1
+ export interface CacheLambdaInvokeResponse {
2
+ statusCode: number;
3
+ headers: any;
4
+ body: string;
5
+ }
6
+ export declare class LambdaInvokeClient {
7
+ private lambda;
8
+ constructor();
9
+ invokeFunction(functionName: string, payload: any, enableResponseLogging?: boolean): Promise<CacheLambdaInvokeResponse | null>;
10
+ }
@@ -1,36 +1,36 @@
1
- import { LambdaClient, InvokeCommand } from '@aws-sdk/client-lambda';
2
- import { toUint8Array } from '@aws-sdk/util-utf8';
3
- import { Logger } from '../../helpers';
4
- export class LambdaInvokeClient {
5
- lambda;
6
- constructor() {
7
- this.lambda = new LambdaClient();
8
- }
9
- async invokeFunction(functionName, payload, enableResponseLogging = true) {
10
- const params = {
11
- FunctionName: functionName,
12
- InvocationType: 'RequestResponse',
13
- Payload: toUint8Array(JSON.stringify(payload)),
14
- };
15
- try {
16
- const response = await this.lambda.send(new InvokeCommand(params));
17
- if (enableResponseLogging) {
18
- Logger.debug('Lambda response:', { response });
19
- }
20
- if (response?.Payload) {
21
- const parsedPayload = response?.Payload.transformToString();
22
- const jsonPayload = JSON.parse(parsedPayload);
23
- if (enableResponseLogging) {
24
- Logger.debug('parsed payload', { parsedPayload });
25
- }
26
- return jsonPayload;
27
- }
28
- return null;
29
- }
30
- catch (error) {
31
- Logger.error('Error invoking lambda function:', { err: error, params });
32
- return null;
33
- }
34
- }
35
- }
1
+ import { LambdaClient, InvokeCommand } from '@aws-sdk/client-lambda';
2
+ import { toUint8Array } from '@aws-sdk/util-utf8';
3
+ import { Logger } from '../../helpers';
4
+ export class LambdaInvokeClient {
5
+ lambda;
6
+ constructor() {
7
+ this.lambda = new LambdaClient();
8
+ }
9
+ async invokeFunction(functionName, payload, enableResponseLogging = true) {
10
+ const params = {
11
+ FunctionName: functionName,
12
+ InvocationType: 'RequestResponse',
13
+ Payload: toUint8Array(JSON.stringify(payload)),
14
+ };
15
+ try {
16
+ const response = await this.lambda.send(new InvokeCommand(params));
17
+ if (enableResponseLogging) {
18
+ Logger.debug('Lambda response:', { response });
19
+ }
20
+ if (response?.Payload) {
21
+ const parsedPayload = response?.Payload.transformToString();
22
+ const jsonPayload = JSON.parse(parsedPayload);
23
+ if (enableResponseLogging) {
24
+ Logger.debug('parsed payload', { parsedPayload });
25
+ }
26
+ return jsonPayload;
27
+ }
28
+ return null;
29
+ }
30
+ catch (error) {
31
+ Logger.error('Error invoking lambda function:', { err: error, params });
32
+ return null;
33
+ }
34
+ }
35
+ }
36
36
  //# sourceMappingURL=lambda-invoke-client.js.map
@@ -1,8 +1,8 @@
1
- import { SearchPlaceIndexForPositionCommandOutput } from '@aws-sdk/client-location';
2
- export declare class LocationClient {
3
- private PLACE_INDEX_NAME;
4
- private PLACE_INDEX_API_KEY;
5
- private client;
6
- constructor(placeIndexName: string, placeIndexAPIKey: string);
7
- getPlaceFromLatLong: (latitude: number, longitude: number, maxResults?: number) => Promise<SearchPlaceIndexForPositionCommandOutput | null>;
8
- }
1
+ import { SearchPlaceIndexForPositionCommandOutput } from '@aws-sdk/client-location';
2
+ export declare class LocationClient {
3
+ private PLACE_INDEX_NAME;
4
+ private PLACE_INDEX_API_KEY;
5
+ private client;
6
+ constructor(placeIndexName: string, placeIndexAPIKey: string);
7
+ getPlaceFromLatLong: (latitude: number, longitude: number, maxResults?: number) => Promise<SearchPlaceIndexForPositionCommandOutput | null>;
8
+ }
@@ -1,28 +1,28 @@
1
- import { LocationClient as AWSLocationClient, SearchPlaceIndexForPositionCommand, } from '@aws-sdk/client-location';
2
- import { Logger } from '../../index.js';
3
- export class LocationClient {
4
- PLACE_INDEX_NAME;
5
- PLACE_INDEX_API_KEY;
6
- client;
7
- constructor(placeIndexName, placeIndexAPIKey) {
8
- this.client = new AWSLocationClient();
9
- this.PLACE_INDEX_NAME = placeIndexName;
10
- this.PLACE_INDEX_API_KEY = placeIndexAPIKey;
11
- }
12
- getPlaceFromLatLong = async (latitude, longitude, maxResults = 1) => {
13
- try {
14
- const command = new SearchPlaceIndexForPositionCommand({
15
- IndexName: this.PLACE_INDEX_NAME,
16
- Position: [longitude, latitude],
17
- MaxResults: maxResults,
18
- Key: this.PLACE_INDEX_API_KEY,
19
- });
20
- return await this.client.send(command);
21
- }
22
- catch (error) {
23
- Logger.error('Failed to get place from lat lng', { latitude, longitude, maxResults, error });
24
- return null;
25
- }
26
- };
27
- }
1
+ import { LocationClient as AWSLocationClient, SearchPlaceIndexForPositionCommand, } from '@aws-sdk/client-location';
2
+ import { Logger } from '../../index.js';
3
+ export class LocationClient {
4
+ PLACE_INDEX_NAME;
5
+ PLACE_INDEX_API_KEY;
6
+ client;
7
+ constructor(placeIndexName, placeIndexAPIKey) {
8
+ this.client = new AWSLocationClient();
9
+ this.PLACE_INDEX_NAME = placeIndexName;
10
+ this.PLACE_INDEX_API_KEY = placeIndexAPIKey;
11
+ }
12
+ getPlaceFromLatLong = async (latitude, longitude, maxResults = 1) => {
13
+ try {
14
+ const command = new SearchPlaceIndexForPositionCommand({
15
+ IndexName: this.PLACE_INDEX_NAME,
16
+ Position: [longitude, latitude],
17
+ MaxResults: maxResults,
18
+ Key: this.PLACE_INDEX_API_KEY,
19
+ });
20
+ return await this.client.send(command);
21
+ }
22
+ catch (error) {
23
+ Logger.error('Failed to get place from lat lng', { latitude, longitude, maxResults, error });
24
+ return null;
25
+ }
26
+ };
27
+ }
28
28
  //# sourceMappingURL=location-client.js.map
@@ -1,33 +1,33 @@
1
- import Redis, { ChainableCommander } from 'ioredis';
2
- export interface RedisClientConnectionOptions {
3
- commandTimeout?: number;
4
- keepAlive?: number;
5
- }
6
- export declare class RedisClient {
7
- private poolSize;
8
- private pool;
9
- private readonly commandTimeout;
10
- private readonly keepAlive;
11
- host: string;
12
- port: number;
13
- constructor(host: string, port?: number, poolSize?: number, options?: RedisClientConnectionOptions);
14
- private createClient;
15
- private getClient;
16
- connect(client: Redis): Promise<void>;
17
- disconnect(): Promise<void>;
18
- safeSet(key: string, value: string, ttlInSeconds?: number): Promise<void>;
19
- unsafeSet(key: string, value: string, ttlInSeconds?: number): Promise<void>;
20
- unsafeGet(key: string): Promise<string | null>;
21
- safeGet(key: string): Promise<string | null>;
22
- safeBatchGet(keys: string[]): Promise<(string | null)[] | null>;
23
- del(key: string): Promise<number>;
24
- safeHmget(key: string, ...fields: string[]): Promise<(string | null)[] | null>;
25
- safeLrange(key: string, start: number, stop: number): Promise<string[] | null>;
26
- safeLlen(key: string): Promise<number>;
27
- safeZcount(key: string, min: number | string, max: number | string): Promise<number>;
28
- safeZrevrangebyscore(key: string, max: number | string, min: number | string, offsetCount?: {
29
- offset: number;
30
- count: number;
31
- }): Promise<string[]>;
32
- createPipeline(): ChainableCommander;
33
- }
1
+ import Redis, { ChainableCommander } from 'ioredis';
2
+ export interface RedisClientConnectionOptions {
3
+ commandTimeout?: number;
4
+ keepAlive?: number;
5
+ }
6
+ export declare class RedisClient {
7
+ private poolSize;
8
+ private pool;
9
+ private readonly commandTimeout;
10
+ private readonly keepAlive;
11
+ host: string;
12
+ port: number;
13
+ constructor(host: string, port?: number, poolSize?: number, options?: RedisClientConnectionOptions);
14
+ private createClient;
15
+ private getClient;
16
+ connect(client: Redis): Promise<void>;
17
+ disconnect(): Promise<void>;
18
+ safeSet(key: string, value: string, ttlInSeconds?: number): Promise<void>;
19
+ unsafeSet(key: string, value: string, ttlInSeconds?: number): Promise<void>;
20
+ unsafeGet(key: string): Promise<string | null>;
21
+ safeGet(key: string): Promise<string | null>;
22
+ safeBatchGet(keys: string[]): Promise<(string | null)[] | null>;
23
+ del(key: string): Promise<number>;
24
+ safeHmget(key: string, ...fields: string[]): Promise<(string | null)[] | null>;
25
+ safeLrange(key: string, start: number, stop: number): Promise<string[] | null>;
26
+ safeLlen(key: string): Promise<number>;
27
+ safeZcount(key: string, min: number | string, max: number | string): Promise<number>;
28
+ safeZrevrangebyscore(key: string, max: number | string, min: number | string, offsetCount?: {
29
+ offset: number;
30
+ count: number;
31
+ }): Promise<string[]>;
32
+ createPipeline(): ChainableCommander;
33
+ }
@@ -1,185 +1,185 @@
1
- import Redis from 'ioredis';
2
- import { Logger } from '../../helpers';
3
- const DEFAULT_REDIS_COMMAND_TIMEOUT_MS = 3000;
4
- const DEFAULT_REDIS_KEEP_ALIVE_MS = 1000;
5
- export class RedisClient {
6
- poolSize;
7
- pool;
8
- commandTimeout;
9
- keepAlive;
10
- host;
11
- port;
12
- constructor(host, port = 6379, poolSize = 3, options = {}) {
13
- this.poolSize = poolSize;
14
- this.host = host;
15
- this.port = port;
16
- this.commandTimeout = options.commandTimeout ?? DEFAULT_REDIS_COMMAND_TIMEOUT_MS;
17
- this.keepAlive = options.keepAlive ?? DEFAULT_REDIS_KEEP_ALIVE_MS;
18
- this.pool = Array.from({ length: poolSize }, () => this.createClient(host, port));
19
- }
20
- createClient(host, port) {
21
- try {
22
- const client = new Redis({
23
- host,
24
- port,
25
- maxRetriesPerRequest: 3,
26
- commandTimeout: this.commandTimeout,
27
- lazyConnect: true,
28
- keepAlive: this.keepAlive,
29
- });
30
- return client;
31
- }
32
- catch (err) {
33
- Logger.error('Error creating Redis client:', { err });
34
- return null;
35
- }
36
- }
37
- getClient() {
38
- const randomIndex = Math.floor(Math.random() * this.poolSize);
39
- let client = this.pool[randomIndex];
40
- if (!client) {
41
- client = this.createClient(this.host, this.port);
42
- }
43
- return client;
44
- }
45
- async connect(client) {
46
- try {
47
- await client.connect();
48
- Logger.debug('Connected to Redis');
49
- }
50
- catch (err) {
51
- Logger.error('Error connecting to Redis:', { err });
52
- return;
53
- }
54
- }
55
- async disconnect() {
56
- try {
57
- const client = this.getClient();
58
- await client.quit();
59
- Logger.debug('Disconnected from Redis');
60
- }
61
- catch (err) {
62
- Logger.error('Error disconnecting from Redis:', { err });
63
- return;
64
- }
65
- }
66
- async safeSet(key, value, ttlInSeconds) {
67
- try {
68
- const client = this.getClient();
69
- if (ttlInSeconds) {
70
- await client.set(key, value, 'EX', ttlInSeconds);
71
- }
72
- else {
73
- await client.set(key, value);
74
- }
75
- }
76
- catch (err) {
77
- Logger.error('Error setting value in Redis:', { err, key, value });
78
- return;
79
- }
80
- }
81
- async unsafeSet(key, value, ttlInSeconds) {
82
- const client = this.getClient();
83
- if (ttlInSeconds) {
84
- await client.set(key, value, 'EX', ttlInSeconds);
85
- }
86
- else {
87
- await client.set(key, value);
88
- }
89
- }
90
- async unsafeGet(key) {
91
- const client = this.getClient();
92
- Logger.debug('get', { key, client });
93
- return await client.get(key);
94
- }
95
- async safeGet(key) {
96
- try {
97
- const client = this.getClient();
98
- Logger.debug('get', { key, client });
99
- return await client.get(key);
100
- }
101
- catch (err) {
102
- Logger.error('Error getting value from Redis:', { err, key });
103
- return null;
104
- }
105
- }
106
- async safeBatchGet(keys) {
107
- try {
108
- const client = this.getClient();
109
- Logger.debug('get', { keys, client });
110
- return await client.mget(keys);
111
- }
112
- catch (err) {
113
- Logger.error('Error getting batch from Redis:', { err, keys });
114
- return null;
115
- }
116
- }
117
- async del(key) {
118
- try {
119
- const client = this.getClient();
120
- return await client.del(key);
121
- }
122
- catch (err) {
123
- Logger.error('Error deleting key from Redis:', { err });
124
- return 0;
125
- }
126
- }
127
- async safeHmget(key, ...fields) {
128
- try {
129
- const client = this.getClient();
130
- return await client.hmget(key, ...fields);
131
- }
132
- catch (err) {
133
- Logger.error('Error in hmget:', { err, key, fields });
134
- return null;
135
- }
136
- }
137
- async safeLrange(key, start, stop) {
138
- try {
139
- const client = this.getClient();
140
- return await client.lrange(key, start, stop);
141
- }
142
- catch (err) {
143
- Logger.error('Error in lrange:', { err, key, start, stop });
144
- return null;
145
- }
146
- }
147
- async safeLlen(key) {
148
- try {
149
- const client = this.getClient();
150
- return await client.llen(key);
151
- }
152
- catch (err) {
153
- Logger.error('Error in llen:', { err, key });
154
- return 0;
155
- }
156
- }
157
- async safeZcount(key, min, max) {
158
- try {
159
- const client = this.getClient();
160
- return await client.zcount(key, min, max);
161
- }
162
- catch (err) {
163
- Logger.error('Error in zcount:', { err, key, min, max });
164
- return 0;
165
- }
166
- }
167
- async safeZrevrangebyscore(key, max, min, offsetCount) {
168
- try {
169
- const client = this.getClient();
170
- if (offsetCount) {
171
- return await client.zrevrangebyscore(key, max, min, 'LIMIT', offsetCount.offset, offsetCount.count);
172
- }
173
- return await client.zrevrangebyscore(key, max, min);
174
- }
175
- catch (err) {
176
- Logger.error('Error in zrevrangebyscore:', { err, key, max, min, offsetCount });
177
- return [];
178
- }
179
- }
180
- createPipeline() {
181
- const client = this.getClient();
182
- return client.pipeline();
183
- }
184
- }
1
+ import Redis from 'ioredis';
2
+ import { Logger } from '../../helpers';
3
+ const DEFAULT_REDIS_COMMAND_TIMEOUT_MS = 3000;
4
+ const DEFAULT_REDIS_KEEP_ALIVE_MS = 1000;
5
+ export class RedisClient {
6
+ poolSize;
7
+ pool;
8
+ commandTimeout;
9
+ keepAlive;
10
+ host;
11
+ port;
12
+ constructor(host, port = 6379, poolSize = 3, options = {}) {
13
+ this.poolSize = poolSize;
14
+ this.host = host;
15
+ this.port = port;
16
+ this.commandTimeout = options.commandTimeout ?? DEFAULT_REDIS_COMMAND_TIMEOUT_MS;
17
+ this.keepAlive = options.keepAlive ?? DEFAULT_REDIS_KEEP_ALIVE_MS;
18
+ this.pool = Array.from({ length: poolSize }, () => this.createClient(host, port));
19
+ }
20
+ createClient(host, port) {
21
+ try {
22
+ const client = new Redis({
23
+ host,
24
+ port,
25
+ maxRetriesPerRequest: 3,
26
+ commandTimeout: this.commandTimeout,
27
+ lazyConnect: true,
28
+ keepAlive: this.keepAlive,
29
+ });
30
+ return client;
31
+ }
32
+ catch (err) {
33
+ Logger.error('Error creating Redis client:', { err });
34
+ return null;
35
+ }
36
+ }
37
+ getClient() {
38
+ const randomIndex = Math.floor(Math.random() * this.poolSize);
39
+ let client = this.pool[randomIndex];
40
+ if (!client) {
41
+ client = this.createClient(this.host, this.port);
42
+ }
43
+ return client;
44
+ }
45
+ async connect(client) {
46
+ try {
47
+ await client.connect();
48
+ Logger.debug('Connected to Redis');
49
+ }
50
+ catch (err) {
51
+ Logger.error('Error connecting to Redis:', { err });
52
+ return;
53
+ }
54
+ }
55
+ async disconnect() {
56
+ try {
57
+ const client = this.getClient();
58
+ await client.quit();
59
+ Logger.debug('Disconnected from Redis');
60
+ }
61
+ catch (err) {
62
+ Logger.error('Error disconnecting from Redis:', { err });
63
+ return;
64
+ }
65
+ }
66
+ async safeSet(key, value, ttlInSeconds) {
67
+ try {
68
+ const client = this.getClient();
69
+ if (ttlInSeconds) {
70
+ await client.set(key, value, 'EX', ttlInSeconds);
71
+ }
72
+ else {
73
+ await client.set(key, value);
74
+ }
75
+ }
76
+ catch (err) {
77
+ Logger.error('Error setting value in Redis:', { err, key, value });
78
+ return;
79
+ }
80
+ }
81
+ async unsafeSet(key, value, ttlInSeconds) {
82
+ const client = this.getClient();
83
+ if (ttlInSeconds) {
84
+ await client.set(key, value, 'EX', ttlInSeconds);
85
+ }
86
+ else {
87
+ await client.set(key, value);
88
+ }
89
+ }
90
+ async unsafeGet(key) {
91
+ const client = this.getClient();
92
+ Logger.debug('get', { key, client });
93
+ return await client.get(key);
94
+ }
95
+ async safeGet(key) {
96
+ try {
97
+ const client = this.getClient();
98
+ Logger.debug('get', { key, client });
99
+ return await client.get(key);
100
+ }
101
+ catch (err) {
102
+ Logger.error('Error getting value from Redis:', { err, key });
103
+ return null;
104
+ }
105
+ }
106
+ async safeBatchGet(keys) {
107
+ try {
108
+ const client = this.getClient();
109
+ Logger.debug('get', { keys, client });
110
+ return await client.mget(keys);
111
+ }
112
+ catch (err) {
113
+ Logger.error('Error getting batch from Redis:', { err, keys });
114
+ return null;
115
+ }
116
+ }
117
+ async del(key) {
118
+ try {
119
+ const client = this.getClient();
120
+ return await client.del(key);
121
+ }
122
+ catch (err) {
123
+ Logger.error('Error deleting key from Redis:', { err });
124
+ return 0;
125
+ }
126
+ }
127
+ async safeHmget(key, ...fields) {
128
+ try {
129
+ const client = this.getClient();
130
+ return await client.hmget(key, ...fields);
131
+ }
132
+ catch (err) {
133
+ Logger.error('Error in hmget:', { err, key, fields });
134
+ return null;
135
+ }
136
+ }
137
+ async safeLrange(key, start, stop) {
138
+ try {
139
+ const client = this.getClient();
140
+ return await client.lrange(key, start, stop);
141
+ }
142
+ catch (err) {
143
+ Logger.error('Error in lrange:', { err, key, start, stop });
144
+ return null;
145
+ }
146
+ }
147
+ async safeLlen(key) {
148
+ try {
149
+ const client = this.getClient();
150
+ return await client.llen(key);
151
+ }
152
+ catch (err) {
153
+ Logger.error('Error in llen:', { err, key });
154
+ return 0;
155
+ }
156
+ }
157
+ async safeZcount(key, min, max) {
158
+ try {
159
+ const client = this.getClient();
160
+ return await client.zcount(key, min, max);
161
+ }
162
+ catch (err) {
163
+ Logger.error('Error in zcount:', { err, key, min, max });
164
+ return 0;
165
+ }
166
+ }
167
+ async safeZrevrangebyscore(key, max, min, offsetCount) {
168
+ try {
169
+ const client = this.getClient();
170
+ if (offsetCount) {
171
+ return await client.zrevrangebyscore(key, max, min, 'LIMIT', offsetCount.offset, offsetCount.count);
172
+ }
173
+ return await client.zrevrangebyscore(key, max, min);
174
+ }
175
+ catch (err) {
176
+ Logger.error('Error in zrevrangebyscore:', { err, key, max, min, offsetCount });
177
+ return [];
178
+ }
179
+ }
180
+ createPipeline() {
181
+ const client = this.getClient();
182
+ return client.pipeline();
183
+ }
184
+ }
185
185
  //# sourceMappingURL=redis-client.js.map
@@ -1,23 +1,23 @@
1
- /// <reference types="node" />
2
- import { ObjectCannedACL, PutObjectCommandOutput, S3 } from '@aws-sdk/client-s3';
3
- import { StreamingBlobPayloadOutputTypes } from '@smithy/types';
4
- export declare class S3Client {
5
- s3: S3;
6
- constructor(region?: string);
7
- getS3FileNameFromKey: (s3ObjectKey: string) => string;
8
- getObject: (path: string, bucket: string) => Promise<StreamingBlobPayloadOutputTypes | null>;
9
- getObjectContentAsStringFromS3Gzip: (s3ObjectKey: string, bucketName: string, encoding?: BufferEncoding) => Promise<string | null>;
10
- getObjectContentAsString: (path: string, bucket: string, encoding?: BufferEncoding) => Promise<string | null>;
11
- checkObjectExists: (path: string, bucket: string) => Promise<boolean>;
12
- checkAndUploadJson: (path: string, bucket: string, jsonData: any, ACL?: ObjectCannedACL, retryCount?: number, maxRetries?: number) => Promise<{
13
- status: boolean;
14
- response?: PutObjectCommandOutput;
15
- }>;
16
- uploadJson: (path: string, bucket: string, jsonData: any, ACL?: ObjectCannedACL, retryCount?: number, maxRetries?: number, stringify?: boolean) => Promise<{
17
- status: boolean;
18
- response: PutObjectCommandOutput;
19
- }>;
20
- copyObject: (bucket: string, key: string, copyToKey: string) => Promise<boolean>;
21
- deleteObject: (bucket: string, key: string) => Promise<boolean>;
22
- moveObject: (bucket: string, key: string, moveToKey: string) => Promise<boolean>;
23
- }
1
+ /// <reference types="node" />
2
+ import { ObjectCannedACL, PutObjectCommandOutput, S3 } from '@aws-sdk/client-s3';
3
+ import { StreamingBlobPayloadOutputTypes } from '@smithy/types';
4
+ export declare class S3Client {
5
+ s3: S3;
6
+ constructor(region?: string);
7
+ getS3FileNameFromKey: (s3ObjectKey: string) => string;
8
+ getObject: (path: string, bucket: string) => Promise<StreamingBlobPayloadOutputTypes | null>;
9
+ getObjectContentAsStringFromS3Gzip: (s3ObjectKey: string, bucketName: string, encoding?: BufferEncoding) => Promise<string | null>;
10
+ getObjectContentAsString: (path: string, bucket: string, encoding?: BufferEncoding) => Promise<string | null>;
11
+ checkObjectExists: (path: string, bucket: string) => Promise<boolean>;
12
+ checkAndUploadJson: (path: string, bucket: string, jsonData: any, ACL?: ObjectCannedACL, retryCount?: number, maxRetries?: number) => Promise<{
13
+ status: boolean;
14
+ response?: PutObjectCommandOutput;
15
+ }>;
16
+ uploadJson: (path: string, bucket: string, jsonData: any, ACL?: ObjectCannedACL, retryCount?: number, maxRetries?: number, stringify?: boolean) => Promise<{
17
+ status: boolean;
18
+ response: PutObjectCommandOutput;
19
+ }>;
20
+ copyObject: (bucket: string, key: string, copyToKey: string) => Promise<boolean>;
21
+ deleteObject: (bucket: string, key: string) => Promise<boolean>;
22
+ moveObject: (bucket: string, key: string, moveToKey: string) => Promise<boolean>;
23
+ }