@adtrackify/at-service-common 3.0.82 → 3.0.83

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 (247) 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 -3
  54. package/dist/cjs/helpers/identity-cache-helper.js +66 -66
  55. package/dist/cjs/helpers/index.d.ts +5 -5
  56. package/dist/cjs/helpers/index.js +21 -21
  57. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  58. package/dist/cjs/helpers/input-validation-helper.js +23 -23
  59. package/dist/cjs/helpers/logging-helper.d.ts +16 -15
  60. package/dist/cjs/helpers/logging-helper.js +84 -80
  61. package/dist/cjs/helpers/logging-helper.js.map +1 -1
  62. package/dist/cjs/helpers/response-helper.d.ts +15 -15
  63. package/dist/cjs/helpers/response-helper.js +42 -42
  64. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  65. package/dist/cjs/helpers/shopify-helper.js +28 -28
  66. package/dist/cjs/index.d.ts +5 -5
  67. package/dist/cjs/index.js +21 -21
  68. package/dist/cjs/libs/clickId-parser.d.ts +23 -23
  69. package/dist/cjs/libs/clickId-parser.js +49 -49
  70. package/dist/cjs/libs/compression.d.ts +2 -2
  71. package/dist/cjs/libs/compression.js +33 -33
  72. package/dist/cjs/libs/crypto.d.ts +1 -1
  73. package/dist/cjs/libs/crypto.js +12 -12
  74. package/dist/cjs/libs/dates.d.ts +6 -6
  75. package/dist/cjs/libs/dates.js +31 -31
  76. package/dist/cjs/libs/http-error.d.ts +21 -21
  77. package/dist/cjs/libs/http-error.js +59 -59
  78. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  79. package/dist/cjs/libs/http-status-codes.js +62 -62
  80. package/dist/cjs/libs/index.d.ts +9 -9
  81. package/dist/cjs/libs/index.js +25 -25
  82. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  83. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  84. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  85. package/dist/cjs/libs/referrer-parser/referrer-data.js +4712 -4712
  86. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  87. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +128 -128
  88. package/dist/cjs/libs/url.d.ts +1 -1
  89. package/dist/cjs/libs/url.js +13 -13
  90. package/dist/cjs/services/db/destinations-service.d.ts +7 -7
  91. package/dist/cjs/services/db/destinations-service.js +35 -35
  92. package/dist/cjs/services/db/identity-cache-db-service.d.ts +24 -24
  93. package/dist/cjs/services/db/identity-cache-db-service.js +233 -233
  94. package/dist/cjs/services/db/index.d.ts +7 -7
  95. package/dist/cjs/services/db/index.js +23 -23
  96. package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
  97. package/dist/cjs/services/db/log-events-db-service.js +172 -172
  98. package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +9 -9
  99. package/dist/cjs/services/db/purchased-contacts-db-service.js +38 -38
  100. package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +7 -7
  101. package/dist/cjs/services/db/shopify-app-installs-db-service.js +47 -47
  102. package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +9 -9
  103. package/dist/cjs/services/db/shopify-products-cache-db-service.js +64 -64
  104. package/dist/cjs/services/db/tracking-events-db-service.d.ts +20 -20
  105. package/dist/cjs/services/db/tracking-events-db-service.js +162 -162
  106. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  107. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  108. package/dist/cjs/services/index.d.ts +5 -5
  109. package/dist/cjs/services/index.js +21 -21
  110. package/dist/cjs/services/ipdata-lookup-service.d.ts +17 -17
  111. package/dist/cjs/services/ipdata-lookup-service.js +71 -71
  112. package/dist/cjs/services/log-event-service.d.ts +9 -9
  113. package/dist/cjs/services/log-event-service.js +56 -56
  114. package/dist/cjs/services/metric-event-service.d.ts +9 -9
  115. package/dist/cjs/services/metric-event-service.js +49 -49
  116. package/dist/cjs/types/api-response.d.ts +6 -6
  117. package/dist/cjs/types/api-response.js +2 -2
  118. package/dist/cjs/types/index.d.ts +1 -1
  119. package/dist/cjs/types/index.js +17 -17
  120. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  121. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  122. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  123. package/dist/cjs/types/internal-events/index.js +17 -17
  124. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
  125. package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +525 -525
  126. package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
  127. package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
  128. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  129. package/dist/esm/__tests__/s3-client/s3-client.spec.js +24 -24
  130. package/dist/esm/clients/generic/cognito-client.d.ts +20 -20
  131. package/dist/esm/clients/generic/cognito-client.js +159 -159
  132. package/dist/esm/clients/generic/dynamodb-client.d.ts +17 -17
  133. package/dist/esm/clients/generic/dynamodb-client.js +163 -163
  134. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  135. package/dist/esm/clients/generic/eventbridge-client.js +45 -45
  136. package/dist/esm/clients/generic/http-client.d.ts +88 -88
  137. package/dist/esm/clients/generic/http-client.js +48 -48
  138. package/dist/esm/clients/generic/index.d.ts +10 -10
  139. package/dist/esm/clients/generic/index.js +10 -10
  140. package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
  141. package/dist/esm/clients/generic/lambda-invoke-client.js +31 -31
  142. package/dist/esm/clients/generic/location-client.d.ts +8 -8
  143. package/dist/esm/clients/generic/location-client.js +27 -27
  144. package/dist/esm/clients/generic/redis-client.d.ts +17 -17
  145. package/dist/esm/clients/generic/redis-client.js +110 -110
  146. package/dist/esm/clients/generic/s3-client.d.ts +16 -16
  147. package/dist/esm/clients/generic/s3-client.js +106 -106
  148. package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
  149. package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
  150. package/dist/esm/clients/generic/sqs-client.d.ts +14 -14
  151. package/dist/esm/clients/generic/sqs-client.js +32 -32
  152. package/dist/esm/clients/index.d.ts +3 -3
  153. package/dist/esm/clients/index.js +3 -3
  154. package/dist/esm/clients/internal-api/accounts-client.d.ts +112 -112
  155. package/dist/esm/clients/internal-api/accounts-client.js +113 -113
  156. package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +23 -23
  157. package/dist/esm/clients/internal-api/cache-lambda-client.js +55 -55
  158. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  159. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  160. package/dist/esm/clients/internal-api/destinations-client.d.ts +29 -29
  161. package/dist/esm/clients/internal-api/destinations-client.js +50 -50
  162. package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
  163. package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
  164. package/dist/esm/clients/internal-api/identity-client.d.ts +17 -17
  165. package/dist/esm/clients/internal-api/identity-client.js +71 -71
  166. package/dist/esm/clients/internal-api/index.d.ts +8 -8
  167. package/dist/esm/clients/internal-api/index.js +8 -8
  168. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +34 -34
  169. package/dist/esm/clients/internal-api/shopify-app-install-client.js +56 -56
  170. package/dist/esm/clients/internal-api/users-auth-client.d.ts +31 -31
  171. package/dist/esm/clients/internal-api/users-auth-client.js +88 -88
  172. package/dist/esm/clients/third-party/index.d.ts +1 -1
  173. package/dist/esm/clients/third-party/index.js +1 -1
  174. package/dist/esm/clients/third-party/shopify-client.d.ts +198 -198
  175. package/dist/esm/clients/third-party/shopify-client.js +146 -146
  176. package/dist/esm/helpers/identity-cache-helper.d.ts +3 -3
  177. package/dist/esm/helpers/identity-cache-helper.js +62 -62
  178. package/dist/esm/helpers/index.d.ts +5 -5
  179. package/dist/esm/helpers/index.js +5 -5
  180. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  181. package/dist/esm/helpers/input-validation-helper.js +19 -19
  182. package/dist/esm/helpers/logging-helper.d.ts +16 -15
  183. package/dist/esm/helpers/logging-helper.js +56 -53
  184. package/dist/esm/helpers/logging-helper.js.map +1 -1
  185. package/dist/esm/helpers/response-helper.d.ts +15 -15
  186. package/dist/esm/helpers/response-helper.js +36 -36
  187. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  188. package/dist/esm/helpers/shopify-helper.js +23 -23
  189. package/dist/esm/index.d.ts +5 -5
  190. package/dist/esm/index.js +5 -5
  191. package/dist/esm/libs/clickId-parser.d.ts +23 -23
  192. package/dist/esm/libs/clickId-parser.js +45 -45
  193. package/dist/esm/libs/compression.d.ts +2 -2
  194. package/dist/esm/libs/compression.js +25 -25
  195. package/dist/esm/libs/crypto.d.ts +1 -1
  196. package/dist/esm/libs/crypto.js +5 -5
  197. package/dist/esm/libs/dates.d.ts +6 -6
  198. package/dist/esm/libs/dates.js +22 -22
  199. package/dist/esm/libs/http-error.d.ts +21 -21
  200. package/dist/esm/libs/http-error.js +55 -55
  201. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  202. package/dist/esm/libs/http-status-codes.js +59 -59
  203. package/dist/esm/libs/index.d.ts +9 -9
  204. package/dist/esm/libs/index.js +9 -9
  205. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  206. package/dist/esm/libs/referrer-parser/index.js +2 -2
  207. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  208. package/dist/esm/libs/referrer-parser/referrer-data.js +4709 -4709
  209. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  210. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +121 -121
  211. package/dist/esm/libs/url.d.ts +1 -1
  212. package/dist/esm/libs/url.js +9 -9
  213. package/dist/esm/services/db/destinations-service.d.ts +7 -7
  214. package/dist/esm/services/db/destinations-service.js +31 -31
  215. package/dist/esm/services/db/identity-cache-db-service.d.ts +24 -24
  216. package/dist/esm/services/db/identity-cache-db-service.js +229 -229
  217. package/dist/esm/services/db/index.d.ts +7 -7
  218. package/dist/esm/services/db/index.js +7 -7
  219. package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
  220. package/dist/esm/services/db/log-events-db-service.js +168 -168
  221. package/dist/esm/services/db/purchased-contacts-db-service.d.ts +9 -9
  222. package/dist/esm/services/db/purchased-contacts-db-service.js +34 -34
  223. package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +7 -7
  224. package/dist/esm/services/db/shopify-app-installs-db-service.js +43 -43
  225. package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +9 -9
  226. package/dist/esm/services/db/shopify-products-cache-db-service.js +60 -60
  227. package/dist/esm/services/db/tracking-events-db-service.d.ts +20 -20
  228. package/dist/esm/services/db/tracking-events-db-service.js +158 -158
  229. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  230. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  231. package/dist/esm/services/index.d.ts +5 -5
  232. package/dist/esm/services/index.js +5 -5
  233. package/dist/esm/services/ipdata-lookup-service.d.ts +17 -17
  234. package/dist/esm/services/ipdata-lookup-service.js +67 -67
  235. package/dist/esm/services/log-event-service.d.ts +9 -9
  236. package/dist/esm/services/log-event-service.js +52 -52
  237. package/dist/esm/services/metric-event-service.d.ts +9 -9
  238. package/dist/esm/services/metric-event-service.js +45 -45
  239. package/dist/esm/types/api-response.d.ts +6 -6
  240. package/dist/esm/types/api-response.js +1 -1
  241. package/dist/esm/types/index.d.ts +1 -1
  242. package/dist/esm/types/index.js +1 -1
  243. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  244. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  245. package/dist/esm/types/internal-events/index.d.ts +1 -1
  246. package/dist/esm/types/internal-events/index.js +1 -1
  247. package/package.json +1 -1
