@adtrackify/at-service-common 2.0.13 → 2.0.15

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 (179) 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/dynamodb-client.d.ts +15 -15
  8. package/dist/cjs/clients/generic/dynamodb-client.js +124 -124
  9. package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
  10. package/dist/cjs/clients/generic/eventbridge-client.js +49 -49
  11. package/dist/cjs/clients/generic/http-client.d.ts +30 -30
  12. package/dist/cjs/clients/generic/http-client.js +35 -35
  13. package/dist/cjs/clients/generic/index.d.ts +6 -6
  14. package/dist/cjs/clients/generic/index.js +22 -22
  15. package/dist/cjs/clients/generic/s3-client.d.ts +14 -14
  16. package/dist/cjs/clients/generic/s3-client.js +82 -82
  17. package/dist/cjs/clients/generic/sqs-client.d.ts +14 -14
  18. package/dist/cjs/clients/generic/sqs-client.js +38 -38
  19. package/dist/cjs/clients/index.d.ts +3 -3
  20. package/dist/cjs/clients/index.js +19 -19
  21. package/dist/cjs/clients/internal-api/accounts-client.d.ts +82 -82
  22. package/dist/cjs/clients/internal-api/accounts-client.js +82 -82
  23. package/dist/cjs/clients/internal-api/destinations-client.d.ts +54 -54
  24. package/dist/cjs/clients/internal-api/destinations-client.js +40 -40
  25. package/dist/cjs/clients/internal-api/identity-client.d.ts +7 -7
  26. package/dist/cjs/clients/internal-api/identity-client.js +41 -41
  27. package/dist/cjs/clients/internal-api/index.d.ts +5 -5
  28. package/dist/cjs/clients/internal-api/index.js +21 -21
  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 +104 -104
  49. package/dist/cjs/index.d.ts +5 -5
  50. package/dist/cjs/index.js +21 -21
  51. package/dist/cjs/libs/clickId-parser.d.ts +23 -23
  52. package/dist/cjs/libs/clickId-parser.js +49 -49
  53. package/dist/cjs/libs/crypto.d.ts +1 -1
  54. package/dist/cjs/libs/crypto.js +12 -12
  55. package/dist/cjs/libs/dates.d.ts +3 -3
  56. package/dist/cjs/libs/dates.js +16 -16
  57. package/dist/cjs/libs/http-error.d.ts +21 -21
  58. package/dist/cjs/libs/http-error.js +59 -59
  59. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  60. package/dist/cjs/libs/http-status-codes.js +62 -62
  61. package/dist/cjs/libs/index.d.ts +8 -8
  62. package/dist/cjs/libs/index.js +24 -24
  63. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  64. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  65. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  66. package/dist/cjs/libs/referrer-parser/referrer-data.js +4712 -4712
  67. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  68. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +128 -123
  69. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  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 +4 -4
  75. package/dist/cjs/services/index.js +20 -20
  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 -9
  79. package/dist/cjs/services/log-event-service.js +50 -50
  80. package/dist/cjs/services/metric-event-service.d.ts +9 -9
  81. package/dist/cjs/services/metric-event-service.js +49 -49
  82. package/dist/cjs/types/api-response.d.ts +6 -6
  83. package/dist/cjs/types/api-response.js +2 -2
  84. package/dist/cjs/types/index.d.ts +1 -1
  85. package/dist/cjs/types/index.js +17 -17
  86. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  87. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  88. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  89. package/dist/cjs/types/internal-events/index.js +17 -17
  90. package/dist/esm/__tests__/helpers/subscription-helper.spec.d.ts +1 -1
  91. package/dist/esm/__tests__/helpers/subscription-helper.spec.js +27 -27
  92. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  93. package/dist/esm/__tests__/s3-client/s3-client.spec.js +24 -24
  94. package/dist/esm/clients/generic/cognito-client.d.ts +19 -19
  95. package/dist/esm/clients/generic/cognito-client.js +139 -139
  96. package/dist/esm/clients/generic/dynamodb-client.d.ts +15 -15
  97. package/dist/esm/clients/generic/dynamodb-client.js +120 -120
  98. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  99. package/dist/esm/clients/generic/eventbridge-client.js +45 -45
  100. package/dist/esm/clients/generic/http-client.d.ts +30 -30
  101. package/dist/esm/clients/generic/http-client.js +28 -28
  102. package/dist/esm/clients/generic/index.d.ts +6 -6
  103. package/dist/esm/clients/generic/index.js +6 -6
  104. package/dist/esm/clients/generic/s3-client.d.ts +14 -14
  105. package/dist/esm/clients/generic/s3-client.js +78 -78
  106. package/dist/esm/clients/generic/sqs-client.d.ts +14 -14
  107. package/dist/esm/clients/generic/sqs-client.js +34 -34
  108. package/dist/esm/clients/index.d.ts +3 -3
  109. package/dist/esm/clients/index.js +3 -3
  110. package/dist/esm/clients/internal-api/accounts-client.d.ts +82 -82
  111. package/dist/esm/clients/internal-api/accounts-client.js +78 -78
  112. package/dist/esm/clients/internal-api/destinations-client.d.ts +54 -54
  113. package/dist/esm/clients/internal-api/destinations-client.js +36 -36
  114. package/dist/esm/clients/internal-api/identity-client.d.ts +7 -7
  115. package/dist/esm/clients/internal-api/identity-client.js +37 -37
  116. package/dist/esm/clients/internal-api/index.d.ts +5 -5
  117. package/dist/esm/clients/internal-api/index.js +5 -5
  118. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +57 -57
  119. package/dist/esm/clients/internal-api/shopify-app-install-client.js +42 -42
  120. package/dist/esm/clients/internal-api/users-auth-client.d.ts +61 -61
  121. package/dist/esm/clients/internal-api/users-auth-client.js +73 -73
  122. package/dist/esm/clients/third-party/index.d.ts +1 -1
  123. package/dist/esm/clients/third-party/index.js +1 -1
  124. package/dist/esm/clients/third-party/shopify-client.d.ts +90 -90
  125. package/dist/esm/clients/third-party/shopify-client.js +121 -121
  126. package/dist/esm/helpers/index.d.ts +5 -5
  127. package/dist/esm/helpers/index.js +5 -5
  128. package/dist/esm/helpers/input-validation-helper.d.ts +2 -2
  129. package/dist/esm/helpers/input-validation-helper.js +18 -18
  130. package/dist/esm/helpers/logging-helper.d.ts +15 -15
  131. package/dist/esm/helpers/logging-helper.js +53 -53
  132. package/dist/esm/helpers/response-helper.d.ts +36 -36
  133. package/dist/esm/helpers/response-helper.js +35 -35
  134. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  135. package/dist/esm/helpers/shopify-helper.js +23 -23
  136. package/dist/esm/helpers/subscription-helper.d.ts +8 -8
  137. package/dist/esm/helpers/subscription-helper.js +99 -99
  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 +23 -23
  141. package/dist/esm/libs/clickId-parser.js +45 -45
  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 +121 -116
  158. package/dist/esm/libs/referrer-parser/referrer-parser-util.js.map +1 -1
  159. package/dist/esm/libs/url.d.ts +1 -1
  160. package/dist/esm/libs/url.js +9 -9
  161. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  162. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  163. package/dist/esm/services/index.d.ts +4 -4
  164. package/dist/esm/services/index.js +4 -4
  165. package/dist/esm/services/ipdata-lookup-service.d.ts +8 -8
  166. package/dist/esm/services/ipdata-lookup-service.js +55 -55
  167. package/dist/esm/services/log-event-service.d.ts +9 -9
  168. package/dist/esm/services/log-event-service.js +46 -46
  169. package/dist/esm/services/metric-event-service.d.ts +9 -9
  170. package/dist/esm/services/metric-event-service.js +45 -45
  171. package/dist/esm/types/api-response.d.ts +6 -6
  172. package/dist/esm/types/api-response.js +1 -1
  173. package/dist/esm/types/index.d.ts +1 -1
  174. package/dist/esm/types/index.js +1 -1
  175. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  176. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  177. package/dist/esm/types/internal-events/index.d.ts +1 -1
  178. package/dist/esm/types/internal-events/index.js +1 -1
  179. package/package.json +7 -7
