@adtrackify/at-service-common 3.0.30 → 3.0.32

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 (207) hide show
  1. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  2. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +26 -26
  3. package/dist/cjs/clients/generic/cognito-client.d.ts +20 -20
  4. package/dist/cjs/clients/generic/cognito-client.js +164 -164
  5. package/dist/cjs/clients/generic/dynamodb-client.d.ts +16 -16
  6. package/dist/cjs/clients/generic/dynamodb-client.js +144 -144
  7. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  8. package/dist/cjs/clients/generic/eventbridge-client.js +49 -49
  9. package/dist/cjs/clients/generic/http-client.d.ts +88 -88
  10. package/dist/cjs/clients/generic/http-client.js +56 -56
  11. package/dist/cjs/clients/generic/index.d.ts +7 -6
  12. package/dist/cjs/clients/generic/index.js +23 -22
  13. package/dist/cjs/clients/generic/index.js.map +1 -1
  14. package/dist/cjs/clients/generic/location-client.d.ts +8 -0
  15. package/dist/cjs/clients/generic/location-client.js +32 -0
  16. package/dist/cjs/clients/generic/location-client.js.map +1 -0
  17. package/dist/cjs/clients/generic/s3-client.d.ts +16 -16
  18. package/dist/cjs/clients/generic/s3-client.js +110 -110
  19. package/dist/cjs/clients/generic/sqs-client.d.ts +14 -14
  20. package/dist/cjs/clients/generic/sqs-client.js +38 -38
  21. package/dist/cjs/clients/index.d.ts +3 -3
  22. package/dist/cjs/clients/index.js +19 -19
  23. package/dist/cjs/clients/internal-api/accounts-client.d.ts +112 -112
  24. package/dist/cjs/clients/internal-api/accounts-client.js +117 -117
  25. package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
  26. package/dist/cjs/clients/internal-api/db-management-client.js +39 -39
  27. package/dist/cjs/clients/internal-api/destinations-client.d.ts +29 -29
  28. package/dist/cjs/clients/internal-api/destinations-client.js +54 -54
  29. package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
  30. package/dist/cjs/clients/internal-api/event-collector-client.js +39 -39
  31. package/dist/cjs/clients/internal-api/identity-client.d.ts +17 -17
  32. package/dist/cjs/clients/internal-api/identity-client.js +75 -75
  33. package/dist/cjs/clients/internal-api/index.d.ts +7 -7
  34. package/dist/cjs/clients/internal-api/index.js +23 -23
  35. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +34 -34
  36. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +63 -63
  37. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +31 -31
  38. package/dist/cjs/clients/internal-api/users-auth-client.js +92 -92
  39. package/dist/cjs/clients/third-party/index.d.ts +1 -1
  40. package/dist/cjs/clients/third-party/index.js +17 -17
  41. package/dist/cjs/clients/third-party/shopify-client.d.ts +198 -198
  42. package/dist/cjs/clients/third-party/shopify-client.js +150 -150
  43. package/dist/cjs/helpers/index.d.ts +4 -4
  44. package/dist/cjs/helpers/index.js +20 -20
  45. package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
  46. package/dist/cjs/helpers/input-validation-helper.js +23 -23
  47. package/dist/cjs/helpers/logging-helper.d.ts +15 -15
  48. package/dist/cjs/helpers/logging-helper.js +80 -80
  49. package/dist/cjs/helpers/response-helper.d.ts +15 -15
  50. package/dist/cjs/helpers/response-helper.js +42 -42
  51. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  52. package/dist/cjs/helpers/shopify-helper.js +28 -28
  53. package/dist/cjs/index.d.ts +5 -5
  54. package/dist/cjs/index.js +21 -21
  55. package/dist/cjs/libs/clickId-parser.d.ts +23 -23
  56. package/dist/cjs/libs/clickId-parser.js +49 -49
  57. package/dist/cjs/libs/crypto.d.ts +1 -1
  58. package/dist/cjs/libs/crypto.js +12 -12
  59. package/dist/cjs/libs/dates.d.ts +6 -6
  60. package/dist/cjs/libs/dates.js +31 -31
  61. package/dist/cjs/libs/http-error.d.ts +21 -21
  62. package/dist/cjs/libs/http-error.js +59 -59
  63. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  64. package/dist/cjs/libs/http-status-codes.js +62 -62
  65. package/dist/cjs/libs/index.d.ts +8 -8
  66. package/dist/cjs/libs/index.js +24 -24
  67. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  68. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  69. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  70. package/dist/cjs/libs/referrer-parser/referrer-data.js +4712 -4712
  71. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  72. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +128 -128
  73. package/dist/cjs/libs/url.d.ts +1 -1
  74. package/dist/cjs/libs/url.js +13 -13
  75. package/dist/cjs/services/db/destinations-service.d.ts +7 -7
  76. package/dist/cjs/services/db/destinations-service.js +35 -35
  77. package/dist/cjs/services/db/index.d.ts +4 -4
  78. package/dist/cjs/services/db/index.js +20 -20
  79. package/dist/cjs/services/db/log-events-data-service.d.ts +6 -6
  80. package/dist/cjs/services/db/log-events-data-service.js +31 -31
  81. package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +9 -9
  82. package/dist/cjs/services/db/purchased-contacts-db-service.js +38 -38
  83. package/dist/cjs/services/db/tracking-events-db-service.d.ts +17 -17
  84. package/dist/cjs/services/db/tracking-events-db-service.js +134 -134
  85. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  86. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  87. package/dist/cjs/services/index.d.ts +5 -5
  88. package/dist/cjs/services/index.js +21 -21
  89. package/dist/cjs/services/ipdata-lookup-service.d.ts +9 -8
  90. package/dist/cjs/services/ipdata-lookup-service.js +65 -59
  91. package/dist/cjs/services/ipdata-lookup-service.js.map +1 -1
  92. package/dist/cjs/services/log-event-service.d.ts +9 -9
  93. package/dist/cjs/services/log-event-service.js +56 -56
  94. package/dist/cjs/services/metric-event-service.d.ts +9 -9
  95. package/dist/cjs/services/metric-event-service.js +49 -49
  96. package/dist/cjs/types/api-response.d.ts +6 -6
  97. package/dist/cjs/types/api-response.js +2 -2
  98. package/dist/cjs/types/index.d.ts +1 -1
  99. package/dist/cjs/types/index.js +17 -17
  100. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  101. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  102. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  103. package/dist/cjs/types/internal-events/index.js +17 -17
  104. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  105. package/dist/esm/__tests__/s3-client/s3-client.spec.js +24 -24
  106. package/dist/esm/clients/generic/cognito-client.d.ts +20 -20
  107. package/dist/esm/clients/generic/cognito-client.js +159 -159
  108. package/dist/esm/clients/generic/dynamodb-client.d.ts +16 -16
  109. package/dist/esm/clients/generic/dynamodb-client.js +140 -140
  110. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  111. package/dist/esm/clients/generic/eventbridge-client.js +45 -45
  112. package/dist/esm/clients/generic/http-client.d.ts +88 -88
  113. package/dist/esm/clients/generic/http-client.js +48 -48
  114. package/dist/esm/clients/generic/index.d.ts +7 -6
  115. package/dist/esm/clients/generic/index.js +7 -6
  116. package/dist/esm/clients/generic/index.js.map +1 -1
  117. package/dist/esm/clients/generic/location-client.d.ts +8 -0
  118. package/dist/esm/clients/generic/location-client.js +28 -0
  119. package/dist/esm/clients/generic/location-client.js.map +1 -0
  120. package/dist/esm/clients/generic/s3-client.d.ts +16 -16
  121. package/dist/esm/clients/generic/s3-client.js +106 -106
  122. package/dist/esm/clients/generic/sqs-client.d.ts +14 -14
  123. package/dist/esm/clients/generic/sqs-client.js +34 -34
  124. package/dist/esm/clients/index.d.ts +3 -3
  125. package/dist/esm/clients/index.js +3 -3
  126. package/dist/esm/clients/internal-api/accounts-client.d.ts +112 -112
  127. package/dist/esm/clients/internal-api/accounts-client.js +113 -113
  128. package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
  129. package/dist/esm/clients/internal-api/db-management-client.js +32 -32
  130. package/dist/esm/clients/internal-api/destinations-client.d.ts +29 -29
  131. package/dist/esm/clients/internal-api/destinations-client.js +50 -50
  132. package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
  133. package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
  134. package/dist/esm/clients/internal-api/identity-client.d.ts +17 -17
  135. package/dist/esm/clients/internal-api/identity-client.js +71 -71
  136. package/dist/esm/clients/internal-api/index.d.ts +7 -7
  137. package/dist/esm/clients/internal-api/index.js +7 -7
  138. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +34 -34
  139. package/dist/esm/clients/internal-api/shopify-app-install-client.js +56 -56
  140. package/dist/esm/clients/internal-api/users-auth-client.d.ts +31 -31
  141. package/dist/esm/clients/internal-api/users-auth-client.js +88 -88
  142. package/dist/esm/clients/third-party/index.d.ts +1 -1
  143. package/dist/esm/clients/third-party/index.js +1 -1
  144. package/dist/esm/clients/third-party/shopify-client.d.ts +198 -198
  145. package/dist/esm/clients/third-party/shopify-client.js +146 -146
  146. package/dist/esm/helpers/index.d.ts +4 -4
  147. package/dist/esm/helpers/index.js +4 -4
  148. package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
  149. package/dist/esm/helpers/input-validation-helper.js +19 -19
  150. package/dist/esm/helpers/logging-helper.d.ts +15 -15
  151. package/dist/esm/helpers/logging-helper.js +53 -53
  152. package/dist/esm/helpers/response-helper.d.ts +15 -15
  153. package/dist/esm/helpers/response-helper.js +36 -36
  154. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  155. package/dist/esm/helpers/shopify-helper.js +23 -23
  156. package/dist/esm/index.d.ts +5 -5
  157. package/dist/esm/index.js +5 -5
  158. package/dist/esm/libs/clickId-parser.d.ts +23 -23
  159. package/dist/esm/libs/clickId-parser.js +45 -45
  160. package/dist/esm/libs/crypto.d.ts +1 -1
  161. package/dist/esm/libs/crypto.js +5 -5
  162. package/dist/esm/libs/dates.d.ts +6 -6
  163. package/dist/esm/libs/dates.js +22 -22
  164. package/dist/esm/libs/http-error.d.ts +21 -21
  165. package/dist/esm/libs/http-error.js +55 -55
  166. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  167. package/dist/esm/libs/http-status-codes.js +59 -59
  168. package/dist/esm/libs/index.d.ts +8 -8
  169. package/dist/esm/libs/index.js +8 -8
  170. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  171. package/dist/esm/libs/referrer-parser/index.js +2 -2
  172. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  173. package/dist/esm/libs/referrer-parser/referrer-data.js +4709 -4709
  174. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  175. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +121 -121
  176. package/dist/esm/libs/url.d.ts +1 -1
  177. package/dist/esm/libs/url.js +9 -9
  178. package/dist/esm/services/db/destinations-service.d.ts +7 -7
  179. package/dist/esm/services/db/destinations-service.js +31 -31
  180. package/dist/esm/services/db/index.d.ts +4 -4
  181. package/dist/esm/services/db/index.js +4 -4
  182. package/dist/esm/services/db/log-events-data-service.d.ts +6 -6
  183. package/dist/esm/services/db/log-events-data-service.js +27 -27
  184. package/dist/esm/services/db/purchased-contacts-db-service.d.ts +9 -9
  185. package/dist/esm/services/db/purchased-contacts-db-service.js +34 -34
  186. package/dist/esm/services/db/tracking-events-db-service.d.ts +17 -17
  187. package/dist/esm/services/db/tracking-events-db-service.js +130 -130
  188. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  189. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  190. package/dist/esm/services/index.d.ts +5 -5
  191. package/dist/esm/services/index.js +5 -5
  192. package/dist/esm/services/ipdata-lookup-service.d.ts +9 -8
  193. package/dist/esm/services/ipdata-lookup-service.js +61 -55
  194. package/dist/esm/services/ipdata-lookup-service.js.map +1 -1
  195. package/dist/esm/services/log-event-service.d.ts +9 -9
  196. package/dist/esm/services/log-event-service.js +52 -52
  197. package/dist/esm/services/metric-event-service.d.ts +9 -9
  198. package/dist/esm/services/metric-event-service.js +45 -45
  199. package/dist/esm/types/api-response.d.ts +6 -6
  200. package/dist/esm/types/api-response.js +1 -1
  201. package/dist/esm/types/index.d.ts +1 -1
  202. package/dist/esm/types/index.js +1 -1
  203. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  204. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  205. package/dist/esm/types/internal-events/index.d.ts +1 -1
  206. package/dist/esm/types/internal-events/index.js +1 -1
  207. package/package.json +3 -2
