@adtrackify/at-service-common 3.0.89 → 3.0.90

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 (255) hide show
  1. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  2. package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +527 -527
  3. package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  4. package/dist/cjs/__tests__/libs/compress-decompress.spec.js +16 -16
  5. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  6. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +26 -26
  7. package/dist/cjs/clients/generic/cognito-client.d.ts +20 -20
  8. package/dist/cjs/clients/generic/cognito-client.js +164 -164
  9. package/dist/cjs/clients/generic/dynamodb-client.d.ts +17 -17
  10. package/dist/cjs/clients/generic/dynamodb-client.js +167 -167
  11. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  12. package/dist/cjs/clients/generic/eventbridge-client.js +49 -49
  13. package/dist/cjs/clients/generic/http-client.d.ts +88 -88
  14. package/dist/cjs/clients/generic/http-client.js +56 -56
  15. package/dist/cjs/clients/generic/index.d.ts +10 -10
  16. package/dist/cjs/clients/generic/index.js +26 -26
  17. package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
  18. package/dist/cjs/clients/generic/lambda-invoke-client.js +35 -35
  19. package/dist/cjs/clients/generic/location-client.d.ts +8 -8
  20. package/dist/cjs/clients/generic/location-client.js +31 -31
  21. package/dist/cjs/clients/generic/redis-client.d.ts +17 -17
  22. package/dist/cjs/clients/generic/redis-client.js +117 -117
  23. package/dist/cjs/clients/generic/s3-client.d.ts +16 -16
  24. package/dist/cjs/clients/generic/s3-client.js +110 -110
  25. package/dist/cjs/clients/generic/singlestore-db-client.d.ts +14 -14
  26. package/dist/cjs/clients/generic/singlestore-db-client.js +67 -67
  27. package/dist/cjs/clients/generic/sqs-client.d.ts +14 -14
  28. package/dist/cjs/clients/generic/sqs-client.js +36 -36
  29. package/dist/cjs/clients/index.d.ts +3 -3
  30. package/dist/cjs/clients/index.js +19 -19
  31. package/dist/cjs/clients/internal-api/accounts-client.d.ts +112 -112
  32. package/dist/cjs/clients/internal-api/accounts-client.js +117 -117
  33. package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +23 -23
  34. package/dist/cjs/clients/internal-api/cache-lambda-client.js +59 -59
  35. package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
  36. package/dist/cjs/clients/internal-api/db-management-client.js +39 -39
  37. package/dist/cjs/clients/internal-api/destinations-client.d.ts +29 -29
  38. package/dist/cjs/clients/internal-api/destinations-client.js +54 -54
  39. package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
  40. package/dist/cjs/clients/internal-api/event-collector-client.js +39 -39
  41. package/dist/cjs/clients/internal-api/identity-client.d.ts +17 -17
  42. package/dist/cjs/clients/internal-api/identity-client.js +75 -75
  43. package/dist/cjs/clients/internal-api/index.d.ts +8 -8
  44. package/dist/cjs/clients/internal-api/index.js +24 -24
  45. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +34 -34
  46. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +63 -63
  47. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +31 -31
  48. package/dist/cjs/clients/internal-api/users-auth-client.js +92 -92
  49. package/dist/cjs/clients/third-party/index.d.ts +1 -1
  50. package/dist/cjs/clients/third-party/index.js +17 -17
  51. package/dist/cjs/clients/third-party/shopify-client.d.ts +198 -198
  52. package/dist/cjs/clients/third-party/shopify-client.js +150 -150
  53. package/dist/cjs/helpers/identity-cache-helper.d.ts +3 -4
  54. package/dist/cjs/helpers/identity-cache-helper.js +66 -150
  55. package/dist/cjs/helpers/identity-cache-helper.js.map +1 -1
  56. package/dist/cjs/helpers/index.d.ts +5 -5
  57. package/dist/cjs/helpers/index.js +21 -21
  58. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  59. package/dist/cjs/helpers/input-validation-helper.js +23 -22
  60. package/dist/cjs/helpers/input-validation-helper.js.map +1 -1
  61. package/dist/cjs/helpers/logging-helper.d.ts +16 -16
  62. package/dist/cjs/helpers/logging-helper.js +84 -84
  63. package/dist/cjs/helpers/response-helper.d.ts +15 -15
  64. package/dist/cjs/helpers/response-helper.js +42 -42
  65. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  66. package/dist/cjs/helpers/shopify-helper.js +28 -28
  67. package/dist/cjs/index.d.ts +5 -5
  68. package/dist/cjs/index.js +21 -21
  69. package/dist/cjs/libs/clickId-parser.d.ts +23 -23
  70. package/dist/cjs/libs/clickId-parser.js +49 -49
  71. package/dist/cjs/libs/compression.d.ts +2 -2
  72. package/dist/cjs/libs/compression.js +33 -33
  73. package/dist/cjs/libs/crypto.d.ts +1 -1
  74. package/dist/cjs/libs/crypto.js +12 -12
  75. package/dist/cjs/libs/dates.d.ts +6 -6
  76. package/dist/cjs/libs/dates.js +31 -31
  77. package/dist/cjs/libs/http-error.d.ts +21 -21
  78. package/dist/cjs/libs/http-error.js +59 -59
  79. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  80. package/dist/cjs/libs/http-status-codes.js +62 -62
  81. package/dist/cjs/libs/index.d.ts +9 -9
  82. package/dist/cjs/libs/index.js +25 -25
  83. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  84. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  85. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  86. package/dist/cjs/libs/referrer-parser/referrer-data.js +4712 -4712
  87. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  88. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +128 -128
  89. package/dist/cjs/libs/url.d.ts +1 -1
  90. package/dist/cjs/libs/url.js +13 -13
  91. package/dist/cjs/services/db/{destinations-service.d.ts → destinations-db-service.d.ts} +8 -7
  92. package/dist/cjs/services/db/{destinations-service.js → destinations-db-service.js} +48 -36
  93. package/dist/cjs/services/db/destinations-db-service.js.map +1 -0
  94. package/dist/cjs/services/db/identity-cache-db-service.d.ts +24 -24
  95. package/dist/cjs/services/db/identity-cache-db-service.js +233 -233
  96. package/dist/cjs/services/db/index.d.ts +7 -7
  97. package/dist/cjs/services/db/index.js +23 -23
  98. package/dist/cjs/services/db/index.js.map +1 -1
  99. package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
  100. package/dist/cjs/services/db/log-events-db-service.js +172 -172
  101. package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +9 -9
  102. package/dist/cjs/services/db/purchased-contacts-db-service.js +38 -38
  103. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +7 -7
  104. package/dist/cjs/services/db/shopify-app-installs-db-service.js +47 -47
  105. package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +9 -9
  106. package/dist/cjs/services/db/shopify-products-cache-db-service.js +64 -64
  107. package/dist/cjs/services/db/tracking-events-db-service.d.ts +20 -20
  108. package/dist/cjs/services/db/tracking-events-db-service.js +162 -162
  109. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  110. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  111. package/dist/cjs/services/index.d.ts +5 -5
  112. package/dist/cjs/services/index.js +21 -21
  113. package/dist/cjs/services/ipdata-lookup-service.d.ts +17 -17
  114. package/dist/cjs/services/ipdata-lookup-service.js +71 -71
  115. package/dist/cjs/services/log-event-service.d.ts +9 -9
  116. package/dist/cjs/services/log-event-service.js +56 -56
  117. package/dist/cjs/services/metric-event-service.d.ts +9 -9
  118. package/dist/cjs/services/metric-event-service.js +49 -49
  119. package/dist/cjs/types/api-response.d.ts +6 -6
  120. package/dist/cjs/types/api-response.js +2 -2
  121. package/dist/cjs/types/index.d.ts +1 -1
  122. package/dist/cjs/types/index.js +17 -17
  123. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  124. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  125. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  126. package/dist/cjs/types/internal-events/index.js +17 -17
  127. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  128. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +525 -525
  129. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  130. package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
  131. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  132. package/dist/esm/__tests__/s3-client/s3-client.spec.js +24 -24
  133. package/dist/esm/clients/generic/cognito-client.d.ts +20 -20
  134. package/dist/esm/clients/generic/cognito-client.js +159 -159
  135. package/dist/esm/clients/generic/dynamodb-client.d.ts +17 -17
  136. package/dist/esm/clients/generic/dynamodb-client.js +163 -163
  137. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  138. package/dist/esm/clients/generic/eventbridge-client.js +45 -45
  139. package/dist/esm/clients/generic/http-client.d.ts +88 -88
  140. package/dist/esm/clients/generic/http-client.js +48 -48
  141. package/dist/esm/clients/generic/index.d.ts +10 -10
  142. package/dist/esm/clients/generic/index.js +10 -10
  143. package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
  144. package/dist/esm/clients/generic/lambda-invoke-client.js +31 -31
  145. package/dist/esm/clients/generic/location-client.d.ts +8 -8
  146. package/dist/esm/clients/generic/location-client.js +27 -27
  147. package/dist/esm/clients/generic/redis-client.d.ts +17 -17
  148. package/dist/esm/clients/generic/redis-client.js +110 -110
  149. package/dist/esm/clients/generic/s3-client.d.ts +16 -16
  150. package/dist/esm/clients/generic/s3-client.js +106 -106
  151. package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
  152. package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
  153. package/dist/esm/clients/generic/sqs-client.d.ts +14 -14
  154. package/dist/esm/clients/generic/sqs-client.js +32 -32
  155. package/dist/esm/clients/index.d.ts +3 -3
  156. package/dist/esm/clients/index.js +3 -3
  157. package/dist/esm/clients/internal-api/accounts-client.d.ts +112 -112
  158. package/dist/esm/clients/internal-api/accounts-client.js +113 -113
  159. package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +23 -23
  160. package/dist/esm/clients/internal-api/cache-lambda-client.js +55 -55
  161. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  162. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  163. package/dist/esm/clients/internal-api/destinations-client.d.ts +29 -29
  164. package/dist/esm/clients/internal-api/destinations-client.js +50 -50
  165. package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
  166. package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
  167. package/dist/esm/clients/internal-api/identity-client.d.ts +17 -17
  168. package/dist/esm/clients/internal-api/identity-client.js +71 -71
  169. package/dist/esm/clients/internal-api/index.d.ts +8 -8
  170. package/dist/esm/clients/internal-api/index.js +8 -8
  171. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +34 -34
  172. package/dist/esm/clients/internal-api/shopify-app-install-client.js +56 -56
  173. package/dist/esm/clients/internal-api/users-auth-client.d.ts +31 -31
  174. package/dist/esm/clients/internal-api/users-auth-client.js +88 -88
  175. package/dist/esm/clients/third-party/index.d.ts +1 -1
  176. package/dist/esm/clients/third-party/index.js +1 -1
  177. package/dist/esm/clients/third-party/shopify-client.d.ts +198 -198
  178. package/dist/esm/clients/third-party/shopify-client.js +146 -146
  179. package/dist/esm/helpers/identity-cache-helper.d.ts +3 -4
  180. package/dist/esm/helpers/identity-cache-helper.js +62 -145
  181. package/dist/esm/helpers/identity-cache-helper.js.map +1 -1
  182. package/dist/esm/helpers/index.d.ts +5 -5
  183. package/dist/esm/helpers/index.js +5 -5
  184. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  185. package/dist/esm/helpers/input-validation-helper.js +19 -18
  186. package/dist/esm/helpers/input-validation-helper.js.map +1 -1
  187. package/dist/esm/helpers/logging-helper.d.ts +16 -16
  188. package/dist/esm/helpers/logging-helper.js +56 -56
  189. package/dist/esm/helpers/response-helper.d.ts +15 -15
  190. package/dist/esm/helpers/response-helper.js +36 -36
  191. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  192. package/dist/esm/helpers/shopify-helper.js +23 -23
  193. package/dist/esm/index.d.ts +5 -5
  194. package/dist/esm/index.js +5 -5
  195. package/dist/esm/libs/clickId-parser.d.ts +23 -23
  196. package/dist/esm/libs/clickId-parser.js +45 -45
  197. package/dist/esm/libs/compression.d.ts +2 -2
  198. package/dist/esm/libs/compression.js +25 -25
  199. package/dist/esm/libs/crypto.d.ts +1 -1
  200. package/dist/esm/libs/crypto.js +5 -5
  201. package/dist/esm/libs/dates.d.ts +6 -6
  202. package/dist/esm/libs/dates.js +22 -22
  203. package/dist/esm/libs/http-error.d.ts +21 -21
  204. package/dist/esm/libs/http-error.js +55 -55
  205. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  206. package/dist/esm/libs/http-status-codes.js +59 -59
  207. package/dist/esm/libs/index.d.ts +9 -9
  208. package/dist/esm/libs/index.js +9 -9
  209. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  210. package/dist/esm/libs/referrer-parser/index.js +2 -2
  211. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  212. package/dist/esm/libs/referrer-parser/referrer-data.js +4709 -4709
  213. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  214. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +121 -121
  215. package/dist/esm/libs/url.d.ts +1 -1
  216. package/dist/esm/libs/url.js +9 -9
  217. package/dist/esm/services/db/{destinations-service.d.ts → destinations-db-service.d.ts} +8 -7
  218. package/dist/esm/services/db/{destinations-service.js → destinations-db-service.js} +44 -32
  219. package/dist/esm/services/db/destinations-db-service.js.map +1 -0
  220. package/dist/esm/services/db/identity-cache-db-service.d.ts +24 -24
  221. package/dist/esm/services/db/identity-cache-db-service.js +229 -229
  222. package/dist/esm/services/db/index.d.ts +7 -7
  223. package/dist/esm/services/db/index.js +7 -7
  224. package/dist/esm/services/db/index.js.map +1 -1
  225. package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
  226. package/dist/esm/services/db/log-events-db-service.js +168 -168
  227. package/dist/esm/services/db/purchased-contacts-db-service.d.ts +9 -9
  228. package/dist/esm/services/db/purchased-contacts-db-service.js +34 -34
  229. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +7 -7
  230. package/dist/esm/services/db/shopify-app-installs-db-service.js +43 -43
  231. package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +9 -9
  232. package/dist/esm/services/db/shopify-products-cache-db-service.js +60 -60
  233. package/dist/esm/services/db/tracking-events-db-service.d.ts +20 -20
  234. package/dist/esm/services/db/tracking-events-db-service.js +158 -158
  235. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  236. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  237. package/dist/esm/services/index.d.ts +5 -5
  238. package/dist/esm/services/index.js +5 -5
  239. package/dist/esm/services/ipdata-lookup-service.d.ts +17 -17
  240. package/dist/esm/services/ipdata-lookup-service.js +67 -67
  241. package/dist/esm/services/log-event-service.d.ts +9 -9
  242. package/dist/esm/services/log-event-service.js +52 -52
  243. package/dist/esm/services/metric-event-service.d.ts +9 -9
  244. package/dist/esm/services/metric-event-service.js +45 -45
  245. package/dist/esm/types/api-response.d.ts +6 -6
  246. package/dist/esm/types/api-response.js +1 -1
  247. package/dist/esm/types/index.d.ts +1 -1
  248. package/dist/esm/types/index.js +1 -1
  249. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  250. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  251. package/dist/esm/types/internal-events/index.d.ts +1 -1
  252. package/dist/esm/types/internal-events/index.js +1 -1
  253. package/package.json +6 -6
  254. package/dist/cjs/services/db/destinations-service.js.map +0 -1
  255. package/dist/esm/services/db/destinations-service.js.map +0 -1