@@ -1,173 +1,173 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LogEventsDbService = void 0;
4
- const clients_1 = require("../../clients");
5
- const luxon_1 = require("luxon");
6
- const libs_1 = require("../../libs");
7
- class LogEventsDbService {
8
- TABLE_NAME;
9
- constructor(tableName) {
10
- this.TABLE_NAME = tableName;
11
- }
12
- processResult = (logEventRecord) => {
13
- if (logEventRecord?.logEventCompressed) {
14
- const logEventDecompressed = (0, libs_1.decompressJSON)(logEventRecord.logEventCompressed);
15
- if (logEventDecompressed) {
16
- logEventRecord.logEvent = logEventDecompressed;
17
- delete logEventRecord.logEventCompressed;
18
- }
19
- }
20
- const destinationErrorType = logEventRecord?.logEvent?.data?.facebookErrorType;
21
- const destinationErrorMessage = logEventRecord?.logEvent?.data?.facebookErrorMessage;
22
- const destinationErrorCode = logEventRecord?.logEvent?.data?.facebookErrorCode;
23
- return {
24
- eventId: logEventRecord.eventId,
25
- eventName: logEventRecord.eventName,
26
- pixelId: logEventRecord.pixelId,
27
- source: logEventRecord.source,
28
- service: logEventRecord.service,
29
- logLevel: logEventRecord.logLevel,
30
- logGroup: logEventRecord.logGroup,
31
- destination: logEventRecord?.destination ?? logEventRecord?.logEvent?.data?.destination,
32
- destinationId: logEventRecord?.destinationId,
33
- trackingEventName: logEventRecord?.trackingEventName ?? logEventRecord?.logEvent?.data?.eventName,
34
- destinationTrackingEventName: logEventRecord?.destinationTrackingEventName ?? logEventRecord?.logEvent?.data?.destinationEventName,
35
- responseCode: logEventRecord?.responseCode,
36
- errorCode: logEventRecord?.errorCode ?? logEventRecord?.logEvent?.data?.code,
37
- errorMessage: logEventRecord?.errorMessage ?? this.buildLogEventErrorMessage(destinationErrorType, destinationErrorMessage, destinationErrorCode),
38
- sentAtEpoch: logEventRecord?.sentAtEpoch,
39
- collectedAt: logEventRecord?.collectedAt,
40
- expiredAt: logEventRecord?.expiredAt,
41
- };
42
- };
43
- processResults = (logEventRecords) => {
44
- return logEventRecords.map((logEventRecord) => this.processResult(logEventRecord));
45
- };
46
- getLogEventsByDestinationId = async (indexName, pixelId, destinationId, limit, afterCollectedAt) => {
47
- const query = {
48
- TableName: this.TABLE_NAME,
49
- IndexName: indexName,
50
- FilterExpression: 'destinationId = :destinationId',
51
- KeyConditionExpression: 'pixelId = :pixelId',
52
- ExpressionAttributeValues: {
53
- ':pixelId': pixelId,
54
- ':destinationId': destinationId
55
- },
56
- ScanIndexForward: false,
57
- };
58
- if (limit) {
59
- query.Limit = limit;
60
- }
61
- if (afterCollectedAt) {
62
- query.KeyConditionExpression += ' and collectedAt > :collectedAt';
63
- query.ExpressionAttributeValues[':collectedAt'] = afterCollectedAt;
64
- }
65
- const result = await clients_1.DynamoDbClient.query(query);
66
- const logEventRecords = (result?.Items ?? []);
67
- return this.processResults(logEventRecords);
68
- };
69
- getEventDebugLogs = async (indexName, pixelId, logLevel, destinations, sources, eventNames) => {
70
- const afterTime = luxon_1.DateTime.utc().minus({ minutes: 30 }).toJSDate().toISOString();
71
- let searchQuery = '';
72
- const expressionAttributeValues = {};
73
- if (destinations) {
74
- searchQuery += `#logEvent.#data.#destination IN (${destinations.map((destination, index) => (`:destination${index}`)).join(', ')})`;
75
- destinations.forEach((destination, index) => {
76
- expressionAttributeValues[`:destination${index}`] = destination;
77
- });
78
- }
79
- if (logLevel) {
80
- searchQuery += `${searchQuery.length > 0 ? ' and ' : ' '} logLevel = :logLevel `;
81
- expressionAttributeValues[':logLevel'] = logLevel;
82
- }
83
- if (sources) {
84
- searchQuery += `${searchQuery.length > 0 ? ' and ' : ' '} #source IN (${sources.map((_, index) => (`:source${index}`)).join(', ')})`;
85
- sources.forEach((source, index) => {
86
- expressionAttributeValues[`:source${index}`] = source;
87
- });
88
- }
89
- if (eventNames) {
90
- searchQuery += `${searchQuery.length > 0 ? ' and ' : ' '} #logEvent.#data.#eventName IN (${eventNames.map((_, index) => (`:eventName${index}`)).join(', ')})`;
91
- eventNames.forEach((eventName, index) => {
92
- expressionAttributeValues[`:eventName${index}`] = eventName;
93
- });
94
- }
95
- const params = {
96
- TableName: this.TABLE_NAME,
97
- IndexName: indexName,
98
- KeyConditionExpression: 'pixelId = :pixelId and collectedAt > :collectedAt ',
99
- FilterExpression: searchQuery,
100
- ExpressionAttributeValues: {
101
- ':pixelId': pixelId,
102
- ':collectedAt': afterTime,
103
- ...expressionAttributeValues,
104
- },
105
- ScanIndexForward: false,
106
- Limit: 500,
107
- };
108
- if (expressionAttributeValues[':destination0']) {
109
- params['ExpressionAttributeNames'] = {
110
- '#logEvent': 'logEvent',
111
- '#data': 'data',
112
- '#destination': 'destination',
113
- };
114
- }
115
- if (expressionAttributeValues[':source0']) {
116
- params['ExpressionAttributeNames'] = {
117
- ...params['ExpressionAttributeNames'],
118
- '#source': 'source'
119
- };
120
- }
121
- if (expressionAttributeValues[':eventName0']) {
122
- params['ExpressionAttributeNames'] = {
123
- ...params['ExpressionAttributeNames'],
124
- '#logEvent': 'logEvent',
125
- '#data': 'data',
126
- '#eventName': 'eventName'
127
- };
128
- }
129
- const result = await clients_1.DynamoDbClient.query(params);
130
- const logEventRecords = (result?.Items ?? []);
131
- return this.processResults(logEventRecords);
132
- };
133
- putLogEvent = async (logEvent, logGroup, ttlInMinutes) => {
134
- const logEventCopy = JSON.parse(JSON.stringify(logEvent));
135
- delete logEventCopy?.data?.logStorage;
136
- const expiredAt = luxon_1.DateTime.now().plus({ minutes: ttlInMinutes ?? 15 }).toSeconds();
137
- const logEventRecord = {
138
- eventId: logEventCopy.id,
139
- eventName: logEventCopy.name,
140
- pixelId: logEventCopy.pixelId,
141
- source: logEventCopy.data?.source || '',
142
- service: logEventCopy.data?.service || '',
143
- logLevel: logEventCopy.data.logLevel,
144
- logGroup,
145
- destination: logEventCopy?.data?.destination,
146
- destinationId: logEventCopy.data?.destinationId,
147
- trackingEventName: logEventCopy?.data?.eventName,
148
- destinationTrackingEventName: logEventCopy?.data?.destinationEventName,
149
- responseCode: logEventCopy?.data?.responseCode,
150
- errorCode: logEventCopy?.data?.errorCode,
151
- errorMessage: this.buildLogEventErrorMessage(logEventCopy?.data?.destinationErrorType, logEventCopy?.data?.destinationErrorMessage, logEventCopy?.data?.destinationErrorCode),
152
- sentAtEpoch: logEventCopy?.sentAtEpoch,
153
- collectedAt: logEventCopy?.collectedAt,
154
- expiredAt,
155
- };
156
- return await clients_1.DynamoDbClient.safePut(this.TABLE_NAME, logEventRecord);
157
- };
158
- buildLogEventErrorMessage = (destinationErrorType, destinationErrorMessage, destinationErrorCode) => {
159
- let errorMessage = '';
160
- if (destinationErrorType) {
161
- errorMessage += destinationErrorType;
162
- }
163
- if (destinationErrorMessage) {
164
- errorMessage += ` ${destinationErrorMessage}`;
165
- }
166
- if (destinationErrorCode) {
167
- errorMessage += ` code: ${destinationErrorCode}`;
168
- }
169
- return errorMessage.trim();
170
- };
171
- }
172
- exports.LogEventsDbService = LogEventsDbService;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogEventsDbService = void 0;
4
+ const clients_1 = require("../../clients");
5
+ const luxon_1 = require("luxon");
6
+ const libs_1 = require("../../libs");
7
+ class LogEventsDbService {
8
+ TABLE_NAME;
9
+ constructor(tableName) {
10
+ this.TABLE_NAME = tableName;
11
+ }
12
+ processResult = (logEventRecord) => {
13
+ if (logEventRecord?.logEventCompressed) {
14
+ const logEventDecompressed = (0, libs_1.decompressJSON)(logEventRecord.logEventCompressed);
15
+ if (logEventDecompressed) {
16
+ logEventRecord.logEvent = logEventDecompressed;
17
+ delete logEventRecord.logEventCompressed;
18
+ }
19
+ }
20
+ const destinationErrorType = logEventRecord?.logEvent?.data?.facebookErrorType;
21
+ const destinationErrorMessage = logEventRecord?.logEvent?.data?.facebookErrorMessage;
22
+ const destinationErrorCode = logEventRecord?.logEvent?.data?.facebookErrorCode;
23
+ return {
24
+ eventId: logEventRecord.eventId,
25
+ eventName: logEventRecord.eventName,
26
+ pixelId: logEventRecord.pixelId,
27
+ source: logEventRecord.source,
28
+ service: logEventRecord.service,
29
+ logLevel: logEventRecord.logLevel,
30
+ logGroup: logEventRecord.logGroup,
31
+ destination: logEventRecord?.destination ?? logEventRecord?.logEvent?.data?.destination,
32
+ destinationId: logEventRecord?.destinationId,
33
+ trackingEventName: logEventRecord?.trackingEventName ?? logEventRecord?.logEvent?.data?.eventName,
34
+ destinationTrackingEventName: logEventRecord?.destinationTrackingEventName ?? logEventRecord?.logEvent?.data?.destinationEventName,
35
+ responseCode: logEventRecord?.responseCode,
36
+ errorCode: logEventRecord?.errorCode ?? logEventRecord?.logEvent?.data?.code,
37
+ errorMessage: logEventRecord?.errorMessage ?? this.buildLogEventErrorMessage(destinationErrorType, destinationErrorMessage, destinationErrorCode),
38
+ sentAtEpoch: logEventRecord?.sentAtEpoch,
39
+ collectedAt: logEventRecord?.collectedAt,
40
+ expiredAt: logEventRecord?.expiredAt,
41
+ };
42
+ };
43
+ processResults = (logEventRecords) => {
44
+ return logEventRecords.map((logEventRecord) => this.processResult(logEventRecord));
45
+ };
46
+ getLogEventsByDestinationId = async (indexName, pixelId, destinationId, limit, afterCollectedAt) => {
47
+ const query = {
48
+ TableName: this.TABLE_NAME,
49
+ IndexName: indexName,
50
+ FilterExpression: 'destinationId = :destinationId',
51
+ KeyConditionExpression: 'pixelId = :pixelId',
52
+ ExpressionAttributeValues: {
53
+ ':pixelId': pixelId,
54
+ ':destinationId': destinationId
55
+ },
56
+ ScanIndexForward: false,
57
+ };
58
+ if (limit) {
59
+ query.Limit = limit;
60
+ }
61
+ if (afterCollectedAt) {
62
+ query.KeyConditionExpression += ' and collectedAt > :collectedAt';
63
+ query.ExpressionAttributeValues[':collectedAt'] = afterCollectedAt;
64
+ }
65
+ const result = await clients_1.DynamoDbClient.query(query);
66
+ const logEventRecords = (result?.Items ?? []);
67
+ return this.processResults(logEventRecords);
68
+ };
69
+ getEventDebugLogs = async (indexName, pixelId, logLevel, destinations, sources, eventNames) => {
70
+ const afterTime = luxon_1.DateTime.utc().minus({ minutes: 30 }).toJSDate().toISOString();
71
+ let searchQuery = '';
72
+ const expressionAttributeValues = {};
73
+ if (destinations) {
74
+ searchQuery += `#logEvent.#data.#destination IN (${destinations.map((destination, index) => (`:destination${index}`)).join(', ')})`;
75
+ destinations.forEach((destination, index) => {
76
+ expressionAttributeValues[`:destination${index}`] = destination;
77
+ });
78
+ }
79
+ if (logLevel) {
80
+ searchQuery += `${searchQuery.length > 0 ? ' and ' : ' '} logLevel = :logLevel `;
81
+ expressionAttributeValues[':logLevel'] = logLevel;
82
+ }
83
+ if (sources) {
84
+ searchQuery += `${searchQuery.length > 0 ? ' and ' : ' '} #source IN (${sources.map((_, index) => (`:source${index}`)).join(', ')})`;
85
+ sources.forEach((source, index) => {
86
+ expressionAttributeValues[`:source${index}`] = source;
87
+ });
88
+ }
89
+ if (eventNames) {
90
+ searchQuery += `${searchQuery.length > 0 ? ' and ' : ' '} #logEvent.#data.#eventName IN (${eventNames.map((_, index) => (`:eventName${index}`)).join(', ')})`;
91
+ eventNames.forEach((eventName, index) => {
92
+ expressionAttributeValues[`:eventName${index}`] = eventName;
93
+ });
94
+ }
95
+ const params = {
96
+ TableName: this.TABLE_NAME,
97
+ IndexName: indexName,
98
+ KeyConditionExpression: 'pixelId = :pixelId and collectedAt > :collectedAt ',
99
+ FilterExpression: searchQuery,
100
+ ExpressionAttributeValues: {
101
+ ':pixelId': pixelId,
102
+ ':collectedAt': afterTime,
103
+ ...expressionAttributeValues,
104
+ },
105
+ ScanIndexForward: false,
106
+ Limit: 500,
107
+ };
108
+ if (expressionAttributeValues[':destination0']) {
109
+ params['ExpressionAttributeNames'] = {
110
+ '#logEvent': 'logEvent',
111
+ '#data': 'data',
112
+ '#destination': 'destination',
113
+ };
114
+ }
115
+ if (expressionAttributeValues[':source0']) {
116
+ params['ExpressionAttributeNames'] = {
117
+ ...params['ExpressionAttributeNames'],
118
+ '#source': 'source'
119
+ };
120
+ }
121
+ if (expressionAttributeValues[':eventName0']) {
122
+ params['ExpressionAttributeNames'] = {
123
+ ...params['ExpressionAttributeNames'],
124
+ '#logEvent': 'logEvent',
125
+ '#data': 'data',
126
+ '#eventName': 'eventName'
127
+ };
128
+ }
129
+ const result = await clients_1.DynamoDbClient.query(params);
130
+ const logEventRecords = (result?.Items ?? []);
131
+ return this.processResults(logEventRecords);
132
+ };
133
+ putLogEvent = async (logEvent, logGroup, ttlInMinutes) => {
134
+ const logEventCopy = JSON.parse(JSON.stringify(logEvent));
135
+ delete logEventCopy?.data?.logStorage;
136
+ const expiredAt = luxon_1.DateTime.now().plus({ minutes: ttlInMinutes ?? 15 }).toSeconds();
137
+ const logEventRecord = {
138
+ eventId: logEventCopy.id,
139
+ eventName: logEventCopy.name,
140
+ pixelId: logEventCopy.pixelId,
141
+ source: logEventCopy.data?.source || '',
142
+ service: logEventCopy.data?.service || '',
143
+ logLevel: logEventCopy.data.logLevel,
144
+ logGroup,
145
+ destination: logEventCopy?.data?.destination,
146
+ destinationId: logEventCopy.data?.destinationId,
147
+ trackingEventName: logEventCopy?.data?.eventName,
148
+ destinationTrackingEventName: logEventCopy?.data?.destinationEventName,
149
+ responseCode: logEventCopy?.data?.responseCode,
150
+ errorCode: logEventCopy?.data?.errorCode,
151
+ errorMessage: this.buildLogEventErrorMessage(logEventCopy?.data?.destinationErrorType, logEventCopy?.data?.destinationErrorMessage, logEventCopy?.data?.destinationErrorCode),
152
+ sentAtEpoch: logEventCopy?.sentAtEpoch,
153
+ collectedAt: logEventCopy?.collectedAt,
154
+ expiredAt,
155
+ };
156
+ return await clients_1.DynamoDbClient.safePut(this.TABLE_NAME, logEventRecord);
157
+ };
158
+ buildLogEventErrorMessage = (destinationErrorType, destinationErrorMessage, destinationErrorCode) => {
159
+ let errorMessage = '';
160
+ if (destinationErrorType) {
161
+ errorMessage += destinationErrorType;
162
+ }
163
+ if (destinationErrorMessage) {
164
+ errorMessage += ` ${destinationErrorMessage}`;
165
+ }
166
+ if (destinationErrorCode) {
167
+ errorMessage += ` code: ${destinationErrorCode}`;
168
+ }
169
+ return errorMessage.trim();
170
+ };
171
+ }
172
+ exports.LogEventsDbService = LogEventsDbService;
173
173
  //# sourceMappingURL=log-events-db-service.js.map
