@adtrackify/at-service-common 2.0.4 → 2.0.6

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 (177) hide show
  1. package/dist/cjs/__tests__/helpers/subscription-helper.spec.d.ts +1 -1
  2. package/dist/cjs/__tests__/helpers/subscription-helper.spec.js +52 -52
  3. package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  4. package/dist/cjs/__tests__/s3-client/s3-client.spec.js +26 -26
  5. package/dist/cjs/clients/generic/cognito-client.d.ts +19 -19
  6. package/dist/cjs/clients/generic/cognito-client.js +144 -144
  7. package/dist/cjs/clients/generic/cognito-client.js.map +1 -1
  8. package/dist/cjs/clients/generic/dynamodb-client.d.ts +15 -15
  9. package/dist/cjs/clients/generic/dynamodb-client.js +124 -126
  10. package/dist/cjs/clients/generic/dynamodb-client.js.map +1 -1
  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 +30 -30
  14. package/dist/cjs/clients/generic/http-client.js +35 -35
  15. package/dist/cjs/clients/generic/index.d.ts +6 -6
  16. package/dist/cjs/clients/generic/index.js +22 -22
  17. package/dist/cjs/clients/generic/s3-client.d.ts +14 -14
  18. package/dist/cjs/clients/generic/s3-client.js +82 -82
  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 +82 -82
  24. package/dist/cjs/clients/internal-api/accounts-client.js +82 -82
  25. package/dist/cjs/clients/internal-api/destinations-client.d.ts +54 -54
  26. package/dist/cjs/clients/internal-api/destinations-client.js +40 -40
  27. package/dist/cjs/clients/internal-api/index.d.ts +4 -4
  28. package/dist/cjs/clients/internal-api/index.js +20 -20
  29. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +57 -57
  30. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +49 -49
  31. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +61 -61
  32. package/dist/cjs/clients/internal-api/users-auth-client.js +77 -77
  33. package/dist/cjs/clients/third-party/index.d.ts +1 -1
  34. package/dist/cjs/clients/third-party/index.js +17 -17
  35. package/dist/cjs/clients/third-party/shopify-client.d.ts +90 -90
  36. package/dist/cjs/clients/third-party/shopify-client.js +125 -125
  37. package/dist/cjs/helpers/index.d.ts +5 -5
  38. package/dist/cjs/helpers/index.js +21 -21
  39. package/dist/cjs/helpers/input-validation-helper.d.ts +2 -2
  40. package/dist/cjs/helpers/input-validation-helper.js +22 -22
  41. package/dist/cjs/helpers/logging-helper.d.ts +15 -15
  42. package/dist/cjs/helpers/logging-helper.js +80 -80
  43. package/dist/cjs/helpers/response-helper.d.ts +36 -36
  44. package/dist/cjs/helpers/response-helper.js +41 -41
  45. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  46. package/dist/cjs/helpers/shopify-helper.js +28 -28
  47. package/dist/cjs/helpers/subscription-helper.d.ts +8 -8
  48. package/dist/cjs/helpers/subscription-helper.js +229 -186
  49. package/dist/cjs/helpers/subscription-helper.js.map +1 -1
  50. package/dist/cjs/index.d.ts +5 -5
  51. package/dist/cjs/index.js +21 -21
  52. package/dist/cjs/libs/clickId-parser.d.ts +18 -18
  53. package/dist/cjs/libs/clickId-parser.js +38 -38
  54. package/dist/cjs/libs/crypto.d.ts +1 -1
  55. package/dist/cjs/libs/crypto.js +12 -12
  56. package/dist/cjs/libs/dates.d.ts +3 -3
  57. package/dist/cjs/libs/dates.js +16 -16
  58. package/dist/cjs/libs/http-error.d.ts +21 -21
  59. package/dist/cjs/libs/http-error.js +59 -59
  60. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  61. package/dist/cjs/libs/http-status-codes.js +62 -62
  62. package/dist/cjs/libs/index.d.ts +8 -8
  63. package/dist/cjs/libs/index.js +24 -24
  64. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  65. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  66. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  67. package/dist/cjs/libs/referrer-parser/referrer-data.js +4712 -4712
  68. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  69. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +123 -123
  70. package/dist/cjs/libs/url.d.ts +1 -1
  71. package/dist/cjs/libs/url.js +13 -13
  72. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  73. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  74. package/dist/cjs/services/index.d.ts +2 -2
  75. package/dist/cjs/services/index.js +18 -18
  76. package/dist/cjs/services/ipdata-lookup-service.d.ts +8 -8
  77. package/dist/cjs/services/ipdata-lookup-service.js +59 -59
  78. package/dist/cjs/services/log-event-service.d.ts +9 -0
  79. package/dist/cjs/services/log-event-service.js +49 -0
  80. package/dist/cjs/services/log-event-service.js.map +1 -0
  81. package/dist/cjs/types/api-response.d.ts +6 -6
  82. package/dist/cjs/types/api-response.js +2 -2
  83. package/dist/cjs/types/index.d.ts +1 -1
  84. package/dist/cjs/types/index.js +17 -17
  85. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  86. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  87. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  88. package/dist/cjs/types/internal-events/index.js +17 -17
  89. package/dist/esm/__tests__/helpers/subscription-helper.spec.d.ts +1 -1
  90. package/dist/esm/__tests__/helpers/subscription-helper.spec.js +27 -27
  91. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  92. package/dist/esm/__tests__/s3-client/s3-client.spec.js +24 -24
  93. package/dist/esm/clients/generic/cognito-client.d.ts +19 -19
  94. package/dist/esm/clients/generic/cognito-client.js +139 -139
  95. package/dist/esm/clients/generic/cognito-client.js.map +1 -1
  96. package/dist/esm/clients/generic/dynamodb-client.d.ts +15 -15
  97. package/dist/esm/clients/generic/dynamodb-client.js +120 -122
  98. package/dist/esm/clients/generic/dynamodb-client.js.map +1 -1
  99. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  100. package/dist/esm/clients/generic/eventbridge-client.js +45 -45
  101. package/dist/esm/clients/generic/http-client.d.ts +30 -30
  102. package/dist/esm/clients/generic/http-client.js +28 -28
  103. package/dist/esm/clients/generic/index.d.ts +6 -6
  104. package/dist/esm/clients/generic/index.js +6 -6
  105. package/dist/esm/clients/generic/s3-client.d.ts +14 -14
  106. package/dist/esm/clients/generic/s3-client.js +78 -78
  107. package/dist/esm/clients/generic/sqs-client.d.ts +14 -14
  108. package/dist/esm/clients/generic/sqs-client.js +34 -34
  109. package/dist/esm/clients/index.d.ts +3 -3
  110. package/dist/esm/clients/index.js +3 -3
  111. package/dist/esm/clients/internal-api/accounts-client.d.ts +82 -82
  112. package/dist/esm/clients/internal-api/accounts-client.js +78 -78
  113. package/dist/esm/clients/internal-api/destinations-client.d.ts +54 -54
  114. package/dist/esm/clients/internal-api/destinations-client.js +36 -36
  115. package/dist/esm/clients/internal-api/index.d.ts +4 -4
  116. package/dist/esm/clients/internal-api/index.js +4 -4
  117. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +57 -57
  118. package/dist/esm/clients/internal-api/shopify-app-install-client.js +42 -42
  119. package/dist/esm/clients/internal-api/users-auth-client.d.ts +61 -61
  120. package/dist/esm/clients/internal-api/users-auth-client.js +73 -73
  121. package/dist/esm/clients/third-party/index.d.ts +1 -1
  122. package/dist/esm/clients/third-party/index.js +1 -1
  123. package/dist/esm/clients/third-party/shopify-client.d.ts +90 -90
  124. package/dist/esm/clients/third-party/shopify-client.js +121 -121
  125. package/dist/esm/helpers/index.d.ts +5 -5
  126. package/dist/esm/helpers/index.js +5 -5
  127. package/dist/esm/helpers/input-validation-helper.d.ts +2 -2
  128. package/dist/esm/helpers/input-validation-helper.js +18 -18
  129. package/dist/esm/helpers/logging-helper.d.ts +15 -15
  130. package/dist/esm/helpers/logging-helper.js +53 -53
  131. package/dist/esm/helpers/response-helper.d.ts +36 -36
  132. package/dist/esm/helpers/response-helper.js +35 -35
  133. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  134. package/dist/esm/helpers/shopify-helper.js +23 -23
  135. package/dist/esm/helpers/subscription-helper.d.ts +8 -8
  136. package/dist/esm/helpers/subscription-helper.js +224 -181
  137. package/dist/esm/helpers/subscription-helper.js.map +1 -1
  138. package/dist/esm/index.d.ts +5 -5
  139. package/dist/esm/index.js +5 -5
  140. package/dist/esm/libs/clickId-parser.d.ts +18 -18
  141. package/dist/esm/libs/clickId-parser.js +34 -34
  142. package/dist/esm/libs/crypto.d.ts +1 -1
  143. package/dist/esm/libs/crypto.js +5 -5
  144. package/dist/esm/libs/dates.d.ts +3 -3
  145. package/dist/esm/libs/dates.js +10 -10
  146. package/dist/esm/libs/http-error.d.ts +21 -21
  147. package/dist/esm/libs/http-error.js +55 -55
  148. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  149. package/dist/esm/libs/http-status-codes.js +59 -59
  150. package/dist/esm/libs/index.d.ts +8 -8
  151. package/dist/esm/libs/index.js +8 -8
  152. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  153. package/dist/esm/libs/referrer-parser/index.js +2 -2
  154. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  155. package/dist/esm/libs/referrer-parser/referrer-data.js +4709 -4709
  156. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  157. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +116 -116
  158. package/dist/esm/libs/url.d.ts +1 -1
  159. package/dist/esm/libs/url.js +9 -9
  160. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  161. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  162. package/dist/esm/services/index.d.ts +2 -2
  163. package/dist/esm/services/index.js +2 -2
  164. package/dist/esm/services/ipdata-lookup-service.d.ts +8 -8
  165. package/dist/esm/services/ipdata-lookup-service.js +55 -55
  166. package/dist/esm/services/log-event-service.d.ts +9 -0
  167. package/dist/esm/services/log-event-service.js +45 -0
  168. package/dist/esm/services/log-event-service.js.map +1 -0
  169. package/dist/esm/types/api-response.d.ts +6 -6
  170. package/dist/esm/types/api-response.js +1 -1
  171. package/dist/esm/types/index.d.ts +1 -1
  172. package/dist/esm/types/index.js +1 -1
  173. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  174. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  175. package/dist/esm/types/internal-events/index.d.ts +1 -1
  176. package/dist/esm/types/internal-events/index.js +1 -1
  177. package/package.json +2 -2