@@ -1,61 +1,61 @@
1
- import { DynamoDbClient, ShopifyClient } from '../../clients';
2
- import { compressJSON, decompressJSON, getCurrentTimestamp } from '../../libs';
3
- import { DateTime } from 'luxon';
4
- import { Logger } from '../../helpers';
5
- export class ShopifyProductsCacheDbService {
6
- TABLE_NAME;
7
- KEY_NAME;
8
- constructor(tableName, keyName) {
9
- this.TABLE_NAME = tableName;
10
- this.KEY_NAME = keyName;
11
- }
12
- getShopifyProductCache = async (pixelId, productId) => {
13
- try {
14
- const cachedProduct = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, `${pixelId}_${productId}`);
15
- if (cachedProduct) {
16
- cachedProduct.product = decompressJSON(cachedProduct.productCompressed);
17
- return cachedProduct;
18
- }
19
- return null;
20
- }
21
- catch (error) {
22
- Logger.error('Failed to get shopify product from cache', { keyName: this.KEY_NAME, pixelId, productId, error });
23
- return null;
24
- }
25
- };
26
- putShopifyProductCache = async (pixelId, productId, product, ttlInDays) => {
27
- const ttl = ttlInDays || 7;
28
- const expiresAt = DateTime.now().plus({ days: ttl }).toSeconds();
29
- const shopifyProductCache = {
30
- pixelId_productId: `${pixelId}_${productId}`,
31
- pixelId,
32
- productId,
33
- productCompressed: compressJSON(product),
34
- createdAt: getCurrentTimestamp(),
35
- expiresAt
36
- };
37
- return await DynamoDbClient.safePut(this.TABLE_NAME, shopifyProductCache);
38
- };
39
- lookupShopifyProductCache = async (pixelId, shop, accessToken, productId) => {
40
- try {
41
- const cachedShopifyProduct = await this.getShopifyProductCache(pixelId, productId);
42
- if (cachedShopifyProduct) {
43
- return cachedShopifyProduct.product;
44
- }
45
- else {
46
- const productRes = await ShopifyClient.getProduct(shop, accessToken, productId);
47
- if (productRes.status === 200 && productRes?.data?.product) {
48
- const product = productRes.data.product;
49
- await this.putShopifyProductCache(pixelId, productId, product);
50
- return product;
51
- }
52
- }
53
- return null;
54
- }
55
- catch (error) {
56
- Logger.error('Failed to lookup shopify product cache', { error });
57
- return null;
58
- }
59
- };
60
- }
1
+ import { DynamoDbClient, ShopifyClient } from '../../clients';
2
+ import { compressJSON, decompressJSON, getCurrentTimestamp } from '../../libs';
3
+ import { DateTime } from 'luxon';
4
+ import { Logger } from '../../helpers';
5
+ export class ShopifyProductsCacheDbService {
6
+ TABLE_NAME;
7
+ KEY_NAME;
8
+ constructor(tableName, keyName) {
9
+ this.TABLE_NAME = tableName;
10
+ this.KEY_NAME = keyName;
11
+ }
12
+ getShopifyProductCache = async (pixelId, productId) => {
13
+ try {
14
+ const cachedProduct = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, `${pixelId}_${productId}`);
15
+ if (cachedProduct) {
16
+ cachedProduct.product = decompressJSON(cachedProduct.productCompressed);
17
+ return cachedProduct;
18
+ }
19
+ return null;
20
+ }
21
+ catch (error) {
22
+ Logger.error('Failed to get shopify product from cache', { keyName: this.KEY_NAME, pixelId, productId, error });
23
+ return null;
24
+ }
25
+ };
26
+ putShopifyProductCache = async (pixelId, productId, product, ttlInDays) => {
27
+ const ttl = ttlInDays || 7;
28
+ const expiresAt = DateTime.now().plus({ days: ttl }).toSeconds();
29
+ const shopifyProductCache = {
30
+ pixelId_productId: `${pixelId}_${productId}`,
31
+ pixelId,
32
+ productId,
33
+ productCompressed: compressJSON(product),
34
+ createdAt: getCurrentTimestamp(),
35
+ expiresAt
36
+ };
37
+ return await DynamoDbClient.safePut(this.TABLE_NAME, shopifyProductCache);
38
+ };
39
+ lookupShopifyProductCache = async (pixelId, shop, accessToken, productId) => {
40
+ try {
41
+ const cachedShopifyProduct = await this.getShopifyProductCache(pixelId, productId);
42
+ if (cachedShopifyProduct) {
43
+ return cachedShopifyProduct.product;
44
+ }
45
+ else {
46
+ const productRes = await ShopifyClient.getProduct(shop, accessToken, productId);
47
+ if (productRes.status === 200 && productRes?.data?.product) {
48
+ const product = productRes.data.product;
49
+ await this.putShopifyProductCache(pixelId, productId, product);
50
+ return product;
51
+ }
52
+ }
53
+ return null;
54
+ }
55
+ catch (error) {
56
+ Logger.error('Failed to lookup shopify product cache', { error });
57
+ return null;
58
+ }
59
+ };
60
+ }
61
61
  //# sourceMappingURL=shopify-products-cache-db-service.js.map
