@adtrackify/at-service-common 3.19.10 → 3.19.12

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 (413) hide show
  1. package/dist/cjs/__tests__/clients/acuity-client.spec.d.ts +1 -0
  2. package/dist/cjs/__tests__/clients/acuity-client.spec.js +44 -0
  3. package/dist/cjs/__tests__/clients/acuity-client.spec.js.map +1 -0
  4. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.d.ts +1 -0
  5. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js +355 -0
  6. package/dist/cjs/__tests__/clients/cross-platform-compression.spec.js.map +1 -0
  7. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js +2 -7
  8. package/dist/cjs/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  9. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -0
  10. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js +932 -0
  11. package/dist/cjs/__tests__/clients/sqs-bundled-client.spec.js.map +1 -0
  12. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -0
  13. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js +564 -0
  14. package/dist/cjs/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -0
  15. package/dist/cjs/__tests__/clients/sqs-client.spec.js +72 -0
  16. package/dist/cjs/__tests__/clients/sqs-client.spec.js.map +1 -1
  17. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.d.ts +1 -0
  18. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js +1358 -0
  19. package/dist/cjs/__tests__/clients/sqs-unbundle.spec.js.map +1 -0
  20. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -0
  21. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js +69 -0
  22. package/dist/cjs/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -0
  23. package/dist/cjs/__tests__/db/shared-read-db-services.spec.d.ts +1 -0
  24. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js +90 -0
  25. package/dist/cjs/__tests__/db/shared-read-db-services.spec.js.map +1 -0
  26. package/dist/cjs/__tests__/helpers/acuity-helper.spec.d.ts +1 -0
  27. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js +70 -0
  28. package/dist/cjs/__tests__/helpers/acuity-helper.spec.js.map +1 -0
  29. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -0
  30. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js +83 -0
  31. package/dist/cjs/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -0
  32. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +35 -26
  33. package/dist/cjs/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
  34. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -0
  35. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js +585 -0
  36. package/dist/cjs/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -0
  37. package/dist/cjs/__tests__/libs/contacts.spec.d.ts +1 -0
  38. package/dist/cjs/__tests__/libs/contacts.spec.js +295 -0
  39. package/dist/cjs/__tests__/libs/contacts.spec.js.map +1 -0
  40. package/dist/cjs/__tests__/services/acuity-api-service.spec.d.ts +1 -0
  41. package/dist/cjs/__tests__/services/acuity-api-service.spec.js +72 -0
  42. package/dist/cjs/__tests__/services/acuity-api-service.spec.js.map +1 -0
  43. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -0
  44. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js +94 -0
  45. package/dist/cjs/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -0
  46. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -0
  47. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js +58 -0
  48. package/dist/cjs/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -0
  49. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -0
  50. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js +182 -0
  51. package/dist/cjs/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -0
  52. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -0
  53. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js +70 -0
  54. package/dist/cjs/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -0
  55. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -0
  56. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js +140 -0
  57. package/dist/cjs/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -0
  58. package/dist/cjs/clients/generic/dynamodb-client.js +24 -29
  59. package/dist/cjs/clients/generic/dynamodb-client.js.map +1 -1
  60. package/dist/cjs/clients/generic/index.d.ts +3 -0
  61. package/dist/cjs/clients/generic/index.js +3 -0
  62. package/dist/cjs/clients/generic/index.js.map +1 -1
  63. package/dist/cjs/clients/generic/sqs-bundled-client.d.ts +15 -0
  64. package/dist/cjs/clients/generic/sqs-bundled-client.js +312 -0
  65. package/dist/cjs/clients/generic/sqs-bundled-client.js.map +1 -0
  66. package/dist/cjs/clients/generic/sqs-bundled-client.types.d.ts +53 -0
  67. package/dist/cjs/clients/generic/sqs-bundled-client.types.js +18 -0
  68. package/dist/cjs/clients/generic/sqs-bundled-client.types.js.map +1 -0
  69. package/dist/cjs/clients/generic/sqs-client.d.ts +21 -1
  70. package/dist/cjs/clients/generic/sqs-client.js +193 -19
  71. package/dist/cjs/clients/generic/sqs-client.js.map +1 -1
  72. package/dist/cjs/clients/generic/sqs-unbundle.d.ts +32 -0
  73. package/dist/cjs/clients/generic/sqs-unbundle.js +145 -0
  74. package/dist/cjs/clients/generic/sqs-unbundle.js.map +1 -0
  75. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +2 -2
  76. package/dist/cjs/clients/internal-api/shopify-app-install-client.js.map +1 -1
  77. package/dist/cjs/clients/third-party/acuity-client.d.ts +10 -0
  78. package/dist/cjs/clients/third-party/acuity-client.js +41 -0
  79. package/dist/cjs/clients/third-party/acuity-client.js.map +1 -0
  80. package/dist/cjs/clients/third-party/index.d.ts +1 -0
  81. package/dist/cjs/clients/third-party/index.js +1 -0
  82. package/dist/cjs/clients/third-party/index.js.map +1 -1
  83. package/dist/cjs/clients/third-party/shopify-client.d.ts +5 -5
  84. package/dist/cjs/clients/third-party/shopify-client.js.map +1 -1
  85. package/dist/cjs/constants/index.d.ts +1 -0
  86. package/dist/cjs/constants/index.js +18 -0
  87. package/dist/cjs/constants/index.js.map +1 -0
  88. package/dist/cjs/constants/sqs.d.ts +20 -0
  89. package/dist/cjs/constants/sqs.js +27 -0
  90. package/dist/cjs/constants/sqs.js.map +1 -0
  91. package/dist/cjs/helpers/acuity-helper.d.ts +4 -0
  92. package/dist/cjs/helpers/acuity-helper.js +57 -0
  93. package/dist/cjs/helpers/acuity-helper.js.map +1 -0
  94. package/dist/cjs/helpers/api-key-auth-helper.d.ts +9 -0
  95. package/dist/cjs/helpers/api-key-auth-helper.js +41 -0
  96. package/dist/cjs/helpers/api-key-auth-helper.js.map +1 -0
  97. package/dist/cjs/helpers/api-key-authorizer-helper.d.ts +36 -0
  98. package/dist/cjs/helpers/api-key-authorizer-helper.js +88 -0
  99. package/dist/cjs/helpers/api-key-authorizer-helper.js.map +1 -0
  100. package/dist/cjs/helpers/identity-cache-helper.js +2 -2
  101. package/dist/cjs/helpers/identity-cache-helper.js.map +1 -1
  102. package/dist/cjs/helpers/index.d.ts +3 -0
  103. package/dist/cjs/helpers/index.js +3 -0
  104. package/dist/cjs/helpers/index.js.map +1 -1
  105. package/dist/cjs/index.d.ts +2 -0
  106. package/dist/cjs/index.js +2 -0
  107. package/dist/cjs/index.js.map +1 -1
  108. package/dist/cjs/libs/api-router/index.d.ts +2 -0
  109. package/dist/cjs/libs/api-router/index.js +19 -0
  110. package/dist/cjs/libs/api-router/index.js.map +1 -0
  111. package/dist/cjs/libs/api-router/public-api-router.d.ts +3 -0
  112. package/dist/cjs/libs/api-router/public-api-router.js +37 -0
  113. package/dist/cjs/libs/api-router/public-api-router.js.map +1 -0
  114. package/dist/cjs/libs/api-router/route-matcher.d.ts +21 -0
  115. package/dist/cjs/libs/api-router/route-matcher.js +37 -0
  116. package/dist/cjs/libs/api-router/route-matcher.js.map +1 -0
  117. package/dist/cjs/libs/contacts.d.ts +7 -0
  118. package/dist/cjs/libs/contacts.js +153 -0
  119. package/dist/cjs/libs/contacts.js.map +1 -0
  120. package/dist/cjs/libs/emails.d.ts +2 -0
  121. package/dist/cjs/libs/emails.js +33 -1
  122. package/dist/cjs/libs/emails.js.map +1 -1
  123. package/dist/cjs/libs/index.d.ts +2 -0
  124. package/dist/cjs/libs/index.js +2 -0
  125. package/dist/cjs/libs/index.js.map +1 -1
  126. package/dist/cjs/services/acuity-api-service.d.ts +9 -0
  127. package/dist/cjs/services/acuity-api-service.js +74 -0
  128. package/dist/cjs/services/acuity-api-service.js.map +1 -0
  129. package/dist/cjs/services/db/accounts-db-service.d.ts +9 -0
  130. package/dist/cjs/services/db/accounts-db-service.js +34 -0
  131. package/dist/cjs/services/db/accounts-db-service.js.map +1 -0
  132. package/dist/cjs/services/db/api-keys-db-service.d.ts +10 -0
  133. package/dist/cjs/services/db/api-keys-db-service.js +37 -0
  134. package/dist/cjs/services/db/api-keys-db-service.js.map +1 -0
  135. package/dist/cjs/services/db/contact-enrichments-db-service.d.ts +15 -0
  136. package/dist/cjs/services/db/contact-enrichments-db-service.js +95 -0
  137. package/dist/cjs/services/db/contact-enrichments-db-service.js.map +1 -0
  138. package/dist/cjs/services/db/custom-measures-db-service.d.ts +14 -0
  139. package/dist/cjs/services/db/custom-measures-db-service.js +49 -0
  140. package/dist/cjs/services/db/custom-measures-db-service.js.map +1 -0
  141. package/dist/cjs/services/db/identity-cache-db-service.js.map +1 -1
  142. package/dist/cjs/services/db/identity-cache-dynamodb-service.d.ts +2 -26
  143. package/dist/cjs/services/db/identity-cache-dynamodb-service.js +17 -39
  144. package/dist/cjs/services/db/identity-cache-dynamodb-service.js.map +1 -1
  145. package/dist/cjs/services/db/index.d.ts +6 -1
  146. package/dist/cjs/services/db/index.js +6 -1
  147. package/dist/cjs/services/db/index.js.map +1 -1
  148. package/dist/cjs/services/db/pixels-db-service.js +3 -3
  149. package/dist/cjs/services/db/pixels-db-service.js.map +1 -1
  150. package/dist/cjs/services/db/purchased-contacts/index.d.ts +2 -0
  151. package/dist/cjs/services/db/purchased-contacts/index.js +19 -0
  152. package/dist/cjs/services/db/purchased-contacts/index.js.map +1 -0
  153. package/dist/cjs/services/db/{purchased-contacts-db-service.d.ts → purchased-contacts/purchased-contacts-db-service.d.ts} +2 -1
  154. package/dist/cjs/services/db/{purchased-contacts-db-service.js → purchased-contacts/purchased-contacts-db-service.js} +13 -4
  155. package/dist/cjs/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -0
  156. package/dist/cjs/services/db/purchased-contacts/types.d.ts +11 -0
  157. package/dist/cjs/services/db/purchased-contacts/types.js +3 -0
  158. package/dist/cjs/services/db/purchased-contacts/types.js.map +1 -0
  159. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +2 -1
  160. package/dist/cjs/services/db/shopify-app-installs-db-service.js +10 -6
  161. package/dist/cjs/services/db/shopify-app-installs-db-service.js.map +1 -1
  162. package/dist/cjs/services/db/subscriptions-db-service.d.ts +10 -0
  163. package/dist/cjs/services/db/subscriptions-db-service.js +35 -0
  164. package/dist/cjs/services/db/subscriptions-db-service.js.map +1 -0
  165. package/dist/cjs/services/email-verification/contact-email-verification-service.d.ts +7 -0
  166. package/dist/cjs/services/email-verification/contact-email-verification-service.js +102 -0
  167. package/dist/cjs/services/email-verification/contact-email-verification-service.js.map +1 -0
  168. package/dist/cjs/services/email-verification/email-verification-service.d.ts +19 -0
  169. package/dist/cjs/services/email-verification/email-verification-service.js +132 -0
  170. package/dist/cjs/services/email-verification/email-verification-service.js.map +1 -0
  171. package/dist/cjs/services/email-verification/index.d.ts +2 -0
  172. package/dist/cjs/services/email-verification/index.js +19 -0
  173. package/dist/cjs/services/email-verification/index.js.map +1 -0
  174. package/dist/cjs/services/events/log-event-service.d.ts +11 -1
  175. package/dist/cjs/services/events/log-event-service.js +27 -6
  176. package/dist/cjs/services/events/log-event-service.js.map +1 -1
  177. package/dist/cjs/services/index.d.ts +2 -0
  178. package/dist/cjs/services/index.js +2 -0
  179. package/dist/cjs/services/index.js.map +1 -1
  180. package/dist/cjs/types/acuity-types.d.ts +74 -0
  181. package/dist/cjs/types/acuity-types.js +3 -0
  182. package/dist/cjs/types/acuity-types.js.map +1 -0
  183. package/dist/cjs/types/index.d.ts +3 -0
  184. package/dist/cjs/types/index.js +16 -0
  185. package/dist/cjs/types/index.js.map +1 -1
  186. package/dist/cjs/types/shopify-graphql-types/admin.generated.d.ts +38 -38
  187. package/dist/cjs/types/shopify-graphql-types/admin.types.js.map +1 -1
  188. package/dist/cjs/types/shopify-rest-types.d.ts +767 -0
  189. package/dist/cjs/types/shopify-rest-types.js +3 -0
  190. package/dist/cjs/types/shopify-rest-types.js.map +1 -0
  191. package/dist/cjs/utils/compression.d.ts +36 -0
  192. package/dist/cjs/utils/compression.js +199 -0
  193. package/dist/cjs/utils/compression.js.map +1 -0
  194. package/dist/cjs/utils/custom-measure-formula-utils.d.ts +6 -0
  195. package/dist/cjs/utils/custom-measure-formula-utils.js +210 -0
  196. package/dist/cjs/utils/custom-measure-formula-utils.js.map +1 -0
  197. package/dist/cjs/utils/index.d.ts +4 -0
  198. package/dist/cjs/utils/index.js +21 -0
  199. package/dist/cjs/utils/index.js.map +1 -0
  200. package/dist/cjs/utils/retry-envelope.d.ts +12 -0
  201. package/dist/cjs/utils/retry-envelope.js +29 -0
  202. package/dist/cjs/utils/retry-envelope.js.map +1 -0
  203. package/dist/cjs/utils/size.d.ts +2 -0
  204. package/dist/cjs/utils/size.js +50 -0
  205. package/dist/cjs/utils/size.js.map +1 -0
  206. package/dist/esm/__tests__/clients/acuity-client.spec.d.ts +1 -0
  207. package/dist/esm/__tests__/clients/acuity-client.spec.js +42 -0
  208. package/dist/esm/__tests__/clients/acuity-client.spec.js.map +1 -0
  209. package/dist/esm/__tests__/clients/cross-platform-compression.spec.d.ts +1 -0
  210. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js +330 -0
  211. package/dist/esm/__tests__/clients/cross-platform-compression.spec.js.map +1 -0
  212. package/dist/esm/__tests__/clients/dynamodb-client.spec.js +2 -7
  213. package/dist/esm/__tests__/clients/dynamodb-client.spec.js.map +1 -1
  214. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.d.ts +1 -0
  215. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js +907 -0
  216. package/dist/esm/__tests__/clients/sqs-bundled-client.spec.js.map +1 -0
  217. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.d.ts +1 -0
  218. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js +539 -0
  219. package/dist/esm/__tests__/clients/sqs-bundling-contracts.spec.js.map +1 -0
  220. package/dist/esm/__tests__/clients/sqs-client.spec.js +72 -0
  221. package/dist/esm/__tests__/clients/sqs-client.spec.js.map +1 -1
  222. package/dist/esm/__tests__/clients/sqs-unbundle.spec.d.ts +1 -0
  223. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js +1356 -0
  224. package/dist/esm/__tests__/clients/sqs-unbundle.spec.js.map +1 -0
  225. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.d.ts +1 -0
  226. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js +67 -0
  227. package/dist/esm/__tests__/db/contact-enrichments-db-service.spec.js.map +1 -0
  228. package/dist/esm/__tests__/db/shared-read-db-services.spec.d.ts +1 -0
  229. package/dist/esm/__tests__/db/shared-read-db-services.spec.js +88 -0
  230. package/dist/esm/__tests__/db/shared-read-db-services.spec.js.map +1 -0
  231. package/dist/esm/__tests__/helpers/acuity-helper.spec.d.ts +1 -0
  232. package/dist/esm/__tests__/helpers/acuity-helper.spec.js +68 -0
  233. package/dist/esm/__tests__/helpers/acuity-helper.spec.js.map +1 -0
  234. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.d.ts +1 -0
  235. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js +81 -0
  236. package/dist/esm/__tests__/helpers/api-key-auth-helper.spec.js.map +1 -0
  237. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js +36 -27
  238. package/dist/esm/__tests__/identity-cache/identity-cache-dynamodb-service.spec.js.map +1 -1
  239. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.d.ts +1 -0
  240. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js +583 -0
  241. package/dist/esm/__tests__/integration/sqs-bundling-roundtrip.spec.js.map +1 -0
  242. package/dist/esm/__tests__/libs/contacts.spec.d.ts +1 -0
  243. package/dist/esm/__tests__/libs/contacts.spec.js +293 -0
  244. package/dist/esm/__tests__/libs/contacts.spec.js.map +1 -0
  245. package/dist/esm/__tests__/services/acuity-api-service.spec.d.ts +1 -0
  246. package/dist/esm/__tests__/services/acuity-api-service.spec.js +70 -0
  247. package/dist/esm/__tests__/services/acuity-api-service.spec.js.map +1 -0
  248. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.d.ts +1 -0
  249. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js +92 -0
  250. package/dist/esm/__tests__/services/email-verification/contact-email-verification-service.spec.js.map +1 -0
  251. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.d.ts +1 -0
  252. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js +56 -0
  253. package/dist/esm/__tests__/services/email-verification/email-verification-service.spec.js.map +1 -0
  254. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.d.ts +1 -0
  255. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js +157 -0
  256. package/dist/esm/__tests__/unit/libs/api-router/public-api-router.spec.js.map +1 -0
  257. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.d.ts +1 -0
  258. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js +68 -0
  259. package/dist/esm/__tests__/unit/libs/api-router/route-matcher.spec.js.map +1 -0
  260. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.d.ts +1 -0
  261. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js +138 -0
  262. package/dist/esm/__tests__/utils/custom-measure-formula-utils.spec.js.map +1 -0
  263. package/dist/esm/clients/generic/dynamodb-client.js +19 -24
  264. package/dist/esm/clients/generic/dynamodb-client.js.map +1 -1
  265. package/dist/esm/clients/generic/index.d.ts +3 -0
  266. package/dist/esm/clients/generic/index.js +3 -0
  267. package/dist/esm/clients/generic/index.js.map +1 -1
  268. package/dist/esm/clients/generic/sqs-bundled-client.d.ts +15 -0
  269. package/dist/esm/clients/generic/sqs-bundled-client.js +308 -0
  270. package/dist/esm/clients/generic/sqs-bundled-client.js.map +1 -0
  271. package/dist/esm/clients/generic/sqs-bundled-client.types.d.ts +53 -0
  272. package/dist/esm/clients/generic/sqs-bundled-client.types.js +15 -0
  273. package/dist/esm/clients/generic/sqs-bundled-client.types.js.map +1 -0
  274. package/dist/esm/clients/generic/sqs-client.d.ts +21 -1
  275. package/dist/esm/clients/generic/sqs-client.js +193 -19
  276. package/dist/esm/clients/generic/sqs-client.js.map +1 -1
  277. package/dist/esm/clients/generic/sqs-unbundle.d.ts +32 -0
  278. package/dist/esm/clients/generic/sqs-unbundle.js +138 -0
  279. package/dist/esm/clients/generic/sqs-unbundle.js.map +1 -0
  280. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +2 -2
  281. package/dist/esm/clients/internal-api/shopify-app-install-client.js.map +1 -1
  282. package/dist/esm/clients/third-party/acuity-client.d.ts +10 -0
  283. package/dist/esm/clients/third-party/acuity-client.js +37 -0
  284. package/dist/esm/clients/third-party/acuity-client.js.map +1 -0
  285. package/dist/esm/clients/third-party/index.d.ts +1 -0
  286. package/dist/esm/clients/third-party/index.js +1 -0
  287. package/dist/esm/clients/third-party/index.js.map +1 -1
  288. package/dist/esm/clients/third-party/shopify-client.d.ts +5 -5
  289. package/dist/esm/clients/third-party/shopify-client.js.map +1 -1
  290. package/dist/esm/constants/index.d.ts +1 -0
  291. package/dist/esm/constants/index.js +2 -0
  292. package/dist/esm/constants/index.js.map +1 -0
  293. package/dist/esm/constants/sqs.d.ts +20 -0
  294. package/dist/esm/constants/sqs.js +23 -0
  295. package/dist/esm/constants/sqs.js.map +1 -0
  296. package/dist/esm/helpers/acuity-helper.d.ts +4 -0
  297. package/dist/esm/helpers/acuity-helper.js +52 -0
  298. package/dist/esm/helpers/acuity-helper.js.map +1 -0
  299. package/dist/esm/helpers/api-key-auth-helper.d.ts +9 -0
  300. package/dist/esm/helpers/api-key-auth-helper.js +36 -0
  301. package/dist/esm/helpers/api-key-auth-helper.js.map +1 -0
  302. package/dist/esm/helpers/api-key-authorizer-helper.d.ts +36 -0
  303. package/dist/esm/helpers/api-key-authorizer-helper.js +84 -0
  304. package/dist/esm/helpers/api-key-authorizer-helper.js.map +1 -0
  305. package/dist/esm/helpers/identity-cache-helper.js +2 -2
  306. package/dist/esm/helpers/identity-cache-helper.js.map +1 -1
  307. package/dist/esm/helpers/index.d.ts +3 -0
  308. package/dist/esm/helpers/index.js +3 -0
  309. package/dist/esm/helpers/index.js.map +1 -1
  310. package/dist/esm/index.d.ts +2 -0
  311. package/dist/esm/index.js +2 -0
  312. package/dist/esm/index.js.map +1 -1
  313. package/dist/esm/libs/api-router/index.d.ts +2 -0
  314. package/dist/esm/libs/api-router/index.js +3 -0
  315. package/dist/esm/libs/api-router/index.js.map +1 -0
  316. package/dist/esm/libs/api-router/public-api-router.d.ts +3 -0
  317. package/dist/esm/libs/api-router/public-api-router.js +33 -0
  318. package/dist/esm/libs/api-router/public-api-router.js.map +1 -0
  319. package/dist/esm/libs/api-router/route-matcher.d.ts +21 -0
  320. package/dist/esm/libs/api-router/route-matcher.js +31 -0
  321. package/dist/esm/libs/api-router/route-matcher.js.map +1 -0
  322. package/dist/esm/libs/contacts.d.ts +7 -0
  323. package/dist/esm/libs/contacts.js +144 -0
  324. package/dist/esm/libs/contacts.js.map +1 -0
  325. package/dist/esm/libs/emails.d.ts +2 -0
  326. package/dist/esm/libs/emails.js +31 -0
  327. package/dist/esm/libs/emails.js.map +1 -1
  328. package/dist/esm/libs/index.d.ts +2 -0
  329. package/dist/esm/libs/index.js +2 -0
  330. package/dist/esm/libs/index.js.map +1 -1
  331. package/dist/esm/services/acuity-api-service.d.ts +9 -0
  332. package/dist/esm/services/acuity-api-service.js +70 -0
  333. package/dist/esm/services/acuity-api-service.js.map +1 -0
  334. package/dist/esm/services/db/accounts-db-service.d.ts +9 -0
  335. package/dist/esm/services/db/accounts-db-service.js +30 -0
  336. package/dist/esm/services/db/accounts-db-service.js.map +1 -0
  337. package/dist/esm/services/db/api-keys-db-service.d.ts +10 -0
  338. package/dist/esm/services/db/api-keys-db-service.js +33 -0
  339. package/dist/esm/services/db/api-keys-db-service.js.map +1 -0
  340. package/dist/esm/services/db/contact-enrichments-db-service.d.ts +15 -0
  341. package/dist/esm/services/db/contact-enrichments-db-service.js +91 -0
  342. package/dist/esm/services/db/contact-enrichments-db-service.js.map +1 -0
  343. package/dist/esm/services/db/custom-measures-db-service.d.ts +14 -0
  344. package/dist/esm/services/db/custom-measures-db-service.js +45 -0
  345. package/dist/esm/services/db/custom-measures-db-service.js.map +1 -0
  346. package/dist/esm/services/db/identity-cache-db-service.js.map +1 -1
  347. package/dist/esm/services/db/identity-cache-dynamodb-service.d.ts +2 -26
  348. package/dist/esm/services/db/identity-cache-dynamodb-service.js +1 -23
  349. package/dist/esm/services/db/identity-cache-dynamodb-service.js.map +1 -1
  350. package/dist/esm/services/db/index.d.ts +6 -1
  351. package/dist/esm/services/db/index.js +6 -1
  352. package/dist/esm/services/db/index.js.map +1 -1
  353. package/dist/esm/services/db/pixels-db-service.js +1 -1
  354. package/dist/esm/services/db/pixels-db-service.js.map +1 -1
  355. package/dist/esm/services/db/purchased-contacts/index.d.ts +2 -0
  356. package/dist/esm/services/db/purchased-contacts/index.js +3 -0
  357. package/dist/esm/services/db/purchased-contacts/index.js.map +1 -0
  358. package/dist/esm/services/db/{purchased-contacts-db-service.d.ts → purchased-contacts/purchased-contacts-db-service.d.ts} +2 -1
  359. package/dist/esm/services/db/{purchased-contacts-db-service.js → purchased-contacts/purchased-contacts-db-service.js} +13 -4
  360. package/dist/esm/services/db/purchased-contacts/purchased-contacts-db-service.js.map +1 -0
  361. package/dist/esm/services/db/purchased-contacts/types.d.ts +11 -0
  362. package/dist/esm/services/db/purchased-contacts/types.js +2 -0
  363. package/dist/esm/services/db/purchased-contacts/types.js.map +1 -0
  364. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +2 -1
  365. package/dist/esm/services/db/shopify-app-installs-db-service.js +6 -2
  366. package/dist/esm/services/db/shopify-app-installs-db-service.js.map +1 -1
  367. package/dist/esm/services/db/subscriptions-db-service.d.ts +10 -0
  368. package/dist/esm/services/db/subscriptions-db-service.js +31 -0
  369. package/dist/esm/services/db/subscriptions-db-service.js.map +1 -0
  370. package/dist/esm/services/email-verification/contact-email-verification-service.d.ts +7 -0
  371. package/dist/esm/services/email-verification/contact-email-verification-service.js +98 -0
  372. package/dist/esm/services/email-verification/contact-email-verification-service.js.map +1 -0
  373. package/dist/esm/services/email-verification/email-verification-service.d.ts +19 -0
  374. package/dist/esm/services/email-verification/email-verification-service.js +128 -0
  375. package/dist/esm/services/email-verification/email-verification-service.js.map +1 -0
  376. package/dist/esm/services/email-verification/index.d.ts +2 -0
  377. package/dist/esm/services/email-verification/index.js +3 -0
  378. package/dist/esm/services/email-verification/index.js.map +1 -0
  379. package/dist/esm/services/events/log-event-service.d.ts +11 -1
  380. package/dist/esm/services/events/log-event-service.js +25 -4
  381. package/dist/esm/services/events/log-event-service.js.map +1 -1
  382. package/dist/esm/services/index.d.ts +2 -0
  383. package/dist/esm/services/index.js +2 -0
  384. package/dist/esm/services/index.js.map +1 -1
  385. package/dist/esm/types/acuity-types.d.ts +74 -0
  386. package/dist/esm/types/acuity-types.js +2 -0
  387. package/dist/esm/types/acuity-types.js.map +1 -0
  388. package/dist/esm/types/index.d.ts +3 -0
  389. package/dist/esm/types/index.js +3 -0
  390. package/dist/esm/types/index.js.map +1 -1
  391. package/dist/esm/types/shopify-graphql-types/admin.generated.d.ts +38 -38
  392. package/dist/esm/types/shopify-graphql-types/admin.types.js.map +1 -1
  393. package/dist/esm/types/shopify-rest-types.d.ts +767 -0
  394. package/dist/esm/types/shopify-rest-types.js +2 -0
  395. package/dist/esm/types/shopify-rest-types.js.map +1 -0
  396. package/dist/esm/utils/compression.d.ts +36 -0
  397. package/dist/esm/utils/compression.js +188 -0
  398. package/dist/esm/utils/compression.js.map +1 -0
  399. package/dist/esm/utils/custom-measure-formula-utils.d.ts +6 -0
  400. package/dist/esm/utils/custom-measure-formula-utils.js +202 -0
  401. package/dist/esm/utils/custom-measure-formula-utils.js.map +1 -0
  402. package/dist/esm/utils/index.d.ts +4 -0
  403. package/dist/esm/utils/index.js +5 -0
  404. package/dist/esm/utils/index.js.map +1 -0
  405. package/dist/esm/utils/retry-envelope.d.ts +12 -0
  406. package/dist/esm/utils/retry-envelope.js +23 -0
  407. package/dist/esm/utils/retry-envelope.js.map +1 -0
  408. package/dist/esm/utils/size.d.ts +2 -0
  409. package/dist/esm/utils/size.js +45 -0
  410. package/dist/esm/utils/size.js.map +1 -0
  411. package/package.json +2 -4
  412. package/dist/cjs/services/db/purchased-contacts-db-service.js.map +0 -1
  413. package/dist/esm/services/db/purchased-contacts-db-service.js.map +0 -1
