@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
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.FromXmlRouteArgs = void 0;
10
+ const RouteArgs_js_1 = require("./RouteArgs.js");
11
+ const interfaces_js_1 = require("../interfaces.js");
12
+ const di_1 = require("@spinajs/di");
13
+ const exceptions_1 = require("@spinajs/exceptions");
14
+ const fast_xml_parser_1 = require("fast-xml-parser");
15
+ /**
16
+ * Parses an XML request body into a plain object.
17
+ *
18
+ * Relies on the `express.text` body parser (configured for XML content types)
19
+ * having placed the raw XML string in `req.body`. `@FromXml()` may be given
20
+ * fast-xml-parser {@link X2jOptions} to customise parsing.
21
+ *
22
+ * Malformed XML is reported as a 400 BadRequest rather than an unhandled 500.
23
+ */
24
+ let FromXmlRouteArgs = class FromXmlRouteArgs extends RouteArgs_js_1.RouteArgs {
25
+ get SupportedType() {
26
+ return interfaces_js_1.ParameterType.FromXml;
27
+ }
28
+ async extract(callData, _args, param, req) {
29
+ const body = req.body;
30
+ // No body -> nothing to parse (keep optional params optional).
31
+ if (body === undefined || body === null || body === '') {
32
+ return { CallData: callData, Args: null };
33
+ }
34
+ // Already an object (some upstream parser handled it) -> pass through.
35
+ if (typeof body !== 'string') {
36
+ return { CallData: callData, Args: body };
37
+ }
38
+ const valid = fast_xml_parser_1.XMLValidator.validate(body);
39
+ if (valid !== true) {
40
+ throw new exceptions_1.BadRequest(`Invalid XML body: ${valid.err?.msg ?? 'malformed XML'}`);
41
+ }
42
+ const parser = new fast_xml_parser_1.XMLParser({ ignoreAttributes: false, ...(param.Options ?? {}) });
43
+ try {
44
+ return { CallData: callData, Args: parser.parse(body) };
45
+ }
46
+ catch (err) {
47
+ throw new exceptions_1.BadRequest(`Invalid XML body: ${err.message}`);
48
+ }
49
+ }
50
+ };
51
+ exports.FromXmlRouteArgs = FromXmlRouteArgs;
52
+ exports.FromXmlRouteArgs = FromXmlRouteArgs = __decorate([
53
+ (0, di_1.Injectable)()
54
+ ], FromXmlRouteArgs);
55
+ //# sourceMappingURL=FromXml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FromXml.js","sourceRoot":"","sources":["../../../src/route-args/FromXml.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAA6D;AAC7D,oDAAuF;AACvF,oCAAyC;AACzC,oDAAiD;AACjD,qDAAsE;AAEtE;;;;;;;;GAQG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,wBAAS;IAC7C,IAAW,aAAa;QACtB,OAAO,6BAAa,CAAC,OAAO,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,KAA2C,EAAE,GAAY;QACpH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAEtB,+DAA+D;QAC/D,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,uEAAuE;QACvE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,MAAM,KAAK,GAAG,8BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,uBAAU,CAAC,qBAAqB,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,uBAAU,CAAC,qBAAsB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF,CAAA;AA9BY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,eAAU,GAAE;GACA,gBAAgB,CA8B5B"}
@@ -0,0 +1,43 @@
1
+ import { RouteArgs, IRouteArgsResult } from './RouteArgs.js';
2
+ import { IRouteParameter, ParameterType, IRouteCall, Request } from '../interfaces.js';
3
+ /**
4
+ * Client IP address, as resolved by the RealIp middleware
5
+ * (`req.storage.realIp`, X-Forwarded-For aware with socket fallback).
6
+ */
7
+ export declare class IpRouteArgs extends RouteArgs {
8
+ get SupportedType(): ParameterType | string;
9
+ extract(callData: IRouteCall, _args: unknown[], _param: IRouteParameter, req: Request): Promise<IRouteArgsResult>;
10
+ }
11
+ /**
12
+ * Per-request correlation id set by the RequestId middleware. Same value as
13
+ * the `x-request-id` response header.
14
+ */
15
+ export declare class RequestIdRouteArgs extends RouteArgs {
16
+ get SupportedType(): ParameterType | string;
17
+ extract(callData: IRouteCall, _args: unknown[], _param: IRouteParameter, req: Request): Promise<IRouteArgsResult>;
18
+ }
19
+ /**
20
+ * `User-Agent` request header.
21
+ */
22
+ export declare class UserAgentRouteArgs extends RouteArgs {
23
+ get SupportedType(): ParameterType | string;
24
+ extract(callData: IRouteCall, _args: unknown[], _param: IRouteParameter, req: Request): Promise<IRouteArgsResult>;
25
+ }
26
+ /**
27
+ * `Referer` request header, accepting the alternative `Referrer` spelling.
28
+ */
29
+ export declare class RefererRouteArgs extends RouteArgs {
30
+ get SupportedType(): ParameterType | string;
31
+ extract(callData: IRouteCall, _args: unknown[], _param: IRouteParameter, req: Request): Promise<IRouteArgsResult>;
32
+ }
33
+ /**
34
+ * Raw request body as a Buffer, captured by the express.json `verify` hook.
35
+ * Intended for webhook signature verification, where the exact received bytes
36
+ * must be hashed (JSON round-tripping would change them). Available for JSON
37
+ * requests; undefined otherwise.
38
+ */
39
+ export declare class RawBodyRouteArgs extends RouteArgs {
40
+ get SupportedType(): ParameterType | string;
41
+ extract(callData: IRouteCall, _args: unknown[], _param: IRouteParameter, req: Request): Promise<IRouteArgsResult>;
42
+ }
43
+ //# sourceMappingURL=RequestContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestContext.d.ts","sourceRoot":"","sources":["../../../src/route-args/RequestContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGvF;;;GAGG;AACH,qBACa,WAAY,SAAQ,SAAS;IACxC,IAAW,aAAa,IAAI,aAAa,GAAG,MAAM,CAEjD;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG/H;AAED;;;GAGG;AACH,qBACa,kBAAmB,SAAQ,SAAS;IAC/C,IAAW,aAAa,IAAI,aAAa,GAAG,MAAM,CAEjD;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG/H;AAED;;GAEG;AACH,qBACa,kBAAmB,SAAQ,SAAS;IAC/C,IAAW,aAAa,IAAI,aAAa,GAAG,MAAM,CAEjD;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG/H;AAED;;GAEG;AACH,qBACa,gBAAiB,SAAQ,SAAS;IAC7C,IAAW,aAAa,IAAI,aAAa,GAAG,MAAM,CAEjD;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAI/H;AAED;;;;;GAKG;AACH,qBACa,gBAAiB,SAAQ,SAAS;IAC7C,IAAW,aAAa,IAAI,aAAa,GAAG,MAAM,CAEjD;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG/H"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RawBodyRouteArgs = exports.RefererRouteArgs = exports.UserAgentRouteArgs = exports.RequestIdRouteArgs = exports.IpRouteArgs = void 0;
10
+ const RouteArgs_js_1 = require("./RouteArgs.js");
11
+ const interfaces_js_1 = require("../interfaces.js");
12
+ const di_1 = require("@spinajs/di");
13
+ /**
14
+ * Client IP address, as resolved by the RealIp middleware
15
+ * (`req.storage.realIp`, X-Forwarded-For aware with socket fallback).
16
+ */
17
+ let IpRouteArgs = class IpRouteArgs extends RouteArgs_js_1.RouteArgs {
18
+ get SupportedType() {
19
+ return interfaces_js_1.ParameterType.Ip;
20
+ }
21
+ async extract(callData, _args, _param, req) {
22
+ return { CallData: callData, Args: req.storage?.realIp };
23
+ }
24
+ };
25
+ exports.IpRouteArgs = IpRouteArgs;
26
+ exports.IpRouteArgs = IpRouteArgs = __decorate([
27
+ (0, di_1.Injectable)()
28
+ ], IpRouteArgs);
29
+ /**
30
+ * Per-request correlation id set by the RequestId middleware. Same value as
31
+ * the `x-request-id` response header.
32
+ */
33
+ let RequestIdRouteArgs = class RequestIdRouteArgs extends RouteArgs_js_1.RouteArgs {
34
+ get SupportedType() {
35
+ return interfaces_js_1.ParameterType.RequestId;
36
+ }
37
+ async extract(callData, _args, _param, req) {
38
+ return { CallData: callData, Args: req.storage?.requestId };
39
+ }
40
+ };
41
+ exports.RequestIdRouteArgs = RequestIdRouteArgs;
42
+ exports.RequestIdRouteArgs = RequestIdRouteArgs = __decorate([
43
+ (0, di_1.Injectable)()
44
+ ], RequestIdRouteArgs);
45
+ /**
46
+ * `User-Agent` request header.
47
+ */
48
+ let UserAgentRouteArgs = class UserAgentRouteArgs extends RouteArgs_js_1.RouteArgs {
49
+ get SupportedType() {
50
+ return interfaces_js_1.ParameterType.UserAgent;
51
+ }
52
+ async extract(callData, _args, _param, req) {
53
+ return { CallData: callData, Args: req.headers['user-agent'] };
54
+ }
55
+ };
56
+ exports.UserAgentRouteArgs = UserAgentRouteArgs;
57
+ exports.UserAgentRouteArgs = UserAgentRouteArgs = __decorate([
58
+ (0, di_1.Injectable)()
59
+ ], UserAgentRouteArgs);
60
+ /**
61
+ * `Referer` request header, accepting the alternative `Referrer` spelling.
62
+ */
63
+ let RefererRouteArgs = class RefererRouteArgs extends RouteArgs_js_1.RouteArgs {
64
+ get SupportedType() {
65
+ return interfaces_js_1.ParameterType.Referer;
66
+ }
67
+ async extract(callData, _args, _param, req) {
68
+ const referer = (req.headers.referer ?? req.headers['referrer']);
69
+ return { CallData: callData, Args: referer };
70
+ }
71
+ };
72
+ exports.RefererRouteArgs = RefererRouteArgs;
73
+ exports.RefererRouteArgs = RefererRouteArgs = __decorate([
74
+ (0, di_1.Injectable)()
75
+ ], RefererRouteArgs);
76
+ /**
77
+ * Raw request body as a Buffer, captured by the express.json `verify` hook.
78
+ * Intended for webhook signature verification, where the exact received bytes
79
+ * must be hashed (JSON round-tripping would change them). Available for JSON
80
+ * requests; undefined otherwise.
81
+ */
82
+ let RawBodyRouteArgs = class RawBodyRouteArgs extends RouteArgs_js_1.RouteArgs {
83
+ get SupportedType() {
84
+ return interfaces_js_1.ParameterType.RawBody;
85
+ }
86
+ async extract(callData, _args, _param, req) {
87
+ return { CallData: callData, Args: req.rawBody };
88
+ }
89
+ };
90
+ exports.RawBodyRouteArgs = RawBodyRouteArgs;
91
+ exports.RawBodyRouteArgs = RawBodyRouteArgs = __decorate([
92
+ (0, di_1.Injectable)()
93
+ ], RawBodyRouteArgs);
94
+ //# sourceMappingURL=RequestContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestContext.js","sourceRoot":"","sources":["../../../src/route-args/RequestContext.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAA6D;AAC7D,oDAAuF;AACvF,oCAAyC;AAEzC;;;GAGG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,wBAAS;IACxC,IAAW,aAAa;QACtB,OAAO,6BAAa,CAAC,EAAE,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,MAAuB,EAAE,GAAY;QAChG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3D,CAAC;CACF,CAAA;AARY,kCAAW;sBAAX,WAAW;IADvB,IAAA,eAAU,GAAE;GACA,WAAW,CAQvB;AAED;;;GAGG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,wBAAS;IAC/C,IAAW,aAAa;QACtB,OAAO,6BAAa,CAAC,SAAS,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,MAAuB,EAAE,GAAY;QAChG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;IAC9D,CAAC;CACF,CAAA;AARY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,eAAU,GAAE;GACA,kBAAkB,CAQ9B;AAED;;GAEG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,wBAAS;IAC/C,IAAW,aAAa;QACtB,OAAO,6BAAa,CAAC,SAAS,CAAC;IACjC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,MAAuB,EAAE,GAAY;QAChG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;IACjE,CAAC;CACF,CAAA;AARY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,eAAU,GAAE;GACA,kBAAkB,CAQ9B;AAED;;GAEG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,wBAAS;IAC7C,IAAW,aAAa;QACtB,OAAO,6BAAa,CAAC,OAAO,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,MAAuB,EAAE,GAAY;QAChG,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAuB,CAAC;QACvF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;CACF,CAAA;AATY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,eAAU,GAAE;GACA,gBAAgB,CAS5B;AAED;;;;;GAKG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,wBAAS;IAC7C,IAAW,aAAa;QACtB,OAAO,6BAAa,CAAC,OAAO,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,MAAuB,EAAE,GAAY;QAChG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACnD,CAAC;CACF,CAAA;AARY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,eAAU,GAAE;GACA,gBAAgB,CAQ5B"}
@@ -12,7 +12,7 @@ export declare class RequestTypeRouteArgs extends RouteArgs {
12
12
  get SupportedType(): ParameterType;
13
13
  extract(callData: IRouteCall, _args: unknown[], _param: IRouteParameter, req: express.Request, _res: express.Response, _route: IRoute): Promise<{
14
14
  CallData: IRouteCall;
15
- Args: HttpAcceptHeaders.JSON | HttpAcceptHeaders.HTML | HttpAcceptHeaders.IMAGE | HttpAcceptHeaders.PDF | HttpAcceptHeaders.OTHER;
15
+ Args: HttpAcceptHeaders.JSON | HttpAcceptHeaders.HTML | HttpAcceptHeaders.TEXT | HttpAcceptHeaders.IMAGE | HttpAcceptHeaders.PDF | HttpAcceptHeaders.OTHER;
16
16
  }>;
17
17
  }
