exisjs 0.7.6 → 0.7.8

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 (211) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +12 -0
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/clean.d.ts +5 -0
  5. package/dist/cli/commands/clean.d.ts.map +1 -0
  6. package/dist/cli/commands/clean.js +30 -0
  7. package/dist/cli/commands/clean.js.map +1 -0
  8. package/dist/cli/commands/dev.d.ts.map +1 -1
  9. package/dist/cli/commands/dev.js +15 -1
  10. package/dist/cli/commands/dev.js.map +1 -1
  11. package/dist/cli/commands/generate.d.ts +6 -1
  12. package/dist/cli/commands/generate.d.ts.map +1 -1
  13. package/dist/cli/commands/generate.js +57 -2
  14. package/dist/cli/commands/generate.js.map +1 -1
  15. package/dist/cli/index.js +16 -2
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/cli/manifest.d.ts +1 -0
  18. package/dist/cli/manifest.d.ts.map +1 -1
  19. package/dist/cli/manifest.js +161 -23
  20. package/dist/cli/manifest.js.map +1 -1
  21. package/dist/config/config.d.ts.map +1 -1
  22. package/dist/config/config.js +9 -0
  23. package/dist/config/config.js.map +1 -1
  24. package/dist/config/types.d.ts +4 -0
  25. package/dist/config/types.d.ts.map +1 -1
  26. package/dist/cron/expressions.d.ts +45 -0
  27. package/dist/cron/expressions.d.ts.map +1 -0
  28. package/dist/cron/expressions.js +87 -0
  29. package/dist/cron/expressions.js.map +1 -0
  30. package/dist/cron/index.d.ts +6 -0
  31. package/dist/cron/index.d.ts.map +1 -0
  32. package/dist/cron/index.js +22 -0
  33. package/dist/cron/index.js.map +1 -0
  34. package/dist/cron/job.d.ts +50 -0
  35. package/dist/cron/job.d.ts.map +1 -0
  36. package/dist/cron/job.js +247 -0
  37. package/dist/cron/job.js.map +1 -0
  38. package/dist/cron/manager.d.ts +105 -0
  39. package/dist/cron/manager.d.ts.map +1 -0
  40. package/dist/cron/manager.js +245 -0
  41. package/dist/cron/manager.js.map +1 -0
  42. package/dist/cron/parser.d.ts +22 -0
  43. package/dist/cron/parser.d.ts.map +1 -0
  44. package/dist/cron/parser.js +269 -0
  45. package/dist/cron/parser.js.map +1 -0
  46. package/dist/cron/types.d.ts +76 -0
  47. package/dist/cron/types.d.ts.map +1 -0
  48. package/dist/cron/types.js +3 -0
  49. package/dist/cron/types.js.map +1 -0
  50. package/dist/decorators/constants.d.ts +2 -0
  51. package/dist/decorators/constants.d.ts.map +1 -1
  52. package/dist/decorators/constants.js +3 -1
  53. package/dist/decorators/constants.js.map +1 -1
  54. package/dist/decorators/core.d.ts +29 -11
  55. package/dist/decorators/core.d.ts.map +1 -1
  56. package/dist/decorators/core.js +49 -11
  57. package/dist/decorators/core.js.map +1 -1
  58. package/dist/decorators/cron.d.ts +57 -0
  59. package/dist/decorators/cron.d.ts.map +1 -0
  60. package/dist/decorators/cron.js +143 -0
  61. package/dist/decorators/cron.js.map +1 -0
  62. package/dist/decorators/index.d.ts +2 -0
  63. package/dist/decorators/index.d.ts.map +1 -1
  64. package/dist/decorators/index.js +2 -0
  65. package/dist/decorators/index.js.map +1 -1
  66. package/dist/decorators/params.d.ts +97 -2
  67. package/dist/decorators/params.d.ts.map +1 -1
  68. package/dist/decorators/params.js +94 -2
  69. package/dist/decorators/params.js.map +1 -1
  70. package/dist/decorators/routing.d.ts +81 -16
  71. package/dist/decorators/routing.d.ts.map +1 -1
  72. package/dist/decorators/routing.js +81 -16
  73. package/dist/decorators/routing.js.map +1 -1
  74. package/dist/docs/content/cron.mdx +196 -0
  75. package/dist/docs/content/errors.mdx +58 -9
  76. package/dist/docs/content/structure.mdx +1 -1
  77. package/dist/docs/content/swagger.mdx +289 -0
  78. package/dist/docs/reference/cron.mdx +300 -0
  79. package/dist/docs/reference/decorators.mdx +8 -0
  80. package/dist/docs/reference/error.mdx +44 -0
  81. package/dist/docs/reference/swagger.mdx +226 -0
  82. package/dist/docs/reference/validator.mdx +1 -1
  83. package/dist/router/boundary.d.ts +24 -2
  84. package/dist/router/boundary.d.ts.map +1 -1
  85. package/dist/router/boundary.js +24 -2
  86. package/dist/router/boundary.js.map +1 -1
  87. package/dist/router/controller-registrar.d.ts.map +1 -1
  88. package/dist/router/controller-registrar.js +52 -3
  89. package/dist/router/controller-registrar.js.map +1 -1
  90. package/dist/router/route-builder.d.ts +196 -33
  91. package/dist/router/route-builder.d.ts.map +1 -1
  92. package/dist/router/route-builder.js +171 -11
  93. package/dist/router/route-builder.js.map +1 -1
  94. package/dist/router/route-scanner.d.ts +6 -0
  95. package/dist/router/route-scanner.d.ts.map +1 -1
  96. package/dist/router/route-scanner.js +69 -812
  97. package/dist/router/route-scanner.js.map +1 -1
  98. package/dist/router/router.d.ts.map +1 -1
  99. package/dist/router/router.js +27 -0
  100. package/dist/router/router.js.map +1 -1
  101. package/dist/router/scanner/boundary-loader.d.ts +18 -0
  102. package/dist/router/scanner/boundary-loader.d.ts.map +1 -0
  103. package/dist/router/scanner/boundary-loader.js +539 -0
  104. package/dist/router/scanner/boundary-loader.js.map +1 -0
  105. package/dist/router/scanner/cron-mounter.d.ts +15 -0
  106. package/dist/router/scanner/cron-mounter.d.ts.map +1 -0
  107. package/dist/router/scanner/cron-mounter.js +216 -0
  108. package/dist/router/scanner/cron-mounter.js.map +1 -0
  109. package/dist/router/scanner/error-mounter.d.ts +14 -0
  110. package/dist/router/scanner/error-mounter.d.ts.map +1 -0
  111. package/dist/router/scanner/error-mounter.js +200 -0
  112. package/dist/router/scanner/error-mounter.js.map +1 -0
  113. package/dist/router/scanner/fs-scanner.d.ts +25 -0
  114. package/dist/router/scanner/fs-scanner.d.ts.map +1 -0
  115. package/dist/router/scanner/fs-scanner.js +115 -0
  116. package/dist/router/scanner/fs-scanner.js.map +1 -0
  117. package/dist/router/scanner/functional-compiler.d.ts +9 -0
  118. package/dist/router/scanner/functional-compiler.d.ts.map +1 -0
  119. package/dist/router/scanner/functional-compiler.js +233 -0
  120. package/dist/router/scanner/functional-compiler.js.map +1 -0
  121. package/dist/router/scanner/index.d.ts +9 -0
  122. package/dist/router/scanner/index.d.ts.map +1 -0
  123. package/dist/router/scanner/index.js +19 -0
  124. package/dist/router/scanner/index.js.map +1 -0
  125. package/dist/router/types.d.ts +15 -0
  126. package/dist/router/types.d.ts.map +1 -1
  127. package/dist/server/app.d.ts +2 -0
  128. package/dist/server/app.d.ts.map +1 -1
  129. package/dist/server/app.js +3 -0
  130. package/dist/server/app.js.map +1 -1
  131. package/dist/server/helpers/body-parser.d.ts +18 -0
  132. package/dist/server/helpers/body-parser.d.ts.map +1 -0
  133. package/dist/server/helpers/body-parser.js +246 -0
  134. package/dist/server/helpers/body-parser.js.map +1 -0
  135. package/dist/server/helpers/cookie.d.ts +4 -0
  136. package/dist/server/helpers/cookie.d.ts.map +1 -0
  137. package/dist/server/helpers/cookie.js +61 -0
  138. package/dist/server/helpers/cookie.js.map +1 -0
  139. package/dist/server/helpers/etag.d.ts +3 -0
  140. package/dist/server/helpers/etag.d.ts.map +1 -0
  141. package/dist/server/helpers/etag.js +25 -0
  142. package/dist/server/helpers/etag.js.map +1 -0
  143. package/dist/server/helpers/index.d.ts +6 -0
  144. package/dist/server/helpers/index.d.ts.map +1 -0
  145. package/dist/server/helpers/index.js +21 -0
  146. package/dist/server/helpers/index.js.map +1 -0
  147. package/dist/server/helpers/ip.d.ts +9 -0
  148. package/dist/server/helpers/ip.d.ts.map +1 -0
  149. package/dist/server/helpers/ip.js +62 -0
  150. package/dist/server/helpers/ip.js.map +1 -0
  151. package/dist/server/helpers/stream.d.ts +4 -0
  152. package/dist/server/helpers/stream.d.ts.map +1 -0
  153. package/dist/server/helpers/stream.js +193 -0
  154. package/dist/server/helpers/stream.js.map +1 -0
  155. package/dist/server/request.d.ts +1 -139
  156. package/dist/server/request.d.ts.map +1 -1
  157. package/dist/server/request.js +19 -433
  158. package/dist/server/request.js.map +1 -1
  159. package/dist/server/response.d.ts +105 -158
  160. package/dist/server/response.d.ts.map +1 -1
  161. package/dist/server/response.js +121 -423
  162. package/dist/server/response.js.map +1 -1
  163. package/dist/swagger/decorators.d.ts +81 -0
  164. package/dist/swagger/decorators.d.ts.map +1 -0
  165. package/dist/swagger/decorators.js +172 -0
  166. package/dist/swagger/decorators.js.map +1 -0
  167. package/dist/swagger/generator.d.ts +19 -0
  168. package/dist/swagger/generator.d.ts.map +1 -0
  169. package/dist/swagger/generator.js +344 -0
  170. package/dist/swagger/generator.js.map +1 -0
  171. package/dist/swagger/index.d.ts +31 -0
  172. package/dist/swagger/index.d.ts.map +1 -0
  173. package/dist/swagger/index.js +53 -0
  174. package/dist/swagger/index.js.map +1 -0
  175. package/dist/swagger/mounter.d.ts +7 -0
  176. package/dist/swagger/mounter.d.ts.map +1 -0
  177. package/dist/swagger/mounter.js +56 -0
  178. package/dist/swagger/mounter.js.map +1 -0
  179. package/dist/swagger/types.d.ts +190 -0
  180. package/dist/swagger/types.d.ts.map +1 -0
  181. package/dist/swagger/types.js +3 -0
  182. package/dist/swagger/types.js.map +1 -0
  183. package/dist/swagger/ui.d.ts +6 -0
  184. package/dist/swagger/ui.d.ts.map +1 -0
  185. package/dist/swagger/ui.js +118 -0
  186. package/dist/swagger/ui.js.map +1 -0
  187. package/dist/validator/builder.d.ts +223 -0
  188. package/dist/validator/builder.d.ts.map +1 -0
  189. package/dist/validator/builder.js +517 -0
  190. package/dist/validator/builder.js.map +1 -0
  191. package/dist/validator/engine.d.ts +19 -0
  192. package/dist/validator/engine.d.ts.map +1 -0
  193. package/dist/validator/engine.js +568 -0
  194. package/dist/validator/engine.js.map +1 -0
  195. package/dist/validator/error.d.ts +12 -0
  196. package/dist/validator/error.d.ts.map +1 -0
  197. package/dist/validator/error.js +63 -0
  198. package/dist/validator/error.js.map +1 -0
  199. package/dist/validator/pagination.d.ts +40 -0
  200. package/dist/validator/pagination.d.ts.map +1 -0
  201. package/dist/validator/pagination.js +60 -0
  202. package/dist/validator/pagination.js.map +1 -0
  203. package/dist/validator/tex.d.ts +6 -158
  204. package/dist/validator/tex.d.ts.map +1 -1
  205. package/dist/validator/tex.js +14 -971
  206. package/dist/validator/tex.js.map +1 -1
  207. package/dist/validator/types.d.ts +83 -0
  208. package/dist/validator/types.d.ts.map +1 -0
  209. package/dist/validator/types.js +3 -0
  210. package/dist/validator/types.js.map +1 -0
  211. package/package.json +9 -1
