@adtrackify/at-service-common 1.3.0 → 2.0.0

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 (169) 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 +126 -126
  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/index.d.ts +4 -4
  26. package/dist/cjs/clients/internal-api/index.js +20 -20
  27. package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +57 -57
  28. package/dist/cjs/clients/internal-api/shopify-app-install-client.js +49 -49
  29. package/dist/cjs/clients/internal-api/users-auth-client.d.ts +61 -61
  30. package/dist/cjs/clients/internal-api/users-auth-client.js +77 -77
  31. package/dist/cjs/clients/third-party/index.d.ts +1 -1
  32. package/dist/cjs/clients/third-party/index.js +17 -17
  33. package/dist/cjs/clients/third-party/shopify-client.d.ts +90 -90
  34. package/dist/cjs/clients/third-party/shopify-client.js +125 -125
  35. package/dist/cjs/helpers/index.d.ts +5 -5
  36. package/dist/cjs/helpers/index.js +21 -21
  37. package/dist/cjs/helpers/input-validation-helper.d.ts +2 -2
  38. package/dist/cjs/helpers/input-validation-helper.js +22 -22
  39. package/dist/cjs/helpers/logging-helper.d.ts +15 -15
  40. package/dist/cjs/helpers/logging-helper.js +80 -80
  41. package/dist/cjs/helpers/response-helper.d.ts +36 -36
  42. package/dist/cjs/helpers/response-helper.js +41 -41
  43. package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
  44. package/dist/cjs/helpers/shopify-helper.js +28 -28
  45. package/dist/cjs/helpers/subscription-helper.d.ts +8 -8
  46. package/dist/cjs/helpers/subscription-helper.js +186 -186
  47. package/dist/cjs/index.d.ts +5 -5
  48. package/dist/cjs/index.js +21 -21
  49. package/dist/cjs/libs/clickId-parser.d.ts +18 -18
  50. package/dist/cjs/libs/clickId-parser.js +31 -31
  51. package/dist/cjs/libs/crypto.d.ts +1 -1
  52. package/dist/cjs/libs/crypto.js +12 -12
  53. package/dist/cjs/libs/dates.d.ts +3 -3
  54. package/dist/cjs/libs/dates.js +16 -16
  55. package/dist/cjs/libs/http-error.d.ts +21 -21
  56. package/dist/cjs/libs/http-error.js +59 -59
  57. package/dist/cjs/libs/http-status-codes.d.ts +58 -58
  58. package/dist/cjs/libs/http-status-codes.js +62 -62
  59. package/dist/cjs/libs/index.d.ts +8 -8
  60. package/dist/cjs/libs/index.js +24 -24
  61. package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
  62. package/dist/cjs/libs/referrer-parser/index.js +18 -18
  63. package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
  64. package/dist/cjs/libs/referrer-parser/referrer-data.js +4712 -4712
  65. package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  66. package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +123 -123
  67. package/dist/cjs/libs/url.d.ts +1 -1
  68. package/dist/cjs/libs/url.js +13 -13
  69. package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
  70. package/dist/cjs/services/eventbridge-integration-service.js +28 -28
  71. package/dist/cjs/services/index.d.ts +2 -1
  72. package/dist/cjs/services/index.js +18 -17
  73. package/dist/cjs/services/index.js.map +1 -1
  74. package/dist/cjs/services/ipdata-lookup-service.d.ts +8 -0
  75. package/dist/cjs/services/ipdata-lookup-service.js +55 -0
  76. package/dist/cjs/services/ipdata-lookup-service.js.map +1 -0
  77. package/dist/cjs/types/api-response.d.ts +6 -6
  78. package/dist/cjs/types/api-response.js +2 -2
  79. package/dist/cjs/types/index.d.ts +1 -1
  80. package/dist/cjs/types/index.js +17 -17
  81. package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
  82. package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
  83. package/dist/cjs/types/internal-events/index.d.ts +1 -1
  84. package/dist/cjs/types/internal-events/index.js +17 -17
  85. package/dist/esm/__tests__/helpers/subscription-helper.spec.d.ts +1 -1
  86. package/dist/esm/__tests__/helpers/subscription-helper.spec.js +27 -27
  87. package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
  88. package/dist/esm/__tests__/s3-client/s3-client.spec.js +24 -24
  89. package/dist/esm/clients/generic/cognito-client.d.ts +19 -19
  90. package/dist/esm/clients/generic/cognito-client.js +139 -139
  91. package/dist/esm/clients/generic/dynamodb-client.d.ts +15 -15
  92. package/dist/esm/clients/generic/dynamodb-client.js +122 -122
  93. package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
  94. package/dist/esm/clients/generic/eventbridge-client.js +45 -45
  95. package/dist/esm/clients/generic/http-client.d.ts +30 -30
  96. package/dist/esm/clients/generic/http-client.js +28 -28
  97. package/dist/esm/clients/generic/index.d.ts +6 -6
  98. package/dist/esm/clients/generic/index.js +6 -6
  99. package/dist/esm/clients/generic/s3-client.d.ts +14 -14
  100. package/dist/esm/clients/generic/s3-client.js +78 -78
  101. package/dist/esm/clients/generic/sqs-client.d.ts +14 -14
  102. package/dist/esm/clients/generic/sqs-client.js +34 -34
  103. package/dist/esm/clients/index.d.ts +3 -3
  104. package/dist/esm/clients/index.js +3 -3
  105. package/dist/esm/clients/internal-api/accounts-client.d.ts +82 -82
  106. package/dist/esm/clients/internal-api/accounts-client.js +78 -78
  107. package/dist/esm/clients/internal-api/destinations-client.d.ts +54 -54
  108. package/dist/esm/clients/internal-api/destinations-client.js +36 -36
  109. package/dist/esm/clients/internal-api/index.d.ts +4 -4
  110. package/dist/esm/clients/internal-api/index.js +4 -4
  111. package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +57 -57
  112. package/dist/esm/clients/internal-api/shopify-app-install-client.js +42 -42
  113. package/dist/esm/clients/internal-api/users-auth-client.d.ts +61 -61
  114. package/dist/esm/clients/internal-api/users-auth-client.js +73 -73
  115. package/dist/esm/clients/third-party/index.d.ts +1 -1
  116. package/dist/esm/clients/third-party/index.js +1 -1
  117. package/dist/esm/clients/third-party/shopify-client.d.ts +90 -90
  118. package/dist/esm/clients/third-party/shopify-client.js +121 -121
  119. package/dist/esm/helpers/index.d.ts +5 -5
  120. package/dist/esm/helpers/index.js +5 -5
  121. package/dist/esm/helpers/input-validation-helper.d.ts +2 -2
  122. package/dist/esm/helpers/input-validation-helper.js +18 -18
  123. package/dist/esm/helpers/logging-helper.d.ts +15 -15
  124. package/dist/esm/helpers/logging-helper.js +53 -53
  125. package/dist/esm/helpers/response-helper.d.ts +36 -36
  126. package/dist/esm/helpers/response-helper.js +35 -35
  127. package/dist/esm/helpers/shopify-helper.d.ts +9 -9
  128. package/dist/esm/helpers/shopify-helper.js +23 -23
  129. package/dist/esm/helpers/subscription-helper.d.ts +8 -8
  130. package/dist/esm/helpers/subscription-helper.js +181 -181
  131. package/dist/esm/index.d.ts +5 -5
  132. package/dist/esm/index.js +5 -5
  133. package/dist/esm/libs/clickId-parser.d.ts +18 -18
  134. package/dist/esm/libs/clickId-parser.js +27 -27
  135. package/dist/esm/libs/crypto.d.ts +1 -1
  136. package/dist/esm/libs/crypto.js +5 -5
  137. package/dist/esm/libs/dates.d.ts +3 -3
  138. package/dist/esm/libs/dates.js +10 -10
  139. package/dist/esm/libs/http-error.d.ts +21 -21
  140. package/dist/esm/libs/http-error.js +55 -55
  141. package/dist/esm/libs/http-status-codes.d.ts +58 -58
  142. package/dist/esm/libs/http-status-codes.js +59 -59
  143. package/dist/esm/libs/index.d.ts +8 -8
  144. package/dist/esm/libs/index.js +8 -8
  145. package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
  146. package/dist/esm/libs/referrer-parser/index.js +2 -2
  147. package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
  148. package/dist/esm/libs/referrer-parser/referrer-data.js +4709 -4709
  149. package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
  150. package/dist/esm/libs/referrer-parser/referrer-parser-util.js +116 -116
  151. package/dist/esm/libs/url.d.ts +1 -1
  152. package/dist/esm/libs/url.js +9 -9
  153. package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
  154. package/dist/esm/services/eventbridge-integration-service.js +24 -24
  155. package/dist/esm/services/index.d.ts +2 -1
  156. package/dist/esm/services/index.js +2 -1
  157. package/dist/esm/services/index.js.map +1 -1
  158. package/dist/esm/services/ipdata-lookup-service.d.ts +8 -0
  159. package/dist/esm/services/ipdata-lookup-service.js +51 -0
  160. package/dist/esm/services/ipdata-lookup-service.js.map +1 -0
  161. package/dist/esm/types/api-response.d.ts +6 -6
  162. package/dist/esm/types/api-response.js +1 -1
  163. package/dist/esm/types/index.d.ts +1 -1
  164. package/dist/esm/types/index.js +1 -1
  165. package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
  166. package/dist/esm/types/internal-events/event-detail-types.js +24 -24
  167. package/dist/esm/types/internal-events/index.d.ts +1 -1
  168. package/dist/esm/types/internal-events/index.js +1 -1
  169. package/package.json +3 -3
