tsledge 0.1.3 → 0.1.5

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 (83) hide show
  1. package/dist/core/types.d.ts +3 -0
  2. package/dist/core/types.d.ts.map +1 -1
  3. package/dist/db/mongodb.d.ts +4 -0
  4. package/dist/db/mongodb.d.ts.map +1 -1
  5. package/dist/fluent-interface/{fluent-pattern-executor.d.ts → fluent-pattern-handler.d.ts} +4 -4
  6. package/dist/fluent-interface/fluent-pattern-handler.d.ts.map +1 -0
  7. package/dist/fluent-interface/index.d.ts +1 -1
  8. package/dist/fluent-interface/index.d.ts.map +1 -1
  9. package/dist/fluent-interface/types.d.ts +6 -2
  10. package/dist/fluent-interface/types.d.ts.map +1 -1
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1001 -24
  14. package/dist/middleware/authentication/index.d.ts +4 -0
  15. package/dist/middleware/authentication/index.d.ts.map +1 -0
  16. package/dist/middleware/authentication/session.d.ts +74 -0
  17. package/dist/middleware/authentication/session.d.ts.map +1 -0
  18. package/dist/middleware/authentication/types.d.ts +12 -0
  19. package/dist/middleware/authentication/types.d.ts.map +1 -0
  20. package/dist/middleware/authentication/validation.d.ts +55 -0
  21. package/dist/middleware/authentication/validation.d.ts.map +1 -0
  22. package/dist/middleware/index.d.ts +2 -0
  23. package/dist/middleware/index.d.ts.map +1 -1
  24. package/dist/middleware/logger.d.ts.map +1 -1
  25. package/dist/middleware/types.d.ts +2 -0
  26. package/dist/middleware/types.d.ts.map +1 -0
  27. package/dist/models/auth-user.d.ts +14 -0
  28. package/dist/models/auth-user.d.ts.map +1 -0
  29. package/dist/models/index.d.ts +3 -0
  30. package/dist/models/index.d.ts.map +1 -0
  31. package/dist/models/token-blocklist.d.ts +12 -0
  32. package/dist/models/token-blocklist.d.ts.map +1 -0
  33. package/dist/src/index.js +1000 -0
  34. package/dist/tests/main.js +932 -0
  35. package/dist/utils/encoding.d.ts +7 -0
  36. package/dist/utils/encoding.d.ts.map +1 -0
  37. package/dist/utils/env.d.ts +9 -0
  38. package/dist/utils/env.d.ts.map +1 -0
  39. package/dist/utils/index.d.ts +2 -0
  40. package/dist/utils/index.d.ts.map +1 -1
  41. package/dist/utils/validation.d.ts +9 -0
  42. package/dist/utils/validation.d.ts.map +1 -1
  43. package/package.json +16 -6
  44. package/dist/app.js +0 -30
  45. package/dist/app.js.map +0 -1
  46. package/dist/core/http.js +0 -79
  47. package/dist/core/http.js.map +0 -1
  48. package/dist/core/index.js +0 -20
  49. package/dist/core/index.js.map +0 -1
  50. package/dist/core/query-builder.js +0 -271
  51. package/dist/core/query-builder.js.map +0 -1
  52. package/dist/core/types.js +0 -49
  53. package/dist/core/types.js.map +0 -1
  54. package/dist/db/index.js +0 -18
  55. package/dist/db/index.js.map +0 -1
  56. package/dist/db/mongodb.js +0 -24
  57. package/dist/db/mongodb.js.map +0 -1
  58. package/dist/exitCodes.js +0 -7
  59. package/dist/exitCodes.js.map +0 -1
  60. package/dist/fluent-interface/fluent-pattern-executor.d.ts.map +0 -1
  61. package/dist/fluent-interface/fluent-pattern-executor.js +0 -137
  62. package/dist/fluent-interface/fluent-pattern-executor.js.map +0 -1
  63. package/dist/fluent-interface/index.js +0 -19
  64. package/dist/fluent-interface/index.js.map +0 -1
  65. package/dist/fluent-interface/types.js +0 -3
  66. package/dist/fluent-interface/types.js.map +0 -1
  67. package/dist/index.js.map +0 -1
  68. package/dist/middleware/file-storage.js +0 -26
  69. package/dist/middleware/file-storage.js.map +0 -1
  70. package/dist/middleware/index.js +0 -19
  71. package/dist/middleware/index.js.map +0 -1
  72. package/dist/middleware/logger.js +0 -30
  73. package/dist/middleware/logger.js.map +0 -1
  74. package/dist/types.js +0 -3
  75. package/dist/types.js.map +0 -1
  76. package/dist/utils/date.js +0 -8
  77. package/dist/utils/date.js.map +0 -1
  78. package/dist/utils/index.js +0 -20
  79. package/dist/utils/index.js.map +0 -1
  80. package/dist/utils/mongo-relation.js +0 -89
  81. package/dist/utils/mongo-relation.js.map +0 -1
  82. package/dist/utils/validation.js +0 -17
  83. package/dist/utils/validation.js.map +0 -1
