@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.
- package/lib/cjs/config/http.d.ts.map +1 -1
- package/lib/cjs/config/http.js +11 -0
- package/lib/cjs/config/http.js.map +1 -1
- package/lib/cjs/controllers.d.ts.map +1 -1
- package/lib/cjs/controllers.js +48 -12
- package/lib/cjs/controllers.js.map +1 -1
- package/lib/cjs/decorators.d.ts +46 -4
- package/lib/cjs/decorators.d.ts.map +1 -1
- package/lib/cjs/decorators.js +127 -23
- package/lib/cjs/decorators.js.map +1 -1
- package/lib/cjs/error.js +3 -3
- package/lib/cjs/error.js.map +1 -1
- package/lib/cjs/file-middlewares/validation.d.ts +11 -0
- package/lib/cjs/file-middlewares/validation.d.ts.map +1 -1
- package/lib/cjs/file-middlewares/validation.js +52 -9
- package/lib/cjs/file-middlewares/validation.js.map +1 -1
- package/lib/cjs/file-middlewares/zip.d.ts.map +1 -1
- package/lib/cjs/file-middlewares/zip.js +6 -1
- package/lib/cjs/file-middlewares/zip.js.map +1 -1
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +1 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +95 -1
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js +100 -4
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/cjs/middlewares/PerfRollup.d.ts +19 -0
- package/lib/cjs/middlewares/PerfRollup.d.ts.map +1 -0
- package/lib/cjs/middlewares/PerfRollup.js +61 -0
- package/lib/cjs/middlewares/PerfRollup.js.map +1 -0
- package/lib/cjs/middlewares/RequestId.d.ts +1 -2
- package/lib/cjs/middlewares/RequestId.d.ts.map +1 -1
- package/lib/cjs/middlewares/RequestId.js +19 -5
- package/lib/cjs/middlewares/RequestId.js.map +1 -1
- package/lib/cjs/middlewares/ResponseTime.d.ts +1 -2
- package/lib/cjs/middlewares/ResponseTime.d.ts.map +1 -1
- package/lib/cjs/middlewares/ResponseTime.js +29 -11
- package/lib/cjs/middlewares/ResponseTime.js.map +1 -1
- package/lib/cjs/response-methods/file.d.ts.map +1 -1
- package/lib/cjs/response-methods/file.js +47 -21
- package/lib/cjs/response-methods/file.js.map +1 -1
- package/lib/cjs/response-methods/index.d.ts +3 -0
- package/lib/cjs/response-methods/index.d.ts.map +1 -1
- package/lib/cjs/response-methods/index.js +3 -0
- package/lib/cjs/response-methods/index.js.map +1 -1
- package/lib/cjs/response-methods/redirect.d.ts +11 -4
- package/lib/cjs/response-methods/redirect.d.ts.map +1 -1
- package/lib/cjs/response-methods/redirect.js +14 -4
- package/lib/cjs/response-methods/redirect.js.map +1 -1
- package/lib/cjs/response-methods/xml.d.ts +17 -0
- package/lib/cjs/response-methods/xml.d.ts.map +1 -0
- package/lib/cjs/response-methods/xml.js +26 -0
- package/lib/cjs/response-methods/xml.js.map +1 -0
- package/lib/cjs/responses.d.ts +10 -0
- package/lib/cjs/responses.d.ts.map +1 -1
- package/lib/cjs/responses.js +94 -35
- package/lib/cjs/responses.js.map +1 -1
- package/lib/cjs/route-args/FromBody.d.ts.map +1 -1
- package/lib/cjs/route-args/FromBody.js +6 -1
- package/lib/cjs/route-args/FromBody.js.map +1 -1
- package/lib/cjs/route-args/FromForm.d.ts +1 -1
- package/lib/cjs/route-args/FromForm.d.ts.map +1 -1
- package/lib/cjs/route-args/FromForm.js +116 -37
- package/lib/cjs/route-args/FromForm.js.map +1 -1
- package/lib/cjs/route-args/FromXml.d.ts +17 -0
- package/lib/cjs/route-args/FromXml.d.ts.map +1 -0
- package/lib/cjs/route-args/FromXml.js +55 -0
- package/lib/cjs/route-args/FromXml.js.map +1 -0
- package/lib/cjs/route-args/RequestContext.d.ts +43 -0
- package/lib/cjs/route-args/RequestContext.d.ts.map +1 -0
- package/lib/cjs/route-args/RequestContext.js +94 -0
- package/lib/cjs/route-args/RequestContext.js.map +1 -0
- package/lib/cjs/route-args/RequestFields.d.ts +1 -1
- package/lib/cjs/route-args/RequestFields.d.ts.map +1 -1
- package/lib/cjs/route-args/RequestFields.js +1 -0
- package/lib/cjs/route-args/RequestFields.js.map +1 -1
- package/lib/cjs/route-args/RouteArgs.d.ts.map +1 -1
- package/lib/cjs/route-args/RouteArgs.js +50 -10
- package/lib/cjs/route-args/RouteArgs.js.map +1 -1
- package/lib/cjs/route-args/index.d.ts +2 -0
- package/lib/cjs/route-args/index.d.ts.map +1 -1
- package/lib/cjs/route-args/index.js +2 -0
- package/lib/cjs/route-args/index.js.map +1 -1
- package/lib/cjs/server.d.ts +36 -3
- package/lib/cjs/server.d.ts.map +1 -1
- package/lib/cjs/server.js +131 -42
- package/lib/cjs/server.js.map +1 -1
- package/lib/mjs/config/http.d.ts.map +1 -1
- package/lib/mjs/config/http.js +11 -0
- package/lib/mjs/config/http.js.map +1 -1
- package/lib/mjs/controllers.d.ts.map +1 -1
- package/lib/mjs/controllers.js +46 -10
- package/lib/mjs/controllers.js.map +1 -1
- package/lib/mjs/decorators.d.ts +46 -4
- package/lib/mjs/decorators.d.ts.map +1 -1
- package/lib/mjs/decorators.js +121 -24
- package/lib/mjs/decorators.js.map +1 -1
- package/lib/mjs/error.js +3 -3
- package/lib/mjs/error.js.map +1 -1
- package/lib/mjs/file-middlewares/validation.d.ts +11 -0
- package/lib/mjs/file-middlewares/validation.d.ts.map +1 -1
- package/lib/mjs/file-middlewares/validation.js +53 -10
- package/lib/mjs/file-middlewares/validation.js.map +1 -1
- package/lib/mjs/file-middlewares/zip.d.ts.map +1 -1
- package/lib/mjs/file-middlewares/zip.js +6 -1
- package/lib/mjs/file-middlewares/zip.js.map +1 -1
- package/lib/mjs/index.d.ts +1 -0
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +1 -0
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +95 -1
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js +65 -2
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/mjs/middlewares/PerfRollup.d.ts +19 -0
- package/lib/mjs/middlewares/PerfRollup.d.ts.map +1 -0
- package/lib/mjs/middlewares/PerfRollup.js +58 -0
- package/lib/mjs/middlewares/PerfRollup.js.map +1 -0
- package/lib/mjs/middlewares/RequestId.d.ts +1 -2
- package/lib/mjs/middlewares/RequestId.d.ts.map +1 -1
- package/lib/mjs/middlewares/RequestId.js +19 -5
- package/lib/mjs/middlewares/RequestId.js.map +1 -1
- package/lib/mjs/middlewares/ResponseTime.d.ts +1 -2
- package/lib/mjs/middlewares/ResponseTime.d.ts.map +1 -1
- package/lib/mjs/middlewares/ResponseTime.js +29 -11
- package/lib/mjs/middlewares/ResponseTime.js.map +1 -1
- package/lib/mjs/response-methods/file.d.ts.map +1 -1
- package/lib/mjs/response-methods/file.js +41 -15
- package/lib/mjs/response-methods/file.js.map +1 -1
- package/lib/mjs/response-methods/index.d.ts +3 -0
- package/lib/mjs/response-methods/index.d.ts.map +1 -1
- package/lib/mjs/response-methods/index.js +3 -0
- package/lib/mjs/response-methods/index.js.map +1 -1
- package/lib/mjs/response-methods/redirect.d.ts +11 -4
- package/lib/mjs/response-methods/redirect.d.ts.map +1 -1
- package/lib/mjs/response-methods/redirect.js +15 -5
- package/lib/mjs/response-methods/redirect.js.map +1 -1
- package/lib/mjs/response-methods/xml.d.ts +17 -0
- package/lib/mjs/response-methods/xml.d.ts.map +1 -0
- package/lib/mjs/response-methods/xml.js +22 -0
- package/lib/mjs/response-methods/xml.js.map +1 -0
- package/lib/mjs/responses.d.ts +10 -0
- package/lib/mjs/responses.d.ts.map +1 -1
- package/lib/mjs/responses.js +93 -35
- package/lib/mjs/responses.js.map +1 -1
- package/lib/mjs/route-args/FromBody.d.ts.map +1 -1
- package/lib/mjs/route-args/FromBody.js +6 -1
- package/lib/mjs/route-args/FromBody.js.map +1 -1
- package/lib/mjs/route-args/FromForm.d.ts +1 -1
- package/lib/mjs/route-args/FromForm.d.ts.map +1 -1
- package/lib/mjs/route-args/FromForm.js +114 -38
- package/lib/mjs/route-args/FromForm.js.map +1 -1
- package/lib/mjs/route-args/FromXml.d.ts +17 -0
- package/lib/mjs/route-args/FromXml.d.ts.map +1 -0
- package/lib/mjs/route-args/FromXml.js +52 -0
- package/lib/mjs/route-args/FromXml.js.map +1 -0
- package/lib/mjs/route-args/RequestContext.d.ts +43 -0
- package/lib/mjs/route-args/RequestContext.d.ts.map +1 -0
- package/lib/mjs/route-args/RequestContext.js +91 -0
- package/lib/mjs/route-args/RequestContext.js.map +1 -0
- package/lib/mjs/route-args/RequestFields.d.ts +1 -1
- package/lib/mjs/route-args/RequestFields.d.ts.map +1 -1
- package/lib/mjs/route-args/RequestFields.js +1 -0
- package/lib/mjs/route-args/RequestFields.js.map +1 -1
- package/lib/mjs/route-args/RouteArgs.d.ts.map +1 -1
- package/lib/mjs/route-args/RouteArgs.js +51 -11
- package/lib/mjs/route-args/RouteArgs.js.map +1 -1
- package/lib/mjs/route-args/index.d.ts +2 -0
- package/lib/mjs/route-args/index.d.ts.map +1 -1
- package/lib/mjs/route-args/index.js +2 -0
- package/lib/mjs/route-args/index.js.map +1 -1
- package/lib/mjs/server.d.ts +36 -3
- package/lib/mjs/server.d.ts.map +1 -1
- package/lib/mjs/server.js +132 -43
- package/lib/mjs/server.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +16 -12
package/lib/cjs/responses.js
CHANGED
|
@@ -37,6 +37,7 @@ exports._setCoockies = _setCoockies;
|
|
|
37
37
|
exports._setHeaders = _setHeaders;
|
|
38
38
|
exports.jsonResponse = jsonResponse;
|
|
39
39
|
exports.textResponse = textResponse;
|
|
40
|
+
exports.xmlResponse = xmlResponse;
|
|
40
41
|
exports.htmlResponse = htmlResponse;
|
|
41
42
|
exports.httpResponse = httpResponse;
|
|
42
43
|
const interfaces_js_1 = require("./interfaces.js");
|
|
@@ -45,8 +46,15 @@ const di_1 = require("@spinajs/di");
|
|
|
45
46
|
const log_common_1 = require("@spinajs/log-common");
|
|
46
47
|
const randomstring = __importStar(require("randomstring"));
|
|
47
48
|
const templates_1 = require("@spinajs/templates");
|
|
48
|
-
|
|
49
|
+
// NOTE: import the exception, not the `ServerError` *response* from './index.js'.
|
|
50
|
+
// That barrel import created the cycle interfaces -> responses -> index ->
|
|
51
|
+
// response-methods/badRequest -> interfaces, which blew up with
|
|
52
|
+
// "Cannot access 'Response' before initialization" whenever a module other
|
|
53
|
+
// than index.js (eg. server.js) was the entry point. `UnexpectedServerError`
|
|
54
|
+
// is mapped back to the ServerError response by __handle_error__ anyway.
|
|
55
|
+
const exceptions_1 = require("@spinajs/exceptions");
|
|
49
56
|
const cs = __importStar(require("cookie-signature"));
|
|
57
|
+
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
50
58
|
function _setCoockies(res, options) {
|
|
51
59
|
const cfg = di_1.DI.get(configuration_1.Configuration);
|
|
52
60
|
if (!cfg) {
|
|
@@ -86,7 +94,9 @@ function jsonResponse(model, options) {
|
|
|
86
94
|
res.status(options?.StatusCode ? options?.StatusCode : interfaces_js_1.HTTP_STATUS_CODE.OK);
|
|
87
95
|
_setCoockies(res, options);
|
|
88
96
|
_setHeaders(res, options);
|
|
89
|
-
|
|
97
|
+
// Presence check, not truthiness: 0 / false / '' are valid JSON bodies and
|
|
98
|
+
// must be sent. Only undefined / null mean "no body".
|
|
99
|
+
if (model !== undefined && model !== null) {
|
|
90
100
|
res.json(model);
|
|
91
101
|
}
|
|
92
102
|
else {
|
|
@@ -105,10 +115,36 @@ function textResponse(model, options) {
|
|
|
105
115
|
res.status(options?.StatusCode ? options?.StatusCode : interfaces_js_1.HTTP_STATUS_CODE.OK);
|
|
106
116
|
_setCoockies(res, options);
|
|
107
117
|
_setHeaders(res, options);
|
|
108
|
-
|
|
118
|
+
// Presence check, not truthiness: 0 / false / '' are valid bodies. Only
|
|
119
|
+
// undefined / null end the response empty (and always terminate it —
|
|
120
|
+
// otherwise a missing body on this fallback path hangs until timeout).
|
|
121
|
+
if (model !== undefined && model !== null) {
|
|
109
122
|
res.set('Content-Type', 'text/plain');
|
|
110
123
|
res.send(JSON.stringify(model));
|
|
111
124
|
}
|
|
125
|
+
else {
|
|
126
|
+
res.end();
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Serializes data to an XML body. The payload should be a plain object graph;
|
|
132
|
+
* arrays and scalars are wrapped under a `<response>` root so the output is a
|
|
133
|
+
* single well-formed document.
|
|
134
|
+
*
|
|
135
|
+
* @param model - data to serialize
|
|
136
|
+
* @param options - response options (status, headers, cookies)
|
|
137
|
+
* @param xmlOptions - fast-xml-parser XMLBuilder options
|
|
138
|
+
*/
|
|
139
|
+
function xmlResponse(model, options, xmlOptions) {
|
|
140
|
+
return (_req, res) => {
|
|
141
|
+
res.status(options?.StatusCode ? options.StatusCode : interfaces_js_1.HTTP_STATUS_CODE.OK);
|
|
142
|
+
_setCoockies(res, options);
|
|
143
|
+
_setHeaders(res, options);
|
|
144
|
+
res.set('Content-Type', 'application/xml');
|
|
145
|
+
const builder = new fast_xml_parser_1.XMLBuilder({ ignoreAttributes: false, ...xmlOptions });
|
|
146
|
+
const payload = model !== null && typeof model === 'object' && !Array.isArray(model) ? model : { response: model };
|
|
147
|
+
res.send(builder.build(payload));
|
|
112
148
|
};
|
|
113
149
|
}
|
|
114
150
|
/**
|
|
@@ -205,44 +241,67 @@ function httpResponse(model, template, options) {
|
|
|
205
241
|
})(req, res);
|
|
206
242
|
}
|
|
207
243
|
};
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
})(req, res);
|
|
227
|
-
});
|
|
244
|
+
const htmlBranch = (req, res) => {
|
|
245
|
+
const fs = di_1.DI.resolve('__file_provider__', ['__fs_http_response_templates__']);
|
|
246
|
+
if (!fs) {
|
|
247
|
+
throw new exceptions_1.UnexpectedServerError('file provider __fs_http_response_templates__ not set. Pleas set response template file provider for html http default responses !');
|
|
248
|
+
}
|
|
249
|
+
fs.download(template)
|
|
250
|
+
.then((file) => {
|
|
251
|
+
htmlResponse(file, model, options)(req, res);
|
|
252
|
+
})
|
|
253
|
+
.catch((err) => {
|
|
254
|
+
const log = di_1.DI.resolve(log_common_1.Log, ['http']);
|
|
255
|
+
log.warn(`Cannot render html file ${template}, error: ${err.message}:${err.stack}`, err);
|
|
256
|
+
fs.download('serverError.pug').then((file) => {
|
|
257
|
+
// try to render server error response
|
|
258
|
+
htmlResponse(file, { error: err }, {
|
|
259
|
+
...options,
|
|
260
|
+
StatusCode: interfaces_js_1.HTTP_STATUS_CODE.INTERNAL_ERROR,
|
|
261
|
+
})(req, res);
|
|
228
262
|
});
|
|
263
|
+
});
|
|
264
|
+
};
|
|
265
|
+
const jsonBranch = (req, res) => {
|
|
266
|
+
if (options && options.StatusCode && options.StatusCode >= 400) {
|
|
267
|
+
errorTransform(req, res);
|
|
229
268
|
}
|
|
230
|
-
else if (req.
|
|
231
|
-
|
|
232
|
-
errorTransform(req, res);
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
if (req.headers['x-data-transform']) {
|
|
236
|
-
dataTransform(req, res);
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
jsonResponse(model, options)(req, res);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
269
|
+
else if (req.headers['x-data-transform']) {
|
|
270
|
+
dataTransform(req, res);
|
|
242
271
|
}
|
|
243
272
|
else {
|
|
273
|
+
jsonResponse(model, options)(req, res);
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
return (req, res) => {
|
|
277
|
+
// Offer the types the server is configured to produce, JSON first so a
|
|
278
|
+
// wildcard / absent Accept (*/*) defaults to JSON rather than HTML. Explicit
|
|
279
|
+
// client preferences (order / q-values) are still honored by req.accepts.
|
|
280
|
+
const offered = [];
|
|
281
|
+
if ((acceptedHeaders & interfaces_js_1.HttpAcceptHeaders.JSON) === interfaces_js_1.HttpAcceptHeaders.JSON)
|
|
282
|
+
offered.push('json');
|
|
283
|
+
if ((acceptedHeaders & interfaces_js_1.HttpAcceptHeaders.HTML) === interfaces_js_1.HttpAcceptHeaders.HTML)
|
|
284
|
+
offered.push('html');
|
|
285
|
+
if ((acceptedHeaders & interfaces_js_1.HttpAcceptHeaders.XML) === interfaces_js_1.HttpAcceptHeaders.XML)
|
|
286
|
+
offered.push('xml');
|
|
287
|
+
const best = offered.length ? req.accepts(offered) : false;
|
|
288
|
+
if (best === 'html') {
|
|
289
|
+
htmlBranch(req, res);
|
|
290
|
+
}
|
|
291
|
+
else if (best === 'json') {
|
|
292
|
+
jsonBranch(req, res);
|
|
293
|
+
}
|
|
294
|
+
else if (best === 'xml') {
|
|
295
|
+
xmlResponse(model, options)(req, res);
|
|
296
|
+
}
|
|
297
|
+
else if (req.accepts('text/plain')) {
|
|
298
|
+
// Client accepts plain text (or the config offers nothing negotiable).
|
|
244
299
|
textResponse(model, options)(req, res);
|
|
245
300
|
}
|
|
301
|
+
else {
|
|
302
|
+
// Client explicitly asked for a media type the server can't produce.
|
|
303
|
+
jsonResponse({ error: { message: 'Not Acceptable', code: interfaces_js_1.HTTP_STATUS_CODE.NOT_ACCEPTABLE } }, { ...options, StatusCode: interfaces_js_1.HTTP_STATUS_CODE.NOT_ACCEPTABLE })(req, res);
|
|
304
|
+
}
|
|
246
305
|
};
|
|
247
306
|
}
|
|
248
307
|
//# sourceMappingURL=responses.js.map
|
package/lib/cjs/responses.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../src/responses.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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;;;;
|
|
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"}
|
|
@@ -18,7 +18,12 @@ let FromBody = class FromBody extends RouteArgs_js_1.RouteArgs {
|
|
|
18
18
|
if (!req.body) {
|
|
19
19
|
return { CallData: callData, Args: null };
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
// Use presence, not truthiness — a body field legitimately holding 0,
|
|
22
|
+
// false or '' must map to that value, not be treated as absent (which
|
|
23
|
+
// would wrongly fall through to passing the whole body).
|
|
24
|
+
const hasNamedField = Object.prototype.hasOwnProperty.call(req.body, param.Name);
|
|
25
|
+
const isSingleBodyParam = [...route.Parameters.values()].filter((p) => p.Type === interfaces_js_1.ParameterType.FromBody).length === 1;
|
|
26
|
+
const arg = hasNamedField ? req.body[param.Name] : isSingleBodyParam ? req.body : null;
|
|
22
27
|
let result = await this.tryHydrateParam(arg, param, route);
|
|
23
28
|
return { CallData: callData, Args: result };
|
|
24
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FromBody.js","sourceRoot":"","sources":["../../../src/route-args/FromBody.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAA2C;AAC3C,oDAAsF;AAEtF,oCAAyC;AAGlC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,wBAAS;IACrC,IAAW,aAAa;QACtB,OAAO,6BAAa,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,
|
|
1
|
+
{"version":3,"file":"FromBody.js","sourceRoot":"","sources":["../../../src/route-args/FromBody.ts"],"names":[],"mappings":";;;;;;;;;AAAA,iDAA2C;AAC3C,oDAAsF;AAEtF,oCAAyC;AAGlC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,wBAAS;IACrC,IAAW,aAAa;QACtB,OAAO,6BAAa,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,6BAAa,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,4BAAQ;mBAAR,QAAQ;IADpB,IAAA,eAAU,GAAE;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:
|
|
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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAyD,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AACtM,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAmB,EAAE,MAAM,EAAE,KAAK,EAAgB,MAAM,YAAY,CAAC;AACrE,OAAO,EAAU,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EAAE,EAAE,EAAY,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,GAAG,EAAU,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"FromForm.d.ts","sourceRoot":"","sources":["../../../src/route-args/FromForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.FromForm = exports.FromFormField = exports.FromCSV = exports.FromJsonFile = exports.FromFile = exports.FromFormBase = void 0;
|
|
13
16
|
const RouteArgs_js_1 = require("./RouteArgs.js");
|
|
@@ -26,6 +29,7 @@ const exceptions_js_1 = require("../exceptions.js");
|
|
|
26
29
|
const exceptions_1 = require("@spinajs/exceptions");
|
|
27
30
|
const fs_3 = require("@spinajs/fs");
|
|
28
31
|
const ImmediateFileUploader_js_1 = require("../uploaders/ImmediateFileUploader.js");
|
|
32
|
+
const qs_1 = __importDefault(require("qs"));
|
|
29
33
|
const parseForm = (req, options) => {
|
|
30
34
|
const form = new formidable_1.IncomingForm(options);
|
|
31
35
|
return new Promise((res, rej) => {
|
|
@@ -44,6 +48,40 @@ const parseForm = (req, options) => {
|
|
|
44
48
|
});
|
|
45
49
|
});
|
|
46
50
|
};
|
|
51
|
+
/**
|
|
52
|
+
* Collects settled upload results. All uploads are attempted (we use
|
|
53
|
+
* allSettled so one failure doesn't abort the rest), but any rejection is
|
|
54
|
+
* surfaced as an IOFail instead of being silently dropped — otherwise a failed
|
|
55
|
+
* upload would just vanish from the result with the client getting a 200 and
|
|
56
|
+
* fewer (or zero) files than it sent.
|
|
57
|
+
*/
|
|
58
|
+
function collectUploads(results) {
|
|
59
|
+
const rejected = results.filter((r) => r.status === 'rejected');
|
|
60
|
+
if (rejected.length > 0) {
|
|
61
|
+
const reasons = rejected.map((r) => r.reason?.message ?? String(r.reason)).join('; ');
|
|
62
|
+
throw new exceptions_1.IOFail(`Failed to upload ${rejected.length} file(s): ${reasons}`);
|
|
63
|
+
}
|
|
64
|
+
return results.map((r) => r.value);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Best-effort removal of the intermediate formidable temp files. Used on the
|
|
68
|
+
* error path so a failed upload/validation doesn't leak files in the upload
|
|
69
|
+
* temp dir. Swallows per-file errors (a file may already have been moved or
|
|
70
|
+
* removed by a transform middleware).
|
|
71
|
+
*/
|
|
72
|
+
async function cleanupTempFiles(files) {
|
|
73
|
+
await Promise.allSettled(files.map(async (f) => {
|
|
74
|
+
const p = f?.OriginalFile?.filepath;
|
|
75
|
+
if (!p)
|
|
76
|
+
return;
|
|
77
|
+
try {
|
|
78
|
+
await fs_2.promises.unlink(p);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
/* already gone / moved — nothing to clean */
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
47
85
|
class FromFormBase extends RouteArgs_js_1.RouteArgs {
|
|
48
86
|
async extract(callData, _args, routeParameter, req, _res, _route) {
|
|
49
87
|
if (!this.FormData) {
|
|
@@ -149,31 +187,43 @@ let FromFile = class FromFile extends FromFormBase {
|
|
|
149
187
|
const { service, options } = m;
|
|
150
188
|
return di_1.DI.resolve(service, [options]);
|
|
151
189
|
});
|
|
152
|
-
|
|
153
|
-
for (const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
190
|
+
try {
|
|
191
|
+
for (const m of middlewares) {
|
|
192
|
+
for (const f of uplFiles) {
|
|
193
|
+
this.Log.trace(`Executing file middleware ${m.constructor.name} for file ${f.Name}`);
|
|
194
|
+
const result = await m.beforeUpload(f, uploadOptions);
|
|
195
|
+
// merge transform result
|
|
196
|
+
Object.assign(f, result);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// copy to target fs if different than default temp fs
|
|
200
|
+
if (uploadFs && this.DefaultUploadFs.Name !== uploadFs.Name) {
|
|
201
|
+
const fu = di_1.DI.resolve(ImmediateFileUploader_js_1.ImmediateFileUploader, [{ sourceFs: this.DefaultUploadFs, deleteSource: true }]);
|
|
202
|
+
const pResults = await Promise.allSettled(uplFiles.map((f) => fu.upload(f)));
|
|
203
|
+
uFiles = collectUploads(pResults);
|
|
204
|
+
}
|
|
205
|
+
// if any uploader is set in options, use it to upload files
|
|
206
|
+
// additionaly
|
|
207
|
+
if (uploadOptions.uploader) {
|
|
208
|
+
const type = uploadOptions.uploader.service ?? uploadOptions.uploader;
|
|
209
|
+
const options = uploadOptions.uploader.options ?? {};
|
|
210
|
+
const fu = di_1.DI.resolve(type, [options]);
|
|
211
|
+
const pResults = await Promise.allSettled(uplFiles.map((f) => fu.upload(f)));
|
|
212
|
+
uFiles = collectUploads(pResults);
|
|
158
213
|
}
|
|
159
214
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
// if any uploader is set in options, use it to upload files
|
|
167
|
-
// additionaly
|
|
168
|
-
if (uploadOptions.uploader) {
|
|
169
|
-
const type = uploadOptions.uploader.service ?? uploadOptions.uploader;
|
|
170
|
-
const options = uploadOptions.uploader.options ?? {};
|
|
171
|
-
const fu = di_1.DI.resolve(type, [options]);
|
|
172
|
-
const pResults = await Promise.allSettled(uplFiles.map((f) => fu.upload(f)));
|
|
173
|
-
uFiles = pResults.filter((r) => r.status === 'fulfilled').map((r) => r.value);
|
|
215
|
+
catch (err) {
|
|
216
|
+
// A failed validation / middleware / upload would otherwise leave the
|
|
217
|
+
// intermediate formidable temp files in the upload temp dir forever.
|
|
218
|
+
// Best-effort clean them up before propagating the error.
|
|
219
|
+
await cleanupTempFiles(uplFiles);
|
|
220
|
+
throw err;
|
|
174
221
|
}
|
|
222
|
+
// @Files() forces an array result via the asArray option; @File() infers it
|
|
223
|
+
// from the declared parameter type.
|
|
224
|
+
const asArray = param.RuntimeType.name === 'Array' || param.Options?.asArray === true;
|
|
175
225
|
return Object.assign(result, {
|
|
176
|
-
Args:
|
|
226
|
+
Args: asArray ? uFiles : uFiles[0],
|
|
177
227
|
});
|
|
178
228
|
}
|
|
179
229
|
};
|
|
@@ -205,13 +255,26 @@ let FromJsonFile = class FromJsonFile extends FromFile {
|
|
|
205
255
|
throw new exceptions_1.BadRequest('Missing JSON file');
|
|
206
256
|
}
|
|
207
257
|
const sourceFile = file.filepath;
|
|
208
|
-
|
|
209
|
-
|
|
258
|
+
// `param.Options` is undefined when @JsonFile() is used with no options, so
|
|
259
|
+
// guard every access. Accept both `Encoding` and the IUploadOptions
|
|
260
|
+
// `encoding` casing; default to utf-8 for JSON parsing.
|
|
261
|
+
const encoding = (param.Options?.Encoding ?? param.Options?.encoding ?? 'utf-8');
|
|
262
|
+
const content = await fs_2.promises.readFile(sourceFile, { encoding, flag: 'r' });
|
|
263
|
+
if (param.Options?.DeleteFile) {
|
|
210
264
|
await fs_2.promises.unlink(sourceFile);
|
|
211
265
|
}
|
|
266
|
+
// A malformed uploaded JSON file is a client error (400), not an unhandled
|
|
267
|
+
// 500 out of the extractor.
|
|
268
|
+
let parsed;
|
|
269
|
+
try {
|
|
270
|
+
parsed = JSON.parse(content.toString());
|
|
271
|
+
}
|
|
272
|
+
catch (err) {
|
|
273
|
+
throw new exceptions_1.BadRequest(`Uploaded JSON file is invalid: ${err.message}`);
|
|
274
|
+
}
|
|
212
275
|
return {
|
|
213
276
|
...data,
|
|
214
|
-
Args:
|
|
277
|
+
Args: parsed,
|
|
215
278
|
};
|
|
216
279
|
}
|
|
217
280
|
};
|
|
@@ -241,7 +304,14 @@ let FromCSV = class FromCSV extends FromFormBase {
|
|
|
241
304
|
if (schema) {
|
|
242
305
|
this.validateCsvData(csvData, schema);
|
|
243
306
|
}
|
|
244
|
-
|
|
307
|
+
// The param describes the WHOLE csv file, but rows are hydrated one at a
|
|
308
|
+
// time. When it is declared as a typed array ( @Type(Array.ofType(X)) ) each
|
|
309
|
+
// row must be hydrated to the ELEMENT type X - feeding a single row to the
|
|
310
|
+
// whole-array TypedArray path would reject it as "must be a JSON array",
|
|
311
|
+
// and would look for an array schema where a row schema is wanted.
|
|
312
|
+
// @Body @Type(Array.ofType(X)) keeps the whole-array path, untouched.
|
|
313
|
+
const rowParam = param.RuntimeType instanceof di_1.TypedArray ? { ...param, RuntimeType: param.RuntimeType.Type } : param;
|
|
314
|
+
const args = await Promise.all(csvData.map((x) => this.tryHydrateParam(x, rowParam, route)));
|
|
245
315
|
return {
|
|
246
316
|
...data,
|
|
247
317
|
Args: args,
|
|
@@ -303,12 +373,17 @@ let FromFormField = class FromFormField extends FromFormBase {
|
|
|
303
373
|
if (!field) {
|
|
304
374
|
throw new exceptions_1.BadRequest(`Form field ${param.Name} is required`);
|
|
305
375
|
}
|
|
376
|
+
// By default a form field is delivered as an array; collapse to a single
|
|
377
|
+
// value when the route param isn't an array and only one value was sent,
|
|
378
|
+
// otherwise pass the whole values array (NOT `data`, the CallData wrapper).
|
|
379
|
+
const raw = field.length === 1 && param.RuntimeType.name !== 'Array' ? field[0] : field;
|
|
380
|
+
// Run through the standard hydration/validation path so a @FormField(schema)
|
|
381
|
+
// is actually enforced and the value is coerced to the declared runtime type
|
|
382
|
+
// (form fields always arrive as strings).
|
|
383
|
+
const result = await this.tryHydrateParam(raw, param, route);
|
|
306
384
|
return {
|
|
307
385
|
...data,
|
|
308
|
-
|
|
309
|
-
// we assume that if length is 1 we want single param
|
|
310
|
-
// when route param is not array
|
|
311
|
-
Args: field.length === 1 && param.RuntimeType.name !== 'Array' ? field[0] : data,
|
|
386
|
+
Args: result,
|
|
312
387
|
};
|
|
313
388
|
}
|
|
314
389
|
};
|
|
@@ -327,14 +402,18 @@ let FromForm = class FromForm extends FromFormBase {
|
|
|
327
402
|
}
|
|
328
403
|
async extract(callData, _args, param, req, res, route) {
|
|
329
404
|
const data = await super.extract(callData, _args, param, req, res, route);
|
|
330
|
-
|
|
331
|
-
//
|
|
332
|
-
//
|
|
333
|
-
//
|
|
334
|
-
const
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
405
|
+
// Build a querystring from the raw form fields (keys keep their `[]` / `[key]`
|
|
406
|
+
// bracket syntax, values are percent-encoded) and let qs parse it. This
|
|
407
|
+
// yields arrays for `field[]` / repeated fields and nested objects for
|
|
408
|
+
// `field[key]` / `field[a][b]`, matching express.urlencoded({ extended: true }).
|
|
409
|
+
const pairs = [];
|
|
410
|
+
for (const [key, values] of Object.entries(this.FormData.Fields)) {
|
|
411
|
+
for (const v of values ?? []) {
|
|
412
|
+
pairs.push(`${key}=${encodeURIComponent(String(v))}`);
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
const fData = qs_1.default.parse(pairs.join('&'));
|
|
416
|
+
const result = await this.tryHydrateParam(fData, param, route);
|
|
338
417
|
return {
|
|
339
418
|
...data,
|
|
340
419
|
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"}
|