alado 3.7.8 → 3.7.11

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.
package/README.md CHANGED
@@ -500,17 +500,17 @@ validate.custom(fn); // starts with a custom rule
500
500
 
501
501
  **String**
502
502
 
503
- | Method | Description |
504
- | ----------------- | ------------------------------------------------------------------------------------------------ |
505
- | `min(n)` | Min length (string) or min value (number) |
506
- | `max(n)` | Max length (string) or max value (number) |
507
- | `length(n)` | Exact length |
508
- | `regex(pattern)` | Must match RegExp |
509
- | `email()` | Valid email format |
510
- | `uuid()` | Valid UUID v4 |
511
- | `objectId()` | Valid MongoDB ObjectId (24-char hex) |
512
- | `url(protocols?)` | Valid URL (parsed by `new URL()`) whose protocol is in `protocols` (default `['http', 'https']`) |
513
- | `trim()` | No leading/trailing whitespace |
503
+ | Method | Description |
504
+ | ----------------- | ------------------------------------------------------------------------------------------------------------- |
505
+ | `min(n)` | Min length (string) or min value (number) |
506
+ | `max(n)` | Max length (string) or max value (number) |
507
+ | `length(n)` | Exact length |
508
+ | `regex(pattern)` | Must match RegExp |
509
+ | `email()` | Valid email format |
510
+ | `uuid()` | Valid UUID v4 |
511
+ | `objectId()` | Valid MongoDB ObjectId (24-char hex) |
512
+ | `url(protocols?)` | Valid URL (parsed by `new URL()`) whose protocol is in `protocols` (default `['http', 'https', 'ws', 'wss']`) |
513
+ | `trim()` | No leading/trailing whitespace |
514
514
 
515
515
  **Number**
516
516
 
@@ -956,7 +956,22 @@ The `inputProperty` supports dot-notation and can point to any part of the reque
956
956
 
957
957
  The resolved value from `handler` is set at `outputProperty` on the request object, making it available as `req.auth.user` in your handler.
958
958
 
959
- `handler` should return `null`/`undefined` for credentials it does not accept. A thrown error is treated as a failure of the handler: the client gets `error` (or, with `required: false`, the request goes on anonymously) and the error is always logged.
959
+ `handler` should return `null`/`undefined` for credentials it does not accept. A thrown error gets the client `error` (or, with `required: false`, the request goes on anonymously). How it is logged depends on what was thrown:
960
+
961
+ - an error with a 4xx `statusCode` (`throw { statusCode: 401 }`, or an `Error` with `statusCode: 401`) is a refusal of the credentials and is logged only with `verbose: true`, like other client errors;
962
+ - anything else is a failure of the handler (a database down, a bug) and is always logged.
963
+
964
+ Libraries that throw on a bad token, such as `jwt.verify`, need their error turned into one of the first two, or every request with a junk token writes an error to the log:
965
+
966
+ ```ts
967
+ handler(token: string) {
968
+ try {
969
+ return jwt.verify(token, secret);
970
+ } catch {
971
+ return null; // or: throw { statusCode: 401 }
972
+ }
973
+ },
974
+ ```
960
975
 
961
976
  The value at `inputProperty` is checked before `handler` runs (the rest of the request is validated only after authentication). If the route declares a validator for that field (for example `body.token` in the request DTO), that validator decides, and it runs only this once for the request (request validation reuses the result); otherwise only a string is accepted. The handler gets the value as sent: query and path values stay strings even when a `number()` validator converts them for `req.query` / `req.path`. Anything else, such as an object from a JSON body or an array from a repeated query key, gets the configured `error` and `handler` is not called.
962
977
 
@@ -1217,7 +1232,7 @@ Documentation is built from:
1217
1232
  | `appId` | `string` | — | App identifier for multi-app setups |
1218
1233
  | `logger` | `AladoServerLogger` | — | Custom logger |
1219
1234
  | `ssl` | `SecureContextOptions` | — | TLS/HTTPS options |
