exisjs 0.7.2 → 0.7.4

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 (172) hide show
  1. package/dist/cli/commands/build.d.ts.map +1 -1
  2. package/dist/cli/commands/build.js +3 -0
  3. package/dist/cli/commands/build.js.map +1 -1
  4. package/dist/cli/commands/doctor.d.ts +2 -0
  5. package/dist/cli/commands/doctor.d.ts.map +1 -0
  6. package/dist/cli/commands/doctor.js +258 -0
  7. package/dist/cli/commands/doctor.js.map +1 -0
  8. package/dist/cli/commands/generate.d.ts +11 -1
  9. package/dist/cli/commands/generate.d.ts.map +1 -1
  10. package/dist/cli/commands/generate.js +244 -24
  11. package/dist/cli/commands/generate.js.map +1 -1
  12. package/dist/cli/index.js +23 -5
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/cli/manifest.d.ts.map +1 -1
  15. package/dist/cli/manifest.js +3 -1
  16. package/dist/cli/manifest.js.map +1 -1
  17. package/dist/cli/resolve-aliases.d.ts.map +1 -1
  18. package/dist/cli/resolve-aliases.js +37 -31
  19. package/dist/cli/resolve-aliases.js.map +1 -1
  20. package/dist/cli/routes.d.ts +8 -1
  21. package/dist/cli/routes.d.ts.map +1 -1
  22. package/dist/cli/routes.js +96 -47
  23. package/dist/cli/routes.js.map +1 -1
  24. package/dist/config/config.d.ts +2 -1
  25. package/dist/config/config.d.ts.map +1 -1
  26. package/dist/config/config.js +2 -1
  27. package/dist/config/config.js.map +1 -1
  28. package/dist/config/index.d.ts +1 -0
  29. package/dist/config/index.d.ts.map +1 -1
  30. package/dist/config/index.js +6 -1
  31. package/dist/config/index.js.map +1 -1
  32. package/dist/config/types.d.ts +4 -1
  33. package/dist/config/types.d.ts.map +1 -1
  34. package/dist/database/index.d.ts +4 -0
  35. package/dist/database/index.d.ts.map +1 -0
  36. package/dist/database/index.js +20 -0
  37. package/dist/database/index.js.map +1 -0
  38. package/dist/database/lifecycle.d.ts +52 -0
  39. package/dist/database/lifecycle.d.ts.map +1 -0
  40. package/dist/database/lifecycle.js +122 -0
  41. package/dist/database/lifecycle.js.map +1 -0
  42. package/dist/database/mongoose.d.ts +47 -0
  43. package/dist/database/mongoose.d.ts.map +1 -0
  44. package/dist/database/mongoose.js +44 -0
  45. package/dist/database/mongoose.js.map +1 -0
  46. package/dist/database/transaction.d.ts +39 -0
  47. package/dist/database/transaction.d.ts.map +1 -0
  48. package/dist/database/transaction.js +99 -0
  49. package/dist/database/transaction.js.map +1 -0
  50. package/dist/decorators/index.d.ts +1 -0
  51. package/dist/decorators/index.d.ts.map +1 -1
  52. package/dist/decorators/index.js +1 -0
  53. package/dist/decorators/index.js.map +1 -1
  54. package/dist/decorators/middleware.d.ts +10 -0
  55. package/dist/decorators/middleware.d.ts.map +1 -1
  56. package/dist/decorators/middleware.js +27 -0
  57. package/dist/decorators/middleware.js.map +1 -1
  58. package/dist/decorators/upload.d.ts +37 -0
  59. package/dist/decorators/upload.d.ts.map +1 -0
  60. package/dist/decorators/upload.js +78 -0
  61. package/dist/decorators/upload.js.map +1 -0
  62. package/dist/docs/content/cli/commands.mdx +39 -5
  63. package/dist/docs/content/cli/overview.mdx +1 -0
  64. package/dist/docs/content/config.mdx +9 -2
  65. package/dist/docs/content/errors.mdx +57 -23
  66. package/dist/docs/content/middleware.mdx +138 -0
  67. package/dist/docs/content/providers.mdx +89 -0
  68. package/dist/docs/content/requests.mdx +153 -64
  69. package/dist/docs/content/responses.mdx +162 -1
  70. package/dist/docs/content/routing.mdx +137 -15
  71. package/dist/docs/content/security.mdx +6 -1
  72. package/dist/docs/content/structure.mdx +12 -6
  73. package/dist/docs/content/validation.mdx +92 -7
  74. package/dist/docs/reference/database.mdx +152 -0
  75. package/dist/docs/reference/decorators.mdx +4 -0
  76. package/dist/docs/reference/error.mdx +3 -1
  77. package/dist/docs/reference/middleware.mdx +84 -2
  78. package/dist/docs/reference/router.mdx +4 -2
  79. package/dist/docs/reference/validator.mdx +43 -5
  80. package/dist/error/errors.d.ts +10 -0
  81. package/dist/error/errors.d.ts.map +1 -1
  82. package/dist/error/errors.js +156 -25
  83. package/dist/error/errors.js.map +1 -1
  84. package/dist/error/index.d.ts +1 -1
  85. package/dist/error/index.d.ts.map +1 -1
  86. package/dist/error/index.js +3 -1
  87. package/dist/error/index.js.map +1 -1
  88. package/dist/middleware/compression.d.ts.map +1 -1
  89. package/dist/middleware/compression.js +20 -5
  90. package/dist/middleware/compression.js.map +1 -1
  91. package/dist/middleware/index.d.ts +2 -0
  92. package/dist/middleware/index.d.ts.map +1 -0
  93. package/dist/middleware/index.js +18 -0
  94. package/dist/middleware/index.js.map +1 -0
  95. package/dist/middleware/middleware.d.ts +16 -0
  96. package/dist/middleware/middleware.d.ts.map +1 -1
  97. package/dist/middleware/middleware.js +134 -48
  98. package/dist/middleware/middleware.js.map +1 -1
  99. package/dist/middleware/security.d.ts +13 -3
  100. package/dist/middleware/security.d.ts.map +1 -1
  101. package/dist/middleware/security.js +154 -25
  102. package/dist/middleware/security.js.map +1 -1
  103. package/dist/middleware/upload.d.ts +82 -0
  104. package/dist/middleware/upload.d.ts.map +1 -0
  105. package/dist/middleware/upload.js +387 -0
  106. package/dist/middleware/upload.js.map +1 -0
  107. package/dist/router/index.d.ts +5 -1
  108. package/dist/router/index.d.ts.map +1 -1
  109. package/dist/router/index.js +10 -1
  110. package/dist/router/index.js.map +1 -1
  111. package/dist/router/route-builder.d.ts +11 -2
  112. package/dist/router/route-builder.d.ts.map +1 -1
  113. package/dist/router/route-builder.js.map +1 -1
  114. package/dist/router/route-scanner.d.ts.map +1 -1
  115. package/dist/router/route-scanner.js +42 -3
  116. package/dist/router/route-scanner.js.map +1 -1
  117. package/dist/router/router.d.ts.map +1 -1
  118. package/dist/router/router.js +67 -4
  119. package/dist/router/router.js.map +1 -1
  120. package/dist/router/types.d.ts +30 -0
  121. package/dist/router/types.d.ts.map +1 -1
  122. package/dist/sanitize/index.d.ts +9 -9
  123. package/dist/sanitize/index.d.ts.map +1 -1
  124. package/dist/sanitize/index.js +19 -10
  125. package/dist/sanitize/index.js.map +1 -1
  126. package/dist/sanitize/sanitize.d.ts +11 -11
  127. package/dist/sanitize/sanitize.d.ts.map +1 -1
  128. package/dist/sanitize/sanitize.js +22 -13
  129. package/dist/sanitize/sanitize.js.map +1 -1
  130. package/dist/server/app.d.ts.map +1 -1
  131. package/dist/server/app.js +18 -0
  132. package/dist/server/app.js.map +1 -1
  133. package/dist/server/request.d.ts +5 -0
  134. package/dist/server/request.d.ts.map +1 -1
  135. package/dist/server/request.js +32 -4
  136. package/dist/server/request.js.map +1 -1
  137. package/dist/server/response.d.ts +27 -0
  138. package/dist/server/response.d.ts.map +1 -1
  139. package/dist/server/response.js +109 -4
  140. package/dist/server/response.js.map +1 -1
  141. package/dist/server/sse.d.ts +82 -0
  142. package/dist/server/sse.d.ts.map +1 -0
  143. package/dist/server/sse.js +216 -0
  144. package/dist/server/sse.js.map +1 -0
  145. package/dist/testing/client.d.ts.map +1 -1
  146. package/dist/testing/client.js +33 -5
  147. package/dist/testing/client.js.map +1 -1
  148. package/dist/testing/index.d.ts +1 -1
  149. package/dist/testing/index.d.ts.map +1 -1
  150. package/dist/testing/index.js +2 -1
  151. package/dist/testing/index.js.map +1 -1
  152. package/dist/testing/mocks.d.ts +3 -1
  153. package/dist/testing/mocks.d.ts.map +1 -1
  154. package/dist/testing/mocks.js +7 -1
  155. package/dist/testing/mocks.js.map +1 -1
  156. package/dist/types.d.ts +1 -0
  157. package/dist/types.d.ts.map +1 -1
  158. package/dist/types.js +1 -0
  159. package/dist/types.js.map +1 -1
  160. package/dist/validator/index.d.ts +3 -1
  161. package/dist/validator/index.d.ts.map +1 -1
  162. package/dist/validator/index.js +3 -1
  163. package/dist/validator/index.js.map +1 -1
  164. package/dist/validator/tex-types.d.ts +7 -3
  165. package/dist/validator/tex-types.d.ts.map +1 -1
  166. package/dist/validator/tex-types.js +4 -0
  167. package/dist/validator/tex-types.js.map +1 -1
  168. package/dist/validator/tex.d.ts +38 -0
  169. package/dist/validator/tex.d.ts.map +1 -1
  170. package/dist/validator/tex.js +126 -16
  171. package/dist/validator/tex.js.map +1 -1
  172. package/package.json +5 -1
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.catchError = exports.intercept = exports.ipFilter = exports.backpressure = exports.dedupe = exports.rateLimit = exports.dbSanitize = exports.mongoSanitize = exports.hpp = exports.timeout = exports.csrf = exports.helmet = exports.compress = exports.notFound = void 0;
17
+ exports.fromExpress = exports.fileUpload = exports.catchError = exports.intercept = exports.ipFilter = exports.backpressure = exports.dedupe = exports.rateLimit = exports.dbSanitize = exports.mongoSanitize = exports.hpp = exports.timeout = exports.csrf = exports.helmet = exports.compress = exports.notFound = void 0;
18
18
  exports.cors = cors;
