axiodb 21.7.8 → 22.1.2

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 (46) hide show
  1. package/lib/Helper/RegexGuard.helper.d.ts +85 -0
  2. package/lib/Helper/RegexGuard.helper.js +278 -0
  3. package/lib/Helper/RegexGuard.helper.js.map +1 -0
  4. package/lib/Helper/SafeErrorMessage.helper.d.ts +18 -0
  5. package/lib/Helper/SafeErrorMessage.helper.js +42 -0
  6. package/lib/Helper/SafeErrorMessage.helper.js.map +1 -0
  7. package/lib/Services/Aggregation/operators/expressionOperators.js +5 -1
  8. package/lib/Services/Aggregation/operators/expressionOperators.js.map +1 -1
  9. package/lib/Services/Aggregation/operators/stageOperators.js +5 -1
  10. package/lib/Services/Aggregation/operators/stageOperators.js.map +1 -1
  11. package/lib/Services/Database/database.operation.js +2 -2
  12. package/lib/Services/Database/database.operation.js.map +1 -1
  13. package/lib/Services/Indexation.operation.js +4 -3
  14. package/lib/Services/Indexation.operation.js.map +1 -1
  15. package/lib/engine/Filesystem/FileManager.js +9 -3
  16. package/lib/engine/Filesystem/FileManager.js.map +1 -1
  17. package/lib/engine/Filesystem/FolderManager.js +8 -2
  18. package/lib/engine/Filesystem/FolderManager.js.map +1 -1
  19. package/lib/server/config/keys.d.ts +6 -0
  20. package/lib/server/config/keys.js +14 -1
  21. package/lib/server/config/keys.js.map +1 -1
  22. package/lib/server/config/server.js +5 -0
  23. package/lib/server/config/server.js.map +1 -1
  24. package/lib/server/controller/Database/Databse.controller.js +2 -1
  25. package/lib/server/controller/Database/Databse.controller.js.map +1 -1
  26. package/lib/tcp/config/server.js +2 -1
  27. package/lib/tcp/config/server.js.map +1 -1
  28. package/lib/tcp/connection/ConnectionManager.js +2 -1
  29. package/lib/tcp/connection/ConnectionManager.js.map +1 -1
  30. package/lib/tcp/handler/CommandHandler.js +3 -2
  31. package/lib/tcp/handler/CommandHandler.js.map +1 -1
  32. package/lib/tcp/handler/handlers/Collection.handler.d.ts +1 -1
  33. package/lib/tcp/handler/handlers/Collection.handler.js +6 -5
  34. package/lib/tcp/handler/handlers/Collection.handler.js.map +1 -1
  35. package/lib/tcp/handler/handlers/DB.handler.js +5 -4
  36. package/lib/tcp/handler/handlers/DB.handler.js.map +1 -1
  37. package/lib/tcp/handler/handlers/Operation.handler.js +3 -1
  38. package/lib/tcp/handler/handlers/Operation.handler.js.map +1 -1
  39. package/lib/tcp/handler/handlers/Transaction.handler.js +3 -1
  40. package/lib/tcp/handler/handlers/Transaction.handler.js.map +1 -1
  41. package/lib/utility/Searcher.utils.js +3 -2
  42. package/lib/utility/Searcher.utils.js.map +1 -1
  43. package/package.json +1 -1
  44. package/.commandcode/settings.json +0 -24
  45. package/.commandcode/taste/taste.md +0 -2
  46. package/.commandcode/taste/user-taste-profile/taste.md +0 -39