1220
- | `maxBodySizeBytes` | `number` | `1048576` (1 MB) | Larger request bodies get `413 Content Too Large` and the connection is closed. `0` removes the limit |
1235
+ | `maxBodySizeBytes` | `number` | `1048576` (1 MB) | Larger request bodies get `413 Content Too Large` and the connection is closed. `0` removes the limit. Bodies read as text (JSON, XML, urlencoded, plain text) and multipart text fields are also refused past about 512 MB, the longest string V8 can build |
1221
1236
  | `trustProxy` | `boolean \| number` | `false` | Source of `request.ip`. `false`: the socket address (`X-Forwarded-For` is ignored, since clients can set it). `true`: the left-most `X-Forwarded-For` address. A number: how many proxies in front of the app to trust, e.g. `1` behind a single load balancer |
1222
1237
  | `caseSensitiveRoutes` | `boolean` | `true` | Whether `/Admin` and `/admin` are different paths. Case-insensitive matching lets requests slip past a reverse proxy that blocks paths by exact match, so turn it off only if clients rely on it. A trailing slash and repeated slashes are always ignored |
1223
1238
 
@@ -19,13 +19,13 @@ const clientParts = new Set([
19
19
  * other request value has to be a plain string, number, boolean or bigint. Missing values are left
20
20
  * to the rule (a comparison with a missing value already denies access).
21
21
  */
22
- async function isValidRuleInput(context, request, path, value) {
22
+ function isValidRuleInput(context, request, path, value) {
23
23
  const segments = path.split('.');
24
24
  if (!clientParts.has(segments[0]) || isMissing(value)) {
25
25
  return true;
26
26
  }
27
27
  if (segments.length === 2) {
28
- const declared = await (0, request_input_1.checkDeclaredInput)(request, context.request, segments[0], segments[1], value);
28
+ const declared = (0, request_input_1.checkDeclaredInput)(request, context.request, segments[0], segments[1], value);
29
29
  if (declared !== undefined) {
30
30
  return declared;
31
31
  }
@@ -43,7 +43,12 @@ async function accessControlChecker(context, request) {
43
43
  for (const item of accessControl) {
44
44
  const { inputProperty, transformInputProperty, statusCode, message, compareWithProperty, expectedValue, accessControlHandler, } = item;
45
45
  const rawValue = (0, accessor_1.getProperty)(request, inputProperty);
46
- if (!(await isValidRuleInput(context, request, inputProperty, rawValue))) {
46
+ // only awaited when a declared validator is async
47
+ let validInput = isValidRuleInput(context, request, inputProperty, rawValue);
48
+ if (typeof validInput !== 'boolean') {
49
+ validInput = await validInput;
50
+ }
51
+ if (!validInput) {
47
52
  return { statusCode, message };
48
53
  }
49
54
  let providedValue = rawValue;
@@ -1 +1 @@
1
- {"version":3,"file":"access-control-checker.js","sourceRoot":"","sources":["../../../src/helpers/parser/access-control-checker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"access-control-checker.js","sourceRoot":"","sources":["../../../src/helpers/parser/access-control-checker.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,9 @@ const request_input_1 = require("../validate/context/request-input");
10
10
  * With a validator declared for the field (context.request.<part>.<name>) that validator decides,
11
11
  * once: request validation reuses its result. Without one, only a string is accepted.
12
12
  */
13
- async function isValidAuthInput(context, request, value) {
13
+ function isValidAuthInput(context, request, value) {
14
14
  const [part, name,] = context.auth.inputProperty.split('.');
15
- const declared = await (0, request_input_1.checkDeclaredInput)(request, context.request, part, name, value);
15
+ const declared = (0, request_input_1.checkDeclaredInput)(request, context.request, part, name, value);
16
16
  return declared === undefined ? typeof value === 'string' : declared;
17
17
  }
18
18
  /**
@@ -29,8 +29,15 @@ async function authenticate(context, request, onHandlerError) {
29
29
  if (required && !authData) {
30
30
  return error;
31
31
  }
32
- if (authData !== undefined && authData !== null && !(await isValidAuthInput(context, request, authData))) {
33
- return refuse;
32
+ if (authData !== undefined && authData !== null) {
33
+ // only awaited when a declared validator is async
34
+ let validInput = isValidAuthInput(context, request, authData);
35
+ if (typeof validInput !== 'boolean') {
36
+ validInput = await validInput;
37
+ }
38
+ if (!validInput) {
39
+ return refuse;
40
+ }
34
41
  }
35
42
  try {
36
43
  const result = await handler.apply(handlerContext || {}, [authData]);
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/helpers/parser/authenticate.ts"],"names":[],"mappings":";;AA0BA,oCA2BC;AApDD,0CAAuD;AACvD,qEAAuE;AAEvE;;;;;;GAMG;AACH,KAAK,UAAU,gBAAgB,CAAC,OAAqB,EAAE,OAAY,EAAE,KAAc;IACjF,MAAM,CACJ,IAAI,EACJ,IAAI,EACL,GAAI,OAAO,CAAC,IAA8B,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAwB,MAAM,IAAA,kCAAkB,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5G,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAChC,OAAqB,EACrB,OAAY,EACZ,cAAyC;IAEzC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAA6B,CAAC;IAClH,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5C,MAAM,QAAQ,GAAQ,IAAA,sBAAW,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACzG,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAA,sBAAW,EAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,6EAA6E;QAC7E,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/helpers/parser/authenticate.ts"],"names":[],"mappings":";;AAgCA,oCAkCC;AAjED,0CAAuD;AACvD,qEAAuE;AAEvE;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,OAAqB,EAAE,OAAY,EAAE,KAAc;IAC3E,MAAM,CACJ,IAAI,EACJ,IAAI,EACL,GAAI,OAAO,CAAC,IAA8B,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,QAAQ,GAA2C,IAAA,kCAAkB,EACzE,OAAO,EACP,OAAO,CAAC,OAAO,EACf,IAAI,EACJ,IAAI,EACJ,KAAK,CACN,CAAC;IACF,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAChC,OAAqB,EACrB,OAAY,EACZ,cAAyC;IAEzC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAA6B,CAAC;IAClH,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE5C,MAAM,QAAQ,GAAQ,IAAA,sBAAW,EAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC1D,IAAI,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,kDAAkD;QAClD,IAAI,UAAU,GAA+B,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1F,IAAI,OAAO,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,UAAU,GAAG,MAAM,UAAU,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAA,sBAAW,EAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QACpB,6EAA6E;QAC7E,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -32,5 +32,15 @@ export declare function parseMultipartBody(raw: Buffer, boundary: string): {
32
32
  files: MultipartFile[];
33
33
  };
34
34
  export declare function multipartBoundary(contentType: string): string | null;
35
+ /**
36
+ * V8 cannot build a string longer than buffer.constants.MAX_STRING_LENGTH (about 512 MB), and
37
+ * decoding more throws. A body decoded as text (JSON, XML, urlencoded, text) above it is refused
38
+ * with 413 while it arrives, even when maxBodySizeBytes is 0 or larger; so is a multipart text field.
39
+ * UTF-8 never decodes to more UTF-16 units than bytes, so a byte count is enough. Exported as an
40
+ * object so tests can lower it.
41
+ */
42
+ export declare const textLimits: {
43
+ maxBytes: number;
44
+ };
35
45
  export declare function bodyParser(req: IncomingMessage, res: OutgoingMessage, limit: number, acceptFiles?: boolean): Promise<any>;
36
46
  export {};
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.textLimits = void 0;
3
4
  exports.mediaType = mediaType;
4
5
  exports.isXmlContentType = isXmlContentType;
5
6
  exports.isJsonContentType = isJsonContentType;
@@ -7,6 +8,7 @@ exports.parsePartHeaders = parsePartHeaders;
7
8
  exports.parseMultipartBody = parseMultipartBody;
8
9
  exports.multipartBoundary = multipartBoundary;
9
10
  exports.bodyParser = bodyParser;
11
+ const buffer_1 = require("buffer");
10
12
  const _const_1 = require("../../constants/index.js");
11
13
  const stream_1 = require("stream");
12
14
  const xml_parser_1 = require("./xml-parser");
@@ -126,6 +128,18 @@ function ownCopy(chunks, size) {
126
128
  return copy;
127
129
  }
128
130
  const contentTooLarge = { statusCode: 413, message: 'Content Too Large' };
131
+ /**
132
+ * V8 cannot build a string longer than buffer.constants.MAX_STRING_LENGTH (about 512 MB), and
133
+ * decoding more throws. A body decoded as text (JSON, XML, urlencoded, text) above it is refused
134
+ * with 413 while it arrives, even when maxBodySizeBytes is 0 or larger; so is a multipart text field.
135
+ * UTF-8 never decodes to more UTF-16 units than bytes, so a byte count is enough. Exported as an
136
+ * object so tests can lower it.
137
+ */
138
+ exports.textLimits = { maxBytes: buffer_1.constants.MAX_STRING_LENGTH };
139
+ // an error thrown while a body is turned into request data: never left to crash the process
140
+ function toBodyError(e) {
141
+ return e?.code === 'ERR_STRING_TOO_LONG' ? contentTooLarge : e;
142
+ }
129
143
  /**
130
144
  * Stops buffering an oversized body. The rest of it is not read: the connection is
131
145
  * closed once the 413 response is sent, so the client cannot keep streaming into it.
@@ -137,10 +151,10 @@ function abortOversizedBody(req, res) {
137
151
  res.setHeader('Connection', 'close');
138
152
  }
139
153
  }
140
- function collectChunks(req, res, limit, received, reject) {
154
+ function collectChunks(req, res, limit, received, reject, textLimit = 0) {
141
155
  return (chunk) => {
142
156
  received.bytes += chunk.length;
143
- if (limit && received.bytes > limit) {
157
+ if ((limit && received.bytes > limit) || (textLimit && received.bytes > textLimit)) {
144
158
  abortOversizedBody(req, res);
145
159
  reject(contentTooLarge);
146
160
  return;
@@ -204,7 +218,15 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
204
218
  }
205
219
  collect(chunk);
206
220
  if (declared && received.bytes * 2 >= declared && received.bytes <= declared) {
207
- whole = Buffer.allocUnsafeSlow(declared);
221
+ try {
222
+ whole = Buffer.allocUnsafeSlow(declared);
223
+ }
224
+ catch {
225
+ // no memory for a body of the declared size
226
+ abortOversizedBody(req, res);
227
+ reject(contentTooLarge);
228
+ return;
229
+ }
208
230
  let offset = 0;
209
231
  for (const piece of received.chunks) {
210
232
  offset += piece.copy(whole, offset);
@@ -213,7 +235,7 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
213
235
  }
214
236
  });
215
237
  req.once('error', onRequestError(reject));
216
- req.on('end', () => {
238
+ const readMultipart = () => {
217
239
  // one Buffer for the whole body; files are views into it, nothing is copied as a string
218
240
  const raw = whole ? whole.subarray(0, received.bytes) : ownCopy(received.chunks, received.bytes);
219
241
  received.chunks = [];
@@ -222,7 +244,13 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
222
244
  Object.defineProperty(result, 'rawBody', {
223
245
  enumerable: true,
224
246
  configurable: true,
225
- get: () => (rawBody ??= raw.toString('latin1')),
247
+ get: () => {
248
+ if (rawBody === undefined && raw.length > exports.textLimits.maxBytes) {
249
+ // too long for a string: a 413 for the handler that reads it, not a RangeError
250
+ throw Object.assign(new Error(contentTooLarge.message), { statusCode: contentTooLarge.statusCode });
251
+ }
252
+ return (rawBody ??= raw.toString('latin1'));
253
+ },
226
254
  });
227
255
  if (!boundary) {
228
256
  resolve();
@@ -232,6 +260,10 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
232
260
  for (const [name, value,] of fields) {
233
261
  // same keys the JSON and urlencoded parsers drop (__proto__, constructor, ...)
234
262
  if (!_const_1.deprecatedJsonPropertiesRegExp.test(name)) {
263
+ if (value.length > exports.textLimits.maxBytes) {
264
+ reject(contentTooLarge);
265
+ return;
266
+ }
235
267
  result.body[name] = value.toString('utf8');
236
268
  }
237
269
  }
@@ -255,14 +287,22 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
255
287
  }
256
288
  }
257
289
  resolve();
290
+ };
291
+ req.on('end', () => {
292
+ try {
293
+ readMultipart();
294
+ }
295
+ catch (e) {
296
+ reject(toBodyError(e));
297
+ }
258
298
  });
259
299
  });
260
300
  }
261
301
  else {
262
302
  await new Promise((resolve, reject) => {
263
- req.on('data', collectChunks(req, res, limit, received, reject));
303
+ req.on('data', collectChunks(req, res, limit, received, reject, exports.textLimits.maxBytes));
264
304
  req.once('error', onRequestError(reject));
265
- req.on('end', () => {
305
+ const readText = () => {
266
306
  body = concatChunks(received, 'utf8');
267
307
  result.rawBody = body;
268
308
  if (isJsonContentType(contentType) && !body) {
@@ -304,6 +344,14 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
304
344
  result.body = body;
305
345
  resolve();
306
346
  }
347
+ };
348
+ req.on('end', () => {
349
+ try {
350
+ readText();
351
+ }
352
+ catch (e) {
353
+ reject(toBodyError(e));
354
+ }
307
355
  });
308
356
  });
309
357
  }
@@ -1 +1 @@
1
- {"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../../src/helpers/parser/body-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../../src/helpers/parser/body-parser.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,12 @@ export declare function validatorInput(key: string, definition: PropertyDefiniti
10
10
  numeric: boolean;
11
11
  };
12
12
  /** Whether request[key][property] still holds a value its declared validator accepted earlier. */
13
- export declare function isPrevalidated(request: object, key: string, property: string, raw: unknown): boolean;
13
+ export declare function isPrevalidated(request: any, key: string, property: string, raw: unknown): boolean;
14
14
  /**
15
15
  * Runs the validator declared for request[key][property] ahead of request validation (for the auth
16
16
  * input and access-control inputs, which are read before it). `undefined` when no validator is
17
17
  * declared. An accepted value is remembered, so request validation does not run the validator
18
- * again for it (a slow or side-effecting validator runs once per request).
18
+ * again for it (a slow or side-effecting validator runs once per request). Synchronous unless the
19
+ * validator returns a promise.
19
20
  */
20
- export declare function checkDeclaredInput(request: any, definitions: ContextRequest | undefined, key: string, property: string, raw: unknown): Promise<boolean | undefined>;
21
+ export declare function checkDeclaredInput(request: any, definitions: ContextRequest | undefined, key: string, property: string, raw: unknown): boolean | undefined | Promise<boolean>;
@@ -29,40 +29,49 @@ function validatorInput(key, definition, raw) {
29
29
  }
30
30
  return { value, numeric };
31
31
  }
32
- // request -> "<part>.<name>" -> the raw value that already passed its declared validator
33
- const prevalidated = new WeakMap();
32
+ // "<part>.<name>" -> the raw value that already passed its declared validator, kept on the request
33
+ // itself (not in a WeakMap: an entry per short-lived request is costly for the garbage collector)
34
+ const PREVALIDATED = Symbol('alado.prevalidated');
35
+ function isThenable(value) {
36
+ return value !== null && typeof value === 'object' && typeof value.then === 'function';
37
+ }
34
38
  /** Whether request[key][property] still holds a value its declared validator accepted earlier. */
35
39
  function isPrevalidated(request, key, property, raw) {
36
- const values = prevalidated.get(request);
37
- return values !== undefined && values.has(`${key}.${property}`) && values.get(`${key}.${property}`) === raw;
40
+ const values = request[PREVALIDATED];
41
+ return values !== undefined && raw !== undefined && values[`${key}.${property}`] === raw;
42
+ }
43
+ function remember(request, key, property, raw) {
44
+ let values = request[PREVALIDATED];
45
+ if (values === undefined) {
46
+ values = Object.create(null);
47
+ Object.defineProperty(request, PREVALIDATED, { value: values });
48
+ }
49
+ values[`${key}.${property}`] = raw;
50
+ return true;
38
51
  }
39
52
  /**
40
53
  * Runs the validator declared for request[key][property] ahead of request validation (for the auth
41
54
  * input and access-control inputs, which are read before it). `undefined` when no validator is
42
55
  * declared. An accepted value is remembered, so request validation does not run the validator
43
- * again for it (a slow or side-effecting validator runs once per request).
56
+ * again for it (a slow or side-effecting validator runs once per request). Synchronous unless the
57
+ * validator returns a promise.
44
58
  */
45
- async function checkDeclaredInput(request, definitions, key, property, raw) {
59
+ function checkDeclaredInput(request, definitions, key, property, raw) {
46
60
  const definition = definitions?.[key]?.[property];
47
61
  const handler = definition?.validation?.handler;
48
62
  if (typeof handler !== 'function') {
49
63
  return undefined;
50
64
  }
51
- let valid;
65
+ let result;
52
66
  try {
53
- valid = Boolean(await handler.apply(request, [validatorInput(key, definition, raw).value]));
67
+ result = handler.apply(request, [validatorInput(key, definition, raw).value]);
54
68
  }
55
69
  catch {
56
- valid = false;
70
+ return false;
57
71
  }
58
- if (valid) {
59
- let values = prevalidated.get(request);
60
- if (!values) {
61
- values = new Map();
62
- prevalidated.set(request, values);
63
- }
64
- values.set(`${key}.${property}`, raw);
72
+ if (isThenable(result)) {
73
+ return Promise.resolve(result).then((ok) => (ok ? remember(request, key, property, raw) : false), () => false);
65
74
  }
66
- return valid;
75
+ return result ? remember(request, key, property, raw) : false;
67
76
  }
68
77
  //# sourceMappingURL=request-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request-input.js","sourceRoot":"","sources":["../../../../src/helpers/validate/context/request-input.ts"],"names":[],"mappings":";;AAUA,wCAoBC;AAMD,wCAGC;AAQD,gDA2BC;AAzED,0DAAqD;AACrD,6DAA2F;AAE3F;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,GAAW,EACX,UAA8B,EAC9B,GAAY;IAEZ,IAAI,KAAK,GAAY,GAAG,CAAC;IACzB,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,MAAM,WAAW,GAAkC,UAAU,CAAC,UAAU,EAAE,OAAe,EAAE,CAAC,4BAAY,CAAC,CAAC;IAC1G,IAAI,WAAW,IAAI,CAAC,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACpF,KAAK,GAAG,IAAA,8BAAc,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC;IACtC,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,KAAK,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,yFAAyF;AACzF,MAAM,YAAY,GAA0C,IAAI,OAAO,EAAE,CAAC;AAE1E,kGAAkG;AAClG,SAAgB,cAAc,CAAC,OAAe,EAAE,GAAW,EAAE,QAAgB,EAAE,GAAY;IACzF,MAAM,MAAM,GAAqC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3E,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC;AAC9G,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,kBAAkB,CACtC,OAAY,EACZ,WAAuC,EACvC,GAAW,EACX,QAAgB,EAChB,GAAY;IAEZ,MAAM,UAAU,GAAoC,WAAmB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;IAChD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,UAAgC,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,MAAM,GAAqC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACnB,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"request-input.js","sourceRoot":"","sources":["../../../../src/helpers/validate/context/request-input.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,13 @@ export declare function swaggerIndexHtml(html: string, docsRoute: string): strin
19
19
  * details only go to the logger.
20
20
  */
21
21
  export declare function toClientError(e: any): AladoServerError;
22
+ /**
23
+ * How an exception from an auth handler is logged. One that carries a 4xx `statusCode`
24
+ * ({ statusCode: 401 }, or an Error with it) is the handler refusing credentials: logged like other
25
+ * client errors, with `verbose` only, so a stream of bad tokens does not flood the log. Anything
26
+ * else (a database down, a bug) is a failure of the handler and is always logged.
27
+ */
28
+ export declare function authHandlerErrorStatus(e: any): number;
22
29
  export declare function clientIp(req: IncomingMessage, trustProxy?: boolean | number): string;
23
30
  export declare class RequestProcessor {
24
31
  private readonly options;
@@ -29,6 +36,12 @@ export declare class RequestProcessor {
29
36
  private corsMethods;
30
37
  constructor(requestProcessorOptions: RequestProcessorOptions);
31
38
  protected respond(res: ServerResponse, response: Response<any>, backgroundHeaders?: Record<string, string>): void;
39
+ /**
40
+ * Streams a body. A pending stream (fs.createReadStream) starts in its 'ready' event, outside the
41
+ * request's try/catch: anything thrown there, such as writeHead() refusing a header value built
42
+ * from request data ("filename=\"a\nb\""), would end the process. Every listener here catches,
43
+ * answers 500 when the status line is not out yet, and destroys the stream so its file is closed.
44
+ */
32
45
  protected sendStream(res: ServerResponse, statusCode: number, headers: Record<string, string>, stream: Readable, backgroundHeaders?: Record<string, string>): void;
33
46
  protected respondError(res: ServerResponse, error: AladoServerError, headers?: Record<string, string>): void;
34
47
  process(req: IncomingMessage, res: ServerResponse): Promise<void>;
@@ -4,6 +4,7 @@ exports.RequestProcessor = void 0;
4
4
  exports.resolveSwaggerUiFile = resolveSwaggerUiFile;
5
5
  exports.swaggerIndexHtml = swaggerIndexHtml;
6
6
  exports.toClientError = toClientError;
7
+ exports.authHandlerErrorStatus = authHandlerErrorStatus;
7
8
  exports.clientIp = clientIp;
8
9
  const path_1 = require("path");
9
10
  const fs_1 = require("fs");
@@ -47,6 +48,16 @@ function toClientError(e) {
47
48
  }
48
49
  return { statusCode: 500, message: 'Internal Server Error' };
49
50
  }
51
+ /**
52
+ * How an exception from an auth handler is logged. One that carries a 4xx `statusCode`
53
+ * ({ statusCode: 401 }, or an Error with it) is the handler refusing credentials: logged like other
54
+ * client errors, with `verbose` only, so a stream of bad tokens does not flood the log. Anything
55
+ * else (a database down, a bug) is a failure of the handler and is always logged.
56
+ */
57
+ function authHandlerErrorStatus(e) {
58
+ const statusCode = e?.statusCode;
59
+ return typeof statusCode === 'number' && statusCode >= 400 && statusCode < 500 ? statusCode : 500;
60
+ }
50
61
  function hasKeys(value) {
51
62
  for (const _ in value) {
52
63
  return true;
@@ -243,10 +254,34 @@ class RequestProcessor {
243
254
  res.writeHead(statusCode, headers);
244
255
  res.end(responseBody);
245
256
  }
257
+ /**
258
+ * Streams a body. A pending stream (fs.createReadStream) starts in its 'ready' event, outside the
259
+ * request's try/catch: anything thrown there, such as writeHead() refusing a header value built
260
+ * from request data ("filename=\"a\nb\""), would end the process. Every listener here catches,
261
+ * answers 500 when the status line is not out yet, and destroys the stream so its file is closed.
262
+ */
246
263
  sendStream(res, statusCode, headers, stream, backgroundHeaders) {
264
+ const fail = (error, clientError) => {
265
+ stream.destroy();
266
+ this.logError(error, clientError.statusCode);
267
+ try {
268
+ this.respondError(res, clientError, backgroundHeaders);
269
+ }
270
+ catch (e) {
271
+ // not even the error response could be written: drop the connection, keep the process
272
+ this.logError(e, 500);
273
+ res.destroy();
274
+ }
275
+ };
247
276
  const start = () => {
248
277
  stream.removeListener('error', failBeforeStart);
249
- res.writeHead(statusCode, headers);
278
+ try {
279
+ res.writeHead(statusCode, headers);
280
+ }
281
+ catch (error) {
282
+ fail(error, { statusCode: 500, message: 'Internal Server Error' });
283
+ return;
284
+ }
250
285
  (0, stream_1.pipeline)(stream, res, (error) => {
251
286
  if (error) {
252
287
  // the client going away mid-response is not a server failure
@@ -256,9 +291,7 @@ class RequestProcessor {
256
291
  };
257
292
  const failBeforeStart = (error) => {
258
293
  stream.removeListener('ready', start);
259
- const clientError = error.code === 'ENOENT' ? { statusCode: 404, message: 'Not Found' } : toClientError(error);
260
- this.logError(error, clientError.statusCode);
261
- this.respondError(res, clientError, backgroundHeaders);
294
+ fail(error, error.code === 'ENOENT' ? { statusCode: 404, message: 'Not Found' } : toClientError(error));
262
295
  };
263
296
  if (stream.pending === true) {
264
297
  stream.once('ready', start);
@@ -399,9 +432,7 @@ class RequestProcessor {
399
432
  if (stage === 'auth') {
400
433
  await readBody();
401
434
  }
402
- const authError = await (0, _helper_1.authenticate)(context, request, (e) =>
403
- // a thrown auth handler is a failure of the handler, not of the credentials
404
- this.logError(e, 500));
435
+ const authError = await (0, _helper_1.authenticate)(context, request, (e) => this.logError(e, authHandlerErrorStatus(e)));
405
436
  if (authError) {
406
437
  closeIfBodyUnread(req, res, bodyRead);
407
438
  return this.respondError(res, authError, backgroundHeaders);
@@ -1 +1 @@
1
- {"version":3,"file":"request-processor.js","sourceRoot":"","sources":["../../src/request-processor/request-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-processor.js","sourceRoot":"","sources":["../../src/request-processor/request-processor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alado",
3
- "version": "3.7.8",
3
+ "version": "3.7.11",
4
4
  "description": "Fast, lightweight, robust framework for HTTP applications written in Node.js",
5
5
  "keywords": [
6
6
  "HTTP",