19
19
  exports.requestId = requestId;
20
20
  exports.requestLogger = requestLogger;
@@ -35,63 +35,100 @@ function cors(config = {}) {
35
35
  return (req, res, next) => {
36
36
  const reqOrigin = req.get('origin');
37
37
  // 1. Resolve Origin
38
- let allowOrigin = '';
39
- if (origin === '*') {
40
- allowOrigin = '*';
41
- }
42
- else if (typeof origin === 'string') {
43
- allowOrigin = origin;
44
- }
45
- else if (reqOrigin) {
46
- if (Array.isArray(origin)) {
47
- allowOrigin = origin.some((o) => o instanceof RegExp ? o.test(reqOrigin) : o === reqOrigin)
48
- ? reqOrigin
49
- : '';
38
+ const applyOriginAndProceed = (allowOrigin) => {
39
+ if (allowOrigin) {
40
+ res.set('Access-Control-Allow-Origin', allowOrigin);
50
41
  }
51
- else if (origin instanceof RegExp) {
52
- allowOrigin = origin.test(reqOrigin) ? reqOrigin : '';
42
+ // 2. Credentials
43
+ if (credentials) {
44
+ res.set('Access-Control-Allow-Credentials', 'true');
53
45
  }
54
- else if (typeof origin === 'function') {
55
- allowOrigin = origin(reqOrigin) ? reqOrigin : '';
46
+ // 3. Exposed Headers
47
+ if (exposedHeaders && exposedHeaders.length > 0) {
48
+ res.set('Access-Control-Expose-Headers', exposedHeaders.join(', '));
56
49
  }
50
+ // 4. Preflight (OPTIONS)
51
+ if (req.method === 'OPTIONS') {
52
+ res.set('Access-Control-Allow-Methods', methods.join(', '));
53
+ const reqHeaders = req.get('access-control-request-headers');
54
+ if (reqHeaders) {
55
+ res.set('Access-Control-Allow-Headers', reqHeaders);
56
+ }
57
+ else if (allowedHeaders && allowedHeaders.length > 0) {
58
+ res.set('Access-Control-Allow-Headers', allowedHeaders.join(', '));
59
+ }
60
+ if (maxAge) {
61
+ res.set('Access-Control-Max-Age', String(maxAge));
62
+ }
63
+ if (!allowOrigin && reqOrigin) {
64
+ if (req.log && typeof req.log.warn === 'function') {
65
+ req.log.warn({ origin: reqOrigin }, `[CORS] Rejected preflight request from origin '${reqOrigin}' (not in allowed origins)`);
66
+ }
67
+ }
68
+ if (config.preflightContinue) {
69
+ next();
70
+ return;
71
+ }
72
+ res.status(204).send('');
73
+ return;
74
+ }
75
+ next();
76
+ };
77
+ if (origin === '*' || !origin) {
78
+ applyOriginAndProceed(origin === '*' ? '*' : '');
79
+ return;
57
80
  }
58
- if (allowOrigin) {
59
- res.set('Access-Control-Allow-Origin', allowOrigin);
81
+ if (typeof origin === 'string') {
82
+ applyOriginAndProceed(origin);
83
+ return;
60
84
  }
61
- // 2. Credentials
62
- if (credentials) {
63
- res.set('Access-Control-Allow-Credentials', 'true');
85
+ if (!reqOrigin) {
86
+ applyOriginAndProceed('');
87
+ return;
64
88
  }
65
- // 3. Exposed Headers
66
- if (exposedHeaders && exposedHeaders.length > 0) {
67
- res.set('Access-Control-Expose-Headers', exposedHeaders.join(', '));
89
+ if (Array.isArray(origin)) {
90
+ const matched = origin.some((o) => o instanceof RegExp ? o.test(reqOrigin) : o === reqOrigin);
91
+ applyOriginAndProceed(matched ? reqOrigin : '');
92
+ return;
68
93
  }
69
- // 4. Preflight (OPTIONS)
70
- if (req.method === 'OPTIONS') {
71
- res.set('Access-Control-Allow-Methods', methods.join(', '));
72
- const reqHeaders = req.get('access-control-request-headers');
73
- if (reqHeaders) {
74
- res.set('Access-Control-Allow-Headers', reqHeaders);
75
- }
76
- else if (allowedHeaders && allowedHeaders.length > 0) {
77
- res.set('Access-Control-Allow-Headers', allowedHeaders.join(', '));
78
- }
79
- if (maxAge) {
80
- res.set('Access-Control-Max-Age', String(maxAge));
94
+ if (origin instanceof RegExp) {
95
+ applyOriginAndProceed(origin.test(reqOrigin) ? reqOrigin : '');
96
+ return;
97
+ }
98
+ if (typeof origin === 'function') {
99
+ // Check if function accepts a callback (origin, callback)
100
+ if (origin.length >= 2) {
101
+ try {
102
+ origin(reqOrigin, (err, allow) => {
103
+ if (err)
104
+ return next(err);
105
+ applyOriginAndProceed(allow ? reqOrigin : '');
106
+ });
107
+ }
108
+ catch (err) {
109
+ next(err);
110
+ }
111
+ return;
81
112
  }
82
- if (!allowOrigin && reqOrigin) {
83
- if (req.log && typeof req.log.warn === 'function') {
84
- req.log.warn({ origin: reqOrigin }, `[CORS] Rejected preflight request from origin '${reqOrigin}' (not in allowed origins)`);
113
+ try {
114
+ const result = origin(reqOrigin);
115
+ if (result && typeof result.then === 'function') {
116
+ ;
117
+ result
118
+ .then((allow) => applyOriginAndProceed(allow ? reqOrigin : ''))
119
+ .catch(next);
120
+ return;
85
121
  }
122
+ applyOriginAndProceed(result ? reqOrigin : '');
123
+ return;
86
124
  }
87
- if (config.preflightContinue) {
88
- next();
125
+ catch (err) {
126
+ next(err);
89
127
  return;
90
128
  }
91
- res.status(204).send('');
92
- return;
93
129
  }
94
- next();
130
+ applyOriginAndProceed('');
131
+ return;
95
132
  };
96
133
  }
97
134
  // ─── Request ID ───────────────────────────────────────────────────────────────
@@ -141,7 +178,13 @@ function requestLogger(loggerOrConfig = {}) {
141
178
  // Use _onFinish to capture response timing without deoptimizing V8 hidden classes
142
179
  res._onFinish.push(() => {
143
180
  const responseTime = Date.now() - start;
144
- const logData = { statusCode: res.statusCode, responseTime };
181
+ const logData = {
182
+ statusCode: res.statusCode,
183
+ responseTime,
184
+ };
185
+ if (req._validationError) {
186
+ logData.validation = req._validationError;
187
+ }
145
188
  // Use child if already created, otherwise use parent with inline context
146
189
  const logger = _childLog || parentLog;
147
190
  if (res.statusCode >= 500) {
@@ -196,6 +239,9 @@ var interceptor_1 = require("./interceptor");
196
239
  Object.defineProperty(exports, "intercept", { enumerable: true, get: function () { return interceptor_1.intercept; } });
197
240
  var exception_filter_1 = require("./exception-filter");
198
241
  Object.defineProperty(exports, "catchError", { enumerable: true, get: function () { return exception_filter_1.catchError; } });
242
+ var upload_1 = require("./upload");
243
+ Object.defineProperty(exports, "fileUpload", { enumerable: true, get: function () { return upload_1.fileUpload; } });
244
+ Object.defineProperty(exports, "fromExpress", { enumerable: true, get: function () { return upload_1.fromExpress; } });
199
245
  __exportStar(require("./guard"), exports);
200
246
  __exportStar(require("./pipe"), exports);
201
247
  function serveStatic(root, options = {}) {
@@ -233,7 +279,23 @@ function serveStatic(root, options = {}) {
233
279
  if (!filePath.startsWith(rootPath)) {
234
280
  return next();
235
281
  }
236
- fs.stat(filePath, (err, stat) => {
282
+ const acceptEncoding = req.headers['accept-encoding'] || '';
283
+ // Check for pre-compressed Brotli or Gzip static file if supported
284
+ let targetPath = filePath;
285
+ let contentEncoding = null;
286
+ if (options.brotli !== false &&
287
+ acceptEncoding.includes('br') &&
288
+ fs.existsSync(filePath + '.br')) {
289
+ targetPath = filePath + '.br';
290
+ contentEncoding = 'br';
291
+ }
292
+ else if (options.gzip !== false &&
293
+ acceptEncoding.includes('gzip') &&
294
+ fs.existsSync(filePath + '.gz')) {
295
+ targetPath = filePath + '.gz';
296
+ contentEncoding = 'gzip';
297
+ }
298
+ fs.stat(targetPath, (err, stat) => {
237
299
  if (err || !stat.isFile()) {
238
300
  return next();
239
301
  }
@@ -241,14 +303,27 @@ function serveStatic(root, options = {}) {
241
303
  const mime = mimeTypes[ext] || 'application/octet-stream';
242
304
  res.set('Content-Type', mime);
243
305
  res.set('Content-Length', String(stat.size));
306
+ if (contentEncoding) {
307
+ res.set('Content-Encoding', contentEncoding);
308
+ res.set('Vary', 'Accept-Encoding');
309
+ }
244
310
  if (options.maxAge !== undefined) {
245
311
  res.set('Cache-Control', `public, max-age=${options.maxAge}`);
246
312
  }
313
+ if (options.etag !== false) {
314
+ // Strong ETag based on mtime and size
315
+ const etag = `"${stat.size.toString(16)}-${stat.mtime.getTime().toString(16)}"`;
316
+ res.set('ETag', etag);
317
+ if (req.headers['if-none-match'] === etag) {
318
+ res.status(304).send('');
319
+ return;
320
+ }
321
+ }
247
322
  if (req.method === 'HEAD') {
248
323
  res.status(200).send('');
249
324
  return;
250
325
  }
251
- const sendStream = fs.createReadStream(filePath);
326
+ const sendStream = fs.createReadStream(targetPath);
252
327
  const abortHandler = () => sendStream.destroy();
253
328
  req.raw.on('aborted', abortHandler);
254
329
  req.raw.on('close', abortHandler);
@@ -301,4 +376,15 @@ function conditionalGet() {
301
376
  };
302
377
  }
303
378
  __exportStar(require("./idempotency"), exports);
379
+ __exportStar(require("./upload"), exports);
380
+ __exportStar(require("./security"), exports);
381
+ __exportStar(require("./rate-limit"), exports);
382
+ __exportStar(require("./ip-filter"), exports);
383
+ __exportStar(require("./compression"), exports);
384
+ __exportStar(require("./backpressure"), exports);
385
+ __exportStar(require("./dedupe"), exports);
386
+ __exportStar(require("./guard"), exports);
387
+ __exportStar(require("./pipe"), exports);
388
+ __exportStar(require("./interceptor"), exports);
389
+ __exportStar(require("./exception-filter"), exports);
304
390
  //# sourceMappingURL=middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/middleware/middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASA,oBAwFC;AAMD,8BAeC;AAID,sCAuDC;AAyCD,kCA6EC;AAUD,4BA8BC;AAID,wCAKC;AAvVD,0CAGyB;AACzB,4CAAwD;AAExD,iFAAiF;AAEjF,SAAgB,IAAI,CAAC,SAAqB,EAAE;IAC1C,MAAM,EACJ,MAAM,GAAG,GAAG,EACZ,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EACtE,cAAc,GAAG;QACf,cAAc;QACd,eAAe;QACf,QAAQ;QACR,QAAQ;QACR,kBAAkB;KACnB,EACD,cAAc,EACd,WAAW,GAAG,KAAK,EACnB,MAAM,GAAG,KAAK,GACf,GAAG,MAAM,CAAA;IAEV,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEnC,oBAAoB;QACpB,IAAI,WAAW,GAAG,EAAE,CAAA;QACpB,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,WAAW,GAAG,GAAG,CAAA;QACnB,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,WAAW,GAAG,MAAM,CAAA;QACtB,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,YAAY,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAC1D;oBACC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,EAAE,CAAA;YACR,CAAC;iBAAM,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;gBACpC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;YACvD,CAAC;iBAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;YAClD,CAAC;QACH,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAA;QACrD,CAAC;QAED,iBAAiB;QACjB,IAAI,WAAW,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAA;QACrD,CAAC;QAED,qBAAqB;QACrB,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,GAAG,CAAC,+BAA+B,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACrE,CAAC;QAED,yBAAyB;QACzB,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,GAAG,CAAC,8BAA8B,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAE3D,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;YAC5D,IAAI,UAAU,EAAE,CAAC;gBACf,GAAG,CAAC,GAAG,CAAC,8BAA8B,EAAE,UAAU,CAAC,CAAA;YACrD,CAAC;iBAAM,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,GAAG,CAAC,GAAG,CAAC,8BAA8B,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACpE,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;YACnD,CAAC;YAED,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC;gBAC9B,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CACV,EAAE,MAAM,EAAE,SAAS,EAAE,EACrB,kDAAkD,SAAS,4BAA4B,CACxF,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,IAAI,EAAE,CAAA;gBACN,OAAM;YACR,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACxB,OAAM;QACR,CAAC;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC;AAED,iFAAiF;AAEjF,IAAI,YAAY,GAAG,CAAC,CAAA;AAEpB,SAAgB,SAAS;IACvB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAA;QACzB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAClD,CAAA;QACpB,MAAM,OAAO,GAAG,EAAE;YAChB,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;gBACpB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;QAE3B,GAAG,CAAC,SAAS,GAAG,OAAO,CAAA;QACvB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;QACtC,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC;AAED,oFAAoF;AAEpF,SAAgB,aAAa,CAC3B,iBAAwC,EAAE;IAE1C,MAAM,GAAG,GAAW,IAAA,iBAAQ,EAAC,cAAc,CAAC;QAC1C,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,IAAA,qBAAY,EAAC,cAAc,CAAC,CAAA;IAEhC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAExB,6EAA6E;QAC7E,+EAA+E;QAC/E,IAAI,SAAS,GAAkB,IAAI,CAAA;QACnC,MAAM,SAAS,GAAG,GAAG,CAAA;QACrB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE;YAChC,GAAG;gBACD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;wBAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;wBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,GAAG,EAAE,GAAG,CAAC,IAAI;qBACd,CAAC,CAAA;gBACJ,CAAC;gBACD,OAAO,SAAS,CAAA;YAClB,CAAC;YACD,GAAG,CAAC,CAAS;gBACX,SAAS,GAAG,CAAC,CAAA;YACf,CAAC;YACD,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAA;QAEF,kFAAkF;QAClF,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;YACtB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;YACvC,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,CAAA;YAC5D,yEAAyE;YACzE,MAAM,MAAM,GAAG,SAAS,IAAI,SAAS,CAAA;YAErC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBAC1B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACpD,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBACjC,+CAA+C;gBAC/C,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC1D,SAAS;gBACX,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YACnD,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC;AAED,iFAAiF;AAE1E,MAAM,QAAQ,GAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,UAAU,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE;SAC5C;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AARY,QAAA,QAAQ,YAQpB;AAED,mFAAmF;AAEnF,6CAAuD;AAA9C,uGAAA,WAAW,OAAY;AAChC,uCAOmB;AANjB,kGAAA,MAAM,OAAA;AACN,gGAAA,IAAI,OAAA;AACJ,mGAAA,OAAO,OAAA;AACP,+FAAA,GAAG,OAAA;AACH,yGAAA,aAAa,OAAA;AACb,sGAAA,UAAU,OAAA;AAQZ,2CAAwC;AAA/B,uGAAA,SAAS,OAAA;AAElB,mCAAqD;AAA5C,gGAAA,gBAAgB,OAAU;AACnC,+CAAuE;AAA9D,4GAAA,sBAAsB,OAAgB;AAC/C,yCAA4D;AAAnD,qGAAA,kBAAkB,OAAY;AACvC,6CAAyC;AAAhC,wGAAA,SAAS,OAAA;AAClB,uDAA+C;AAAtC,8GAAA,UAAU,OAAA;AACnB,0CAAuB;AACvB,yCAAsB;AAEtB,SAAgB,WAAW,CACzB,IAAY,EACZ,UAA+B,EAAE;IAEjC,iEAAiE;IACjE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAC7B,iEAAiE;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAEnC,MAAM,SAAS,GAA2B;QACxC,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,wBAAwB;QAC/B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,+BAA+B;QACvC,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,YAAY;KACrB,CAAA;IAED,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClD,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;YAEjD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,OAAO,IAAI,EAAE,CAAA;YACf,CAAC;YAED,EAAE,CAAC,IAAI,CACL,QAAQ,EACR,CAAC,GAAiC,EAAE,IAA6B,EAAE,EAAE;gBACnE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1B,OAAO,IAAI,EAAE,CAAA;gBACf,CAAC;gBAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;gBAChD,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAA;gBAEzD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;gBAC7B,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;gBAE5C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACjC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,mBAAmB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gBAC/D,CAAC;gBAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC1B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBACxB,OAAM;gBACR,CAAC;gBAED,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;gBAChD,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;gBAC/C,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;gBACnC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;gBACjC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;gBACjC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YACxC,CAAC,CACF,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAA;QACR,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAUD,SAAgB,QAAQ,CAAC,MAAsB;IAC7C,MAAM,OAAO,GAAY,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACxC,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBACjB,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAA2B,CAAA;YACrE,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAA2B,CAAA;YACxE,CAAC;YACD,IAAI,EAAE,CAAA;QACR,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,GAAG,YAAY,oBAAiB,EAAE,CAAC;gBACrC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,sBAAsB;wBAC/B,OAAO,EAAE,GAAG,CAAC,MAAM;qBACpB;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YACD,IAAI,CAAC,GAAY,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAA;IACD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAClC,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,iFAAiF;AAEjF,SAAgB,cAAc;IAC5B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAA;QACtB,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC;AAED,gDAA6B"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/middleware/middleware.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Handler } from '../types';
1
+ import type { Handler, Request } from '../types';
2
2
  export interface HelmetOptions {
3
3
  contentSecurityPolicy?: string;
4
4
  hsts?: boolean | {
@@ -35,13 +35,23 @@ export interface CsrfOptions {
35
35
  */
36
36
  export declare function csrf(options: CsrfOptions): Handler;
37
37
  export interface TimeoutOptions {
38
- ms: number;
38
+ ms?: number;
39
39
  message?: string;
40
+ statusCode?: number;
41
+ exclude?: (string | RegExp)[] | ((req: Request) => boolean);
40
42
  }
41
43
  /**
42
44
  * Times out the request if the response hasn't been sent within the specified ms.
45
+ * Defaults to 60,000ms (60 seconds) to accommodate cloud storage, AI/LLM streaming,
46
+ * and heavy asset uploads.
43
47
  */
44
- export declare function timeout(ms: number | TimeoutOptions): Handler;
48
+ export declare function timeout(msOrOptions?: number | TimeoutOptions): Handler;
49
+ /**
50
+ * Route-level timeout override middleware.
51
+ * If a global timeout is already active on req, seamlessly updates the timer to the route's custom duration.
52
+ * If no global timeout is installed, mounts an isolated timeout lifecycle for this endpoint.
53
+ */
54
+ export declare function routeTimeout(msOrOptions: number | TimeoutOptions): Handler;
45
55
  export declare function hpp(): Handler;
46
56
  export declare function mongoSanitize(): Handler;
47
57
  export interface DbSanitizeOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/middleware/security.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAmC,MAAM,UAAU,CAAA;AAKxE,MAAM,WAAW,aAAa;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,IAAI,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,OAAO,CAAA;KAAE,CAAA;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAA;CACzD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAuE3D;AAID,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;QACpC,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AA2BD;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAmElD;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAqB5D;AAID,wBAAgB,GAAG,IAAI,OAAO,CAqB7B;AAmBD,wBAAgB,aAAa,IAAI,OAAO,CASvC;AAID,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,wBAAgB,UAAU,CACxB,OAAO,GAAE,iBAAmC,GAC3C,OAAO,CAYT"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/middleware/security.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAA0B,MAAM,UAAU,CAAA;AAKxE,MAAM,WAAW,aAAa;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,IAAI,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,OAAO,CAAA;KAAE,CAAA;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAA;CACzD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAuE3D;AAID,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,MAAM,CAAC,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;QACpC,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF;AA2BD;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAmElD;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,CAAA;CAC5D;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CA+EtE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAmB1E;AAID,wBAAgB,GAAG,IAAI,OAAO,CAoC7B;AAmBD,wBAAgB,aAAa,IAAI,OAAO,CA+BvC;AAID,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,wBAAgB,UAAU,CACxB,OAAO,GAAE,iBAAmC,GAC3C,OAAO,CAkCT"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.helmet = helmet;
7
7
  exports.csrf = csrf;
8
8
  exports.timeout = timeout;
9
+ exports.routeTimeout = routeTimeout;
9
10
  exports.hpp = hpp;
10
11
  exports.mongoSanitize = mongoSanitize;
11
12
  exports.dbSanitize = dbSanitize;
@@ -156,33 +157,129 @@ function csrf(options) {
156
157
  }
157
158
  /**
158
159
  * Times out the request if the response hasn't been sent within the specified ms.
160
+ * Defaults to 60,000ms (60 seconds) to accommodate cloud storage, AI/LLM streaming,
161
+ * and heavy asset uploads.
159
162
  */
160
- function timeout(ms) {
161
- const options = typeof ms === 'number' ? { ms } : ms;
163
+ function timeout(msOrOptions) {
164
+ const options = typeof msOrOptions === 'number'
165
+ ? { ms: msOrOptions }
166
+ : { ms: 60000, ...msOrOptions };
167
+ const defaultMs = options.ms ?? 60000;
168
+ const statusCode = options.statusCode ?? 503;
169
+ const message = options.message || 'Request timeout';
162
170
  return (req, res, next) => {
163
- const timer = setTimeout(() => {
164
- if (!res.headersSent) {
165
- res.status(503).json({
166
- success: false,
167
- error: {
168
- code: 'TIMEOUT',
169
- message: options.message || 'Request timeout',
170
- },
171
- });
172
- }
173
- }, options.ms);
174
- res.raw.on('finish', () => clearTimeout(timer));
175
- res.raw.on('close', () => clearTimeout(timer));
171
+ // Check exclusions
172
+ if (options.exclude) {
173
+ if (typeof options.exclude === 'function' && options.exclude(req)) {
174
+ return next();
175
+ }
176
+ if (Array.isArray(options.exclude)) {
177
+ const path = req.path || req.url || '/';
178
+ const isExcluded = options.exclude.some((pattern) => typeof pattern === 'string'
179
+ ? path.startsWith(pattern)
180
+ : pattern.test(path));
181
+ if (isExcluded)
182
+ return next();
183
+ }
184
+ }
185
+ let timer = null;
186
+ const setTimer = (currentMs) => {
187
+ if (timer)
188
+ clearTimeout(timer);
189
+ timer = setTimeout(() => {
190
+ if (!res.headersSent) {
191
+ res.status(statusCode).json({
192
+ success: false,
193
+ error: {
194
+ code: 'TIMEOUT',
195
+ message,
196
+ },
197
+ });
198
+ }
199
+ }, currentMs);
200
+ if (typeof timer.unref === 'function') {
201
+ timer.unref();
202
+ }
203
+ };
204
+ // Attach dynamic timeout adjustment to req
205
+ const setTimeoutFn = (newMs) => {
206
+ if (newMs <= 0) {
207
+ if (timer)
208
+ clearTimeout(timer);
209
+ timer = null;
210
+ }
211
+ else {
212
+ setTimer(newMs);
213
+ }
214
+ return req;
215
+ };
216
+ const clearTimeoutFn = () => {
217
+ if (timer)
218
+ clearTimeout(timer);
219
+ timer = null;
220
+ return req;
221
+ };
222
+ req.setTimeout = setTimeoutFn;
223
+ req.clearTimeout = clearTimeoutFn;
224
+ req._timeoutSetter = setTimeoutFn;
225
+ req._timeoutClearer = clearTimeoutFn;
226
+ setTimer(defaultMs);
227
+ res.raw.on('finish', () => {
228
+ if (timer)
229
+ clearTimeout(timer);
230
+ });
231
+ res.raw.on('close', () => {
232
+ if (timer)
233
+ clearTimeout(timer);
234
+ });
176
235
  next();
177
236
  };
178
237
  }
238
+ /**
239
+ * Route-level timeout override middleware.
240
+ * If a global timeout is already active on req, seamlessly updates the timer to the route's custom duration.
241
+ * If no global timeout is installed, mounts an isolated timeout lifecycle for this endpoint.
242
+ */
243
+ function routeTimeout(msOrOptions) {
244
+ const options = typeof msOrOptions === 'number'
245
+ ? { ms: msOrOptions }
246
+ : { ms: 60000, ...msOrOptions };
247
+ const ms = options.ms ?? 60000;
248
+ return (req, res, next) => {
249
+ if (typeof req._timeoutSetter === 'function') {
250
+ if (ms <= 0) {
251
+ req.clearTimeout?.();
252
+ }
253
+ else {
254
+ req.setTimeout(ms);
255
+ }
256
+ next();
257
+ }
258
+ else {
259
+ timeout(options)(req, res, next);
260
+ }
261
+ };
262
+ }
179
263
  // ─── HTTP Parameter Pollution (HPP) ───────────────────────────────────────────
180
264
  function hpp() {
181
- return (req, res, next) => {
265
+ return async (req, res, next) => {
182
266
  // If a query parameter is an array (multiple values), take only the last one
183
- for (const [key, val] of Object.entries(req.query)) {
184
- if (Array.isArray(val)) {
185
- req.query[key] = val[val.length - 1];
267
+ if (req.query && typeof req.query === 'object') {
268
+ for (const [key, val] of Object.entries(req.query)) {
269
+ if (Array.isArray(val)) {
270
+ req.query[key] = val[val.length - 1];
271
+ }
272
+ }
273
+ }
274
+ // Automatically synchronize body if incoming request has body but hasn't been parsed
275
+ if (req.body === undefined &&
276
+ ['POST', 'PUT', 'PATCH'].includes(req.method) &&
277
+ typeof req.json === 'function') {
278
+ try {
279
+ await req.json();
280
+ }
281
+ catch {
282
+ /* let subsequent validation catch invalid JSON */
186
283
  }
187
284
  }
188
285
  // Do the same for body if it's form-urlencoded array
@@ -214,25 +311,57 @@ function sanitizeMongo(obj) {
214
311
  return obj;
215
312
  }
216
313
  function mongoSanitize() {
217
- return (req, res, next) => {
314
+ return async (req, res, next) => {
315
+ if (req.body === undefined &&
316
+ ['POST', 'PUT', 'PATCH'].includes(req.method) &&
317
+ typeof req.json === 'function') {
318
+ try {
319
+ await req.json();
320
+ }
321
+ catch {
322
+ /* ignore */
323
+ }
324
+ }
218
325
  if (req.body)
219
326
  req.body = sanitizeMongo(req.body);
220
- if (Object.keys(req.query).length > 0)
327
+ if (req.query &&
328
+ typeof req.query === 'object' &&
329
+ Object.keys(req.query).length > 0) {
221
330
  req.query = sanitizeMongo(req.query);
222
- if (Object.keys(req.params).length > 0)
331
+ }
332
+ if (req.params &&
333
+ typeof req.params === 'object' &&
334
+ Object.keys(req.params).length > 0) {
223
335
  req.params = sanitizeMongo(req.params);
336
+ }
224
337
  next();
225
338
  };
226
339
  }
227
340
  function dbSanitize(options = { mongo: true }) {
228
- return (req, res, next) => {
341
+ return async (req, res, next) => {
229
342
  if (options.mongo) {
343
+ if (req.body === undefined &&
344
+ ['POST', 'PUT', 'PATCH'].includes(req.method) &&
345
+ typeof req.json === 'function') {
346
+ try {
347
+ await req.json();
348
+ }
349
+ catch {
350
+ /* ignore */
351
+ }
352
+ }
230
353
  if (req.body)
231
354
  req.body = sanitizeMongo(req.body);
232
- if (Object.keys(req.query).length > 0)
355
+ if (req.query &&
356
+ typeof req.query === 'object' &&
357
+ Object.keys(req.query).length > 0) {
233
358
  req.query = sanitizeMongo(req.query);
234
- if (Object.keys(req.params).length > 0)
359
+ }
360
+ if (req.params &&
361
+ typeof req.params === 'object' &&
362
+ Object.keys(req.params).length > 0) {
235
363
  req.params = sanitizeMongo(req.params);
364
+ }
236
365
  }
237
366
  next();
238
367
  };
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/middleware/security.ts"],"names":[],"mappings":";;;;;AAkBA,wBAuEC;AA+CD,oBAmEC;AAYD,0BAqBC;AAID,kBAqBC;AAmBD,sCASC;AAQD,gCAcC;AAvTD,8DAAgC;AAEhC,4CAA2C;AAa3C;;GAEG;AACH,SAAgB,MAAM,CAAC,UAAyB,EAAE;IAChD,MAAM,aAAa,GAA2B;QAC5C,wBAAwB,EAAE,KAAK;QAC/B,oBAAoB,EAAE,QAAQ;QAC9B,mCAAmC,EAAE,MAAM;QAC3C,iBAAiB,EAAE,iCAAiC;QACpD,oBAAoB,EAAE,0CAA0C;KACjE,CAAA;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,GACX,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;YAC9B,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAA;QACnD,IAAI,MAAM,GAAG,WAAW,OAAO,CAAC,MAAM,EAAE,CAAA;QACxC,IAAI,OAAO,CAAC,iBAAiB;YAAE,MAAM,IAAI,qBAAqB,CAAA;QAC9D,aAAa,CAAC,2BAA2B,CAAC,GAAG,MAAM,CAAA;IACrD,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9B,aAAa,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAA;IACrD,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAChC,aAAa,CAAC,kBAAkB,CAAC,GAAG,eAAe,CAAA;IACrD,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,GACV,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;YACpC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM;YAC3B,CAAC,CAAC,MAAM,CAAA;QACZ,aAAa,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAA;IAC3C,CAAC;IAED,IACE,OAAO,CAAC,qBAAqB;QAC7B,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAClD,CAAC;QACD,aAAa,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAA;IAC1E,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,KAAK,CAAA;IACrD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IACjD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAA;IAErC,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,+BAA+B;QAC/B,IACE,OAAO,CAAC,qBAAqB;YAC7B,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,EACjD,CAAC;YACD,MAAM,KAAK,GAAG,qBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CACzD;YAAC,GAAW,CAAC,QAAQ,GAAG,KAAK,CAAA;YAC9B,GAAG,CAAC,SAAS,CACX,yBAAyB,EACzB,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAC3D,CAAA;QACH,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;QAClC,CAAC;QAED,uEAAuE;QACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC;QACD,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC;AAiBD,SAAS,aAAa,CAAC,GAAW,EAAE,MAAc;IAChD,MAAM,SAAS,GAAG,qBAAM;SACrB,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC5B,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,WAAW,CAAC,CAAA;IACtB,OAAO,GAAG,GAAG,IAAI,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,MAAc;IAClD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,KAAK,CAAA;IAC9B,MAAM,iBAAiB,GAAG,qBAAM;SAC7B,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC5B,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,WAAW,CAAC,CAAA;IAEtB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAElD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACtD,IAAI,CAAC,qBAAM,CAAC,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC;QAAE,OAAO,KAAK,CAAA;IAC9D,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAgB,IAAI,CAAC,OAAoB;IACvC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,YAAY,CAAA;IACrD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,CAAC,WAAW,EAAE,CAAA;IAEvE,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,qBAAM,CAAC,UAAU,EAAE,CAAA;IAE/C,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,KAAK,GAAmB,KAAK,CAAA;QAEjC,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACpD,CAAC;QAED,oEAAoE;QACpE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,aAAa,EAAE,CAAA;YACvB,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC3D,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,IAAI,KAAK,EAAE,kDAAkD;gBACtG,MAAM,EACJ,OAAO,CAAC,aAAa,EAAE,MAAM;oBAC7B,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;gBACvC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,QAAQ,IAAI,KAAK;gBAClD,IAAI,EAAE,OAAO,CAAC,aAAa,EAAE,IAAI,IAAI,GAAG;gBACxC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,IAAI,KAAK;aAC/C,CAAC,CAAA;QACJ,CAAC;QAED,uDAAuD;QACvD,CAAC;QAAC,GAAwC,CAAC,SAAS,GAAG,KAAK,CAAA;QAE5D,0CAA0C;QAC1C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,0FAA0F;QAC1F,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACvC,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,IAAI,kBAAS,CAAC,oBAAoB,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;QACtE,CAAC;QAED,uEAAuE;QACvE,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAClC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAE5B,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,IAAI,EAAE,CAAA;YACtC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAA;gBACvC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;oBACxB,OAAO,IAAI,CAAC,IAAI,kBAAS,CAAC,sBAAsB,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;gBACxE,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CACT,IAAI,kBAAS,CAAC,+BAA+B,EAAE,GAAG,EAAE,aAAa,CAAC,CACnE,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC;AASD;;GAEG;AACH,SAAgB,OAAO,CAAC,EAA2B;IACjD,MAAM,OAAO,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEpD,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,iBAAiB;qBAC9C;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QAEd,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QAC/C,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QAE9C,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAgB,GAAG;IACjB,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,6EAA6E;QAC7E,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACtC,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CACrC,GAAG,CAAC,IAA+B,CACpC,EAAE,CAAC;gBACF,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,CAAC;oBAAC,GAAG,CAAC,IAAgC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC;AAED,iFAAiF;AAEjF,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IACrD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,SAAS,GAA4B,EAAE,CAAA;QAC7C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,SAAQ,CAAC,uBAAuB;YAClC,CAAC;YACD,SAAS,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,IAAI,GAAG,CAAC,IAAI;YAAE,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;YACnC,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAA2B,CAAA;QAChE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;YACpC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAA2B,CAAA;QAClE,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC;AAQD,SAAgB,UAAU,CACxB,UAA6B,EAAE,KAAK,EAAE,IAAI,EAAE;IAE5C,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,IAAI;gBAAE,GAAG,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAChD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;gBACnC,GAAG,CAAC,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAA2B,CAAA;YAChE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;gBACpC,GAAG,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAA2B,CAAA;QACpE,CAAC;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/middleware/security.ts"],"names":[],"mappings":"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"}