@@ -1,20 +1,20 @@
1
- /// <reference types="node" />
2
- import url from 'url';
3
- export interface ReferrerDictionary {
4
- [domain: string]: {
5
- name: string;
6
- medium: string;
7
- params?: string[];
8
- };
9
- }
10
- export declare class Referrer {
11
- known: boolean;
12
- referrer: string | null;
13
- medium: string;
14
- search_parameter: string | null;
15
- search_term: string | string[] | null | undefined;
16
- referrers: any;
17
- uri?: url.UrlWithStringQuery;
18
- constructor(referrer_url?: string, current_url?: string);
19
- _lookup_referrer: (ref_host: string | null | undefined, ref_path: string | null, include_path: boolean) => any;
20
- }
1
+ /// <reference types="node" />
2
+ import url from 'url';
3
+ export interface ReferrerDictionary {
4
+ [domain: string]: {
5
+ name: string;
6
+ medium: string;
7
+ params?: string[];
8
+ };
9
+ }
10
+ export declare class Referrer {
11
+ known: boolean;
12
+ referrer: string | null;
13
+ medium: string;
14
+ search_parameter: string | null;
15
+ search_term: string | string[] | null | undefined;
16
+ referrers: any;
17
+ uri?: url.UrlWithStringQuery;
18
+ constructor(referrer_url?: string, current_url?: string);
19
+ _lookup_referrer: (ref_host: string | null | undefined, ref_path: string | null, include_path: boolean) => any;
20
+ }
@@ -1,117 +1,117 @@
1
- import url from 'url';
2
- import querystring from 'querystring';
3
- import { REFERRER_DATA } from './referrer-data.js';
4
- const REFERERS = loadReferrers(REFERRER_DATA);
5
- function loadReferrers(source) {
6
- const referrers_dict = {};
7
- for (const medium in source) {
8
- const conf_list = source[medium];
9
- for (const referrer_name in conf_list) {
10
- const config = conf_list[referrer_name];
11
- let params = null;
12
- if (config.parameters) {
13
- params = config.parameters.map(function (p) { return p.toLowerCase(); });
14
- }
15
- config.domains.forEach(function (domain) {
16
- referrers_dict[domain] = {
17
- 'name': referrer_name,
18
- 'medium': medium
19
- };
20
- if (params) {
21
- referrers_dict[domain]['params'] = params;
22
- }
23
- });
24
- }
25
- }
26
- return referrers_dict;
27
- }
28
- export class Referrer {
29
- known;
30
- referrer;
31
- medium;
32
- search_parameter;
33
- search_term;
34
- referrers;
35
- uri;
36
- constructor(referrer_url, current_url) {
37
- this.known = false;
38
- this.referrer = null;
39
- this.medium = 'unknown';
40
- this.search_parameter = null;
41
- this.search_term = null;
42
- if (!referrer_url)
43
- return;
44
- const ref_uri = url.parse(referrer_url);
45
- const ref_host = ref_uri.hostname;
46
- this.known = Boolean(~['http:', 'https:'].indexOf(ref_uri.protocol));
47
- this.uri = ref_uri;
48
- if (!this.known)
49
- return;
50
- if (current_url) {
51
- const curr_uri = url.parse(current_url);
52
- const curr_host = curr_uri.hostname;
53
- if (curr_host == ref_host) {
54
- this.medium = 'internal';
55
- return;
56
- }
57
- }
58
- let referrer = this._lookup_referrer(ref_host, ref_uri.pathname, true);
59
- if (!referrer) {
60
- referrer = this._lookup_referrer(ref_host, ref_uri.pathname, false);
61
- if (!referrer) {
62
- this.medium = 'unknown';
63
- return;
64
- }
65
- }
66
- this.referrer = referrer['name'];
67
- this.medium = referrer['medium'];
68
- if (referrer['medium'] == 'search') {
69
- if (!referrer['params'])
70
- return;
71
- const pqs = querystring.parse(ref_uri?.query || '');
72
- for (const param in pqs) {
73
- const val = pqs[param];
74
- if (referrer['params'].indexOf(param.toLowerCase()) !== -1) {
75
- this.search_parameter = param;
76
- this.search_term = val;
77
- }
78
- }
79
- }
80
- }
81
- _lookup_referrer = (ref_host, ref_path, include_path) => {
82
- let referrer = null;
83
- if (include_path) {
84
- const hostpath = (ref_host ?? '') + (ref_path ?? '');
85
- referrer = REFERERS[hostpath];
86
- }
87
- else {
88
- referrer = REFERERS[ref_host ?? ''];
89
- }
90
- if (!referrer) {
91
- if (include_path) {
92
- const path_parts = ref_path?.split('/');
93
- if (path_parts && path_parts.length > 1) {
94
- try {
95
- referrer = REFERERS[ref_host + '/' + path_parts[1]];
96
- }
97
- catch (e) { }
98
- }
99
- }
100
- }
101
- if (!referrer) {
102
- try {
103
- const idx = (ref_host ?? '').indexOf('.');
104
- if (idx === -1)
105
- return null;
106
- const slicedHost = ref_host?.slice(idx + 1);
107
- return this._lookup_referrer(slicedHost, ref_path, include_path);
108
- }
109
- catch (e) {
110
- return null;
111
- }
112
- }
113
- else
114
- return referrer;
115
- };
116
- }
1
+ import url from 'url';
2
+ import querystring from 'querystring';
3
+ import { REFERRER_DATA } from './referrer-data.js';
4
+ const REFERERS = loadReferrers(REFERRER_DATA);
5
+ function loadReferrers(source) {
6
+ const referrers_dict = {};
7
+ for (const medium in source) {
8
+ const conf_list = source[medium];
9
+ for (const referrer_name in conf_list) {
10
+ const config = conf_list[referrer_name];
11
+ let params = null;
12
+ if (config.parameters) {
13
+ params = config.parameters.map(function (p) { return p.toLowerCase(); });
14
+ }
15
+ config.domains.forEach(function (domain) {
16
+ referrers_dict[domain] = {
17
+ 'name': referrer_name,
18
+ 'medium': medium
19
+ };
20
+ if (params) {
21
+ referrers_dict[domain]['params'] = params;
22
+ }
23
+ });
24
+ }
25
+ }
26
+ return referrers_dict;
27
+ }
28
+ export class Referrer {
29
+ known;
30
+ referrer;
31
+ medium;
32
+ search_parameter;
33
+ search_term;
34
+ referrers;
35
+ uri;
36
+ constructor(referrer_url, current_url) {
37
+ this.known = false;
38
+ this.referrer = null;
39
+ this.medium = 'unknown';
40
+ this.search_parameter = null;
41
+ this.search_term = null;
42
+ if (!referrer_url)
43
+ return;
44
+ const ref_uri = url.parse(referrer_url);
45
+ const ref_host = ref_uri.hostname;
46
+ this.known = Boolean(~['http:', 'https:'].indexOf(ref_uri.protocol));
47
+ this.uri = ref_uri;
48
+ if (!this.known)
49
+ return;
50
+ if (current_url) {
51
+ const curr_uri = url.parse(current_url);
52
+ const curr_host = curr_uri.hostname;
53
+ if (curr_host == ref_host) {
54
+ this.medium = 'internal';
55
+ return;
56
+ }
57
+ }
58
+ let referrer = this._lookup_referrer(ref_host, ref_uri.pathname, true);
59
+ if (!referrer) {
60
+ referrer = this._lookup_referrer(ref_host, ref_uri.pathname, false);
61
+ if (!referrer) {
62
+ this.medium = 'unknown';
63
+ return;
64
+ }
65
+ }
66
+ this.referrer = referrer['name'];
67
+ this.medium = referrer['medium'];
68
+ if (referrer['medium'] == 'search') {
69
+ if (!referrer['params'])
70
+ return;
71
+ const pqs = querystring.parse(ref_uri?.query || '');
72
+ for (const param in pqs) {
73
+ const val = pqs[param];
74
+ if (referrer['params'].indexOf(param.toLowerCase()) !== -1) {
75
+ this.search_parameter = param;
76
+ this.search_term = val;
77
+ }
78
+ }
79
+ }
80
+ }
81
+ _lookup_referrer = (ref_host, ref_path, include_path) => {
82
+ let referrer = null;
83
+ if (include_path) {
84
+ const hostpath = (ref_host ?? '') + (ref_path ?? '');
85
+ referrer = REFERERS[hostpath];
86
+ }
87
+ else {
88
+ referrer = REFERERS[ref_host ?? ''];
89
+ }
90
+ if (!referrer) {
91
+ if (include_path) {
92
+ const path_parts = ref_path?.split('/');
93
+ if (path_parts && path_parts.length > 1) {
94
+ try {
95
+ referrer = REFERERS[ref_host + '/' + path_parts[1]];
96
+ }
97
+ catch (e) { }
98
+ }
99
+ }
100
+ }
101
+ if (!referrer) {
102
+ try {
103
+ const idx = (ref_host ?? '').indexOf('.');
104
+ if (idx === -1)
105
+ return null;
106
+ const slicedHost = ref_host?.slice(idx + 1);
107
+ return this._lookup_referrer(slicedHost, ref_path, include_path);
108
+ }
109
+ catch (e) {
110
+ return null;
111
+ }
112
+ }
113
+ else
114
+ return referrer;
115
+ };
116
+ }
117
117
  //# sourceMappingURL=referrer-parser-util.js.map
