@nifrajs/core 5.5.1 → 5.7.0
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/CHANGELOG.md +246 -0
- package/README.md +5 -0
- package/dist/assurance.d.ts.map +1 -1
- package/dist/assurance.js.map +1 -1
- package/dist/binary.d.ts +15 -1
- package/dist/binary.d.ts.map +1 -1
- package/dist/binary.js +1 -0
- package/dist/binary.js.map +1 -1
- package/dist/edge-kit.d.ts +1 -0
- package/dist/edge-kit.d.ts.map +1 -1
- package/dist/edge-kit.js +1 -0
- package/dist/edge-kit.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/evidence.d.ts +4 -0
- package/dist/evidence.d.ts.map +1 -1
- package/dist/evidence.js +4 -0
- package/dist/evidence.js.map +1 -1
- package/dist/file-type.d.ts +30 -0
- package/dist/file-type.d.ts.map +1 -0
- package/dist/file-type.js +118 -0
- package/dist/file-type.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/hook-origins.d.ts +2 -0
- package/dist/internal/hook-origins.d.ts.map +1 -1
- package/dist/internal/hook-origins.js +12 -0
- package/dist/internal/hook-origins.js.map +1 -1
- package/dist/internal/route-program.d.ts +11 -0
- package/dist/internal/route-program.d.ts.map +1 -1
- package/dist/internal/route-program.js +133 -85
- package/dist/internal/route-program.js.map +1 -1
- package/dist/reflection.d.ts +19 -1
- package/dist/reflection.d.ts.map +1 -1
- package/dist/reflection.js +46 -7
- package/dist/reflection.js.map +1 -1
- package/dist/response-observer.d.ts +1 -0
- package/dist/response-observer.d.ts.map +1 -1
- package/dist/response-observer.js +1 -0
- package/dist/response-observer.js.map +1 -1
- package/dist/server/answer-step.d.ts +27 -0
- package/dist/server/answer-step.d.ts.map +1 -0
- package/dist/server/answer-step.js +33 -0
- package/dist/server/answer-step.js.map +1 -0
- package/dist/server/bare-error-lane.d.ts +4 -1
- package/dist/server/bare-error-lane.d.ts.map +1 -1
- package/dist/server/bare-error-lane.js +9 -3
- package/dist/server/bare-error-lane.js.map +1 -1
- package/dist/server/base64-answers.d.ts +5 -0
- package/dist/server/base64-answers.d.ts.map +1 -0
- package/dist/server/base64-answers.js +132 -0
- package/dist/server/base64-answers.js.map +1 -0
- package/dist/server/before-handler.d.ts +10 -0
- package/dist/server/before-handler.d.ts.map +1 -0
- package/dist/server/before-handler.js +12 -0
- package/dist/server/before-handler.js.map +1 -0
- package/dist/server/body-lane.d.ts.map +1 -1
- package/dist/server/body-lane.js +8 -2
- package/dist/server/body-lane.js.map +1 -1
- package/dist/server/body-parser.d.ts.map +1 -1
- package/dist/server/body-parser.js +2 -5
- package/dist/server/body-parser.js.map +1 -1
- package/dist/server/body.d.ts +24 -8
- package/dist/server/body.d.ts.map +1 -1
- package/dist/server/body.js +86 -33
- package/dist/server/body.js.map +1 -1
- package/dist/server/core-copies.d.ts.map +1 -1
- package/dist/server/core-copies.js +5 -2
- package/dist/server/core-copies.js.map +1 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +6 -17
- package/dist/server/http.js.map +1 -1
- package/dist/server/install.d.ts +2 -0
- package/dist/server/install.d.ts.map +1 -1
- package/dist/server/install.js +2 -0
- package/dist/server/install.js.map +1 -1
- package/dist/server/json-response.d.ts +3 -0
- package/dist/server/json-response.d.ts.map +1 -0
- package/dist/server/json-response.js +14 -0
- package/dist/server/json-response.js.map +1 -0
- package/dist/server/json-text.d.ts +16 -0
- package/dist/server/json-text.d.ts.map +1 -0
- package/dist/server/json-text.js +34 -0
- package/dist/server/json-text.js.map +1 -0
- package/dist/server/multipart.d.ts +3 -0
- package/dist/server/multipart.d.ts.map +1 -1
- package/dist/server/multipart.js +226 -97
- package/dist/server/multipart.js.map +1 -1
- package/dist/server/node-outcome.d.ts +5 -0
- package/dist/server/node-outcome.d.ts.map +1 -1
- package/dist/server/node-outcome.js +3 -4
- package/dist/server/node-outcome.js.map +1 -1
- package/dist/server/proto-guard.d.ts.map +1 -1
- package/dist/server/proto-guard.js +39 -4
- package/dist/server/proto-guard.js.map +1 -1
- package/dist/server/query.d.ts.map +1 -1
- package/dist/server/query.js +8 -14
- package/dist/server/query.js.map +1 -1
- package/dist/server/repeated-prefix.d.ts +17 -0
- package/dist/server/repeated-prefix.d.ts.map +1 -0
- package/dist/server/repeated-prefix.js +17 -0
- package/dist/server/repeated-prefix.js.map +1 -0
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +5 -5
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/respond.d.ts +3 -4
- package/dist/server/respond.d.ts.map +1 -1
- package/dist/server/respond.js +45 -37
- package/dist/server/respond.js.map +1 -1
- package/dist/server/response-contract-lane.d.ts +12 -2
- package/dist/server/response-contract-lane.d.ts.map +1 -1
- package/dist/server/response-contract-lane.js +137 -9
- package/dist/server/response-contract-lane.js.map +1 -1
- package/dist/server/route-template.d.ts +10 -0
- package/dist/server/route-template.d.ts.map +1 -0
- package/dist/server/route-template.js +21 -0
- package/dist/server/route-template.js.map +1 -0
- package/dist/server/runtime-core.d.ts +7 -0
- package/dist/server/runtime-core.d.ts.map +1 -1
- package/dist/server/runtime-core.js +10 -2
- package/dist/server/runtime-core.js.map +1 -1
- package/dist/server/server-types.d.ts +17 -8
- package/dist/server/server-types.d.ts.map +1 -1
- package/dist/server/server.d.ts +27 -12
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +326 -108
- package/dist/server/server.js.map +1 -1
- package/dist/server/sse.d.ts +1 -1
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js +7 -5
- package/dist/server/sse.js.map +1 -1
- package/dist/server/text-slots.d.ts +8 -0
- package/dist/server/text-slots.d.ts.map +1 -0
- package/dist/server/text-slots.js +19 -0
- package/dist/server/text-slots.js.map +1 -0
- package/dist/server/webhook.d.ts +1 -1
- package/dist/server/webhook.d.ts.map +1 -1
- package/dist/server/webhook.js +24 -19
- package/dist/server/webhook.js.map +1 -1
- package/dist/server/websocket.d.ts +18 -3
- package/dist/server/websocket.d.ts.map +1 -1
- package/dist/server/websocket.js +45 -5
- package/dist/server/websocket.js.map +1 -1
- package/dist/server/ws-bun.d.ts.map +1 -1
- package/dist/server/ws-bun.js +7 -4
- package/dist/server/ws-bun.js.map +1 -1
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/single-copy.d.ts +5 -0
- package/dist/single-copy.d.ts.map +1 -1
- package/dist/single-copy.js +26 -17
- package/dist/single-copy.js.map +1 -1
- package/dist/tool-cli.d.ts +64 -0
- package/dist/tool-cli.d.ts.map +1 -0
- package/dist/tool-cli.js +495 -0
- package/dist/tool-cli.js.map +1 -0
- package/dist/transport-codec.d.ts.map +1 -1
- package/dist/transport-codec.js +2 -1
- package/dist/transport-codec.js.map +1 -1
- package/package.json +11 -1
- package/src/assurance.ts +1 -0
- package/src/binary.ts +17 -0
- package/src/edge-kit.ts +1 -0
- package/src/errors.ts +1 -0
- package/src/evidence.ts +8 -0
- package/src/file-type.ts +130 -0
- package/src/index.ts +3 -1
- package/src/internal/hook-origins.ts +10 -0
- package/src/internal/route-program.ts +261 -93
- package/src/reflection.ts +71 -7
- package/src/response-observer.ts +6 -0
- package/src/server/answer-step.ts +68 -0
- package/src/server/bare-error-lane.ts +9 -4
- package/src/server/base64-answers.ts +138 -0
- package/src/server/before-handler.ts +14 -0
- package/src/server/body-lane.ts +19 -9
- package/src/server/body-parser.ts +1 -5
- package/src/server/body.ts +96 -36
- package/src/server/core-copies.ts +5 -2
- package/src/server/http.ts +6 -15
- package/src/server/install.ts +3 -0
- package/src/server/json-response.ts +13 -0
- package/src/server/json-text.ts +34 -0
- package/src/server/multipart.ts +232 -100
- package/src/server/node-outcome.ts +4 -5
- package/src/server/proto-guard.ts +39 -4
- package/src/server/query.ts +7 -13
- package/src/server/repeated-prefix.ts +25 -0
- package/src/server/request-context.ts +5 -5
- package/src/server/respond.ts +47 -30
- package/src/server/response-contract-lane.ts +132 -9
- package/src/server/route-template.ts +24 -0
- package/src/server/runtime-core.ts +12 -2
- package/src/server/server-types.ts +18 -6
- package/src/server/server.ts +361 -112
- package/src/server/sse.ts +8 -6
- package/src/server/text-slots.ts +21 -0
- package/src/server/webhook.ts +29 -24
- package/src/server/websocket.ts +57 -8
- package/src/server/ws-bun.ts +7 -3
- package/src/server.ts +2 -0
- package/src/single-copy.ts +31 -15
- package/src/tool-cli.ts +584 -0
- package/src/transport-codec.ts +3 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON has no `bigint`, and `JSON.stringify` throws on one, so a handler returning a database's 64-bit
|
|
3
|
+
* id answered a 500. Every plain JSON writer goes through this instead: a `bigint` is written as its
|
|
4
|
+
* decimal string, the encoding OpenAPI generators and protobuf's JSON mapping use for 64-bit integers.
|
|
5
|
+
* Only a first attempt that threw is retried, so a value without one costs nothing more. The Node
|
|
6
|
+
* adapter runs a generated copy (scripts/gen-node-outcome.ts), so this module imports nothing.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* `JSON.stringify`, with each `bigint` written as its decimal string. Typed as the lib types
|
|
10
|
+
* `JSON.stringify`: a value with no JSON form (`undefined`, a function) still gives `undefined`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function jsonText(value: unknown): string;
|
|
13
|
+
/** Write `value` again, each `bigint` as text, after `JSON.stringify(value)` threw `error`; any other
|
|
14
|
+
* failure rethrows `error`. */
|
|
15
|
+
export declare function retried(value: unknown, error: unknown): string;
|
|
16
|
+
//# sourceMappingURL=json-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-text.d.ts","sourceRoot":"","sources":["../../src/server/json-text.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAM/C;AAED;+BAC+B;AAC/B,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAQ9D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON has no `bigint`, and `JSON.stringify` throws on one, so a handler returning a database's 64-bit
|
|
3
|
+
* id answered a 500. Every plain JSON writer goes through this instead: a `bigint` is written as its
|
|
4
|
+
* decimal string, the encoding OpenAPI generators and protobuf's JSON mapping use for 64-bit integers.
|
|
5
|
+
* Only a first attempt that threw is retried, so a value without one costs nothing more. The Node
|
|
6
|
+
* adapter runs a generated copy (scripts/gen-node-outcome.ts), so this module imports nothing.
|
|
7
|
+
*/
|
|
8
|
+
const bigintAsText = (_key, value) => typeof value === "bigint" ? value.toString() : value;
|
|
9
|
+
/**
|
|
10
|
+
* `JSON.stringify`, with each `bigint` written as its decimal string. Typed as the lib types
|
|
11
|
+
* `JSON.stringify`: a value with no JSON form (`undefined`, a function) still gives `undefined`.
|
|
12
|
+
*/
|
|
13
|
+
export function jsonText(value) {
|
|
14
|
+
try {
|
|
15
|
+
return JSON.stringify(value);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
return retried(value, error);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** Write `value` again, each `bigint` as text, after `JSON.stringify(value)` threw `error`; any other
|
|
22
|
+
* failure rethrows `error`. */
|
|
23
|
+
export function retried(value, error) {
|
|
24
|
+
if (!(error instanceof TypeError))
|
|
25
|
+
throw error;
|
|
26
|
+
try {
|
|
27
|
+
return JSON.stringify(value, bigintAsText);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// A cycle or a throwing `toJSON` fails this pass too; the first error is the one to report.
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=json-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-text.js","sourceRoot":"","sources":["../../src/server/json-text.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAc,EAAW,EAAE,CAC7D,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AAEtD;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC;AAED;+BAC+B;AAC/B,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,KAAc;IACpD,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC;QAAE,MAAM,KAAK,CAAA;IAC9C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,4FAA4F;QAC5F,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* A route reads JSON and urlencoded bodies by default and answers `415` to everything else. Wrapping
|
|
5
5
|
* its body schema opts that one route into multipart: the parts are read under the route's
|
|
6
6
|
* `bodyLimit`, bounded by count and size, collected into one record, and handed to the schema.
|
|
7
|
+
* The body is parsed here, by the Fetch standard's `multipart/form-data` parser, and not by the
|
|
8
|
+
* runtime's own `formData()`: those disagree on bare line feeds, parts with no name, escaped or
|
|
9
|
+
* percent-encoded names, and a file's default type, so one body was a different form on each runtime.
|
|
7
10
|
*
|
|
8
11
|
* import { multipartBody } from "@nifrajs/core/multipart"
|
|
9
12
|
* import { t } from "@nifrajs/schema"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../src/server/multipart.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"multipart.d.ts","sourceRoot":"","sources":["../../src/server/multipart.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAM7D,uFAAuF;AACvF,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,gGAAgG;AAChG,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAkgBjE;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAS,gBAAgB,EAC3D,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,eAAoB,GAC3B,MAAM,CAiBR"}
|
package/dist/server/multipart.js
CHANGED
|
@@ -14,6 +14,8 @@ const MAX_FILE_NAME_LENGTH = 255;
|
|
|
14
14
|
const DASH = 45;
|
|
15
15
|
const CR = 13;
|
|
16
16
|
const LF = 10;
|
|
17
|
+
const COLON = 58;
|
|
18
|
+
const PERCENT = 37;
|
|
17
19
|
const QUOTE = 34;
|
|
18
20
|
const BACKSLASH = 92;
|
|
19
21
|
const SLASH = 47;
|
|
@@ -21,6 +23,21 @@ const SEMICOLON = 59;
|
|
|
21
23
|
const SPACE = 32;
|
|
22
24
|
const TAB = 9;
|
|
23
25
|
const INVALID = () => plainError(400, "invalid_multipart");
|
|
26
|
+
const ASCII = new TextEncoder();
|
|
27
|
+
// The Fetch standard reads a disposition only in this exact form, which every browser writes.
|
|
28
|
+
const FORM_DATA_NAME = ASCII.encode('form-data; name="');
|
|
29
|
+
const FILE_NAME = ASCII.encode('; filename="');
|
|
30
|
+
const CONTENT_DISPOSITION = ASCII.encode("content-disposition");
|
|
31
|
+
const CONTENT_TYPE = ASCII.encode("content-type");
|
|
32
|
+
// "UTF-8 decode without BOM": a leading BOM is kept as U+FEFF, not dropped.
|
|
33
|
+
const UTF8 = new TextDecoder("utf-8", { ignoreBOM: true });
|
|
34
|
+
// A short ASCII name or value is read code by code: a decoder call costs more than the bytes.
|
|
35
|
+
const SHORT_TEXT = 64;
|
|
36
|
+
// RFC 9110 `tchar`, by byte value.
|
|
37
|
+
const TCHAR = new Uint8Array(128);
|
|
38
|
+
for (const char of "!#$%&'*+-.^_`|~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") {
|
|
39
|
+
TCHAR[char.charCodeAt(0)] = 1;
|
|
40
|
+
}
|
|
24
41
|
function limitOf(value, fallback, name) {
|
|
25
42
|
if (value === undefined)
|
|
26
43
|
return fallback;
|
|
@@ -99,10 +116,6 @@ function failureTable(pattern) {
|
|
|
99
116
|
}
|
|
100
117
|
return table;
|
|
101
118
|
}
|
|
102
|
-
/** `end` is the index after the last delimiter, or -1 when there was none. */
|
|
103
|
-
function delimiters(bytes, count, empty, end) {
|
|
104
|
-
return { count, empty, closed: end !== -1 && bytes[end] === DASH && bytes[end + 1] === DASH };
|
|
105
|
-
}
|
|
106
119
|
/**
|
|
107
120
|
* Whether the delimiter at `at` closes a part with no content: the blank line ending the part's
|
|
108
121
|
* headers is followed at once by the CRLF that opens the delimiter. A part whose own content ends
|
|
@@ -119,12 +132,10 @@ function closesEmptyPart(bytes, at) {
|
|
|
119
132
|
}
|
|
120
133
|
const overLimits = (count, empty, limits) => count - empty > limits.filled || empty > limits.empty;
|
|
121
134
|
/** Knuth-Morris-Pratt from `start`: linear in the input whatever the pattern repeats. */
|
|
122
|
-
function scanFrom(bytes, pattern, start,
|
|
135
|
+
function scanFrom(bytes, pattern, start, at, countedEmpty, limits) {
|
|
123
136
|
const table = failureTable(pattern);
|
|
124
137
|
const size = pattern.length;
|
|
125
|
-
let count = counted;
|
|
126
138
|
let empty = countedEmpty;
|
|
127
|
-
let end = lastEnd;
|
|
128
139
|
for (let i = start, k = 0; i < bytes.length; i++) {
|
|
129
140
|
const byte = bytes[i];
|
|
130
141
|
while (k > 0 && byte !== pattern[k])
|
|
@@ -132,16 +143,19 @@ function scanFrom(bytes, pattern, start, counted, countedEmpty, lastEnd, limits)
|
|
|
132
143
|
if (byte === pattern[k])
|
|
133
144
|
k++;
|
|
134
145
|
if (k === size) {
|
|
135
|
-
if (
|
|
146
|
+
if (at.length > 0 && closesEmptyPart(bytes, i + 1 - size))
|
|
136
147
|
empty++;
|
|
137
|
-
|
|
138
|
-
if (overLimits(
|
|
148
|
+
at.push(i + 1 - size);
|
|
149
|
+
if (overLimits(at.length, empty, limits))
|
|
139
150
|
break;
|
|
140
151
|
k = 0;
|
|
141
152
|
}
|
|
142
153
|
}
|
|
143
|
-
return
|
|
154
|
+
return { at, empty };
|
|
144
155
|
}
|
|
156
|
+
// V8's TypedArray `indexOf` reads one element at a time (~0.6 ms a MiB on Node 26), where Buffer's is
|
|
157
|
+
// native on Node and Bun. Deno's Buffer is a slower polyfill, and Workers have none by default.
|
|
158
|
+
const bufferIndexOf = typeof Deno === "undefined" && typeof Buffer === "function" ? Buffer.prototype.indexOf : undefined;
|
|
145
159
|
/**
|
|
146
160
|
* Find the non-overlapping occurrences of `pattern` (which starts with a dash), stopping once the
|
|
147
161
|
* count passes `limit`. Every `--boundary` is counted wherever it sits, which is at least what any
|
|
@@ -154,64 +168,210 @@ function scanFrom(bytes, pattern, start, counted, countedEmpty, lastEnd, limits)
|
|
|
154
168
|
function scanDelimiters(bytes, pattern, limits) {
|
|
155
169
|
const size = pattern.length;
|
|
156
170
|
const last = bytes.length - size;
|
|
157
|
-
|
|
171
|
+
const at = [];
|
|
158
172
|
let empty = 0;
|
|
159
|
-
let end = -1;
|
|
160
173
|
let work = 0;
|
|
161
174
|
let i = 0;
|
|
162
175
|
while (i <= last) {
|
|
163
|
-
i = bytes.indexOf(DASH, i);
|
|
176
|
+
i = bufferIndexOf === undefined ? bytes.indexOf(DASH, i) : bufferIndexOf.call(bytes, DASH, i);
|
|
164
177
|
if (i === -1 || i > last)
|
|
165
178
|
break;
|
|
166
179
|
let k = 1;
|
|
167
180
|
while (k < size && bytes[i + k] === pattern[k])
|
|
168
181
|
k++;
|
|
169
182
|
if (k === size) {
|
|
170
|
-
if (
|
|
183
|
+
if (at.length > 0 && closesEmptyPart(bytes, i))
|
|
171
184
|
empty++;
|
|
185
|
+
at.push(i);
|
|
172
186
|
i += size;
|
|
173
|
-
|
|
174
|
-
if (overLimits(++count, empty, limits))
|
|
187
|
+
if (overLimits(at.length, empty, limits))
|
|
175
188
|
break;
|
|
176
189
|
continue;
|
|
177
190
|
}
|
|
178
191
|
work += k;
|
|
179
192
|
if (work > bytes.length)
|
|
180
|
-
return scanFrom(bytes, pattern, i,
|
|
193
|
+
return scanFrom(bytes, pattern, i, at, empty, limits);
|
|
181
194
|
i++;
|
|
182
195
|
}
|
|
183
|
-
return
|
|
196
|
+
return { at, empty };
|
|
197
|
+
}
|
|
198
|
+
// What the File constructor keeps of a type: printable ASCII, lower-cased; anything else is "".
|
|
199
|
+
const PRINTABLE = /^[\x20-\x7e]*$/;
|
|
200
|
+
/**
|
|
201
|
+
* `content` as a File whose type is what the standard makes of `type`. Bun's constructor appends
|
|
202
|
+
* `;charset=utf-8` to an exact lower-case `text/plain`, `text/html` or `application/json`, but not
|
|
203
|
+
* to the same type in upper case, which it lower-cases like every runtime.
|
|
204
|
+
*/
|
|
205
|
+
function fileOf(content, name, type) {
|
|
206
|
+
const wanted = PRINTABLE.test(type) ? type.toLowerCase() : "";
|
|
207
|
+
const file = new File([content], name, { type: wanted });
|
|
208
|
+
return file.type === wanted ? file : new File([content], name, { type: wanted.toUpperCase() });
|
|
184
209
|
}
|
|
185
|
-
/**
|
|
186
|
-
function
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
210
|
+
/** The first index from `from` holding byte `a`, `b` or `c`, or the end of `bytes`. */
|
|
211
|
+
function scanUntil(bytes, from, a, b, c) {
|
|
212
|
+
let i = from;
|
|
213
|
+
while (i < bytes.length) {
|
|
214
|
+
const byte = bytes[i];
|
|
215
|
+
if (byte === a || byte === b || byte === c)
|
|
216
|
+
break;
|
|
217
|
+
i++;
|
|
218
|
+
}
|
|
219
|
+
return i;
|
|
220
|
+
}
|
|
221
|
+
function startsWith(bytes, at, prefix) {
|
|
222
|
+
if (at + prefix.length > bytes.length)
|
|
192
223
|
return false;
|
|
193
|
-
let
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
224
|
+
for (let i = 0; i < prefix.length; i++)
|
|
225
|
+
if (bytes[at + i] !== prefix[i])
|
|
226
|
+
return false;
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
/** `bytes[start, end)` as UTF-8 text. */
|
|
230
|
+
function textOf(bytes, start, end) {
|
|
231
|
+
if (end - start <= SHORT_TEXT) {
|
|
232
|
+
let out = "";
|
|
233
|
+
for (let i = start; i < end; i++) {
|
|
234
|
+
const byte = bytes[i];
|
|
235
|
+
if (byte >= 0x80)
|
|
236
|
+
return UTF8.decode(bytes.subarray(start, end));
|
|
237
|
+
out += String.fromCharCode(byte);
|
|
238
|
+
}
|
|
239
|
+
return out;
|
|
240
|
+
}
|
|
241
|
+
return UTF8.decode(bytes.subarray(start, end));
|
|
242
|
+
}
|
|
243
|
+
/** Whether `bytes[start, end)` spells `lower`, a lower-case ASCII header name, in any case. */
|
|
244
|
+
function spells(bytes, start, end, lower) {
|
|
245
|
+
if (end - start !== lower.length)
|
|
246
|
+
return false;
|
|
247
|
+
// A CR also folds onto `-`, but no header name holds one.
|
|
248
|
+
for (let i = 0; i < lower.length; i++)
|
|
249
|
+
if ((bytes[start + i] | 0x20) !== lower[i])
|
|
250
|
+
return false;
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
/** Bytes as the code points of the same values ("isomorphic decode"), for a header's value. */
|
|
254
|
+
function isomorphic(bytes, start, end) {
|
|
255
|
+
let out = "";
|
|
256
|
+
for (let i = start; i < end; i += 4096) {
|
|
257
|
+
out += String.fromCharCode(...bytes.subarray(i, Math.min(end, i + 4096)));
|
|
258
|
+
}
|
|
259
|
+
return out;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* A quoted `name` or `filename` from the byte after its opening quote: everything up to the closing
|
|
263
|
+
* one, with `%0A`, `%0D` and `%22` restored. No backslash escapes, as the standard reads it.
|
|
264
|
+
*/
|
|
265
|
+
function quotedName(bytes, from) {
|
|
266
|
+
const close = scanUntil(bytes, from, LF, CR, QUOTE);
|
|
267
|
+
if (bytes[close] !== QUOTE)
|
|
268
|
+
return undefined;
|
|
269
|
+
let value = textOf(bytes, from, close);
|
|
270
|
+
if (bytes.subarray(from, close).includes(PERCENT)) {
|
|
271
|
+
value = value.replaceAll("%0A", "\n").replaceAll("%0D", "\r").replaceAll("%22", '"');
|
|
272
|
+
}
|
|
273
|
+
return { value, next: close + 1 };
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* The headers of the part whose first header line starts at `from`, up to the blank line that
|
|
277
|
+
* ends them. Undefined when a line does not parse or the part names no field.
|
|
278
|
+
*/
|
|
279
|
+
function partHeaders(bytes, from) {
|
|
280
|
+
let position = from;
|
|
281
|
+
let name = null;
|
|
282
|
+
let filename = null;
|
|
283
|
+
let type = null;
|
|
284
|
+
for (;;) {
|
|
285
|
+
if (bytes[position] === CR && bytes[position + 1] === LF) {
|
|
286
|
+
return name === null ? undefined : { name, filename, type, next: position + 2 };
|
|
287
|
+
}
|
|
288
|
+
const colon = scanUntil(bytes, position, LF, CR, COLON);
|
|
289
|
+
if (bytes[colon] !== COLON)
|
|
290
|
+
return undefined;
|
|
291
|
+
let start = position;
|
|
292
|
+
let end = colon;
|
|
293
|
+
while (start < end && isBlank(bytes[start]))
|
|
294
|
+
start++;
|
|
295
|
+
while (end > start && isBlank(bytes[end - 1]))
|
|
296
|
+
end--;
|
|
297
|
+
if (start === end)
|
|
298
|
+
return undefined;
|
|
299
|
+
for (let i = start; i < end; i++)
|
|
300
|
+
if (TCHAR[bytes[i]] !== 1)
|
|
301
|
+
return undefined;
|
|
302
|
+
position = colon + 1;
|
|
303
|
+
while (isBlank(bytes[position] ?? 0))
|
|
304
|
+
position++;
|
|
305
|
+
if (spells(bytes, start, end, CONTENT_DISPOSITION)) {
|
|
306
|
+
name = null;
|
|
307
|
+
filename = null;
|
|
308
|
+
if (!startsWith(bytes, position, FORM_DATA_NAME))
|
|
309
|
+
return undefined;
|
|
310
|
+
const parsed = quotedName(bytes, position + FORM_DATA_NAME.length);
|
|
311
|
+
if (parsed === undefined)
|
|
312
|
+
return undefined;
|
|
313
|
+
name = parsed.value;
|
|
314
|
+
position = parsed.next;
|
|
315
|
+
if (startsWith(bytes, position, FILE_NAME)) {
|
|
316
|
+
const file = quotedName(bytes, position + FILE_NAME.length);
|
|
317
|
+
if (file === undefined)
|
|
318
|
+
return undefined;
|
|
319
|
+
filename = file.value;
|
|
320
|
+
position = file.next;
|
|
205
321
|
}
|
|
206
|
-
else
|
|
207
|
-
bytes += 3;
|
|
208
322
|
}
|
|
209
|
-
else
|
|
210
|
-
bytes
|
|
211
|
-
|
|
212
|
-
|
|
323
|
+
else {
|
|
324
|
+
const stop = scanUntil(bytes, position, LF, CR, LF);
|
|
325
|
+
if (spells(bytes, start, end, CONTENT_TYPE)) {
|
|
326
|
+
let end = stop;
|
|
327
|
+
while (end > position && isBlank(bytes[end - 1]))
|
|
328
|
+
end--;
|
|
329
|
+
type = isomorphic(bytes, position, end);
|
|
330
|
+
}
|
|
331
|
+
position = stop;
|
|
332
|
+
}
|
|
333
|
+
if (bytes[position] !== CR || bytes[position + 1] !== LF)
|
|
334
|
+
return undefined;
|
|
335
|
+
position += 2;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* The parts of a body, read as the Fetch standard's `multipart/form-data` parser reads them: the
|
|
340
|
+
* body opens with `--boundary`, every part's content runs to the next CRLF `--boundary`, and the
|
|
341
|
+
* first `--boundary--` closes it. `at` holds every `--boundary` in the body; those that do not start
|
|
342
|
+
* a line are content. Undefined when the body is not such a form.
|
|
343
|
+
*/
|
|
344
|
+
function partsOf(bytes, at, size) {
|
|
345
|
+
if (at[0] !== 0)
|
|
346
|
+
return undefined;
|
|
347
|
+
const parts = [];
|
|
348
|
+
let position = 0;
|
|
349
|
+
let next = 0;
|
|
350
|
+
for (;;) {
|
|
351
|
+
position += size;
|
|
352
|
+
if (bytes[position] === DASH && bytes[position + 1] === DASH)
|
|
353
|
+
return parts;
|
|
354
|
+
if (bytes[position] !== CR || bytes[position + 1] !== LF)
|
|
355
|
+
return undefined;
|
|
356
|
+
const head = partHeaders(bytes, position + 2);
|
|
357
|
+
if (head === undefined)
|
|
358
|
+
return undefined;
|
|
359
|
+
position = head.next;
|
|
360
|
+
let end;
|
|
361
|
+
do
|
|
362
|
+
end = at[++next] ?? -1;
|
|
363
|
+
while (end !== -1 && (end - 2 < position || bytes[end - 2] !== CR || bytes[end - 1] !== LF));
|
|
364
|
+
if (end === -1)
|
|
365
|
+
return undefined;
|
|
366
|
+
parts.push({
|
|
367
|
+
name: head.name,
|
|
368
|
+
filename: head.filename,
|
|
369
|
+
type: head.type,
|
|
370
|
+
start: position,
|
|
371
|
+
end: end - 2,
|
|
372
|
+
});
|
|
373
|
+
position = end;
|
|
213
374
|
}
|
|
214
|
-
return false;
|
|
215
375
|
}
|
|
216
376
|
/** C0 controls, DEL, line separators, and the characters that reorder or hide text in a label. */
|
|
217
377
|
function isUnsafeNameCode(code) {
|
|
@@ -257,20 +417,6 @@ function safeFileName(raw) {
|
|
|
257
417
|
}
|
|
258
418
|
return name === "" || name === "." || name === ".." ? FALLBACK_FILE_NAME : name;
|
|
259
419
|
}
|
|
260
|
-
/** `part` as a `File` called `name`, keeping its bytes, type, and timestamp. */
|
|
261
|
-
function renamedFile(part, name) {
|
|
262
|
-
const modified = part.lastModified;
|
|
263
|
-
const options = modified === undefined ? { type: part.type } : { type: part.type, lastModified: modified };
|
|
264
|
-
let file = new File([part], name, options);
|
|
265
|
-
// A runtime may hand back the single source part with its own name when nothing else changes;
|
|
266
|
-
// a second, empty part forces a new file.
|
|
267
|
-
if (file.name !== name)
|
|
268
|
-
file = new File([part, ""], name, options);
|
|
269
|
-
if (file.name !== name || file.size !== part.size) {
|
|
270
|
-
throw new Error("multipartBody: this runtime did not apply a file name");
|
|
271
|
-
}
|
|
272
|
-
return file;
|
|
273
|
-
}
|
|
274
420
|
function createReader(limits, inner) {
|
|
275
421
|
const maxFields = limitOf(limits.maxFields, DEFAULT_MAX_FIELDS, "maxFields");
|
|
276
422
|
const maxFiles = limitOf(limits.maxFiles, DEFAULT_MAX_FILES, "maxFiles");
|
|
@@ -294,72 +440,55 @@ function createReader(limits, inner) {
|
|
|
294
440
|
if (boundary === null)
|
|
295
441
|
return INVALID();
|
|
296
442
|
const read = await readBoundedBytes(source, maxBodyBytes);
|
|
297
|
-
if (!read.ok)
|
|
298
|
-
return read.status
|
|
299
|
-
? plainError(413, "payload_too_large")
|
|
300
|
-
: plainError(400, "invalid_content_length");
|
|
301
|
-
}
|
|
443
|
+
if (!read.ok)
|
|
444
|
+
return plainError(read.status, read.error);
|
|
302
445
|
const bytes = read.bytes;
|
|
303
|
-
// Counted on the raw bytes: the
|
|
304
|
-
//
|
|
446
|
+
// Counted on the raw bytes: the parser allocates per part, so a body of many tiny parts must be
|
|
447
|
+
// refused before it is parsed, not after.
|
|
305
448
|
const delimiter = new Uint8Array(boundary.length + 2);
|
|
306
449
|
delimiter[0] = DASH;
|
|
307
450
|
delimiter[1] = DASH;
|
|
308
451
|
for (let i = 0; i < boundary.length; i++)
|
|
309
452
|
delimiter[i + 2] = boundary.charCodeAt(i);
|
|
310
453
|
const found = scanDelimiters(bytes, delimiter, delimiterLimits);
|
|
311
|
-
if (overLimits(found.
|
|
454
|
+
if (overLimits(found.at.length, found.empty, delimiterLimits)) {
|
|
312
455
|
return plainError(413, "too_many_parts");
|
|
313
456
|
}
|
|
314
|
-
// A body
|
|
315
|
-
//
|
|
316
|
-
|
|
457
|
+
// A body that stops before `--boundary--` is refused with the rest, because a reader that
|
|
458
|
+
// tolerated it would hand back the parts it saw as if they were the whole form.
|
|
459
|
+
const parts = partsOf(bytes, found.at, delimiter.length);
|
|
460
|
+
if (parts === undefined)
|
|
317
461
|
return INVALID();
|
|
318
|
-
// The parser is given the boundary this reader extracted, never the request's own header: two
|
|
319
|
-
// readings of one header (a repeated or oddly quoted parameter) would let a body be counted
|
|
320
|
-
// under one boundary and parsed under another.
|
|
321
|
-
const canonical = `${MEDIA_TYPE}; boundary=${TOKEN.test(boundary) ? boundary : `"${boundary}"`}`;
|
|
322
|
-
// Typed by what is read from it: the global `FormData` and `BodyInit` names do not resolve to
|
|
323
|
-
// the same declarations under every lib config.
|
|
324
|
-
let form;
|
|
325
|
-
try {
|
|
326
|
-
form = (await new Response(bytes, {
|
|
327
|
-
headers: { "content-type": canonical },
|
|
328
|
-
}).formData());
|
|
329
|
-
}
|
|
330
|
-
catch {
|
|
331
|
-
return INVALID();
|
|
332
|
-
}
|
|
333
462
|
const record = Object.create(null);
|
|
334
463
|
let fields = 0;
|
|
335
464
|
let files = 0;
|
|
336
|
-
for (const
|
|
465
|
+
for (const part of parts) {
|
|
466
|
+
const name = part.name;
|
|
337
467
|
if (name === "__proto__" && protoPoisoning !== "ignore") {
|
|
338
468
|
if (protoPoisoning === "reject")
|
|
339
469
|
return INVALID();
|
|
340
470
|
continue;
|
|
341
471
|
}
|
|
472
|
+
const size = part.end - part.start;
|
|
342
473
|
let value;
|
|
343
|
-
if (
|
|
474
|
+
if (part.filename === null) {
|
|
344
475
|
if (++fields > maxFields)
|
|
345
476
|
return plainError(413, "too_many_fields");
|
|
346
|
-
if (
|
|
477
|
+
if (size > maxFieldBytes)
|
|
347
478
|
return plainError(413, "field_too_large");
|
|
348
|
-
value = part;
|
|
479
|
+
value = textOf(bytes, part.start, part.end);
|
|
349
480
|
}
|
|
350
481
|
else {
|
|
351
|
-
// A file input left empty still submits a part with no bytes
|
|
352
|
-
|
|
353
|
-
if (part.size === 0)
|
|
482
|
+
// A file input left empty still submits a part with no bytes, so an empty file is that input.
|
|
483
|
+
if (size === 0)
|
|
354
484
|
continue;
|
|
355
|
-
const rawName = part.name;
|
|
356
|
-
const clientName = typeof rawName === "string" ? rawName : "";
|
|
357
485
|
if (++files > maxFiles)
|
|
358
486
|
return plainError(413, "too_many_files");
|
|
359
|
-
if (
|
|
487
|
+
if (size > maxFileBytes)
|
|
360
488
|
return plainError(413, "file_too_large");
|
|
361
|
-
|
|
362
|
-
|
|
489
|
+
// biome-ignore lint/plugin/requireSafetyCommentForTypeAssertion: readBoundedBytes allocates its own ArrayBuffer, never a shared one.
|
|
490
|
+
const content = bytes.subarray(part.start, part.end);
|
|
491
|
+
value = fileOf(content, safeFileName(part.filename), part.type ?? "text/plain");
|
|
363
492
|
}
|
|
364
493
|
const existing = record[name];
|
|
365
494
|
if (existing === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multipart.js","sourceRoot":"","sources":["../../src/server/multipart.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multipart.js","sourceRoot":"","sources":["../../src/server/multipart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-direct outcome shaping: the `@nifrajs/node` bridge's render form and the `Response` -> outcome
|
|
3
|
+
* conversion. Mirrors `respond.ts` but skips the undici `Response` build where the adapter can write a
|
|
4
|
+
* plain-data render straight to the socket. Imports only runtime-core + respond + the spine types.
|
|
5
|
+
*/
|
|
1
6
|
import { type HandlerResult, type PlainRender, type ResponseResult } from "./runtime-core.js";
|
|
2
7
|
import type { CtxSet } from "./server.js";
|
|
3
8
|
import { type StaticResponseHeaders } from "./static-headers.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-outcome.d.ts","sourceRoot":"","sources":["../../src/server/node-outcome.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-outcome.d.ts","sourceRoot":"","sources":["../../src/server/node-outcome.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,WAAW,EAEhB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,qBAAqB,CAAA;AAM5B;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GAC1D;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;IAClF,yFAAyF;IACzF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC/C,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAC7B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,SAAS,CAAA;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAA;CACnC,CAAA;AAEL;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CA8BlF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAQlF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,QAAQ,CAkCzE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,qBAAqB,EAC9B,aAAa,UAAQ,GACpB,gBAAgB,CAUlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,GAAG,cAAc,GAAG,gBAAgB,CAW3F"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* conversion. Mirrors `respond.ts` but skips the undici `Response` build where the adapter can write a
|
|
4
4
|
* plain-data render straight to the socket. Imports only runtime-core + respond + the spine types.
|
|
5
5
|
*/
|
|
6
|
+
import { jsonText } from "./json-text.js";
|
|
6
7
|
import { applySetToResponse, applyStaticResponseHeaders, markTaggedResponse, normalizeBodylessResponse, RESPONSE_OWNED_HEADERS, rememberRenderedResponse, responseBodyUsed, SENT_BODY, taggedResponseBody, } from "./respond.js";
|
|
7
8
|
import { EMPTY_RESPONSE_CONTROLS, isResponseResult, plainRenderHeaders, } from "./runtime-core.js";
|
|
8
9
|
import { mergeStaticHeaderRecord, staticHeaderRecordCopy, } from "./static-headers.js";
|
|
@@ -38,7 +39,7 @@ export function toNodeOutcome(result, set) {
|
|
|
38
39
|
return nodeOutcomeFromResponse(applySetToResponse(normalizeBodylessResponse(result), set));
|
|
39
40
|
}
|
|
40
41
|
const status = set.status ?? (result === undefined ? 204 : 200);
|
|
41
|
-
const body = result === undefined || isBodylessStatus(status) ? null :
|
|
42
|
+
const body = result === undefined || isBodylessStatus(status) ? null : jsonText(result);
|
|
42
43
|
return {
|
|
43
44
|
kind: "json",
|
|
44
45
|
status,
|
|
@@ -58,9 +59,7 @@ export function plainNodeOutcome(plain, set) {
|
|
|
58
59
|
status: plain.status,
|
|
59
60
|
headers: plainRenderHeaders(plain, set),
|
|
60
61
|
cookies: set._cookies,
|
|
61
|
-
body: plain.body === undefined || isBodylessStatus(plain.status)
|
|
62
|
-
? null
|
|
63
|
-
: JSON.stringify(plain.body),
|
|
62
|
+
body: plain.body === undefined || isBodylessStatus(plain.status) ? null : jsonText(plain.body),
|
|
64
63
|
};
|
|
65
64
|
}
|
|
66
65
|
/**
|