@ductape/sdk 0.0.4-v4 → 0.0.4-v41

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 (197) hide show
  1. package/dist/api/services/appApi.service.d.ts +48 -2
  2. package/dist/api/services/appApi.service.js +101 -2
  3. package/dist/api/services/appApi.service.js.map +1 -1
  4. package/dist/api/services/pricingApi.service.d.ts +10 -0
  5. package/dist/api/services/pricingApi.service.js +34 -0
  6. package/dist/api/services/pricingApi.service.js.map +1 -0
  7. package/dist/api/services/processorApi.service.d.ts +12 -2
  8. package/dist/api/services/processorApi.service.js +12 -2
  9. package/dist/api/services/processorApi.service.js.map +1 -1
  10. package/dist/api/services/productsApi.service.d.ts +39 -1
  11. package/dist/api/services/productsApi.service.js +76 -0
  12. package/dist/api/services/productsApi.service.js.map +1 -1
  13. package/dist/api/services/userApi.service.js +1 -0
  14. package/dist/api/services/userApi.service.js.map +1 -1
  15. package/dist/api/services/workspaceApi.service.js +1 -0
  16. package/dist/api/services/workspaceApi.service.js.map +1 -1
  17. package/dist/api/urls.d.ts +6 -1
  18. package/dist/api/urls.js +12 -2
  19. package/dist/api/urls.js.map +1 -1
  20. package/dist/api/utils/cache.utils.d.ts +1 -1
  21. package/dist/api/utils/cache.utils.js +2 -2
  22. package/dist/api/utils/cache.utils.js.map +1 -1
  23. package/dist/api/utils/strings.utils.d.ts +2 -0
  24. package/dist/api/utils/strings.utils.js +14 -0
  25. package/dist/api/utils/strings.utils.js.map +1 -1
  26. package/dist/apps/services/app.service.d.ts +41 -33
  27. package/dist/apps/services/app.service.js +473 -185
  28. package/dist/apps/services/app.service.js.map +1 -1
  29. package/dist/apps/validators/joi-validators/create.appAction.validator.d.ts +1 -2
  30. package/dist/apps/validators/joi-validators/create.appAction.validator.js +21 -2
  31. package/dist/apps/validators/joi-validators/create.appAction.validator.js.map +1 -1
  32. package/dist/apps/validators/joi-validators/update.appAction.validator.js +11 -1
  33. package/dist/apps/validators/joi-validators/update.appAction.validator.js.map +1 -1
  34. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.d.ts +1 -1
  35. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js +34 -1
  36. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js.map +1 -1
  37. package/dist/clients/apps.client.js +1 -1
  38. package/dist/clients/apps.client.js.map +1 -1
  39. package/dist/clients/pricing.client.d.ts +3 -0
  40. package/dist/clients/pricing.client.js +33 -0
  41. package/dist/clients/pricing.client.js.map +1 -0
  42. package/dist/imports/imports.service.d.ts +3 -3
  43. package/dist/imports/imports.service.js +7 -7
  44. package/dist/imports/imports.service.js.map +1 -1
  45. package/dist/imports/imports.types.d.ts +8 -0
  46. package/dist/imports/repos/postmanV21.repo.d.ts +1 -1
  47. package/dist/imports/repos/postmanV21.repo.js +29 -2
  48. package/dist/imports/repos/postmanV21.repo.js.map +1 -1
  49. package/dist/index.d.ts +1009 -91
  50. package/dist/index.js +969 -126
  51. package/dist/index.js.map +1 -1
  52. package/dist/inputs/inputs.service.js +2 -2
  53. package/dist/inputs/inputs.service.js.map +1 -1
  54. package/dist/inputs/utils/inputs.utils.create.js +1 -1
  55. package/dist/inputs/utils/inputs.utils.create.js.map +1 -1
  56. package/dist/logs/logs.service.js +1 -0
  57. package/dist/logs/logs.service.js.map +1 -1
  58. package/dist/logs/logs.types.d.ts +5 -0
  59. package/dist/logs/logs.types.js.map +1 -1
  60. package/dist/parsers/index.d.ts +3 -0
  61. package/dist/parsers/index.js +27 -0
  62. package/dist/parsers/index.js.map +1 -0
  63. package/dist/parsers/pipelines/postman.pipelines.d.ts +15 -0
  64. package/dist/parsers/pipelines/postman.pipelines.js +103 -0
  65. package/dist/parsers/pipelines/postman.pipelines.js.map +1 -0
  66. package/dist/parsers/types/postman.types.d.ts +200 -0
  67. package/dist/parsers/types/postman.types.js +3 -0
  68. package/dist/parsers/types/postman.types.js.map +1 -0
  69. package/dist/parsers/utils/postman.utils.d.ts +12 -0
  70. package/dist/parsers/utils/postman.utils.js +116 -0
  71. package/dist/parsers/utils/postman.utils.js.map +1 -0
  72. package/dist/parsers/validators/postman-auth.validators.d.ts +10 -0
  73. package/dist/parsers/validators/postman-auth.validators.js +127 -0
  74. package/dist/parsers/validators/postman-auth.validators.js.map +1 -0
  75. package/dist/parsers/validators/postman-request.validators.d.ts +13 -0
  76. package/dist/parsers/validators/postman-request.validators.js +139 -0
  77. package/dist/parsers/validators/postman-request.validators.js.map +1 -0
  78. package/dist/parsers/validators/postman-response.validators.d.ts +13 -0
  79. package/dist/parsers/validators/postman-response.validators.js +150 -0
  80. package/dist/parsers/validators/postman-response.validators.js.map +1 -0
  81. package/dist/parsers/validators/postman-variable.validators.d.ts +14 -0
  82. package/dist/parsers/validators/postman-variable.validators.js +163 -0
  83. package/dist/parsers/validators/postman-variable.validators.js.map +1 -0
  84. package/dist/pricing/pricing.repo.d.ts +0 -0
  85. package/dist/pricing/pricing.repo.js +1 -0
  86. package/dist/pricing/pricing.repo.js.map +1 -0
  87. package/dist/pricing/pricing.service.d.ts +24 -0
  88. package/dist/pricing/pricing.service.js +51 -0
  89. package/dist/pricing/pricing.service.js.map +1 -0
  90. package/dist/pricing/pricing.types.d.ts +76 -0
  91. package/dist/pricing/pricing.types.js +21 -0
  92. package/dist/pricing/pricing.types.js.map +1 -0
  93. package/dist/pricing/utils/string.utils.d.ts +1 -0
  94. package/dist/pricing/utils/string.utils.js +9 -0
  95. package/dist/pricing/utils/string.utils.js.map +1 -0
  96. package/dist/processor/repos/sms.repo.d.ts +4 -4
  97. package/dist/processor/repos/sms.repo.js +23 -10
  98. package/dist/processor/repos/sms.repo.js.map +1 -1
  99. package/dist/processor/services/messagebrokers/kafka.service.js +0 -2
  100. package/dist/processor/services/messagebrokers/kafka.service.js.map +1 -1
  101. package/dist/processor/services/messagebrokers/rabbitmq.service.d.ts +9 -1
  102. package/dist/processor/services/messagebrokers/rabbitmq.service.js +40 -11
  103. package/dist/processor/services/messagebrokers/rabbitmq.service.js.map +1 -1
  104. package/dist/processor/services/processor.service.d.ts +40 -9
  105. package/dist/processor/services/processor.service.js +638 -276
  106. package/dist/processor/services/processor.service.js.map +1 -1
  107. package/dist/processor/services/request.service.d.ts +36 -0
  108. package/dist/processor/services/request.service.js +304 -0
  109. package/dist/processor/services/request.service.js.map +1 -0
  110. package/dist/processor/types/request.types.d.ts +14 -0
  111. package/dist/processor/types/request.types.js +3 -0
  112. package/dist/processor/types/request.types.js.map +1 -0
  113. package/dist/processor/utils/processor.utils.d.ts +3 -0
  114. package/dist/processor/utils/processor.utils.js +89 -6
  115. package/dist/processor/utils/processor.utils.js.map +1 -1
  116. package/dist/processor/utils/request.utils.d.ts +20 -0
  117. package/dist/processor/utils/request.utils.js +113 -0
  118. package/dist/processor/utils/request.utils.js.map +1 -0
  119. package/dist/processor/utils/storage.util.js +54 -40
  120. package/dist/processor/utils/storage.util.js.map +1 -1
  121. package/dist/products/services/products.service.d.ts +98 -77
  122. package/dist/products/services/products.service.js +569 -325
  123. package/dist/products/services/products.service.js.map +1 -1
  124. package/dist/products/services/utils/crypt.utils.d.ts +1 -0
  125. package/dist/products/services/utils/crypt.utils.js +17 -0
  126. package/dist/products/services/utils/crypt.utils.js.map +1 -0
  127. package/dist/products/services/utils/functions.utils.d.ts +13 -0
  128. package/dist/products/services/utils/functions.utils.js +294 -0
  129. package/dist/products/services/utils/functions.utils.js.map +1 -0
  130. package/dist/products/services/utils/objects.utils.d.ts +13 -0
  131. package/dist/products/services/utils/objects.utils.js +89 -0
  132. package/dist/products/services/utils/objects.utils.js.map +1 -0
  133. package/dist/products/services/utils/string.utils.d.ts +12 -0
  134. package/dist/products/services/utils/string.utils.js +168 -0
  135. package/dist/products/services/utils/string.utils.js.map +1 -0
  136. package/dist/products/utils/string.utils.d.ts +1 -1
  137. package/dist/products/utils/string.utils.js +14 -2
  138. package/dist/products/utils/string.utils.js.map +1 -1
  139. package/dist/products/validators/index.d.ts +2 -1
  140. package/dist/products/validators/index.js +3 -1
  141. package/dist/products/validators/index.js.map +1 -1
  142. package/dist/products/validators/joi-validators/create.productEnv.validator.js +1 -0
  143. package/dist/products/validators/joi-validators/create.productEnv.validator.js.map +1 -1
  144. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.d.ts +4 -0
  145. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js +58 -0
  146. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js.map +1 -0
  147. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js +1 -0
  148. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js.map +1 -1
  149. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +9 -4
  150. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  151. package/dist/products/validators/joi-validators/create.productNotification.validator.js +5 -2
  152. package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -1
  153. package/dist/products/validators/joi-validators/create.userAuth.validator.js +1 -0
  154. package/dist/products/validators/joi-validators/create.userAuth.validator.js.map +1 -1
  155. package/dist/products/validators/joi-validators/update.dataValue.validator.js +1 -0
  156. package/dist/products/validators/joi-validators/update.dataValue.validator.js.map +1 -1
  157. package/dist/products/validators/joi-validators/update.productEnv.validator.js +3 -0
  158. package/dist/products/validators/joi-validators/update.productEnv.validator.js.map +1 -1
  159. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js +1 -0
  160. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js.map +1 -1
  161. package/dist/products/validators/joi-validators/update.userAuth.validator.js +1 -0
  162. package/dist/products/validators/joi-validators/update.userAuth.validator.js.map +1 -1
  163. package/dist/test/test.health.d.ts +1 -0
  164. package/dist/test/test.health.js +49 -0
  165. package/dist/test/test.health.js.map +1 -0
  166. package/dist/test/test.import.js +51 -4
  167. package/dist/test/test.import.js.map +1 -1
  168. package/dist/test/test.imports.js +22 -7
  169. package/dist/test/test.imports.js.map +1 -1
  170. package/dist/test/test.notifiers.d.ts +1 -0
  171. package/dist/test/test.notifiers.js +85 -0
  172. package/dist/test/test.notifiers.js.map +1 -0
  173. package/dist/test/test.processor.js +32 -115
  174. package/dist/test/test.processor.js.map +1 -1
  175. package/dist/test/test.products.d.ts +1 -0
  176. package/dist/test/test.products.js +49 -0
  177. package/dist/test/test.products.js.map +1 -0
  178. package/dist/types/appBuilder.types.d.ts +4 -11
  179. package/dist/types/enums.d.ts +3 -1
  180. package/dist/types/enums.js +2 -0
  181. package/dist/types/enums.js.map +1 -1
  182. package/dist/types/index.types.d.ts +4 -0
  183. package/dist/types/pricing.types.d.ts +4 -0
  184. package/dist/types/pricing.types.js +3 -0
  185. package/dist/types/pricing.types.js.map +1 -0
  186. package/dist/types/processor.types.d.ts +67 -9
  187. package/dist/types/processor.types.js.map +1 -1
  188. package/dist/types/productsBuilder.types.d.ts +52 -8
  189. package/dist/types/productsBuilder.types.js +9 -1
  190. package/dist/types/productsBuilder.types.js.map +1 -1
  191. package/dist/types/request-tracker.interface.d.ts +0 -0
  192. package/dist/types/request-tracker.interface.js +1 -0
  193. package/dist/types/request-tracker.interface.js.map +1 -0
  194. package/dist/utils/constants.d.ts +1 -0
  195. package/dist/utils/constants.js +5 -0
  196. package/dist/utils/constants.js.map +1 -0
  197. package/package.json +15 -3
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gcpPKCSConvert = void 0;
4
+ const crypto_1 = require("crypto");
5
+ const gcpPKCSConvert = (private_key) => {
6
+ const privateKey = (0, crypto_1.createPrivateKey)({
7
+ key: private_key,
8
+ format: "pem",
9
+ type: "pkcs1", // This assumes it's in PKCS#1 format
10
+ });
11
+ return privateKey.export({
12
+ format: "pem",
13
+ type: "pkcs8", // Convert to PKCS#8
14
+ });
15
+ };
16
+ exports.gcpPKCSConvert = gcpPKCSConvert;
17
+ //# sourceMappingURL=crypt.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypt.utils.js","sourceRoot":"","sources":["../../../../src/products/services/utils/crypt.utils.ts"],"names":[],"mappings":";;;AAAA,mCAA0C;AAEnC,MAAM,cAAc,GAAG,CAAC,WAAmB,EAAE,EAAE;IAClD,MAAM,UAAU,GAAG,IAAA,yBAAgB,EAAC;QAChC,GAAG,EAAE,WAAW;QAChB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,OAAO,EAAE,qCAAqC;KACrD,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC,MAAM,CAAC;QACvB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,OAAO,EAAE,oBAAoB;KACpC,CAAC,CAAC;AACT,CAAC,CAAA;AAXY,QAAA,cAAc,kBAW1B"}
@@ -0,0 +1,13 @@
1
+ import { HttpMethods } from '../../../types/enums';
2
+ import { IProductFunction } from '../../../types/productsBuilder.types';
3
+ export declare const transformToJson: (template: string, payload: Record<string, any>) => any;
4
+ export declare const replaceTemplateValues: (template: string, payload: Record<string, any>) => string;
5
+ export declare function makeRequest(url: string, method: HttpMethods, body?: string): Promise<import("axios").AxiosResponse<any, any>>;
6
+ export declare const makeFunctionsRequest: (cloudFunction: IProductFunction, payload: Record<string, any>) => Promise<void>;
7
+ export declare const startsWithFunctionAndEndsWithParen: (value: string) => string;
8
+ export declare function extractFunctionAndArgs(value: string): {
9
+ functionName: string;
10
+ args: string[];
11
+ } | null;
12
+ export declare function validateAWSSQSQueueUrl(envs: any, queueUrls: any[]): void;
13
+ export declare function convertInputToValueMap(input: Record<string, unknown>): Record<string, string>;
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.startsWithFunctionAndEndsWithParen = exports.makeFunctionsRequest = exports.replaceTemplateValues = exports.transformToJson = void 0;
7
+ exports.makeRequest = makeRequest;
8
+ exports.extractFunctionAndArgs = extractFunctionAndArgs;
9
+ exports.validateAWSSQSQueueUrl = validateAWSSQSQueueUrl;
10
+ exports.convertInputToValueMap = convertInputToValueMap;
11
+ const function_client_1 = __importDefault(require("../../../clients/function.client"));
12
+ const types_1 = require("../../../types");
13
+ const enums_1 = require("../../../types/enums");
14
+ const productsBuilder_types_1 = require("../../../types/productsBuilder.types");
15
+ const transformToJson = (template, payload) => {
16
+ try {
17
+ const jsonString = (0, exports.replaceTemplateValues)(template, payload);
18
+ // Parse the resulting string into JSON
19
+ const jsonObject = JSON.parse(jsonString);
20
+ return jsonObject;
21
+ }
22
+ catch (error) {
23
+ console.error('Error transforming string to JSON:', error);
24
+ return null;
25
+ }
26
+ };
27
+ exports.transformToJson = transformToJson;
28
+ const replaceTemplateValues = (template, payload) => {
29
+ const combinedRegex = /{{\s*([^}]+)\s*}}|(?<!")(\$?\w+)(?=\s*:)/g;
30
+ const templateString = template.replace(combinedRegex, (match, placeholder, keyOrMongoOperator) => {
31
+ if (placeholder) {
32
+ // If it's a placeholder (e.g., {{key}})
33
+ if (!(placeholder in payload)) {
34
+ throw new Error(`Missing key: ${placeholder}`);
35
+ }
36
+ return JSON.stringify(payload[placeholder]); // Replace placeholder with the corresponding value from the payload
37
+ }
38
+ return match; // Default case: return match unchanged
39
+ });
40
+ return templateString;
41
+ };
42
+ exports.replaceTemplateValues = replaceTemplateValues;
43
+ async function makeRequest(url, method, body) {
44
+ switch (method) {
45
+ case enums_1.HttpMethods.GET:
46
+ return await (0, function_client_1.default)(url).get('');
47
+ case enums_1.HttpMethods.PATCH:
48
+ return await (0, function_client_1.default)(url).patch('', body);
49
+ case enums_1.HttpMethods.POST:
50
+ return await (0, function_client_1.default)(url).post('', body);
51
+ case enums_1.HttpMethods.DELETE:
52
+ return await (0, function_client_1.default)(url).delete('');
53
+ case enums_1.HttpMethods.PUT:
54
+ return await (0, function_client_1.default)(url).put('', body);
55
+ }
56
+ }
57
+ const makeFunctionsRequest = async (cloudFunction, payload) => {
58
+ /*const { inputType, template } = cloudFunction;
59
+ if (inputType === FunctionInputType.BODY) {
60
+ const body = transformToJson(template, payload);
61
+ return (await makeRequest(cloudFunction.url, cloudFunction.method, body)).data;
62
+ } else {
63
+ const query = replaceTemplateValues(template, payload);
64
+ const fullUrl = `${cloudFunction.url}?${query}`;
65
+
66
+ return (await makeRequest(fullUrl, cloudFunction.method)).data;
67
+ }*/
68
+ };
69
+ exports.makeFunctionsRequest = makeFunctionsRequest;
70
+ const functionNames = [
71
+ '$Add', '$Substract', '$Pick', '$Concat', '$Substring',
72
+ '$Trim', '$Join', '$Split', '$Uppercase', '$Lowercase',
73
+ '$Dateformat', '$Replace', '$Filter', '$Find'
74
+ ];
75
+ const startsWithFunctionAndEndsWithParen = (value) => {
76
+ return functionNames.find((funcName) => value.startsWith(`${funcName}(`) && value.endsWith(')'));
77
+ };
78
+ exports.startsWithFunctionAndEndsWithParen = startsWithFunctionAndEndsWithParen;
79
+ const extractors = {
80
+ '$Add': (value) => {
81
+ const match = value.match(types_1.sumRegex);
82
+ if (match && match[1] && !match[2]) {
83
+ const values = match ? match[1].split(',').map(arg => arg.trim()) : [];
84
+ values.map((value) => extractFunctionAndArgs(value));
85
+ return values;
86
+ }
87
+ else {
88
+ throw `$Add is to be defined as $Add(...numbers), ${value} is invalid`;
89
+ }
90
+ },
91
+ '$Substract': (value) => {
92
+ const match = value.match(types_1.substractRegex);
93
+ if (match && match[1] && !match[2]) {
94
+ const values = match ? match[1].split(',').map(arg => arg.trim()) : [];
95
+ values.map((value) => extractFunctionAndArgs(value));
96
+ return values;
97
+ }
98
+ else {
99
+ throw `$Substract is to be defined as $Substract(...numbers), ${value} is invalid`;
100
+ }
101
+ },
102
+ '$Concat': (value) => {
103
+ const match = value.match(types_1.concatRegex);
104
+ if (match && match[1] && match[2] && !match[3]) {
105
+ extractFunctionAndArgs(match[1].trim());
106
+ extractFunctionAndArgs(match[2].trim());
107
+ return [match[1].trim(), match[2].trim()];
108
+ }
109
+ else {
110
+ throw `$Concat is to be defined as $Concat([string...], delimiter), ${value} is invalid`;
111
+ }
112
+ },
113
+ '$Substring': (value) => {
114
+ const match = value.match(types_1.substringRegex);
115
+ if (match && match[1] && match[2] && match[3] && !match[4]) {
116
+ // await validateArray(array);
117
+ // await validateNumber(index);
118
+ extractFunctionAndArgs(match[1].trim());
119
+ extractFunctionAndArgs(match[2].trim());
120
+ extractFunctionAndArgs(match[3].trim());
121
+ return [match[1].trim(), match[2].trim(), match[3].trim()];
122
+ }
123
+ else {
124
+ throw `$Substring is to be defined as $Substring(string, start, end), ${value} is invalid`;
125
+ }
126
+ },
127
+ '$Trim': (value) => {
128
+ const match = value.match(types_1.trimRegex);
129
+ if (match && match[1] && !match[2]) {
130
+ // await validateArray(array);
131
+ // await validateNumber(index);
132
+ extractFunctionAndArgs(match[1].trim());
133
+ return [match[1].trim()];
134
+ }
135
+ else {
136
+ throw `$Trim is to be defined as $Trim(string), ${value} is invalid`;
137
+ }
138
+ },
139
+ '$Split': (value) => {
140
+ const match = value.match(types_1.splitRegex);
141
+ if (match && match[1] && match[2] && !match[3]) {
142
+ // await validateArray(array);
143
+ // await validateNumber(index);
144
+ extractFunctionAndArgs(match[1].trim());
145
+ return [match[1].trim(), match[2].trim()];
146
+ }
147
+ else {
148
+ throw `$Split is to be defined as $Split(string, seperator), ${value} is invalid`;
149
+ }
150
+ },
151
+ '$Pick': (value) => {
152
+ const match = value.match(types_1.pickRegex);
153
+ if (match && match[1] && match[2] && !match[3]) {
154
+ // await validateArray(array);
155
+ // await validateNumber(index);
156
+ extractFunctionAndArgs(match[1].trim());
157
+ extractFunctionAndArgs(match[2].trim());
158
+ return [match[1].trim(), match[2].trim()];
159
+ }
160
+ else {
161
+ throw `$Pick is to be defined as $Pick(array, index), ${value} is invalid`;
162
+ }
163
+ },
164
+ '$Join': (value) => {
165
+ const match = value.match(types_1.joinRegex);
166
+ if (match && match[1] && !match[2]) {
167
+ extractFunctionAndArgs(match[1].trim());
168
+ return [match[1].trim()];
169
+ }
170
+ else {
171
+ throw `$Join is to be defined as $Join(arrays), ${value} is invalid`;
172
+ }
173
+ },
174
+ '$Uppercase': (value) => {
175
+ const match = value.match(types_1.uppercaseRegex);
176
+ if (match && match[1] && !match[2]) {
177
+ extractFunctionAndArgs(match[1].trim());
178
+ return [match[1].trim()];
179
+ }
180
+ else {
181
+ throw `$Uppercase is to be defined as $Lowercase(string), ${value} is invalid`;
182
+ }
183
+ },
184
+ '$Lowercase': (value) => {
185
+ const match = value.match(types_1.lowercaseRegex);
186
+ if (match && match[1] && !match[2]) {
187
+ extractFunctionAndArgs(match[1].trim());
188
+ return [match[1].trim()];
189
+ }
190
+ else {
191
+ throw `$Lowercase is to be defined as $Lowercase(string), ${value} is invalid`;
192
+ }
193
+ },
194
+ '$Dateformat': (value) => {
195
+ const match = value.match(types_1.dateFormatRegex);
196
+ if (match && match[1] && match[3]) {
197
+ extractFunctionAndArgs(match[1].trim());
198
+ extractFunctionAndArgs(match[3].trim());
199
+ return [match[1].trim(), match[3].trim()];
200
+ }
201
+ else {
202
+ throw `$Dateformat is to be defined as $Dateformat(dateString, format), ${value} is invalid`;
203
+ }
204
+ },
205
+ '$Replace': (value) => {
206
+ const match = value.match(types_1.replaceRegex);
207
+ if (match) {
208
+ const [_, strPlaceholder, , searchStr, , replaceStr] = match;
209
+ extractFunctionAndArgs(strPlaceholder.trim());
210
+ extractFunctionAndArgs(searchStr.trim());
211
+ extractFunctionAndArgs(replaceStr.trim());
212
+ return [strPlaceholder.trim(), searchStr.trim(), replaceStr.trim()];
213
+ }
214
+ else {
215
+ throw `$Replace is to be defined as $Replace(string, search, replace), ${value} is invalid`;
216
+ }
217
+ },
218
+ '$Filter': (value) => {
219
+ const match = value.match(types_1.filterRegex);
220
+ if (match && match[1] && match[2] && match[3] && !match[4]) {
221
+ if (!productsBuilder_types_1.ValidOperators.includes(match[2].trim())) {
222
+ throw `invalid operator ${match[2].trim()}`;
223
+ }
224
+ extractFunctionAndArgs(match[1].trim());
225
+ extractFunctionAndArgs(match[3].trim());
226
+ // await validateArray(array);
227
+ // await validateNumber(value);
228
+ return [match[1].trim(), match[2].trim(), match[3].trim()];
229
+ }
230
+ else {
231
+ throw `$Filter is to be defined as $Filter(array, "operator", value), ${value} is invalid`;
232
+ }
233
+ },
234
+ '$Find': (value) => {
235
+ const match = value.match(types_1.findRegex);
236
+ if (match && match[1] && match[2] && match[3] && !match[4]) {
237
+ if (!productsBuilder_types_1.ValidOperators.includes(match[2].trim())) {
238
+ throw `invalid operator ${match[2].trim()}`;
239
+ }
240
+ extractFunctionAndArgs(match[1].trim());
241
+ extractFunctionAndArgs(match[3].trim());
242
+ // await validateArray(array);
243
+ // await validateNumber(value);
244
+ return [match[1].trim(), match[2].trim(), match[3].trim()];
245
+ }
246
+ else {
247
+ throw `$Find is to be defined as $Find(array, "operator", value), ${value} is invalid`;
248
+ }
249
+ },
250
+ // Add more extractors here...
251
+ };
252
+ function extractFunctionAndArgs(value) {
253
+ if (typeof value === 'string') {
254
+ const functionName = Object.keys(extractors).find((name) => value.startsWith(name));
255
+ if (!functionName)
256
+ return null;
257
+ const args = extractors[functionName](value);
258
+ return args ? { functionName, args } : null;
259
+ }
260
+ else {
261
+ return null;
262
+ }
263
+ }
264
+ function validateAWSSQSQueueUrl(envs, queueUrls) {
265
+ const hasSQS = envs.filter((env) => env.type === productsBuilder_types_1.MessageBrokerTypes.AWS_SQS);
266
+ if (hasSQS.length) {
267
+ if (!queueUrls || !queueUrls.length) {
268
+ throw new Error(`One or more envs require queueUrls setup`);
269
+ }
270
+ // Find envs in hasSQS that are missing from data.queueUrls
271
+ const missingEnvs = hasSQS
272
+ .filter((env) => !queueUrls.some((queueUrl) => queueUrl.env_slug === env.slug))
273
+ .map((env) => env.slug);
274
+ if (missingEnvs.length) {
275
+ throw new Error(`Missing queueUrls for aws_sqs envs: ${missingEnvs.join(', ')}`);
276
+ }
277
+ queueUrls.forEach((queueUrl) => {
278
+ if (!this.fetchEnv(queueUrl.env_slug)) {
279
+ throw new Error(`queueUrl slug "${queueUrl.env_slug}" does not exist`);
280
+ }
281
+ });
282
+ }
283
+ }
284
+ function convertInputToValueMap(input) {
285
+ const result = {};
286
+ for (const key in input) {
287
+ if (Object.prototype.hasOwnProperty.call(input, key)) {
288
+ // @ts-ignore
289
+ result[key] = "$Value";
290
+ }
291
+ }
292
+ return result;
293
+ }
294
+ //# sourceMappingURL=functions.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.utils.js","sourceRoot":"","sources":["../../../../src/products/services/utils/functions.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { IFunctionInput } from '../../../types/productsBuilder.types';
2
+ export declare const validateObjectKeys: (allowedKeys: Array<string>, obj: Record<string, any>) => void;
3
+ export declare const validateFunctionInputKeys: (input: Array<IFunctionInput>, obj: Record<string, any>) => void;
4
+ export declare const deepEqual: (obj1: any, obj2: any) => boolean;
5
+ export declare function findFaultyKeys(keys: string[], obj: any): {
6
+ valid: boolean;
7
+ faultyKeys?: string[];
8
+ value: any;
9
+ };
10
+ export declare function traverseObject(obj: Record<string, any>): {
11
+ key: string;
12
+ value: any;
13
+ }[];
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepEqual = exports.validateFunctionInputKeys = exports.validateObjectKeys = void 0;
4
+ exports.findFaultyKeys = findFaultyKeys;
5
+ exports.traverseObject = traverseObject;
6
+ const validateObjectKeys = (allowedKeys, obj) => {
7
+ const objKeys = Object.keys(obj);
8
+ const missingKeys = allowedKeys.filter((key) => !objKeys.includes(key));
9
+ const extraKeys = objKeys.filter((key) => !allowedKeys.includes(key));
10
+ if (missingKeys.length > 0 || extraKeys.length > 0) {
11
+ throw new Error(`Invalid keys. Missing keys: ${missingKeys.join(', ')}. Extra keys: ${extraKeys.join(', ')}`);
12
+ }
13
+ };
14
+ exports.validateObjectKeys = validateObjectKeys;
15
+ const validateFunctionInputKeys = (input, obj) => {
16
+ const objKeys = Object.keys(obj);
17
+ const inputKeys = input.map((el) => el.key);
18
+ const missingKeys = inputKeys.filter((key) => !objKeys.includes(key));
19
+ const extraKeys = objKeys.filter((key) => !inputKeys.includes(key));
20
+ if (missingKeys.length > 0 || extraKeys.length > 0) {
21
+ throw new Error(`Invalid keys. Missing keys: ${missingKeys.join(', ')}. Extra keys: ${extraKeys.join(', ')}`);
22
+ }
23
+ };
24
+ exports.validateFunctionInputKeys = validateFunctionInputKeys;
25
+ const deepEqual = (obj1, obj2) => {
26
+ // Check if both objects are of the same type
27
+ if (typeof obj1 !== typeof obj2) {
28
+ return false;
29
+ }
30
+ // If both objects are arrays
31
+ if (Array.isArray(obj1) && Array.isArray(obj2)) {
32
+ if (obj1.length !== obj2.length) {
33
+ return false;
34
+ }
35
+ for (let i = 0; i < obj1.length; i++) {
36
+ if (!(0, exports.deepEqual)(obj1[i], obj2[i])) {
37
+ return false;
38
+ }
39
+ }
40
+ return true;
41
+ }
42
+ // If both objects are objects
43
+ if (typeof obj1 === 'object' && typeof obj2 === 'object') {
44
+ const keys1 = Object.keys(obj1);
45
+ const keys2 = Object.keys(obj2);
46
+ if (keys1.length !== keys2.length) {
47
+ return false;
48
+ }
49
+ for (const key of keys1) {
50
+ if (!obj2.hasOwnProperty(key) || !(0, exports.deepEqual)(obj1[key], obj2[key])) {
51
+ return false;
52
+ }
53
+ }
54
+ return true;
55
+ }
56
+ // For primitive types, compare directly
57
+ return obj1 === obj2;
58
+ };
59
+ exports.deepEqual = deepEqual;
60
+ function findFaultyKeys(keys, obj) {
61
+ let current = obj;
62
+ const faultyKeys = [];
63
+ for (const key of keys) {
64
+ if (current && typeof current === "object" && key in current) {
65
+ current = current[key]; // Go deeper
66
+ }
67
+ else {
68
+ faultyKeys.push(key);
69
+ return { valid: false, faultyKeys, value: undefined };
70
+ }
71
+ }
72
+ return { valid: true, value: current };
73
+ }
74
+ function traverseObject(obj) {
75
+ const keyValues = [];
76
+ for (const key in obj) {
77
+ if (obj.hasOwnProperty(key)) {
78
+ const value = obj[key];
79
+ if (typeof value === "object" && value !== null) {
80
+ traverseObject(value); // Recursive call for nested objects
81
+ }
82
+ else {
83
+ keyValues.push({ key, value });
84
+ }
85
+ }
86
+ }
87
+ return keyValues;
88
+ }
89
+ //# sourceMappingURL=objects.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.utils.js","sourceRoot":"","sources":["../../../../src/products/services/utils/objects.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { IParsedSample } from "../../../types/inputs.types";
2
+ export declare const extractStages: (input: string) => Array<string | number>;
3
+ export declare const isNumeric: (value: string) => boolean;
4
+ export declare const validateAndLocateTag: (input: string) => number;
5
+ export declare const extractConditionalParts: (check: string) => RegExpMatchArray;
6
+ export declare const checkLengthAndSizeMatches: (value: string) => {
7
+ matchLength: RegExpMatchArray;
8
+ matchSize: RegExpMatchArray;
9
+ };
10
+ export declare const startsWithAny: (str: string, prefixes: string[]) => boolean;
11
+ export declare const extractPlaceholders: (str: string, parent_key?: string) => Array<IParsedSample>;
12
+ export declare const extractOriginAndTag: (input: string) => string;
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractOriginAndTag = exports.extractPlaceholders = exports.startsWithAny = exports.checkLengthAndSizeMatches = exports.extractConditionalParts = exports.validateAndLocateTag = exports.isNumeric = exports.extractStages = void 0;
4
+ const enums_1 = require("../../../types/enums");
5
+ const extractStages = (input) => {
6
+ const regex = /\{(.*?)\}|\[(\d+)\]/g;
7
+ const result = [];
8
+ let match;
9
+ while ((match = regex.exec(input)) !== null) {
10
+ if (match[1] !== undefined) {
11
+ // Matched {string}
12
+ result.push(match[1]);
13
+ }
14
+ else if (match[2] !== undefined) {
15
+ // Matched [number]
16
+ result.push(Number(match[2]));
17
+ }
18
+ }
19
+ return result;
20
+ };
21
+ exports.extractStages = extractStages;
22
+ const isNumeric = (value) => {
23
+ return !isNaN(Number(value)) && !isNaN(parseFloat(value));
24
+ };
25
+ exports.isNumeric = isNumeric;
26
+ const validateAndLocateTag = (input) => {
27
+ // Regex to match {tags} and [value]
28
+ const tagPattern = /\{([^{}]+)\}/g; // Matches {tags}
29
+ const ductapeOperators = ["$Concat", "$Pick", "$Join", "$Filter", "$Find"];
30
+ const operatorRegex = ductapeOperators.map(op => `\\${op}\\(`).join("|"); // Escape `$`
31
+ const bracketPattern = new RegExp(`(?<!(${operatorRegex}))\\[([^\\[\\]]+)\\]`, "g");
32
+ // Extract all tags and their positions
33
+ const tags = [];
34
+ let match;
35
+ while ((match = tagPattern.exec(input)) !== null) {
36
+ tags.push({ value: match[1], index: match.index });
37
+ }
38
+ // Extract all [value] occurrences
39
+ const brackets = [];
40
+ while ((match = bracketPattern.exec(input)) !== null) {
41
+ brackets.push({ value: match[1], index: match.index });
42
+ }
43
+ // Validate conditions
44
+ if (brackets.length === 0) {
45
+ return;
46
+ //throw new Error("No [value] found in the string.");
47
+ }
48
+ if (brackets.length > 1) {
49
+ throw new Error(`More than one indexing value found in string ${input}.`);
50
+ }
51
+ const bracket = brackets[0]; // Only one [value] exists at this point
52
+ if (bracket.value !== "$Index") {
53
+ throw new Error(`Invalid indexing [value] content: ${bracket.value}. Only "$Index" is allowed in ${input}`);
54
+ }
55
+ // Ensure [value] is not before the first three {tags}
56
+ if (tags.length < 3) {
57
+ throw new Error(`The string must contain at least three {tags}. The "$Sequence{sequence_tag}{event_tag}{selector}" are expected before the [$Index] is defined ${input}`);
58
+ }
59
+ if (bracket.index < tags[2].index) {
60
+ throw new Error("[value] cannot be positioned before the first three {tags}.");
61
+ }
62
+ // Find the tag directly preceding [value]
63
+ let precedingTag = null;
64
+ for (let i = tags.length - 1; i >= 0; i--) {
65
+ if (tags[i].index < bracket.index) {
66
+ precedingTag = { value: tags[i].value, index: i };
67
+ break;
68
+ }
69
+ }
70
+ if (!precedingTag) {
71
+ throw new Error("No tag found before [value].");
72
+ }
73
+ // Return the index of the preceding tag
74
+ return precedingTag.index;
75
+ };
76
+ exports.validateAndLocateTag = validateAndLocateTag;
77
+ const extractConditionalParts = (check) => {
78
+ return check.match(/^(\S+)\s*(>|<|>=|<=|==|!==)\s*(\S+)$/);
79
+ };
80
+ exports.extractConditionalParts = extractConditionalParts;
81
+ const checkLengthAndSizeMatches = (value) => {
82
+ const matchLength = value.match(/\$Length\{([^{}]*(?:\{[^{}]*\})*[^{}]*)\}/);
83
+ const matchSize = value.match(/\$Size\{([^{}]*(?:\{[^{}]*\})*[^{}]*)\}/);
84
+ return { matchLength, matchSize };
85
+ };
86
+ exports.checkLengthAndSizeMatches = checkLengthAndSizeMatches;
87
+ function hasSpacesOrSpecialCharsExceptUnderscore(str) {
88
+ // Allow only one colon (:) anywhere in the string
89
+ const colonCount = (str.match(/:/g) || []).length;
90
+ if (colonCount > 4)
91
+ return true;
92
+ // Check for other disallowed characters
93
+ const regex = /[\s]|[^a-zA-Z0-9_:]/;
94
+ return regex.test(str);
95
+ }
96
+ const isPositiveIntegerOrZero = (str) => {
97
+ return /^(0|[1-9]\d*)$/.test(str);
98
+ };
99
+ const startsWithAny = (str, prefixes) => {
100
+ return prefixes.some(prefix => str.startsWith(prefix));
101
+ };
102
+ exports.startsWithAny = startsWithAny;
103
+ const extractPlaceholders = (str, parent_key = "") => {
104
+ const regex = /{{(.*?)}}/g;
105
+ const placeholders = [];
106
+ const seenKeys = new Set(); // Track duplicate keys
107
+ let match;
108
+ while ((match = regex.exec(str)) !== null) {
109
+ if (hasSpacesOrSpecialCharsExceptUnderscore(match[1])) {
110
+ throw new Error(`Placeholder "${match[1]}" is not expected to contain special characters except "_" and at most four ":"`);
111
+ }
112
+ let level = parent_key ? 1 : 0;
113
+ // Split key by ":" to extract key and type
114
+ const split = match[1].split(":");
115
+ const key = split[0];
116
+ // Check for duplicate keys
117
+ if (seenKeys.has(key)) {
118
+ console.log(str);
119
+ throw new Error(`Duplicate placeholder key "${key}" found.`);
120
+ }
121
+ seenKeys.add(key);
122
+ // Validate type or default to DataTypes.STRING
123
+ const type = split[1] && Object.values(enums_1.DataTypes).includes(split[1])
124
+ ? split[1]
125
+ : enums_1.DataTypes.STRING;
126
+ let minLength = 1;
127
+ let maxLength = 0;
128
+ if (split[2]) {
129
+ if (!isPositiveIntegerOrZero(split[2])) {
130
+ throw new Error(`invalid minlength ${split[2]}, expected to be a positive integer`);
131
+ }
132
+ minLength = Number(split[2]);
133
+ }
134
+ if (split[3]) {
135
+ if (!isPositiveIntegerOrZero(split[3])) {
136
+ throw new Error(`invalid maxlength ${split[3]}, expected to be a positive integer`);
137
+ }
138
+ maxLength = Number(split[3]);
139
+ }
140
+ let unique = false;
141
+ if (split[4]) {
142
+ if (split[4] !== 'true' && split[4] !== 'false') {
143
+ throw new Error(`invalid unique flag ${split[4]} in ${match[1]} expected to be true or false`);
144
+ }
145
+ if (split[4] === 'true')
146
+ unique = true;
147
+ }
148
+ placeholders.push({
149
+ parent_key,
150
+ key,
151
+ category: enums_1.Categories.INPUT,
152
+ required: true,
153
+ minLength,
154
+ maxLength,
155
+ type,
156
+ level,
157
+ unique,
158
+ });
159
+ }
160
+ return placeholders;
161
+ };
162
+ exports.extractPlaceholders = extractPlaceholders;
163
+ const extractOriginAndTag = (input) => {
164
+ const [origin, tag] = input.split(":");
165
+ return `${origin}:${tag}`;
166
+ };
167
+ exports.extractOriginAndTag = extractOriginAndTag;
168
+ //# sourceMappingURL=string.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.utils.js","sourceRoot":"","sources":["../../../../src/products/services/utils/string.utils.ts"],"names":[],"mappings":"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"}