@spinajs/http 2.0.481 → 2.0.484

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 (189) hide show
  1. package/lib/cjs/config/http.d.ts +15 -7
  2. package/lib/cjs/config/http.d.ts.map +1 -1
  3. package/lib/cjs/config/http.js +28 -9
  4. package/lib/cjs/config/http.js.map +1 -1
  5. package/lib/cjs/controllers.d.ts.map +1 -1
  6. package/lib/cjs/controllers.js +48 -12
  7. package/lib/cjs/controllers.js.map +1 -1
  8. package/lib/cjs/cookie.d.ts +8 -0
  9. package/lib/cjs/cookie.d.ts.map +1 -0
  10. package/lib/cjs/cookie.js +40 -0
  11. package/lib/cjs/cookie.js.map +1 -0
  12. package/lib/cjs/decorators.d.ts +46 -4
  13. package/lib/cjs/decorators.d.ts.map +1 -1
  14. package/lib/cjs/decorators.js +127 -23
  15. package/lib/cjs/decorators.js.map +1 -1
  16. package/lib/cjs/error.js +3 -3
  17. package/lib/cjs/error.js.map +1 -1
  18. package/lib/cjs/file-middlewares/validation.d.ts +11 -0
  19. package/lib/cjs/file-middlewares/validation.d.ts.map +1 -1
  20. package/lib/cjs/file-middlewares/validation.js +52 -9
  21. package/lib/cjs/file-middlewares/validation.js.map +1 -1
  22. package/lib/cjs/file-middlewares/zip.d.ts.map +1 -1
  23. package/lib/cjs/file-middlewares/zip.js +6 -1
  24. package/lib/cjs/file-middlewares/zip.js.map +1 -1
  25. package/lib/cjs/index.d.ts +1 -0
  26. package/lib/cjs/index.d.ts.map +1 -1
  27. package/lib/cjs/index.js +1 -0
  28. package/lib/cjs/index.js.map +1 -1
  29. package/lib/cjs/interfaces.d.ts +95 -1
  30. package/lib/cjs/interfaces.d.ts.map +1 -1
  31. package/lib/cjs/interfaces.js +100 -4
  32. package/lib/cjs/interfaces.js.map +1 -1
  33. package/lib/cjs/middlewares/PerfRollup.d.ts +19 -0
  34. package/lib/cjs/middlewares/PerfRollup.d.ts.map +1 -0
  35. package/lib/cjs/middlewares/PerfRollup.js +61 -0
  36. package/lib/cjs/middlewares/PerfRollup.js.map +1 -0
  37. package/lib/cjs/middlewares/RequestId.d.ts +1 -2
  38. package/lib/cjs/middlewares/RequestId.d.ts.map +1 -1
  39. package/lib/cjs/middlewares/RequestId.js +19 -5
  40. package/lib/cjs/middlewares/RequestId.js.map +1 -1
  41. package/lib/cjs/middlewares/ResponseTime.d.ts +1 -2
  42. package/lib/cjs/middlewares/ResponseTime.d.ts.map +1 -1
  43. package/lib/cjs/middlewares/ResponseTime.js +29 -11
  44. package/lib/cjs/middlewares/ResponseTime.js.map +1 -1
  45. package/lib/cjs/response-methods/file.d.ts.map +1 -1
  46. package/lib/cjs/response-methods/file.js +47 -21
  47. package/lib/cjs/response-methods/file.js.map +1 -1
  48. package/lib/cjs/response-methods/index.d.ts +3 -0
  49. package/lib/cjs/response-methods/index.d.ts.map +1 -1
  50. package/lib/cjs/response-methods/index.js +3 -0
  51. package/lib/cjs/response-methods/index.js.map +1 -1
  52. package/lib/cjs/response-methods/redirect.d.ts +11 -4
  53. package/lib/cjs/response-methods/redirect.d.ts.map +1 -1
  54. package/lib/cjs/response-methods/redirect.js +14 -4
  55. package/lib/cjs/response-methods/redirect.js.map +1 -1
  56. package/lib/cjs/response-methods/xml.d.ts +17 -0
  57. package/lib/cjs/response-methods/xml.d.ts.map +1 -0
  58. package/lib/cjs/response-methods/xml.js +26 -0
  59. package/lib/cjs/response-methods/xml.js.map +1 -0
  60. package/lib/cjs/responses.d.ts +10 -0
  61. package/lib/cjs/responses.d.ts.map +1 -1
  62. package/lib/cjs/responses.js +94 -35
  63. package/lib/cjs/responses.js.map +1 -1
  64. package/lib/cjs/route-args/FromBody.d.ts.map +1 -1
  65. package/lib/cjs/route-args/FromBody.js +6 -1
  66. package/lib/cjs/route-args/FromBody.js.map +1 -1
  67. package/lib/cjs/route-args/FromForm.d.ts +1 -1
  68. package/lib/cjs/route-args/FromForm.d.ts.map +1 -1
  69. package/lib/cjs/route-args/FromForm.js +116 -37
  70. package/lib/cjs/route-args/FromForm.js.map +1 -1
  71. package/lib/cjs/route-args/FromXml.d.ts +17 -0
  72. package/lib/cjs/route-args/FromXml.d.ts.map +1 -0
  73. package/lib/cjs/route-args/FromXml.js +55 -0
  74. package/lib/cjs/route-args/FromXml.js.map +1 -0
  75. package/lib/cjs/route-args/RequestContext.d.ts +43 -0
  76. package/lib/cjs/route-args/RequestContext.d.ts.map +1 -0
  77. package/lib/cjs/route-args/RequestContext.js +94 -0
  78. package/lib/cjs/route-args/RequestContext.js.map +1 -0
  79. package/lib/cjs/route-args/RequestFields.d.ts +1 -1
  80. package/lib/cjs/route-args/RequestFields.d.ts.map +1 -1
  81. package/lib/cjs/route-args/RequestFields.js +1 -0
  82. package/lib/cjs/route-args/RequestFields.js.map +1 -1
  83. package/lib/cjs/route-args/RouteArgs.d.ts.map +1 -1
  84. package/lib/cjs/route-args/RouteArgs.js +50 -10
  85. package/lib/cjs/route-args/RouteArgs.js.map +1 -1
  86. package/lib/cjs/route-args/index.d.ts +2 -0
  87. package/lib/cjs/route-args/index.d.ts.map +1 -1
  88. package/lib/cjs/route-args/index.js +2 -0
  89. package/lib/cjs/route-args/index.js.map +1 -1
  90. package/lib/cjs/server.d.ts +36 -3
  91. package/lib/cjs/server.d.ts.map +1 -1
  92. package/lib/cjs/server.js +131 -42
  93. package/lib/cjs/server.js.map +1 -1
  94. package/lib/mjs/config/http.d.ts +15 -7
  95. package/lib/mjs/config/http.d.ts.map +1 -1
  96. package/lib/mjs/config/http.js +28 -9
  97. package/lib/mjs/config/http.js.map +1 -1
  98. package/lib/mjs/controllers.d.ts.map +1 -1
  99. package/lib/mjs/controllers.js +46 -10
  100. package/lib/mjs/controllers.js.map +1 -1
  101. package/lib/mjs/cookie.d.ts +8 -0
  102. package/lib/mjs/cookie.d.ts.map +1 -0
  103. package/lib/mjs/cookie.js +32 -0
  104. package/lib/mjs/cookie.js.map +1 -0
  105. package/lib/mjs/decorators.d.ts +46 -4
  106. package/lib/mjs/decorators.d.ts.map +1 -1
  107. package/lib/mjs/decorators.js +121 -24
  108. package/lib/mjs/decorators.js.map +1 -1
  109. package/lib/mjs/error.js +3 -3
  110. package/lib/mjs/error.js.map +1 -1
  111. package/lib/mjs/file-middlewares/validation.d.ts +11 -0
  112. package/lib/mjs/file-middlewares/validation.d.ts.map +1 -1
  113. package/lib/mjs/file-middlewares/validation.js +53 -10
  114. package/lib/mjs/file-middlewares/validation.js.map +1 -1
  115. package/lib/mjs/file-middlewares/zip.d.ts.map +1 -1
  116. package/lib/mjs/file-middlewares/zip.js +6 -1
  117. package/lib/mjs/file-middlewares/zip.js.map +1 -1
  118. package/lib/mjs/index.d.ts +1 -0
  119. package/lib/mjs/index.d.ts.map +1 -1
  120. package/lib/mjs/index.js +1 -0
  121. package/lib/mjs/index.js.map +1 -1
  122. package/lib/mjs/interfaces.d.ts +95 -1
  123. package/lib/mjs/interfaces.d.ts.map +1 -1
  124. package/lib/mjs/interfaces.js +65 -2
  125. package/lib/mjs/interfaces.js.map +1 -1
  126. package/lib/mjs/middlewares/PerfRollup.d.ts +19 -0
  127. package/lib/mjs/middlewares/PerfRollup.d.ts.map +1 -0
  128. package/lib/mjs/middlewares/PerfRollup.js +58 -0
  129. package/lib/mjs/middlewares/PerfRollup.js.map +1 -0
  130. package/lib/mjs/middlewares/RequestId.d.ts +1 -2
  131. package/lib/mjs/middlewares/RequestId.d.ts.map +1 -1
  132. package/lib/mjs/middlewares/RequestId.js +19 -5
  133. package/lib/mjs/middlewares/RequestId.js.map +1 -1
  134. package/lib/mjs/middlewares/ResponseTime.d.ts +1 -2
  135. package/lib/mjs/middlewares/ResponseTime.d.ts.map +1 -1
  136. package/lib/mjs/middlewares/ResponseTime.js +29 -11
  137. package/lib/mjs/middlewares/ResponseTime.js.map +1 -1
  138. package/lib/mjs/response-methods/file.d.ts.map +1 -1
  139. package/lib/mjs/response-methods/file.js +41 -15
  140. package/lib/mjs/response-methods/file.js.map +1 -1
  141. package/lib/mjs/response-methods/index.d.ts +3 -0
  142. package/lib/mjs/response-methods/index.d.ts.map +1 -1
  143. package/lib/mjs/response-methods/index.js +3 -0
  144. package/lib/mjs/response-methods/index.js.map +1 -1
  145. package/lib/mjs/response-methods/redirect.d.ts +11 -4
  146. package/lib/mjs/response-methods/redirect.d.ts.map +1 -1
  147. package/lib/mjs/response-methods/redirect.js +15 -5
  148. package/lib/mjs/response-methods/redirect.js.map +1 -1
  149. package/lib/mjs/response-methods/xml.d.ts +17 -0
  150. package/lib/mjs/response-methods/xml.d.ts.map +1 -0
  151. package/lib/mjs/response-methods/xml.js +22 -0
  152. package/lib/mjs/response-methods/xml.js.map +1 -0
  153. package/lib/mjs/responses.d.ts +10 -0
  154. package/lib/mjs/responses.d.ts.map +1 -1
  155. package/lib/mjs/responses.js +93 -35
  156. package/lib/mjs/responses.js.map +1 -1
  157. package/lib/mjs/route-args/FromBody.d.ts.map +1 -1
  158. package/lib/mjs/route-args/FromBody.js +6 -1
  159. package/lib/mjs/route-args/FromBody.js.map +1 -1
  160. package/lib/mjs/route-args/FromForm.d.ts +1 -1
  161. package/lib/mjs/route-args/FromForm.d.ts.map +1 -1
  162. package/lib/mjs/route-args/FromForm.js +114 -38
  163. package/lib/mjs/route-args/FromForm.js.map +1 -1
  164. package/lib/mjs/route-args/FromXml.d.ts +17 -0
  165. package/lib/mjs/route-args/FromXml.d.ts.map +1 -0
  166. package/lib/mjs/route-args/FromXml.js +52 -0
  167. package/lib/mjs/route-args/FromXml.js.map +1 -0
  168. package/lib/mjs/route-args/RequestContext.d.ts +43 -0
  169. package/lib/mjs/route-args/RequestContext.d.ts.map +1 -0
  170. package/lib/mjs/route-args/RequestContext.js +91 -0
  171. package/lib/mjs/route-args/RequestContext.js.map +1 -0
  172. package/lib/mjs/route-args/RequestFields.d.ts +1 -1
  173. package/lib/mjs/route-args/RequestFields.d.ts.map +1 -1
  174. package/lib/mjs/route-args/RequestFields.js +1 -0
  175. package/lib/mjs/route-args/RequestFields.js.map +1 -1
  176. package/lib/mjs/route-args/RouteArgs.d.ts.map +1 -1
  177. package/lib/mjs/route-args/RouteArgs.js +51 -11
  178. package/lib/mjs/route-args/RouteArgs.js.map +1 -1
  179. package/lib/mjs/route-args/index.d.ts +2 -0
  180. package/lib/mjs/route-args/index.d.ts.map +1 -1
  181. package/lib/mjs/route-args/index.js +2 -0
  182. package/lib/mjs/route-args/index.js.map +1 -1
  183. package/lib/mjs/server.d.ts +36 -3
  184. package/lib/mjs/server.d.ts.map +1 -1
  185. package/lib/mjs/server.js +132 -43
  186. package/lib/mjs/server.js.map +1 -1
  187. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  188. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  189. package/package.json +17 -12