@@ -1,20 +1,20 @@
1
- import { AdClickInfo, TrackingEvent, TrackingEventRecord } from '@adtrackify/at-tracking-event-types';
2
- export interface LatestSessionResponseData {
3
- pixelId?: string;
4
- identityId?: string;
5
- sessionId?: string;
6
- click?: AdClickInfo;
7
- }
8
- export declare class TrackingEventsDbService {
9
- TABLE_NAME: string;
10
- KEY_NAME: string;
11
- constructor(tableName: string);
12
- private processResult;
13
- private processResults;
14
- getLatestSessionByIpAddressUserAgent: (indexName: string, ipAddressUserAgent: string, hostname?: string) => Promise<LatestSessionResponseData>;
15
- getTrackingEventsByPixelIdEventName: (indexName: string, pixelId: string, eventName: string, limit?: number, afterCollectedAt?: string) => Promise<TrackingEventRecord[]>;
16
- getTrackingEventCountByPixelId: (indexName: string, pixelId: string, offsetInMinutes?: number) => Promise<number>;
17
- getTrackingEvent: (eventId: string) => Promise<TrackingEventRecord | null>;
18
- buildTrackingEventRecord: (trackingEvent: TrackingEvent, ttlInDays?: number) => TrackingEventRecord;
19
- putTrackingEvent: (trackingEvent: TrackingEvent, ttlInDays?: number) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null | undefined>;
20
- }
1
+ import { AdClickInfo, TrackingEvent, TrackingEventRecord } from '@adtrackify/at-tracking-event-types';
2
+ export interface LatestSessionResponseData {
3
+ pixelId?: string;
4
+ identityId?: string;
5
+ sessionId?: string;
6
+ click?: AdClickInfo;
7
+ }
8
+ export declare class TrackingEventsDbService {
9
+ TABLE_NAME: string;
10
+ KEY_NAME: string;
11
+ constructor(tableName: string);
12
+ private processResult;
13
+ private processResults;
14
+ getLatestSessionByIpAddressUserAgent: (indexName: string, ipAddressUserAgent: string, hostname?: string) => Promise<LatestSessionResponseData>;
15
+ getTrackingEventsByPixelIdEventName: (indexName: string, pixelId: string, eventName: string, limit?: number, afterCollectedAt?: string) => Promise<TrackingEventRecord[]>;
16
+ getTrackingEventCountByPixelId: (indexName: string, pixelId: string, offsetInMinutes?: number) => Promise<number>;
17
+ getTrackingEvent: (eventId: string) => Promise<TrackingEventRecord | null>;
18
+ buildTrackingEventRecord: (trackingEvent: TrackingEvent, ttlInDays?: number) => TrackingEventRecord;
19
+ putTrackingEvent: (trackingEvent: TrackingEvent, ttlInDays?: number) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null | undefined>;
20
+ }
@@ -1,159 +1,159 @@
1
- import { DynamoDbClient } from '../../clients';
2
- import { Logger } from '../../helpers';
3
- import { DateTime } from 'luxon';
4
- import { compressJSON, decompressJSON } from '../../libs';
5
- export class TrackingEventsDbService {
6
- TABLE_NAME;
7
- KEY_NAME = 'eventId';
8
- constructor(tableName) {
9
- this.TABLE_NAME = tableName;
10
- }
11
- processResult = (trackingEventRecord) => {
12
- if (trackingEventRecord?.trackingEventCompressed) {
13
- const trackingEventDecompressed = decompressJSON(trackingEventRecord.trackingEventCompressed);
14
- if (trackingEventDecompressed) {
15
- trackingEventRecord.trackingEvent = trackingEventDecompressed;
16
- delete trackingEventRecord?.trackingEventCompressed;
17
- }
18
- }
19
- return trackingEventRecord;
20
- };
21
- processResults = (trackingEventRecords) => {
22
- return trackingEventRecords.map((trackingEventRecord) => this.processResult(trackingEventRecord));
23
- };
24
- getLatestSessionByIpAddressUserAgent = async (indexName, ipAddressUserAgent, hostname) => {
25
- try {
26
- const params = {
27
- TableName: this.TABLE_NAME,
28
- IndexName: indexName,
29
- KeyConditionExpression: 'ipAddressUserAgent = :ipAddressUserAgent',
30
- ExpressionAttributeValues: {
31
- ':ipAddressUserAgent': ipAddressUserAgent,
32
- },
33
- ScanIndexForward: false
34
- };
35
- const results = await DynamoDbClient.query(params);
36
- let trackingEventRecord;
37
- if (results?.Items && results.Items.length > 0) {
38
- trackingEventRecord = results.Items.find((item) => {
39
- const _trackingEvent = item.trackingEvent;
40
- const _hostname = item?.hostname;
41
- if (hostname && _hostname === hostname && _trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
42
- return true;
43
- }
44
- else if (_trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
45
- return true;
46
- }
47
- else {
48
- return false;
49
- }
50
- });
51
- }
52
- if (trackingEventRecord) {
53
- trackingEventRecord = this.processResult(trackingEventRecord);
54
- const trackingEvent = trackingEventRecord.trackingEvent;
55
- return {
56
- pixelId: trackingEvent?.pixelId,
57
- identityId: trackingEvent.context?.identity?.identityId,
58
- sessionId: trackingEvent.context?.properties?.sessionId,
59
- click: trackingEvent.context?.properties?.click
60
- };
61
- }
62
- else {
63
- return {};
64
- }
65
- }
66
- catch (e) {
67
- Logger.error('Failed to getLastTrackingEventByIpAddressUserAgent', { e });
68
- return {};
69
- }
70
- };
71
- getTrackingEventsByPixelIdEventName = async (indexName, pixelId, eventName, limit, afterCollectedAt) => {
72
- const query = {
73
- TableName: this.TABLE_NAME,
74
- IndexName: indexName,
75
- KeyConditionExpression: 'pixelIdEventName = :pixelIdEventName',
76
- ExpressionAttributeValues: {
77
- ':pixelIdEventName': `${pixelId}_${eventName}`,
78
- },
79
- ScanIndexForward: false,
80
- };
81
- if (limit) {
82
- query.Limit = limit;
83
- }
84
- if (afterCollectedAt) {
85
- query.KeyConditionExpression += ' and collectedAt > :collectedAt';
86
- query.ExpressionAttributeValues[':collectedAt'] = afterCollectedAt;
87
- }
88
- const result = await DynamoDbClient.query(query);
89
- const trackingEventRecords = (result?.Items ?? []);
90
- return this.processResults(trackingEventRecords);
91
- };
92
- getTrackingEventCountByPixelId = async (indexName, pixelId, offsetInMinutes = 30) => {
93
- try {
94
- const pastDateTime = DateTime.now().minus({ minutes: offsetInMinutes }).toISO();
95
- const params = {
96
- TableName: this.TABLE_NAME,
97
- IndexName: indexName,
98
- KeyConditionExpression: 'pixelId = :pixelId and collectedAt > :collectedAt',
99
- ExpressionAttributeValues: {
100
- ':pixelId': pixelId,
101
- ':collectedAt': pastDateTime
102
- }
103
- };
104
- const results = await DynamoDbClient.query(params);
105
- return results?.Items?.length ?? 0;
106
- }
107
- catch (e) {
108
- Logger.error('Failed to getTrackingEventCountByPixelId', { e });
109
- return 0;
110
- }
111
- };
112
- getTrackingEvent = async (eventId) => {
113
- try {
114
- let trackingEventRecord = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, eventId);
115
- trackingEventRecord = this.processResult(trackingEventRecord);
116
- return trackingEventRecord;
117
- }
118
- catch (e) {
119
- Logger.error('Failed to getTrackingEvent', { e });
120
- return null;
121
- }
122
- };
123
- buildTrackingEventRecord = (trackingEvent, ttlInDays) => {
124
- const trackingEventCopy = JSON.parse(JSON.stringify(trackingEvent));
125
- delete trackingEventCopy?.context?.properties?.enrichment?.ipLookupResponse;
126
- const pageURL = trackingEventCopy?.context?.properties?.page?.url;
127
- const parsedPageURL = new URL(pageURL);
128
- const hostname = parsedPageURL?.hostname;
129
- const trackingEventsTableTTLDays = ttlInDays || 15;
130
- const expiredAt = DateTime.now().plus({ days: trackingEventsTableTTLDays }).toSeconds();
131
- const trackingEventRecord = {
132
- eventId: trackingEventCopy.id,
133
- eventName: trackingEventCopy.name,
134
- pixelId: trackingEventCopy?.pixelId,
135
- pixelIdEventName: `${trackingEventCopy.pixelId}_${trackingEventCopy.name}`,
136
- ipAddressUserAgent: `${trackingEventCopy.context?.properties?.ipAddress}_${trackingEventCopy.context?.properties?.userAgent}`,
137
- hostname,
138
- identityId: trackingEventCopy?.context?.identity?.identityId,
139
- sessionId: trackingEventCopy?.context?.properties?.sessionId,
140
- collectedAt: trackingEventCopy.collectedAt,
141
- expiredAt,
142
- };
143
- const trackingEventCompressed = compressJSON(trackingEventCopy);
144
- if (trackingEventCompressed) {
145
- trackingEventRecord.trackingEventCompressed = trackingEventCompressed;
146
- }
147
- else {
148
- trackingEventRecord.trackingEvent = trackingEventCopy;
149
- }
150
- return trackingEventRecord;
151
- };
152
- putTrackingEvent = async (trackingEvent, ttlInDays) => {
153
- if (!trackingEvent.context?.properties?.ipAddress || !trackingEvent.context?.properties?.userAgent)
154
- return;
155
- const trackingEventRecord = this.buildTrackingEventRecord(trackingEvent, ttlInDays);
156
- return await DynamoDbClient.safePut(this.TABLE_NAME, trackingEventRecord);
157
- };
158
- }
1
+ import { DynamoDbClient } from '../../clients';
2
+ import { Logger } from '../../helpers';
3
+ import { DateTime } from 'luxon';
4
+ import { compressJSON, decompressJSON } from '../../libs';
5
+ export class TrackingEventsDbService {
6
+ TABLE_NAME;
7
+ KEY_NAME = 'eventId';
8
+ constructor(tableName) {
9
+ this.TABLE_NAME = tableName;
10
+ }
11
+ processResult = (trackingEventRecord) => {
12
+ if (trackingEventRecord?.trackingEventCompressed) {
13
+ const trackingEventDecompressed = decompressJSON(trackingEventRecord.trackingEventCompressed);
14
+ if (trackingEventDecompressed) {
15
+ trackingEventRecord.trackingEvent = trackingEventDecompressed;
16
+ delete trackingEventRecord?.trackingEventCompressed;
17
+ }
18
+ }
19
+ return trackingEventRecord;
20
+ };
21
+ processResults = (trackingEventRecords) => {
22
+ return trackingEventRecords.map((trackingEventRecord) => this.processResult(trackingEventRecord));
23
+ };
24
+ getLatestSessionByIpAddressUserAgent = async (indexName, ipAddressUserAgent, hostname) => {
25
+ try {
26
+ const params = {
27
+ TableName: this.TABLE_NAME,
28
+ IndexName: indexName,
29
+ KeyConditionExpression: 'ipAddressUserAgent = :ipAddressUserAgent',
30
+ ExpressionAttributeValues: {
31
+ ':ipAddressUserAgent': ipAddressUserAgent,
32
+ },
33
+ ScanIndexForward: false
34
+ };
35
+ const results = await DynamoDbClient.query(params);
36
+ let trackingEventRecord;
37
+ if (results?.Items && results.Items.length > 0) {
38
+ trackingEventRecord = results.Items.find((item) => {
39
+ const _trackingEvent = item.trackingEvent;
40
+ const _hostname = item?.hostname;
41
+ if (hostname && _hostname === hostname && _trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
42
+ return true;
43
+ }
44
+ else if (_trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
45
+ return true;
46
+ }
47
+ else {
48
+ return false;
49
+ }
50
+ });
51
+ }
52
+ if (trackingEventRecord) {
53
+ trackingEventRecord = this.processResult(trackingEventRecord);
54
+ const trackingEvent = trackingEventRecord.trackingEvent;
55
+ return {
56
+ pixelId: trackingEvent?.pixelId,
57
+ identityId: trackingEvent.context?.identity?.identityId,
58
+ sessionId: trackingEvent.context?.properties?.sessionId,
59
+ click: trackingEvent.context?.properties?.click
60
+ };
61
+ }
62
+ else {
63
+ return {};
64
+ }
65
+ }
66
+ catch (e) {
67
+ Logger.error('Failed to getLastTrackingEventByIpAddressUserAgent', { e });
68
+ return {};
69
+ }
70
+ };
71
+ getTrackingEventsByPixelIdEventName = async (indexName, pixelId, eventName, limit, afterCollectedAt) => {
72
+ const query = {
73
+ TableName: this.TABLE_NAME,
74
+ IndexName: indexName,
75
+ KeyConditionExpression: 'pixelIdEventName = :pixelIdEventName',
76
+ ExpressionAttributeValues: {
77
+ ':pixelIdEventName': `${pixelId}_${eventName}`,
78
+ },
79
+ ScanIndexForward: false,
80
+ };
81
+ if (limit) {
82
+ query.Limit = limit;
83
+ }
84
+ if (afterCollectedAt) {
85
+ query.KeyConditionExpression += ' and collectedAt > :collectedAt';
86
+ query.ExpressionAttributeValues[':collectedAt'] = afterCollectedAt;
87
+ }
88
+ const result = await DynamoDbClient.query(query);
89
+ const trackingEventRecords = (result?.Items ?? []);
90
+ return this.processResults(trackingEventRecords);
91
+ };
92
+ getTrackingEventCountByPixelId = async (indexName, pixelId, offsetInMinutes = 30) => {
93
+ try {
94
+ const pastDateTime = DateTime.now().minus({ minutes: offsetInMinutes }).toISO();
95
+ const params = {
96
+ TableName: this.TABLE_NAME,
97
+ IndexName: indexName,
98
+ KeyConditionExpression: 'pixelId = :pixelId and collectedAt > :collectedAt',
99
+ ExpressionAttributeValues: {
100
+ ':pixelId': pixelId,
101
+ ':collectedAt': pastDateTime
102
+ }
103
+ };
104
+ const results = await DynamoDbClient.query(params);
105
+ return results?.Items?.length ?? 0;
106
+ }
107
+ catch (e) {
108
+ Logger.error('Failed to getTrackingEventCountByPixelId', { e });
109
+ return 0;
110
+ }
111
+ };
112
+ getTrackingEvent = async (eventId) => {
113
+ try {
114
+ let trackingEventRecord = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, eventId);
115
+ trackingEventRecord = this.processResult(trackingEventRecord);
116
+ return trackingEventRecord;
117
+ }
118
+ catch (e) {
119
+ Logger.error('Failed to getTrackingEvent', { e });
120
+ return null;
121
+ }
122
+ };
123
+ buildTrackingEventRecord = (trackingEvent, ttlInDays) => {
124
+ const trackingEventCopy = JSON.parse(JSON.stringify(trackingEvent));
125
+ delete trackingEventCopy?.context?.properties?.enrichment?.ipLookupResponse;
126
+ const pageURL = trackingEventCopy?.context?.properties?.page?.url;
127
+ const parsedPageURL = new URL(pageURL);
128
+ const hostname = parsedPageURL?.hostname;
129
+ const trackingEventsTableTTLDays = ttlInDays || 15;
130
+ const expiredAt = DateTime.now().plus({ days: trackingEventsTableTTLDays }).toSeconds();
131
+ const trackingEventRecord = {
132
+ eventId: trackingEventCopy.id,
133
+ eventName: trackingEventCopy.name,
134
+ pixelId: trackingEventCopy?.pixelId,
135
+ pixelIdEventName: `${trackingEventCopy.pixelId}_${trackingEventCopy.name}`,
136
+ ipAddressUserAgent: `${trackingEventCopy.context?.properties?.ipAddress}_${trackingEventCopy.context?.properties?.userAgent}`,
137
+ hostname,
138
+ identityId: trackingEventCopy?.context?.identity?.identityId,
139
+ sessionId: trackingEventCopy?.context?.properties?.sessionId,
140
+ collectedAt: trackingEventCopy.collectedAt,
141
+ expiredAt,
142
+ };
143
+ const trackingEventCompressed = compressJSON(trackingEventCopy);
144
+ if (trackingEventCompressed) {
145
+ trackingEventRecord.trackingEventCompressed = trackingEventCompressed;
146
+ }
147
+ else {
148
+ trackingEventRecord.trackingEvent = trackingEventCopy;
149
+ }
150
+ return trackingEventRecord;
151
+ };
152
+ putTrackingEvent = async (trackingEvent, ttlInDays) => {
153
+ if (!trackingEvent.context?.properties?.ipAddress || !trackingEvent.context?.properties?.userAgent)
154
+ return;
155
+ const trackingEventRecord = this.buildTrackingEventRecord(trackingEvent, ttlInDays);
156
+ return await DynamoDbClient.safePut(this.TABLE_NAME, trackingEventRecord);
157
+ };
158
+ }
159
159
  //# sourceMappingURL=tracking-events-db-service.js.map