package/dist/exitCodes.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EXIT_CODE_INVALID_CONFIG = exports.EXIT_CODE_GENERAL_ERROR = exports.EXIT_CODE_SUCCESS = void 0;
4
- exports.EXIT_CODE_SUCCESS = 0;
5
- exports.EXIT_CODE_GENERAL_ERROR = 1; // Ein unspezifischer Fehler ist aufgetreten
6
- exports.EXIT_CODE_INVALID_CONFIG = 2; // falsche Befehlszeilenargumente oder Syntaxfehler.
7
- //# sourceMappingURL=exitCodes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exitCodes.js","sourceRoot":"","sources":["../src/exitCodes.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,CAAC,CAAC;AACtB,QAAA,uBAAuB,GAAG,CAAC,CAAC,CAAC,4CAA4C;AACzE,QAAA,wBAAwB,GAAG,CAAC,CAAC,CAAC,oDAAoD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fluent-pattern-executor.d.ts","sourceRoot":"","sources":["../../src/fluent-interface/fluent-pattern-executor.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EACb,oBAAoB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAA8B,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9F,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAwB;IACjD,OAAO,CAAC,MAAM,CAAkB;IAEhC;;;OAGG;gBACS,KAAK,GAAE,aAAa,EAAO;WAUzB,WAAW,IAAI,qBAAqB;IASlD;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAiChC;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA2BrB;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;;;;OAKG;IACU,IAAI,CAAC,CAAC,GAAG,GAAG,EACvB,GAAG,EAAE,oBAAoB,EACzB,YAAY,EAAE,YAAY,GACzB,mBAAmB;CAYvB"}
@@ -1,137 +0,0 @@
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.FluentPatternExecutor = void 0;
7
- const mongoose_1 = __importDefault(require("mongoose"));
8
- const index_1 = require("../core/index");
9
- class FluentPatternExecutor {
10
- static _singleton;
11
- _paths;
12
- /**
13
- * Constructor for QueryPatternExecutor.
14
- * @param paths - Array of query pattern paths for filtering.
15
- */
16
- constructor(paths = []) {
17
- if (FluentPatternExecutor._singleton) {
18
- throw new Error('FluentPatternExecutor is a singleton class. Use FluentPatternExecutor.getInstance() to access the instance.');
19
- }
20
- this._paths = paths;
21
- FluentPatternExecutor._singleton = this;
22
- }
23
- static getInstance() {
24
- if (FluentPatternExecutor._singleton == undefined) {
25
- throw new Error('FluentPatternExecutor instance has not been created yet. Please create an instance before calling getInstance().');
26
- }
27
- return FluentPatternExecutor._singleton;
28
- }
29
- /**
30
- * Parses and validates query parameters from the request.
31
- * @param query - The query object from the request.
32
- * @returns Parsed query parameters.
33
- */
34
- _parseFluentRequestQuery(query) {
35
- const { filter, limit = '5', offset = '0', id, excluded: excludedJSON, ids: idsJSON } = query;
36
- let excluded;
37
- if (excludedJSON) {
38
- try {
39
- excluded = JSON.parse(excludedJSON);
40
- if (!Array.isArray(excluded))
41
- throw new Error('Excluded must be an array');
42
- }
43
- catch (error) {
44
- console.warn('[QueryPatternExecutor] Invalid excluded parameter:', error);
45
- }
46
- }
47
- let ids;
48
- if (idsJSON) {
49
- try {
50
- ids = JSON.parse(idsJSON);
51
- if (!Array.isArray(ids))
52
- throw new Error('Ids must be an array');
53
- }
54
- catch (error) {
55
- console.warn('[QueryPatternExecutor] Invalid ids parameter:', error);
56
- }
57
- }
58
- return { filter, limit, offset, id, excluded, ids };
59
- }
60
- /**
61
- * Applies filters to the query builder based on parsed parameters and options.
62
- * @param queryBuilder - The QueryBuilder instance.
63
- * @param params - Parsed query parameters.
64
- * @param config - Query request configuration.
65
- */
66
- _applyFilters(queryBuilder, params) {
67
- const { id, ids, filter, excluded } = params;
68
- if (id) {
69
- queryBuilder.match({ _id: new mongoose_1.default.Types.ObjectId(id) });
70
- }
71
- else if (ids && ids.length > 0) {
72
- const objectIds = ids.map((id) => new mongoose_1.default.Types.ObjectId(id));
73
- queryBuilder.match({ _id: { $in: objectIds } });
74
- }
75
- else {
76
- // Apply general filters
77
- const filterFields = this._getFilterFieldsForModel(queryBuilder.getConfig().model);
78
- if (filter && filterFields.length > 0) {
79
- const ors = filterFields.map((field) => ({
80
- [field]: { $regex: filter, $options: 'i' },
81
- }));
82
- queryBuilder.match({ $or: ors });
83
- }
84
- if (excluded && excluded.length > 0) {
85
- const objectIds = excluded.map((id) => new mongoose_1.default.Types.ObjectId(id));
86
- queryBuilder.match({ _id: { $nin: objectIds } });
87
- }
88
- }
89
- }
90
- /**
91
- * Retrieves filter fields for the given model from the paths configuration.
92
- * @param model - The Mongoose model.
93
- * @returns Array of filter fields.
94
- */
95
- _getFilterFieldsForModel(model) {
96
- for (const path of this._paths) {
97
- if (path.model.collection.name === model.collection.name) {
98
- // Assuming filters are defined in the path; adjust as needed
99
- return path.filters ? Object.keys(path.filters) : [];
100
- }
101
- }
102
- return [];
103
- }
104
- /**
105
- * Builds execution parameters for the query builder.
106
- * @param params - Parsed query parameters.
107
- * @returns Execution parameters.
108
- */
109
- _buildExecutionConfig(params) {
110
- const { id, limit, offset } = params;
111
- return {
112
- isOne: Boolean(id),
113
- limit: limit === 'full' ? undefined : parseInt(limit || '5', 10),
114
- skip: parseInt(offset || '0', 10),
115
- };
116
- }
117
- /**
118
- * Executes the query builder with the applied filters and execution parameters.
119
- * @param req
120
- * @param queryBuilder
121
- * @returns
122
- */
123
- async exec(req, queryBuilder) {
124
- try {
125
- const queryParams = this._parseFluentRequestQuery(req.query);
126
- this._applyFilters(queryBuilder, queryParams);
127
- const execConfig = this._buildExecutionConfig(queryParams);
128
- return await queryBuilder.exec(execConfig);
129
- }
130
- catch (err) {
131
- console.error('[ERROR - QueryPatternExecutor]', err);
132
- return new index_1.Codec({ data: [], meta: { total: 0 } }, 500);
133
- }
134
- }
135
- }
136
- exports.FluentPatternExecutor = FluentPatternExecutor;
137
- //# sourceMappingURL=fluent-pattern-executor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fluent-pattern-executor.js","sourceRoot":"","sources":["../../src/fluent-interface/fluent-pattern-executor.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./fluent-pattern-executor"), exports);
18
- __exportStar(require("./types"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fluent-interface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,0CAAwB"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/fluent-interface/types.ts"],"names":[],"mappings":""}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,qDAAmC;AACnC,2DAAyC;AACzC,+CAA6B;AAC7B,gDAA8B;AAC9B,wCAAsB;AACtB,0CAAwB;AACxB,8CAA4B"}
@@ -1,26 +0,0 @@
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.memoryFileUpload = exports.diskFileUpload = void 0;
7
- const multer_1 = __importDefault(require("multer"));
8
- const node_path_1 = __importDefault(require("node:path"));
9
- const node_fs_1 = __importDefault(require("node:fs"));
10
- const uploadDir = node_path_1.default.resolve(process.cwd(), 'src', 'files');
11
- node_fs_1.default.mkdirSync(uploadDir, { recursive: true });
12
- const sanitizeFilename = (name) => name.replace(/[^a-zA-Z0-9._-]/g, '_');
13
- const diskStorage = multer_1.default.diskStorage({
14
- destination: (_req, _file, next) => next(null, uploadDir),
15
- filename: (_req, file, next) => {
16
- const ext = node_path_1.default.extname(file.originalname);
17
- const base = node_path_1.default.basename(file.originalname, ext);
18
- const safe = sanitizeFilename(base);
19
- const unique = Date.now() + '-' + Math.round(Math.random() * 1e9);
20
- next(null, `${safe}-${unique}${ext}`);
21
- },
22
- });
23
- const memoryStorage = multer_1.default.memoryStorage();
24
- exports.diskFileUpload = (0, multer_1.default)({ storage: diskStorage });
25
- exports.memoryFileUpload = (0, multer_1.default)({ storage: memoryStorage });
26
- //# sourceMappingURL=file-storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-storage.js","sourceRoot":"","sources":["../../src/middleware/file-storage.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,0DAA6B;AAC7B,sDAAyB;AAEzB,MAAM,SAAS,GAAG,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9D,iBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAE7C,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAEzF,MAAM,WAAW,GAAG,gBAAM,CAAC,WAAW,CAAC;IACrC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC;IACzD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,mBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,gBAAM,CAAC,aAAa,EAAE,CAAC;AAEhC,QAAA,cAAc,GAAG,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AAClD,QAAA,gBAAgB,GAAG,IAAA,gBAAM,EAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC"}
@@ -1,19 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./file-storage"), exports);
18
- __exportStar(require("./logger"), exports);
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,2CAAyB"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.requestLogger = requestLogger;
4
- exports.errorLogger = errorLogger;
5
- const utils_1 = require("../utils");
6
- function requestLogger(req, res, next) {
7
- res.on('finish', () => {
8
- const now = new Date().toISOString();
9
- let emoji = '';
10
- if (res.statusCode >= 100 && res.statusCode < 200)
11
- emoji = '💡';
12
- else if (res.statusCode >= 200 && res.statusCode < 300)
13
- emoji = '✅';
14
- else if (res.statusCode >= 300 && res.statusCode < 400)
15
- emoji = '🚦';
16
- else if (res.statusCode == 401)
17
- emoji = '🔁';
18
- else if (res.statusCode >= 400 && res.statusCode < 500)
19
- emoji = '⚠️';
20
- else if (res.statusCode >= 500)
21
- emoji = '🔥';
22
- console.log(`${emoji} [${now}] ${req.method} ${req.originalUrl} - ${res.statusCode}`);
23
- });
24
- next();
25
- }
26
- function errorLogger(err, req, res, next) {
27
- console.error(`🛑 [${(0, utils_1.getCurrentDateString)()}] Error in ${req.method} ${req.originalUrl}:`, err);
28
- res.status(500).json();
29
- }
30
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/middleware/logger.ts"],"names":[],"mappings":";;AAGA,sCAcC;AAED,kCAGC;AArBD,oCAAgD;AAEhD,SAAgB,aAAa,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;IAC3E,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACpB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAC3D,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,GAAG,CAAC;aAC/D,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAChE,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aACxC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,GAAG,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;aAChE,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG;YAAE,KAAK,GAAG,IAAI,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IACH,IAAI,EAAE,CAAC;AACT,CAAC;AAED,SAAgB,WAAW,CAAC,GAAQ,EAAE,GAAQ,EAAE,GAAQ,EAAE,IAAkB;IAC1E,OAAO,CAAC,KAAK,CAAC,OAAO,IAAA,4BAAoB,GAAE,cAAc,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAC;IAChG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"}
package/dist/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCurrentDateString = getCurrentDateString;
4
- function getCurrentDateString() {
5
- let date = new Date();
6
- return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
7
- }
8
- //# sourceMappingURL=date.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/utils/date.ts"],"names":[],"mappings":";;AAAA,oDAGC;AAHD,SAAgB,oBAAoB;IAClC,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC5H,CAAC"}
@@ -1,20 +0,0 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./date"), exports);
18
- __exportStar(require("./mongo-relation"), exports);
19
- __exportStar(require("./validation"), exports);
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,mDAAiC;AACjC,+CAA6B"}
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.insertCollectionRelations = insertCollectionRelations;
4
- exports.mergeCollectionRelations = mergeCollectionRelations;
5
- /**
6
- * Inserts new relations into the collection, avoiding duplicates based on the compareFunc.
7
- * @param model
8
- * @param relations
9
- * @param compareFunc
10
- * @param validateFunc
11
- * @returns
12
- */
13
- function insertCollectionRelations(model, relations, compareFunc, validateFunc = undefined) {
14
- if (relations == undefined) {
15
- return;
16
- }
17
- let relationStack = [];
18
- for (let relation of relations) {
19
- if (validateFunc) {
20
- relation = validateFunc(relation);
21
- }
22
- let inStack = false;
23
- for (let duplicateRelationCheck of relationStack) {
24
- if (compareFunc(relation, duplicateRelationCheck)) {
25
- inStack = true;
26
- }
27
- }
28
- if (!inStack) {
29
- relationStack.push(relation);
30
- }
31
- }
32
- if (relationStack.length > 0) {
33
- model.insertMany(relationStack);
34
- }
35
- }
36
- /**
37
- * Merges N:N relations by comparing existing relations with new ones,
38
- * removing obsolete relations and creating new ones.
39
- * @param model Mongoose Model for the relation collection
40
- * @param relationsToMerge Array of relations to merge (can be null/undefined)
41
- * @param match MongoDB match query to find existing relations
42
- * @param compareFunc Function to compare two relations for equality
43
- * @param validateFunc Function to validate and transform relation data
44
- */
45
- async function mergeCollectionRelations(model, relationsToMerge, match, compareFunc, validateFunc) {
46
- // Filter duplicates and validate
47
- const relationStack = [];
48
- if (relationsToMerge != null) {
49
- for (const relation of relationsToMerge) {
50
- // extract_dict_by_structure is replaced by direct mongoose model instantiation
51
- // The validateFunc should handle the structure extraction and validation
52
- const validatedRelation = validateFunc(relation);
53
- if (!relationStack.some((duplicateRelationCheck) => compareFunc(validatedRelation, duplicateRelationCheck))) {
54
- relationStack.push(validatedRelation);
55
- }
56
- }
57
- }
58
- if (relationStack.length === 0) {
59
- // Delete all matching relations if no new relations to merge
60
- await model.deleteMany(match);
61
- }
62
- else {
63
- // Find existing relations
64
- const existingRels = await model.find(match).lean();
65
- const toRemoveRels = [];
66
- // Find relations to remove (exist in DB but not in new stack)
67
- for (const rel of existingRels) {
68
- if (!relationStack.some((relationFromStack) => compareFunc(rel, relationFromStack))) {
69
- toRemoveRels.push(rel);
70
- }
71
- }
72
- // Find relations to create (in new stack but not in DB)
73
- const toCreateRels = [];
74
- for (const relationFromStack of relationStack) {
75
- if (!existingRels.some((rel) => compareFunc(rel, relationFromStack))) {
76
- toCreateRels.push(relationFromStack);
77
- }
78
- }
79
- // Execute operations
80
- if (toCreateRels.length > 0) {
81
- await model.insertMany(toCreateRels);
82
- }
83
- if (toRemoveRels.length > 0) {
84
- const idsToRemove = toRemoveRels.map((rel) => rel._id);
85
- await model.deleteMany({ _id: { $in: idsToRemove } });
86
- }
87
- }
88
- }
89
- //# sourceMappingURL=mongo-relation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mongo-relation.js","sourceRoot":"","sources":["../../src/utils/mongo-relation.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNonEmptyObjectOrArray = isNonEmptyObjectOrArray;
4
- /**
5
- * Validates that the input is a non-empty object or array.
6
- * @param value
7
- * @returns boolean
8
- */
9
- function isNonEmptyObjectOrArray(value) {
10
- return (value != null &&
11
- value != undefined &&
12
- ((Array.isArray(value) && value.length > 0) ||
13
- (typeof value === 'object' &&
14
- !Array.isArray(value) &&
15
- Object.keys(value).length > 0)));
16
- }
17
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":";;AAKA,0DASC;AAdD;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,KAAU;IAChD,OAAO,CACL,KAAK,IAAI,IAAI;QACb,KAAK,IAAI,SAAS;QAClB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,CAAC,OAAO,KAAK,KAAK,QAAQ;gBACxB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAC9C,CAAC;AACJ,CAAC"}