@@ -1,49 +1,15 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.ExisRequest = void 0;
37
4
  const errors_1 = require("../error/errors");
5
+ const rs_1 = require("@exisjs/rs");
6
+ const helpers_1 = require("./helpers");
38
7
  // eslint-disable-next-line @typescript-eslint/no-require-imports
39
8
  const accepts = require('accepts');
40
9
  // eslint-disable-next-line @typescript-eslint/no-require-imports
41
10
  const fresh = require('fresh');
42
11
  // eslint-disable-next-line @typescript-eslint/no-require-imports
43
12
  const qs = require('fast-querystring');
44
- // eslint-disable-next-line @typescript-eslint/no-require-imports
45
- const busboy = require('busboy');
46
- const rs_1 = require("@exisjs/rs");
47
13
  class ExisRequest {
48
14
  get file() {
49
15
  return this._file || this.files?.[0];
@@ -171,239 +137,63 @@ class ExisRequest {
171
137
  set cookies(val) {
172
138
  this._cookies = val;
173
139
  }
174
- /**
175
- * When "trust proxy" is set, trusted proxy addresses + client.
176
- *
177
- * For example if the value were "client, proxy1, proxy2"
178
- * you would receive the array `["client", "proxy1", "proxy2"]`
179
- * where "proxy2" is the furthest down-stream and "proxy1" and
180
- * "proxy2" were trusted.
181
- *
182
- * @return {string[]}
183
- * @public
184
- */
185
140
  get ips() {
186
141
  if (this._ips !== undefined)
187
142
  return this._ips;
188
- this._resolveIps();
143
+ const res = (0, helpers_1.resolveIps)(this.raw, this.trustProxy);
144
+ this._ips = res.ips;
145
+ this._ip = res.ip;
189
146
  return this._ips;
190
147
  }
191
- /**
192
- * Return the remote address from the trusted proxy.
193
- *
194
- * The is the remote address on the socket unless
195
- * "trust proxy" is set.
196
- *
197
- * @return {string}
198
- * @public
199
- */
200
148
  get ip() {
201
149
  if (this._ip !== undefined)
202
150
  return this._ip;
203
- this._resolveIps();
151
+ const res = (0, helpers_1.resolveIps)(this.raw, this.trustProxy);
152
+ this._ips = res.ips;
153
+ this._ip = res.ip;
204
154
  return this._ip;
205
155
  }
206
- _normalizeIp(ip) {
207
- if (ip.startsWith('::ffff:')) {
208
- return ip.substring(7);
209
- }
210
- if (ip === '::1') {
211
- return '127.0.0.1';
212
- }
213
- return ip;
214
- }
215
- _resolveIps() {
216
- const xForwardedFor = this.raw.headers['x-forwarded-for'];
217
- let ips = [];
218
- if (xForwardedFor) {
219
- const raw = Array.isArray(xForwardedFor)
220
- ? xForwardedFor.join(',')
221
- : xForwardedFor;
222
- ips = raw.split(',').map((ip) => this._normalizeIp(ip.trim()));
223
- }
224
- const rawRemote = this.raw.socket?.remoteAddress ?? '127.0.0.1';
225
- const remoteAddress = this._normalizeIp(rawRemote);
226
- if (this.trustProxy) {
227
- let trustedIps = ips;
228
- if (typeof this.trustProxy === 'number' && this.trustProxy > 0) {
229
- trustedIps = ips.slice(-(this.trustProxy + 1));
230
- }
231
- this._ips = trustedIps;
232
- this._ip = trustedIps.length > 0 ? trustedIps[0] : remoteAddress;
233
- }
234
- else {
235
- this._ips = [];
236
- this._ip = remoteAddress;
237
- }
238
- }
239
156
  get protocol() {
240
157
  if (this._protocol !== undefined)
241
158
  return this._protocol;
242
- const connection = this.raw.socket;
243
- const isTls = connection?.encrypted || false;
244
- let protocol = isTls ? 'https' : 'http';
245
- const xForwardedProto = this.raw.headers['x-forwarded-proto'];
246
- if (this.trustProxy && xForwardedProto) {
247
- const rawProto = Array.isArray(xForwardedProto)
248
- ? xForwardedProto.join(',')
249
- : xForwardedProto;
250
- protocol = rawProto.split(',')[0].trim();
251
- }
252
- this._protocol = protocol;
159
+ this._protocol = (0, helpers_1.resolveProtocol)(this.raw, this.trustProxy);
253
160
  return this._protocol;
254
161
  }
255
162
  get secure() {
256
163
  return this.protocol === 'https';
257
164
  }
258
- /**
259
- * Parse the "Host" header field to a hostname.
260
- *
261
- * When the "trust proxy" setting trusts the socket
262
- * address, the "X-Forwarded-Host" header field will
263
- * be trusted.
264
- *
265
- * @return {string}
266
- * @public
267
- */
268
165
  get hostname() {
269
166
  if (this._hostname !== undefined)
270
167
  return this._hostname;
271
- let host = this.raw.headers['x-forwarded-host'];
272
- if (!host || !this.trustProxy) {
273
- host = this.raw.headers.host || '';
274
- }
275
- if (Array.isArray(host))
276
- host = host[0];
277
- // IPv6 can have colons, so look for port after bracket or last colon
278
- const offset = host[0] === '[' ? host.indexOf(']') + 1 : 0;
279
- const index = host.indexOf(':', offset);
280
- this._hostname = index !== -1 ? host.substring(0, index) : host;
168
+ this._hostname = (0, helpers_1.resolveHostname)(this.raw, this.trustProxy);
281
169
  return this._hostname;
282
170
  }
283
- /**
284
- * The original URL requested by the client.
285
- *
286
- * @return {string}
287
- * @public
288
- */
289
171
  get originalUrl() {
290
172
  return this._urlStr;
291
173
  }
292
- /**
293
- * Return request header.
294
- *
295
- * The `Referrer` header field is special-cased,
296
- * both `Referrer` and `Referer` are interchangeable.
297
- *
298
- * Examples:
299
- *
300
- * req.get('Content-Type');
301
- * // => "text/plain"
302
- *
303
- * req.get('content-type');
304
- * // => "text/plain"
305
- *
306
- * req.get('Something');
307
- * // => undefined
308
- *
309
- * Aliased as `req.header()`.
310
- *
311
- * @param {string} header
312
- * @return {string | undefined}
313
- * @public
314
- */
315
174
  get(header) {
316
175
  const val = this.raw.headers[header.toLowerCase()];
317
176
  if (Array.isArray(val))
318
177
  return val[0];
319
178
  return val;
320
179
  }
321
- /**
322
- * Return request header.
323
- *
324
- * Alias for `req.get()`.
325
- *
326
- * @param {string} name
327
- * @return {string | undefined}
328
- * @public
329
- */
330
180
  header(name) {
331
181
  return this.get(name);
332
182
  }
333
- /**
334
- * Check if the incoming request contains the "Content-Type"
335
- * header field, and it contains the given mime `type`.
336
- *
337
- * Examples:
338
- *
339
- * // With Content-Type: text/html; charset=utf-8
340
- * req.is('html');
341
- * req.is('text/html');
342
- * req.is('text/*');
343
- * // => true
344
- *
345
- * // When Content-Type is application/json
346
- * req.is('json');
347
- * req.is('application/json');
348
- * req.is('application/*');
349
- * // => true
350
- *
351
- * req.is('html');
352
- * // => false
353
- *
354
- * @param {string} contentType
355
- * @return {boolean}
356
- * @public
357
- */
358
183
  is(contentType) {
359
184
  const header = this.get('content-type');
360
185
  if (!header)
361
186
  return false;
362
187
  return header.includes(contentType);
363
188
  }
364
- /**
365
- * Check if the given `type(s)` is acceptable, returning
366
- * the best match when true, otherwise `false`, in which
367
- * case you should respond with 406 "Not Acceptable".
368
- *
369
- * Examples:
370
- *
371
- * // Accept: text/html
372
- * req.accepts('html');
373
- * // => "html"
374
- *
375
- * // Accept: text/*, application/json
376
- * req.accepts('html');
377
- * // => "html"
378
- *
379
- * @param {string[]} types
380
- * @return {string | string[] | false}
381
- * @public
382
- */
383
189
  accepts(...types) {
384
190
  const accept = accepts(this.raw);
385
191
  return accept.types(...types);
386
192
  }
387
- /**
388
- * Check if the given `lang`s are acceptable,
389
- * otherwise you should respond with 406 "Not Acceptable".
390
- *
391
- * @param {string[]} languages
392
- * @return {string | string[] | false}
393
- * @public
394
- */
395
193
  acceptsLanguages(...languages) {
396
194
  const accept = accepts(this.raw);
397
195
  return accept.languages(...languages);
398
196
  }
399
- /**
400
- * Check if the request is fresh, aka
401
- * Last-Modified or the ETag
402
- * still match.
403
- *
404
- * @return {boolean}
405
- * @public
406
- */
407
197
  get fresh() {
408
198
  const method = this.method;
409
199
  const s = this.res.statusCode;
@@ -417,14 +207,6 @@ class ExisRequest {
417
207
  }
418
208
  return false;
419
209
  }
420
- /**
421
- * Check if the request is stale, aka
422
- * "Last-Modified" and / or the "ETag" for the
423
- * resource has changed.
424
- *
425
- * @return {boolean}
426
- * @public
427
- */
428
210
  get stale() {
429
211
  return !this.fresh;
430
212
  }
@@ -467,86 +249,9 @@ class ExisRequest {
467
249
  if (!contentType.includes('boundary=')) {
468
250
  throw errors_1.HttpError.badRequest('Missing multipart boundary. Ensure you are not manually setting the Content-Type header in your client (e.g. Axios) so that the browser can auto-attach the boundary string.');
469
251
  }
470
- return new Promise((resolve, reject) => {
471
- const fields = {};
472
- try {
473
- const bb = busboy({
474
- headers: this.raw.headers,
475
- limits: { fileSize: this.bodyLimit },
476
- });
477
- const cleanup = () => {
478
- this.raw.removeListener('close', onRawClose);
479
- this.raw.removeListener('aborted', onRawClose);
480
- };
481
- const onRawClose = () => {
482
- const isComplete = Boolean(this.raw.complete || this.raw.readableEnded);
483
- if (!isComplete) {
484
- try {
485
- ;
486
- bb.destroy?.();
487
- }
488
- catch {
489
- /* noop */
490
- }
491
- cleanup();
492
- reject(errors_1.HttpError.badRequest('Client disconnected prematurely during multipart upload'));
493
- }
494
- };
495
- this.raw.once('close', onRawClose);
496
- this.raw.once('aborted', onRawClose);
497
- bb.on('field', (name, val) => {
498
- fields[name] = val;
499
- });
500
- bb.on('file', (name, fileStream, info) => {
501
- const chunks = [];
502
- let size = 0;
503
- fileStream.on('data', (data) => {
504
- chunks.push(data);
505
- size += data.length;
506
- });
507
- fileStream.on('end', () => {
508
- const data = Buffer.concat(chunks);
509
- const filename = info.filename || 'unknown';
510
- this.files.push({
511
- fieldname: name,
512
- filename: filename,
513
- mimetype: info.mimeType || 'application/octet-stream',
514
- data,
515
- size,
516
- saveToDisk: async (destDir) => {
517
- const fs = await Promise.resolve().then(() => __importStar(require('node:fs/promises')));
518
- const path = await Promise.resolve().then(() => __importStar(require('node:path')));
519
- // Create dir if not exists
520
- await fs.mkdir(destDir, { recursive: true });
521
- // Generate unique filename
522
- const ext = path.extname(filename);
523
- const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9);
524
- const finalName = `${name}-${uniqueSuffix}${ext}`;
525
- const destPath = path.join(destDir, finalName);
526
- await fs.writeFile(destPath, data);
527
- return destPath;
528
- },
529
- });
530
- });
531
- });
532
- bb.on('finish', () => {
533
- cleanup();
534
- this.body = fields;
535
- resolve({
536
- fields,
537
- files: this.files,
538
- });
539
- });
540
- bb.on('error', (err) => {
541
- cleanup();
542
- reject(err);
543
- });
544
- this.raw.pipe(bb);
545
- }
546
- catch (err) {
547
- reject(errors_1.HttpError.badRequest(err.message || 'Failed to parse multipart data'));
548
- }
549
- });
252
+ const res = await (0, helpers_1.parseMultipartFormData)(this.raw, this.bodyLimit, this.files);
253
+ this.body = res.fields;
254
+ return res;
550
255
  }
551
256
  throw errors_1.HttpError.badRequest('Unsupported form data type');
552
257
  }
@@ -583,79 +288,10 @@ class ExisRequest {
583
288
  }
584
289
  async _parseBody() {
585
290
  const contentType = this.get('content-type') ?? '';
586
- if (['GET', 'HEAD', 'OPTIONS'].includes(this.method) ||
587
- contentType.includes('multipart/form-data')) {
588
- return;
291
+ const bodyStr = await (0, helpers_1.parseRawBody)(this.raw, this.bodyLimit, contentType, this.method);
292
+ if (bodyStr !== undefined) {
293
+ this.rawBody = bodyStr;
589
294
  }
590
- if (typeof this.raw.readBody === 'function') {
591
- const buf = await this.raw.readBody(this.bodyLimit);
592
- if (buf) {
593
- this.rawBody = buf.toString('utf8');
594
- }
595
- else {
596
- this.rawBody = '';
597
- }
598
- return;
599
- }
600
- return new Promise((resolve, reject) => {
601
- let settled = false;
602
- const chunks = [];
603
- let size = 0;
604
- const onData = (chunk) => {
605
- if (settled)
606
- return;
607
- size += chunk.length;
608
- if (size > this.bodyLimit) {
609
- this.raw.destroy?.();
610
- done(errors_1.HttpError.payloadTooLarge(`Request body exceeds limit of ${this.bodyLimit} bytes. Configure 'bodyLimit' in 'exis.config.ts' to allow larger payloads.`));
611
- return;
612
- }
613
- chunks.push(chunk);
614
- };
615
- const onError = (err) => done(err);
616
- const onAborted = () => done(new Error('Request aborted by client'));
617
- const onClose = () => {
618
- const isComplete = Boolean(this.raw.complete || this.raw.readableEnded);
619
- if (!settled && !isComplete)
620
- done(new Error('Request closed prematurely'));
621
- };
622
- const onEnd = () => {
623
- if (settled)
624
- return;
625
- this.rawBody = Buffer.concat(chunks).toString('utf8');
626
- done();
627
- };
628
- const cleanup = () => {
629
- this.raw.removeListener('data', onData);
630
- this.raw.removeListener('error', onError);
631
- this.raw.removeListener('aborted', onAborted);
632
- this.raw.removeListener('close', onClose);
633
- this.raw.removeListener('end', onEnd);
634
- };
635
- const done = (err) => {
636
- if (settled)
637
- return;
638
- settled = true;
639
- cleanup();
640
- if (err)
641
- reject(err);
642
- else
643
- resolve();
644
- };
645
- const contentLengthStr = this.get('content-length');
646
- if (contentLengthStr) {
647
- const contentLength = parseInt(contentLengthStr, 10);
648
- if (!isNaN(contentLength) && contentLength > this.bodyLimit) {
649
- done(errors_1.HttpError.payloadTooLarge(`Request body exceeds limit of ${this.bodyLimit} bytes. Configure 'bodyLimit' in 'exis.config.ts' to allow larger payloads.`));
650
- return;
651
- }
652
- }
653
- this.raw.on('data', onData);
654
- this.raw.on('error', onError);
655
- this.raw.on('aborted', onAborted);
656
- this.raw.on('close', onClose);
657
- this.raw.on('end', onEnd);
658
- });
659
295
  }
660
296
  async streamUpload(destDir) {
661
297
  const contentType = this.get('content-type') ?? '';
@@ -665,59 +301,9 @@ class ExisRequest {
665
301
  if (!contentType.includes('boundary=')) {
666
302
  throw errors_1.HttpError.badRequest('Missing multipart boundary.');
667
303
  }
668
- const fs = await Promise.resolve().then(() => __importStar(require('node:fs')));
669
- const path = await Promise.resolve().then(() => __importStar(require('node:path')));
670
- await fs.promises.mkdir(destDir, { recursive: true });
671
- return new Promise((resolve, reject) => {
672
- const fields = {};
673
- const streamedFiles = [];
674
- try {
675
- const bb = busboy({ headers: this.raw.headers });
676
- bb.on('field', (name, val) => {
677
- fields[name] = val;
678
- });
679
- bb.on('file', (name, fileStream, info) => {
680
- const filename = info.filename || 'unknown';
681
- const ext = path.extname(filename);
682
- const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9);
683
- const finalName = `${name}-${uniqueSuffix}${ext}`;
684
- const destPath = path.join(destDir, finalName);
685
- const writeStream = fs.createWriteStream(destPath);
686
- let size = 0;
687
- fileStream.on('data', (data) => {
688
- size += data.length;
689
- });
690
- fileStream.pipe(writeStream);
691
- fileStream.on('end', () => {
692
- streamedFiles.push({
693
- fieldname: name,
694
- filename,
695
- mimetype: info.mimeType || 'application/octet-stream',
696
- destPath,
697
- size,
698
- });
699
- });
700
- });
701
- bb.on('finish', () => {
702
- this.body = (0, rs_1.stripPrototype)(fields);
703
- resolve({
704
- fields: this.body,
705
- files: streamedFiles,
706
- });
707
- });
708
- bb.on('error', reject);
709
- if (typeof this.raw.pipe === 'function') {
710
- this.raw.pipe(bb);
711
- }
712
- else {
713
- this.raw.on('data', (chunk) => bb.write(chunk));
714
- this.raw.on('end', () => bb.end());
715
- }
716
- }
717
- catch (err) {
718
- reject(errors_1.HttpError.badRequest(err.message || 'Failed to stream multipart data'));
719
- }
720
- });
304
+ const res = await (0, helpers_1.streamMultipartUpload)(this.raw, destDir);
305
+ this.body = res.fields;
306
+ return res;
721
307
  }
722
308
  }
723
309
  exports.ExisRequest = ExisRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/server/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/server/request.ts"],"names":[],"mappings":"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"}