@@ -1,9 +1,9 @@
1
- import { EventBridgeClient } from '../clients/generic/eventbridge-client.js';
2
- import { Message, TemplatedMessage } from 'postmark';
3
- export declare class EventBridgeIntegrationService {
4
- eventBridgeClient: EventBridgeClient;
5
- EVENT_BUS_NAME: string;
6
- constructor(eventBusName: string);
7
- sendPostmarkEmailEvent: (eventSource: string, postmarkMessage: Message, postmarkServerToken: string) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
8
- sendPostmarkTemplatedEmailEvent: (eventSource: string, postmarkMessage: TemplatedMessage, postmarkServerToken: string) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
9
- }
1
+ import { EventBridgeClient } from '../clients/generic/eventbridge-client.js';
2
+ import { Message, TemplatedMessage } from 'postmark';
3
+ export declare class EventBridgeIntegrationService {
4
+ eventBridgeClient: EventBridgeClient;
5
+ EVENT_BUS_NAME: string;
6
+ constructor(eventBusName: string);
7
+ sendPostmarkEmailEvent: (eventSource: string, postmarkMessage: Message, postmarkServerToken: string) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
8
+ sendPostmarkTemplatedEmailEvent: (eventSource: string, postmarkMessage: TemplatedMessage, postmarkServerToken: string) => Promise<import("@aws-sdk/client-eventbridge").PutEventsCommandOutput>;
9
+ }
@@ -1,25 +1,25 @@
1
- import { EventBridgeClient } from '../clients/generic/eventbridge-client.js';
2
- import { ADTRACKIFY_EVENT_BRIDGE_EVENTS, PostmarkRequestType } from '../types/internal-events/event-detail-types.js';
3
- export class EventBridgeIntegrationService {
4
- eventBridgeClient;
5
- EVENT_BUS_NAME;
6
- constructor(eventBusName) {
7
- this.eventBridgeClient = new EventBridgeClient(eventBusName);
8
- this.EVENT_BUS_NAME = eventBusName;
9
- }
10
- sendPostmarkEmailEvent = async (eventSource, postmarkMessage, postmarkServerToken) => {
11
- return await this.eventBridgeClient.buildAndSendEvent(eventSource, ADTRACKIFY_EVENT_BRIDGE_EVENTS.SEND_POSTMARK_EMAIL, {
12
- postmarkMessage,
13
- postmarkRequestType: PostmarkRequestType.SINGLE_EMAIL,
14
- postmarkServerToken
15
- });
16
- };
17
- sendPostmarkTemplatedEmailEvent = async (eventSource, postmarkMessage, postmarkServerToken) => {
18
- return await this.eventBridgeClient.buildAndSendEvent(eventSource, ADTRACKIFY_EVENT_BRIDGE_EVENTS.SEND_POSTMARK_EMAIL, {
19
- postmarkMessage,
20
- postmarkRequestType: PostmarkRequestType.TEMPLATE_EMAIL,
21
- postmarkServerToken
22
- });
23
- };
24
- }
1
+ import { EventBridgeClient } from '../clients/generic/eventbridge-client.js';
2
+ import { ADTRACKIFY_EVENT_BRIDGE_EVENTS, PostmarkRequestType } from '../types/internal-events/event-detail-types.js';
3
+ export class EventBridgeIntegrationService {
4
+ eventBridgeClient;
5
+ EVENT_BUS_NAME;
6
+ constructor(eventBusName) {
7
+ this.eventBridgeClient = new EventBridgeClient(eventBusName);
8
+ this.EVENT_BUS_NAME = eventBusName;
9
+ }
10
+ sendPostmarkEmailEvent = async (eventSource, postmarkMessage, postmarkServerToken) => {
11
+ return await this.eventBridgeClient.buildAndSendEvent(eventSource, ADTRACKIFY_EVENT_BRIDGE_EVENTS.SEND_POSTMARK_EMAIL, {
12
+ postmarkMessage,
13
+ postmarkRequestType: PostmarkRequestType.SINGLE_EMAIL,
14
+ postmarkServerToken
15
+ });
16
+ };
17
+ sendPostmarkTemplatedEmailEvent = async (eventSource, postmarkMessage, postmarkServerToken) => {
18
+ return await this.eventBridgeClient.buildAndSendEvent(eventSource, ADTRACKIFY_EVENT_BRIDGE_EVENTS.SEND_POSTMARK_EMAIL, {
19
+ postmarkMessage,
20
+ postmarkRequestType: PostmarkRequestType.TEMPLATE_EMAIL,
21
+ postmarkServerToken
22
+ });
23
+ };
24
+ }
25
25
  //# sourceMappingURL=eventbridge-integration-service.js.map
