@spinajs/http 2.0.481 → 2.0.482

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 (179) hide show
  1. package/lib/cjs/config/http.d.ts.map +1 -1
  2. package/lib/cjs/config/http.js +11 -0
  3. package/lib/cjs/config/http.js.map +1 -1
  4. package/lib/cjs/controllers.d.ts.map +1 -1
  5. package/lib/cjs/controllers.js +48 -12
  6. package/lib/cjs/controllers.js.map +1 -1
  7. package/lib/cjs/decorators.d.ts +46 -4
  8. package/lib/cjs/decorators.d.ts.map +1 -1
  9. package/lib/cjs/decorators.js +127 -23
  10. package/lib/cjs/decorators.js.map +1 -1
  11. package/lib/cjs/error.js +3 -3
  12. package/lib/cjs/error.js.map +1 -1
  13. package/lib/cjs/file-middlewares/validation.d.ts +11 -0
  14. package/lib/cjs/file-middlewares/validation.d.ts.map +1 -1
  15. package/lib/cjs/file-middlewares/validation.js +52 -9
  16. package/lib/cjs/file-middlewares/validation.js.map +1 -1
  17. package/lib/cjs/file-middlewares/zip.d.ts.map +1 -1
  18. package/lib/cjs/file-middlewares/zip.js +6 -1
  19. package/lib/cjs/file-middlewares/zip.js.map +1 -1
  20. package/lib/cjs/index.d.ts +1 -0
  21. package/lib/cjs/index.d.ts.map +1 -1
  22. package/lib/cjs/index.js +1 -0
  23. package/lib/cjs/index.js.map +1 -1
  24. package/lib/cjs/interfaces.d.ts +95 -1
  25. package/lib/cjs/interfaces.d.ts.map +1 -1
  26. package/lib/cjs/interfaces.js +100 -4
  27. package/lib/cjs/interfaces.js.map +1 -1
  28. package/lib/cjs/middlewares/PerfRollup.d.ts +19 -0
  29. package/lib/cjs/middlewares/PerfRollup.d.ts.map +1 -0
  30. package/lib/cjs/middlewares/PerfRollup.js +61 -0
  31. package/lib/cjs/middlewares/PerfRollup.js.map +1 -0
  32. package/lib/cjs/middlewares/RequestId.d.ts +1 -2
  33. package/lib/cjs/middlewares/RequestId.d.ts.map +1 -1
  34. package/lib/cjs/middlewares/RequestId.js +19 -5
  35. package/lib/cjs/middlewares/RequestId.js.map +1 -1
  36. package/lib/cjs/middlewares/ResponseTime.d.ts +1 -2
  37. package/lib/cjs/middlewares/ResponseTime.d.ts.map +1 -1
  38. package/lib/cjs/middlewares/ResponseTime.js +29 -11
  39. package/lib/cjs/middlewares/ResponseTime.js.map +1 -1
  40. package/lib/cjs/response-methods/file.d.ts.map +1 -1
  41. package/lib/cjs/response-methods/file.js +47 -21
  42. package/lib/cjs/response-methods/file.js.map +1 -1
  43. package/lib/cjs/response-methods/index.d.ts +3 -0
  44. package/lib/cjs/response-methods/index.d.ts.map +1 -1
  45. package/lib/cjs/response-methods/index.js +3 -0
  46. package/lib/cjs/response-methods/index.js.map +1 -1
  47. package/lib/cjs/response-methods/redirect.d.ts +11 -4
  48. package/lib/cjs/response-methods/redirect.d.ts.map +1 -1
  49. package/lib/cjs/response-methods/redirect.js +14 -4
  50. package/lib/cjs/response-methods/redirect.js.map +1 -1
  51. package/lib/cjs/response-methods/xml.d.ts +17 -0
  52. package/lib/cjs/response-methods/xml.d.ts.map +1 -0
  53. package/lib/cjs/response-methods/xml.js +26 -0
  54. package/lib/cjs/response-methods/xml.js.map +1 -0
  55. package/lib/cjs/responses.d.ts +10 -0
  56. package/lib/cjs/responses.d.ts.map +1 -1
  57. package/lib/cjs/responses.js +94 -35
  58. package/lib/cjs/responses.js.map +1 -1
  59. package/lib/cjs/route-args/FromBody.d.ts.map +1 -1
  60. package/lib/cjs/route-args/FromBody.js +6 -1
  61. package/lib/cjs/route-args/FromBody.js.map +1 -1
  62. package/lib/cjs/route-args/FromForm.d.ts +1 -1
  63. package/lib/cjs/route-args/FromForm.d.ts.map +1 -1
  64. package/lib/cjs/route-args/FromForm.js +116 -37
  65. package/lib/cjs/route-args/FromForm.js.map +1 -1
  66. package/lib/cjs/route-args/FromXml.d.ts +17 -0
  67. package/lib/cjs/route-args/FromXml.d.ts.map +1 -0
  68. package/lib/cjs/route-args/FromXml.js +55 -0
  69. package/lib/cjs/route-args/FromXml.js.map +1 -0
  70. package/lib/cjs/route-args/RequestContext.d.ts +43 -0
  71. package/lib/cjs/route-args/RequestContext.d.ts.map +1 -0
  72. package/lib/cjs/route-args/RequestContext.js +94 -0
  73. package/lib/cjs/route-args/RequestContext.js.map +1 -0
  74. package/lib/cjs/route-args/RequestFields.d.ts +1 -1
  75. package/lib/cjs/route-args/RequestFields.d.ts.map +1 -1
  76. package/lib/cjs/route-args/RequestFields.js +1 -0
  77. package/lib/cjs/route-args/RequestFields.js.map +1 -1
  78. package/lib/cjs/route-args/RouteArgs.d.ts.map +1 -1
  79. package/lib/cjs/route-args/RouteArgs.js +50 -10
  80. package/lib/cjs/route-args/RouteArgs.js.map +1 -1
  81. package/lib/cjs/route-args/index.d.ts +2 -0
  82. package/lib/cjs/route-args/index.d.ts.map +1 -1
  83. package/lib/cjs/route-args/index.js +2 -0
  84. package/lib/cjs/route-args/index.js.map +1 -1
  85. package/lib/cjs/server.d.ts +36 -3
  86. package/lib/cjs/server.d.ts.map +1 -1
  87. package/lib/cjs/server.js +131 -42
  88. package/lib/cjs/server.js.map +1 -1
  89. package/lib/mjs/config/http.d.ts.map +1 -1
  90. package/lib/mjs/config/http.js +11 -0
  91. package/lib/mjs/config/http.js.map +1 -1
  92. package/lib/mjs/controllers.d.ts.map +1 -1
  93. package/lib/mjs/controllers.js +46 -10
  94. package/lib/mjs/controllers.js.map +1 -1
  95. package/lib/mjs/decorators.d.ts +46 -4
  96. package/lib/mjs/decorators.d.ts.map +1 -1
  97. package/lib/mjs/decorators.js +121 -24
  98. package/lib/mjs/decorators.js.map +1 -1
  99. package/lib/mjs/error.js +3 -3
  100. package/lib/mjs/error.js.map +1 -1
  101. package/lib/mjs/file-middlewares/validation.d.ts +11 -0
  102. package/lib/mjs/file-middlewares/validation.d.ts.map +1 -1
  103. package/lib/mjs/file-middlewares/validation.js +53 -10
  104. package/lib/mjs/file-middlewares/validation.js.map +1 -1
  105. package/lib/mjs/file-middlewares/zip.d.ts.map +1 -1
  106. package/lib/mjs/file-middlewares/zip.js +6 -1
  107. package/lib/mjs/file-middlewares/zip.js.map +1 -1
  108. package/lib/mjs/index.d.ts +1 -0
  109. package/lib/mjs/index.d.ts.map +1 -1
  110. package/lib/mjs/index.js +1 -0
  111. package/lib/mjs/index.js.map +1 -1
  112. package/lib/mjs/interfaces.d.ts +95 -1
  113. package/lib/mjs/interfaces.d.ts.map +1 -1
  114. package/lib/mjs/interfaces.js +65 -2
  115. package/lib/mjs/interfaces.js.map +1 -1
  116. package/lib/mjs/middlewares/PerfRollup.d.ts +19 -0
  117. package/lib/mjs/middlewares/PerfRollup.d.ts.map +1 -0
  118. package/lib/mjs/middlewares/PerfRollup.js +58 -0
  119. package/lib/mjs/middlewares/PerfRollup.js.map +1 -0
  120. package/lib/mjs/middlewares/RequestId.d.ts +1 -2
  121. package/lib/mjs/middlewares/RequestId.d.ts.map +1 -1
  122. package/lib/mjs/middlewares/RequestId.js +19 -5
  123. package/lib/mjs/middlewares/RequestId.js.map +1 -1
  124. package/lib/mjs/middlewares/ResponseTime.d.ts +1 -2
  125. package/lib/mjs/middlewares/ResponseTime.d.ts.map +1 -1
  126. package/lib/mjs/middlewares/ResponseTime.js +29 -11
  127. package/lib/mjs/middlewares/ResponseTime.js.map +1 -1
  128. package/lib/mjs/response-methods/file.d.ts.map +1 -1
  129. package/lib/mjs/response-methods/file.js +41 -15
  130. package/lib/mjs/response-methods/file.js.map +1 -1
  131. package/lib/mjs/response-methods/index.d.ts +3 -0
  132. package/lib/mjs/response-methods/index.d.ts.map +1 -1
  133. package/lib/mjs/response-methods/index.js +3 -0
  134. package/lib/mjs/response-methods/index.js.map +1 -1
  135. package/lib/mjs/response-methods/redirect.d.ts +11 -4
  136. package/lib/mjs/response-methods/redirect.d.ts.map +1 -1
  137. package/lib/mjs/response-methods/redirect.js +15 -5
  138. package/lib/mjs/response-methods/redirect.js.map +1 -1
  139. package/lib/mjs/response-methods/xml.d.ts +17 -0
  140. package/lib/mjs/response-methods/xml.d.ts.map +1 -0
  141. package/lib/mjs/response-methods/xml.js +22 -0
  142. package/lib/mjs/response-methods/xml.js.map +1 -0
  143. package/lib/mjs/responses.d.ts +10 -0
  144. package/lib/mjs/responses.d.ts.map +1 -1
  145. package/lib/mjs/responses.js +93 -35
  146. package/lib/mjs/responses.js.map +1 -1
  147. package/lib/mjs/route-args/FromBody.d.ts.map +1 -1
  148. package/lib/mjs/route-args/FromBody.js +6 -1
  149. package/lib/mjs/route-args/FromBody.js.map +1 -1
  150. package/lib/mjs/route-args/FromForm.d.ts +1 -1
  151. package/lib/mjs/route-args/FromForm.d.ts.map +1 -1
  152. package/lib/mjs/route-args/FromForm.js +114 -38
  153. package/lib/mjs/route-args/FromForm.js.map +1 -1
  154. package/lib/mjs/route-args/FromXml.d.ts +17 -0
  155. package/lib/mjs/route-args/FromXml.d.ts.map +1 -0
  156. package/lib/mjs/route-args/FromXml.js +52 -0
  157. package/lib/mjs/route-args/FromXml.js.map +1 -0
  158. package/lib/mjs/route-args/RequestContext.d.ts +43 -0
  159. package/lib/mjs/route-args/RequestContext.d.ts.map +1 -0
  160. package/lib/mjs/route-args/RequestContext.js +91 -0
  161. package/lib/mjs/route-args/RequestContext.js.map +1 -0
  162. package/lib/mjs/route-args/RequestFields.d.ts +1 -1
  163. package/lib/mjs/route-args/RequestFields.d.ts.map +1 -1
  164. package/lib/mjs/route-args/RequestFields.js +1 -0
  165. package/lib/mjs/route-args/RequestFields.js.map +1 -1
  166. package/lib/mjs/route-args/RouteArgs.d.ts.map +1 -1
  167. package/lib/mjs/route-args/RouteArgs.js +51 -11
  168. package/lib/mjs/route-args/RouteArgs.js.map +1 -1
  169. package/lib/mjs/route-args/index.d.ts +2 -0
  170. package/lib/mjs/route-args/index.d.ts.map +1 -1
  171. package/lib/mjs/route-args/index.js +2 -0
  172. package/lib/mjs/route-args/index.js.map +1 -1
  173. package/lib/mjs/server.d.ts +36 -3
  174. package/lib/mjs/server.d.ts.map +1 -1
  175. package/lib/mjs/server.js +132 -43
  176. package/lib/mjs/server.js.map +1 -1
  177. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  178. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  179. package/package.json +16 -12