@@ -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 +1,2 @@
1
- export * from './eventbridge-integration-service.js';
1
+ export * from './eventbridge-integration-service.js';
2
+ export * from './ipdata-lookup-service.js';
@@ -1,2 +1,3 @@
1
- export * from './eventbridge-integration-service.js';
1
+ export * from './eventbridge-integration-service.js';
2
+ export * from './ipdata-lookup-service.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC"}
@@ -0,0 +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>;
@@ -0,0 +1,51 @@
1
+ import { DateTime } from 'luxon';
2
+ import { axiosHttpService, DynamoDbClient } from '../clients';
3
+ import { Logger } from '../helpers';
4
+ import { getCurrentTimestamp } from '../libs';
5
+ const API_KEY = 'aae45f1e1f97ecf79bdc2bef3e96ef71961c4cb977c3085429b421bc';
6
+ const IP_LOOKUP_TABLE_NAME = process.env.IP_LOOKUP_TABLE_NAME;
7
+ const getLookupApi = async (ipAddress) => {
8
+ try {
9
+ const client = axiosHttpService();
10
+ const url = `https://api.ipdata.co/${ipAddress}?api-key=${API_KEY}`;
11
+ const res = await client.get(url);
12
+ return res?.data;
13
+ }
14
+ catch (error) {
15
+ Logger.error('IPData Lookup API Failed', { error });
16
+ return null;
17
+ }
18
+ };
19
+ export const lookupIP = async (ipAddress) => {
20
+ try {
21
+ const cachedResult = await DynamoDbClient.safeGet(IP_LOOKUP_TABLE_NAME, 'ipAddress', ipAddress);
22
+ const cacheExpirationDate = DateTime.utc().minus({ days: 2 }).toJSDate().toISOString();
23
+ if (cachedResult && cachedResult?.updatedAt > cacheExpirationDate) {
24
+ return cachedResult.lookupResponse;
25
+ }
26
+ const lookupResponse = await getLookupApi(ipAddress);
27
+ let lookupTableRecord;
28
+ if (cachedResult) {
29
+ lookupTableRecord = {
30
+ ...cachedResult,
31
+ lookupResponse,
32
+ updatedAt: getCurrentTimestamp(),
33
+ };
34
+ }
35
+ else {
36
+ lookupTableRecord = {
37
+ ipAddress,
38
+ lookupResponse,
39
+ createdAt: getCurrentTimestamp(),
40
+ updatedAt: getCurrentTimestamp()
41
+ };
42
+ }
43
+ await DynamoDbClient.safePut(IP_LOOKUP_TABLE_NAME, lookupTableRecord);
44
+ return lookupResponse;
45
+ }
46
+ catch (e) {
47
+ Logger.error('Failed to lookup IP', { error: e });
48
+ }
49
+ return null;
50
+ };
51
+ //# sourceMappingURL=ipdata-lookup-service.js.map
@@ -0,0 +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;AAE9C,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,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;KACnD;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -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
+ }
@@ -1,25 +1,25 @@
1
- export var ADTRACKIFY_EVENT_TYPES;
2
- (function (ADTRACKIFY_EVENT_TYPES) {
3
- ADTRACKIFY_EVENT_TYPES["NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED"] = "shopifySubscriptionCreated";
4
- ADTRACKIFY_EVENT_TYPES["NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED"] = "subscription.signupCompleted";
5
- ADTRACKIFY_EVENT_TYPES["REQUEST_SET_ACCOUNT_OWNER"] = "setAccountOwner";
6
- ADTRACKIFY_EVENT_TYPES["REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID"] = "setAccountSubscriptionId";
7
- })(ADTRACKIFY_EVENT_TYPES || (ADTRACKIFY_EVENT_TYPES = {}));
8
- export var ADTRACKIFY_EVENT_SOURCES;
9
- (function (ADTRACKIFY_EVENT_SOURCES) {
10
- ADTRACKIFY_EVENT_SOURCES["SUBSCRIPTIONS"] = "subscriptions";
11
- })(ADTRACKIFY_EVENT_SOURCES || (ADTRACKIFY_EVENT_SOURCES = {}));
12
- export var PostmarkRequestType;
13
- (function (PostmarkRequestType) {
14
- PostmarkRequestType["SINGLE_EMAIL"] = "single_email";
15
- PostmarkRequestType["TEMPLATE_EMAIL"] = "template_email";
16
- })(PostmarkRequestType || (PostmarkRequestType = {}));
17
- export var ADTRACKIFY_EVENT_BRIDGE_EVENTS;
18
- (function (ADTRACKIFY_EVENT_BRIDGE_EVENTS) {
19
- ADTRACKIFY_EVENT_BRIDGE_EVENTS["SEND_POSTMARK_EMAIL"] = "integration.sendPostmarkEmail";
20
- ADTRACKIFY_EVENT_BRIDGE_EVENTS["NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED"] = "shopifySubscriptionCreated";
21
- ADTRACKIFY_EVENT_BRIDGE_EVENTS["NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED"] = "subscription.signupCompleted";
22
- ADTRACKIFY_EVENT_BRIDGE_EVENTS["REQUEST_SET_ACCOUNT_OWNER"] = "setAccountOwner";
23
- ADTRACKIFY_EVENT_BRIDGE_EVENTS["REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID"] = "setAccountSubscriptionId";
24
- })(ADTRACKIFY_EVENT_BRIDGE_EVENTS || (ADTRACKIFY_EVENT_BRIDGE_EVENTS = {}));
1
+ export var ADTRACKIFY_EVENT_TYPES;
2
+ (function (ADTRACKIFY_EVENT_TYPES) {
3
+ ADTRACKIFY_EVENT_TYPES["NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED"] = "shopifySubscriptionCreated";
4
+ ADTRACKIFY_EVENT_TYPES["NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED"] = "subscription.signupCompleted";
5
+ ADTRACKIFY_EVENT_TYPES["REQUEST_SET_ACCOUNT_OWNER"] = "setAccountOwner";
6
+ ADTRACKIFY_EVENT_TYPES["REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID"] = "setAccountSubscriptionId";
7
+ })(ADTRACKIFY_EVENT_TYPES || (ADTRACKIFY_EVENT_TYPES = {}));
8
+ export var ADTRACKIFY_EVENT_SOURCES;
9
+ (function (ADTRACKIFY_EVENT_SOURCES) {
10
+ ADTRACKIFY_EVENT_SOURCES["SUBSCRIPTIONS"] = "subscriptions";
11
+ })(ADTRACKIFY_EVENT_SOURCES || (ADTRACKIFY_EVENT_SOURCES = {}));
12
+ export var PostmarkRequestType;
13
+ (function (PostmarkRequestType) {
14
+ PostmarkRequestType["SINGLE_EMAIL"] = "single_email";
15
+ PostmarkRequestType["TEMPLATE_EMAIL"] = "template_email";
16
+ })(PostmarkRequestType || (PostmarkRequestType = {}));
17
+ export var ADTRACKIFY_EVENT_BRIDGE_EVENTS;
18
+ (function (ADTRACKIFY_EVENT_BRIDGE_EVENTS) {
19
+ ADTRACKIFY_EVENT_BRIDGE_EVENTS["SEND_POSTMARK_EMAIL"] = "integration.sendPostmarkEmail";
20
+ ADTRACKIFY_EVENT_BRIDGE_EVENTS["NOTIFY_SHOPIFY_SUBSCRIPTION_CREATED"] = "shopifySubscriptionCreated";
21
+ ADTRACKIFY_EVENT_BRIDGE_EVENTS["NOTIFY_SUBSCRIPTION_SIGNUP_COMPLETED"] = "subscription.signupCompleted";
22
+ ADTRACKIFY_EVENT_BRIDGE_EVENTS["REQUEST_SET_ACCOUNT_OWNER"] = "setAccountOwner";
23
+ ADTRACKIFY_EVENT_BRIDGE_EVENTS["REQUEST_SET_ACCOUNT_SUBSCRIPTION_ID"] = "setAccountSubscriptionId";
24
+ })(ADTRACKIFY_EVENT_BRIDGE_EVENTS || (ADTRACKIFY_EVENT_BRIDGE_EVENTS = {}));
25
25
  //# sourceMappingURL=event-detail-types.js.map
