@adtrackify/at-service-common 1.1.21 → 1.2.1

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 (146) hide show
  1. package/dist/__tests__/helpers/subscription-helper.spec.d.ts +1 -0
  2. package/dist/__tests__/helpers/subscription-helper.spec.js +28 -0
  3. package/dist/__tests__/helpers/subscription-helper.spec.js.map +1 -0
  4. package/dist/clients/generic/cognito-client.d.ts +19 -0
  5. package/dist/clients/generic/cognito-client.js +140 -0
  6. package/dist/clients/generic/cognito-client.js.map +1 -0
  7. package/dist/clients/generic/dynamodb-client.d.ts +15 -0
  8. package/dist/clients/generic/dynamodb-client.js +123 -0
  9. package/dist/clients/generic/dynamodb-client.js.map +1 -0
  10. package/dist/clients/generic/eventbridge-client.d.ts +14 -0
  11. package/dist/clients/generic/eventbridge-client.js +46 -0
  12. package/dist/clients/generic/eventbridge-client.js.map +1 -0
  13. package/dist/clients/generic/http-client.d.ts +29 -0
  14. package/dist/clients/generic/http-client.js +30 -0
  15. package/dist/clients/generic/http-client.js.map +1 -0
  16. package/{src/clients/generic/index.ts → dist/clients/generic/index.d.ts} +5 -5
  17. package/dist/clients/generic/index.js +6 -0
  18. package/dist/clients/generic/index.js.map +1 -0
  19. package/dist/clients/generic/s3-client.d.ts +6 -0
  20. package/dist/clients/generic/s3-client.js +25 -0
  21. package/dist/clients/generic/s3-client.js.map +1 -0
  22. package/{src/clients/index.ts → dist/clients/index.d.ts} +3 -3
  23. package/dist/clients/index.js +4 -0
  24. package/dist/clients/index.js.map +1 -0
  25. package/dist/clients/internal-api/accounts-client.d.ts +82 -0
  26. package/dist/clients/internal-api/accounts-client.js +79 -0
  27. package/dist/clients/internal-api/accounts-client.js.map +1 -0
  28. package/dist/clients/internal-api/destinations-client.d.ts +54 -0
  29. package/dist/clients/internal-api/destinations-client.js +37 -0
  30. package/dist/clients/internal-api/destinations-client.js.map +1 -0
  31. package/{src/clients/internal-api/index.ts → dist/clients/internal-api/index.d.ts} +4 -4
  32. package/dist/clients/internal-api/index.js +5 -0
  33. package/dist/clients/internal-api/index.js.map +1 -0
  34. package/dist/clients/internal-api/shopify-app-install-client.d.ts +57 -0
  35. package/dist/clients/internal-api/shopify-app-install-client.js +43 -0
  36. package/dist/clients/internal-api/shopify-app-install-client.js.map +1 -0
  37. package/dist/clients/internal-api/users-auth-client.d.ts +61 -0
  38. package/dist/clients/internal-api/users-auth-client.js +74 -0
  39. package/dist/clients/internal-api/users-auth-client.js.map +1 -0
  40. package/dist/clients/third-party/index.d.ts +1 -0
  41. package/dist/clients/third-party/index.js +2 -0
  42. package/dist/clients/third-party/index.js.map +1 -0
  43. package/dist/clients/third-party/shopify-client.d.ts +90 -0
  44. package/dist/clients/third-party/shopify-client.js +122 -0
  45. package/dist/clients/third-party/shopify-client.js.map +1 -0
  46. package/{src/helpers/index.ts → dist/helpers/index.d.ts} +5 -5
  47. package/dist/helpers/index.js +6 -0
  48. package/dist/helpers/index.js.map +1 -0
  49. package/dist/helpers/input-validation-helper.d.ts +2 -0
  50. package/dist/helpers/input-validation-helper.js +19 -0
  51. package/dist/helpers/input-validation-helper.js.map +1 -0
  52. package/dist/helpers/logging-helper.d.ts +1 -0
  53. package/dist/helpers/logging-helper.js +10 -0
  54. package/dist/helpers/logging-helper.js.map +1 -0
  55. package/dist/helpers/response-helper.d.ts +36 -0
  56. package/dist/helpers/response-helper.js +36 -0
  57. package/dist/helpers/response-helper.js.map +1 -0
  58. package/dist/helpers/shopify-helper.d.ts +9 -0
  59. package/dist/helpers/shopify-helper.js +24 -0
  60. package/dist/helpers/shopify-helper.js.map +1 -0
  61. package/dist/helpers/subscription-helper.d.ts +8 -0
  62. package/dist/helpers/subscription-helper.js +182 -0
  63. package/dist/helpers/subscription-helper.js.map +1 -0
  64. package/dist/index.d.ts +5 -737
  65. package/dist/index.esm.js +6 -2
  66. package/dist/index.esm.js.map +2 -2
  67. package/dist/index.js +6 -1404
  68. package/dist/index.js.map +1 -7
  69. package/dist/libs/crypto.d.ts +1 -0
  70. package/dist/libs/crypto.js +6 -0
  71. package/dist/libs/crypto.js.map +1 -0
  72. package/dist/libs/dates.d.ts +3 -0
  73. package/dist/libs/dates.js +11 -0
  74. package/dist/libs/dates.js.map +1 -0
  75. package/dist/libs/http-error.d.ts +21 -0
  76. package/dist/libs/http-error.js +56 -0
  77. package/dist/libs/http-error.js.map +1 -0
  78. package/dist/libs/http-status-codes.d.ts +58 -0
  79. package/dist/libs/http-status-codes.js +60 -0
  80. package/dist/libs/http-status-codes.js.map +1 -0
  81. package/{src/libs/index.ts → dist/libs/index.d.ts} +6 -7
  82. package/dist/libs/index.js +7 -0
  83. package/dist/libs/index.js.map +1 -0
  84. package/dist/libs/url.d.ts +1 -0
  85. package/dist/libs/url.js +10 -0
  86. package/dist/libs/url.js.map +1 -0
  87. package/dist/services/eventbridge-integration-service.d.ts +9 -0
  88. package/dist/services/eventbridge-integration-service.js +25 -0
  89. package/dist/services/eventbridge-integration-service.js.map +1 -0
  90. package/dist/services/index.d.ts +1 -0
  91. package/dist/services/index.js +2 -0
  92. package/dist/services/index.js.map +1 -0
  93. package/{src/types/api-response.ts → dist/types/api-response.d.ts} +6 -6
  94. package/dist/types/api-response.js +2 -0
  95. package/dist/types/api-response.js.map +1 -0
  96. package/dist/types/index.d.ts +1 -0
  97. package/dist/types/index.js +2 -0
  98. package/dist/types/index.js.map +1 -0
  99. package/dist/types/internal-events/event-detail-types.d.ts +20 -0
  100. package/dist/types/internal-events/event-detail-types.js +25 -0
  101. package/dist/types/internal-events/event-detail-types.js.map +1 -0
  102. package/dist/types/internal-events/index.d.ts +1 -0
  103. package/dist/types/internal-events/index.js +2 -0
  104. package/dist/types/internal-events/index.js.map +1 -0
  105. package/package.json +14 -5
  106. package/.editorconfig +0 -12
  107. package/.eslintignore +0 -3
  108. package/.eslintrc.json +0 -37
  109. package/.husky/pre-push +0 -4
  110. package/.vscode/settings.json +0 -10
  111. package/bitbucket-pipelines.yml +0 -20
  112. package/build.js +0 -39
  113. package/env.yml +0 -9
  114. package/jest.config.ts +0 -41
  115. package/src/__tests__/helpers/subscription-helper.spec.ts +0 -41
  116. package/src/clients/generic/axios.d.ts +0 -8
  117. package/src/clients/generic/cognito-client.ts +0 -154
  118. package/src/clients/generic/dynamodb-client.ts +0 -127
  119. package/src/clients/generic/eventbridge-client.ts +0 -53
  120. package/src/clients/generic/http-client.ts +0 -34
  121. package/src/clients/generic/s3-client.ts +0 -27
  122. package/src/clients/internal-api/accounts-client.ts +0 -126
  123. package/src/clients/internal-api/destinations-client.ts +0 -58
  124. package/src/clients/internal-api/shopify-app-install-client.ts +0 -66
  125. package/src/clients/internal-api/users-auth-client.ts +0 -112
  126. package/src/clients/third-party/index.ts +0 -1
  127. package/src/clients/third-party/shopify-client.ts +0 -139
  128. package/src/helpers/input-validation-helper.ts +0 -22
  129. package/src/helpers/logging-helper.ts +0 -10
  130. package/src/helpers/response-helper.ts +0 -40
  131. package/src/helpers/shopify-helper.ts +0 -39
  132. package/src/helpers/subscription-helper.ts +0 -243
  133. package/src/index.ts +0 -5
  134. package/src/libs/crypto.ts +0 -6
  135. package/src/libs/dates.ts +0 -14
  136. package/src/libs/http-error.ts +0 -90
  137. package/src/libs/http-status-codes.ts +0 -344
  138. package/src/libs/url.ts +0 -10
  139. package/src/services/eventbridge-integration-service.ts +0 -44
  140. package/src/services/index.ts +0 -1
  141. package/src/types/index.ts +0 -1
  142. package/src/types/internal-events/event-detail-types.ts +0 -10
  143. package/src/types/internal-events/index.ts +0 -1
  144. package/tsconfig.json +0 -35
  145. package/tsconfig.tsbuildinfo +0 -1
  146. package/tslint.json +0 -6