@@ -3,6 +3,7 @@ import { Constructor, AsyncService, Class } from '@spinajs/di';
3
3
  import { fs, IFileInfo } from '@spinajs/fs';
4
4
  import formidable from 'formidable';
5
5
  import { CookieOptions } from 'express';
6
+ import { IPerfScope } from '@spinajs/log';
6
7
  /**
7
8
  * Accept header enum
8
9
  */
@@ -37,6 +38,16 @@ export declare enum HttpAcceptHeaders {
37
38
  */
38
39
  ALL = 7
39
40
  }
41
+ /**
42
+ * Lifecycle state of the HttpServer. Drives start() / stop() / dispose() and is
43
+ * emitted on the DI bus as `http.server.listening` / `.closing` / `.closed`.
44
+ */
45
+ export declare enum LifecycleState {
46
+ Created = 0,
47
+ Listening = 1,
48
+ Closing = 2,
49
+ Closed = 3
50
+ }
40
51
  export interface IHttpServerConfiguration {
41
52
  /**
42
53
  * Https server configuration
@@ -62,6 +73,12 @@ export interface IHttpServerConfiguration {
62
73
  */
63
74
  AcceptHeaders: HttpAcceptHeaders;
64
75
  FatalTemplate: string;
76
+ /**
77
+ * Grace period ( ms ) for a graceful shutdown before still-open connections
78
+ * are force-closed. Idle keep-alive sockets are released immediately; only
79
+ * genuinely in-flight requests use this window. Default 10000.
80
+ */
81
+ shutdownTimeout?: number;
65
82
  }