@@ -1,9 +1,9 @@
1
- import { PurchasedContact } from '@adtrackify/at-tracking-event-types';
2
- export declare class PurchasedContactsDbService {
3
- TABLE_NAME: string;
4
- TABLE_KEY: string;
5
- constructor(tableName: string, purchasedContactsKey: string);
6
- getPurchasedContact: (id: string) => Promise<Record<string, any>>;
7
- putPurchasedContact: (purchasedContact: PurchasedContact) => Promise<PurchasedContact>;
8
- updatePurchasedContact: (id: string, data: any) => Promise<Record<string, any>>;
9
- }
1
+ import { PurchasedContact } from '@adtrackify/at-tracking-event-types';
2
+ export declare class PurchasedContactsDbService {
3
+ TABLE_NAME: string;
4
+ TABLE_KEY: string;
5
+ constructor(tableName: string, purchasedContactsKey: string);
6
+ getPurchasedContact: (id: string) => Promise<Record<string, any>>;
7
+ putPurchasedContact: (purchasedContact: PurchasedContact) => Promise<PurchasedContact>;
8
+ updatePurchasedContact: (id: string, data: any) => Promise<Record<string, any>>;
9
+ }
@@ -1,39 +1,39 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PurchasedContactsDbService = void 0;
4
- const clients_1 = require("../../clients");
5
- const libs_1 = require("../../libs");
6
- const helpers_1 = require("../../helpers");
7
- class PurchasedContactsDbService {
8
- TABLE_NAME;
9
- TABLE_KEY;
10
- constructor(tableName, purchasedContactsKey) {
11
- this.TABLE_NAME = tableName;
12
- this.TABLE_KEY = purchasedContactsKey;
13
- }
14
- getPurchasedContact = async (id) => {
15
- const purchasedContact = await clients_1.DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
16
- if (!purchasedContact) {
17
- throw libs_1.HttpError.notFound();
18
- }
19
- return purchasedContact;
20
- };
21
- putPurchasedContact = async (purchasedContact) => {
22
- await clients_1.DynamoDbClient.safePut(this.TABLE_NAME, purchasedContact);
23
- return purchasedContact;
24
- };
25
- updatePurchasedContact = async (id, data) => {
26
- const purchasedContact = await this.getPurchasedContact(id);
27
- Object.assign(purchasedContact, data);
28
- const currentTimestamp = (0, libs_1.getCurrentTimestamp)();
29
- purchasedContact.updatedAt = currentTimestamp;
30
- const res = await clients_1.DynamoDbClient.safePut(this.TABLE_NAME, purchasedContact);
31
- if (!res) {
32
- helpers_1.Logger.error('purchased contact update failed', { purchasedContact });
33
- throw libs_1.HttpError.internal();
34
- }
35
- return purchasedContact;
36
- };
37
- }
38
- exports.PurchasedContactsDbService = PurchasedContactsDbService;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PurchasedContactsDbService = void 0;
4
+ const clients_1 = require("../../clients");
5
+ const libs_1 = require("../../libs");
6
+ const helpers_1 = require("../../helpers");
7
+ class PurchasedContactsDbService {
8
+ TABLE_NAME;
9
+ TABLE_KEY;
10
+ constructor(tableName, purchasedContactsKey) {
11
+ this.TABLE_NAME = tableName;
12
+ this.TABLE_KEY = purchasedContactsKey;
13
+ }
14
+ getPurchasedContact = async (id) => {
15
+ const purchasedContact = await clients_1.DynamoDbClient.safeGet(this.TABLE_NAME, this.TABLE_KEY, id);
16
+ if (!purchasedContact) {
17
+ throw libs_1.HttpError.notFound();
18
+ }
19
+ return purchasedContact;
20
+ };
21
+ putPurchasedContact = async (purchasedContact) => {
22
+ await clients_1.DynamoDbClient.safePut(this.TABLE_NAME, purchasedContact);
23
+ return purchasedContact;
24
+ };
25
+ updatePurchasedContact = async (id, data) => {
26
+ const purchasedContact = await this.getPurchasedContact(id);
27
+ Object.assign(purchasedContact, data);
28
+ const currentTimestamp = (0, libs_1.getCurrentTimestamp)();
29
+ purchasedContact.updatedAt = currentTimestamp;
30
+ const res = await clients_1.DynamoDbClient.safePut(this.TABLE_NAME, purchasedContact);
31
+ if (!res) {
32
+ helpers_1.Logger.error('purchased contact update failed', { purchasedContact });
33
+ throw libs_1.HttpError.internal();
34
+ }
35
+ return purchasedContact;
36
+ };
37
+ }
38
+ exports.PurchasedContactsDbService = PurchasedContactsDbService;
39
39
  //# sourceMappingURL=purchased-contacts-db-service.js.map
