aws-service-stack 0.10.92

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 (140) hide show
  1. package/README.md +20 -0
  2. package/dist/_examples/model/user.model.d.ts +6 -0
  3. package/dist/_examples/model/user.model.js +3 -0
  4. package/dist/_examples/model/user.model.js.map +1 -0
  5. package/dist/controller/base-controller.d.ts +34 -0
  6. package/dist/controller/base-controller.js +151 -0
  7. package/dist/controller/base-controller.js.map +1 -0
  8. package/dist/controller/index.d.ts +1 -0
  9. package/dist/controller/index.js +18 -0
  10. package/dist/controller/index.js.map +1 -0
  11. package/dist/exception/errors.d.ts +32 -0
  12. package/dist/exception/errors.js +46 -0
  13. package/dist/exception/errors.js.map +1 -0
  14. package/dist/exception/exception-handler.d.ts +238 -0
  15. package/dist/exception/exception-handler.js +112 -0
  16. package/dist/exception/exception-handler.js.map +1 -0
  17. package/dist/index.d.ts +6 -0
  18. package/dist/index.js +23 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/model/base.model.d.ts +64 -0
  21. package/dist/model/base.model.js +20 -0
  22. package/dist/model/base.model.js.map +1 -0
  23. package/dist/model/cognito-user.model.d.ts +12 -0
  24. package/dist/model/cognito-user.model.js +3 -0
  25. package/dist/model/cognito-user.model.js.map +1 -0
  26. package/dist/model/filter.model.d.ts +46 -0
  27. package/dist/model/filter.model.js +22 -0
  28. package/dist/model/filter.model.js.map +1 -0
  29. package/dist/model/http.model.d.ts +7 -0
  30. package/dist/model/http.model.js +12 -0
  31. package/dist/model/http.model.js.map +1 -0
  32. package/dist/model/index.d.ts +4 -0
  33. package/dist/model/index.js +21 -0
  34. package/dist/model/index.js.map +1 -0
  35. package/dist/model/schema-validation.d.ts +20 -0
  36. package/dist/model/schema-validation.js +91 -0
  37. package/dist/model/schema-validation.js.map +1 -0
  38. package/dist/provider/apigateway.d.ts +4 -0
  39. package/dist/provider/apigateway.js +28 -0
  40. package/dist/provider/apigateway.js.map +1 -0
  41. package/dist/provider/dynamodb.d.ts +3 -0
  42. package/dist/provider/dynamodb.js +18 -0
  43. package/dist/provider/dynamodb.js.map +1 -0
  44. package/dist/provider/index.d.ts +3 -0
  45. package/dist/provider/index.js +20 -0
  46. package/dist/provider/index.js.map +1 -0
  47. package/dist/provider/opensearch.d.ts +4 -0
  48. package/dist/provider/opensearch.js +34 -0
  49. package/dist/provider/opensearch.js.map +1 -0
  50. package/dist/repositories/base-core.repo.interface.d.ts +129 -0
  51. package/dist/repositories/base-core.repo.interface.js +3 -0
  52. package/dist/repositories/base-core.repo.interface.js.map +1 -0
  53. package/dist/repositories/base-db.repo.d.ts +78 -0
  54. package/dist/repositories/base-db.repo.interface.d.ts +61 -0
  55. package/dist/repositories/base-db.repo.interface.js +3 -0
  56. package/dist/repositories/base-db.repo.interface.js.map +1 -0
  57. package/dist/repositories/base-db.repo.js +471 -0
  58. package/dist/repositories/base-db.repo.js.map +1 -0
  59. package/dist/repositories/base-es.repo.d.ts +31 -0
  60. package/dist/repositories/base-es.repo.interface.d.ts +13 -0
  61. package/dist/repositories/base-es.repo.interface.js +3 -0
  62. package/dist/repositories/base-es.repo.interface.js.map +1 -0
  63. package/dist/repositories/base-es.repo.js +148 -0
  64. package/dist/repositories/base-es.repo.js.map +1 -0
  65. package/dist/repositories/index.d.ts +4 -0
  66. package/dist/repositories/index.js +21 -0
  67. package/dist/repositories/index.js.map +1 -0
  68. package/dist/service/api.services/api.service.d.ts +11 -0
  69. package/dist/service/api.services/api.service.interface.d.ts +8 -0
  70. package/dist/service/api.services/api.service.interface.js +3 -0
  71. package/dist/service/api.services/api.service.interface.js.map +1 -0
  72. package/dist/service/api.services/api.service.js +103 -0
  73. package/dist/service/api.services/api.service.js.map +1 -0
  74. package/dist/service/api.services/index.d.ts +2 -0
  75. package/dist/service/api.services/index.js +19 -0
  76. package/dist/service/api.services/index.js.map +1 -0
  77. package/dist/service/auth.service.d.ts +8 -0
  78. package/dist/service/auth.service.interface.d.ts +6 -0
  79. package/dist/service/auth.service.interface.js +3 -0
  80. package/dist/service/auth.service.interface.js.map +1 -0
  81. package/dist/service/auth.service.js +90 -0
  82. package/dist/service/auth.service.js.map +1 -0
  83. package/dist/service/base.service.d.ts +39 -0
  84. package/dist/service/base.service.interface.d.ts +106 -0
  85. package/dist/service/base.service.interface.js +3 -0
  86. package/dist/service/base.service.interface.js.map +1 -0
  87. package/dist/service/base.service.js +167 -0
  88. package/dist/service/base.service.js.map +1 -0
  89. package/dist/service/index.d.ts +5 -0
  90. package/dist/service/index.js +22 -0
  91. package/dist/service/index.js.map +1 -0
  92. package/dist/service/key-aws.services.d.ts +6 -0
  93. package/dist/service/key-aws.services.js +48 -0
  94. package/dist/service/key-aws.services.js.map +1 -0
  95. package/dist/service/key.services.interface.d.ts +3 -0
  96. package/dist/service/key.services.interface.js +3 -0
  97. package/dist/service/key.services.interface.js.map +1 -0
  98. package/dist/service/socket.service.d.ts +6 -0
  99. package/dist/service/socket.service.interface.d.ts +3 -0
  100. package/dist/service/socket.service.interface.js +3 -0
  101. package/dist/service/socket.service.interface.js.map +1 -0
  102. package/dist/service/socket.service.js +33 -0
  103. package/dist/service/socket.service.js.map +1 -0
  104. package/dist/service/validation.service.interface.d.ts +2 -0
  105. package/dist/service/validation.service.interface.js +3 -0
  106. package/dist/service/validation.service.interface.js.map +1 -0
  107. package/dist/utils/auth.util.d.ts +13 -0
  108. package/dist/utils/auth.util.js +17 -0
  109. package/dist/utils/auth.util.js.map +1 -0
  110. package/dist/utils/dynamodb.utils.d.ts +43 -0
  111. package/dist/utils/dynamodb.utils.js +303 -0
  112. package/dist/utils/dynamodb.utils.js.map +1 -0
  113. package/dist/utils/env.util.d.ts +1 -0
  114. package/dist/utils/env.util.js +14 -0
  115. package/dist/utils/env.util.js.map +1 -0
  116. package/dist/utils/error.util.d.ts +1 -0
  117. package/dist/utils/error.util.js +5 -0
  118. package/dist/utils/error.util.js.map +1 -0
  119. package/dist/utils/file-handler.d.ts +14 -0
  120. package/dist/utils/file-handler.js +216 -0
  121. package/dist/utils/file-handler.js.map +1 -0
  122. package/dist/utils/http.util.d.ts +27 -0
  123. package/dist/utils/http.util.js +133 -0
  124. package/dist/utils/http.util.js.map +1 -0
  125. package/dist/utils/index.d.ts +8 -0
  126. package/dist/utils/index.js +25 -0
  127. package/dist/utils/index.js.map +1 -0
  128. package/dist/utils/json.util.d.ts +1 -0
  129. package/dist/utils/json.util.js +20 -0
  130. package/dist/utils/json.util.js.map +1 -0
  131. package/dist/utils/opensearch.utils.d.ts +40 -0
  132. package/dist/utils/opensearch.utils.js +293 -0
  133. package/dist/utils/opensearch.utils.js.map +1 -0
  134. package/dist/utils/reflection.util.d.ts +20 -0
  135. package/dist/utils/reflection.util.js +154 -0
  136. package/dist/utils/reflection.util.js.map +1 -0
  137. package/dist/utils/validation.util.d.ts +13 -0
  138. package/dist/utils/validation.util.js +90 -0
  139. package/dist/utils/validation.util.js.map +1 -0
  140. package/package.json +106 -0
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseLastEvaluatedKey = exports.checkFieldType = exports.isEmptyExpression = exports.addIndexValue = exports.generateIndexValues = exports.buildDynamoDBQueryCommand = exports.buildDynamoDBScanCommand = exports.buildQueryDB = exports.buildDynamoDBFilterConditions = exports.generateUUID = void 0;
4
+ exports.unMarshall = unMarshall;
5
+ exports.isEmptyExpressions = isEmptyExpressions;
6
+ exports.buildUpdateExpressions = buildUpdateExpressions;
7
+ exports.generateLastEvaluatedKey = generateLastEvaluatedKey;
8
+ exports.toBase64 = toBase64;
9
+ const util_dynamodb_1 = require("@aws-sdk/util-dynamodb");
10
+ const reflection_util_1 = require("./reflection.util");
11
+ const errors_1 = require("../exception/errors");
12
+ const base_model_1 = require("../model/base.model");
13
+ const generateUUID = () => {
14
+ return crypto.randomUUID();
15
+ };
16
+ exports.generateUUID = generateUUID;
17
+ const buildDynamoDBFilterConditions = (filter, indexMap) => {
18
+ var _a, _b;
19
+ if (!filter)
20
+ throw new errors_1.MissingParameterError("filter");
21
+ const rFields = (_b = (_a = indexMap.get(filter.indexName)) === null || _a === void 0 ? void 0 : _a.rFields) !== null && _b !== void 0 ? _b : [];
22
+ const ignoredKeys = [
23
+ ...rFields,
24
+ "page",
25
+ "size",
26
+ "sortBy",
27
+ "sort",
28
+ "searchBy",
29
+ "searchKeyword",
30
+ "rangeFilterBy",
31
+ "rangeFilterMin",
32
+ "rangeFilterMax",
33
+ "lastKey",
34
+ "indexName",
35
+ "indexValue",
36
+ "fieldsInclude",
37
+ "fieldsExclude",
38
+ ];
39
+ const dynamicFilters = (0, reflection_util_1.excludeKeys)(filter, ignoredKeys);
40
+ const expressions = [];
41
+ const attrNames = {};
42
+ const attrValues = {};
43
+ let counter = 0;
44
+ const genPlaceholder = (key) => {
45
+ const safeKey = key.replace(/\W+/g, "_");
46
+ return {
47
+ name: `#${safeKey}_${counter}`,
48
+ value: `:${safeKey}_val_${counter++}`,
49
+ };
50
+ };
51
+ // Range Filter
52
+ if (filter.rangeFilterBy) {
53
+ const key = filter.rangeFilterBy;
54
+ const { name, value } = genPlaceholder(key);
55
+ attrNames[name] = key;
56
+ if (filter.rangeFilterMin !== undefined && filter.rangeFilterMax !== undefined) {
57
+ attrValues[value + "_min"] = filter.rangeFilterMin;
58
+ attrValues[value + "_max"] = filter.rangeFilterMax;
59
+ expressions.push(`${name} BETWEEN ${value}_min AND ${value}_max`);
60
+ }
61
+ else if (filter.rangeFilterMin !== undefined) {
62
+ attrValues[value] = filter.rangeFilterMin;
63
+ expressions.push(`${name} >= ${value}`);
64
+ }
65
+ else if (filter.rangeFilterMax !== undefined) {
66
+ attrValues[value] = filter.rangeFilterMax;
67
+ expressions.push(`${name} <= ${value}`);
68
+ }
69
+ }
70
+ // Search Filter
71
+ if (filter.searchBy && filter.searchKeyword) {
72
+ const key = filter.searchBy;
73
+ const { name, value } = genPlaceholder(key);
74
+ attrNames[name] = key;
75
+ attrValues[value] = filter.searchKeyword;
76
+ expressions.push(`contains(${name}, ${value})`);
77
+ }
78
+ // General filters
79
+ for (const [key, raw] of Object.entries(dynamicFilters)) {
80
+ if (key === "lastKey")
81
+ continue;
82
+ const value = String(raw);
83
+ const { name, value: valName } = genPlaceholder(key);
84
+ attrNames[name] = key;
85
+ if (value.startsWith("*") && value.endsWith("*")) {
86
+ attrValues[valName] = (0, exports.checkFieldType)(key, value.slice(1, -1), indexMap);
87
+ expressions.push(`contains(${name}, ${valName})`);
88
+ }
89
+ else if (!value.startsWith("*") && value.endsWith("*")) {
90
+ attrValues[valName] = (0, exports.checkFieldType)(key, value.slice(0, -1), indexMap);
91
+ expressions.push(`begins_with(${name}, ${valName})`);
92
+ }
93
+ else if (value.startsWith("!")) {
94
+ attrValues[valName] = (0, exports.checkFieldType)(key, value.slice(1), indexMap);
95
+ expressions.push(`${name} <> ${valName}`);
96
+ }
97
+ else if (value.includes(",")) {
98
+ const values = value.split(",").map((v) => v.trim());
99
+ const placeholders = [];
100
+ values.forEach((v, i) => {
101
+ const subVal = `${valName}_${i}`;
102
+ attrValues[subVal] = (0, exports.checkFieldType)(key, v, indexMap);
103
+ placeholders.push(subVal);
104
+ });
105
+ expressions.push(`${name} IN (${placeholders.join(", ")})`);
106
+ }
107
+ else {
108
+ attrValues[valName] = (0, exports.checkFieldType)(key, value, indexMap);
109
+ expressions.push(`${name} = ${valName}`);
110
+ }
111
+ }
112
+ if (expressions.length === 0)
113
+ return {};
114
+ return {
115
+ filter: expressions.join(" AND "),
116
+ attributeNames: attrNames,
117
+ attributeValues: attrValues,
118
+ };
119
+ };
120
+ exports.buildDynamoDBFilterConditions = buildDynamoDBFilterConditions;
121
+ const buildQueryDB = (tableName, filter, indexMap) => {
122
+ var _a;
123
+ if (!tableName || !filter)
124
+ throw new errors_1.MissingParameterError("tableName or filter");
125
+ const filterCondition = (0, exports.buildDynamoDBFilterConditions)(filter, indexMap);
126
+ const indexField = (_a = indexMap.get(filter.indexName)) === null || _a === void 0 ? void 0 : _a.field;
127
+ if (indexField) {
128
+ return (0, exports.buildDynamoDBQueryCommand)({
129
+ filterCondition,
130
+ tableName,
131
+ filter,
132
+ indexMap,
133
+ });
134
+ }
135
+ return (0, exports.buildDynamoDBScanCommand)({
136
+ tableName,
137
+ filter,
138
+ expression: filterCondition,
139
+ });
140
+ };
141
+ exports.buildQueryDB = buildQueryDB;
142
+ const buildDynamoDBScanCommand = ({ tableName, filter, expression, }) => {
143
+ var _a;
144
+ const scanCommand = { TableName: tableName, Limit: (_a = filter === null || filter === void 0 ? void 0 : filter.size) !== null && _a !== void 0 ? _a : 25 };
145
+ if ((filter === null || filter === void 0 ? void 0 : filter.lastKey) && filter.lastKey != "undefined")
146
+ scanCommand.ExclusiveStartKey = (0, exports.parseLastEvaluatedKey)(filter.lastKey);
147
+ if (isEmptyExpressions(expression))
148
+ return scanCommand;
149
+ scanCommand.FilterExpression = expression.filter;
150
+ scanCommand.ExpressionAttributeNames = expression.attributeNames;
151
+ scanCommand.ExpressionAttributeValues = (0, util_dynamodb_1.marshall)(expression.attributeValues, {
152
+ convertClassInstanceToMap: true,
153
+ removeUndefinedValues: true,
154
+ });
155
+ return scanCommand;
156
+ };
157
+ exports.buildDynamoDBScanCommand = buildDynamoDBScanCommand;
158
+ const buildDynamoDBQueryCommand = ({ filter, tableName, filterCondition, indexMap, }) => {
159
+ var _a;
160
+ if (!filter.indexName)
161
+ throw new Error("Missing indexName in filter");
162
+ if (filter.indexValue === undefined || filter.indexValue === null)
163
+ throw new Error("Missing indexValue in filter");
164
+ const indexInfo = indexMap.get(filter.indexName);
165
+ if (!indexInfo)
166
+ throw new Error(`Index info not found for index: ${filter.indexName}`);
167
+ const attr = indexInfo.field;
168
+ const value = filter.indexValue;
169
+ const attrKey = `#${attr}`;
170
+ const valueKey = `:${attr}`;
171
+ const keyConditionExpression = `${attrKey} = ${valueKey}`;
172
+ const expressionAttributeNames = {
173
+ [attrKey]: attr,
174
+ };
175
+ const expressionAttributeValues = {
176
+ [valueKey]: (0, util_dynamodb_1.marshall)({ val: value }).val,
177
+ };
178
+ if (filterCondition === null || filterCondition === void 0 ? void 0 : filterCondition.filter) {
179
+ if (filterCondition.attributeNames) {
180
+ Object.assign(expressionAttributeNames, filterCondition.attributeNames);
181
+ }
182
+ if (filterCondition.attributeValues) {
183
+ const marshalled = (0, util_dynamodb_1.marshall)(filterCondition.attributeValues, {
184
+ convertClassInstanceToMap: true,
185
+ removeUndefinedValues: true,
186
+ });
187
+ Object.assign(expressionAttributeValues, marshalled);
188
+ }
189
+ }
190
+ const queryCommand = {
191
+ TableName: tableName,
192
+ IndexName: filter.indexName,
193
+ KeyConditionExpression: keyConditionExpression,
194
+ FilterExpression: filterCondition === null || filterCondition === void 0 ? void 0 : filterCondition.filter,
195
+ ExpressionAttributeNames: expressionAttributeNames,
196
+ ExpressionAttributeValues: expressionAttributeValues,
197
+ Limit: (_a = filter === null || filter === void 0 ? void 0 : filter.size) !== null && _a !== void 0 ? _a : 25,
198
+ ScanIndexForward: filter.sort === base_model_1.SortOrder.ASC,
199
+ };
200
+ if (filter.lastKey) {
201
+ queryCommand.ExclusiveStartKey = (0, exports.parseLastEvaluatedKey)(filter.lastKey);
202
+ }
203
+ return queryCommand;
204
+ };
205
+ exports.buildDynamoDBQueryCommand = buildDynamoDBQueryCommand;
206
+ const generateIndexValues = (input, indexMap) => {
207
+ const result = Object.assign({}, input);
208
+ for (const [, { field, rFields, fieldSeparator }] of indexMap.entries()) {
209
+ if (rFields.every((key) => key in input))
210
+ result[field] = rFields.map((key) => input[key]).join(fieldSeparator !== null && fieldSeparator !== void 0 ? fieldSeparator : "");
211
+ }
212
+ return result;
213
+ };
214
+ exports.generateIndexValues = generateIndexValues;
215
+ const addIndexValue = (entity, indexMap) => {
216
+ if (!indexMap)
217
+ return entity;
218
+ const relatedIndexFields = Array.from(indexMap.values())
219
+ .flatMap((v) => v.rFields)
220
+ .filter((x) => !!x);
221
+ if (!relatedIndexFields || relatedIndexFields.length <= 1)
222
+ return entity;
223
+ const indexedValues = (0, exports.generateIndexValues)(entity, indexMap);
224
+ return Object.assign(entity, indexedValues);
225
+ };
226
+ exports.addIndexValue = addIndexValue;
227
+ function unMarshall(dataRecords) {
228
+ return dataRecords.map((data) => (0, util_dynamodb_1.unmarshall)(data));
229
+ }
230
+ const isEmptyExpression = ({ expression, }) => {
231
+ if (!expression)
232
+ return true;
233
+ const { FilterExpression, ExpressionAttributeNames, ExpressionAttributeValues } = expression;
234
+ const isEmptyObject = (obj) => !obj || Object.keys(obj).length === 0;
235
+ return !FilterExpression || isEmptyObject(ExpressionAttributeNames) || isEmptyObject(ExpressionAttributeValues);
236
+ };
237
+ exports.isEmptyExpression = isEmptyExpression;
238
+ function isEmptyExpressions(exp) {
239
+ const isEmptyObject = (obj) => !obj || Object.keys(obj).length === 0;
240
+ return !exp.filter || isEmptyObject(exp.attributeNames) || isEmptyObject(exp.attributeValues);
241
+ }
242
+ const checkFieldType = (key, value, indexMap) => {
243
+ var _a;
244
+ if ((indexMap === null || indexMap === void 0 ? void 0 : indexMap.numberFields) && ((_a = indexMap === null || indexMap === void 0 ? void 0 : indexMap.numberFields) === null || _a === void 0 ? void 0 : _a.length) > 0) {
245
+ for (const field of indexMap.numberFields) {
246
+ if (!field.includes(key))
247
+ continue;
248
+ const numValue = Number(value);
249
+ return isNaN(numValue) ? value : numValue;
250
+ }
251
+ }
252
+ return value;
253
+ };
254
+ exports.checkFieldType = checkFieldType;
255
+ function buildUpdateExpressions(data, excludeKeys = []) {
256
+ const updateParts = [];
257
+ const names = {};
258
+ const values = {};
259
+ Object.entries(data).forEach(([key, value], idx) => {
260
+ if (!excludeKeys.includes(key) && value !== undefined) {
261
+ const attrKey = `#field${idx}`;
262
+ const valueKey = `:value${idx}`;
263
+ updateParts.push(`${attrKey} = ${valueKey}`);
264
+ names[attrKey] = key;
265
+ values[valueKey] = value;
266
+ }
267
+ });
268
+ if (updateParts.length === 0) {
269
+ throw new Error("Шинэчлэх талбар алга байна");
270
+ }
271
+ return {
272
+ UpdateExpression: `SET ${updateParts.join(", ")}`,
273
+ ExpressionAttributeNames: names,
274
+ ExpressionAttributeValues: (0, util_dynamodb_1.marshall)(values, { removeUndefinedValues: true }),
275
+ };
276
+ }
277
+ const parseLastEvaluatedKey = (lastKey) => {
278
+ if (!lastKey) {
279
+ return undefined;
280
+ }
281
+ const decodeToken = Buffer.from(lastKey, "base64").toString();
282
+ if (decodeToken.match(/^\{.+\}$/)) {
283
+ return JSON.parse(decodeToken);
284
+ }
285
+ else {
286
+ return decodeToken;
287
+ }
288
+ };
289
+ exports.parseLastEvaluatedKey = parseLastEvaluatedKey;
290
+ function generateLastEvaluatedKey(item, indexField, sortField) {
291
+ if (!(item === null || item === void 0 ? void 0 : item.id) && !indexField)
292
+ throw new Error("id or indexField not found");
293
+ const result = { id: item === null || item === void 0 ? void 0 : item.id };
294
+ if (indexField)
295
+ Object.assign(result, { [indexField]: item[indexField] });
296
+ if (sortField)
297
+ Object.assign(result, { [sortField]: item[sortField] });
298
+ return toBase64(JSON.stringify(result));
299
+ }
300
+ function toBase64(inputStr) {
301
+ return Buffer.from(inputStr).toString("base64");
302
+ }
303
+ //# sourceMappingURL=dynamodb.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamodb.utils.js","sourceRoot":"","sources":["../../src/utils/dynamodb.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const getEnvVariable: (name: string, customError?: Error) => string;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getEnvVariable = void 0;
4
+ const getEnvVariable = (name, customError) => {
5
+ const value = process.env[name];
6
+ if (value)
7
+ return value;
8
+ else if (customError) {
9
+ throw customError;
10
+ }
11
+ return undefined;
12
+ };
13
+ exports.getEnvVariable = getEnvVariable;
14
+ //# sourceMappingURL=env.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.util.js","sourceRoot":"","sources":["../../src/utils/env.util.ts"],"names":[],"mappings":";;;AAAO,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,WAAmB,EAAU,EAAE;IAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;SACnB,IAAI,WAAW,EAAE,CAAC;QACrB,MAAM,WAAW,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAPW,QAAA,cAAc,kBAOzB"}
@@ -0,0 +1 @@
1
+ export declare const handleError: {};
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleError = void 0;
4
+ exports.handleError = {};
5
+ //# sourceMappingURL=error.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.util.js","sourceRoot":"","sources":["../../src/utils/error.util.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare const readFileLinesAsList: (filePath: string) => Promise<string[]>;
2
+ export declare const writeFileLines: (filePath: string, lines: string[]) => void;
3
+ export declare const createFile: <T>(filePath: string, content: Iterable<T>) => void;
4
+ export declare const createTextFile: <T>(filePath: string, content: Iterable<T>) => void;
5
+ export declare const appendNewLineToFile: (filePath: string, items: string[]) => void;
6
+ export declare const createCsvFile: <T>(filePath: string, content: Iterable<T>) => void;
7
+ /**
8
+ * Creates an Excel file from a list of objects
9
+ * @param filePath Path to save the Excel file
10
+ * @param content Iterable list of objects (generic)
11
+ */
12
+ export declare const createExcelFile: <T>(filePath: string, content: Iterable<T>) => void;
13
+ export declare function readJSONFile(fileName: string): object;
14
+ export declare function readExcel(filePath: string): Array<Array<string>>;
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
45
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
46
+ var m = o[Symbol.asyncIterator], i;
47
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
48
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
49
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
50
+ };
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.createExcelFile = exports.createCsvFile = exports.appendNewLineToFile = exports.createTextFile = exports.createFile = exports.writeFileLines = exports.readFileLinesAsList = void 0;
53
+ exports.readJSONFile = readJSONFile;
54
+ exports.readExcel = readExcel;
55
+ const fs = __importStar(require("fs"));
56
+ const path = __importStar(require("path"));
57
+ const readline = __importStar(require("readline"));
58
+ const XLSX = __importStar(require("xlsx"));
59
+ // Function to read a file and return its lines as a list
60
+ const readFileLinesAsList = (filePath) => __awaiter(void 0, void 0, void 0, function* () {
61
+ var _a, e_1, _b, _c;
62
+ const lines = []; // List to store lines
63
+ // Create a Readline interface
64
+ const fileStream = fs.createReadStream(filePath);
65
+ const rl = readline.createInterface({
66
+ input: fileStream,
67
+ crlfDelay: Infinity, // Handles different line-ending styles
68
+ });
69
+ try {
70
+ // Process each line
71
+ for (var _d = true, rl_1 = __asyncValues(rl), rl_1_1; rl_1_1 = yield rl_1.next(), _a = rl_1_1.done, !_a; _d = true) {
72
+ _c = rl_1_1.value;
73
+ _d = false;
74
+ const line = _c;
75
+ lines.push(line); // Add the current line to the list
76
+ }
77
+ }
78
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
79
+ finally {
80
+ try {
81
+ if (!_d && !_a && (_b = rl_1.return)) yield _b.call(rl_1);
82
+ }
83
+ finally { if (e_1) throw e_1.error; }
84
+ }
85
+ return lines;
86
+ });
87
+ exports.readFileLinesAsList = readFileLinesAsList;
88
+ // Function to write lines to a file
89
+ const writeFileLines = (filePath, lines) => {
90
+ fs.writeFile(filePath, lines.join("\n"), "utf8", (err) => {
91
+ if (err) {
92
+ console.error("Error writing to the file:", err);
93
+ }
94
+ else {
95
+ console.log(`Successfully written: ${lines.length} lines to ${filePath}`);
96
+ }
97
+ });
98
+ };
99
+ exports.writeFileLines = writeFileLines;
100
+ // General file creation logic
101
+ const createFile = (filePath, content) => {
102
+ if (filePath.endsWith(".xlsx")) {
103
+ (0, exports.createExcelFile)(filePath, content);
104
+ }
105
+ else if (filePath.endsWith(".csv")) {
106
+ (0, exports.createCsvFile)(filePath, content);
107
+ }
108
+ else {
109
+ (0, exports.createTextFile)(filePath, content);
110
+ }
111
+ };
112
+ exports.createFile = createFile;
113
+ // Function to create a text file
114
+ const createTextFile = (filePath, content) => {
115
+ try {
116
+ // Resolve the absolute path
117
+ const absolutePath = path.resolve(filePath);
118
+ // Convert Set to Array if necessary, then join elements with a newline
119
+ const data = Array.isArray(content) ? content.join("\n") : Array.from(content).join("\n");
120
+ // Write data to the resolved absolute path
121
+ fs.writeFileSync(absolutePath, data, "utf-8");
122
+ console.log(`Text file successfully created at: ${absolutePath}`);
123
+ }
124
+ catch (error) {
125
+ console.error(`Error writing to file at ${filePath}:`, error);
126
+ }
127
+ };
128
+ exports.createTextFile = createTextFile;
129
+ // Function to append a new line to a file
130
+ const appendNewLineToFile = (filePath, items) => {
131
+ fs.appendFile(filePath, `${items.toString()}\n`, "utf8", (err) => {
132
+ if (err) {
133
+ console.error("Error appending to the file:", err);
134
+ }
135
+ else {
136
+ console.log(`Successfully appended: ${items.length} items to ${filePath}`);
137
+ }
138
+ });
139
+ };
140
+ exports.appendNewLineToFile = appendNewLineToFile;
141
+ const createCsvFile = (filePath, content) => {
142
+ const data = Array.from(content); // Convert Iterable to Array
143
+ if (data.length === 0) {
144
+ console.log("No data to write");
145
+ return;
146
+ }
147
+ const csvContent = data.join("\n");
148
+ fs.writeFileSync(filePath, csvContent, "utf8");
149
+ console.log(`CSV file has been created at ${filePath}`);
150
+ };
151
+ exports.createCsvFile = createCsvFile;
152
+ /**
153
+ * Creates an Excel file from a list of objects
154
+ * @param filePath Path to save the Excel file
155
+ * @param content Iterable list of objects (generic)
156
+ */
157
+ const createExcelFile = (filePath, content) => {
158
+ try {
159
+ const data = Array.from(content).map((item) => {
160
+ return Object.fromEntries(Object.entries(item).map(([key, value]) => [
161
+ key,
162
+ Array.isArray(value) ? value.join(", ") : (value !== null && value !== void 0 ? value : ""),
163
+ ]));
164
+ });
165
+ if (data.length === 0) {
166
+ console.log("No data to write");
167
+ return;
168
+ }
169
+ const absolutePath = path.resolve(filePath);
170
+ let workbook;
171
+ let worksheet;
172
+ if (fs.existsSync(absolutePath)) {
173
+ // Read the existing workbook
174
+ const fileContents = fs.readFileSync(absolutePath);
175
+ workbook = XLSX.read(fileContents, { type: "buffer" });
176
+ // Get the existing sheet data
177
+ if (workbook.Sheets["Sheet1"]) {
178
+ const existingData = XLSX.utils.sheet_to_json(workbook.Sheets["Sheet1"]);
179
+ // Merge existing data with new data
180
+ const updatedData = existingData.concat(data);
181
+ // Remove the old sheet
182
+ delete workbook.Sheets["Sheet1"];
183
+ workbook.SheetNames = workbook.SheetNames.filter((name) => name !== "Sheet1");
184
+ // Create a new sheet with updated data
185
+ worksheet = XLSX.utils.json_to_sheet(updatedData);
186
+ }
187
+ else {
188
+ // If the sheet doesn't exist, just create a new one
189
+ worksheet = XLSX.utils.json_to_sheet(data);
190
+ }
191
+ }
192
+ else {
193
+ // Create a new workbook and sheet
194
+ workbook = XLSX.utils.book_new();
195
+ worksheet = XLSX.utils.json_to_sheet(data);
196
+ }
197
+ // Add the new/updated worksheet
198
+ XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");
199
+ // Write the updated workbook to file
200
+ XLSX.writeFile(workbook, absolutePath);
201
+ console.log(`Excel file successfully created/updated at: ${absolutePath}`);
202
+ }
203
+ catch (error) {
204
+ console.error(`Error creating/updating Excel file at ${filePath}:`, error);
205
+ }
206
+ };
207
+ exports.createExcelFile = createExcelFile;
208
+ function readJSONFile(fileName) {
209
+ const filePath = path.join(__dirname, fileName); // Kombiniere __dirname mit Dateinamen
210
+ const fileContent = fs.readFileSync(filePath, "utf-8"); // Lese Datei synchron
211
+ return JSON.parse(fileContent); // Parse JSON-Inhalt
212
+ }
213
+ function readExcel(filePath) {
214
+ return [];
215
+ }
216
+ //# sourceMappingURL=file-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-handler.js","sourceRoot":"","sources":["../../src/utils/file-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { CognitoUser, FilterAndSort, HttpMethod } from "../index";
2
+ import { APIGatewayProxyEvent } from "aws-lambda";
3
+ export type APIResponse = {
4
+ statusCode: number;
5
+ headers?: Record<string, string>;
6
+ body: string;
7
+ };
8
+ export type APIResponseOptions = {
9
+ origin?: string;
10
+ contentType: string;
11
+ };
12
+ export declare const createApiResponse: (statusCode: number, body: any, options?: APIResponseOptions) => APIResponse;
13
+ export interface HttpRequest<B = any, Q = any, P = any> {
14
+ event: any;
15
+ methode: HttpMethod;
16
+ body?: B;
17
+ queryStringParameters?: Q;
18
+ filterAndSort?: FilterAndSort;
19
+ customQueryParameters?: Record<string, string>;
20
+ multiValueQueryStringParameters?: Q;
21
+ pathParameters?: P;
22
+ identity?: CognitoUser;
23
+ headers?: Record<string, string>;
24
+ }
25
+ export declare const parseHttpRequest: <T>(event: APIGatewayProxyEvent) => HttpRequest;
26
+ export declare function parserBaseFilterAndSort(params: Record<string, any>): FilterAndSort;
27
+ export declare function toRecord(queryString: string): Record<string, any>;