@nifrajs/core 5.8.0 → 5.10.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 +118 -0
- package/README.md +9 -4
- package/dist/assurance.d.ts +26 -1
- package/dist/assurance.d.ts.map +1 -1
- package/dist/assurance.js +43 -11
- package/dist/assurance.js.map +1 -1
- package/dist/canonical-json.d.ts +11 -0
- package/dist/canonical-json.d.ts.map +1 -0
- package/dist/canonical-json.js +46 -0
- package/dist/canonical-json.js.map +1 -0
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +1 -8
- package/dist/capabilities.js.map +1 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +1 -8
- package/dist/data.js.map +1 -1
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +2 -12
- package/dist/diff.js.map +1 -1
- package/dist/durable-adapters.d.ts +2 -0
- package/dist/durable-adapters.d.ts.map +1 -1
- package/dist/durable-adapters.js +41 -49
- package/dist/durable-adapters.js.map +1 -1
- package/dist/durable-saga.d.ts.map +1 -1
- package/dist/durable-saga.js +14 -20
- package/dist/durable-saga.js.map +1 -1
- package/dist/evidence.d.ts.map +1 -1
- package/dist/evidence.js +14 -68
- package/dist/evidence.js.map +1 -1
- package/dist/idempotency.d.ts.map +1 -1
- package/dist/idempotency.js +60 -23
- package/dist/idempotency.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/control-character.d.ts +3 -0
- package/dist/internal/control-character.d.ts.map +1 -0
- package/dist/internal/control-character.js +10 -0
- package/dist/internal/control-character.js.map +1 -0
- package/dist/internal/durable-shared.d.ts.map +1 -1
- package/dist/internal/durable-shared.js +4 -1
- package/dist/internal/durable-shared.js.map +1 -1
- package/dist/internal/hex.d.ts +5 -0
- package/dist/internal/hex.d.ts.map +1 -0
- package/dist/internal/hex.js +14 -0
- package/dist/internal/hex.js.map +1 -0
- package/dist/internal/record.d.ts +3 -0
- package/dist/internal/record.d.ts.map +1 -0
- package/dist/internal/record.js +5 -0
- package/dist/internal/record.js.map +1 -0
- package/dist/internal/route-compiler.d.ts.map +1 -1
- package/dist/internal/route-compiler.js +2 -2
- package/dist/internal/route-compiler.js.map +1 -1
- package/dist/internal/route-execution.d.ts +4 -4
- package/dist/internal/route-execution.d.ts.map +1 -1
- package/dist/internal/route-execution.js +4 -0
- package/dist/internal/route-execution.js.map +1 -1
- package/dist/internal/route-lanes.d.ts +4 -3
- package/dist/internal/route-lanes.d.ts.map +1 -1
- package/dist/internal/route-lanes.js +16 -33
- package/dist/internal/route-lanes.js.map +1 -1
- package/dist/internal/schema-parts.d.ts +13 -0
- package/dist/internal/schema-parts.d.ts.map +1 -0
- package/dist/internal/schema-parts.js +15 -0
- package/dist/internal/schema-parts.js.map +1 -0
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +2 -14
- package/dist/ledger.js.map +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +10 -37
- package/dist/manifest.js.map +1 -1
- package/dist/open-resolved.d.ts +18 -0
- package/dist/open-resolved.d.ts.map +1 -0
- package/dist/open-resolved.js +62 -0
- package/dist/open-resolved.js.map +1 -0
- package/dist/range.js +1 -1
- package/dist/range.js.map +1 -1
- package/dist/router/path-codec.d.ts +22 -0
- package/dist/router/path-codec.d.ts.map +1 -0
- package/dist/router/path-codec.js +87 -0
- package/dist/router/path-codec.js.map +1 -0
- package/dist/router/pattern.d.ts +21 -1
- package/dist/router/pattern.d.ts.map +1 -1
- package/dist/router/pattern.js +117 -0
- package/dist/router/pattern.js.map +1 -1
- package/dist/router/same-origin-path.d.ts +22 -0
- package/dist/router/same-origin-path.d.ts.map +1 -0
- package/dist/router/same-origin-path.js +37 -0
- package/dist/router/same-origin-path.js.map +1 -0
- package/dist/serve-static.d.ts +22 -0
- package/dist/serve-static.d.ts.map +1 -0
- package/dist/serve-static.js +187 -0
- package/dist/serve-static.js.map +1 -0
- package/dist/server/bare-error-lane.d.ts +2 -1
- package/dist/server/bare-error-lane.d.ts.map +1 -1
- package/dist/server/bare-error-lane.js +12 -3
- package/dist/server/bare-error-lane.js.map +1 -1
- package/dist/server/base64-answers.d.ts.map +1 -1
- package/dist/server/base64-answers.js +1 -4
- package/dist/server/base64-answers.js.map +1 -1
- package/dist/server/body-lane.d.ts.map +1 -1
- package/dist/server/body-lane.js +43 -38
- package/dist/server/body-lane.js.map +1 -1
- package/dist/server/body.d.ts.map +1 -1
- package/dist/server/body.js +4 -1
- package/dist/server/body.js.map +1 -1
- package/dist/server/bridge-markers.d.ts +1 -1
- package/dist/server/bridge-markers.js +1 -1
- package/dist/server/cookies.d.ts.map +1 -1
- package/dist/server/cookies.js +4 -1
- package/dist/server/cookies.js.map +1 -1
- package/dist/server/core-copies.js +1 -1
- package/dist/server/core-copies.js.map +1 -1
- package/dist/server/http.d.ts +6 -18
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +14 -33
- package/dist/server/http.js.map +1 -1
- package/dist/server/idempotency-lane.d.ts.map +1 -1
- package/dist/server/idempotency-lane.js +2 -0
- package/dist/server/idempotency-lane.js.map +1 -1
- package/dist/server/idle-timeout.d.ts +39 -0
- package/dist/server/idle-timeout.d.ts.map +1 -0
- package/dist/server/idle-timeout.js +95 -0
- package/dist/server/idle-timeout.js.map +1 -0
- package/dist/server/json-shared.d.ts +23 -0
- package/dist/server/json-shared.d.ts.map +1 -0
- package/dist/server/json-shared.js +33 -0
- package/dist/server/json-shared.js.map +1 -0
- package/dist/server/json-text.d.ts +1 -1
- package/dist/server/json-text.js +1 -1
- package/dist/server/node-outcome.js +1 -1
- package/dist/server/node-outcome.js.map +1 -1
- package/dist/server/request-context.d.ts +22 -1
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +44 -4
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/request-local.d.ts +44 -0
- package/dist/server/request-local.d.ts.map +1 -0
- package/dist/server/request-local.js +91 -0
- package/dist/server/request-local.js.map +1 -0
- package/dist/server/respond.js +1 -1
- package/dist/server/respond.js.map +1 -1
- package/dist/server/response-contract-lane.d.ts +10 -2
- package/dist/server/response-contract-lane.d.ts.map +1 -1
- package/dist/server/response-contract-lane.js +93 -64
- package/dist/server/response-contract-lane.js.map +1 -1
- package/dist/server/runtime-core.d.ts +7 -4
- package/dist/server/runtime-core.d.ts.map +1 -1
- package/dist/server/runtime-core.js +9 -7
- package/dist/server/runtime-core.js.map +1 -1
- package/dist/server/server-types.d.ts +23 -8
- package/dist/server/server-types.d.ts.map +1 -1
- package/dist/server/server.d.ts +58 -59
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +860 -510
- package/dist/server/server.js.map +1 -1
- package/dist/server/transport-lane.d.ts.map +1 -1
- package/dist/server/transport-lane.js +2 -0
- package/dist/server/transport-lane.js.map +1 -1
- package/dist/server/webhook.js +1 -1
- package/dist/server/webhook.js.map +1 -1
- package/dist/server/websocket.d.ts +3 -1
- package/dist/server/websocket.d.ts.map +1 -1
- package/dist/server/websocket.js +14 -1
- package/dist/server/websocket.js.map +1 -1
- package/dist/server/ws-adapter-view.d.ts +54 -0
- package/dist/server/ws-adapter-view.d.ts.map +1 -0
- package/dist/server/ws-adapter-view.js +7 -0
- package/dist/server/ws-adapter-view.js.map +1 -0
- package/dist/server.d.ts +2 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/single-copy.d.ts.map +1 -1
- package/dist/single-copy.js +1 -1
- package/dist/single-copy.js.map +1 -1
- package/dist/static-file.d.ts +156 -4
- package/dist/static-file.d.ts.map +1 -1
- package/dist/static-file.js +198 -4
- package/dist/static-file.js.map +1 -1
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +1 -3
- package/dist/wire.js.map +1 -1
- package/package.json +16 -1
- package/src/assurance.ts +66 -16
- package/src/canonical-json.ts +43 -0
- package/src/capabilities.ts +1 -8
- package/src/data.ts +2 -8
- package/src/diff.ts +2 -12
- package/src/durable-adapters.ts +53 -50
- package/src/durable-saga.ts +30 -23
- package/src/evidence.ts +25 -90
- package/src/idempotency.ts +62 -20
- package/src/index.ts +13 -2
- package/src/internal/control-character.ts +8 -0
- package/src/internal/durable-shared.ts +4 -1
- package/src/internal/hex.ts +14 -0
- package/src/internal/record.ts +4 -0
- package/src/internal/route-compiler.ts +2 -2
- package/src/internal/route-execution.ts +7 -20
- package/src/internal/route-lanes.ts +20 -44
- package/src/internal/schema-parts.ts +19 -0
- package/src/ledger.ts +2 -16
- package/src/manifest.ts +10 -38
- package/src/open-resolved.ts +64 -0
- package/src/range.ts +1 -1
- package/src/router/path-codec.ts +93 -0
- package/src/router/pattern.ts +127 -0
- package/src/router/same-origin-path.ts +36 -0
- package/src/serve-static.ts +227 -0
- package/src/server/bare-error-lane.ts +11 -2
- package/src/server/base64-answers.ts +2 -6
- package/src/server/body-lane.ts +58 -51
- package/src/server/body.ts +4 -1
- package/src/server/bridge-markers.ts +1 -1
- package/src/server/cookies.ts +4 -1
- package/src/server/core-copies.ts +1 -1
- package/src/server/http.ts +13 -33
- package/src/server/idempotency-lane.ts +2 -0
- package/src/server/idle-timeout.ts +107 -0
- package/src/server/json-shared.ts +38 -0
- package/src/server/json-text.ts +1 -1
- package/src/server/node-outcome.ts +1 -1
- package/src/server/request-context.ts +62 -3
- package/src/server/request-local.ts +109 -0
- package/src/server/respond.ts +1 -1
- package/src/server/response-contract-lane.ts +112 -65
- package/src/server/runtime-core.ts +10 -8
- package/src/server/server-types.ts +23 -8
- package/src/server/server.ts +1220 -798
- package/src/server/transport-lane.ts +2 -0
- package/src/server/webhook.ts +1 -1
- package/src/server/websocket.ts +18 -1
- package/src/server/ws-adapter-view.ts +63 -0
- package/src/server.ts +12 -1
- package/src/single-copy.ts +1 -3
- package/src/static-file.ts +350 -4
- package/src/wire.ts +2 -4
|
@@ -38,8 +38,10 @@
|
|
|
38
38
|
* object. So a value's hooks are applied first, as the serializer would, and that result is validated
|
|
39
39
|
* and sent: a class whose `toJSON` adds a private field fails a closed schema instead of passing on its
|
|
40
40
|
* public ones. `strip` keeps the declared fields of what the hook writes, so a hook that writes `id`
|
|
41
|
-
* from private state keeps it. A `Date` is
|
|
42
|
-
*
|
|
41
|
+
* from private state keeps it. A `Date` is judged as the ISO string its own hook writes too, so a
|
|
42
|
+
* `t.string({ format: "date-time" })` or `t.date()` field holding a database timestamp passes: a
|
|
43
|
+
* schema that carries its JSON Schema is checked as JSON carries it. A schema without one (zod,
|
|
44
|
+
* valibot) cannot say which place expects a string, so it is shown every `Date` as one.
|
|
43
45
|
*
|
|
44
46
|
* ## What enforcement costs
|
|
45
47
|
*
|
|
@@ -53,17 +55,16 @@
|
|
|
53
55
|
* or lifecycle hook has already left that lane, so for the routes that look like production the
|
|
54
56
|
* contract is effectively free - declare it.
|
|
55
57
|
*/
|
|
58
|
+
import { isRecord } from "../internal/record.js";
|
|
56
59
|
import { formatStandardIssues, } from "../schema/standard.js";
|
|
57
60
|
import { INSTALL_RESPONSE_CONTRACT } from "./install.js";
|
|
61
|
+
import { DATE_TO_JSON, define, readsShippedTime } from "./json-shared.js";
|
|
58
62
|
import { jsonText } from "./json-text.js";
|
|
59
63
|
import { isResponseResult, status } from "./runtime-core.js";
|
|
60
|
-
const isPlainObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
61
64
|
const projectors = new WeakMap();
|
|
62
|
-
/** The projector for a schema's JSON Schema, compiled once per schema.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (typeof node !== "object" || node === null)
|
|
66
|
-
return undefined;
|
|
65
|
+
/** The projector for a schema's JSON Schema, compiled once per schema. It writes each `Date` as it
|
|
66
|
+
* descends, as every schema that carries its JSON Schema is judged. */
|
|
67
|
+
function projectorOf(node) {
|
|
67
68
|
let found = projectors.get(node);
|
|
68
69
|
if (found === undefined) {
|
|
69
70
|
found = compileProjector(node) ?? null;
|
|
@@ -71,6 +72,11 @@ function projectorOf(schema) {
|
|
|
71
72
|
}
|
|
72
73
|
return found ?? undefined;
|
|
73
74
|
}
|
|
75
|
+
/** The JSON Schema a schema carries as `jsonSchema` (every `@nifrajs/schema` `t` schema), if any. */
|
|
76
|
+
function jsonSchemaOf(schema) {
|
|
77
|
+
const node = Reflect.get(schema, "jsonSchema");
|
|
78
|
+
return typeof node === "object" && node !== null ? node : undefined;
|
|
79
|
+
}
|
|
74
80
|
const objectField = (node, key) => {
|
|
75
81
|
const value = Reflect.get(node, key);
|
|
76
82
|
return typeof value === "object" && value !== null ? value : undefined;
|
|
@@ -93,7 +99,7 @@ function compileProjector(node) {
|
|
|
93
99
|
return value;
|
|
94
100
|
const out = [];
|
|
95
101
|
for (let i = 0; i < value.length; i++)
|
|
96
|
-
out.push(item(writtenAt(value[i], i)));
|
|
102
|
+
out.push(item(writtenAt(value[i], i, true)));
|
|
97
103
|
return out;
|
|
98
104
|
};
|
|
99
105
|
}
|
|
@@ -123,14 +129,14 @@ function compileProjector(node) {
|
|
|
123
129
|
return undefined;
|
|
124
130
|
const declared = new Set(keys);
|
|
125
131
|
return (value) => {
|
|
126
|
-
if (!
|
|
132
|
+
if (!isRecord(value))
|
|
127
133
|
return value;
|
|
128
134
|
const out = closed ? {} : { ...value };
|
|
129
135
|
for (const key of closed ? keys : nested.keys()) {
|
|
130
136
|
if (!hasField(value, key))
|
|
131
137
|
continue;
|
|
132
138
|
const projector = nested.get(key);
|
|
133
|
-
define(out, key, projector === undefined ? value[key] : projector(writtenAt(value[key], key)));
|
|
139
|
+
define(out, key, projector === undefined ? value[key] : projector(writtenAt(value[key], key, true)));
|
|
134
140
|
}
|
|
135
141
|
if (patterns.length > 0)
|
|
136
142
|
projectPatternKeys(value, out, declared, patterns, closed);
|
|
@@ -161,7 +167,7 @@ function compileUnion(branches) {
|
|
|
161
167
|
return (value) => {
|
|
162
168
|
if (Array.isArray(value))
|
|
163
169
|
return forArray === undefined ? value : forArray(value);
|
|
164
|
-
return forObject !== undefined &&
|
|
170
|
+
return forObject !== undefined && isRecord(value) ? forObject(value) : value;
|
|
165
171
|
};
|
|
166
172
|
}
|
|
167
173
|
/** Sort a union's branches, nested unions flattened; `false` when one could hold anything. */
|
|
@@ -216,7 +222,7 @@ function compileDiscriminated(branches) {
|
|
|
216
222
|
if (!disjoint)
|
|
217
223
|
continue;
|
|
218
224
|
return (value) => {
|
|
219
|
-
if (!
|
|
225
|
+
if (!isRecord(value) || !hasField(value, key))
|
|
220
226
|
return value;
|
|
221
227
|
const projector = byTag.get(value[key]);
|
|
222
228
|
return projector === undefined ? value : projector(value);
|
|
@@ -279,33 +285,30 @@ function projectPatternKeys(value, out, declared, patterns, closed) {
|
|
|
279
285
|
if (matches === 0)
|
|
280
286
|
continue;
|
|
281
287
|
if (matches === 1 && projector !== undefined)
|
|
282
|
-
define(out, key, projector(writtenAt(value[key], key)));
|
|
288
|
+
define(out, key, projector(writtenAt(value[key], key, true)));
|
|
283
289
|
else if (closed)
|
|
284
290
|
define(out, key, value[key]);
|
|
285
291
|
}
|
|
286
292
|
}
|
|
287
293
|
/** `__proto__` is a declared name like any other here; plain assignment would set the prototype. */
|
|
288
|
-
function define(out, key, value) {
|
|
289
|
-
if (key === "__proto__")
|
|
290
|
-
Object.defineProperty(out, key, { value, enumerable: true, writable: true, configurable: true });
|
|
291
|
-
else
|
|
292
|
-
out[key] = value;
|
|
293
|
-
}
|
|
294
|
-
const DATE_TO_JSON = Date.prototype.toJSON;
|
|
295
294
|
// Deeper than this, the copying walk takes over with its own cycle check.
|
|
296
295
|
const MAX_HOOK_SCAN_DEPTH = 64;
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
296
|
+
const isDate = (value, hook) => hook === DATE_TO_JSON && value instanceof Date;
|
|
297
|
+
/**
|
|
298
|
+
* Whether `value` holds a `toJSON` hook, a `Date`'s only when `dates` writes them. Stops at the first
|
|
299
|
+
* and allocates nothing: most payloads have none, and this is the price every contracted response
|
|
300
|
+
* pays.
|
|
301
|
+
*/
|
|
302
|
+
function hasHook(value, depth, dates) {
|
|
300
303
|
if (depth > MAX_HOOK_SCAN_DEPTH)
|
|
301
304
|
return true;
|
|
302
305
|
const hook = Reflect.get(value, "toJSON");
|
|
303
306
|
if (typeof hook === "function")
|
|
304
|
-
return !(
|
|
307
|
+
return dates || !isDate(value, hook);
|
|
305
308
|
if (Array.isArray(value)) {
|
|
306
309
|
for (let i = 0; i < value.length; i++) {
|
|
307
310
|
const item = value[i];
|
|
308
|
-
if (typeof item === "object" && item !== null && hasHook(item, depth + 1))
|
|
311
|
+
if (typeof item === "object" && item !== null && hasHook(item, depth + 1, dates))
|
|
309
312
|
return true;
|
|
310
313
|
}
|
|
311
314
|
return false;
|
|
@@ -314,7 +317,7 @@ function hasHook(value, depth) {
|
|
|
314
317
|
for (const key in value) {
|
|
315
318
|
// biome-ignore lint/plugin/requireSafetyCommentForTypeAssertion: `key` was enumerated from `value`; `Reflect.get` here halves the speed of this for-in.
|
|
316
319
|
const field = value[key];
|
|
317
|
-
if (typeof field === "object" && field !== null && hasHook(field, depth + 1))
|
|
320
|
+
if (typeof field === "object" && field !== null && hasHook(field, depth + 1, dates))
|
|
318
321
|
return true;
|
|
319
322
|
}
|
|
320
323
|
return false;
|
|
@@ -322,20 +325,25 @@ function hasHook(value, depth) {
|
|
|
322
325
|
/**
|
|
323
326
|
* What `JSON.stringify` writes for `value`: every `toJSON` hook applied as the serializer applies it,
|
|
324
327
|
* so the contract judges the bytes that go out rather than fields a hook then replaces. Copies only the
|
|
325
|
-
* containers above a hook. A `Date` keeps its object
|
|
326
|
-
* string a date schema declares.
|
|
328
|
+
* containers above a hook. A `Date` keeps its object unless `dates`.
|
|
327
329
|
*/
|
|
328
|
-
const wireValueOf = (value) => typeof value === "object" && value !== null && hasHook(value, 0)
|
|
329
|
-
? wireValue(value, "", [])
|
|
330
|
+
const wireValueOf = (value, dates) => typeof value === "object" && value !== null && hasHook(value, 0, dates)
|
|
331
|
+
? wireValue(value, "", [], dates)
|
|
330
332
|
: value;
|
|
331
|
-
const wireValue = (value, key, path) => wireChildren(writtenAt(value, key), path);
|
|
333
|
+
const wireValue = (value, key, path, dates) => wireChildren(writtenAt(value, key, dates), path, dates);
|
|
332
334
|
/** `value` as the serializer takes it under `key`: its own hook applied, its fields still as they are. */
|
|
333
|
-
function writtenAt(value, key) {
|
|
335
|
+
function writtenAt(value, key, dates) {
|
|
334
336
|
if (typeof value !== "object" || value === null)
|
|
335
337
|
return value;
|
|
336
338
|
const hook = Reflect.get(value, "toJSON");
|
|
337
|
-
if (typeof hook !== "function"
|
|
339
|
+
if (typeof hook !== "function")
|
|
338
340
|
return value;
|
|
341
|
+
if (isDate(value, hook)) {
|
|
342
|
+
if (!dates)
|
|
343
|
+
return value;
|
|
344
|
+
if (readsShippedTime(value))
|
|
345
|
+
return Number.isFinite(value.valueOf()) ? value.toISOString() : null;
|
|
346
|
+
}
|
|
339
347
|
return fieldsOf(Reflect.apply(hook, value, [String(key)]));
|
|
340
348
|
}
|
|
341
349
|
/**
|
|
@@ -355,38 +363,41 @@ function fieldsOf(value) {
|
|
|
355
363
|
define(fields, name, Reflect.get(value, name));
|
|
356
364
|
return fields;
|
|
357
365
|
}
|
|
358
|
-
|
|
366
|
+
/** `value` with each of its fields written; a container is copied once, when a first field changes. */
|
|
367
|
+
function wireChildren(value, path, dates) {
|
|
359
368
|
// A cycle is left as it is for `JSON.stringify` to refuse.
|
|
360
369
|
if (typeof value !== "object" || value === null || path.includes(value))
|
|
361
370
|
return value;
|
|
362
371
|
path.push(value);
|
|
372
|
+
// A primitive is written as it is, so only an object field is walked.
|
|
363
373
|
if (Array.isArray(value)) {
|
|
364
374
|
let items;
|
|
365
375
|
for (let i = 0; i < value.length; i++) {
|
|
366
376
|
const item = value[i];
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
if (
|
|
371
|
-
|
|
377
|
+
if (typeof item !== "object" || item === null)
|
|
378
|
+
continue;
|
|
379
|
+
const written = wireValue(item, i, path, dates);
|
|
380
|
+
if (written === item)
|
|
381
|
+
continue;
|
|
382
|
+
items ??= value.slice();
|
|
383
|
+
items[i] = written;
|
|
372
384
|
}
|
|
373
385
|
path.pop();
|
|
374
386
|
return items ?? value;
|
|
375
387
|
}
|
|
376
|
-
|
|
388
|
+
// biome-ignore lint/plugin/requireSafetyCommentForTypeAssertion: every key read below comes from `Object.keys(value)`; `Reflect.get` costs a call per field.
|
|
389
|
+
const record = value;
|
|
377
390
|
let out;
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
define(out, name, written);
|
|
389
|
-
index++;
|
|
391
|
+
for (const name of Object.keys(record)) {
|
|
392
|
+
const field = record[name];
|
|
393
|
+
if (typeof field !== "object" || field === null)
|
|
394
|
+
continue;
|
|
395
|
+
const written = wireValue(field, name, path, dates);
|
|
396
|
+
if (written === field)
|
|
397
|
+
continue;
|
|
398
|
+
// A spread copies the own enumerable fields JSON writes, faster than one assignment each.
|
|
399
|
+
out ??= { ...record };
|
|
400
|
+
define(out, name, written);
|
|
390
401
|
}
|
|
391
402
|
path.pop();
|
|
392
403
|
return out ?? value;
|
|
@@ -408,7 +419,7 @@ function collectStripped(sent, kept, path, out) {
|
|
|
408
419
|
}
|
|
409
420
|
return;
|
|
410
421
|
}
|
|
411
|
-
if (!
|
|
422
|
+
if (!isRecord(sent) || !isRecord(kept))
|
|
412
423
|
return;
|
|
413
424
|
for (const key of Object.keys(sent)) {
|
|
414
425
|
const short = key.length > MAX_NAME_LENGTH ? `${key.slice(0, MAX_NAME_LENGTH)}...` : key;
|
|
@@ -445,7 +456,7 @@ function strippedMessage(fields) {
|
|
|
445
456
|
}
|
|
446
457
|
/** Top-level keys present in the handler's result but absent from the validated value. */
|
|
447
458
|
function droppedKeys(result, value) {
|
|
448
|
-
if (!
|
|
459
|
+
if (!isRecord(result) || !isRecord(value))
|
|
449
460
|
return [];
|
|
450
461
|
return Object.keys(result).filter((k) => !(k in value));
|
|
451
462
|
}
|
|
@@ -482,6 +493,9 @@ export function checkRouteResponseContract(definition, result, mode, jsonReply,
|
|
|
482
493
|
}
|
|
483
494
|
const STRIP = { strip: true, report: undefined };
|
|
484
495
|
const KEEP = { strip: false, report: undefined };
|
|
496
|
+
/** Set by `@nifrajs/schema` on the validate of a `t` schema with a `t.date()`: the check for a value
|
|
497
|
+
* as JSON writes it. */
|
|
498
|
+
const VALIDATE_WIRE = Symbol.for("nifra.schema.validateWire");
|
|
485
499
|
function checkContract(definition, result, mode, jsonReply, policy) {
|
|
486
500
|
const plain = isResponseResult(result) ? result.plain : undefined;
|
|
487
501
|
if (plain !== undefined) {
|
|
@@ -510,18 +524,29 @@ function checkContract(definition, result, mode, jsonReply, policy) {
|
|
|
510
524
|
/** Validate `payload`; `served` is what goes out unchanged when nothing is enforced - the whole
|
|
511
525
|
* `status(...)` result or reply, never just its body. */
|
|
512
526
|
function validateContract(schema, payload, served, mode, policy, replace) {
|
|
513
|
-
const
|
|
527
|
+
const node = jsonSchemaOf(schema);
|
|
528
|
+
// A `Date` is a hook like any other for a schema that carries its JSON Schema: one walk writes them.
|
|
529
|
+
const dates = node !== undefined;
|
|
530
|
+
const project = policy.strip && node !== undefined ? projectorOf(node) : undefined;
|
|
514
531
|
// Naming what was stripped compares against everything the payload writes, so it walks it whole.
|
|
515
|
-
const
|
|
516
|
-
|
|
517
|
-
|
|
532
|
+
const hooks = (project === undefined || policy.report !== undefined || mode === "warn") &&
|
|
533
|
+
typeof payload === "object" &&
|
|
534
|
+
payload !== null &&
|
|
535
|
+
hasHook(payload, 0, dates);
|
|
536
|
+
const before = hooks ? wireValue(payload, "", [], dates) : payload;
|
|
518
537
|
// The projection applies the hook of each value it descends into and reads only declared fields,
|
|
519
538
|
// so a quiet strip never enumerates the payload's own keys. What it copies whole is walked after.
|
|
520
|
-
const sent = project === undefined ? before : wireValueOf(project(writtenAt(before, "")));
|
|
521
|
-
|
|
522
|
-
//
|
|
523
|
-
|
|
524
|
-
const
|
|
539
|
+
const sent = project === undefined ? before : wireValueOf(project(writtenAt(before, "", true)), true);
|
|
540
|
+
// A `t` schema's check for a value as JSON carries it: its `t.date()` strings stay strings, where
|
|
541
|
+
// the plain validate would hand back the `Date`s a request's handler receives.
|
|
542
|
+
const validate = schema["~standard"].validate;
|
|
543
|
+
const wire = validate[VALIDATE_WIRE];
|
|
544
|
+
const settled = typeof wire === "function" ? wire(sent) : schema["~standard"].validate(sent);
|
|
545
|
+
// When hooks wrote the payload, `warn` sends what they wrote here rather than calling them again:
|
|
546
|
+
// a hook that answers differently on a second call cannot send what was not judged, and the
|
|
547
|
+
// serializer does not write a `Date` twice. A contracted route's `c.json` reply has none left, as
|
|
548
|
+
// `write` applied them when the reply was built.
|
|
549
|
+
const shown = mode === "warn" && hooks ? replace(before) : served;
|
|
525
550
|
return settled instanceof Promise
|
|
526
551
|
? settled.then((r) => interpret(r, before, shown, mode, replace, policy.report))
|
|
527
552
|
: interpret(settled, before, shown, mode, replace, policy.report);
|
|
@@ -598,6 +623,10 @@ export function responseContract(mode = "warn", options = {}) {
|
|
|
598
623
|
};
|
|
599
624
|
const runtime = {
|
|
600
625
|
mode,
|
|
626
|
+
write: (definition, body, status) => {
|
|
627
|
+
const schema = schemaFor(definition, status ?? 200);
|
|
628
|
+
return schema === undefined ? body : wireValueOf(body, jsonSchemaOf(schema) !== undefined);
|
|
629
|
+
},
|
|
601
630
|
check: (definition, result, context) => {
|
|
602
631
|
const jsonReply = result instanceof Response && result === context?.jsonReply
|
|
603
632
|
? { body: context.jsonBody }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-contract-lane.js","sourceRoot":"","sources":["../../src/server/response-contract-lane.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"response-contract-lane.js","sourceRoot":"","sources":["../../src/server/response-contract-lane.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,9 @@ export declare const CONTEXT_SET: unique symbol;
|
|
|
20
20
|
export declare const CONTEXT_SEARCH: unique symbol;
|
|
21
21
|
/** The request a context answers, read without the transport cap `req` applies for user code. */
|
|
22
22
|
export declare const CONTEXT_REQUEST: unique symbol;
|
|
23
|
+
/** Sets the idle timeout of the connection a context's request arrived on (`undefined` puts back
|
|
24
|
+
* the listener's own); `false` when the serving adapter has none to set. */
|
|
25
|
+
export declare const CONTEXT_IDLE_TIMEOUT: unique symbol;
|
|
23
26
|
/**
|
|
24
27
|
* A transport codec (or other pre-parsing hook) that already decoded the body stashes the value
|
|
25
28
|
* here on the replacement `RequestSource`; the JSON body lane takes it verbatim instead of
|
|
@@ -88,15 +91,15 @@ export interface StatusResponse<Code extends number = number, Body = unknown> ex
|
|
|
88
91
|
}
|
|
89
92
|
export declare function isResponseResult(value: unknown): value is ResponseResult;
|
|
90
93
|
/**
|
|
91
|
-
* The headers a plain render ships: its own on top of
|
|
92
|
-
* so an ambient header (a request id, say) survives an early exit the way it
|
|
93
|
-
* return, and a header named at the exit site still wins.
|
|
94
|
+
* The headers a plain render ships: its `own` on top of the `ambient` ones the request left in
|
|
95
|
+
* `c.set.headers`, so an ambient header (a request id, say) survives an early exit the way it
|
|
96
|
+
* survives an ordinary return, and a header named at the exit site still wins.
|
|
94
97
|
*
|
|
95
98
|
* Always a fresh object when the render has headers of its own: the node writers mutate the record
|
|
96
99
|
* they are handed (content-type, content-length, cookies), and a `status(...)` value is commonly
|
|
97
100
|
* hoisted to module scope and answered from on every request.
|
|
98
101
|
*/
|
|
99
|
-
export declare function plainRenderHeaders(
|
|
102
|
+
export declare function plainRenderHeaders(own: Readonly<Record<string, string>> | undefined, ambient: Record<string, string> | undefined): Record<string, string> | undefined;
|
|
100
103
|
/**
|
|
101
104
|
* Finish the request here, with this status and body, without building a `Response`.
|
|
102
105
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-core.d.ts","sourceRoot":"","sources":["../../src/server/runtime-core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAG/E,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAExD,qFAAqF;AACrF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE9C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAC+C,CAAA;AAE7E,eAAO,MAAM,eAAe,eAAqD,CAAA;AACjF,eAAO,MAAM,WAAW,eAA8B,CAAA;AACtD,eAAO,MAAM,cAAc,eAAiC,CAAA;AAC5D,iGAAiG;AACjG,eAAO,MAAM,eAAe,eAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime-core.d.ts","sourceRoot":"","sources":["../../src/server/runtime-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,9 @@ export const CONTEXT_SET = Symbol("nifra.context.set");
|
|
|
19
19
|
export const CONTEXT_SEARCH = Symbol("nifra.context.search");
|
|
20
20
|
/** The request a context answers, read without the transport cap `req` applies for user code. */
|
|
21
21
|
export const CONTEXT_REQUEST = Symbol("nifra.context.request");
|
|
22
|
+
/** Sets the idle timeout of the connection a context's request arrived on (`undefined` puts back
|
|
23
|
+
* the listener's own); `false` when the serving adapter has none to set. */
|
|
24
|
+
export const CONTEXT_IDLE_TIMEOUT = Symbol();
|
|
22
25
|
/**
|
|
23
26
|
* A transport codec (or other pre-parsing hook) that already decoded the body stashes the value
|
|
24
27
|
* here on the replacement `RequestSource`; the JSON body lane takes it verbatim instead of
|
|
@@ -39,19 +42,18 @@ export function isResponseResult(value) {
|
|
|
39
42
|
typeof value.toResponse === "function");
|
|
40
43
|
}
|
|
41
44
|
/**
|
|
42
|
-
* The headers a plain render ships: its own on top of
|
|
43
|
-
* so an ambient header (a request id, say) survives an early exit the way it
|
|
44
|
-
* return, and a header named at the exit site still wins.
|
|
45
|
+
* The headers a plain render ships: its `own` on top of the `ambient` ones the request left in
|
|
46
|
+
* `c.set.headers`, so an ambient header (a request id, say) survives an early exit the way it
|
|
47
|
+
* survives an ordinary return, and a header named at the exit site still wins.
|
|
45
48
|
*
|
|
46
49
|
* Always a fresh object when the render has headers of its own: the node writers mutate the record
|
|
47
50
|
* they are handed (content-type, content-length, cookies), and a `status(...)` value is commonly
|
|
48
51
|
* hoisted to module scope and answered from on every request.
|
|
49
52
|
*/
|
|
50
|
-
export function plainRenderHeaders(
|
|
51
|
-
const own = plain.headers;
|
|
53
|
+
export function plainRenderHeaders(own, ambient) {
|
|
52
54
|
if (own === undefined)
|
|
53
|
-
return
|
|
54
|
-
return
|
|
55
|
+
return ambient;
|
|
56
|
+
return ambient === undefined ? { ...own } : { ...ambient, ...own };
|
|
55
57
|
}
|
|
56
58
|
export function status(code, body, init) {
|
|
57
59
|
// The range `Response` accepts, enforced HERE so the plain lane cannot outrun it. A plain render
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-core.js","sourceRoot":"","sources":["../../src/server/runtime-core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,4BAA4B,EAAsB,MAAM,cAAc,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAMzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAC5B,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,kBAAkB,CAAA;AAE7E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAA;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAA;AAC5D,iGAAiG;AACjG,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime-core.js","sourceRoot":"","sources":["../../src/server/runtime-core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,4BAA4B,EAAsB,MAAM,cAAc,CAAA;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAMzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAC5B,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,kBAAkB,CAAA;AAE7E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAA;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AACtD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAA;AAC5D,iGAAiG;AACjG,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAA;AAC9D;4EAC4E;AAC5E,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,EAAE,CAAA;AAE5C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAA;AAa/D,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,mKAAmK;IACnK,OAAQ,OAAmD,CAAC,gBAAgB,CAAC,CAAA;AAC/E,CAAC;AAqDD,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAkD,CAAC,eAAe,CAAC,KAAK,IAAI;QAC7E,OAAQ,KAA2C,CAAC,UAAU,KAAK,UAAU,CAC9E,CAAA;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAiD,EACjD,OAA2C;IAE3C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,OAAO,CAAA;IACrC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,CAAA;AACpE,CAAC;AAmCD,MAAM,UAAU,MAAM,CACpB,IAAY,EACZ,IAAc,EACd,IAA8D;IAE9D,iGAAiG;IACjG,gGAAgG;IAChG,iGAAiG;IACjG,iGAAiG;IACjG,wEAAwE;IACxE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;QACxD,MAAM,IAAI,UAAU,CAAC,kBAAkB,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAA;IACjG,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAA;IAC7B,MAAM,KAAK,GACT,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAClF,OAAO;QACL,CAAC,eAAe,CAAC,EAAE,IAAI;QACvB,KAAK;QACL,gGAAgG;QAChG,mFAAmF;QACnF,UAAU;YACR,MAAM,OAAO,GAA2B,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAA;YAC5D,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;YAC5E,OAAO,CAAC,cAAc,CAAC,KAAK,iBAAiB,CAAA;YAC7C,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAChE,CAAC;KACiC,CAAA;AACtC,CAAC;AAED;;0BAE0B;AAC1B,MAAM,UAAU,SAAS,CAAC,MAAqB;IAC7C,OAAO,MAAM,CAAC,OAAO,IAAK,MAA6B,CAAA;AACzD,CAAC;AAED,2FAA2F;AAC3F,+FAA+F;AAC/F,oGAAoG;AACpG,kGAAkG;AAClG,qGAAqG;AACrG,sGAAsG;AACtG,gDAAgD;AAChD,MAAM,SAAS,GAAG,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAQ/F,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,KAAyB,CAAA;IAC7B,IAAI,OAA2B,CAAA;IAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;YAAE,KAAK,GAAG,GAAG,CAAA;aACzC,IAAI,GAAG,CAAC,WAAW,KAAK,eAAe;YAAE,OAAO,GAAG,GAAG,CAAA;IAC7D,CAAC;IACD,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AACtF,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAC5B,OAAe,EACf,KAAgB,EAChB,IAAY;IAEZ,kJAAkJ;IAClJ,MAAM,OAAO,GAAG,OAAoE,CAAA;IACpF,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,OAAO,KAAK,EAAE,MAAM,KAAK,UAAU;QAAE,OAAO,SAAS,CAAA;IACzD,MAAM,KAAK,GAAY,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACxE,CAAC;AAED;;;gFAGgF;AAChF,MAAM,UAAU,QAAQ,CAAC,MAAqB,EAAE,IAAY;IAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;IAC1F,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC;AAED;6FAC6F;AAC7F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAAyB,EAAQ,EAAE;IACnE,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED,iGAAiG;AACjG,gGAAgG;AAChG,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAW,CAAA;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAA;AAE7C;;;;;GAKG;AACH,IAAI,gBAAyC,CAAA;AAC7C,IAAI,sBAAiD,CAAA;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAgB,EAAE;IACnD,gBAAgB,KAAK,IAAI,eAAe,EAAE,CAAC,MAAM,CAAA;IACjD,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAkB,EAAE;IAC3D,sBAAsB,KAAK,4BAA4B,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAC9E,OAAO,sBAAsB,CAAA;AAC/B,CAAC,CAAA"}
|
|
@@ -85,17 +85,32 @@ export interface ServerOptions {
|
|
|
85
85
|
*/
|
|
86
86
|
readonly trustBodyFraming?: boolean;
|
|
87
87
|
/**
|
|
88
|
-
* Answer `400 invalid_host`
|
|
89
|
-
*
|
|
90
|
-
* takes
|
|
91
|
-
*
|
|
92
|
-
*
|
|
88
|
+
* Answer `400 invalid_host` for Hosts the request target cannot safely be built on: one sent
|
|
89
|
+
* twice, one with a space or byte past ASCII, a port past 65535, an IPv6 literal no URL parser
|
|
90
|
+
* takes, a percent-encoded or sub-delimiter Host, or an authority that can change Deno's route.
|
|
91
|
+
* Bun may leave `c.req.url` relative or build it on the first Host, so `new URL(c.req.url)` can
|
|
92
|
+
* throw in a handler.
|
|
93
93
|
*
|
|
94
|
-
* Disabled by default:
|
|
95
|
-
*
|
|
96
|
-
*
|
|
94
|
+
* Disabled by default: checking Host on every request measured about 6% of a bare route on Bun.
|
|
95
|
+
* Deno builds `Request.url` from Host; without this check, a malformed Host can change the routed
|
|
96
|
+
* path. Enable it when Deno receives requests with an untrusted Host header.
|
|
97
97
|
*/
|
|
98
98
|
readonly validateHost?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Route a Deno request on the path a WHATWG parser would give it. Bun and workerd deliver a parsed
|
|
101
|
+
* URL, so `/public/../admin` reaches the app as `/admin`; Deno hands over the target as sent. Off,
|
|
102
|
+
* Deno routes the text received, as most frameworks do: a guard on `/admin` does not see
|
|
103
|
+
* `/public/../admin`, and a proxy that normalizes paths before forwarding disagrees with the app
|
|
104
|
+
* about which route a request is for. On, dot segments (`.`, `..`, `%2e`), backslashes and the
|
|
105
|
+
* characters a parser percent-encodes are resolved before routing, so every runtime routes the
|
|
106
|
+
* same path.
|
|
107
|
+
*
|
|
108
|
+
* Disabled by default: the check reads and scans the whole URL of every request, measured at about
|
|
109
|
+
* 3% of a bare route on Deno. Enable it when path guards, or a path-normalizing proxy, sit in
|
|
110
|
+
* front of or inside the app. Bun already delivers parsed targets and is unaffected; `@nifrajs/node`
|
|
111
|
+
* has the same option on `serve()`.
|
|
112
|
+
*/
|
|
113
|
+
readonly normalizeTarget?: boolean;
|
|
99
114
|
/**
|
|
100
115
|
* Max inbound WebSocket message size (bytes). A larger message never reaches the handler and the
|
|
101
116
|
* socket closes with `1009`; when Bun's own frame limit refuses it, Bun up to 1.4.3 drops the
|