@@ -1,131 +1,131 @@
1
- import { DynamoDbClient } from '../../clients';
2
- import { Logger } from '../../helpers';
3
- import { DateTime } from 'luxon';
4
- export class TrackingEventsDbService {
5
- TABLE_NAME;
6
- KEY_NAME = 'eventId';
7
- constructor(tableName) {
8
- this.TABLE_NAME = tableName;
9
- }
10
- getLatestSessionByIpAddressUserAgent = async (indexName, ipAddressUserAgent, hostname) => {
11
- try {
12
- const params = {
13
- TableName: this.TABLE_NAME,
14
- IndexName: indexName,
15
- KeyConditionExpression: 'ipAddressUserAgent = :ipAddressUserAgent',
16
- ExpressionAttributeValues: {
17
- ':ipAddressUserAgent': ipAddressUserAgent,
18
- },
19
- ScanIndexForward: false
20
- };
21
- const results = await DynamoDbClient.query(params);
22
- let trackingEventRecord;
23
- if (results?.Items && results.Items.length > 0) {
24
- trackingEventRecord = results.Items.find((item) => {
25
- const _trackingEvent = item.trackingEvent;
26
- const _hostname = item?.hostname;
27
- if (hostname && _hostname === hostname && _trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
28
- return true;
29
- }
30
- else if (_trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
31
- return true;
32
- }
33
- else {
34
- return false;
35
- }
36
- });
37
- }
38
- if (trackingEventRecord) {
39
- const trackingEvent = trackingEventRecord.trackingEvent;
40
- return {
41
- pixelId: trackingEvent?.pixelId,
42
- identityId: trackingEvent.context?.identity?.identityId,
43
- sessionId: trackingEvent.context?.properties?.sessionId,
44
- click: trackingEvent.context?.properties?.click
45
- };
46
- }
47
- else {
48
- return {};
49
- }
50
- }
51
- catch (e) {
52
- Logger.error('Failed to getLastTrackingEventByIpAddressUserAgent', { e });
53
- return {};
54
- }
55
- };
56
- getTrackingEventsByPixelIdEventName = async (indexName, pixelId, eventName, limit, afterCollectedAt) => {
57
- const query = {
58
- TableName: this.TABLE_NAME,
59
- IndexName: indexName,
60
- KeyConditionExpression: 'pixelIdEventName = :pixelIdEventName',
61
- ExpressionAttributeValues: {
62
- ':pixelIdEventName': `${pixelId}_${eventName}`,
63
- },
64
- ScanIndexForward: false,
65
- };
66
- if (limit) {
67
- query.Limit = limit;
68
- }
69
- if (afterCollectedAt) {
70
- query.KeyConditionExpression += ' and collectedAt > :collectedAt';
71
- query.ExpressionAttributeValues[':collectedAt'] = afterCollectedAt;
72
- }
73
- const trackingEventsResponse = await DynamoDbClient.query(query);
74
- return trackingEventsResponse?.Items ?? [];
75
- };
76
- getTrackingEventCountByPixelId = async (indexName, pixelId, offsetInMinutes = 30) => {
77
- try {
78
- const pastDateTime = DateTime.now().minus({ minutes: offsetInMinutes }).toISO();
79
- const params = {
80
- TableName: this.TABLE_NAME,
81
- IndexName: indexName,
82
- KeyConditionExpression: 'pixelId = :pixelId and collectedAt > :collectedAt',
83
- ExpressionAttributeValues: {
84
- ':pixelId': pixelId,
85
- ':collectedAt': pastDateTime
86
- }
87
- };
88
- const results = await DynamoDbClient.query(params);
89
- return results?.Items?.length ?? 0;
90
- }
91
- catch (e) {
92
- Logger.error('Failed to getTrackingEventCountByPixelId', { e });
93
- return 0;
94
- }
95
- };
96
- getTrackingEvent = async (eventId) => {
97
- try {
98
- const eventRecord = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, eventId);
99
- return eventRecord;
100
- }
101
- catch (e) {
102
- Logger.error('Failed to getTrackingEvent', { e });
103
- return null;
104
- }
105
- };
106
- putTrackingEvent = async (trackingEvent, ttlInDays) => {
107
- if (!trackingEvent.context?.properties?.ipAddress || !trackingEvent.context?.properties?.userAgent)
108
- return;
109
- const pageURL = trackingEvent?.context?.properties?.page?.url;
110
- const parsedPageURL = new URL(pageURL);
111
- const hostname = parsedPageURL?.hostname;
112
- const trackingEventsTableTTLDays = ttlInDays || 15;
113
- const expiredAt = DateTime.now().plus({ days: trackingEventsTableTTLDays }).toSeconds();
114
- const trackingEventRecord = {
115
- eventId: trackingEvent.id,
116
- eventName: trackingEvent.name,
117
- trackingEvent,
118
- pixelId: trackingEvent?.pixelId,
119
- pixelIdEventName: `${trackingEvent.pixelId}_${trackingEvent.name}`,
120
- ipAddressUserAgent: `${trackingEvent.context?.properties?.ipAddress}_${trackingEvent.context?.properties?.userAgent}`,
121
- hostname,
122
- identityId: trackingEvent?.context?.identity?.identityId,
123
- sessionId: trackingEvent?.context?.properties?.sessionId,
124
- collectedAt: trackingEvent.collectedAt,
125
- expiredAt,
126
- };
127
- Logger.debug('Put tracking event', { trackingEventRecord, expiredAtType: typeof expiredAt });
128
- return await DynamoDbClient.safePut(this.TABLE_NAME, trackingEventRecord);
129
- };
130
- }
1
+ import { DynamoDbClient } from '../../clients';
2
+ import { Logger } from '../../helpers';
3
+ import { DateTime } from 'luxon';
4
+ export class TrackingEventsDbService {
5
+ TABLE_NAME;
6
+ KEY_NAME = 'eventId';
7
+ constructor(tableName) {
8
+ this.TABLE_NAME = tableName;
9
+ }
10
+ getLatestSessionByIpAddressUserAgent = async (indexName, ipAddressUserAgent, hostname) => {
11
+ try {
12
+ const params = {
13
+ TableName: this.TABLE_NAME,
14
+ IndexName: indexName,
15
+ KeyConditionExpression: 'ipAddressUserAgent = :ipAddressUserAgent',
16
+ ExpressionAttributeValues: {
17
+ ':ipAddressUserAgent': ipAddressUserAgent,
18
+ },
19
+ ScanIndexForward: false
20
+ };
21
+ const results = await DynamoDbClient.query(params);
22
+ let trackingEventRecord;
23
+ if (results?.Items && results.Items.length > 0) {
24
+ trackingEventRecord = results.Items.find((item) => {
25
+ const _trackingEvent = item.trackingEvent;
26
+ const _hostname = item?.hostname;
27
+ if (hostname && _hostname === hostname && _trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
28
+ return true;
29
+ }
30
+ else if (_trackingEvent.context?.identity?.identityId && _trackingEvent.context.properties?.sessionId) {
31
+ return true;
32
+ }
33
+ else {
34
+ return false;
35
+ }
36
+ });
37
+ }
38
+ if (trackingEventRecord) {
39
+ const trackingEvent = trackingEventRecord.trackingEvent;
40
+ return {
41
+ pixelId: trackingEvent?.pixelId,
42
+ identityId: trackingEvent.context?.identity?.identityId,
43
+ sessionId: trackingEvent.context?.properties?.sessionId,
44
+ click: trackingEvent.context?.properties?.click
45
+ };
46
+ }
47
+ else {
48
+ return {};
49
+ }
50
+ }
51
+ catch (e) {
52
+ Logger.error('Failed to getLastTrackingEventByIpAddressUserAgent', { e });
53
+ return {};
54
+ }
55
+ };
56
+ getTrackingEventsByPixelIdEventName = async (indexName, pixelId, eventName, limit, afterCollectedAt) => {
57
+ const query = {
58
+ TableName: this.TABLE_NAME,
59
+ IndexName: indexName,
60
+ KeyConditionExpression: 'pixelIdEventName = :pixelIdEventName',
61
+ ExpressionAttributeValues: {
62
+ ':pixelIdEventName': `${pixelId}_${eventName}`,
63
+ },
64
+ ScanIndexForward: false,
65
+ };
66
+ if (limit) {
67
+ query.Limit = limit;
68
+ }
69
+ if (afterCollectedAt) {
70
+ query.KeyConditionExpression += ' and collectedAt > :collectedAt';
71
+ query.ExpressionAttributeValues[':collectedAt'] = afterCollectedAt;
72
+ }
73
+ const trackingEventsResponse = await DynamoDbClient.query(query);
74
+ return trackingEventsResponse?.Items ?? [];
75
+ };
76
+ getTrackingEventCountByPixelId = async (indexName, pixelId, offsetInMinutes = 30) => {
77
+ try {
78
+ const pastDateTime = DateTime.now().minus({ minutes: offsetInMinutes }).toISO();
79
+ const params = {
80
+ TableName: this.TABLE_NAME,
81
+ IndexName: indexName,
82
+ KeyConditionExpression: 'pixelId = :pixelId and collectedAt > :collectedAt',
83
+ ExpressionAttributeValues: {
84
+ ':pixelId': pixelId,
85
+ ':collectedAt': pastDateTime
86
+ }
87
+ };
88
+ const results = await DynamoDbClient.query(params);
89
+ return results?.Items?.length ?? 0;
90
+ }
91
+ catch (e) {
92
+ Logger.error('Failed to getTrackingEventCountByPixelId', { e });
93
+ return 0;
94
+ }
95
+ };
96
+ getTrackingEvent = async (eventId) => {
97
+ try {
98
+ const eventRecord = await DynamoDbClient.safeGet(this.TABLE_NAME, this.KEY_NAME, eventId);
99
+ return eventRecord;
100
+ }
101
+ catch (e) {
102
+ Logger.error('Failed to getTrackingEvent', { e });
103
+ return null;
104
+ }
105
+ };
106
+ putTrackingEvent = async (trackingEvent, ttlInDays) => {
107
+ if (!trackingEvent.context?.properties?.ipAddress || !trackingEvent.context?.properties?.userAgent)
108
+ return;
109
+ const pageURL = trackingEvent?.context?.properties?.page?.url;
110
+ const parsedPageURL = new URL(pageURL);
111
+ const hostname = parsedPageURL?.hostname;
112
+ const trackingEventsTableTTLDays = ttlInDays || 15;
113
+ const expiredAt = DateTime.now().plus({ days: trackingEventsTableTTLDays }).toSeconds();
114
+ const trackingEventRecord = {
115
+ eventId: trackingEvent.id,
116
+ eventName: trackingEvent.name,
117
+ trackingEvent,
118
+ pixelId: trackingEvent?.pixelId,
119
+ pixelIdEventName: `${trackingEvent.pixelId}_${trackingEvent.name}`,
120
+ ipAddressUserAgent: `${trackingEvent.context?.properties?.ipAddress}_${trackingEvent.context?.properties?.userAgent}`,
121
+ hostname,
122
+ identityId: trackingEvent?.context?.identity?.identityId,
123
+ sessionId: trackingEvent?.context?.properties?.sessionId,
124
+ collectedAt: trackingEvent.collectedAt,
125
+ expiredAt,
126
+ };
127
+ Logger.debug('Put tracking event', { trackingEventRecord, expiredAtType: typeof expiredAt });
128
+ return await DynamoDbClient.safePut(this.TABLE_NAME, trackingEventRecord);
129
+ };
130
+ }
131
131
  //# 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,8 +1,9 @@