@@ -1 +1 @@
1
- export * from './event-detail-types.js';
1
+ export * from './event-detail-types.js';
@@ -1,2 +1,2 @@
1
- export * from './event-detail-types.js';
1
+ export * from './event-detail-types.js';
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adtrackify/at-service-common",
3
- "version": "1.3.0",
3
+ "version": "2.0.0",
4
4
  "description": "",
5
5
  "files": [
6
6
  "dist/*"
@@ -35,7 +35,7 @@
35
35
  "prepublishOnly": "npm run tsc"
36
36
  },
37
37
  "dependencies": {
38
- "@adtrackify/at-shared-utils": "^1.0.12"
38
+ "@adtrackify/at-shared-utils": "^2.0.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "assert": "^2.0.0",
@@ -49,7 +49,7 @@
49
49
  "uuid": "^9.0.0"
50
50
  },
51
51
  "devDependencies": {
52
- "@adtrackify/at-tracking-event-types": "^1.1.13",
52
+ "@adtrackify/at-tracking-event-types": "^2.0.0",
53
53
  "@aws-sdk/client-cognito-identity-provider": "^3.282.0",
54
54
  "@aws-sdk/client-dynamodb": "^3.278.0",
55
55
  "@aws-sdk/client-eventbridge": "^3.278.0",