@@ -1,7 +1,7 @@
1
- import { ShopifyAppInstall } from '@adtrackify/at-tracking-event-types';
2
- export declare class ShopifyAppInstallsDbService {
3
- TABLE_NAME: string;
4
- constructor(tableName: string);
5
- getShopifyAppInstallByShop: (indexName: string, shop: string) => Promise<ShopifyAppInstall | null>;
6
- getShopifyAppInstallByPixelId: (indexName: string, pixelId: string) => Promise<ShopifyAppInstall | null>;
7
- }
1
+ import { ShopifyAppInstall } from '@adtrackify/at-tracking-event-types';
2
+ export declare class ShopifyAppInstallsDbService {
3
+ TABLE_NAME: string;
4
+ constructor(tableName: string);
5
+ getShopifyAppInstallByShop: (indexName: string, shop: string) => Promise<ShopifyAppInstall | null>;
6
+ getShopifyAppInstallByPixelId: (indexName: string, pixelId: string) => Promise<ShopifyAppInstall | null>;
7
+ }
@@ -1,48 +1,48 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ShopifyAppInstallsDbService = void 0;
4
- const clients_1 = require("../../clients");
5
- const helpers_1 = require("../../helpers");
6
- class ShopifyAppInstallsDbService {
7
- TABLE_NAME;
8
- constructor(tableName) {
9
- this.TABLE_NAME = tableName;
10
- }
11
- getShopifyAppInstallByShop = async (indexName, shop) => {
12
- try {
13
- const values = {
14
- ':shop': shop
15
- };
16
- const query = {
17
- TableName: this.TABLE_NAME,
18
- IndexName: indexName,
19
- KeyConditionExpression: 'shop = :shop',
20
- ExpressionAttributeValues: values
21
- };
22
- const shopifyAppInstalls = await clients_1.DynamoDbClient.queryAll(query);
23
- if (shopifyAppInstalls && shopifyAppInstalls.length > 0) {
24
- return shopifyAppInstalls[0];
25
- }
26
- return null;
27
- }
28
- catch (error) {
29
- helpers_1.Logger.error('failed to shopifyAppInstall by shop', { error, indexName, shop });
30
- return null;
31
- }
32
- };
33
- getShopifyAppInstallByPixelId = async (indexName, pixelId) => {
34
- try {
35
- const shopifyAppInstalls = await clients_1.DynamoDbClient.safeQueryByGSI(this.TABLE_NAME, indexName, 'pixelId', pixelId);
36
- if (shopifyAppInstalls && shopifyAppInstalls?.length > 0) {
37
- return shopifyAppInstalls[0];
38
- }
39
- return null;
40
- }
41
- catch (error) {
42
- helpers_1.Logger.error('failed to fetch shopifyAppInstall by pixelId', { error, indexName, pixelId });
43
- return null;
44
- }
45
- };
46
- }
47
- exports.ShopifyAppInstallsDbService = ShopifyAppInstallsDbService;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShopifyAppInstallsDbService = void 0;
4
+ const clients_1 = require("../../clients");
5
+ const helpers_1 = require("../../helpers");
6
+ class ShopifyAppInstallsDbService {
7
+ TABLE_NAME;
8
+ constructor(tableName) {
9
+ this.TABLE_NAME = tableName;
10
+ }
11
+ getShopifyAppInstallByShop = async (indexName, shop) => {
12
+ try {
13
+ const values = {
14
+ ':shop': shop
15
+ };
16
+ const query = {
17
+ TableName: this.TABLE_NAME,
18
+ IndexName: indexName,
19
+ KeyConditionExpression: 'shop = :shop',
20
+ ExpressionAttributeValues: values
21
+ };
22
+ const shopifyAppInstalls = await clients_1.DynamoDbClient.queryAll(query);
23
+ if (shopifyAppInstalls && shopifyAppInstalls.length > 0) {
24
+ return shopifyAppInstalls[0];
25
+ }
26
+ return null;
27
+ }
28
+ catch (error) {
29
+ helpers_1.Logger.error('failed to shopifyAppInstall by shop', { error, indexName, shop });
30
+ return null;
31
+ }
32
+ };
33
+ getShopifyAppInstallByPixelId = async (indexName, pixelId) => {
34
+ try {
35
+ const shopifyAppInstalls = await clients_1.DynamoDbClient.safeQueryByGSI(this.TABLE_NAME, indexName, 'pixelId', pixelId);
36
+ if (shopifyAppInstalls && shopifyAppInstalls?.length > 0) {
37
+ return shopifyAppInstalls[0];
38
+ }
39
+ return null;
40
+ }
41
+ catch (error) {
42
+ helpers_1.Logger.error('failed to fetch shopifyAppInstall by pixelId', { error, indexName, pixelId });
43
+ return null;
44
+ }
45
+ };
46
+ }
47
+ exports.ShopifyAppInstallsDbService = ShopifyAppInstallsDbService;
48
48
  //# sourceMappingURL=shopify-app-installs-db-service.js.map