18
18
  export declare class QueryFieldRouteArg extends RouteArgs {
@@ -1 +1 @@
1
- {"version":3,"file":"RequestFields.d.ts","sourceRoot":"","sources":["../../../src/route-args/RequestFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,qBACa,kBAAmB,SAAQ,SAAS;IAC/C,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAC,KAAK,EAAG,OAAO,EAAG,EAAG,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CAMrJ;AACD,qBACa,oBAAqB,SAAQ,SAAS;IACjD,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAC,KAAK,EAAG,OAAO,EAAG,EAAG,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CA+BrJ;AAED,qBACa,kBAAmB,SAAQ,SAAS;IAC/C,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAG,OAAO,EAAG,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CAMrJ;AAED,qBACa,oBAAqB,SAAQ,SAAS;IACjD,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAC,KAAK,EAAG,OAAO,EAAG,EAAG,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CAMrJ;AAED,qBACa,kBAAmB,SAAQ,SAAS;IAC/C,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAG,OAAO,EAAG,EAAG,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CAMtJ"}
1
+ {"version":3,"file":"RequestFields.d.ts","sourceRoot":"","sources":["../../../src/route-args/RequestFields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,qBACa,kBAAmB,SAAQ,SAAS;IAC/C,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAC,KAAK,EAAG,OAAO,EAAG,EAAG,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CAMrJ;AACD,qBACa,oBAAqB,SAAQ,SAAS;IACjD,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAC,KAAK,EAAG,OAAO,EAAG,EAAG,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CAgCrJ;AAED,qBACa,kBAAmB,SAAQ,SAAS;IAC/C,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAG,OAAO,EAAG,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CAMrJ;AAED,qBACa,oBAAqB,SAAQ,SAAS;IACjD,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAC,KAAK,EAAG,OAAO,EAAG,EAAG,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CAMrJ;AAED,qBACa,kBAAmB,SAAQ,SAAS;IAC/C,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAG,OAAO,EAAG,EAAG,MAAM,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;CAMtJ"}
@@ -38,6 +38,7 @@ let RequestTypeRouteArgs = class RequestTypeRouteArgs extends RouteArgs_js_1.Rou
38
38
  break;
39
39
  case 'text/plain':
40
40
  acceptHeader = interfaces_js_1.HttpAcceptHeaders.TEXT;
41
+ break;
41
42
  case 'image/png':
42
43
  case 'image/jpeg':
43
44
  case 'image/*':
@@ -1 +1 @@
1
- {"version":3,"file":"RequestFields.js","sourceRoot":"","sources":["../../../src/route-args/RequestFields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RequestFields.js","sourceRoot":"","sources":["../../../src/route-args/RequestFields.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteArgs.d.ts","sourceRoot":"","sources":["../../../src/route-args/RouteArgs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,GAAG,GAAG,CAa5F;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,aAAa,GAAG,MAAM,CAAC;IAEtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrK;AAED,8BAAsB,SAAU,YAAW,UAAU;IAEnD,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAE5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,KAAK,aAAa,IAAI,aAAa,GAAG,MAAM,CAAC;aAErC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;cAEnK,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM;cAsCxE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG;IAKhF,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe;IAW5C,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe;IAuB3D,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe;IAI9C,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG;CAoB3D"}
1
+ {"version":3,"file":"RouteArgs.d.ts","sourceRoot":"","sources":["../../../src/route-args/RouteArgs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAGtE;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,GAAG,GAAG,CAa5F;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,aAAa,GAAG,MAAM,CAAC;IAEtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrK;AAED,8BAAsB,SAAU,YAAW,UAAU;IAEnD,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC;IAE5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,KAAK,aAAa,IAAI,aAAa,GAAG,MAAM,CAAC;aAErC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;cAEnK,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM;cAwDxE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG;IAKhF,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe;IAW5C,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,eAAe;IAkC3D,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,eAAe;IAI9C,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG;CA8B3D"}
@@ -43,6 +43,21 @@ function extractSchemaFromRuntimeType(runtimeType, validator) {
43
43
  }
44
44
  class RouteArgs {
45
45
  async tryHydrateParam(arg, routeParameter, route) {
46
+ // Enforce presence for params explicitly marked `{ required: true }` BEFORE
47
+ // the null/undefined skip below (absent optional params are intentionally
48
+ // not validated). Params without the flag keep the old optional behavior.
49
+ if (routeParameter.Options?.required === true && (arg === undefined || arg === null || arg === '')) {
50
+ throw new validation_1.ValidationFailed(`Parameter '${routeParameter.Name}' is required`, [
51
+ {
52
+ propertyName: routeParameter.Name,
53
+ message: `Parameter '${routeParameter.Name}' is required`,
54
+ keyword: 'required',
55
+ params: { missingParameter: routeParameter.Name },
56
+ schemaPath: '#/required',
57
+ instancePath: routeParameter.Name,
58
+ },
59
+ ]);
60
+ }
46
61
  let result = null;
47
62
  let schema = null;
48
63
  let hydrator = null;
@@ -61,14 +76,16 @@ class RouteArgs {
61
76
  }
62
77
  if (this.isRuntimeType(routeParameter)) {
63
78
  result = this.fromRuntimeType(routeParameter, arg);
64
- if (schema) {
79
+ // absent optional params are not validated - validator treats null / undefined data as failure
80
+ if (schema && result !== null && result !== undefined) {
65
81
  this.Validator.validate(schema, result);
66
82
  }
67
83
  }
68
84
  else {
69
85
  hydrator = this.getHydrator(routeParameter);
70
86
  result = hydrator ? arg : this.tryExtractObject(arg, routeParameter);
71
- if (schema) {
87
+ // absent optional params are not validated - validator treats null / undefined data as failure
88
+ if (schema && result !== null && result !== undefined) {
72
89
  this.Validator.validate(schema, result);
73
90
  }
74
91
  if (hydrator) {
@@ -93,13 +110,24 @@ class RouteArgs {
93
110
  }
94
111
  tryExtractObject(arg, param) {
95
112
  try {
96
- if ((0, di_1.isClass)(param.RuntimeType)) {
97
- return new param.RuntimeType(lodash_1.default.isString(arg) ? JSON.parse(arg) : arg);
98
- }
99
- else if (param.RuntimeType instanceof di_1.TypedArray) {
113
+ // TypedArray must be checked BEFORE isClass: a TypedArray instance's
114
+ // constructor is `class TypedArray`, so isClass() reports true for it and
115
+ // would (wrongly) try `new <instance>()`. Handle the typed-array case here.
116
+ if (param.RuntimeType instanceof di_1.TypedArray) {
100
117
  const type = param.RuntimeType.Type;
101
118
  const arrData = lodash_1.default.isString(arg) ? JSON.parse(arg) : arg;
102
- return arrData ? arrData.map((x) => new type(x)) : [];
119
+ if (arrData === null || arrData === undefined) {
120
+ return [];
121
+ }
122
+ if (!Array.isArray(arrData)) {
123
+ // A typed-array param requires a JSON array; a non-array value is a
124
+ // client error (400), not an uncaught TypeError from .map (500).
125
+ throw new exceptions_1.InvalidArgument(`Parameter '${param.Name}' must be a JSON array`, param.Name);
126
+ }
127
+ return arrData.map((x) => new type(x));
128
+ }
129
+ else if ((0, di_1.isClass)(param.RuntimeType)) {
130
+ return new param.RuntimeType(lodash_1.default.isString(arg) ? JSON.parse(arg) : arg);
103
131
  }
104
132
  else if (param.RuntimeType.name === 'Object' || param.RuntimeType.name === 'Array') {
105
133
  return lodash_1.default.isString(arg) ? JSON.parse(arg) : arg;
@@ -124,11 +152,23 @@ class RouteArgs {
124
152
  case 'String':
125
153
  return arg;
126
154
  case 'Number':
127
- return arg ? Number(arg) : undefined;
155
+ // Only treat truly-absent values as undefined — `0` is a valid number
156
+ // and must not be coerced away (JSON body can carry a literal 0).
157
+ return arg === undefined || arg === null || arg === '' ? undefined : Number(arg);
128
158
  case 'BigInt':
129
- return BigInt(arg);
159
+ try {
160
+ return BigInt(arg);
161
+ }
162
+ catch (err) {
163
+ throw new exceptions_1.InvalidArgument(`Argument '${param.Name}' is not a valid integer`, err);
164
+ }
130
165
  case 'Boolean':
131
- return arg ? (arg === 1 ? true : arg.toLowerCase() === 'true' ? true : false) : false;
166
+ // A JSON body can deliver a real boolean; return it as-is instead of
167
+ // calling String.toLowerCase on it (which threw). Query/param values
168
+ // arrive as strings and are matched case-insensitively.
169
+ if (typeof arg === 'boolean')
170
+ return arg;
171
+ return arg ? arg === 1 || String(arg).toLowerCase() === 'true' : false;
132
172
  case 'Undefined':
133
173
  return undefined;
134
174
  case 'Null':
@@ -1 +1 @@
1
- {"version":3,"file":"RouteArgs.js","sourceRoot":"","sources":["../../../src/route-args/RouteArgs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RouteArgs.js","sourceRoot":"","sources":["../../../src/route-args/RouteArgs.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export * from './FromForm.js';
8
8
  export * from './FromHeaderArg.js';
9
9
  export * from './FromParams.js';
10
10
  export * from './FromQuery.js';
11
+ export * from './FromXml.js';
12
+ export * from './RequestContext.js';
11
13
  export * from './RouteArgs.js';
12
14
  export * from './RequestFields.js';
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/route-args/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/route-args/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -24,6 +24,8 @@ __exportStar(require("./FromForm.js"), exports);
24
24
  __exportStar(require("./FromHeaderArg.js"), exports);
25
25
  __exportStar(require("./FromParams.js"), exports);
26
26
  __exportStar(require("./FromQuery.js"), exports);
27
+ __exportStar(require("./FromXml.js"), exports);
28
+ __exportStar(require("./RequestContext.js"), exports);
27
29
  __exportStar(require("./RouteArgs.js"), exports);
28
30
  __exportStar(require("./RequestFields.js"), exports);
29
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/route-args/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,mDAAiC;AACjC,gDAA8B;AAC9B,kDAAgC;AAChC,8CAA4B;AAC5B,gDAA8B;AAC9B,qDAAmC;AACnC,kDAAgC;AAChC,iDAA+B;AAC/B,iDAA+B;AAC/B,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/route-args/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,mDAAiC;AACjC,gDAA8B;AAC9B,kDAAgC;AAChC,8CAA4B;AAC5B,gDAA8B;AAC9B,qDAAmC;AACnC,kDAAgC;AAChC,iDAA+B;AAC/B,+CAA6B;AAC7B,sDAAoC;AACpC,iDAA+B;AAC/B,qDAAmC"}
@@ -5,7 +5,7 @@ import '@spinajs/templates-pug';
5
5
  import { Server as Http } from 'http';
6
6
  import { Server as Https } from 'https';
7
7
  import Express, { ErrorRequestHandler, RequestHandler } from 'express';
8
- import { ServerMiddleware, IHttpServerConfiguration } from './interfaces.js';
8
+ import { ServerMiddleware, IHttpServerConfiguration, LifecycleState } from './interfaces.js';
9
9
  import './transformers/index.js';
10
10
  import './middlewares/ResponseTime.js';
11
11
  import './middlewares/RequestId.js';
@@ -25,6 +25,7 @@ export declare class HttpServer extends AsyncService {
25
25
  protected HttpConfig: IHttpServerConfiguration;
26
26
  protected HttpsEnabled: boolean;
27
27
  protected AppEnv: string;
28
+ protected ShutdownTimeout: number;
28
29
  /**
29
30
  * Express app instance
30
31
  */
@@ -38,6 +39,23 @@ export declare class HttpServer extends AsyncService {
38
39
  * Track active connections for cleanup
39
40
  */
40
41
  protected _connections: Set<any>;
42
+ /**
43
+ * Lifecycle state. All three public entry points ( start / stop / dispose )
44
+ * transition through it so double-close, restart and idempotency are decided
45
+ * in one place.
46
+ */
47
+ protected _state: LifecycleState;
48
+ /**
49
+ * The in-flight close promise, so concurrent / repeated stop() calls share one
50
+ * shutdown rather than each issuing a second Server.close().
51
+ */
52
+ protected _closePromise: Promise<void> | null;
53
+ /**
54
+ * After-middlewares ( NotFound / ErrorHandler / ServerTiming ... ) attach to
55
+ * the Express app exactly once per instance. Restart must not re-stack them.
56
+ */
57
+ protected _afterAttached: boolean;
58
+ get State(): LifecycleState;
41
59
  get Server(): Http | Https;
42
60
  /**
43
61
  * Logger for this module
@@ -57,11 +75,26 @@ export declare class HttpServer extends AsyncService {
57
75
  * Starts http server & express
58
76
  */
59
77
  start(): Promise<void>;
60
- stop(): void;
61
78
  /**
62
- * Enhanced dispose method with proper connection cleanup and timeout handling
79
+ * Emit a lifecycle event on the DI bus, isolating the state machine from a
80
+ * throwing subscriber. Container.emit is synchronous, so without this guard a
81
+ * listener that throws would pre-empt the caller - eg. a throwing
82
+ * `http.server.listening` listener runs before res() and would hang start(),
83
+ * and a throwing `http.server.closing` listener would escape stop().
84
+ */
85
+ protected _emit(event: string): void;
86
+ stop(): Promise<void>;
87
+ /**
88
+ * AsyncService teardown. HttpServer holds no resources beyond the socket
89
+ * server and its tracked connections, both released by stop(); this awaits it.
63
90
  */
64
91
  dispose(): Promise<void>;
92
+ /**
93
+ * Single shutdown path for both stop() and dispose(). Idempotent: repeated or
94
+ * concurrent calls share one Server.close() instead of issuing a second one
95
+ * ( which would reject with ERR_SERVER_NOT_RUNNING ).
96
+ */
97
+ protected _close(): Promise<void>;
65
98
  /**
66
99
  * Force close all tracked connections
67
100
  */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAiD,MAAM,aAAa,CAAC;AACtG,OAAO,EAAU,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAU,GAAG,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAE,MAAM,IAAI,IAAI,EAAoC,MAAM,MAAM,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,KAAK,EAAqC,MAAM,OAAO,CAAC;AAE3E,OAAO,OAAO,EAAE,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIvE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,yBAAyB,CAAC;AACjC,OAAO,+BAA+B,CAAC;AACvC,OAAO,4BAA4B,CAAC;AACpC,OAAO,yBAAyB,CAAC;AACjC,OAAO,6BAA6B,CAAC;AACrC,OAAO,2BAA2B,CAAC;AACnC,OAAO,+BAA+B,CAAC;AACvC,OAAO,4BAA4B,CAAC;AACpC,OAAO,8BAA8B,CAAC;AACtC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qCAAqC,CAAC;AAC7C,OAAO,+BAA+B,CAAC;AAEvC,qBAEa,UAAW,SAAQ,YAAY;IAE1C,SAAS,CAAC,aAAa,EAAG,aAAa,CAAC;IAGxC,SAAS,CAAC,SAAS,EAAG,UAAU,CAAC;IAGjC,SAAS,CAAC,WAAW,EAAG,gBAAgB,EAAE,CAAC;IAG3C,SAAS,CAAC,UAAU,EAAG,wBAAwB,CAAC;IAGhD,SAAS,CAAC,YAAY,EAAG,OAAO,CAAC;IAKjC,SAAS,CAAC,MAAM,EAAG,MAAM,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC,OAAO,CAAC;IAEpC;;OAEG;IACH,SAAS,CAAC,WAAW,EAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,YAAY,EAAG,KAAK,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,YAAY,WAAkB;IAExC,IAAW,MAAM,IAAI,IAAI,GAAG,KAAK,CAEhC;IAED;;OAEG;IAEH,SAAS,CAAC,GAAG,EAAG,GAAG,CAAC;;IAMP,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCrC;;OAEG;IACH,OAAO,CAAC,aAAa;IAuCrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACI,KAAK;IAwBL,IAAI;IAMX;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CrC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;;OAIG;IACI,GAAG,CAAC,UAAU,EAAE,cAAc,GAAG,mBAAmB,GAAG,IAAI;CAGnE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAiD,MAAM,aAAa,CAAC;AACtG,OAAO,EAAU,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAU,GAAG,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAE,MAAM,IAAI,IAAI,EAAoC,MAAM,MAAM,CAAC;AACxE,OAAO,EAAE,MAAM,IAAI,KAAK,EAAqC,MAAM,OAAO,CAAC;AAE3E,OAAO,OAAO,EAAE,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIvE,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,yBAAyB,CAAC;AACjC,OAAO,+BAA+B,CAAC;AACvC,OAAO,4BAA4B,CAAC;AACpC,OAAO,yBAAyB,CAAC;AACjC,OAAO,6BAA6B,CAAC;AACrC,OAAO,2BAA2B,CAAC;AACnC,OAAO,+BAA+B,CAAC;AACvC,OAAO,4BAA4B,CAAC;AACpC,OAAO,8BAA8B,CAAC;AACtC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qCAAqC,CAAC;AAC7C,OAAO,+BAA+B,CAAC;AAEvC,qBAEa,UAAW,SAAQ,YAAY;IAE1C,SAAS,CAAC,aAAa,EAAG,aAAa,CAAC;IAGxC,SAAS,CAAC,SAAS,EAAG,UAAU,CAAC;IAGjC,SAAS,CAAC,WAAW,EAAG,gBAAgB,EAAE,CAAC;IAG3C,SAAS,CAAC,UAAU,EAAG,wBAAwB,CAAC;IAGhD,SAAS,CAAC,YAAY,EAAG,OAAO,CAAC;IAKjC,SAAS,CAAC,MAAM,EAAG,MAAM,CAAC;IAK1B,SAAS,CAAC,eAAe,EAAG,MAAM,CAAC;IAEnC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC,OAAO,CAAC;IAEpC;;OAEG;IACH,SAAS,CAAC,WAAW,EAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,YAAY,EAAG,KAAK,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,YAAY,WAAkB;IAExC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,cAAc,CAA0B;IAE1D;;;OAGG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAQ;IAErD;;;OAGG;IACH,SAAS,CAAC,cAAc,UAAS;IAEjC,IAAW,KAAK,IAAI,cAAc,CAEjC;IAED,IAAW,MAAM,IAAI,IAAI,GAAG,KAAK,CAEhC;IAED;;OAEG;IAEH,SAAS,CAAC,GAAG,EAAG,GAAG,CAAC;;IAMP,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCrC;;OAEG;IACH,OAAO,CAAC,aAAa;IAuDrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CnC;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;;;OAIG;IACH,SAAS,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAoDjC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;;OAIG;IACI,GAAG,CAAC,UAAU,EAAE,cAAc,GAAG,mBAAmB,GAAG,IAAI;CAGnE"}