@@ -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,122 @@
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
+ this.medium = 'none';
44
+ this.referrer = 'direct';
45
+ return;
46
+ }
47
+ const ref_uri = url.parse(referrer_url);
48
+ const ref_host = ref_uri.hostname;
49
+ this.known = Boolean(~['http:', 'https:'].indexOf(ref_uri.protocol));
50
+ this.uri = ref_uri;
51
+ if (!this.known)
52
+ return;
53
+ if (current_url) {
54
+ const curr_uri = url.parse(current_url);
55
+ const curr_host = curr_uri.hostname;
56
+ if (curr_host == ref_host) {
57
+ this.medium = 'internal';
58
+ this.referrer = 'internal';
59
+ return;
60
+ }
61
+ }
62
+ let referrer = this._lookup_referrer(ref_host, ref_uri.pathname, true);
63
+ if (!referrer) {
64
+ referrer = this._lookup_referrer(ref_host, ref_uri.pathname, false);
65
+ if (!referrer) {
66
+ this.medium = 'referral';
67
+ this.referrer = ref_host;
68
+ return;
69
+ }
70
+ }
71
+ this.referrer = referrer['name'];
72
+ this.medium = referrer['medium'];
73
+ if (referrer['medium'] == 'search') {
74
+ if (!referrer['params'])
75
+ return;
76
+ const pqs = querystring.parse(ref_uri?.query || '');
77
+ for (const param in pqs) {
78
+ const val = pqs[param];
79
+ if (referrer['params'].indexOf(param.toLowerCase()) !== -1) {
80
+ this.search_parameter = param;
81
+ this.search_term = val;
82
+ }
83
+ }
84
+ }
85
+ }
86
+ _lookup_referrer = (ref_host, ref_path, include_path) => {
87
+ let referrer = null;
88
+ if (include_path) {
89
+ const hostpath = (ref_host ?? '') + (ref_path ?? '');
90
+ referrer = REFERERS[hostpath];
91
+ }
92
+ else {
93
+ referrer = REFERERS[ref_host ?? ''];
94
+ }
95
+ if (!referrer) {
96
+ if (include_path) {
97
+ const path_parts = ref_path?.split('/');
98
+ if (path_parts && path_parts.length > 1) {
99
+ try {
100
+ referrer = REFERERS[ref_host + '/' + path_parts[1]];
101
+ }
102
+ catch (e) { }
103
+ }
104
+ }
105
+ }
106
+ if (!referrer) {
107
+ try {
108
+ const idx = (ref_host ?? '').indexOf('.');
109
+ if (idx === -1)
110
+ return null;
111
+ const slicedHost = ref_host?.slice(idx + 1);
112
+ return this._lookup_referrer(slicedHost, ref_path, include_path);
113
+ }
114
+ catch (e) {
115
+ return null;
116
+ }
117
+ }
118
+ else
119
+ return referrer;
120
+ };
121
+ }
117
122
  //# sourceMappingURL=referrer-parser-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"referrer-parser-util.js","sourceRoot":"","sources":["../../../../src/libs/referrer-parser/referrer-parser-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"referrer-parser-util.js","sourceRoot":"","sources":["../../../../src/libs/referrer-parser/referrer-parser-util.ts"],"names":[],"mappings":"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"}
@@ -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,4 +1,4 @@
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';
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';
@@ -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';
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
5
  //# 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
@@ -1,9 +1,9 @@
1
- import { EventContext, 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, 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, messageContext?: LogContext, code?: string) => LogEventData;
9
- }
1
+ import { EventContext, 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, 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, messageContext?: LogContext, code?: string) => LogEventData;
9
+ }