1
- import { IPDataResponse } from '@adtrackify/at-tracking-event-types';
2
- export interface IPLookupTableRecord {
3
- ipAddress: string;
4
- lookupResponse: IPDataResponse | null;
5
- createdAt: string;
6
- updatedAt: string;
7
- }
8
- export declare const lookupIP: (ipAddress: string) => Promise<IPDataResponse | null>;
1
+ import { IPDataResponse } from '@adtrackify/at-tracking-event-types';
2
+ export interface IPLookupTableRecord {
3
+ ipAddress: string;
4
+ lookupResponse: IPDataResponse | null;
5
+ createdAt: string;
6
+ updatedAt: string;
7
+ expiresAt?: number;
8
+ }
9
+ export declare const lookupIP: (ipAddress: string) => Promise<IPDataResponse | null>;
@@ -1,56 +1,62 @@
1
- import { DateTime } from 'luxon';
2
- import { axiosHttpService, DynamoDbClient } from '../clients';
3
- import { Logger } from '../helpers';
4
- import { getCurrentTimestamp } from '../libs';
5
- import { isIP } from 'net';
6
- const API_KEY = 'aae45f1e1f97ecf79bdc2bef3e96ef71961c4cb977c3085429b421bc';
7
- const IP_LOOKUP_TABLE_NAME = process.env.IP_LOOKUP_TABLE_NAME;
8
- const getLookupApi = async (ipAddress) => {
9
- try {
10
- const client = axiosHttpService();
11
- const url = `https://api.ipdata.co/${ipAddress}?api-key=${API_KEY}`;
12
- const res = await client.get(url);
13
- return res?.data;
14
- }
15
- catch (error) {
16
- Logger.error('IPData Lookup API Failed', { error });
17
- return null;
18
- }
19
- };
20
- export const lookupIP = async (ipAddress) => {
21
- try {
22
- if (!ipAddress || isIP(ipAddress) === 0) {
23
- Logger.warn('Unable to lookup IP. Invalid Ip Address', { ipAddress });
24
- return null;
25
- }
26
- const cachedResult = await DynamoDbClient.safeGet(IP_LOOKUP_TABLE_NAME, 'ipAddress', ipAddress);
27
- const cacheExpirationDate = DateTime.utc().minus({ days: 6 }).toJSDate().toISOString();
28
- if (cachedResult && cachedResult?.updatedAt > cacheExpirationDate) {
29
- return cachedResult.lookupResponse;
30
- }
31
- const lookupResponse = await getLookupApi(ipAddress);
32
- let lookupTableRecord;
33
- if (cachedResult) {
34
- lookupTableRecord = {
35
- ...cachedResult,
36
- lookupResponse,
37
- updatedAt: getCurrentTimestamp(),
38
- };
39
- }
40
- else {
41
- lookupTableRecord = {
42
- ipAddress,
43
- lookupResponse,
44
- createdAt: getCurrentTimestamp(),
45
- updatedAt: getCurrentTimestamp()
46
- };
47
- }
48
- await DynamoDbClient.safePut(IP_LOOKUP_TABLE_NAME, lookupTableRecord);
49
- return lookupResponse;
50
- }
51
- catch (e) {
52
- Logger.error('Failed to lookup IP', { error: e });
53
- return null;
54
- }
55
- };
1
+ import { DateTime } from 'luxon';
2
+ import { axiosHttpService, DynamoDbClient } from '../clients';
3
+ import { Logger } from '../helpers';
4
+ import { getCurrentTimestamp } from '../libs';
5
+ import { isIP } from 'net';
6
+ const API_KEY = 'aae45f1e1f97ecf79bdc2bef3e96ef71961c4cb977c3085429b421bc';
7
+ const IP_LOOKUP_TABLE_NAME = process.env.IP_LOOKUP_TABLE_NAME;
8
+ const getLookupApi = async (ipAddress) => {
9
+ try {
10
+ const client = axiosHttpService();
11
+ const url = `https://api.ipdata.co/${ipAddress}?api-key=${API_KEY}`;
12
+ const res = await client.get(url);
13
+ return res?.data;
14
+ }
15
+ catch (error) {
16
+ Logger.error('IPData Lookup API Failed', { error });
17
+ return null;
18
+ }
19
+ };
20
+ export const lookupIP = async (ipAddress) => {
21
+ try {
22
+ if (!ipAddress || isIP(ipAddress) === 0) {
23
+ Logger.warn('Unable to lookup IP. Invalid Ip Address', { ipAddress });
24
+ return null;
25
+ }
26
+ const cachedResult = await DynamoDbClient.safeGet(IP_LOOKUP_TABLE_NAME, 'ipAddress', ipAddress);
27
+ const cacheExpirationDate = DateTime.utc().minus({ days: 6 }).toJSDate().toISOString();
28
+ if (cachedResult && cachedResult?.updatedAt > cacheExpirationDate) {
29
+ return cachedResult.lookupResponse;
30
+ }
31
+ const lookupResponse = await getLookupApi(ipAddress);
32
+ let lookupTableRecord;
33
+ if (cachedResult) {
34
+ lookupTableRecord = {
35
+ ...cachedResult,
36
+ lookupResponse,
37
+ updatedAt: getCurrentTimestamp(),
38
+ };
39
+ if (!cachedResult?.expiresAt) {
40
+ const expiresAt = DateTime.now().plus({ days: 15 }).toSeconds();
41
+ lookupTableRecord.expiresAt = expiresAt;
42
+ }
43
+ }
44
+ else {
45
+ const expiresAt = DateTime.now().plus({ days: 15 }).toSeconds();
46
+ lookupTableRecord = {
47
+ ipAddress,
48
+ lookupResponse,
49
+ createdAt: getCurrentTimestamp(),
50
+ updatedAt: getCurrentTimestamp(),
51
+ expiresAt
52
+ };
53
+ }
54
+ await DynamoDbClient.safePut(IP_LOOKUP_TABLE_NAME, lookupTableRecord);
55
+ return lookupResponse;
56
+ }
57
+ catch (e) {
58
+ Logger.error('Failed to lookup IP', { error: e });
59
+ return null;
60
+ }
61
+ };
56
62
  //# sourceMappingURL=ipdata-lookup-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ipdata-lookup-service.js","sourceRoot":"","sources":["../../../src/services/ipdata-lookup-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,MAAM,OAAO,GAAG,0DAA0D,CAAC;AAC3E,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,oBAA8B,CAAC;AASxE,MAAM,YAAY,GAAG,KAAK,EAAE,SAAiB,EAAkC,EAAE;IAC/E,IAAI;QACF,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,yBAAyB,SAAS,YAAY,OAAO,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,IAAsB,CAAC;KACpC;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAiB,EAAkC,EAAE;IAClF,IAAI;QACF,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YACvC,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;YACtE,OAAO,IAAI,CAAC;SACb;QACD,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,WAAW,EAAE,SAAS,CAAwB,CAAC;QACvH,MAAM,mBAAmB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;QACvF,IAAI,YAAY,IAAI,YAAY,EAAE,SAAS,GAAG,mBAAmB,EAAE;YACjE,OAAO,YAAY,CAAC,cAAc,CAAC;SACpC;QAED,MAAM,cAAc,GAA0B,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;QAE5E,IAAI,iBAAsC,CAAC;QAC3C,IAAI,YAAY,EAAE;YAChB,iBAAiB,GAAG;gBAClB,GAAG,YAAY;gBACf,cAAc;gBACd,SAAS,EAAE,mBAAmB,EAAE;aACjC,CAAC;SACH;aAAM;YACL,iBAAiB,GAAG;gBAClB,SAAS;gBACT,cAAc;gBACd,SAAS,EAAE,mBAAmB,EAAE;gBAChC,SAAS,EAAE,mBAAmB,EAAE;aACjC,CAAC;SACH;QACD,MAAM,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;QACtE,OAAO,cAAc,CAAC;KACvB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;KACb;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"ipdata-lookup-service.js","sourceRoot":"","sources":["../../../src/services/ipdata-lookup-service.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { EventContext, LOG_EVENT_NAME, LogEvent, LogEventData, LogLevel, LogStorage } from '@adtrackify/at-tracking-event-types';