@@ -1 +1 @@
1
- export declare const mapObjectToQueryString: (inputObj: any) => string;
1
+ export declare const mapObjectToQueryString: (inputObj: any) => string;
@@ -1,10 +1,10 @@
1
- export const mapObjectToQueryString = (inputObj) => {
2
- const qsp = Object.entries(inputObj).sort((a, b) => a[0] < b[0] ? -1 : 1);
3
- const urlParams = new URLSearchParams();
4
- qsp.map(p => {
5
- urlParams.append(p[0], p[1]);
6
- });
7
- const qs = urlParams.toString();
8
- return qs;
9
- };
1
+ export const mapObjectToQueryString = (inputObj) => {
2
+ const qsp = Object.entries(inputObj).sort((a, b) => a[0] < b[0] ? -1 : 1);
3
+ const urlParams = new URLSearchParams();
4
+ qsp.map(p => {
5
+ urlParams.append(p[0], p[1]);
6
+ });
7
+ const qs = urlParams.toString();
8
+ return qs;
9
+ };
10
10
  //# sourceMappingURL=url.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,2 +1,2 @@
1
- export * from './eventbridge-integration-service.js';
2
- export * from './ipdata-lookup-service.js';
1
+ export * from './eventbridge-integration-service.js';
2
+ export * from './ipdata-lookup-service.js';
@@ -1,3 +1,3 @@
1
- export * from './eventbridge-integration-service.js';
2
- export * from './ipdata-lookup-service.js';
1
+ export * from './eventbridge-integration-service.js';
2
+ export * from './ipdata-lookup-service.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
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
+ }
8
+ export declare const lookupIP: (ipAddress: string) => Promise<IPDataResponse | null>;
@@ -1,56 +1,56 @@
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: 2 }).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: 2 }).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
+ };
56
56
  //# sourceMappingURL=ipdata-lookup-service.js.map