@@ -0,0 +1,85 @@
1
+ /**
2
+ * RegexGuard - Static ReDoS guard for user-supplied regex patterns.
3
+ *
4
+ * Rejects patterns that are too long, contain nested unbounded quantifiers
5
+ * (`(a+)+`), or have overlapping alternation branches inside an unboundedly
6
+ * quantified group (`(a|aa)+`). Bounded quantifiers like `{2,9}` are allowed.
7
+ *
8
+ * @class RegexGuard
9
+ * @example
10
+ * const safe = RegexGuard.compileRegex("(a+)b", "");
11
+ * const guarded = RegexGuard.compileRegex("(a+)+$", ""); // throws
12
+ */
13
+ export default class RegexGuard {
14
+ /** Upper bound on pattern length. */
15
+ static readonly MAX_PATTERN_LENGTH = 512;
16
+ /**
17
+ * Compiles a user-supplied pattern into a RegExp after proving it is safe.
18
+ * @param pattern - The regex source to compile.
19
+ * @param flags - Optional regex flags (e.g. "i").
20
+ * @returns A compiled RegExp.
21
+ * @throws Error if the pattern is empty, too long, or prone to catastrophic backtracking.
22
+ */
23
+ static compileRegex(pattern: string, flags?: string): RegExp;
24
+ /**
25
+ * Returns true when the pattern does not contain the catastrophic
26
+ * nested-quantifier shape. Pure check - callers decide what to do.
27
+ * @param pattern - The regex source to inspect.
28
+ * @returns true if the pattern is considered safe, false otherwise.
29
+ */
30
+ static isSafePattern(pattern: string): boolean;
31
+ /**
32
+ * Static scan for the catastrophic-backtracking shape.
33
+ *
34
+ * Two classes are rejected:
35
+ * 1. Nested unbounded quantifiers: a group that contains an internally
36
+ * quantified atom and is itself unboundedly quantified, e.g. `(a+)+`.
37
+ * 2. Overlapping alternation inside an unboundedly quantified group: two
38
+ * branches where one is a strict prefix of another, e.g. `(a|aa)+` -
39
+ * the parser cannot decide where a branch ends, causing exponential work.
40
+ *
41
+ * @param pattern - The regex source to inspect.
42
+ * @throws Error describing the dangerous construct when detected.
43
+ */
44
+ static assertSafePattern(pattern: string): void;
45
+ /**
46
+ * Splits a group body on top-level alternation operators and reports whether
47
+ * any two branches overlap, i.e. one is a strict prefix of another. Branch
48
+ * overlap on an unboundedly quantified group is what produces exponential
49
+ * backtracking in patterns like `(a|aa)+`.
50
+ * @param body - The characters between a group's '(' and ')'.
51
+ * @returns true when an overlapping branch pair is found.
52
+ */
53
+ private static hasOverlappingAlternation;
54
+ /**
55
+ * Strips the special group marker (`?:`, `?=`, `?!`, `?<=`, `?<!`, `?<name>`)
56
+ * from a group body so branch analysis sees the actual alternation content.
57
+ * @param body - The raw text between '(' and ')'.
58
+ * @returns The body without its leading marker, if one was present.
59
+ */
60
+ private static stripGroupMarker;
61
+ /**
62
+ * Splits a group body on '|' operators that are not nested inside a
63
+ * sub-group or character class.
64
+ * @param body - The group's raw body text.
65
+ * @returns The top-level alternation branches (at least one element).
66
+ */
67
+ private static splitTopLevel;
68
+ /**
69
+ * Determines what kind of quantifier (if any) follows a closing parenthesis.
70
+ * @param pattern - The full regex source.
71
+ * @param closeIndex - Index of the ')' that just closed a group.
72
+ * @returns "none" when no quantifier follows, "unbounded" for `*`, `+`, or an
73
+ * open-ended `{n,}` range, otherwise "bounded".
74
+ */
75
+ private static peekGroupQuantifier;
76
+ /**
77
+ * Parses a `{...}` quantifier starting at the given index.
78
+ * @param pattern - The full regex source.
79
+ * @param openIndex - Index of the '{'.
80
+ * @returns true for an unbounded `{n,}` range, false for a bounded `{n}` or
81
+ * `{n,m}`, and null when the character is not actually a quantifier
82
+ * (e.g. a literal brace inside a larger construct).
83
+ */
84
+ private static isUnboundedRange;
85
+ }
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * RegexGuard - Static ReDoS guard for user-supplied regex patterns.
5
+ *
6
+ * Rejects patterns that are too long, contain nested unbounded quantifiers
7
+ * (`(a+)+`), or have overlapping alternation branches inside an unboundedly
8
+ * quantified group (`(a|aa)+`). Bounded quantifiers like `{2,9}` are allowed.
9
+ *
10
+ * @class RegexGuard
11
+ * @example
12
+ * const safe = RegexGuard.compileRegex("(a+)b", "");
13
+ * const guarded = RegexGuard.compileRegex("(a+)+$", ""); // throws
14
+ */
15
+ class RegexGuard {
16
+ /**
17
+ * Compiles a user-supplied pattern into a RegExp after proving it is safe.
18
+ * @param pattern - The regex source to compile.
19
+ * @param flags - Optional regex flags (e.g. "i").
20
+ * @returns A compiled RegExp.
21
+ * @throws Error if the pattern is empty, too long, or prone to catastrophic backtracking.
22
+ */
23
+ static compileRegex(pattern, flags) {
24
+ if (!pattern || typeof pattern !== "string") {
25
+ throw new Error("Invalid regex pattern: must be a non-empty string");
26
+ }
27
+ if (pattern.length > this.MAX_PATTERN_LENGTH) {
28
+ throw new Error(`Regex pattern exceeds maximum length of ${this.MAX_PATTERN_LENGTH}`);
29
+ }
30
+ this.assertSafePattern(pattern);
31
+ return new RegExp(pattern, flags || "");
32
+ }
33
+ /**
34
+ * Returns true when the pattern does not contain the catastrophic
35
+ * nested-quantifier shape. Pure check - callers decide what to do.
36
+ * @param pattern - The regex source to inspect.
37
+ * @returns true if the pattern is considered safe, false otherwise.
38
+ */
39
+ static isSafePattern(pattern) {
40
+ try {
41
+ this.assertSafePattern(pattern);
42
+ return true;
43
+ }
44
+ catch (_a) {
45
+ return false;
46
+ }
47
+ }
48
+ /**
49
+ * Static scan for the catastrophic-backtracking shape.
50
+ *
51
+ * Two classes are rejected:
52
+ * 1. Nested unbounded quantifiers: a group that contains an internally
53
+ * quantified atom and is itself unboundedly quantified, e.g. `(a+)+`.
54
+ * 2. Overlapping alternation inside an unboundedly quantified group: two
55
+ * branches where one is a strict prefix of another, e.g. `(a|aa)+` -
56
+ * the parser cannot decide where a branch ends, causing exponential work.
57
+ *
58
+ * @param pattern - The regex source to inspect.
59
+ * @throws Error describing the dangerous construct when detected.
60
+ */
61
+ static assertSafePattern(pattern) {
62
+ let inClass = false;
63
+ let escaped = false;
64
+ // Stack of currently-open groups; each tracks whether it contains an
65
+ // internally quantified atom and where it opened (for branch analysis).
66
+ const groups = [];
67
+ for (let i = 0; i < pattern.length; i++) {
68
+ const c = pattern[i];
69
+ if (escaped) {
70
+ escaped = false;
71
+ continue;
72
+ }
73
+ if (c === "\\") {
74
+ escaped = true;
75
+ continue;
76
+ }
77
+ // Inside a character class like [abc+]: '+' is a literal there, not a quantifier.
78
+ if (inClass) {
79
+ if (c === "]")
80
+ inClass = false;
81
+ continue;
82
+ }
83
+ if (c === "[") {
84
+ inClass = true;
85
+ continue;
86
+ }
87
+ if (c === "(") {
88
+ groups.push({ openIndex: i, hasQuantifiedAtom: false });
89
+ continue;
90
+ }
91
+ if (c === ")") {
92
+ const group = groups.pop();
93
+ if (!group)
94
+ continue;
95
+ const quantifier = this.peekGroupQuantifier(pattern, i);
96
+ const isUnbounded = quantifier === "unbounded";
97
+ if (isUnbounded) {
98
+ if (group.hasQuantifiedAtom) {
99
+ throw new Error("Regex pattern rejected: contains nested quantifiers that can cause catastrophic backtracking");
100
+ }
101
+ const body = pattern.slice(group.openIndex + 1, i);
102
+ if (this.hasOverlappingAlternation(this.stripGroupMarker(body))) {
103
+ throw new Error("Regex pattern rejected: quantified alternation with overlapping branches can cause catastrophic backtracking");
104
+ }
105
+ }
106
+ // A quantified group, or a group containing quantified atoms, is itself
107
+ // a quantified atom to its parent group.
108
+ const isQuantifiedAtom = group.hasQuantifiedAtom || isUnbounded;
109
+ if (isQuantifiedAtom && groups.length > 0) {
110
+ groups[groups.length - 1].hasQuantifiedAtom = true;
111
+ }
112
+ continue;
113
+ }
114
+ // Track unbounded quantifiers (+ or * or {n,}): the atom before them is a
115
+ // quantified atom. '?' is deliberately excluded - a single optional atom
116
+ // cannot blow up on its own. `{m}` bounded and `{m,n}` bounded are also excluded.
117
+ let isUnbounded = false;
118
+ if (c === "+" || c === "*") {
119
+ isUnbounded = true;
120
+ }
121
+ else if (c === "{") {
122
+ isUnbounded = this.isUnboundedRange(pattern, i) === true;
123
+ }
124
+ if (isUnbounded && groups.length > 0) {
125
+ groups[groups.length - 1].hasQuantifiedAtom = true;
126
+ }
127
+ }
128
+ }
129
+ /**
130
+ * Splits a group body on top-level alternation operators and reports whether
131
+ * any two branches overlap, i.e. one is a strict prefix of another. Branch
132
+ * overlap on an unboundedly quantified group is what produces exponential
133
+ * backtracking in patterns like `(a|aa)+`.
134
+ * @param body - The characters between a group's '(' and ')'.
135
+ * @returns true when an overlapping branch pair is found.
136
+ */
137
+ static hasOverlappingAlternation(body) {
138
+ const branches = this.splitTopLevel(body);
139
+ if (branches.length < 2)
140
+ return false;
141
+ for (let i = 0; i < branches.length; i++) {
142
+ for (let j = 0; j < branches.length; j++) {
143
+ if (i === j)
144
+ continue;
145
+ const a = branches[i];
146
+ const b = branches[j];
147
+ // An empty branch can match zero width, so no line is consumed - the
148
+ // classic `(|x)+` / `(a|)+` ambiguity.
149
+ if (a === "" || b === "")
150
+ return true;
151
+ if (b.length > a.length && b.startsWith(a))
152
+ return true;
153
+ if (a.length > b.length && a.startsWith(b))
154
+ return true;
155
+ if (a === b)
156
+ return true; // duplicate branches are always ambiguous
157
+ }
158
+ }
159
+ return false;
160
+ }
161
+ /**
162
+ * Strips the special group marker (`?:`, `?=`, `?!`, `?<=`, `?<!`, `?<name>`)
163
+ * from a group body so branch analysis sees the actual alternation content.
164
+ * @param body - The raw text between '(' and ')'.
165
+ * @returns The body without its leading marker, if one was present.
166
+ */
167
+ static stripGroupMarker(body) {
168
+ if (body[0] === "?" && body[1] === "<") {
169
+ const close = body.indexOf(">");
170
+ return close >= 0 ? body.slice(close + 1) : body;
171
+ }
172
+ if (body[0] === "?" && (body[1] === ":" || body[1] === "=" || body[1] === "!")) {
173
+ return body.slice(2);
174
+ }
175
+ return body;
176
+ }
177
+ /**
178
+ * Splits a group body on '|' operators that are not nested inside a
179
+ * sub-group or character class.
180
+ * @param body - The group's raw body text.
181
+ * @returns The top-level alternation branches (at least one element).
182
+ */
183
+ static splitTopLevel(body) {
184
+ const branches = [];
185
+ let depth = 0;
186
+ let inClass = false;
187
+ let escaped = false;
188
+ let current = "";
189
+ for (const c of body) {
190
+ if (escaped) {
191
+ escaped = false;
192
+ current += c;
193
+ continue;
194
+ }
195
+ if (c === "\\") {
196
+ escaped = true;
197
+ current += c;
198
+ continue;
199
+ }
200
+ if (inClass) {
201
+ current += c;
202
+ if (c === "]")
203
+ inClass = false;
204
+ continue;
205
+ }
206
+ if (c === "[") {
207
+ inClass = true;
208
+ current += c;
209
+ continue;
210
+ }
211
+ if (c === "(") {
212
+ depth++;
213
+ current += c;
214
+ continue;
215
+ }
216
+ if (c === ")") {
217
+ depth--;
218
+ current += c;
219
+ continue;
220
+ }
221
+ if (c === "|" && depth === 0) {
222
+ branches.push(current);
223
+ current = "";
224
+ continue;
225
+ }
226
+ current += c;
227
+ }
228
+ branches.push(current);
229
+ return branches;
230
+ }
231
+ /**
232
+ * Determines what kind of quantifier (if any) follows a closing parenthesis.
233
+ * @param pattern - The full regex source.
234
+ * @param closeIndex - Index of the ')' that just closed a group.
235
+ * @returns "none" when no quantifier follows, "unbounded" for `*`, `+`, or an
236
+ * open-ended `{n,}` range, otherwise "bounded".
237
+ */
238
+ static peekGroupQuantifier(pattern, closeIndex) {
239
+ const next = pattern[closeIndex + 1];
240
+ if (next === "*" || next === "+")
241
+ return "unbounded";
242
+ if (next === "{") {
243
+ const bounded = this.isUnboundedRange(pattern, closeIndex + 1);
244
+ return bounded === true ? "unbounded" : bounded === false ? "bounded" : "none";
245
+ }
246
+ if (next === "?")
247
+ return "bounded";
248
+ return "none";
249
+ }
250
+ /**
251
+ * Parses a `{...}` quantifier starting at the given index.
252
+ * @param pattern - The full regex source.
253
+ * @param openIndex - Index of the '{'.
254
+ * @returns true for an unbounded `{n,}` range, false for a bounded `{n}` or
255
+ * `{n,m}`, and null when the character is not actually a quantifier
256
+ * (e.g. a literal brace inside a larger construct).
257
+ */
258
+ static isUnboundedRange(pattern, openIndex) {
259
+ let closeIndex = openIndex + 1;
260
+ while (closeIndex < pattern.length && pattern[closeIndex] !== "}") {
261
+ closeIndex++;
262
+ }
263
+ if (closeIndex >= pattern.length)
264
+ return null;
265
+ const body = pattern.slice(openIndex + 1, closeIndex);
266
+ if (/^\d+$/.test(body))
267
+ return false;
268
+ if (/^\d+,\d+$/.test(body))
269
+ return false;
270
+ if (/^\d+,$/.test(body))
271
+ return true;
272
+ return null;
273
+ }
274
+ }
275
+ /** Upper bound on pattern length. */
276
+ RegexGuard.MAX_PATTERN_LENGTH = 512;
277
+ exports.default = RegexGuard;
278
+ //# sourceMappingURL=RegexGuard.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegexGuard.helper.js","sourceRoot":"","sources":["../../source/Helper/RegexGuard.helper.ts"],"names":[],"mappings":";;AAAA;;;;;;;;;;;GAWG;AACH,MAAqB,UAAU;IAI7B;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CAAC,OAAe,EAAE,KAAc;QACjD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,kBAAkB,EAAE,CACrE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,OAAe;QAClC,IAAI,CAAC;YACH,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAe;QACtC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,qEAAqE;QACrE,wEAAwE;QACxE,MAAM,MAAM,GAAwD,EAAE,CAAC;QAEvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAErB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,GAAG,KAAK,CAAC;gBAChB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,OAAO,GAAG,IAAI,CAAC;gBACf,SAAS;YACX,CAAC;YACD,kFAAkF;YAClF,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,GAAG;oBAAE,OAAO,GAAG,KAAK,CAAC;gBAC/B,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC;gBACf,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxD,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK;oBAAE,SAAS;gBACrB,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACxD,MAAM,WAAW,GAAG,UAAU,KAAK,WAAW,CAAC;gBAE/C,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;wBAC5B,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;oBACJ,CAAC;oBACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnD,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBAChE,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,wEAAwE;gBACxE,yCAAyC;gBACzC,MAAM,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,IAAI,WAAW,CAAC;gBAChE,IAAI,gBAAgB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBACrD,CAAC;gBACD,SAAS;YACX,CAAC;YACD,0EAA0E;YAC1E,yEAAyE;YACzE,kFAAkF;YAClF,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC3B,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;iBAAM,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACrB,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;YAC3D,CAAC;YACD,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,yBAAyB,CAAC,IAAY;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC;oBAAE,SAAS;gBACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,qEAAqE;gBACrE,uCAAuC;gBACvC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;oBAAE,OAAO,IAAI,CAAC;gBACtC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACxD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC,CAAC,0CAA0C;YACtE,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,gBAAgB,CAAC,IAAY;QAC1C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC/E,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,aAAa,CAAC,IAAY;QACvC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,GAAG,KAAK,CAAC;gBAChB,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC,CAAC;gBACb,IAAI,CAAC,KAAK,GAAG;oBAAE,OAAO,GAAG,KAAK,CAAC;gBAC/B,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACd,KAAK,EAAE,CAAC;gBACR,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACd,KAAK,EAAE,CAAC;gBACR,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YACD,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,mBAAmB,CAChC,OAAe,EACf,UAAkB;QAElB,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,WAAW,CAAC;QACrD,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;YAC/D,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QACjF,CAAC;QACD,IAAI,IAAI,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,gBAAgB,CAC7B,OAAe,EACf,SAAiB;QAEjB,IAAI,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;QAC/B,OAAO,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YAClE,UAAU,EAAE,CAAC;QACf,CAAC;QACD,IAAI,UAAU,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;;AA1QD,qCAAqC;AACrB,6BAAkB,GAAG,GAAG,CAAC;kBAFtB,UAAU"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * SafeErrorMessage - Redacts filesystem paths and internal details from error
3
+ * messages before they are returned to remote clients.
4
+ * @class SafeErrorMessage
5
+ * @example
6
+ * SafeErrorMessage.sanitize(new Error("open '/home/user/db'"));
7
+ * // 'open <path>'
8
+ */
9
+ export default class SafeErrorMessage {
10
+ static readonly MAX_MESSAGE_LENGTH = 300;
11
+ static readonly FALLBACK_MESSAGE = "An internal error occurred. Please try again later.";
12
+ /**
13
+ * Sanitizes an error for transmission to a remote client.
14
+ * @param error - The caught error (may be any unknown).
15
+ * @returns A single-line, path-redacted message with a bounded length.
16
+ */
17
+ static sanitize(error: unknown): string;
18
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * SafeErrorMessage - Redacts filesystem paths and internal details from error
5
+ * messages before they are returned to remote clients.
6
+ * @class SafeErrorMessage
7
+ * @example
8
+ * SafeErrorMessage.sanitize(new Error("open '/home/user/db'"));
9
+ * // 'open <path>'
10
+ */
11
+ class SafeErrorMessage {
12
+ /**
13
+ * Sanitizes an error for transmission to a remote client.
14
+ * @param error - The caught error (may be any unknown).
15
+ * @returns A single-line, path-redacted message with a bounded length.
16
+ */
17
+ static sanitize(error) {
18
+ const raw = error instanceof Error
19
+ ? error.message
20
+ : typeof error === "string"
21
+ ? error
22
+ : error !== undefined
23
+ ? String(error)
24
+ : "";
25
+ let message = raw;
26
+ message = message.replace(/[a-zA-Z]:\\[^\s"'`]+/g, "<path>");
27
+ message = message.replace(/(^|[\s(['"`])[\/][^\s"'`]+/g, "$1<path>");
28
+ message = message.replace(/(^|[\s(['"`])(?:\.\.?(?:[\/\\]|$))[^\s"'`]*/g, "$1<path>");
29
+ message = message.replace(/['"`]\s*<path>\s*['"`]/g, "<path>");
30
+ message = message.replace(/\r?\n/g, " | ").replace(/\s{2,}/g, " ").trim();
31
+ if (!message || message === "<path>")
32
+ return this.FALLBACK_MESSAGE;
33
+ if (message.length > this.MAX_MESSAGE_LENGTH) {
34
+ message = message.slice(0, this.MAX_MESSAGE_LENGTH - 3) + "...";
35
+ }
36
+ return message;
37
+ }
38
+ }
39
+ SafeErrorMessage.MAX_MESSAGE_LENGTH = 300;
40
+ SafeErrorMessage.FALLBACK_MESSAGE = "An internal error occurred. Please try again later.";
41
+ exports.default = SafeErrorMessage;
42
+ //# sourceMappingURL=SafeErrorMessage.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeErrorMessage.helper.js","sourceRoot":"","sources":["../../source/Helper/SafeErrorMessage.helper.ts"],"names":[],"mappings":";;AAAA;;;;;;;GAOG;AACH,MAAqB,gBAAgB;IAKnC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,KAAc;QAC5B,MAAM,GAAG,GACP,KAAK,YAAY,KAAK;YACpB,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;gBACzB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,KAAK,KAAK,SAAS;oBACnB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBACf,CAAC,CAAC,EAAE,CAAC;QAEb,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;QAC7D,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;QACrE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,8CAA8C,EAAE,UAAU,CAAC,CAAC;QACtF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC;QAC/D,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1E,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAEnE,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAClE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;;AAhCe,mCAAkB,GAAG,GAAG,CAAC;AAEzB,iCAAgB,GAAG,qDAAqD,CAAC;kBAHtE,gBAAgB"}
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.getNestedValue = getNestedValue;
4
7
  exports.setNestedValue = setNestedValue;
5
8
  exports.evaluateExpression = evaluateExpression;
9
+ const RegexGuard_helper_1 = __importDefault(require("../../../Helper/RegexGuard.helper"));
6
10
  function getNestedValue(obj, path) {
7
11
  if (!path || !obj)
8
12
  return undefined;
@@ -153,7 +157,7 @@ function evaluateExpression(doc, expr) {
153
157
  case "$regexMatch": {
154
158
  const input = exprObj.$regexMatch;
155
159
  const str = String(evaluateExpression(doc, input.input));
156
- const regex = new RegExp(input.regex, input.options || "");
160
+ const regex = RegexGuard_helper_1.default.compileRegex(input.regex, input.options || "");
157
161
  return regex.test(str);
158
162
  }
159
163
  case "$cmp": {
@@ -1 +1 @@
1
- {"version":3,"file":"expressionOperators.js","sourceRoot":"","sources":["../../../../source/Services/Aggregation/operators/expressionOperators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressionOperators.js","sourceRoot":"","sources":["../../../../source/Services/Aggregation/operators/expressionOperators.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.BUILT_IN_STAGE_OPERATORS = void 0;
13
16
  exports.executeMatch = executeMatch;
@@ -32,6 +35,7 @@ exports.executeMergeObjects = executeMergeObjects;
32
35
  const expressionOperators_1 = require("./expressionOperators");
33
36
  const accumulatorOperators_1 = require("./accumulatorOperators");
34
37
  const OperatorRegistry_1 = require("../OperatorRegistry");
38
+ const RegexGuard_helper_1 = __importDefault(require("../../../Helper/RegexGuard.helper"));
35
39
  function matchesCondition(itemValue, condition) {
36
40
  if (condition === null || condition === undefined) {
37
41
  return itemValue === null || itemValue === undefined;
@@ -44,7 +48,7 @@ function matchesCondition(itemValue, condition) {
44
48
  if (typeof condition === "object") {
45
49
  if ("$regex" in condition) {
46
50
  try {
47
- return new RegExp(String(condition.$regex), condition.$options || "").test(String(itemValue));
51
+ return RegexGuard_helper_1.default.compileRegex(String(condition.$regex), condition.$options || "").test(String(itemValue));
48
52
  }
49
53
  catch (_a) {
50
54
  return false;