@@ -4,8 +4,15 @@ import { DI } from '@spinajs/di';
4
4
  import { Log } from '@spinajs/log-common';
5
5
  import * as randomstring from 'randomstring';
6
6
  import { Templates } from '@spinajs/templates';
7
- import { ServerError } from './index.js';
7
+ // NOTE: import the exception, not the `ServerError` *response* from './index.js'.
8
+ // That barrel import created the cycle interfaces -> responses -> index ->
9
+ // response-methods/badRequest -> interfaces, which blew up with
10
+ // "Cannot access 'Response' before initialization" whenever a module other
11
+ // than index.js (eg. server.js) was the entry point. `UnexpectedServerError`
12
+ // is mapped back to the ServerError response by __handle_error__ anyway.
13
+ import { UnexpectedServerError } from '@spinajs/exceptions';
8
14
  import * as cs from 'cookie-signature';
15
+ import { XMLBuilder } from 'fast-xml-parser';
9
16
  export function _setCoockies(res, options) {
10
17
  const cfg = DI.get(Configuration);
11
18
  if (!cfg) {
@@ -45,7 +52,9 @@ export function jsonResponse(model, options) {
45
52
  res.status(options?.StatusCode ? options?.StatusCode : HTTP_STATUS_CODE.OK);
46
53
  _setCoockies(res, options);
47
54
  _setHeaders(res, options);
48
- if (model) {
55
+ // Presence check, not truthiness: 0 / false / '' are valid JSON bodies and
56
+ // must be sent. Only undefined / null mean "no body".
57
+ if (model !== undefined && model !== null) {
49
58
  res.json(model);
50
59
  }
51
60
  else {
@@ -64,10 +73,36 @@ export function textResponse(model, options) {
64
73
  res.status(options?.StatusCode ? options?.StatusCode : HTTP_STATUS_CODE.OK);
65
74
  _setCoockies(res, options);
66
75
  _setHeaders(res, options);
67
- if (model) {
76
+ // Presence check, not truthiness: 0 / false / '' are valid bodies. Only
77
+ // undefined / null end the response empty (and always terminate it —
78
+ // otherwise a missing body on this fallback path hangs until timeout).
79
+ if (model !== undefined && model !== null) {
68
80
  res.set('Content-Type', 'text/plain');
69
81
  res.send(JSON.stringify(model));
70
82
  }
83
+ else {
84
+ res.end();
85
+ }
86
+ };
87
+ }
88
+ /**
89
+ * Serializes data to an XML body. The payload should be a plain object graph;
90
+ * arrays and scalars are wrapped under a `<response>` root so the output is a
91
+ * single well-formed document.
92
+ *
93
+ * @param model - data to serialize
94
+ * @param options - response options (status, headers, cookies)
95
+ * @param xmlOptions - fast-xml-parser XMLBuilder options
96
+ */
97
+ export function xmlResponse(model, options, xmlOptions) {
98
+ return (_req, res) => {
99
+ res.status(options?.StatusCode ? options.StatusCode : HTTP_STATUS_CODE.OK);
100
+ _setCoockies(res, options);
101
+ _setHeaders(res, options);
102
+ res.set('Content-Type', 'application/xml');
103
+ const builder = new XMLBuilder({ ignoreAttributes: false, ...xmlOptions });
104
+ const payload = model !== null && typeof model === 'object' && !Array.isArray(model) ? model : { response: model };
105
+ res.send(builder.build(payload));
71
106
  };
72
107
  }
73
108
  /**
@@ -164,44 +199,67 @@ export function httpResponse(model, template, options) {
164
199
  })(req, res);
165
200
  }
166
201
  };
167
- return (req, res) => {
168
- if (req.accepts('html') && (acceptedHeaders & HttpAcceptHeaders.HTML) === HttpAcceptHeaders.HTML) {
169
- const fs = DI.resolve('__file_provider__', ['__fs_http_response_templates__']);
170
- if (!fs) {
171
- throw new ServerError('file provider __fs_http_response_templates__ not set. Pleas set response template file provider for html http default responses !');
172
- }
173
- fs.download(template)
174
- .then((file) => {
175
- htmlResponse(file, model, options)(req, res);
176
- })
177
- .catch((err) => {
178
- const log = DI.resolve(Log, ['http']);
179
- log.warn(`Cannot render html file ${template}, error: ${err.message}:${err.stack}`, err);
180
- fs.download('serverError.pug').then((file) => {
181
- // try to render server error response
182
- htmlResponse(file, { error: err }, {
183
- ...options,
184
- StatusCode: HTTP_STATUS_CODE.INTERNAL_ERROR,
185
- })(req, res);
186
- });
202
+ const htmlBranch = (req, res) => {
203
+ const fs = DI.resolve('__file_provider__', ['__fs_http_response_templates__']);
204
+ if (!fs) {
205
+ throw new UnexpectedServerError('file provider __fs_http_response_templates__ not set. Pleas set response template file provider for html http default responses !');
206
+ }
207
+ fs.download(template)
208
+ .then((file) => {
209
+ htmlResponse(file, model, options)(req, res);
210
+ })
211
+ .catch((err) => {
212
+ const log = DI.resolve(Log, ['http']);
213
+ log.warn(`Cannot render html file ${template}, error: ${err.message}:${err.stack}`, err);
214
+ fs.download('serverError.pug').then((file) => {
215
+ // try to render server error response
216
+ htmlResponse(file, { error: err }, {
217
+ ...options,
218
+ StatusCode: HTTP_STATUS_CODE.INTERNAL_ERROR,
219
+ })(req, res);
187
220
  });
221
+ });
222
+ };
223
+ const jsonBranch = (req, res) => {
224
+ if (options && options.StatusCode && options.StatusCode >= 400) {
225
+ errorTransform(req, res);
188
226
  }
189
- else if (req.accepts('json') && (acceptedHeaders & HttpAcceptHeaders.JSON) === HttpAcceptHeaders.JSON) {
190
- if (options && options.StatusCode && options.StatusCode >= 400) {
191
- errorTransform(req, res);
192
- }
193
- else {
194
- if (req.headers['x-data-transform']) {
195
- dataTransform(req, res);
196
- }
197
- else {
198
- jsonResponse(model, options)(req, res);
199
- }
200
- }
227
+ else if (req.headers['x-data-transform']) {
228
+ dataTransform(req, res);
201
229
  }
202
230
  else {
231
+ jsonResponse(model, options)(req, res);
232
+ }
233
+ };
234
+ return (req, res) => {
235
+ // Offer the types the server is configured to produce, JSON first so a
236
+ // wildcard / absent Accept (*/*) defaults to JSON rather than HTML. Explicit
237
+ // client preferences (order / q-values) are still honored by req.accepts.
238
+ const offered = [];
239
+ if ((acceptedHeaders & HttpAcceptHeaders.JSON) === HttpAcceptHeaders.JSON)
240
+ offered.push('json');
241
+ if ((acceptedHeaders & HttpAcceptHeaders.HTML) === HttpAcceptHeaders.HTML)
242
+ offered.push('html');
243
+ if ((acceptedHeaders & HttpAcceptHeaders.XML) === HttpAcceptHeaders.XML)
244
+ offered.push('xml');
245
+ const best = offered.length ? req.accepts(offered) : false;
246
+ if (best === 'html') {
247
+ htmlBranch(req, res);
248
+ }
249
+ else if (best === 'json') {
250
+ jsonBranch(req, res);
251
+ }
252
+ else if (best === 'xml') {
253
+ xmlResponse(model, options)(req, res);
254
+ }
255
+ else if (req.accepts('text/plain')) {
256
+ // Client accepts plain text (or the config offers nothing negotiable).
203
257
  textResponse(model, options)(req, res);
204
258
  }
259
+ else {
260
+ // Client explicitly asked for a media type the server can't produce.
261
+ jsonResponse({ error: { message: 'Not Acceptable', code: HTTP_STATUS_CODE.NOT_ACCEPTABLE } }, { ...options, StatusCode: HTTP_STATUS_CODE.NOT_ACCEPTABLE })(req, res);
262
+ }
205
263
  };
206
264
  }
207
265
  //# sourceMappingURL=responses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FromBody.d.ts","sourceRoot":"","sources":["../../../src/route-args/FromBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,qBACa,QAAS,SAAQ,SAAS;IACrC,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAC,KAAK,EAAG,OAAO,EAAG,EAAG,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;CASnJ"}
1
+ {"version":3,"file":"FromBody.d.ts","sourceRoot":"","sources":["../../../src/route-args/FromBody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAGnC,qBACa,QAAS,SAAQ,SAAS;IACrC,IAAW,aAAa,IAAI,aAAa,CAExC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAC,KAAK,EAAG,OAAO,EAAG,EAAG,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;CAenJ"}
@@ -15,7 +15,12 @@ let FromBody = class FromBody extends RouteArgs {
15
15
  if (!req.body) {
16
16
  return { CallData: callData, Args: null };
17
17
  }
18
- const arg = req.body[param.Name] ? req.body[param.Name] : [...route.Parameters.values()].filter((p) => p.Type === ParameterType.FromBody).length === 1 ? req.body : null;
18
+ // Use presence, not truthiness a body field legitimately holding 0,
19
+ // false or '' must map to that value, not be treated as absent (which
20
+ // would wrongly fall through to passing the whole body).
21
+ const hasNamedField = Object.prototype.hasOwnProperty.call(req.body, param.Name);
22
+ const isSingleBodyParam = [...route.Parameters.values()].filter((p) => p.Type === ParameterType.FromBody).length === 1;
23
+ const arg = hasNamedField ? req.body[param.Name] : isSingleBodyParam ? req.body : null;
19
24
  let result = await this.tryHydrateParam(arg, param, route);
20
25
  return { CallData: callData, Args: result };
21
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FromBody.js","sourceRoot":"","sources":["../../../src/route-args/FromBody.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS;IACrC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAC,KAAkB,EAAG,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAChJ,IAAG,CAAC,GAAG,CAAC,IAAI,EAAC,CAAC;YACZ,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACzK,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AAdY,QAAQ;IADpB,UAAU,EAAE;GACA,QAAQ,CAcpB"}
1
+ {"version":3,"file":"FromBody.js","sourceRoot":"","sources":["../../../src/route-args/FromBody.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAmB,aAAa,EAAsB,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGlC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,SAAS;IACrC,IAAW,aAAa;QACtB,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAC,KAAkB,EAAG,KAAsB,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QAChJ,IAAG,CAAC,GAAG,CAAC,IAAI,EAAC,CAAC;YACZ,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,yDAAyD;QACzD,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACjF,MAAM,iBAAiB,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;QACvH,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvF,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AApBY,QAAQ;IADpB,UAAU,EAAE;GACA,QAAQ,CAoBpB"}
@@ -85,7 +85,7 @@ export declare class FromCSV extends FromFormBase {
85
85
  export declare class FromFormField extends FromFormBase {
86
86
  get SupportedType(): ParameterType;
87
87
  extract(callData: IRouteCall, _args: unknown[], param: IRouteParameter, req: Request, res: express.Response, route?: IRoute): Promise<{
88
- Args: string | IRouteArgsResult;
88
+ Args: any;
89
89
  CallData: IRouteCall;
90
90
  }>;
91
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FromForm.d.ts","sourceRoot":"","sources":["../../../src/route-args/FromForm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FromForm.d.ts","sourceRoot":"","sources":["../../../src/route-args/FromForm.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ import { RouteArgs } from './RouteArgs.js';
11
11
  import { ParameterType } from '../interfaces.js';
12
12
  import { IncomingForm } from 'formidable';
13
13
  import { Config } from '@spinajs/configuration';
14
- import { Autoinject, DI, Injectable, NewInstance } from '@spinajs/di';
14
+ import { Autoinject, DI, Injectable, NewInstance, TypedArray } from '@spinajs/di';
15
15
  import { parse } from 'csv';
16
16
  import { fs, fsNative } from '@spinajs/fs';
17
17
  import { createReadStream, promises } from 'fs';
@@ -23,6 +23,7 @@ import { EntityTooLargeException } from '../exceptions.js';
23
23
  import { BadRequest, Exception, IOFail } from '@spinajs/exceptions';
24
24
  import { FileSystem } from "@spinajs/fs";
25
25
  import { ImmediateFileUploader } from '../uploaders/ImmediateFileUploader.js';
26
+ import qs from 'qs';
26
27
  const parseForm = (req, options) => {
27
28
  const form = new IncomingForm(options);
28
29
  return new Promise((res, rej) => {
@@ -41,6 +42,40 @@ const parseForm = (req, options) => {
41
42
  });
42
43
  });
43
44
  };
45
+ /**
46
+ * Collects settled upload results. All uploads are attempted (we use
47
+ * allSettled so one failure doesn't abort the rest), but any rejection is
48
+ * surfaced as an IOFail instead of being silently dropped — otherwise a failed
49
+ * upload would just vanish from the result with the client getting a 200 and
50
+ * fewer (or zero) files than it sent.
51
+ */
52
+ function collectUploads(results) {
53
+ const rejected = results.filter((r) => r.status === 'rejected');
54
+ if (rejected.length > 0) {
55
+ const reasons = rejected.map((r) => r.reason?.message ?? String(r.reason)).join('; ');
56
+ throw new IOFail(`Failed to upload ${rejected.length} file(s): ${reasons}`);
57
+ }
58
+ return results.map((r) => r.value);
59
+ }
60
+ /**
61
+ * Best-effort removal of the intermediate formidable temp files. Used on the
62
+ * error path so a failed upload/validation doesn't leak files in the upload
63
+ * temp dir. Swallows per-file errors (a file may already have been moved or
64
+ * removed by a transform middleware).
65
+ */
66
+ async function cleanupTempFiles(files) {
67
+ await Promise.allSettled(files.map(async (f) => {
68
+ const p = f?.OriginalFile?.filepath;
69
+ if (!p)
70
+ return;
71
+ try {
72
+ await promises.unlink(p);
73
+ }
74
+ catch {
75
+ /* already gone / moved — nothing to clean */
76
+ }
77
+ }));
78
+ }
44
79
  export class FromFormBase extends RouteArgs {
45
80
  async extract(callData, _args, routeParameter, req, _res, _route) {
46
81
  if (!this.FormData) {
@@ -145,31 +180,43 @@ let FromFile = class FromFile extends FromFormBase {
145
180
  const { service, options } = m;
146
181
  return DI.resolve(service, [options]);
147
182
  });
148
- for (const m of middlewares) {
149
- for (const f of uplFiles) {
150
- this.Log.trace(`Executing file middleware ${m.constructor.name} for file ${f.Name}`);
151
- const result = await m.beforeUpload(f, uploadOptions);
152
- // merge transform result
153
- Object.assign(f, result);
183
+ try {
184
+ for (const m of middlewares) {
185
+ for (const f of uplFiles) {
186
+ this.Log.trace(`Executing file middleware ${m.constructor.name} for file ${f.Name}`);
187
+ const result = await m.beforeUpload(f, uploadOptions);
188
+ // merge transform result
189
+ Object.assign(f, result);
190
+ }
191
+ }
192
+ // copy to target fs if different than default temp fs
193
+ if (uploadFs && this.DefaultUploadFs.Name !== uploadFs.Name) {
194
+ const fu = DI.resolve(ImmediateFileUploader, [{ sourceFs: this.DefaultUploadFs, deleteSource: true }]);
195
+ const pResults = await Promise.allSettled(uplFiles.map((f) => fu.upload(f)));
196
+ uFiles = collectUploads(pResults);
197
+ }
198
+ // if any uploader is set in options, use it to upload files
199
+ // additionaly
200
+ if (uploadOptions.uploader) {
201
+ const type = uploadOptions.uploader.service ?? uploadOptions.uploader;
202
+ const options = uploadOptions.uploader.options ?? {};
203
+ const fu = DI.resolve(type, [options]);
204
+ const pResults = await Promise.allSettled(uplFiles.map((f) => fu.upload(f)));
205
+ uFiles = collectUploads(pResults);
154
206
  }
155
207
  }
156
- // copy to target fs if different than default temp fs
157
- if (uploadFs && this.DefaultUploadFs.Name !== uploadFs.Name) {
158
- const fu = DI.resolve(ImmediateFileUploader, [{ sourceFs: this.DefaultUploadFs, deleteSource: true }]);
159
- const pResults = await Promise.allSettled(uplFiles.map((f) => fu.upload(f)));
160
- uFiles = pResults.filter((r) => r.status === 'fulfilled').map((r) => r.value);
161
- }
162
- // if any uploader is set in options, use it to upload files
163
- // additionaly
164
- if (uploadOptions.uploader) {
165
- const type = uploadOptions.uploader.service ?? uploadOptions.uploader;
166
- const options = uploadOptions.uploader.options ?? {};
167
- const fu = DI.resolve(type, [options]);
168
- const pResults = await Promise.allSettled(uplFiles.map((f) => fu.upload(f)));
169
- uFiles = pResults.filter((r) => r.status === 'fulfilled').map((r) => r.value);
208
+ catch (err) {
209
+ // A failed validation / middleware / upload would otherwise leave the
210
+ // intermediate formidable temp files in the upload temp dir forever.
211
+ // Best-effort clean them up before propagating the error.
212
+ await cleanupTempFiles(uplFiles);
213
+ throw err;
170
214
  }
215
+ // @Files() forces an array result via the asArray option; @File() infers it
216
+ // from the declared parameter type.
217
+ const asArray = param.RuntimeType.name === 'Array' || param.Options?.asArray === true;
171
218
  return Object.assign(result, {
172
- Args: param.RuntimeType.name === 'Array' ? uFiles : uFiles[0],
219
+ Args: asArray ? uFiles : uFiles[0],
173
220
  });
174
221
  }
175
222
  };
@@ -201,13 +248,26 @@ let FromJsonFile = class FromJsonFile extends FromFile {
201
248
  throw new BadRequest('Missing JSON file');
202
249
  }
203
250
  const sourceFile = file.filepath;
204
- const content = await promises.readFile(sourceFile, { encoding: param.Options.Encoding ?? 'utf-8', flag: 'r' });
205
- if (param.Options.DeleteFile) {
251
+ // `param.Options` is undefined when @JsonFile() is used with no options, so
252
+ // guard every access. Accept both `Encoding` and the IUploadOptions
253
+ // `encoding` casing; default to utf-8 for JSON parsing.
254
+ const encoding = (param.Options?.Encoding ?? param.Options?.encoding ?? 'utf-8');
255
+ const content = await promises.readFile(sourceFile, { encoding, flag: 'r' });
256
+ if (param.Options?.DeleteFile) {
206
257
  await promises.unlink(sourceFile);
207
258
  }
259
+ // A malformed uploaded JSON file is a client error (400), not an unhandled
260
+ // 500 out of the extractor.
261
+ let parsed;
262
+ try {
263
+ parsed = JSON.parse(content.toString());
264
+ }
265
+ catch (err) {
266
+ throw new BadRequest(`Uploaded JSON file is invalid: ${err.message}`);
267
+ }
208
268
  return {
209
269
  ...data,
210
- Args: JSON.parse(content.toString()),
270
+ Args: parsed,
211
271
  };
212
272
  }
213
273
  };
@@ -237,7 +297,14 @@ let FromCSV = class FromCSV extends FromFormBase {
237
297
  if (schema) {
238
298
  this.validateCsvData(csvData, schema);
239
299
  }
240
- const args = await Promise.all(csvData.map((x) => this.tryHydrateParam(x, param, route)));
300
+ // The param describes the WHOLE csv file, but rows are hydrated one at a
301
+ // time. When it is declared as a typed array ( @Type(Array.ofType(X)) ) each
302
+ // row must be hydrated to the ELEMENT type X - feeding a single row to the
303
+ // whole-array TypedArray path would reject it as "must be a JSON array",
304
+ // and would look for an array schema where a row schema is wanted.
305
+ // @Body @Type(Array.ofType(X)) keeps the whole-array path, untouched.
306
+ const rowParam = param.RuntimeType instanceof TypedArray ? { ...param, RuntimeType: param.RuntimeType.Type } : param;
307
+ const args = await Promise.all(csvData.map((x) => this.tryHydrateParam(x, rowParam, route)));
241
308
  return {
242
309
  ...data,
243
310
  Args: args,
@@ -299,12 +366,17 @@ let FromFormField = class FromFormField extends FromFormBase {
299
366
  if (!field) {
300
367
  throw new BadRequest(`Form field ${param.Name} is required`);
301
368
  }
369
+ // By default a form field is delivered as an array; collapse to a single
370
+ // value when the route param isn't an array and only one value was sent,
371
+ // otherwise pass the whole values array (NOT `data`, the CallData wrapper).
372
+ const raw = field.length === 1 && param.RuntimeType.name !== 'Array' ? field[0] : field;
373
+ // Run through the standard hydration/validation path so a @FormField(schema)
374
+ // is actually enforced and the value is coerced to the declared runtime type
375
+ // (form fields always arrive as strings).
376
+ const result = await this.tryHydrateParam(raw, param, route);
302
377
  return {
303
378
  ...data,
304
- // by default form field is returned in array,
305
- // we assume that if length is 1 we want single param
306
- // when route param is not array
307
- Args: field.length === 1 && param.RuntimeType.name !== 'Array' ? field[0] : data,
379
+ Args: result,
308
380
  };
309
381
  }
310
382
  };
@@ -323,14 +395,18 @@ let FromForm = class FromForm extends FromFormBase {
323
395
  }
324
396
  async extract(callData, _args, param, req, res, route) {
325
397
  const data = await super.extract(callData, _args, param, req, res, route);
326
- let result = null;
327
- // todo
328
- // refactor to support arrays in object
329
- // and array of objects
330
- const fData = Object.fromEntries(Object.entries(this.FormData.Fields).map(([key, value]) => {
331
- return [key, value[0]];
332
- }));
333
- result = await this.tryHydrateParam(fData, param, route);
398
+ // Build a querystring from the raw form fields (keys keep their `[]` / `[key]`
399
+ // bracket syntax, values are percent-encoded) and let qs parse it. This
400
+ // yields arrays for `field[]` / repeated fields and nested objects for
401
+ // `field[key]` / `field[a][b]`, matching express.urlencoded({ extended: true }).
402
+ const pairs = [];
403
+ for (const [key, values] of Object.entries(this.FormData.Fields)) {
404
+ for (const v of values ?? []) {
405
+ pairs.push(`${key}=${encodeURIComponent(String(v))}`);
406
+ }
407
+ }
408
+ const fData = qs.parse(pairs.join('&'));
409
+ const result = await this.tryHydrateParam(fData, param, route);
334
410
  return {
335
411
  ...data,
336
412
  Args: result,
@@ -1 +1 @@
1
- {"version":3,"file":"FromForm.js","sourceRoot":"","sources":["../../../src/route-args/FromForm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FromForm.js","sourceRoot":"","sources":["../../../src/route-args/FromForm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { RouteArgs, IRouteArgsResult } from './RouteArgs.js';
2
+ import { IRouteParameter, ParameterType, IRouteCall, Request } from '../interfaces.js';
3
+ import { X2jOptions } from 'fast-xml-parser';
4
+ /**
5
+ * Parses an XML request body into a plain object.
6
+ *
7
+ * Relies on the `express.text` body parser (configured for XML content types)
8
+ * having placed the raw XML string in `req.body`. `@FromXml()` may be given
9
+ * fast-xml-parser {@link X2jOptions} to customise parsing.
10
+ *
11
+ * Malformed XML is reported as a 400 BadRequest rather than an unhandled 500.
12
+ */
13
+ export declare class FromXmlRouteArgs extends RouteArgs {
14
+ get SupportedType(): ParameterType | string;
15
+ extract(callData: IRouteCall, _args: unknown[], param: IRouteParameter<Partial<X2jOptions>>, req: Request): Promise<IRouteArgsResult>;
16
+ }
17
+ //# sourceMappingURL=FromXml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FromXml.d.ts","sourceRoot":"","sources":["../../../src/route-args/FromXml.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,OAAO,EAA2B,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;;;;;;;GAQG;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,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAyBnJ"}
@@ -0,0 +1,52 @@
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
+ import { RouteArgs } from './RouteArgs.js';
8
+ import { ParameterType } from '../interfaces.js';
9
+ import { Injectable } from '@spinajs/di';
10
+ import { BadRequest } from '@spinajs/exceptions';
11
+ import { XMLParser, XMLValidator } from 'fast-xml-parser';
12
+ /**
13
+ * Parses an XML request body into a plain object.
14
+ *
15
+ * Relies on the `express.text` body parser (configured for XML content types)
16
+ * having placed the raw XML string in `req.body`. `@FromXml()` may be given
17
+ * fast-xml-parser {@link X2jOptions} to customise parsing.
18
+ *
19
+ * Malformed XML is reported as a 400 BadRequest rather than an unhandled 500.
20
+ */
21
+ let FromXmlRouteArgs = class FromXmlRouteArgs extends RouteArgs {
22
+ get SupportedType() {
23
+ return ParameterType.FromXml;
24
+ }
25
+ async extract(callData, _args, param, req) {
26
+ const body = req.body;
27
+ // No body -> nothing to parse (keep optional params optional).
28
+ if (body === undefined || body === null || body === '') {
29
+ return { CallData: callData, Args: null };
30
+ }
31
+ // Already an object (some upstream parser handled it) -> pass through.
32
+ if (typeof body !== 'string') {
33
+ return { CallData: callData, Args: body };
34
+ }
35
+ const valid = XMLValidator.validate(body);
36
+ if (valid !== true) {
37
+ throw new BadRequest(`Invalid XML body: ${valid.err?.msg ?? 'malformed XML'}`);
38
+ }
39
+ const parser = new XMLParser({ ignoreAttributes: false, ...(param.Options ?? {}) });
40
+ try {
41
+ return { CallData: callData, Args: parser.parse(body) };
42
+ }
43
+ catch (err) {
44
+ throw new BadRequest(`Invalid XML body: ${err.message}`);
45
+ }
46
+ }
47
+ };
48
+ FromXmlRouteArgs = __decorate([
49
+ Injectable()
50
+ ], FromXmlRouteArgs);
51
+ export { FromXmlRouteArgs };
52
+ //# sourceMappingURL=FromXml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FromXml.js","sourceRoot":"","sources":["../../../src/route-args/FromXml.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAmB,aAAa,EAAuB,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAEtE;;;;;;;;GAQG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,SAAS;IAC7C,IAAW,aAAa;QACtB,OAAO,aAAa,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,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,UAAU,CAAC,qBAAqB,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,SAAS,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,UAAU,CAAC,qBAAsB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF,CAAA;AA9BY,gBAAgB;IAD5B,UAAU,EAAE;GACA,gBAAgB,CA8B5B"}