2
- export declare class LogEventService {
3
- private eventBridgeClient;
4
- private eventDetail;
5
- constructor(eventBusName: string);
6
- log: (source: string, pixelId: string, context: EventContext, logEventName: LOG_EVENT_NAME, logEventData: LogEventData, logId?: string) => Promise<void>;
7
- buildLogEvent: (pixelId: string, context: EventContext, logEventName: LOG_EVENT_NAME, logEventData: LogEventData, logId?: string) => LogEvent;
8
- buildLogEventData: (source: string, service: string, logLevel: LogLevel, message: string, logData?: any, logStorage?: LogStorage) => LogEventData;
9
- }
1
+ import { EventContext, LOG_EVENT_NAME, LogEvent, LogEventData, LogLevel, LogStorage } from '@adtrackify/at-tracking-event-types';
2
+ export declare class LogEventService {
3
+ private eventBridgeClient;
4
+ private eventDetail;
5
+ constructor(eventBusName: string);
6
+ log: (source: string, pixelId: string, context: EventContext, logEventName: LOG_EVENT_NAME, logEventData: LogEventData, logId?: string) => Promise<void>;
7
+ buildLogEvent: (pixelId: string, context: EventContext, logEventName: LOG_EVENT_NAME, logEventData: LogEventData, logId?: string) => LogEvent;
8
+ buildLogEventData: (source: string, service: string, logLevel: LogLevel, message: string, logData?: any, logStorage?: LogStorage) => LogEventData;
9
+ }
@@ -1,53 +1,53 @@
1
- import { INTERNAL_EVENT_TYPE } from '@adtrackify/at-tracking-event-types';
2
- import { EventBridgeClient } from '../clients';
3
- import { v4 as uuidv4 } from 'uuid';
4
- import { getCurrentTimestamp } from '../libs';
5
- const DEFAULT_LOG_STORAGE = {
6
- sendToDatadog: true,
7
- sendToEventDebugger: false,
8
- sendToSingleStore: false,
9
- };
10
- export class LogEventService {
11
- eventBridgeClient;
12
- eventDetail;
13
- constructor(eventBusName) {
14
- this.eventBridgeClient = new EventBridgeClient(eventBusName);
15
- this.eventDetail = 'incomingLogEvent';
16
- }
17
- log = async (source, pixelId, context, logEventName, logEventData, logId = uuidv4()) => {
18
- const logEvent = this.buildLogEvent(pixelId, context, logEventName, logEventData, logId);
19
- const eventData = {
20
- pixelId,
21
- logEvent
22
- };
23
- await this.eventBridgeClient.buildAndSendEvent(source, this.eventDetail, eventData);
24
- };
25
- buildLogEvent = (pixelId, context, logEventName, logEventData, logId = uuidv4()) => {
26
- const unixMsUtcTime = Date.now();
27
- const logEvent = {
28
- id: logId,
29
- pixelId,
30
- type: INTERNAL_EVENT_TYPE.LOG,
31
- name: logEventName,
32
- data: logEventData,
33
- version: '1.1.6',
34
- sentAtEpoch: unixMsUtcTime,
35
- collectedAt: getCurrentTimestamp(),
36
- source: 'server'
37
- };
38
- if (context)
39
- logEvent.context = context;
40
- return logEvent;
41
- };
42
- buildLogEventData = (source, service, logLevel, message, logData, logStorage = DEFAULT_LOG_STORAGE) => {
43
- return {
44
- source,
45
- service,
46
- logLevel,
47
- logMessage: message,
48
- ...logData,
49
- logStorage
50
- };
51
- };
52
- }
1
+ import { INTERNAL_EVENT_TYPE } from '@adtrackify/at-tracking-event-types';
2
+ import { EventBridgeClient } from '../clients';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import { getCurrentTimestamp } from '../libs';
5
+ const DEFAULT_LOG_STORAGE = {
6
+ sendToDatadog: true,
7
+ sendToEventDebugger: false,
8
+ sendToSingleStore: false,
9
+ };
10
+ export class LogEventService {
11
+ eventBridgeClient;
12
+ eventDetail;
13
+ constructor(eventBusName) {
14
+ this.eventBridgeClient = new EventBridgeClient(eventBusName);
15
+ this.eventDetail = 'incomingLogEvent';
16
+ }
17
+ log = async (source, pixelId, context, logEventName, logEventData, logId = uuidv4()) => {
18
+ const logEvent = this.buildLogEvent(pixelId, context, logEventName, logEventData, logId);
19
+ const eventData = {
20
+ pixelId,
21
+ logEvent
22
+ };
23
+ await this.eventBridgeClient.buildAndSendEvent(source, this.eventDetail, eventData);
24
+ };
25
+ buildLogEvent = (pixelId, context, logEventName, logEventData, logId = uuidv4()) => {
26
+ const unixMsUtcTime = Date.now();
27
+ const logEvent = {
28
+ id: logId,
29
+ pixelId,
30
+ type: INTERNAL_EVENT_TYPE.LOG,
31
+ name: logEventName,
32
+ data: logEventData,
33
+ version: '1.1.6',
34
+ sentAtEpoch: unixMsUtcTime,
35
+ collectedAt: getCurrentTimestamp(),
36
+ source: 'server'
37
+ };
38
+ if (context)
39
+ logEvent.context = context;
40
+ return logEvent;
41
+ };
42
+ buildLogEventData = (source, service, logLevel, message, logData, logStorage = DEFAULT_LOG_STORAGE) => {
43
+ return {
44
+ source,
45
+ service,
46
+ logLevel,
47
+ logMessage: message,
48
+ ...logData,
49
+ logStorage
50
+ };
51
+ };
52
+ }
53
53
  //# sourceMappingURL=log-event-service.js.map