@@ -0,0 +1,144 @@
1
+ import { getCleanedArray } from '@adtrackify/at-shared-utils';
2
+ import { Logger } from '../helpers';
3
+ import { generateSha256Hash } from './crypto.js';
4
+ import { normalizeGmailAddress, validateEmail } from './emails.js';
5
+ import { capitalizeEachWord } from './strings.js';
6
+ import { safeParsePhone } from './traits.js';
7
+ export const buildThirdPartyTraits = (contacts, sourceId, contactGroupId) => {
8
+ try {
9
+ const emails = contacts.map((contact) => contact.emailAddress).filter((email) => !!email);
10
+ const phones = contacts
11
+ .flatMap((contact) => [contact.mobilePhone1, contact.homePhone1])
12
+ .filter((phone) => !!phone)
13
+ .map((phone) => safeParsePhone(phone))
14
+ .filter((phone) => !!phone);
15
+ const now = Date.now();
16
+ return {
17
+ ...(contactGroupId ? { cgId: contactGroupId } : {}),
18
+ si: sourceId,
19
+ esha2: getCleanedArray(emails).map((email) => generateSha256Hash(email)),
20
+ psha2: getCleanedArray(phones).map((phone) => generateSha256Hash(phone)),
21
+ cra: now,
22
+ upa: now,
23
+ };
24
+ }
25
+ catch (error) {
26
+ Logger.error('Failed to build third party traits', { error, sourceId });
27
+ return null;
28
+ }
29
+ };
30
+ export const normalizeThirdPartyContacts = (contacts) => {
31
+ try {
32
+ return contacts.map((contact) => {
33
+ return {
34
+ ...contact,
35
+ emailAddress: contact.emailAddress?.trim()?.toLowerCase(),
36
+ firstName: contact?.firstName ? capitalizeEachWord(contact?.firstName?.trim()) : undefined,
37
+ lastName: contact?.lastName ? capitalizeEachWord(contact?.lastName?.trim()) : undefined,
38
+ };
39
+ });
40
+ }
41
+ catch (error) {
42
+ Logger.error('Failed to normalize third party contacts', { error });
43
+ return contacts;
44
+ }
45
+ };
46
+ export const removeDuplicateContactsByEmail = (contacts, emailKey) => {
47
+ return contacts.filter((contact, index, self) => index === self.findIndex((t) => t[emailKey] === contact[emailKey]));
48
+ };
49
+ export const removeInvalidContactsByEmail = (contacts, emailKey) => {
50
+ return contacts.filter((contact) => contact[emailKey] && contact?.[emailKey]?.trim() !== '' && validateEmail(contact[emailKey]));
51
+ };
52
+ export const removeDuplicateNonDottedGmailContacts = (contacts) => {
53
+ try {
54
+ if (!contacts || contacts.length === 0) {
55
+ return contacts;
56
+ }
57
+ const uniqueContacts = [];
58
+ for (const contact of contacts) {
59
+ if (!contact.emailAddress) {
60
+ uniqueContacts.push(contact);
61
+ }
62
+ else if (!contact?.emailAddress?.includes('@gmail.com')) {
63
+ uniqueContacts.push(contact);
64
+ }
65
+ else {
66
+ const parts = contact?.emailAddress?.split('@') ?? [];
67
+ const localPart = parts[0];
68
+ const normalizedEmail = normalizeGmailAddress(contact.emailAddress);
69
+ const existingIndex = uniqueContacts.findIndex((x) => x.emailAddress &&
70
+ normalizeGmailAddress(x.emailAddress) === normalizedEmail &&
71
+ x.emailAddress !== contact.emailAddress);
72
+ const isDotted = localPart.includes('.');
73
+ if (existingIndex !== -1) {
74
+ const existingContact = uniqueContacts[existingIndex];
75
+ const existingIsDotted = existingContact.emailAddress?.split('@')[0]?.includes('.');
76
+ if (isDotted && !existingIsDotted) {
77
+ Logger.info('contact acquisition - Replacing non-dotted Gmail with dotted Gmail contact', {
78
+ replacing: existingContact,
79
+ with: contact,
80
+ });
81
+ uniqueContacts.splice(existingIndex, 1, contact);
82
+ }
83
+ else {
84
+ Logger.info('contact acquisition - Duplicate Gmail contact found -- skipping', {
85
+ contact,
86
+ existingContact,
87
+ });
88
+ }
89
+ }
90
+ else {
91
+ uniqueContacts.push(contact);
92
+ }
93
+ }
94
+ }
95
+ Logger.info('contact acquisition - Removed non-dotted duplicate gmail contacts', {
96
+ originalCount: contacts.length,
97
+ uniqueCount: uniqueContacts.length,
98
+ removedCount: contacts.length - uniqueContacts.length,
99
+ });
100
+ return uniqueContacts;
101
+ }
102
+ catch (error) {
103
+ Logger.error('contact acquisition - Failed to remove non-dotted duplicate gmail contacts', { error });
104
+ return contacts;
105
+ }
106
+ };
107
+ export const removeDuplicateDottedEmailVariationContacts = (contacts) => {
108
+ try {
109
+ if (!contacts || contacts.length === 0) {
110
+ return contacts;
111
+ }
112
+ const seenNormalizedEmails = new Map();
113
+ const uniqueContacts = [];
114
+ for (const contact of contacts) {
115
+ if (!contact.emailAddress) {
116
+ uniqueContacts.push(contact);
117
+ continue;
118
+ }
119
+ const normalizedEmail = normalizeGmailAddress(contact.emailAddress);
120
+ contact.emailAddress = normalizedEmail;
121
+ if (!seenNormalizedEmails.has(normalizedEmail)) {
122
+ seenNormalizedEmails.set(normalizedEmail, contact);
123
+ uniqueContacts.push(contact);
124
+ }
125
+ else {
126
+ Logger.info('contact acquisition - Duplicate dotted email gmail variation found -- skipping', {
127
+ contact,
128
+ normalizedEmail,
129
+ });
130
+ }
131
+ }
132
+ Logger.info('contact acquisition - Removed duplicate dotted email variations', {
133
+ originalCount: contacts.length,
134
+ uniqueCount: uniqueContacts.length,
135
+ removedCount: contacts.length - uniqueContacts.length,
136
+ });
137
+ return uniqueContacts;
138
+ }
139
+ catch (error) {
140
+ Logger.error('contact acquisition - Failed to remove duplicate dotted email variations', { error });
141
+ return contacts;
142
+ }
143
+ };
144
+ //# sourceMappingURL=contacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../src/libs/contacts.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,7 @@ export declare const normalizeGmailAddress: (email: string) => string;
2
2
  export declare const validateEmail: (email: string) => boolean;