@@ -0,0 +1,9 @@
1
+ import { LOG_EVENT_NAME, LogContext, LogEvent, LogEventData, LogLevel } 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, logEventName: LOG_EVENT_NAME, logEventData: LogEventData, logId?: string) => Promise<void>;
7
+ buildLogEvent: (pixelId: string, logEventName: LOG_EVENT_NAME, logEventData: LogEventData, logId?: string) => LogEvent;
8
+ buildLogEventData: (source: string, service: string, logLevel: LogLevel, message: string, messageContext?: LogContext, code?: string) => LogEventData;
9
+ }
@@ -0,0 +1,45 @@
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
+ export class LogEventService {
6
+ eventBridgeClient;
7
+ eventDetail;
8
+ constructor(eventBusName) {
9
+ this.eventBridgeClient = new EventBridgeClient(eventBusName);
10
+ this.eventDetail = 'incomingLogEvent';
11
+ }
12
+ log = async (source, pixelId, logEventName, logEventData, logId = uuidv4()) => {
13
+ const logEvent = this.buildLogEvent(pixelId, logEventName, logEventData, logId);
14
+ const eventData = {
15
+ pixelId,
16
+ logEvent
17
+ };
18
+ await this.eventBridgeClient.buildAndSendEvent(source, this.eventDetail, eventData);
19
+ };
20
+ buildLogEvent = (pixelId, logEventName, logEventData, logId = uuidv4()) => {
21
+ const logTime = Date.now();
22
+ const logEvent = {
23
+ id: logId,
24
+ pixelId,
25
+ type: INTERNAL_EVENT_TYPE.LOG,
26
+ name: logEventName,
27
+ data: logEventData,
28
+ version: '1.1.6',
29
+ sentAtEpoch: logTime,
30
+ collectedAt: getCurrentTimestamp()
31
+ };
32
+ return logEvent;
33
+ };
34
+ buildLogEventData = (source, service, logLevel, message, messageContext, code) => {
35
+ return {
36
+ source,
37
+ service,
38
+ code,
39
+ message,
40
+ context: messageContext,
41
+ logLevel,
42
+ };
43
+ };
44
+ }
45
+ //# sourceMappingURL=log-event-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-event-service.js","sourceRoot":"","sources":["../../../src/services/log-event-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAgE,MAAM,qCAAqC,CAAC;AACxI,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,OAAO,eAAe;IAClB,iBAAiB,CAAoB;IACrC,WAAW,CAAQ;IAE3B,YAAY,YAAoB;QAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;IACxC,CAAC;IAED,GAAG,GAAG,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,YAA4B,EAAE,YAA0B,EAAE,KAAK,GAAG,MAAM,EAAE,EAAE,EAAE;QAC1H,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG;YAChB,OAAO;YACP,QAAQ;SACT,CAAA;QACD,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC,CAAA;IAED,aAAa,GAAG,CAAC,OAAe,EAAE,YAA4B,EAAE,YAA0B,EAAE,KAAK,GAAG,MAAM,EAAE,EAAY,EAAE;QACxH,MAAM,OAAO,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAa;YACzB,EAAE,EAAE,KAAK;YACT,OAAO;YACP,IAAI,EAAE,mBAAmB,CAAC,GAAG;YAC7B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,mBAAmB,EAAE;SACnC,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAA;IAED,iBAAiB,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,QAAkB,EAAE,OAAe,EAAE,cAA2B,EAAE,IAAa,EAAgB,EAAE;QACrJ,OAAO;YACL,MAAM;YACN,OAAO;YACP,IAAI;YACJ,OAAO;YACP,OAAO,EAAE,cAAc;YACvB,QAAQ;SACT,CAAC;IACJ,CAAC,CAAA;CACF"}
@@ -1,6 +1,6 @@
1
- import { AxiosResponseHeaders } from 'axios';
2
- export interface ApiResponse<T> {
3
- data: T;
4
- status: number;
5
- headers?: AxiosResponseHeaders;
6
- }
1
+ import { AxiosResponseHeaders } from 'axios';
2
+ export interface ApiResponse<T> {
3
+ data: T;
4
+ status: number;
5
+ headers?: AxiosResponseHeaders;
6
+ }
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=api-response.js.map
@@ -1 +1 @@
1
- export * from './internal-events/index.js';
1
+ export * from './internal-events/index.js';
@@ -1,2 +1,2 @@
1
- export * from './internal-events/index.js';
1
+ export * from './internal-events/index.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -1,20 +1,20 @@
1
- export declare enum ADTRACKIFY_EVENT_TYPES {
2
- NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED = "shopifySubscriptionCreated",
3
- NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED = "subscription.signupCompleted",
4
- REQUEST_SET_ACCOUNT_OWNER = "setAccountOwner",
5
- REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID = "setAccountSubscriptionId"
6
- }
7
- export declare enum ADTRACKIFY_EVENT_SOURCES {
8
- SUBSCRIPTIONS = "subscriptions"
9
- }
10
- export declare const enum PostmarkRequestType {
11
- SINGLE_EMAIL = "single_email",
12
- TEMPLATE_EMAIL = "template_email"
13
- }
14
- export declare enum ADTRACKIFY_EVENT_BRIDGE_EVENTS {
15
- SEND_POSTMARK_EMAIL = "integration.sendPostmarkEmail",
16
- NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED = "shopifySubscriptionCreated",
17
- NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED = "subscription.signupCompleted",
18
- REQUEST_SET_ACCOUNT_OWNER = "setAccountOwner",
19
- REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID = "setAccountSubscriptionId"
20
- }
1
+ export declare enum ADTRACKIFY_EVENT_TYPES {
2
+ NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED = "shopifySubscriptionCreated",
3
+ NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED = "subscription.signupCompleted",
4
+ REQUEST_SET_ACCOUNT_OWNER = "setAccountOwner",
5
+ REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID = "setAccountSubscriptionId"
6
+ }
7
+ export declare enum ADTRACKIFY_EVENT_SOURCES {
8
+ SUBSCRIPTIONS = "subscriptions"
9
+ }
10
+ export declare const enum PostmarkRequestType {
11
+ SINGLE_EMAIL = "single_email",
12
+ TEMPLATE_EMAIL = "template_email"
13
+ }
14
+ export declare enum ADTRACKIFY_EVENT_BRIDGE_EVENTS {
15
+ SEND_POSTMARK_EMAIL = "integration.sendPostmarkEmail",
16
+ NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED = "shopifySubscriptionCreated",
17
+ NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED = "subscription.signupCompleted",
18
+ REQUEST_SET_ACCOUNT_OWNER = "setAccountOwner",
19
+ REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID = "setAccountSubscriptionId"
20
+ }