@@ -1,9 +1,9 @@
1
- import Shopify from 'shopify-api-node';
2
- export declare class ShopifyProductsCacheDbService {
3
- TABLE_NAME: string;
4
- KEY_NAME: string;
5
- constructor(tableName: string, keyName: string);
6
- getShopifyProductCache: (pixelId: string, productId: string) => Promise<Record<string, any> | null>;
7
- putShopifyProductCache: (pixelId: string, productId: string, product: Shopify.IProduct, ttlInDays?: number) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null>;
8
- lookupShopifyProductCache: (pixelId: string, shop: string, accessToken: string, productId: string) => Promise<Shopify.IProduct | null>;
9
- }
1
+ import Shopify from 'shopify-api-node';
2
+ export declare class ShopifyProductsCacheDbService {
3
+ TABLE_NAME: string;
4
+ KEY_NAME: string;
5
+ constructor(tableName: string, keyName: string);
6
+ getShopifyProductCache: (pixelId: string, productId: string) => Promise<Record<string, any> | null>;
7
+ putShopifyProductCache: (pixelId: string, productId: string, product: Shopify.IProduct, ttlInDays?: number) => Promise<import("@aws-sdk/lib-dynamodb").PutCommandOutput | null>;
8
+ lookupShopifyProductCache: (pixelId: string, shop: string, accessToken: string, productId: string) => Promise<Shopify.IProduct | null>;
9
+ }