3
3
  export declare const riskyEmailDomains: string[];
4
4
  export declare const disposableEmailDomains: string[];
5
+ export declare const blacklistedEmailDomains: string[];
5
6
  export declare const isDisposableEmail: (email: string) => boolean;
6
7
  export declare const isYahooEmail: (email: string) => boolean;
8
+ export declare const isBlacklistedEmail: (email: string) => boolean;
@@ -107,10 +107,41 @@ export const disposableEmailDomains = [
107
107
  'guerrillamail.biz',
108
108
  'guerrillamail.com',
109
109
  ];
110
+ export const blacklistedEmailDomains = [
111
+ 'consolidated.net',
112
+ 'consolidated.com',
113
+ 'consolidated.org',
114
+ 'consolidated.org',
115
+ 'cicmed.org',
116
+ 'netzero.net',
117
+ 'netzero.com',
118
+ 'netscape.com',
119
+ 'netscape.net',
120
+ 'webtv.net',
121
+ 'mindspring.com',
122
+ 'mac.com',
123
+ 'rocketmail.com',
124
+ 'yahoo.net',
125
+ 'amazom.com',
126
+ 'mailinator.com',
127
+ 'yopmail.com',
128
+ 'maildrop.cc',
129
+ 'maildrop.cc',
130
+ 'mailnesia.com',
131
+ 'guerrillamail.com',
132
+ 'guerrillamailblock.com',
133
+ 'guerrillamail.org',
134
+ 'guerrillamail.net',
135
+ 'guerrillamail.biz',
136
+ 'guerrillamail.com',
137
+ ];
110
138
  export const isDisposableEmail = (email) => {
111
139
  return disposableEmailDomains.some((domain) => email.includes(domain));
112
140
  };
