alado 3.6.18 → 3.7.0

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
@@ -949,6 +949,10 @@ The `inputProperty` supports dot-notation and can point to any part of the reque
949
949
 
950
950
  The resolved value from `handler` is set at `outputProperty` on the request object, making it available as `req.auth.user` in your handler.
951
951
 
952
+ 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; otherwise only a string is accepted. 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.
953
+
954
+ When `inputProperty` reads a header, a query parameter or a path parameter, the request body is read only after authentication (and after access control, unless a rule reads `body.*`). A refused request never has its body parsed, and its connection is closed after the error response.
955
+
952
956
  **Optional auth** — set `required: false` for soft checking (handler runs but failure doesn't block the request):
953
957
 
954
958
  ```ts
@@ -2,6 +2,37 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.authenticate = authenticate;
4
4
  const accessor_1 = require("../accessor");
5
+ const json_parser_1 = require("./json-parser");
6
+ /**
7
+ * The auth input is checked before the handler sees it: validation of the rest of the request runs
8
+ * only after authentication, so without this a JSON body or a repeated query key could hand the
9
+ * handler an object or an array (e.g. {"$ne": null}, a NoSQL operator) instead of a token.
10
+ * With a validator declared for the field (context.request.<part>.<name>) that validator decides;
11
+ * without one, only a string is accepted.
12
+ */
13
+ async function isValidAuthInput(context, request, value) {
14
+ const [part, name,] = context.auth.inputProperty.split('.');
15
+ const definition = context.request?.[part]?.[name];
16
+ const handler = definition?.validation?.handler;
17
+ if (typeof handler !== 'function') {
18
+ return typeof value === 'string';
19
+ }
20
+ let input = value;
21
+ if (definition?.isJSON && typeof value === 'string') {
22
+ try {
23
+ input = (0, json_parser_1.parseJson)(value);
24
+ }
25
+ catch {
26
+ // the validator gets the raw string, as in request validation
27
+ }
28
+ }
29
+ try {
30
+ return Boolean(await handler.apply(request, [input]));
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ }
5
36
  async function authenticate(context, request) {
6
37
  const { auth } = context;
7
38
  const { required, handler, handlerContext, inputProperty, outputProperty, error } = auth;
@@ -9,6 +40,9 @@ async function authenticate(context, request) {
9
40
  if (required && !authData) {
10
41
  return error;
11
42
  }
43
+ if (authData !== undefined && authData !== null && !(await isValidAuthInput(context, request, authData))) {
44
+ return error;
45
+ }
12
46
  try {
13
47
  const result = await handler.apply(handlerContext || {}, [authData]);
14
48
  if (!result && required) {
@@ -1 +1 @@
1
- {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/helpers/parser/authenticate.ts"],"names":[],"mappings":";;AAGA,oCAkBC;AApBD,0CAAuD;AAEhD,KAAK,UAAU,YAAY,CAAC,OAAqB,EAAE,OAAY;IACpE,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;IAElH,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,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,MAAM,CAAC;QACP,6EAA6E;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"authenticate.js","sourceRoot":"","sources":["../../../src/helpers/parser/authenticate.ts"],"names":[],"mappings":";;AAoCA,oCAqBC;AAxDD,0CAAuD;AACvD,+CAA0C;AAE1C;;;;;;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,UAAU,GAAoC,OAAO,CAAC,OAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;IAChD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC;IACD,IAAI,KAAK,GAAY,KAAK,CAAC;IAC3B,IAAI,UAAU,EAAE,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,KAAK,GAAG,IAAA,uBAAS,EAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,OAAqB,EAAE,OAAY;IACpE,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;IAElH,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,KAAK,CAAC;IACf,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,MAAM,CAAC;QACP,6EAA6E;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -2,18 +2,35 @@ import { IncomingMessage, OutgoingMessage } from 'http';
2
2
  export declare function mediaType(contentType: string | undefined): string;
3
3
  export declare function isXmlContentType(contentType: string | undefined): boolean;
4
4
  export declare function isJsonContentType(contentType: string | undefined): boolean;
5
- type MultipartPart = {
5
+ type PartHeaders = {
6
6
  name: string | null;
7
- value: string | null;
8
7
  filename: string | null;
9
8
  mimetype: string | null;
10
9
  };
10
+ type MultipartFile = {
11
+ name: string;
12
+ mimetype: string;
13
+ content: Buffer;
14
+ };
15
+ /**
16
+ * Header fields of one part. `headers` is the text before the blank line, read as latin1 (one
17
+ * char per byte); the field name is UTF-8 and is decoded back. filename="" is kept as '': it is
18
+ * what a browser sends for a file input left empty.
19
+ */
20
+ export declare function parsePartHeaders(headers: string): PartHeaders;
11
21
  /**
12
- * Splits one multipart part (the text between two boundaries) into its headers and value,
13
- * in linear time: headers end at the first blank line, and the value runs up to the
14
- * "\r\n--" that precedes the next boundary. Header fields are read from the headers only.
22
+ * Splits a multipart body without turning it into a string: delimiters are found with
23
+ * Buffer.indexOf, and a file's content is a subarray() of `raw` (same memory, no copy). Every
24
+ * search is bounded by the part it belongs to, so the whole body is scanned once.
25
+ * A part without its closing delimiter (a cut-off body) is dropped.
15
26
  */
16
- export declare function parseMultipartPart(item: string): MultipartPart | null;
27
+ export declare function parseMultipartBody(raw: Buffer, boundary: string): {
28
+ fields: Array<[
29
+ string,
30
+ Buffer
31
+ ]>;
32
+ files: MultipartFile[];
33
+ };
17
34
  export declare function multipartBoundary(contentType: string): string | null;
18
35
  export declare function bodyParser(req: IncomingMessage, res: OutgoingMessage, limit: number, acceptFiles?: boolean): Promise<any>;
19
36
  export {};
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mediaType = mediaType;
4
4
  exports.isXmlContentType = isXmlContentType;
5
5
  exports.isJsonContentType = isJsonContentType;
6
- exports.parseMultipartPart = parseMultipartPart;
6
+ exports.parsePartHeaders = parsePartHeaders;
7
+ exports.parseMultipartBody = parseMultipartBody;
7
8
  exports.multipartBoundary = multipartBoundary;
8
9
  exports.bodyParser = bodyParser;
9
10
  const _const_1 = require("../../constants/index.js");
@@ -28,34 +29,88 @@ function isJsonContentType(contentType) {
28
29
  const partNameRegExp = /(?:^|[;\s])name="([^"]*)"/i;
29
30
  const partFilenameRegExp = /(?:^|[;\s])filename="([^"]*)"/i;
30
31
  const partContentTypeRegExp = /^content-type:([^\r\n]*)$/im;
32
+ const CRLF = Buffer.from('\r\n');
33
+ const HEADERS_END = Buffer.from('\r\n\r\n');
31
34
  /**
32
- * Splits one multipart part (the text between two boundaries) into its headers and value,
33
- * in linear time: headers end at the first blank line, and the value runs up to the
34
- * "\r\n--" that precedes the next boundary. Header fields are read from the headers only.
35
+ * Header fields of one part. `headers` is the text before the blank line, read as latin1 (one
36
+ * char per byte); the field name is UTF-8 and is decoded back. filename="" is kept as '': it is
37
+ * what a browser sends for a file input left empty.
35
38
  */
36
- function parseMultipartPart(item) {
37
- const headerEnd = item.indexOf('\r\n\r\n');
38
- if (headerEnd === -1) {
39
- return null;
40
- }
41
- const valueStart = headerEnd + 4;
42
- const valueEnd = item.length - 4;
43
- const value = valueEnd >= valueStart && item.endsWith('\r\n--') ? item.slice(valueStart, valueEnd) : null;
44
- const headers = item.slice(0, headerEnd);
45
- const pick = (regExp) => {
46
- const match = regExp.exec(headers);
47
- return match && match[1] ? match[1] : null;
48
- };
49
- // filename="" is kept as '': it is what a browser sends for a file input left empty
50
- const filenameMatch = partFilenameRegExp.exec(headers);
39
+ function parsePartHeaders(headers) {
40
+ const name = partNameRegExp.exec(headers);
41
+ const filename = partFilenameRegExp.exec(headers);
42
+ const mimetype = partContentTypeRegExp.exec(headers);
51
43
  return {
52
- name: pick(partNameRegExp),
53
- // '' is a field or file sent empty, null a part without a well-formed value
54
- value,
55
- filename: filenameMatch ? filenameMatch[1] : null,
56
- mimetype: pick(partContentTypeRegExp),
44
+ name: name && name[1] ? Buffer.from(name[1], 'latin1').toString('utf8') : null,
45
+ filename: filename ? filename[1] : null,
46
+ mimetype: mimetype && mimetype[1].trim() ? mimetype[1].trim() : null,
57
47
  };
58
48
  }
49
+ /**
50
+ * Splits a multipart body without turning it into a string: delimiters are found with
51
+ * Buffer.indexOf, and a file's content is a subarray() of `raw` (same memory, no copy). Every
52
+ * search is bounded by the part it belongs to, so the whole body is scanned once.
53
+ * A part without its closing delimiter (a cut-off body) is dropped.
54
+ */
55
+ function parseMultipartBody(raw, boundary) {
56
+ const fields = [];
57
+ const files = [];
58
+ const dashBoundary = Buffer.from(`--${boundary}`);
59
+ // every delimiter but the first is preceded by a line break, which belongs to it
60
+ const delimiter = Buffer.from(`\r\n--${boundary}`);
61
+ let position = raw.indexOf(dashBoundary);
62
+ if (position === -1) {
63
+ return { fields, files };
64
+ }
65
+ position += dashBoundary.length;
66
+ for (;;) {
67
+ // "--" after a delimiter closes the body; anything after it is an epilogue
68
+ if (raw[position] === 45 && raw[position + 1] === 45) {
69
+ break;
70
+ }
71
+ // the rest of the delimiter line (optional whitespace) up to its line break
72
+ const lineEnd = raw.indexOf(CRLF, position);
73
+ if (lineEnd === -1) {
74
+ break;
75
+ }
76
+ const headersStart = lineEnd + 2;
77
+ const next = raw.indexOf(delimiter, headersStart);
78
+ if (next === -1) {
79
+ break;
80
+ }
81
+ // the blank line ending the headers, looked for inside this part only
82
+ const part = raw.subarray(headersStart, next);
83
+ let headersEnd;
84
+ let valueStart;
85
+ if (part[0] === 13 && part[1] === 10) {
86
+ // a part without any header line
87
+ headersEnd = 0;
88
+ valueStart = 2;
89
+ }
90
+ else {
91
+ headersEnd = part.indexOf(HEADERS_END);
92
+ valueStart = headersEnd + 4;
93
+ }
94
+ if (headersEnd !== -1) {
95
+ const headers = parsePartHeaders(part.toString('latin1', 0, headersEnd));
96
+ const value = part.subarray(valueStart);
97
+ if (headers.name) {
98
+ if (headers.filename === null) {
99
+ fields.push([
100
+ headers.name,
101
+ value,
102
+ ]);
103
+ }
104
+ else if (headers.mimetype && (headers.filename !== '' || value.length > 0)) {
105
+ // filename="" without content: a file input left empty, no file was chosen
106
+ files.push({ name: headers.name, mimetype: headers.mimetype, content: value });
107
+ }
108
+ }
109
+ }
110
+ position = next + delimiter.length;
111
+ }
112
+ return { fields, files };
113
+ }
59
114
  // boundary parameter of a multipart Content-Type, unquoted and without the parameters after it
60
115
  function multipartBoundary(contentType) {
61
116
  const match = /;\s*boundary=(?:"([^"]+)"|([^;\s]+))/i.exec(contentType || '');
@@ -113,70 +168,84 @@ async function bodyParser(req, res, limit, acceptFiles = true) {
113
168
  const mime = mediaType(contentType);
114
169
  if (mime === _const_1.ContentType.FORM_DATA) {
115
170
  const boundary = multipartBoundary(req.headers['content-type']);
171
+ // The body is needed as one Buffer. Joining all chunks at the end holds it twice (chunks plus the
172
+ // joined copy). With a declared Content-Length, the Buffer is allocated at its exact size once half
173
+ // of it has arrived, the chunks so far are copied in and dropped, and the rest is copied as it
174
+ // comes: about 1.5x at the peak. Waiting for half keeps a client from making the server allocate a
175
+ // large body it never sends. Without a declared length (chunked encoding) the chunks are joined.
176
+ const declared = Number.isSafeInteger(declaredLength) && declaredLength > 0 ? declaredLength : 0;
177
+ let whole;
116
178
  await new Promise((resolve, reject) => {
117
- req.on('data', collectChunks(req, res, limit, received, reject));
179
+ const collect = collectChunks(req, res, limit, received, reject);
180
+ req.on('data', (chunk) => {
181
+ if (whole) {
182
+ if (received.bytes + chunk.length > whole.length) {
183
+ // more than Content-Length: Node's HTTP parser does not let it through, refuse it anyway
184
+ req.removeAllListeners('data');
185
+ req.removeAllListeners('end');
186
+ reject({ statusCode: 400, message: 'Bad Request' });
187
+ return;
188
+ }
189
+ chunk.copy(whole, received.bytes);
190
+ received.bytes += chunk.length;
191
+ return;
192
+ }
193
+ collect(chunk);
194
+ if (declared && received.bytes * 2 >= declared && received.bytes <= declared) {
195
+ whole = Buffer.allocUnsafe(declared);
196
+ let offset = 0;
197
+ for (const piece of received.chunks) {
198
+ offset += piece.copy(whole, offset);
199
+ }
200
+ received.chunks = [];
201
+ }
202
+ });
118
203
  req.once('error', onRequestError(reject));
119
204
  req.on('end', () => {
120
- // multipart is parsed as a binary string: one char per byte, file bytes kept intact
121
- body = concatChunks(received, 'binary');
122
- result.rawBody = body;
123
- const formData = {
124
- files: [],
125
- fields: {},
126
- };
127
- const data = boundary ? body.split(boundary) : [body];
128
- for (const item of data) {
129
- const element = parseMultipartPart(item);
130
- if (!element) {
131
- continue;
132
- }
133
- const { value, filename, mimetype } = element;
134
- // the body is parsed as a binary string (one char per byte) to keep file bytes intact;
135
- // text (field names and values) is UTF-8 and has to be decoded back
136
- const name = element.name && Buffer.from(element.name, 'binary').toString('utf8');
137
- if (!name || value === null) {
138
- continue;
205
+ // one Buffer for the whole body; files are views into it, nothing is copied as a string
206
+ const raw = whole
207
+ ? whole.subarray(0, received.bytes)
208
+ : received.chunks.length === 1
209
+ ? received.chunks[0]
210
+ : Buffer.concat(received.chunks, received.bytes);
211
+ received.chunks = [];
212
+ // the latin1 ("binary") text of the body costs as much memory again: built only when read
213
+ let rawBody;
214
+ Object.defineProperty(result, 'rawBody', {
215
+ enumerable: true,
216
+ configurable: true,
217
+ get: () => (rawBody ??= raw.toString('latin1')),
218
+ });
219
+ if (!boundary) {
220
+ resolve();
221
+ return;
222
+ }
223
+ const { fields, files } = parseMultipartBody(raw, boundary);
224
+ for (const [name, value,] of fields) {
225
+ // same keys the JSON and urlencoded parsers drop (__proto__, constructor, ...)
226
+ if (!_const_1.deprecatedJsonPropertiesRegExp.test(name)) {
227
+ result.body[name] = value.toString('utf8');
139
228
  }
140
- if (filename !== null) {
141
- // a file input left empty: no file was chosen
142
- if (filename === '' && value === '') {
143
- continue;
144
- }
145
- if (!mimetype || !acceptFiles) {
229
+ }
230
+ if (acceptFiles) {
231
+ for (const file of files) {
232
+ const key = file.name.trim();
233
+ // a file named __proto__ would otherwise replace the prototype of request.files
234
+ if (_const_1.deprecatedJsonPropertiesRegExp.test(key)) {
146
235
  continue;
147
236
  }
148
- const file = { name, mimetype };
149
- file.head = Buffer.from(value.slice(0, file_signature_1.FILE_SIGNATURE_BYTES), 'binary');
150
- const content = Buffer.from(value, 'binary');
151
- file.size = content.length;
152
- file.stream = new stream_1.Readable();
153
- file.stream.push(content);
154
- file.stream.push(null);
155
- formData.files.push(file);
156
- }
157
- else if (!_const_1.deprecatedJsonPropertiesRegExp.test(name)) {
158
- // same keys the JSON and urlencoded parsers drop (__proto__, constructor, ...)
159
- formData.fields[name] = Buffer.from(value, 'binary').toString('utf8');
237
+ const stream = new stream_1.Readable();
238
+ stream.push(file.content);
239
+ stream.push(null);
240
+ result.files[key] = {
241
+ stream,
242
+ // byte length of the content, not a private field of the stream
243
+ size: file.content.length,
244
+ mimetype: file.mimetype,
245
+ };
246
+ file_signature_1.uploadedFileHeads.set(result.files[key], file.content.subarray(0, file_signature_1.FILE_SIGNATURE_BYTES));
160
247
  }
161
248
  }
162
- for (const key in formData.fields) {
163
- result.body[key] = formData.fields[key];
164
- }
165
- formData.files.forEach((file) => {
166
- const { name, stream, mimetype, size } = file;
167
- const key = name.trim();
168
- // a file named __proto__ would otherwise replace the prototype of request.files
169
- if (_const_1.deprecatedJsonPropertiesRegExp.test(key)) {
170
- return;
171
- }
172
- result.files[key] = {
173
- stream: stream,
174
- // byte length of the content, not a private field of the stream
175
- size,
176
- mimetype: mimetype.trim(),
177
- };
178
- file_signature_1.uploadedFileHeads.set(result.files[key], file.head);
179
- });
180
249
  resolve();
181
250
  });
182
251
  });
@@ -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":";;AAUA,8BAEC;AAED,4CAGC;AAGD,8CAGC;AAgBD,4CASC;AAQD,gDAwEC;AAGD,8CAGC;AAiDD,gCA0JC;AAhVD,mCAAqE;AACrE,mCAAkC;AAElC,6CAAyC;AACzC,+CAA0D;AAC1D,uEAA6F;AAE7F,+GAA+G;AAC/G,sGAAsG;AACtG,SAAgB,SAAS,CAAC,WAA+B;IACvD,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC;AAED,SAAgB,gBAAgB,CAAC,WAA+B;IAC9D,MAAM,IAAI,GAAW,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,IAAI,KAAK,oBAAW,CAAC,GAAG,IAAI,IAAI,KAAK,oBAAW,CAAC,QAAQ,IAAI,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChH,CAAC;AAED,qGAAqG;AACrG,SAAgB,iBAAiB,CAAC,WAA+B;IAC/D,MAAM,IAAI,GAAW,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,OAAO,IAAI,KAAK,oBAAW,CAAC,IAAI,IAAI,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AAKD,MAAM,cAAc,GAAW,4BAA4B,CAAC;AAC5D,MAAM,kBAAkB,GAAW,gCAAgC,CAAC;AACpE,MAAM,qBAAqB,GAAW,6BAA6B,CAAC;AACpE,MAAM,IAAI,GAAW,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,MAAM,WAAW,GAAW,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAEpD;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,MAAM,IAAI,GAA2B,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,QAAQ,GAA2B,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAA2B,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7E,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9E,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACvC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;KACrE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,GAAW,EACX,QAAgB;IAUhB,MAAM,MAAM,GAKR,EAAE,CAAC;IACP,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,YAAY,GAAW,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;IAC1D,iFAAiF;IACjF,MAAM,SAAS,GAAW,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;IAC3D,IAAI,QAAQ,GAAW,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IACD,QAAQ,IAAI,YAAY,CAAC,MAAM,CAAC;IAChC,SAAS,CAAC;QACR,2EAA2E;QAC3E,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACrD,MAAM;QACR,CAAC;QACD,4EAA4E;QAC5E,MAAM,OAAO,GAAW,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QACD,MAAM,YAAY,GAAW,OAAO,GAAG,CAAC,CAAC;QACzC,MAAM,IAAI,GAAW,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC1D,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC;YAChB,MAAM;QACR,CAAC;QACD,sEAAsE;QACtE,MAAM,IAAI,GAAW,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACtD,IAAI,UAAkB,CAAC;QACvB,IAAI,UAAkB,CAAC;QACvB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACrC,iCAAiC;YACjC,UAAU,GAAG,CAAC,CAAC;YACf,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACvC,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,OAAO,GAAgB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;YACtF,MAAM,KAAK,GAAW,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,CAAC;wBACV,OAAO,CAAC,IAAI;wBACZ,KAAK;qBACN,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC7E,2EAA2E;oBAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;QACD,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,+FAA+F;AAC/F,SAAgB,iBAAiB,CAAC,WAAmB;IACnD,MAAM,KAAK,GAA2B,uCAAuC,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACtG,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAID,MAAM,eAAe,GAAqB,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE5F;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAoB,EAAE,GAAoB;IACpE,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC/B,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,GAAoB,EACpB,GAAoB,EACpB,KAAa,EACb,QAAsB,EACtB,MAAyC;IAEzC,OAAO,CAAC,KAAa,EAAE,EAAE;QACvB,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;QAC/B,IAAI,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC;YACpC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC7B,MAAM,CAAC,eAAe,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,SAAS,cAAc,CAAC,MAAyC;IAC/D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,YAAY,CAAC,QAAsB,EAAE,QAAwB;IACpE,sEAAsE;IACtE,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAEM,KAAK,UAAU,UAAU,CAC9B,GAAoB,EACpB,GAAoB,EACpB,KAAa,EACb,cAAuB,IAAI;IAE3B,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAChD,MAAM,MAAM,GAAQ;QAClB,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,IAAI,IAAI,GAAW,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAiB,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACxD,uEAAuE;IACvE,MAAM,cAAc,GAAW,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACrE,IAAI,KAAK,IAAI,cAAc,GAAG,KAAK,EAAE,CAAC;QACpC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,eAAe,CAAC;IACxB,CAAC;IACD,MAAM,IAAI,GAAW,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,oBAAW,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAkB,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAW,CAAC,CAAC;QACzF,kGAAkG;QAClG,oGAAoG;QACpG,+FAA+F;QAC/F,mGAAmG;QACnG,iGAAiG;QACjG,MAAM,QAAQ,GAAW,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,IAAI,KAAyB,CAAC;QAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAC/B,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjD,yFAAyF;wBACzF,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBAC/B,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;wBAC9B,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;wBACpD,OAAO;oBACT,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAClC,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,CAAC;gBACf,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC7E,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACrC,IAAI,MAAM,GAAW,CAAC,CAAC;oBACvB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACpC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACtC,CAAC;oBACD,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;gBACvB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,wFAAwF;gBACxF,MAAM,GAAG,GAAW,KAAK;oBACvB,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC;oBACnC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;wBAC5B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;wBACpB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACrD,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;gBACrB,0FAA0F;gBAC1F,IAAI,OAA2B,CAAC;gBAChC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;oBACvC,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;oBAClB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBAChD,CAAC,CAAC;gBACH,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,CAAC;oBACV,OAAO;gBACT,CAAC;gBACD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC5D,KAAK,MAAM,CACT,IAAI,EACJ,KAAK,EACN,IAAI,MAAM,EAAE,CAAC;oBACZ,+EAA+E;oBAC/E,IAAI,CAAC,uCAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBACD,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,GAAG,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACrC,gFAAgF;wBAChF,IAAI,uCAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC7C,SAAS;wBACX,CAAC;wBACD,MAAM,MAAM,GAAa,IAAI,iBAAQ,EAAE,CAAC;wBACxC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;4BAClB,MAAM;4BACN,gEAAgE;4BAChE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;4BACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB,CAAC;wBACF,kCAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,qCAAoB,CAAC,CAAC,CAAC;oBAC3F,CAAC;gBACH,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACtC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;gBACtB,IAAI,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC5C,2FAA2F;oBAC3F,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBACH,MAAM,CAAC,IAAI,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAwB,CAAC;wBACrD,OAAO,EAAE,CAAC;oBACZ,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,mEAAmE;wBACnE,MAAM,CAAC;4BACL,UAAU,EAAE,GAAG;4BACf,OAAO,EAAE,CAAC,YAAY,4BAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,mBAAmB;yBAC/F,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,KAAK,oBAAW,CAAC,qBAAqB,EAAE,CAAC;oBACtD,gFAAgF;oBAChF,KAAK,MAAM,CACT,GAAG,EACH,KAAK,EACN,IAAI,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/B,IAAI,GAAG,IAAI,CAAC,uCAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BACrD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wBAC3B,CAAC;oBACH,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;oBACzC,IAAI,CAAC;wBACH,MAAM,CAAC,IAAI,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;wBAC9B,OAAO,EAAE,CAAC;oBACZ,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACzE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;oBACnB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -63,6 +63,34 @@ function hasKeys(value) {
63
63
  }
64
64
  return false;
65
65
  }
66
+ const bodyPathRegExp = /^(body|rawBody|files)(\.|\[|$)/;
67
+ const bodyStages = new WeakMap();
68
+ function bodyStage(context) {
69
+ let stage = bodyStages.get(context);
70
+ if (stage === undefined) {
71
+ const accessControlPaths = (context.accessControl || []).flatMap((rule) => [
72
+ rule.inputProperty,
73
+ rule.compareWithProperty,
74
+ ]);
75
+ const reads = (path) => typeof path === 'string' && bodyPathRegExp.test(path);
76
+ stage = reads(context.auth?.inputProperty)
77
+ ? 'auth'
78
+ : accessControlPaths.some(reads)
79
+ ? 'accessControl'
80
+ : 'validation';
81
+ bodyStages.set(context, stage);
82
+ }
83
+ return stage;
84
+ }
85
+ // a body is on its way that will not be read: close the connection after the response instead
86
+ // of letting the client keep sending it
87
+ function closeIfBodyUnread(req, res, bodyRead) {
88
+ const pending = req.headers['transfer-encoding'] !== undefined ||
89
+ (req.headers['content-length'] !== undefined && req.headers['content-length'] !== '0');
90
+ if (!bodyRead && pending && !res.headersSent) {
91
+ res.setHeader('Connection', 'close');
92
+ }
93
+ }
66
94
  const queryReaders = new WeakMap();
67
95
  const queryPathRegExp = /^query(\.|\[|$)/;
68
96
  function readsQuery(context) {
@@ -336,16 +364,7 @@ class RequestProcessor {
336
364
  }
337
365
  const { context, handler, path } = route;
338
366
  // Process request, prepare data
339
- let body = {};
340
- let rawBody = '';
341
367
  let query = {};
342
- let files = {};
343
- if (bodyMethods.has(method)) {
344
- const r = await (0, _helper_1.bodyParser)(req, res, this.options.maxBodySizeBytes, Boolean(context.options?.allowUnknownFields) || hasKeys(context.request.files));
345
- body = r.body;
346
- rawBody = r.rawBody;
347
- files = r.files;
348
- }
349
368
  if (queryString && readsQuery(context)) {
350
369
  query = (0, _helper_1.queryParser)(queryString);
351
370
  }
@@ -359,30 +378,56 @@ class RequestProcessor {
359
378
  headers,
360
379
  path,
361
380
  query,
381
+ body: {},
382
+ files: {},
383
+ };
384
+ const stage = bodyStage(context);
385
+ let bodyRead = !bodyMethods.has(method);
386
+ const readBody = async () => {
387
+ if (bodyRead) {
388
+ return;
389
+ }
390
+ bodyRead = true;
391
+ const r = await (0, _helper_1.bodyParser)(req, res, this.options.maxBodySizeBytes, Boolean(context.options?.allowUnknownFields) || hasKeys(context.request.files));
392
+ if (r.body) {
393
+ request.body = r.body;
394
+ }
395
+ else {
396
+ delete request.body;
397
+ }
398
+ const rawBody = Object.getOwnPropertyDescriptor(r, 'rawBody');
399
+ if (rawBody?.get) {
400
+ // multipart: the text is built only if something reads request.rawBody
401
+ Object.defineProperty(request, 'rawBody', rawBody);
402
+ }
403
+ else if (r.rawBody) {
404
+ request.rawBody = r.rawBody;
405
+ }
406
+ request.files = r.files;
362
407
  };
363
- if (body) {
364
- request.body = body;
365
- }
366
- if (rawBody) {
367
- request.rawBody = rawBody;
368
- }
369
- if (files) {
370
- request.files = files;
371
- }
372
408
  // Authenticate
373
409
  if (context.auth) {
410
+ if (stage === 'auth') {
411
+ await readBody();
412
+ }
374
413
  const authError = await (0, _helper_1.authenticate)(context, request);
375
414
  if (authError) {
415
+ closeIfBodyUnread(req, res, bodyRead);
376
416
  return this.respondError(res, authError, backgroundHeaders);
377
417
  }
378
418
  }
379
419
  // Access control
380
420
  if (Array.isArray(context.accessControl) && context.accessControl.length) {
421
+ if (stage === 'accessControl') {
422
+ await readBody();
423
+ }
381
424
  const accessError = await (0, _helper_1.accessControlChecker)(context, request);
382
425
  if (accessError) {
426
+ closeIfBodyUnread(req, res, bodyRead);
383
427
  return this.respondError(res, accessError, backgroundHeaders);
384
428
  }
385
429
  }
430
+ await readBody();
386
431
  // Validate request
387
432
  for (const key in context.request) {
388
433
  const result = (0, _helper_1.validateRequestPart)(key, context, request);
@@ -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.6.18",
3
+ "version": "3.7.0",
4
4
  "description": "Fast, lightweight, robust framework for HTTP applications written in Node.js",
5
5
  "keywords": [
6
6
  "HTTP",