@@ -0,0 +1,122 @@
1
+ import { axiosHttpService } from '../generic/http-client.js';
2
+ import * as log from 'lambda-log';
3
+ export class ShopifyClient {
4
+ static _shopify_api_version = process.env.SHOPIFY_API_VERSION;
5
+ static getConfig = (shopifyDomain, accessToken) => {
6
+ const config = {
7
+ baseURL: `https://${shopifyDomain}/admin/api/${this._shopify_api_version}`,
8
+ headers: {
9
+ common: {
10
+ 'X-Shopify-Access-Token': accessToken,
11
+ },
12
+ },
13
+ };
14
+ return config;
15
+ };
16
+ static getClient = (shopifyDomain, accessToken) => {
17
+ return axiosHttpService(this.getConfig(shopifyDomain, accessToken));
18
+ };
19
+ static registerApp = async (shop, code, appKey, appSecret) => {
20
+ const client = axiosHttpService();
21
+ const url = 'https://' + shop + '/admin/oauth/access_token';
22
+ const payload = {
23
+ client_id: appKey,
24
+ client_secret: appSecret,
25
+ code
26
+ };
27
+ const res = await client.post(url, payload);
28
+ return res;
29
+ };
30
+ static registerWebhookTopic = async (shop, accessToken, eventBridgeArn, topic) => {
31
+ const client = axiosHttpService();
32
+ const url = `https://${shop}/admin/api/${this._shopify_api_version}/webhooks.json`;
33
+ const payload = {
34
+ webhook: {
35
+ topic,
36
+ address: eventBridgeArn,
37
+ format: 'json'
38
+ }
39
+ };
40
+ const res = await client.post(url, payload, { headers: { 'X-Shopify-Access-Token': accessToken } });
41
+ if (res.status >= 400) {
42
+ log.error('Failed to register Webhook Topic', { shop, accessToken, eventBridgeArn, topic, url, payload });
43
+ }
44
+ log.debug('Shopify Client Webhook Registration Response', { registrationResponse: res });
45
+ return res;
46
+ };
47
+ static updateShopifyAppMetafield = async (shop, accessToken, pixelId) => {
48
+ const url = `https://${shop}/admin/api/${this._shopify_api_version}/metafields.json`;
49
+ const payload = {
50
+ metafield: {
51
+ namespace: 'adtr',
52
+ key: 'adtr.config',
53
+ value: pixelId,
54
+ type: 'single_line_text_field'
55
+ }
56
+ };
57
+ const res = await this.genericShopifyPost(url, accessToken, payload);
58
+ if (res.status >= 400) {
59
+ log.error('Failed to update Shopify app Metafield ', { shop, accessToken, url, payload });
60
+ }
61
+ return res;
62
+ };
63
+ static getShopifyStoreProperties = async (shop, accessToken) => {
64
+ const url = `https://${shop}/admin/api/${this._shopify_api_version}/shop.json`;
65
+ const res = await this.genericShopifyGet(url, accessToken);
66
+ if (res.status >= 400) {
67
+ log.error('Failed to get Shopify Store Properties', { shop, accessToken, url });
68
+ }
69
+ return res;
70
+ };
71
+ static createAppSubscription = async (shop, accessToken, planName, price, returnUrl, trialDays, test) => {
72
+ const url = `https://${shop}/admin/api/${this._shopify_api_version}/recurring_application_charges.json`;
73
+ const recurring_application_charge = {
74
+ name: planName,
75
+ price,
76
+ return_url: returnUrl,
77
+ trial_days: trialDays,
78
+ test
79
+ };
80
+ const res = await this.genericShopifyPost(url, accessToken, { recurring_application_charge });
81
+ if (res.status >= 400) {
82
+ log.error('Failed to create App Subscription', { shop, accessToken, url });
83
+ }
84
+ return res;
85
+ };
86
+ static cancelAppSubscription = async (shop, accessToken, chargeId) => {
87
+ const url = `https://${shop}/admin/api/${this._shopify_api_version}/recurring_application_charges/${chargeId}.json`;
88
+ const client = axiosHttpService();
89
+ const res = await client.delete(url, { headers: { 'X-Shopify-Access-Token': accessToken } });
90
+ if (res.status !== 200) {
91
+ log.error('Failed to cancel recurring App billing', { shop, accessToken, url });
92
+ }
93
+ return res;
94
+ };
95
+ static listAppSubscriptions = async (shop, accessToken) => {
96
+ const url = `https://${shop}/admin/api/${this._shopify_api_version}/recurring_application_charges.json`;
97
+ const res = await this.genericShopifyGet(url, accessToken);
98
+ if (res.status >= 400) {
99
+ log.error('Failed to get App Subscriptions', { shop, accessToken, url });
100
+ }
101
+ return res;
102
+ };
103
+ static genericShopifyPost = async (url, accessToken, payload) => {
104
+ const client = axiosHttpService();
105
+ const res = await client.post(url, payload, { headers: { 'X-Shopify-Access-Token': accessToken, 'Content-Type': 'application/json' } });
106
+ log.debug('Shopify Client Response', { res });
107
+ return res;
108
+ };
109
+ static genericShopifyGet = async (url, accessToken) => {
110
+ const client = axiosHttpService();
111
+ const res = await client.get(url, { headers: { 'X-Shopify-Access-Token': accessToken } });
112
+ log.debug('Shopify Client Response', { res });
113
+ return res;
114
+ };
115
+ static genericShopifyPut = async (url, accessToken, payload) => {
116
+ const client = axiosHttpService();
117
+ const res = await client.put(url, payload, { headers: { 'X-Shopify-Access-Token': accessToken } });
118
+ log.debug('Shopify Client Response', { res });
119
+ return res;
120
+ };
121
+ }
122
+ //# sourceMappingURL=shopify-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shopify-client.js","sourceRoot":"","sources":["../../../src/clients/third-party/shopify-client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- export * from './input-validation-helper.js';
2
- export * from './logging-helper.js';
3
- export * from './response-helper.js';
4
- export * from './shopify-helper.js';
5
- export * from './subscription-helper.js';
1
+ export * from './input-validation-helper.js';
2
+ export * from './logging-helper.js';
3
+ export * from './response-helper.js';
4
+ export * from './shopify-helper.js';
5
+ export * from './subscription-helper.js';
@@ -0,0 +1,6 @@
1
+ export * from './input-validation-helper.js';
2
+ export * from './logging-helper.js';
3
+ export * from './response-helper.js';
4
+ export * from './shopify-helper.js';
5
+ export * from './subscription-helper.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import Joi from 'joi';
2
+ export declare const validateInput: (schema: Joi.ObjectSchema<any>, input: any) => any;
@@ -0,0 +1,19 @@
1
+ import * as log from 'lambda-log';
2
+ import { HttpError } from '../libs/http-error.js';
3
+ export const validateInput = (schema, input) => {
4
+ const { error, value } = schema.validate(input);
5
+ if (error) {
6
+ log.info('', { error });
7
+ const httperr = HttpError.badRequest('Bad Request', {
8
+ errors: error.details.map(detail => ({
9
+ message: detail?.message,
10
+ key: detail?.context?.key,
11
+ path: detail?.path,
12
+ }))
13
+ });
14
+ log.info('', { httperr });
15
+ throw httperr;
16
+ }
17
+ return value;
18
+ };
19
+ //# sourceMappingURL=input-validation-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-validation-helper.js","sourceRoot":"","sources":["../../src/helpers/input-validation-helper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAA6B,EAAE,KAAU,EAAE,EAAE;IACzE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,KAAK,EAAE;QACT,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAExB,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,aAAa,EAAE;YAClD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO;gBACxB,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG;gBACzB,IAAI,EAAE,MAAM,EAAE,IAAI;aACnB,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1B,MAAM,OAAO,CAAC;KACf;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const configureLogger: (event: any, context: any, debug?: boolean) => void;
@@ -0,0 +1,10 @@
1
+ import * as log from 'lambda-log';
2
+ const stage = process?.env?.STAGE;
3
+ export const configureLogger = (event, context, debug = true) => {
4
+ log.options.meta.stage = stage;
5
+ log.options.meta.source_name = context?.functionName || 'unknown';
6
+ log.options.meta.awsRequestId = context?.awsRequestId || 'unknown';
7
+ log.options.meta.lambdaEvent = event;
8
+ log.options.debug = debug;
9
+ };
10
+ //# sourceMappingURL=logging-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-helper.js","sourceRoot":"","sources":["../../src/helpers/logging-helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,MAAM,KAAK,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAU,EAAE,OAAY,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE;IACxE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,EAAE,YAAY,IAAI,SAAS,CAAC;IAClE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,SAAS,CAAC;IACnE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IACrC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAC5B,CAAC,CAAA"}
@@ -0,0 +1,36 @@
1
+ export declare const success: (body: any) => {
2
+ statusCode: number;
3
+ headers: {
4
+ 'Access-Control-Allow-Origin': string;
5
+ 'Access-Control-Allow-Credentials': boolean;
6
+ 'cache-control': string;
7
+ Date: Date;
8
+ 'Last-Modified': Date;
9
+ 'Access-Control-Allow-Headers': string;
10
+ };
11
+ body: string;
12
+ };
13
+ export declare const failure: (error: any, statusCode?: number) => {
14
+ statusCode: number;
15
+ headers: {
16
+ 'Access-Control-Allow-Origin': string;
17
+ 'Access-Control-Allow-Credentials': boolean;
18
+ 'cache-control': string;
19
+ Date: Date;
20
+ 'Last-Modified': Date;
21
+ 'Access-Control-Allow-Headers': string;
22
+ };
23
+ body: string;
24
+ };
25
+ export declare const buildResponse: (statusCode: number, body?: any) => {
26
+ statusCode: number;
27
+ headers: {
28
+ 'Access-Control-Allow-Origin': string;
29
+ 'Access-Control-Allow-Credentials': boolean;
30
+ 'cache-control': string;
31
+ Date: Date;
32
+ 'Last-Modified': Date;
33
+ 'Access-Control-Allow-Headers': string;
34
+ };
35
+ body: string;
36
+ };
@@ -0,0 +1,36 @@
1
+ export const success = (body) => {
2
+ return buildResponse(200, body);
3
+ };
4
+ const defaultError = {
5
+ message: 'internalServerError'
6
+ };
7
+ export const failure = (error, statusCode = 500) => {
8
+ statusCode = error?.statusCode ?? statusCode;
9
+ let body = defaultError;
10
+ if (error?.body) {
11
+ body = error.body;
12
+ }
13
+ else if (error?.message) {
14
+ body = { message: error.message };
15
+ }
16
+ else if (statusCode === 500) {
17
+ body = defaultError;
18
+ }
19
+ return buildResponse(statusCode, body);
20
+ };
21
+ export const buildResponse = (statusCode, body = {}) => {
22
+ delete body.stack;
23
+ return {
24
+ statusCode: statusCode,
25
+ headers: {
26
+ 'Access-Control-Allow-Origin': '*',
27
+ 'Access-Control-Allow-Credentials': true,
28
+ 'cache-control': 'max-age=86400',
29
+ Date: new Date(),
30
+ 'Last-Modified': new Date(),
31
+ 'Access-Control-Allow-Headers': 'Content-Type, Content-Encoding'
32
+ },
33
+ body: JSON.stringify(body),
34
+ };
35
+ };
36
+ //# sourceMappingURL=response-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-helper.js","sourceRoot":"","sources":["../../src/helpers/response-helper.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAS,EAAE,EAAE;IACnC,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC,CAAA;AAED,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,qBAAqB;CAC/B,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE;IACtD,UAAU,GAAG,KAAK,EAAE,UAAU,IAAI,UAAU,CAAC;IAE7C,IAAI,IAAI,GAAG,YAAY,CAAC;IACxB,IAAI,KAAK,EAAE,IAAI,EAAE;QACf,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;KACnB;SACI,IAAI,KAAK,EAAE,OAAO,EAAE;QACvB,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;KACnC;SAAM,IAAI,UAAU,KAAK,GAAG,EAAE;QAC7B,IAAI,GAAG,YAAY,CAAC;KACrB;IACD,OAAO,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,OAAY,EAAE,EAAE,EAAE;IAClE,OAAO,IAAI,CAAC,KAAK,CAAC;IAClB,OAAO;QACL,UAAU,EAAE,UAAU;QACtB,OAAO,EAAE;YACP,6BAA6B,EAAE,GAAG;YAClC,kCAAkC,EAAE,IAAI;YACxC,eAAe,EAAE,eAAe;YAChC,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,eAAe,EAAE,IAAI,IAAI,EAAE;YAC3B,8BAA8B,EAC5B,gCAAgC;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ export interface ShopifyRequestValidationParameters {
2
+ code: string;
3
+ hmac?: string;
4
+ shop: string;
5
+ state: string;
6
+ timestamp: string;
7
+ }
8
+ export declare const isShopifyRequestValid: (validationParams: ShopifyRequestValidationParameters, validationHmac: string, shopifyAppApiSecret: string) => boolean;
9
+ export declare const validateShopifyRequest: (validationParams: ShopifyRequestValidationParameters, validationHmac: string, shopifyAppApiSecret: string) => boolean;
@@ -0,0 +1,24 @@
1
+ import { createHmac } from 'crypto';
2
+ import * as log from 'lambda-log';
3
+ import { HttpError } from '../libs/http-error.js';
4
+ import { mapObjectToQueryString } from '../libs/url.js';
5
+ export const isShopifyRequestValid = (validationParams, validationHmac, shopifyAppApiSecret) => {
6
+ delete validationParams.hmac;
7
+ const hmacString = mapObjectToQueryString(validationParams);
8
+ const generatedHash = createHmac('sha256', shopifyAppApiSecret)
9
+ .update(hmacString)
10
+ .digest('hex');
11
+ return generatedHash === validationHmac;
12
+ };
13
+ export const validateShopifyRequest = (validationParams, validationHmac, shopifyAppApiSecret) => {
14
+ log.info('Validating shopify request is authentic', { validationParams });
15
+ const isValid = isShopifyRequestValid(validationParams, validationHmac, shopifyAppApiSecret);
16
+ if (!isValid) {
17
+ const message = 'Failed: Shopify Request hmac validation';
18
+ log.error(message);
19
+ throw HttpError.badRequest(message);
20
+ }
21
+ log.info('Sucess: Shopify Request hmac validation');
22
+ return true;
23
+ };
24
+ //# sourceMappingURL=shopify-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shopify-helper.js","sourceRoot":"","sources":["../../src/helpers/shopify-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AASxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,gBAAoD,EAAE,cAAsB,EAAE,mBAA2B,EAAW,EAAE;IAI1J,OAAO,gBAAgB,CAAC,IAAI,CAAC;IAC7B,MAAM,UAAU,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAG5D,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,EAAE,mBAAmB,CAAC;SAC5D,MAAM,CAAC,UAAU,CAAC;SAClB,MAAM,CAAC,KAAK,CAAC,CAAC;IAEjB,OAAO,aAAa,KAAK,cAAc,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,gBAAoD,EAAE,cAAsB,EAAE,mBAA2B,EAAE,EAAE;IAClJ,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,cAAwB,EAAE,mBAAmB,CAAC,CAAC;IACvG,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,OAAO,GAAG,yCAAyC,CAAC;QAC1D,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnB,MAAM,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACrC;IACD,GAAG,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACd,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { SubscriptionPlan } from '@adtrackify/at-tracking-event-types';
2
+ export declare const StripeBillingMap: any;
3
+ export declare const CommonPlanInfo: string[];
4
+ export declare const SubscriptionPlanSeedItems: {
5
+ items: SubscriptionPlan[];
6
+ };
7
+ export declare const getPlanDetails: (planId: number, stage: string) => SubscriptionPlan;
8
+ export declare const getPlanByStripePriceId: (stripePriceId: string, stage: string) => SubscriptionPlan;
@@ -0,0 +1,182 @@
1
+ import { PLAN_BILLING_FREQUENCY } from '@adtrackify/at-tracking-event-types';
2
+ export const StripeBillingMap = {
3
+ dev2: {
4
+ 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',
5
+ 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',
6
+ 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',
7
+ 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',
8
+ 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',
9
+ 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',
10
+ 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'
11
+ },
12
+ qa2: {
13
+ 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',
14
+ 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',
15
+ 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',
16
+ 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',
17
+ 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',
18
+ 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',
19
+ 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'
20
+ },
21
+ prod2: {
22
+ 'free': 'price_1KAFsIK7krGh4037RsaAYMEl',
23
+ 'starter_monthly': 'price_1KAFsMK7krGh4037Lz3P0ksU',
24
+ 'starter_yearly': 'price_1KAFsMK7krGh4037Dj1WmSi8',
25
+ 'scale_monthly': 'price_1KAFrxK7krGh4037zWCdaTly',
26
+ 'scale_yearly': 'price_1KAFrxK7krGh40375fhymyWP',
27
+ 'growth_monthly': 'price_1KAFs7K7krGh4037JChjz5Cr',
28
+ 'growth_yearly': 'price_1KAFs7K7krGh4037rZElg12s'
29
+ },
30
+ dev: {
31
+ 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',
32
+ 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',
33
+ 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',
34
+ 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',
35
+ 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',
36
+ 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',
37
+ 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'
38
+ },
39
+ qa: {
40
+ 'free': 'price_1JzjbKK7krGh4037ezNbGJEm',
41
+ 'starter_monthly': 'price_1JwzsGK7krGh4037Li0hPpsZ',
42
+ 'starter_yearly': 'price_1JwzsGK7krGh4037Li0hPpsZ',
43
+ 'scale_monthly': 'price_1JzjcSK7krGh4037yh34LPk3',
44
+ 'scale_yearly': 'price_1JzjcSK7krGh4037QiBJYfnD',
45
+ 'growth_monthly': 'price_1Jzje1K7krGh4037KErHBp5N',
46
+ 'growth_yearly': 'price_1Jzje1K7krGh4037MhCUhTDh'
47
+ },
48
+ prod: {
49
+ 'free': 'price_1KAFsIK7krGh4037RsaAYMEl',
50
+ 'starter_monthly': 'price_1KAFsMK7krGh4037Lz3P0ksU',
51
+ 'starter_yearly': 'price_1KAFsMK7krGh4037Dj1WmSi8',
52
+ 'scale_monthly': 'price_1KAFrxK7krGh4037zWCdaTly',
53
+ 'scale_yearly': 'price_1KAFrxK7krGh40375fhymyWP',
54
+ 'growth_monthly': 'price_1KAFs7K7krGh4037JChjz5Cr',
55
+ 'growth_yearly': 'price_1KAFs7K7krGh4037rZElg12s'
56
+ }
57
+ };
58
+ export const CommonPlanInfo = [
59
+ 'Free Server Side Tracking & Conversion API',
60
+ 'MultiPixel Support (Multiple facebook, tiktok, etc)',
61
+ 'Corrects Facebook Conversion Tracking post IOS14',
62
+ 'Increase ROAS & Attribution Data',
63
+ 'Enhanced Fingerprinting & Identity Resolution',
64
+ 'Unlimited Integrations',
65
+ 'Advanced Integrations (Webhooks, Custom JS/HTML, Hubspot)'
66
+ ];
67
+ export const SubscriptionPlanSeedItems = {
68
+ items: [{
69
+ id: 1,
70
+ planName: 'free',
71
+ displayName: 'Free',
72
+ sku: 'ADT-001',
73
+ description: 'Free Plan - Monthly',
74
+ price: '0',
75
+ displayPrice: '$0',
76
+ billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,
77
+ trialLengthDays: 0,
78
+ trialRequiresCreditCard: false,
79
+ planDesc: [
80
+ ...CommonPlanInfo,
81
+ 'Free Up to 500 orders/month (50,000 events)*'
82
+ ],
83
+ unitPriceText: 'try now - free forever',
84
+ isHighlighted: false,
85
+ isBanner: false
86
+ },
87
+ {
88
+ id: 2,
89
+ planName: 'starter_monthly',
90
+ displayName: 'Starter',
91
+ sku: 'ADT-002',
92
+ description: 'Starter Plan - Monthly',
93
+ price: '79.99',
94
+ displayPrice: '$79.99',
95
+ billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,
96
+ trialLengthDays: 60,
97
+ trialRequiresCreditCard: false,
98
+ planDesc: [
99
+ '60-day Risk Free Trial',
100
+ ...CommonPlanInfo,
101
+ 'Up to 2,000 orders/month (250,000 events)*'
102
+ ],
103
+ isHighlighted: true,
104
+ isBanner: true,
105
+ bannerColor: 'blue',
106
+ bannerText: 'MOST POPULAR'
107
+ }, {
108
+ id: 3,
109
+ planName: 'starter_yearly',
110
+ displayName: 'Starter',
111
+ sku: 'ADT-003',
112
+ description: 'Starter Plan - Yearly',
113
+ price: '767.90',
114
+ displayPrice: '$63.99',
115
+ billingFrequency: PLAN_BILLING_FREQUENCY.YEARLY,
116
+ trialLengthDays: 30,
117
+ trialRequiresCreditCard: false,
118
+ planDesc: [
119
+ '60-day Risk Free Trial',
120
+ ...CommonPlanInfo,
121
+ 'Up to 2,000 orders/month (250,000 events)*'
122
+ ],
123
+ unitPriceText: 'billed yearly ($767.90) - 20% savings',
124
+ isHighlighted: true,
125
+ isBanner: true,
126
+ bannerColor: 'blue',
127
+ bannerText: 'MOST POPULAR'
128
+ },
129
+ {
130
+ id: 4,
131
+ planName: 'scale_monthly',
132
+ displayName: 'Scale',
133
+ sku: 'ADT-004',
134
+ description: 'Scale Plan - Monthly',
135
+ price: '199.99',
136
+ displayPrice: '$199.99',
137
+ billingFrequency: PLAN_BILLING_FREQUENCY.MONTHLY,
138
+ trialLengthDays: 60,
139
+ trialRequiresCreditCard: false,
140
+ planDesc: [
141
+ '60-day Risk Free Trial',
142
+ ...CommonPlanInfo,
143
+ 'Up to 7,500 orders/month (750,000 events)*'
144
+ ],
145
+ unitPriceText: '',
146
+ isHighlighted: false,
147
+ isBanner: false
148
+ }, {
149
+ id: 5,
150
+ planName: 'scale_yearly',
151
+ displayName: 'Scale',
152
+ sku: 'ADT-005',
153
+ description: 'Scale Plan - Yearly',
154
+ price: '1823.91',
155
+ displayPrice: '$151.99',
156
+ billingFrequency: PLAN_BILLING_FREQUENCY.YEARLY,
157
+ trialLengthDays: 60,
158
+ trialRequiresCreditCard: false,
159
+ planDesc: [
160
+ '60-day Risk Free Trial',
161
+ ...CommonPlanInfo,
162
+ 'Up to 7,500 orders/month (750,000 events)*'
163
+ ],
164
+ unitPriceText: 'billed yearly ($1823.91) - 24% savings',
165
+ isHighlighted: false,
166
+ isBanner: false
167
+ },
168
+ ]
169
+ };
170
+ export const getPlanDetails = (planId, stage) => {
171
+ const plan = SubscriptionPlanSeedItems.items.filter(x => x.id === planId)[0];
172
+ plan.stripePriceId = StripeBillingMap[stage][plan.planName];
173
+ return plan;
174
+ };
175
+ export const getPlanByStripePriceId = (stripePriceId, stage) => {
176
+ const stripePriceIds = StripeBillingMap[stage];
177
+ const planName = Object.keys(stripePriceIds).find(key => stripePriceIds[key] === stripePriceId);
178
+ const plan = SubscriptionPlanSeedItems.items.filter(x => x.planName === planName)[0];
179
+ plan.stripePriceId = stripePriceId;
180
+ return plan;
181
+ };
182
+ //# sourceMappingURL=subscription-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription-helper.js","sourceRoot":"","sources":["../../src/helpers/subscription-helper.ts"],"names":[],"mappings":"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"}