66
83
  /**
67
84
  * Config options for static files
@@ -127,6 +144,13 @@ export interface FileValidationRules {
127
144
  };
128
145
  proportions?: FileProportions[];
129
146
  types?: FileTypeEnum[];
147
+ /**
148
+ * File size bounds in bytes. `min`/`max` are inclusive.
149
+ */
150
+ size?: {
151
+ min?: number;
152
+ max?: number;
153
+ };
130
154
  }
131
155
  export type UploadFileMiddlewareDescriptor = string | Class<FileUploadMiddleware> | {
132
156
  options: any;
@@ -173,6 +197,12 @@ export interface IUploadedFile<T = any> {
173
197
  }
174
198
  export interface Request extends express.Request {
175
199
  storage: IActionLocalStoregeContext;
200
+ /**
201
+ * Raw request body bytes, captured by the express.json `verify` hook for
202
+ * JSON requests. Consumed by the {@link ParameterType.RawBody} route arg for
203
+ * webhook signature verification. Undefined for non-JSON requests.
204
+ */
205
+ rawBody?: Buffer;
176
206
  }
177
207
  /**
178
208
  * File upload provider, used to copy incoming formidable
@@ -193,6 +223,16 @@ export interface IServerTimingEntry {
193
223
  }
194
224
  export interface IActionLocalStoregeContext {
195
225
  requestId: string;
226
+ /**
227
+ * W3C trace id shared across services for one distributed trace. Seeded by
228
+ * {@link RequestId} from an inbound `traceparent` header ( or freshly minted )
229
+ * and merged into every log line by the ambient log context.
230
+ */
231
+ traceId?: string;
232
+ /**
233
+ * W3C span id identifying this service's span within the trace.
234
+ */
235
+ spanId?: string;
196
236
  responseStart: Date;
197
237
  responseEnd: Date;
198
238
  responseTime: number;
@@ -202,6 +242,11 @@ export interface IActionLocalStoregeContext {
202
242
  * `Server-Timing` response header when {@link ServerTiming} is enabled.
203
243
  */
204
244
  serverTiming?: IServerTimingEntry[];
245
+ /**
246
+ * Per-request perf accumulator ( query counts, span totals ) populated by the
247
+ * Perf facade during the action and flushed by {@link PerfRollup} at finish.
248
+ */
249
+ perf?: IPerfScope;
205
250
  }
206
251
  export interface IResponseHeader {
207
252
  Name: string;
@@ -254,10 +299,30 @@ export declare enum HTTP_STATUS_CODE {
254
299
  * interrupted downloads, or split a download into multiple simultaneous streams.
255
300
  */
256
301
  PARTIAL_CONTENT = 206,
302
+ /**
303
+ * Resource has moved permanently to a new URL.
304
+ */
305
+ MOVED_PERMANENTLY = 301,
306
+ /**
307
+ * Resource found at a different URL (temporary redirect, method may change).
308
+ */
309
+ FOUND = 302,
310
+ /**
311
+ * Response to the request can be found at another URL using GET.
312
+ */
313
+ SEE_OTHER = 303,
257
314
  /**
258
315
  * Resource is not modified
259
316
  */
260
317
  NOT_MODIFIED = 304,
318
+ /**
319
+ * Temporary redirect preserving the request method and body.
320
+ */
321
+ TEMPORARY_REDIRECT = 307,
322
+ /**
323
+ * Permanent redirect preserving the request method and body.
324
+ */
325
+ PERMANENT_REDIRECT = 308,
261
326
  /**
262
327
  * Invalid request, eg. invalid parameters
263
328
  */
@@ -297,7 +362,12 @@ export declare enum HTTP_STATUS_CODE {
297
362
  /**
298
363
  * Method not implemented
299
364
  */
300
- NOT_IMPLEMENTED = 501
365
+ NOT_IMPLEMENTED = 501,
366
+ /**
367
+ * The server is not ready to handle the request — a dependency is down or the
368
+ * app is still starting up. Used by the telemetry readiness endpoint.
369
+ */
370
+ SERVICE_UNAVAILABLE = 503
301
371
  }
302
372
  /**
303
373
  * Avaible route types, match HTTP methods
@@ -406,6 +476,30 @@ export declare enum ParameterType {
406
476
  * From http header
407
477
  */
408
478
  FromHeader = "FromHeader",
479
+ /**
480
+ * Client IP resolved by the RealIp middleware (X-Forwarded-For aware)
481
+ */
482
+ Ip = "IpRouteArgs",
483
+ /**
484
+ * Per-request id (matches the x-request-id response header)
485
+ */
486
+ RequestId = "RequestIdRouteArgs",
487
+ /**
488
+ * User-Agent request header
489
+ */
490
+ UserAgent = "UserAgentRouteArgs",
491
+ /**
492
+ * Referer / Referrer request header
493
+ */
494
+ Referer = "RefererRouteArgs",
495
+ /**
496
+ * Raw request body Buffer (captured for JSON requests)
497
+ */
498
+ RawBody = "RawBodyRouteArgs",
499
+ /**
500
+ * Parsed XML request body
501
+ */
502
+ FromXml = "FromXmlRouteArgs",
409
503
  /**
410
504
  * Req from express
411
505
  */
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { AsyncService, isPromise } from '@spinajs/di';
2
- import { httpResponse } from './responses.js';
3
2
  /**
4
3
  * Accept header enum
5
4
  */
@@ -35,6 +34,17 @@ export var HttpAcceptHeaders;
35
34
  */
36
35
  HttpAcceptHeaders[HttpAcceptHeaders["ALL"] = 7] = "ALL";
37
36
  })(HttpAcceptHeaders || (HttpAcceptHeaders = {}));
37
+ /**
38
+ * Lifecycle state of the HttpServer. Drives start() / stop() / dispose() and is
39
+ * emitted on the DI bus as `http.server.listening` / `.closing` / `.closed`.
40
+ */
41
+ export var LifecycleState;
42
+ (function (LifecycleState) {
43
+ LifecycleState[LifecycleState["Created"] = 0] = "Created";
44
+ LifecycleState[LifecycleState["Listening"] = 1] = "Listening";
45
+ LifecycleState[LifecycleState["Closing"] = 2] = "Closing";
46
+ LifecycleState[LifecycleState["Closed"] = 3] = "Closed";
47
+ })(LifecycleState || (LifecycleState = {}));
38
48
  export var FileTypeEnum;
39
49
  (function (FileTypeEnum) {
40
50
  FileTypeEnum["jpeg"] = "image/jpeg";
@@ -116,10 +126,30 @@ export var HTTP_STATUS_CODE;
116
126
  * interrupted downloads, or split a download into multiple simultaneous streams.
117
127
  */
118
128
  HTTP_STATUS_CODE[HTTP_STATUS_CODE["PARTIAL_CONTENT"] = 206] = "PARTIAL_CONTENT";
129
+ /**
130
+ * Resource has moved permanently to a new URL.
131
+ */
132
+ HTTP_STATUS_CODE[HTTP_STATUS_CODE["MOVED_PERMANENTLY"] = 301] = "MOVED_PERMANENTLY";
133
+ /**
134
+ * Resource found at a different URL (temporary redirect, method may change).
135
+ */
136
+ HTTP_STATUS_CODE[HTTP_STATUS_CODE["FOUND"] = 302] = "FOUND";
137
+ /**
138
+ * Response to the request can be found at another URL using GET.
139
+ */
140
+ HTTP_STATUS_CODE[HTTP_STATUS_CODE["SEE_OTHER"] = 303] = "SEE_OTHER";
119
141
  /**
120
142
  * Resource is not modified
121
143
  */
122
144
  HTTP_STATUS_CODE[HTTP_STATUS_CODE["NOT_MODIFIED"] = 304] = "NOT_MODIFIED";
145
+ /**
146
+ * Temporary redirect preserving the request method and body.
147
+ */
148
+ HTTP_STATUS_CODE[HTTP_STATUS_CODE["TEMPORARY_REDIRECT"] = 307] = "TEMPORARY_REDIRECT";
149
+ /**
150
+ * Permanent redirect preserving the request method and body.
151
+ */
152
+ HTTP_STATUS_CODE[HTTP_STATUS_CODE["PERMANENT_REDIRECT"] = 308] = "PERMANENT_REDIRECT";
123
153
  /**
124
154
  * Invalid request, eg. invalid parameters
125
155
  */
@@ -160,6 +190,11 @@ export var HTTP_STATUS_CODE;
160
190
  * Method not implemented
161
191
  */
162
192
  HTTP_STATUS_CODE[HTTP_STATUS_CODE["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
193
+ /**
194
+ * The server is not ready to handle the request — a dependency is down or the
195
+ * app is still starting up. Used by the telemetry readiness endpoint.
196
+ */
197
+ HTTP_STATUS_CODE[HTTP_STATUS_CODE["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
163
198
  })(HTTP_STATUS_CODE || (HTTP_STATUS_CODE = {}));
164
199
  /**
165
200
  * Avaible route types, match HTTP methods
@@ -271,6 +306,30 @@ export var ParameterType;
271
306
  * From http header
272
307
  */
273
308
  ParameterType["FromHeader"] = "FromHeader";
309
+ /**
310
+ * Client IP resolved by the RealIp middleware (X-Forwarded-For aware)
311
+ */
312
+ ParameterType["Ip"] = "IpRouteArgs";
313
+ /**
314
+ * Per-request id (matches the x-request-id response header)
315
+ */
316
+ ParameterType["RequestId"] = "RequestIdRouteArgs";
317
+ /**
318
+ * User-Agent request header
319
+ */
320
+ ParameterType["UserAgent"] = "UserAgentRouteArgs";
321
+ /**
322
+ * Referer / Referrer request header
323
+ */
324
+ ParameterType["Referer"] = "RefererRouteArgs";
325
+ /**
326
+ * Raw request body Buffer (captured for JSON requests)
327
+ */
328
+ ParameterType["RawBody"] = "RawBodyRouteArgs";
329
+ /**
330
+ * Parsed XML request body
331
+ */
332
+ ParameterType["FromXml"] = "FromXmlRouteArgs";
274
333
  /**
275
334
  * Req from express
276
335
  */
@@ -295,9 +354,13 @@ export class Response {
295
354
  }
296
355
  async execute(_req, _res, _next) {
297
356
  const response = await this.prepareResponse();
357
+ const { httpResponse } = await import('./responses.js');
298
358
  return await httpResponse(response, this._template, {
299
359
  ...this.options,
300
- StatusCode: this._errorCode,
360
+ // Honor an explicit caller-supplied StatusCode; fall back to the
361
+ // response type's semantic default (_errorCode). Previously _errorCode
362
+ // always won, silently ignoring options.StatusCode.
363
+ StatusCode: this.options?.StatusCode ?? this._errorCode,
301
364
  });
302
365
  }
303
366
  async prepareResponse() {
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import * as express from 'express';
2
+ import { ServerMiddleware, Request as sRequest } from '../interfaces.js';
3
+ /**
4
+ * Emits one perf rollup per request ( eg. "orm.query x14 240ms" ). Creates the
5
+ * accumulator on `req.storage.perf` in `before()` — which is the SAME object the
6
+ * action's `AsyncLocalStorage.run(req.storage, …)` exposes, so measurements taken
7
+ * during the request land in it — then flushes it to every PerfSink on the
8
+ * response `finish` event.
9
+ *
10
+ * Config:
11
+ * http.perf.enabled (default true)
12
+ */
13
+ export declare class PerfRollup extends ServerMiddleware {
14
+ protected Enabled: boolean;
15
+ constructor();
16
+ before(): ((req: sRequest, res: express.Response, next: express.NextFunction) => void) | null;
17
+ after(): null;
18
+ }
19
+ //# sourceMappingURL=PerfRollup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerfRollup.d.ts","sourceRoot":"","sources":["../../../src/middlewares/PerfRollup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAKnC,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEzE;;;;;;;;;GASG;AACH,qBACa,UAAW,SAAQ,gBAAgB;IAE9C,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC;;IAQrB,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,GAAG,IAAI;IAe7F,KAAK,IAAI,IAAI;CAGrB"}
@@ -0,0 +1,58 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Injectable } from '@spinajs/di';
11
+ import { Config } from '@spinajs/configuration';
12
+ import { Perf } from '@spinajs/log';
13
+ import { ServerMiddleware } from '../interfaces.js';
14
+ /**
15
+ * Emits one perf rollup per request ( eg. "orm.query x14 240ms" ). Creates the
16
+ * accumulator on `req.storage.perf` in `before()` — which is the SAME object the
17
+ * action's `AsyncLocalStorage.run(req.storage, …)` exposes, so measurements taken
18
+ * during the request land in it — then flushes it to every PerfSink on the
19
+ * response `finish` event.
20
+ *
21
+ * Config:
22
+ * http.perf.enabled (default true)
23
+ */
24
+ let PerfRollup = class PerfRollup extends ServerMiddleware {
25
+ constructor() {
26
+ super();
27
+ // Needs req.storage ( ReqStorage = -2 ); sits alongside AccessLog ( Order 2 ).
28
+ this.Order = 2;
29
+ }
30
+ before() {
31
+ if (!this.Enabled)
32
+ return null;
33
+ return (req, res, next) => {
34
+ const startedAt = Date.now();
35
+ req.storage.perf = { requestId: req.storage.requestId, byName: {} };
36
+ res.on('finish', () => {
37
+ Perf.flushScope(req.storage.perf, {
38
+ labels: { method: req.method, route: req.route?.path ?? req.originalUrl, status: res.statusCode },
39
+ totalMs: Date.now() - startedAt,
40
+ });
41
+ });
42
+ next();
43
+ };
44
+ }
45
+ after() {
46
+ return null;
47
+ }
48
+ };
49
+ __decorate([
50
+ Config('http.perf.enabled', { defaultValue: true }),
51
+ __metadata("design:type", Boolean)
52
+ ], PerfRollup.prototype, "Enabled", void 0);
53
+ PerfRollup = __decorate([
54
+ Injectable(ServerMiddleware),
55
+ __metadata("design:paramtypes", [])
56
+ ], PerfRollup);
57
+ export { PerfRollup };
58
+ //# sourceMappingURL=PerfRollup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerfRollup.js","sourceRoot":"","sources":["../../../src/middlewares/PerfRollup.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAEzE;;;;;;;;;GASG;AAEI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,gBAAgB;IAI9C;QACE,KAAK,EAAE,CAAC;QACR,+EAA+E;QAC/E,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACpE,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;oBAChC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAG,GAAG,CAAC,KAA2B,EAAE,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE;oBACxH,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBAChC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA1BW;IADT,MAAM,CAAC,mBAAmB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;;2CACxB;AAFjB,UAAU;IADtB,UAAU,CAAC,gBAAgB,CAAC;;GAChB,UAAU,CA4BtB"}
@@ -1,9 +1,8 @@
1
1
  import { Response, NextFunction } from 'express';
2
2
  import { ServerMiddleware, Request as sRequest } from '../interfaces.js';
3
- import * as express from 'express';
4
3
  export declare class RequestId extends ServerMiddleware {
5
4
  constructor();
6
- after(): (_req: sRequest, _res: express.Response, next: express.NextFunction) => void;
5
+ after(): null;
7
6
  before(): (req: sRequest, res: Response<any, Record<string, any>>, next: NextFunction) => void;
8
7
  }
9
8
  //# sourceMappingURL=RequestId.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RequestId.d.ts","sourceRoot":"","sources":["../../../src/middlewares/RequestId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,qBACa,SAAU,SAAQ,gBAAgB;;IAMtC,KAAK,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;IAOrF,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI;CAMtG"}
1
+ {"version":3,"file":"RequestId.d.ts","sourceRoot":"","sources":["../../../src/middlewares/RequestId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMzE,qBACa,SAAU,SAAQ,gBAAgB;;IAMtC,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI;CAqBtG"}
@@ -10,20 +10,34 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { ServerMiddleware } from '../interfaces.js';
11
11
  import { v4 as uuidv4 } from 'uuid';
12
12
  import { Injectable } from '@spinajs/di';
13
+ import { newTraceContext, formatTraceparent } from '@spinajs/log';
13
14
  let RequestId = class RequestId extends ServerMiddleware {
14
15
  constructor() {
15
16
  super();
16
17
  this.Order = 1;
17
18
  }
18
19
  after() {
19
- return (req, res, next) => {
20
- res.header('x-request-id', req.storage.requestId);
21
- next();
22
- };
20
+ // The x-request-id header is set in before() instead. ServerMiddleware
21
+ // after() handlers do NOT run for matched controller routes (the response
22
+ // is flushed inside the controllers router without calling next()), so
23
+ // setting the header here would silently drop it on every real response.
24
+ return null;
23
25
  }
24
26
  before() {
25
- return (req, _res, next) => {
27
+ return (req, res, next) => {
26
28
  req.storage.requestId = uuidv4();
29
+ // Continue an inbound W3C traceparent ( or start a new trace ) and seed
30
+ // traceId / spanId onto req.storage so the ambient log context merges them
31
+ // into every log line — trace ids are shared across services.
32
+ const tc = newTraceContext(req.headers['traceparent']);
33
+ req.storage.traceId = tc.traceId;
34
+ req.storage.spanId = tc.spanId;
35
+ // Emit the outbound traceparent here ( not in after() ) because the
36
+ // `sampled` flag lives on this freshly-computed context and req.storage —
37
+ // typed as the public IActionLocalStoregeContext — deliberately does not
38
+ // carry it. Setting a response header before next() is safe as long as the
39
+ // response has not been sent, mirroring x-request-id.
40
+ res.header('traceparent', formatTraceparent(tc));
27
41
  next();
28
42
  };
29
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RequestId.js","sourceRoot":"","sources":["../../../src/middlewares/RequestId.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,gBAAgB;IAC7C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAEM,KAAK;QACV,OAAO,CAAC,GAAa,EAAE,GAAqB,EAAE,IAA0B,EAAE,EAAE;YAC1E,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM;QACX,OAAO,CAAC,GAAa,EAAE,IAAsB,EAAE,IAA0B,EAAE,EAAE;YAC3E,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;YACjC,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AAnBY,SAAS;IADrB,UAAU,CAAC,gBAAgB,CAAC;;GAChB,SAAS,CAmBrB"}
1
+ {"version":3,"file":"RequestId.js","sourceRoot":"","sources":["../../../src/middlewares/RequestId.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAiB,MAAM,cAAc,CAAC;AAG1E,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,gBAAgB;IAC7C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAEM,KAAK;QACV,uEAAuE;QACvE,0EAA0E;QAC1E,uEAAuE;QACvE,yEAAyE;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM;QACX,OAAO,CAAC,GAAa,EAAE,GAAqB,EAAE,IAA0B,EAAE,EAAE;YAC1E,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,EAAE,CAAC;YAEjC,wEAAwE;YACxE,2EAA2E;YAC3E,8DAA8D;YAC9D,MAAM,EAAE,GAAkB,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAuB,CAAC,CAAC;YAC5F,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;YACjC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;YAE/B,oEAAoE;YACpE,0EAA0E;YAC1E,yEAAyE;YACzE,2EAA2E;YAC3E,sDAAsD;YACtD,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;YAEjD,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AAnCY,SAAS;IADrB,UAAU,CAAC,gBAAgB,CAAC;;GAChB,SAAS,CAmCrB"}
@@ -2,10 +2,9 @@ import { Request, Response, NextFunction } from 'express';
2
2
  import { ParamsDictionary } from 'express-serve-static-core';
3
3
  import { ParsedQs } from 'qs';
4
4
  import { ServerMiddleware } from '../interfaces.js';
5
- import * as express from 'express';
6
5
  export declare class ResponseTime extends ServerMiddleware {
7
6
  constructor();
8
- after(): (req: express.Request, _res: express.Response, _next: express.NextFunction) => void;
7
+ after(): null;
9
8
  before(): (_req: Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>, res: Response<any, Record<string, any>>, next: NextFunction) => void;
10
9
  }
11
10
  //# sourceMappingURL=ResponseTime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseTime.d.ts","sourceRoot":"","sources":["../../../src/middlewares/ResponseTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,qBACa,YAAa,SAAQ,gBAAgB;;IAMzC,KAAK,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,KAAK,IAAI;IAY5F,MAAM,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI;CAMjK"}
1
+ {"version":3,"file":"ResponseTime.d.ts","sourceRoot":"","sources":["../../../src/middlewares/ResponseTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAIzE,qBACa,YAAa,SAAQ,gBAAgB;;IAazC,KAAK,IAAI,IAAI;IAQb,MAAM,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI;CAsBjK"}
@@ -12,21 +12,39 @@ import { Injectable } from '@spinajs/di';
12
12
  let ResponseTime = class ResponseTime extends ServerMiddleware {
13
13
  constructor() {
14
14
  super();
15
- this.Order = -1;
15
+ // Must sit ABOVE Compression (Order 0): the timing header is written from a
16
+ // res.end patch, and compression also patches res.end and flushes the
17
+ // headers. Whichever patch is applied last runs first (outermost), so we
18
+ // need a higher Order than compression to set our header before compression
19
+ // sends it. Same tier as the other end-of-response instrumentation
20
+ // (ServerTiming / AccessLog). The sub-millisecond difference in when the
21
+ // start timestamp is taken is irrelevant for a response-time metric.
22
+ this.Order = 2;
16
23
  }
17
24
  after() {
18
- return (req, res, next) => {
19
- const end = new Date();
20
- const diff = end.getTime() - req.storage.responseStart.getTime();
21
- req.storage.responseEnd = end;
22
- req.storage.responseTime = diff;
23
- res.header('x-response-time', diff.toString());
24
- next();
25
- };
25
+ // Timing is finalised via a res.end patch in before() instead. After()
26
+ // handlers do NOT run for matched controller routes (the response is
27
+ // flushed inside the controllers router without calling next()), so the
28
+ // x-response-time header set here would be dropped on every real response.
29
+ return null;
26
30
  }
27
31
  before() {
28
- return (req, _res, next) => {
29
- req.storage.responseStart = new Date();
32
+ return (req, res, next) => {
33
+ const start = new Date();
34
+ req.storage.responseStart = start;
35
+ // Finalise timing and write the header just before the response is
36
+ // flushed, regardless of how the controller ended it. Headers are still
37
+ // mutable here because the original res.end hasn't run yet.
38
+ const originalEnd = res.end.bind(res);
39
+ res.end = function patchedEnd(...args) {
40
+ const end = new Date();
41
+ req.storage.responseEnd = end;
42
+ req.storage.responseTime = end.getTime() - start.getTime();
43
+ if (!res.headersSent) {
44
+ res.setHeader('x-response-time', String(req.storage.responseTime));
45
+ }
46
+ return originalEnd(...args);
47
+ };
30
48
  next();
31
49
  };
32
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseTime.js","sourceRoot":"","sources":["../../../src/middlewares/ResponseTime.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,gBAAgB;IAChD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAClB,CAAC;IAEM,KAAK;QACV,OAAO,CAAC,GAAa,EAAE,GAAqB,EAAE,IAA0B,EAAE,EAAE;YAC1E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAEjE,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;YAC9B,GAAG,CAAC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/C,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;IAEM,MAAM;QACX,OAAO,CAAC,GAAa,EAAE,IAAsB,EAAE,IAA0B,EAAE,EAAE;YAC3E,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;YACvC,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AAxBY,YAAY;IADxB,UAAU,CAAC,gBAAgB,CAAC;;GAChB,YAAY,CAwBxB"}
1
+ {"version":3,"file":"ResponseTime.js","sourceRoot":"","sources":["../../../src/middlewares/ResponseTime.ts"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,gBAAgB;IAChD;QACE,KAAK,EAAE,CAAC;QACR,4EAA4E;QAC5E,sEAAsE;QACtE,yEAAyE;QACzE,4EAA4E;QAC5E,mEAAmE;QACnE,yEAAyE;QACzE,qEAAqE;QACrE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;IAEM,KAAK;QACV,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,2EAA2E;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM;QACX,OAAO,CAAC,GAAa,EAAE,GAAqB,EAAE,IAA0B,EAAE,EAAE;YAC1E,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;YAElC,mEAAmE;YACnE,wEAAwE;YACxE,4DAA4D;YAC5D,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAmB,CAAC;YACvD,GAAG,CAAC,GAAW,GAAG,SAAS,UAAU,CAAyB,GAAG,IAAW;gBAC3E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;gBAC9B,GAAG,CAAC,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC3D,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACrB,GAAG,CAAC,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC;YAEF,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AA3CY,YAAY;IADxB,UAAU,CAAC,gBAAgB,CAAC;;GAChB,YAAY,CA2CxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/response-methods/file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAItF,qBAAa,WAAY,SAAQ,QAAQ;IAK3B,SAAS,CAAC,OAAO,EAAE,oBAAoB;IAAE,SAAS,CAAC,eAAe,CAAC,EAAE,gBAAgB;IAJjG;;;OAGG;gBACmB,OAAO,EAAE,oBAAoB,EAAY,eAAe,CAAC,EAAE,gBAAgB,YAAA;IAOpF,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BlF;AAED,qBAAa,YAAa,SAAQ,QAAQ;IAK5B,SAAS,CAAC,OAAO,EAAE,oBAAoB;IAAE,SAAS,CAAC,eAAe,CAAC,EAAE,gBAAgB;IAJjG;;;OAGG;gBACmB,OAAO,EAAE,oBAAoB,EAAY,eAAe,CAAC,EAAE,gBAAgB,YAAA;IAOpF,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAyClF;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;IAChC,SAAS,CAAC,IAAI,EAAE,GAAG;IAAE,SAAS,CAAC,QAAQ,EAAE,MAAM;IAAE,SAAS,CAAC,eAAe,CAAC,EAAE,gBAAgB;gBAAnF,IAAI,EAAE,GAAG,EAAY,QAAQ,EAAE,MAAM,EAAY,eAAe,CAAC,EAAE,gBAAgB,YAAA;IAI5F,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBlF"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/response-methods/file.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAMtF,qBAAa,WAAY,SAAQ,QAAQ;IAK3B,SAAS,CAAC,OAAO,EAAE,oBAAoB;IAAE,SAAS,CAAC,eAAe,CAAC,EAAE,gBAAgB;IAJjG;;;OAGG;gBACmB,OAAO,EAAE,oBAAoB,EAAY,eAAe,CAAC,EAAE,gBAAgB,YAAA;IAUpF,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BlF;AAED,qBAAa,YAAa,SAAQ,QAAQ;IAK5B,SAAS,CAAC,OAAO,EAAE,oBAAoB;IAAE,SAAS,CAAC,eAAe,CAAC,EAAE,gBAAgB;IAJjG;;;OAGG;gBACmB,OAAO,EAAE,oBAAoB,EAAY,eAAe,CAAC,EAAE,gBAAgB,YAAA;IAWpF,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA2DlF;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;IAChC,SAAS,CAAC,IAAI,EAAE,GAAG;IAAE,SAAS,CAAC,QAAQ,EAAE,MAAM;IAAE,SAAS,CAAC,eAAe,CAAC,EAAE,gBAAgB;gBAAnF,IAAI,EAAE,GAAG,EAAY,QAAQ,EAAE,MAAM,EAAY,eAAe,CAAC,EAAE,gBAAgB,YAAA;IAI5F,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BlF"}