113
141
  export const isYahooEmail = (email) => {
114
142
  return riskyEmailDomains.some((domain) => email.includes(domain));
115
143
  };
144
+ export const isBlacklistedEmail = (email) => {
145
+ return blacklistedEmailDomains.some((domain) => email.includes(domain));
146
+ };
116
147
  //# sourceMappingURL=emails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emails.js","sourceRoot":"","sources":["../../../src/libs/emails.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emails.js","sourceRoot":"","sources":["../../../src/libs/emails.ts"],"names":[],"mappings":"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"}
@@ -15,3 +15,5 @@ export * from './strings.js';
15
15
  export * from './cookie.js';
16
16
  export * from './domain.js';
17
17
  export * from './emails.js';
18
+ export * from './contacts.js';
19
+ export * from './api-router/index.js';
@@ -15,4 +15,6 @@ export * from './strings.js';
15
15
  export * from './cookie.js';
16
16
  export * from './domain.js';
17
17
  export * from './emails.js';
18
+ export * from './contacts.js';
19
+ export * from './api-router/index.js';
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/libs/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/libs/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,UAAU,CAAC;AACzB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Destination } from '@adtrackify/at-tracking-event-types';
2
+ import { AcuityBatchContactResponse, AcuityContactResponse } from '../types/acuity-types';
3
+ export declare class AcuityApiService {
4
+ private acuityClient;
5
+ constructor(acuityKeyId: string, acuitySecret: string);
6
+ getAcuityContactsByMd5: (pixelId: string, identityId: string, md5Hash: string, contactAcquisitionIntegration: Destination) => Promise<AcuityContactResponse | null>;
7
+ getAcuityContactsByEmail: (pixelId: string, identityId: string, email: string, contactAcquisitionIntegration: Destination) => Promise<AcuityContactResponse | null>;
8
+ getAcuityContactsByMd5Batch: (pixelId: string, identityId: string, md5Hashes: string[], contactAcquisitionIntegration: Destination) => Promise<AcuityBatchContactResponse | null>;
9
+ }
@@ -0,0 +1,70 @@
1
+ import { AcuityClient } from '../clients/third-party/acuity-client';
2
+ import { Logger } from '../helpers';
3
+ export class AcuityApiService {
4
+ acuityClient;
5
+ constructor(acuityKeyId, acuitySecret) {
6
+ this.acuityClient = new AcuityClient(acuityKeyId, acuitySecret);
7
+ }
8
+ getAcuityContactsByMd5 = async (pixelId, identityId, md5Hash, contactAcquisitionIntegration) => {
9
+ try {
10
+ const md5ContactsResponse = await this.acuityClient.getContactsByMd5(md5Hash);
11
+ if (md5ContactsResponse.status !== 200) {
12
+ Logger.error('Failed to get acuity contacts by md5', {
13
+ pixelId,
14
+ identityId,
15
+ md5Hash,
16
+ contactAcquisitionIntegration,
17
+ md5ContactsResponse,
18
+ });
19
+ return null;
20
+ }
21
+ return md5ContactsResponse.data;
22
+ }
23
+ catch (error) {
24
+ Logger.error('Failed to get acuity contacts by md5', { error });
25
+ return null;
26
+ }
27
+ };
28
+ getAcuityContactsByEmail = async (pixelId, identityId, email, contactAcquisitionIntegration) => {
29
+ try {
30
+ const emailContactsResponse = await this.acuityClient.getContactsByEmail(email);
31
+ if (emailContactsResponse.status !== 200) {
32
+ Logger.error('Failed to get acuity contacts by email', {
33
+ pixelId,
34
+ identityId,
35
+ contactAcquisitionIntegration,
36
+ emailContactsResponse,
37
+ });
38
+ return null;
39
+ }
40
+ return emailContactsResponse.data;
41
+ }
42
+ catch (error) {
43
+ Logger.error('Failed to get acuity contacts by email', { error, pixelId, identityId });
44
+ return null;
45
+ }
46
+ };
47
+ getAcuityContactsByMd5Batch = async (pixelId, identityId, md5Hashes, contactAcquisitionIntegration) => {
48
+ try {
49
+ const result = {};
50
+ for (const md5Hash of md5Hashes) {
51
+ const md5ContactsResponse = await this.acuityClient.getContactsByMd5(md5Hash);
52
+ if (md5ContactsResponse.status === 200 && md5ContactsResponse.data?.identities) {
53
+ result[md5Hash] = md5ContactsResponse.data.identities;
54
+ }
55
+ }
56
+ return result;
57
+ }
58
+ catch (error) {
59
+ Logger.error('Failed to get acuity contacts by md5 batch', {
60
+ error,
61
+ pixelId,
62
+ identityId,
63
+ md5HashesCount: md5Hashes.length,
64
+ contactAcquisitionIntegration,
65
+ });
66
+ return null;
67
+ }
68
+ };
69
+ }
70
+ //# sourceMappingURL=acuity-api-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acuity-api-service.js","sourceRoot":"","sources":["../../../src/services/acuity-api-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGpC,MAAM,OAAO,gBAAgB;IACnB,YAAY,CAAe;IAEnC,YAAY,WAAmB,EAAE,YAAoB;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAEM,sBAAsB,GAAG,KAAK,EACnC,OAAe,EACf,UAAkB,EAClB,OAAe,EACf,6BAA0C,EACH,EAAE;QACzC,IAAI;YACF,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC9E,IAAI,mBAAmB,CAAC,MAAM,KAAK,GAAG,EAAE;gBACtC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE;oBACnD,OAAO;oBACP,UAAU;oBACV,OAAO;oBACP,6BAA6B;oBAC7B,mBAAmB;iBACpB,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;aACb;YACD,OAAO,mBAAmB,CAAC,IAAI,CAAC;SACjC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC;IAGK,wBAAwB,GAAG,KAAK,EACrC,OAAe,EACf,UAAkB,EAClB,KAAa,EACb,6BAA0C,EACH,EAAE;QACzC,IAAI;YACF,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAChF,IAAI,qBAAqB,CAAC,MAAM,KAAK,GAAG,EAAE;gBACxC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE;oBACrD,OAAO;oBACP,UAAU;oBACV,6BAA6B;oBAC7B,qBAAqB;iBACtB,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;aACb;YACD,OAAO,qBAAqB,CAAC,IAAI,CAAC;SACnC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC;IAEK,2BAA2B,GAAG,KAAK,EACxC,OAAe,EACf,UAAkB,EAClB,SAAmB,EACnB,6BAA0C,EACE,EAAE;QAC9C,IAAI;YACF,MAAM,MAAM,GAA+B,EAAE,CAAC;YAC9C,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE;gBAC/B,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC9E,IAAI,mBAAmB,CAAC,MAAM,KAAK,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE;oBAC9E,MAAM,CAAC,OAAO,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;iBACvD;aACF;YACD,OAAO,MAAM,CAAC;SACf;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE;gBACzD,KAAK;gBACL,OAAO;gBACP,UAAU;gBACV,cAAc,EAAE,SAAS,CAAC,MAAM;gBAChC,6BAA6B;aAC9B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC;CACH"}
@@ -0,0 +1,9 @@
1
+ import { type Account } from '@adtrackify/at-tracking-event-types';
2
+ export declare class AccountsDbService {
3
+ TABLE_NAME: string;
4
+ TABLE_KEY: string;
5
+ constructor(tableName: string, tableKey?: string);
6
+ getAccountById: (accountId: string) => Promise<Account | null>;
7
+ batchGetAccountsById: (accountIds: string[]) => Promise<Account[]>;
8
+ private normalizeAccount;
9
+ }
@@ -0,0 +1,30 @@
1
+ import { ACCOUNT_SUBSCRIPTION_TYPE } from '@adtrackify/at-tracking-event-types';
2
+ import { DynamoDbClient } from '../../clients/generic/dynamodb-client.js';
3
+ export class AccountsDbService {
4
+ TABLE_NAME;
5
+ TABLE_KEY;
6
+ constructor(tableName, tableKey = 'id') {
7
+ this.TABLE_NAME = tableName;
8
+ this.TABLE_KEY = tableKey;
9
+ }
10
+ getAccountById = async (accountId) => {
11
+ const account = await DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, accountId);
12
+ if (!account) {
13
+ return null;
14
+ }
15
+ return this.normalizeAccount(account);
16
+ };
17
+ batchGetAccountsById = async (accountIds) => {
18
+ const keys = accountIds.map((accountId) => ({ [this.TABLE_KEY]: accountId }));
19
+ const accounts = await DynamoDbClient.safeBatchGet(this.TABLE_NAME, keys);
20
+ return (accounts ?? []).map((account) => this.normalizeAccount(account));
21
+ };
22
+ normalizeAccount = (account) => {
23
+ if (!account.accountSubscriptionType) {
24
+ account.accountSubscriptionType = ACCOUNT_SUBSCRIPTION_TYPE.SHOPIFY;
25
+ account.isPlatformMigrated = false;
26
+ }
27
+ return account;
28
+ };
29
+ }
30
+ //# sourceMappingURL=accounts-db-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/accounts-db-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAgB,MAAM,qCAAqC,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,MAAM,OAAO,iBAAiB;IACrB,UAAU,CAAS;IACnB,SAAS,CAAS;IAEzB,YAAY,SAAiB,EAAE,QAAQ,GAAG,IAAI;QAC5C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEM,cAAc,GAAG,KAAK,EAAE,SAAiB,EAA2B,EAAE;QAC3E,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAkB,CAAC,CAAC;IACnD,CAAC,CAAC;IAEK,oBAAoB,GAAG,KAAK,EAAE,UAAoB,EAAsB,EAAE;QAC/E,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1E,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAkB,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC;IAEM,gBAAgB,GAAG,CAAC,OAAgB,EAAW,EAAE;QACvD,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;YACpC,OAAO,CAAC,uBAAuB,GAAG,yBAAyB,CAAC,OAAO,CAAC;YACpE,OAAO,CAAC,kBAAkB,GAAG,KAAK,CAAC;SACpC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;CACH"}
@@ -0,0 +1,10 @@
1
+ import { type ApiKeyRecord } from '@adtrackify/at-tracking-event-types';
2
+ export declare class ApiKeysDbService {
3
+ TABLE_NAME: string;
4
+ TABLE_KEY: string;
5
+ constructor(tableName: string, tableKey?: string);
6
+ createApiKey: (record: ApiKeyRecord) => Promise<ApiKeyRecord>;
7
+ getApiKeyByPk: (pk: string) => Promise<ApiKeyRecord | null>;
8
+ getApiKeysByPixelId: (gsiName: string, pixelId: string) => Promise<ApiKeyRecord[]>;
9
+ deleteApiKey: (pk: string) => Promise<void>;
10
+ }
@@ -0,0 +1,33 @@
1
+ import { DynamoDbClient } from '../../clients/generic/dynamodb-client.js';
2
+ import { getCurrentTimestamp } from '../../libs/dates.js';
3
+ import { HttpError } from '../../libs/http-error.js';
4
+ import { Logger } from '../../helpers/logging-helper.js';
5
+ export class ApiKeysDbService {
6
+ TABLE_NAME;
7
+ TABLE_KEY;
8
+ constructor(tableName, tableKey = 'pk') {
9
+ this.TABLE_NAME = tableName;
10
+ this.TABLE_KEY = tableKey;
11
+ }
12
+ createApiKey = async (record) => {
13
+ record.updatedAt = getCurrentTimestamp();
14
+ const res = await DynamoDbClient.safePut(this.TABLE_NAME, record);
15
+ if (!res) {
16
+ Logger.error('ApiKeysDbService: createApiKey failed', { record });
17
+ throw HttpError.internal();
18
+ }
19
+ return record;
20
+ };
21
+ getApiKeyByPk = async (pk) => {
22
+ const result = await DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, pk);
23
+ return result ?? null;
24
+ };
25
+ getApiKeysByPixelId = async (gsiName, pixelId) => {
26
+ const records = await DynamoDbClient.safeQueryByGSI(this.TABLE_NAME, gsiName, 'pixelId', pixelId);
27
+ return records || [];
28
+ };
29
+ deleteApiKey = async (pk) => {
30
+ await DynamoDbClient.safeDelete(this.TABLE_NAME, this.TABLE_KEY, pk);
31
+ };
32
+ }
33
+ //# sourceMappingURL=api-keys-db-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-keys-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/api-keys-db-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD,MAAM,OAAO,gBAAgB;IACpB,UAAU,CAAS;IACnB,SAAS,CAAS;IAEzB,YAAY,SAAiB,EAAE,QAAQ,GAAG,IAAI;QAC5C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAEM,YAAY,GAAG,KAAK,EAAE,MAAoB,EAAyB,EAAE;QAC1E,MAAM,CAAC,SAAS,GAAG,mBAAmB,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAClE,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEK,aAAa,GAAG,KAAK,EAAE,EAAU,EAAgC,EAAE;QACxE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACjF,OAAQ,MAAuB,IAAI,IAAI,CAAC;IAC1C,CAAC,CAAC;IAEK,mBAAmB,GAAG,KAAK,EAAE,OAAe,EAAE,OAAe,EAA2B,EAAE;QAC/F,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAClG,OAAQ,OAA0B,IAAI,EAAE,CAAC;IAC3C,CAAC,CAAC;IAEK,YAAY,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE;QACxD,MAAM,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC;CACH"}
@@ -0,0 +1,15 @@
1
+ import { ContactEnrichment } from '@adtrackify/at-tracking-event-types';
2
+ export declare class ContactEnrichmentsDbService {
3
+ TABLE_NAME: string;
4
+ TABLE_KEY: string;
5
+ EMAIL_INDEX_NAME: string;
6
+ MD5_INDEX_NAME: string;
7
+ SHA2_INDEX_NAME: string;
8
+ constructor(tableName: string, contactEnrichmentsKey: string, STAGE: string);
9
+ buildContactEnrichment: (input: Omit<ContactEnrichment, 'id' | 'createdAt' | 'updatedAt'>) => ContactEnrichment;
10
+ putContactEnrichment: (contactEnrichment: ContactEnrichment) => Promise<ContactEnrichment>;
11
+ getContactEnrichment: (id: string) => Promise<ContactEnrichment | null>;
12
+ getContactEnrichmentsByEmail: (email: string) => Promise<ContactEnrichment[]>;
13
+ getContactEnrichmentsByMd5: (md5: string) => Promise<ContactEnrichment[]>;
14
+ getContactEnrichmentsBySha2: (sha2: string) => Promise<ContactEnrichment[]>;
15
+ }
@@ -0,0 +1,91 @@
1
+ import { DynamoDbClient } from '../../clients/generic/dynamodb-client.js';
2
+ import { getCurrentTimestamp } from '../../libs';
3
+ import { Logger } from '../../helpers';
4
+ import { ulid } from 'ulid';
5
+ export class ContactEnrichmentsDbService {
6
+ TABLE_NAME;
7
+ TABLE_KEY;
8
+ EMAIL_INDEX_NAME;
9
+ MD5_INDEX_NAME;
10
+ SHA2_INDEX_NAME;
11
+ constructor(tableName, contactEnrichmentsKey, STAGE) {
12
+ this.TABLE_NAME = tableName;
13
+ this.TABLE_KEY = contactEnrichmentsKey;
14
+ this.EMAIL_INDEX_NAME = `${STAGE}-contact-enrichments-gsi-email`;
15
+ this.MD5_INDEX_NAME = `${STAGE}-contact-enrichments-gsi-md5`;
16
+ this.SHA2_INDEX_NAME = `${STAGE}-contact-enrichments-gsi-sha2`;
17
+ }
18
+ buildContactEnrichment = (input) => {
19
+ const currentTimestamp = getCurrentTimestamp();
20
+ const contactEnrichment = {
21
+ ...input,
22
+ id: ulid(),
23
+ createdAt: currentTimestamp,
24
+ updatedAt: currentTimestamp,
25
+ };
26
+ return contactEnrichment;
27
+ };
28
+ putContactEnrichment = async (contactEnrichment) => {
29
+ await DynamoDbClient.safePut(this.TABLE_NAME, contactEnrichment);
30
+ return contactEnrichment;
31
+ };
32
+ getContactEnrichment = async (id) => {
33
+ try {
34
+ const contactEnrichment = await DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
35
+ return contactEnrichment ?? null;
36
+ }
37
+ catch (error) {
38
+ Logger.error('failed to getContactEnrichment', { error, id });
39
+ return null;
40
+ }
41
+ };
42
+ getContactEnrichmentsByEmail = async (email) => {
43
+ try {
44
+ const query = {
45
+ TableName: this.TABLE_NAME,
46
+ IndexName: this.EMAIL_INDEX_NAME,
47
+ KeyConditionExpression: 'email = :email',
48
+ ExpressionAttributeValues: { ':email': email },
49
+ };
50
+ const contactEnrichments = await DynamoDbClient.queryAll(query);
51
+ return (contactEnrichments ?? []);
52
+ }
53
+ catch (error) {
54
+ Logger.error('failed to getContactEnrichmentsByEmail', { error, email });
55
+ return [];
56
+ }
57
+ };
58
+ getContactEnrichmentsByMd5 = async (md5) => {
59
+ try {
60
+ const query = {
61
+ TableName: this.TABLE_NAME,
62
+ IndexName: this.MD5_INDEX_NAME,
63
+ KeyConditionExpression: 'md5 = :md5',
64
+ ExpressionAttributeValues: { ':md5': md5 },
65
+ };
66
+ const contactEnrichments = await DynamoDbClient.queryAll(query);
67
+ return (contactEnrichments ?? []);
68
+ }
69
+ catch (error) {
70
+ Logger.error('failed to getContactEnrichmentsByMd5', { error, md5 });
71
+ return [];
72
+ }
73
+ };
74
+ getContactEnrichmentsBySha2 = async (sha2) => {
75
+ try {
76
+ const query = {
77
+ TableName: this.TABLE_NAME,
78
+ IndexName: this.SHA2_INDEX_NAME,
79
+ KeyConditionExpression: 'sha2 = :sha2',
80
+ ExpressionAttributeValues: { ':sha2': sha2 },
81
+ };
82
+ const contactEnrichments = await DynamoDbClient.queryAll(query);
83
+ return (contactEnrichments ?? []);
84
+ }
85
+ catch (error) {
86
+ Logger.error('failed to getContactEnrichmentsBySha2', { error, sha2 });
87
+ return [];
88
+ }
89
+ };
90
+ }
91
+ //# sourceMappingURL=contact-enrichments-db-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-enrichments-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/contact-enrichments-db-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { type CustomMeasureRecord } from '@adtrackify/at-tracking-event-types';
2
+ export declare class CustomMeasuresDbService {
3
+ TABLE_NAME: string;
4
+ TABLE_KEY: string;
5
+ constructor(tableName: string, tableKey?: string);
6
+ listByPixelId: (gsiName: string, pixelId: string) => Promise<CustomMeasureRecord[]>;
7
+ listPageByPixelId: (gsiName: string, pixelId: string, limit: number, exclusiveStartKey?: Record<string, any>) => Promise<{
8
+ items: CustomMeasureRecord[];
9
+ lastEvaluatedKey?: Record<string, any>;
10
+ }>;
11
+ getById: (id: string) => Promise<CustomMeasureRecord | null>;
12
+ putMeasure: (record: CustomMeasureRecord) => Promise<CustomMeasureRecord>;
13
+ deleteMeasure: (id: string) => Promise<void>;
14
+ }
@@ -0,0 +1,45 @@
1
+ import { DynamoDbClient } from '../../clients/generic/dynamodb-client.js';
2
+ import { HttpError } from '../../libs/http-error.js';
3
+ import { Logger } from '../../helpers/logging-helper.js';
4
+ export class CustomMeasuresDbService {
5
+ TABLE_NAME;
6
+ TABLE_KEY;
7
+ constructor(tableName, tableKey = 'id') {
8
+ this.TABLE_NAME = tableName;
9
+ this.TABLE_KEY = tableKey;
10
+ }
11
+ listByPixelId = async (gsiName, pixelId) => {
12
+ const records = await DynamoDbClient.safeQueryByGSI(this.TABLE_NAME, gsiName, 'pixelId', pixelId);
13
+ return records || [];
14
+ };
15
+ listPageByPixelId = async (gsiName, pixelId, limit, exclusiveStartKey) => {
16
+ const result = await DynamoDbClient.query({
17
+ TableName: this.TABLE_NAME,
18
+ IndexName: gsiName,
19
+ KeyConditionExpression: 'pixelId = :pixelId',
20
+ ExpressionAttributeValues: { ':pixelId': pixelId },
21
+ Limit: limit,
22
+ ExclusiveStartKey: exclusiveStartKey,
23
+ });
24
+ return {
25
+ items: result.Items || [],
26
+ lastEvaluatedKey: result.LastEvaluatedKey,
27
+ };
28
+ };
29
+ getById = async (id) => {
30
+ const result = await DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
31
+ return result ?? null;
32
+ };
33
+ putMeasure = async (record) => {
34
+ const res = await DynamoDbClient.safePut(this.TABLE_NAME, record);
35
+ if (!res) {
36
+ Logger.error('CustomMeasuresDbService: putMeasure failed', { record });
37
+ throw HttpError.internal();
38
+ }
39
+ return record;
40
+ };
41
+ deleteMeasure = async (id) => {
42
+ await DynamoDbClient.safeDelete(this.TABLE_NAME, this.TABLE_KEY, id);
43
+ };
44
+ }
45
+ //# sourceMappingURL=custom-measures-db-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-measures-db-service.js","sourceRoot":"","sources":["../../../../src/services/db/custom-measures-db-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAQzD,MAAM,OAAO,uBAAuB;IAC3B,UAAU,CAAS;IACnB,SAAS,CAAS;IAEzB,YAAY,SAAiB,EAAE,QAAQ,GAAG,IAAI;QAC5C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAGM,aAAa,GAAG,KAAK,EAAE,OAAe,EAAE,OAAe,EAAkC,EAAE;QAChG,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAClG,OAAQ,OAAiC,IAAI,EAAE,CAAC;IAClD,CAAC,CAAC;IAGK,iBAAiB,GAAG,KAAK,EAC9B,OAAe,EACf,OAAe,EACf,KAAa,EACb,iBAAuC,EAC4C,EAAE;QACrF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,SAAS,EAAE,OAAO;YAClB,sBAAsB,EAAE,oBAAoB;YAC5C,yBAAyB,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;YAClD,KAAK,EAAE,KAAK;YACZ,iBAAiB,EAAE,iBAAiB;SACrC,CAAC,CAAC;QACH,OAAO;YACL,KAAK,EAAG,MAAM,CAAC,KAA+B,IAAI,EAAE;YACpD,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;SAC1C,CAAC;IACJ,CAAC,CAAC;IAEK,OAAO,GAAG,KAAK,EAAE,EAAU,EAAuC,EAAE;QACzE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACjF,OAAQ,MAA8B,IAAI,IAAI,CAAC;IACjD,CAAC,CAAC;IAEK,UAAU,GAAG,KAAK,EAAE,MAA2B,EAAgC,EAAE;QACtF,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC5B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEK,aAAa,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE;QACzD,MAAM,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC;CACH"}