@@ -1,5 +1,5 @@
1
- export * from './eventbridge-integration-service.js';
2
- export * from './ipdata-lookup-service.js';
3
- export * from './log-event-service.js';
4
- export * from './metric-event-service.js';
5
- export * from './db';
1
+ export * from './eventbridge-integration-service.js';
2
+ export * from './ipdata-lookup-service.js';
3
+ export * from './log-event-service.js';
4
+ export * from './metric-event-service.js';
5
+ export * from './db';
@@ -1,6 +1,6 @@
1
- export * from './eventbridge-integration-service.js';
2
- export * from './ipdata-lookup-service.js';
3
- export * from './log-event-service.js';
4
- export * from './metric-event-service.js';
5
- export * from './db';
1
+ export * from './eventbridge-integration-service.js';
2
+ export * from './ipdata-lookup-service.js';
3
+ export * from './log-event-service.js';
4
+ export * from './metric-event-service.js';
5
+ export * from './db';
6
6
  //# sourceMappingURL=index.js.map
@@ -1,17 +1,17 @@
1
- import { IPDataResponse } from '@adtrackify/at-tracking-event-types';
2
- import { CacheLambdaClient } from '../clients';
3
- export interface IPLookupTableRecord {
4
- ipAddress: string;
5
- lookupResponse: IPDataResponse | null;
6
- createdAt: string;
7
- updatedAt: string;
8
- expiresAt?: number;
9
- }
10
- export declare class IpDataLookupService {
11
- private cacheLambdaFunctionArn;
12
- cacheLambdaClient: CacheLambdaClient;
13
- constructor(cacheLambdaFunctionArn: string);
14
- getLookupApi: (ipAddress: string) => Promise<IPDataResponse | null>;
15
- getIpCache: (ipAddress: string) => Promise<import("../clients").CacheRequestCommandResponse | undefined>;
16
- lookupIP: (ipAddress: string) => Promise<IPDataResponse | null>;
17
- }
1
+ import { IPDataResponse } from '@adtrackify/at-tracking-event-types';
2
+ import { CacheLambdaClient } from '../clients';
3
+ export interface IPLookupTableRecord {
4
+ ipAddress: string;
5
+ lookupResponse: IPDataResponse | null;
6
+ createdAt: string;
7
+ updatedAt: string;
8
+ expiresAt?: number;
9
+ }
10
+ export declare class IpDataLookupService {
11
+ private cacheLambdaFunctionArn;
12
+ cacheLambdaClient: CacheLambdaClient;
13
+ constructor(cacheLambdaFunctionArn: string);
14
+ getLookupApi: (ipAddress: string) => Promise<IPDataResponse | null>;
15
+ getIpCache: (ipAddress: string) => Promise<import("../clients").CacheRequestCommandResponse | undefined>;
16
+ lookupIP: (ipAddress: string) => Promise<IPDataResponse | null>;
17
+ }