@nifrajs/core 2.14.1 → 3.2.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/README.md +25 -0
- package/dist/assurance.d.ts +16 -8
- package/dist/assurance.d.ts.map +1 -1
- package/dist/assurance.js +33 -0
- package/dist/assurance.js.map +1 -1
- package/dist/durable-adapters.d.ts.map +1 -1
- package/dist/durable-adapters.js +26 -3
- package/dist/durable-adapters.js.map +1 -1
- package/dist/durable-approval.d.ts +56 -0
- package/dist/durable-approval.d.ts.map +1 -0
- package/dist/durable-approval.js +233 -0
- package/dist/durable-approval.js.map +1 -0
- package/dist/durable-effect.d.ts +42 -0
- package/dist/durable-effect.d.ts.map +1 -0
- package/dist/durable-effect.js +234 -0
- package/dist/durable-effect.js.map +1 -0
- package/dist/durable-execution.d.ts +8 -346
- package/dist/durable-execution.d.ts.map +1 -1
- package/dist/durable-execution.js +7 -1150
- package/dist/durable-execution.js.map +1 -1
- package/dist/durable-saga.d.ts +94 -0
- package/dist/durable-saga.d.ts.map +1 -0
- package/dist/durable-saga.js +550 -0
- package/dist/durable-saga.js.map +1 -0
- package/dist/edge-kit.d.ts +27 -0
- package/dist/edge-kit.d.ts.map +1 -0
- package/dist/edge-kit.js +24 -0
- package/dist/edge-kit.js.map +1 -0
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +23 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/durable-approval-protocol.d.ts +1 -1
- package/dist/internal/durable-approval-protocol.d.ts.map +1 -1
- package/dist/internal/durable-effect-protocol.d.ts +1 -1
- package/dist/internal/durable-effect-protocol.d.ts.map +1 -1
- package/dist/internal/durable-saga-protocol.d.ts +1 -1
- package/dist/internal/durable-saga-protocol.d.ts.map +1 -1
- package/dist/internal/durable-shared.d.ts +26 -0
- package/dist/internal/durable-shared.d.ts.map +1 -0
- package/dist/internal/durable-shared.js +131 -0
- package/dist/internal/durable-shared.js.map +1 -0
- package/dist/internal/durable-types.d.ts +159 -0
- package/dist/internal/durable-types.d.ts.map +1 -0
- package/dist/internal/durable-types.js +2 -0
- package/dist/internal/durable-types.js.map +1 -0
- package/dist/internal/route-compiler.d.ts +61 -0
- package/dist/internal/route-compiler.d.ts.map +1 -0
- package/dist/internal/route-compiler.js +121 -0
- package/dist/internal/route-compiler.js.map +1 -0
- package/dist/internal/route-execution.d.ts +17 -9
- package/dist/internal/route-execution.d.ts.map +1 -1
- package/dist/internal/route-execution.js +4 -18
- package/dist/internal/route-execution.js.map +1 -1
- package/dist/internal/route-lanes.d.ts +35 -0
- package/dist/internal/route-lanes.d.ts.map +1 -0
- package/dist/internal/route-lanes.js +150 -0
- package/dist/internal/route-lanes.js.map +1 -0
- package/dist/internal/route-program.d.ts +67 -0
- package/dist/internal/route-program.d.ts.map +1 -0
- package/dist/internal/route-program.js +199 -0
- package/dist/internal/route-program.js.map +1 -0
- package/dist/response-observer.d.ts +25 -0
- package/dist/response-observer.d.ts.map +1 -0
- package/dist/response-observer.js +40 -0
- package/dist/response-observer.js.map +1 -0
- package/dist/security/baseline.d.ts +68 -0
- package/dist/security/baseline.d.ts.map +1 -0
- package/dist/security/baseline.js +118 -0
- package/dist/security/baseline.js.map +1 -0
- package/dist/server/bare-error-lane.d.ts +26 -0
- package/dist/server/bare-error-lane.d.ts.map +1 -0
- package/dist/server/bare-error-lane.js +60 -0
- package/dist/server/bare-error-lane.js.map +1 -0
- package/dist/server/body-lane.d.ts +13 -0
- package/dist/server/body-lane.d.ts.map +1 -0
- package/dist/server/body-lane.js +134 -0
- package/dist/server/body-lane.js.map +1 -0
- package/dist/server/body.d.ts +7 -0
- package/dist/server/body.d.ts.map +1 -1
- package/dist/server/body.js +7 -0
- package/dist/server/body.js.map +1 -1
- package/dist/server/bridge-markers.d.ts +25 -0
- package/dist/server/bridge-markers.d.ts.map +1 -0
- package/dist/server/bridge-markers.js +25 -0
- package/dist/server/bridge-markers.js.map +1 -0
- package/dist/server/context.d.ts +6 -1
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/contract.d.ts +40 -14
- package/dist/server/contract.d.ts.map +1 -1
- package/dist/server/contract.js +7 -0
- package/dist/server/contract.js.map +1 -1
- package/dist/server/cookies.d.ts.map +1 -1
- package/dist/server/cookies.js +16 -2
- package/dist/server/cookies.js.map +1 -1
- package/dist/server/header-case.d.ts.map +1 -1
- package/dist/server/header-case.js +2 -1
- package/dist/server/header-case.js.map +1 -1
- package/dist/server/http.d.ts +36 -3
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +49 -3
- package/dist/server/http.js.map +1 -1
- package/dist/server/install.d.ts +6 -8
- package/dist/server/install.d.ts.map +1 -1
- package/dist/server/install.js +7 -0
- package/dist/server/install.js.map +1 -1
- package/dist/server/node-outcome-hook.d.ts +2 -1
- package/dist/server/node-outcome-hook.d.ts.map +1 -1
- package/dist/server/node-outcome-hook.js.map +1 -1
- package/dist/server/node-outcome.d.ts +17 -2
- package/dist/server/node-outcome.d.ts.map +1 -1
- package/dist/server/node-outcome.js +37 -3
- package/dist/server/node-outcome.js.map +1 -1
- package/dist/server/plugin.d.ts +2 -2
- package/dist/server/plugin.d.ts.map +1 -1
- package/dist/server/plugin.js +6 -1
- package/dist/server/plugin.js.map +1 -1
- package/dist/server/query.d.ts +7 -1
- package/dist/server/query.d.ts.map +1 -1
- package/dist/server/query.js +8 -3
- package/dist/server/query.js.map +1 -1
- package/dist/server/registry.d.ts +40 -12
- package/dist/server/registry.d.ts.map +1 -1
- package/dist/server/request-context.d.ts +2 -13
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +18 -159
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/respond.d.ts.map +1 -1
- package/dist/server/respond.js +58 -4
- package/dist/server/respond.js.map +1 -1
- package/dist/server/response-contract-lane.d.ts.map +1 -1
- package/dist/server/response-contract-lane.js +5 -2
- package/dist/server/response-contract-lane.js.map +1 -1
- package/dist/server/response-observer-runtime.d.ts +20 -0
- package/dist/server/response-observer-runtime.d.ts.map +1 -0
- package/dist/server/response-observer-runtime.js +95 -0
- package/dist/server/response-observer-runtime.js.map +1 -0
- package/dist/server/runtime-core.d.ts +76 -0
- package/dist/server/runtime-core.d.ts.map +1 -1
- package/dist/server/runtime-core.js +42 -1
- package/dist/server/runtime-core.js.map +1 -1
- package/dist/server/server-types.d.ts +6 -1
- package/dist/server/server-types.d.ts.map +1 -1
- package/dist/server/server.d.ts +158 -116
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +707 -844
- package/dist/server/server.js.map +1 -1
- package/dist/server/validation.d.ts +5 -0
- package/dist/server/validation.d.ts.map +1 -0
- package/dist/server/validation.js +13 -0
- package/dist/server/validation.js.map +1 -0
- package/dist/server/websocket.d.ts +20 -4
- package/dist/server/websocket.d.ts.map +1 -1
- package/dist/server/websocket.js +81 -11
- package/dist/server/websocket.js.map +1 -1
- package/dist/server/ws-bun.d.ts +12 -4
- package/dist/server/ws-bun.d.ts.map +1 -1
- package/dist/server/ws-bun.js +50 -16
- package/dist/server/ws-bun.js.map +1 -1
- package/dist/server/ws-hook.d.ts +3 -2
- package/dist/server/ws-hook.d.ts.map +1 -1
- package/dist/server.d.ts +3 -2
- 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-register.d.ts +2 -0
- package/dist/single-copy-register.d.ts.map +1 -0
- package/dist/single-copy-register.js +24 -0
- package/dist/single-copy-register.js.map +1 -0
- package/dist/single-copy.d.ts +156 -0
- package/dist/single-copy.d.ts.map +1 -0
- package/dist/single-copy.js +472 -0
- package/dist/single-copy.js.map +1 -0
- package/package.json +28 -3
- package/src/assurance.ts +58 -1
- package/src/durable-adapters.ts +20 -0
- package/src/durable-approval.ts +281 -0
- package/src/durable-effect.ts +300 -0
- package/src/durable-execution.ts +8 -1627
- package/src/durable-saga.ts +744 -0
- package/src/edge-kit.ts +27 -0
- package/src/errors.ts +1 -0
- package/src/index.ts +129 -2
- package/src/internal/durable-approval-protocol.ts +1 -1
- package/src/internal/durable-effect-protocol.ts +1 -1
- package/src/internal/durable-saga-protocol.ts +1 -1
- package/src/internal/durable-shared.ts +157 -0
- package/src/internal/durable-types.ts +194 -0
- package/src/internal/route-compiler.ts +234 -0
- package/src/internal/route-execution.ts +53 -96
- package/src/internal/route-lanes.ts +221 -0
- package/src/internal/route-program.ts +404 -0
- package/src/response-observer.ts +64 -0
- package/src/security/baseline.ts +172 -0
- package/src/server/bare-error-lane.ts +77 -0
- package/src/server/body-lane.ts +203 -0
- package/src/server/body.ts +8 -0
- package/src/server/bridge-markers.ts +24 -0
- package/src/server/context.ts +6 -1
- package/src/server/contract.ts +70 -20
- package/src/server/cookies.ts +16 -2
- package/src/server/header-case.ts +3 -1
- package/src/server/http.ts +53 -3
- package/src/server/install.ts +14 -0
- package/src/server/node-outcome-hook.ts +2 -1
- package/src/server/node-outcome.ts +44 -3
- package/src/server/plugin.ts +11 -5
- package/src/server/query.ts +10 -4
- package/src/server/registry.ts +71 -16
- package/src/server/request-context.ts +13 -216
- package/src/server/respond.ts +71 -3
- package/src/server/response-contract-lane.ts +6 -2
- package/src/server/response-observer-runtime.ts +135 -0
- package/src/server/runtime-core.ts +124 -1
- package/src/server/server-types.ts +6 -1
- package/src/server/server.ts +1446 -1485
- package/src/server/validation.ts +19 -0
- package/src/server/websocket.ts +127 -17
- package/src/server/ws-bun.ts +67 -15
- package/src/server/ws-hook.ts +3 -2
- package/src/server.ts +8 -2
- package/src/single-copy-register.ts +24 -0
- package/src/single-copy.ts +526 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared framed body parser. Kept separate from RequestContext so compact edge consumers can
|
|
3
|
+
* reuse the exact trust-boundary lane without bundling the full context implementation (cookies,
|
|
4
|
+
* deferred responses, and request helpers).
|
|
5
|
+
*/
|
|
6
|
+
import { drainCapped, hasTrustedBodyFraming, parseContentLength, RAW_BODY_READERS } from "./body.js";
|
|
7
|
+
import { plainError } from "./http.js";
|
|
8
|
+
import { guardParsedValue, parseJsonGuarded } from "./proto-guard.js";
|
|
9
|
+
import { isUrlEncodedForm, readBoundedForm } from "./query.js";
|
|
10
|
+
import { headerOf, isResponseResult, PRE_DECODED_BODY, TEXT_DECODER, } from "./runtime-core.js";
|
|
11
|
+
const INVALID_JSON = () => plainError(400, "invalid_json");
|
|
12
|
+
export function readBoundedJsonSource(req, maxBytes, protoPoisoning = "reject", onResult, onError) {
|
|
13
|
+
const preDecoded = req[PRE_DECODED_BODY];
|
|
14
|
+
if (preDecoded !== undefined) {
|
|
15
|
+
return onResult === undefined
|
|
16
|
+
? Promise.resolve(preDecoded.value)
|
|
17
|
+
: Promise.resolve(preDecoded.value).then(onResult);
|
|
18
|
+
}
|
|
19
|
+
const raw = (req[RAW_BODY_READERS] ??
|
|
20
|
+
req);
|
|
21
|
+
const declared = headerOf(req, "content-length");
|
|
22
|
+
if (declared !== null) {
|
|
23
|
+
const length = parseContentLength(declared);
|
|
24
|
+
if (length === undefined)
|
|
25
|
+
return onResult === undefined
|
|
26
|
+
? Promise.resolve(plainError(400, "invalid_content_length"))
|
|
27
|
+
: Promise.resolve(plainError(400, "invalid_content_length")).then(onResult);
|
|
28
|
+
if (length > maxBytes)
|
|
29
|
+
return onResult === undefined
|
|
30
|
+
? Promise.resolve(plainError(413, "payload_too_large"))
|
|
31
|
+
: Promise.resolve(plainError(413, "payload_too_large")).then(onResult);
|
|
32
|
+
if (hasTrustedBodyFraming(req)) {
|
|
33
|
+
return raw.json().then((parsed) => {
|
|
34
|
+
try {
|
|
35
|
+
const guarded = guardParsedValue(parsed, protoPoisoning);
|
|
36
|
+
return onResult === undefined ? guarded : onResult(guarded);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return onResult === undefined
|
|
40
|
+
? plainError(400, "invalid_json")
|
|
41
|
+
: onResult(plainError(400, "invalid_json"));
|
|
42
|
+
}
|
|
43
|
+
}, () => (onResult === undefined ? INVALID_JSON() : onResult(INVALID_JSON())));
|
|
44
|
+
}
|
|
45
|
+
if (headerOf(req, "transfer-encoding") === null) {
|
|
46
|
+
const jsonWithByteLength = raw.jsonWithByteLength;
|
|
47
|
+
if (jsonWithByteLength !== undefined) {
|
|
48
|
+
return jsonWithByteLength.call(raw).then(({ value, byteLength }) => {
|
|
49
|
+
if (byteLength > length || byteLength > maxBytes) {
|
|
50
|
+
return onResult === undefined
|
|
51
|
+
? plainError(413, "payload_too_large")
|
|
52
|
+
: onResult(plainError(413, "payload_too_large"));
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const guarded = guardParsedValue(value, protoPoisoning);
|
|
56
|
+
return onResult === undefined ? guarded : onResult(guarded);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return onResult === undefined
|
|
60
|
+
? plainError(400, "invalid_json")
|
|
61
|
+
: onResult(plainError(400, "invalid_json"));
|
|
62
|
+
}
|
|
63
|
+
}, () => (onResult === undefined ? INVALID_JSON() : onResult(INVALID_JSON())));
|
|
64
|
+
}
|
|
65
|
+
const bytesReader = raw.bytes;
|
|
66
|
+
if (bytesReader !== undefined) {
|
|
67
|
+
return bytesReader.call(raw).then((bytes) => {
|
|
68
|
+
if (bytes.byteLength > length || bytes.byteLength > maxBytes) {
|
|
69
|
+
return onResult === undefined
|
|
70
|
+
? plainError(413, "payload_too_large")
|
|
71
|
+
: onResult(plainError(413, "payload_too_large"));
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
const parsed = parseJsonGuarded(TEXT_DECODER.decode(bytes), protoPoisoning);
|
|
75
|
+
return onResult === undefined ? parsed : onResult(parsed);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return onResult === undefined
|
|
79
|
+
? plainError(400, "invalid_json")
|
|
80
|
+
: onResult(plainError(400, "invalid_json"));
|
|
81
|
+
}
|
|
82
|
+
}, () => (onResult === undefined ? INVALID_JSON() : onResult(INVALID_JSON())));
|
|
83
|
+
}
|
|
84
|
+
return raw.arrayBuffer().then((buffer) => {
|
|
85
|
+
const bytes = new Uint8Array(buffer);
|
|
86
|
+
if (bytes.byteLength > length || bytes.byteLength > maxBytes) {
|
|
87
|
+
return onResult === undefined
|
|
88
|
+
? plainError(413, "payload_too_large")
|
|
89
|
+
: onResult(plainError(413, "payload_too_large"));
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const parsed = parseJsonGuarded(TEXT_DECODER.decode(bytes), protoPoisoning);
|
|
93
|
+
return onResult === undefined ? parsed : onResult(parsed);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
return onResult === undefined
|
|
97
|
+
? plainError(400, "invalid_json")
|
|
98
|
+
: onResult(plainError(400, "invalid_json"));
|
|
99
|
+
}
|
|
100
|
+
}, () => (onResult === undefined ? INVALID_JSON() : onResult(INVALID_JSON())));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const body = raw.body;
|
|
104
|
+
const streamed = body === null
|
|
105
|
+
? Promise.resolve(plainError(400, "invalid_json"))
|
|
106
|
+
: drainCapped(body, maxBytes).then((drained) => {
|
|
107
|
+
if (!drained.ok)
|
|
108
|
+
return plainError(413, "payload_too_large");
|
|
109
|
+
try {
|
|
110
|
+
return parseJsonGuarded(TEXT_DECODER.decode(drained.bytes), protoPoisoning);
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
return plainError(400, "invalid_json");
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
return onResult === undefined ? streamed : streamed.then(onResult, onError);
|
|
117
|
+
}
|
|
118
|
+
/** The shared content-type dispatcher around the JSON and urlencoded lanes. */
|
|
119
|
+
export function readBodyFramed(source, maxBodyBytes, protoPoisoning, onParsed, wrapResponse, onError) {
|
|
120
|
+
const contentType = headerOf(source, "content-type") ?? "";
|
|
121
|
+
if (contentType !== "application/json" && !contentType.includes("application/json")) {
|
|
122
|
+
if (isUrlEncodedForm(contentType)) {
|
|
123
|
+
return readBoundedForm(source, maxBodyBytes).then((form) => (isResponseResult(form) ? wrapResponse(form) : onParsed(form)), onError);
|
|
124
|
+
}
|
|
125
|
+
return Promise.resolve(wrapResponse(plainError(415, "unsupported_media_type")));
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
return readBoundedJsonSource(source, maxBodyBytes, protoPoisoning, (parsed) => (isResponseResult(parsed) ? wrapResponse(parsed) : onParsed(parsed)), onError);
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
return Promise.resolve(onError(err));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=body-lane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"body-lane.js","sourceRoot":"","sources":["../../src/server/body-lane.ts"],"names":[],"mappings":"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"}
|
package/dist/server/body.d.ts
CHANGED
|
@@ -29,6 +29,13 @@ export interface RawBodyReaders {
|
|
|
29
29
|
* overriding the route cap upward, exactly as before the transport cap existed.
|
|
30
30
|
*/
|
|
31
31
|
export declare function rawBodySourceOf<T extends BodySource>(req: T): T;
|
|
32
|
+
/**
|
|
33
|
+
* The byte cap a route that declared `bodyLimit: "unlimited"` reads under. It is a real number, not
|
|
34
|
+
* `Infinity` or a skipped check: every bounded reader keeps its single `> maxBytes` enforcement
|
|
35
|
+
* point (and its `assertByteLimit` guard) rather than growing an uncapped branch that a future
|
|
36
|
+
* caller could reach by accident. No HTTP body reaches 2^53-1 bytes, so this is unlimited in fact.
|
|
37
|
+
*/
|
|
38
|
+
export declare const UNLIMITED_BODY_BYTES: number;
|
|
32
39
|
/** Security/resource limits must be finite byte counts. Invalid values otherwise make `> maxBytes`
|
|
33
40
|
* comparisons fail open (notably for `NaN`) and can re-enable unbounded buffering. */
|
|
34
41
|
export declare function assertByteLimit(value: number, name?: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/server/body.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,UAAU,UAAU;IAClB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;IAChD,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACnC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAA;CAC9B;AAED,oGAAoG;AACpG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;IAChD,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACnC,qFAAqF;IACrF,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAE/D;AAED;sFACsF;AACtF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAa,GAAG,IAAI,CAItE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUpE;AAED;;qDAEqD;AACrD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,CA8BvE;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,CAAC,CA4B7E;AAED,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,eAAkC,CAAA;AAsB/D,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,qDAAqD;AACrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AA2KD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAmBxE"}
|
|
1
|
+
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../src/server/body.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,UAAU,UAAU;IAClB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;IAChD,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACnC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAA;CAC9B;AAED,oGAAoG;AACpG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACtC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAA;IAChD,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACnC,qFAAqF;IACrF,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAA;IAC7B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAE/D;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,QAA0B,CAAA;AAE3D;sFACsF;AACtF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAa,GAAG,IAAI,CAItE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUpE;AAED;;qDAEqD;AACrD,wBAAsB,WAAW,CAC/B,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,EAChC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,CAAA;CAAE,CAAC,CA8BvE;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAA;CAAE,CAAC,CA4B7E;AAED,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,eAAkC,CAAA;AAsB/D,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,qDAAqD;AACrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AA2KD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAmBxE"}
|
package/dist/server/body.js
CHANGED
|
@@ -17,6 +17,13 @@ import { jsonError } from "./http.js";
|
|
|
17
17
|
export function rawBodySourceOf(req) {
|
|
18
18
|
return req[RAW_BODY_READERS] ?? req;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* The byte cap a route that declared `bodyLimit: "unlimited"` reads under. It is a real number, not
|
|
22
|
+
* `Infinity` or a skipped check: every bounded reader keeps its single `> maxBytes` enforcement
|
|
23
|
+
* point (and its `assertByteLimit` guard) rather than growing an uncapped branch that a future
|
|
24
|
+
* caller could reach by accident. No HTTP body reaches 2^53-1 bytes, so this is unlimited in fact.
|
|
25
|
+
*/
|
|
26
|
+
export const UNLIMITED_BODY_BYTES = Number.MAX_SAFE_INTEGER;
|
|
20
27
|
/** Security/resource limits must be finite byte counts. Invalid values otherwise make `> maxBytes`
|
|
21
28
|
* comparisons fail open (notably for `NaN`) and can re-enable unbounded buffering. */
|
|
22
29
|
export function assertByteLimit(value, name = "maxBytes") {
|
package/dist/server/body.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../src/server/body.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../../src/server/body.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire marker keys shared between @nifrajs/core and the @nifrajs/node adapter.
|
|
3
|
+
*
|
|
4
|
+
* Each entry names a symbol looked up with `Symbol.for(...)`, so the two packages agree ONLY by the
|
|
5
|
+
* string. A rename on one side and not the other is a silent protocol break - no type error, just a
|
|
6
|
+
* symbol that never matches and a body that stops taking the direct-write lane. This module is the
|
|
7
|
+
* single source: core defines its own symbols from these literals, and `scripts/gen-node-outcome.ts`
|
|
8
|
+
* copies the map verbatim into the adapter's generated contract, so @nifrajs/node reads the identical
|
|
9
|
+
* strings without a runtime dependency on core (the same deployment shape the generated outcome type
|
|
10
|
+
* preserves).
|
|
11
|
+
*
|
|
12
|
+
* Keep this module import-free: every core file that owns one of these symbols imports it, so a cycle
|
|
13
|
+
* here would reach most of the response path.
|
|
14
|
+
*/
|
|
15
|
+
export declare const NODE_BRIDGE_MARKER_KEYS: {
|
|
16
|
+
/** A `Response` carrying its already-serialized bytes, so the Node writer emits them without a drain. */
|
|
17
|
+
readonly responseBody: "nifra.response.body";
|
|
18
|
+
/** A plain-data response-result carrier the node lane renders without building a `Response`. */
|
|
19
|
+
readonly responseResult: "nifra.response.result";
|
|
20
|
+
/** Proof that a header record's names are already the lowercase wire spelling. */
|
|
21
|
+
readonly lowercaseHeaderKeys: "nifra.headers.lowercase";
|
|
22
|
+
/** A mounted handler's node-direct resolver entry point. */
|
|
23
|
+
readonly resolveNodeMount: "@nifrajs/core/resolve-node-mount";
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=bridge-markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-markers.d.ts","sourceRoot":"","sources":["../../src/server/bridge-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB;IAClC,yGAAyG;;IAEzG,gGAAgG;;IAEhG,kFAAkF;;IAElF,4DAA4D;;CAEpD,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire marker keys shared between @nifrajs/core and the @nifrajs/node adapter.
|
|
3
|
+
*
|
|
4
|
+
* Each entry names a symbol looked up with `Symbol.for(...)`, so the two packages agree ONLY by the
|
|
5
|
+
* string. A rename on one side and not the other is a silent protocol break - no type error, just a
|
|
6
|
+
* symbol that never matches and a body that stops taking the direct-write lane. This module is the
|
|
7
|
+
* single source: core defines its own symbols from these literals, and `scripts/gen-node-outcome.ts`
|
|
8
|
+
* copies the map verbatim into the adapter's generated contract, so @nifrajs/node reads the identical
|
|
9
|
+
* strings without a runtime dependency on core (the same deployment shape the generated outcome type
|
|
10
|
+
* preserves).
|
|
11
|
+
*
|
|
12
|
+
* Keep this module import-free: every core file that owns one of these symbols imports it, so a cycle
|
|
13
|
+
* here would reach most of the response path.
|
|
14
|
+
*/
|
|
15
|
+
export const NODE_BRIDGE_MARKER_KEYS = {
|
|
16
|
+
/** A `Response` carrying its already-serialized bytes, so the Node writer emits them without a drain. */
|
|
17
|
+
responseBody: "nifra.response.body",
|
|
18
|
+
/** A plain-data response-result carrier the node lane renders without building a `Response`. */
|
|
19
|
+
responseResult: "nifra.response.result",
|
|
20
|
+
/** Proof that a header record's names are already the lowercase wire spelling. */
|
|
21
|
+
lowercaseHeaderKeys: "nifra.headers.lowercase",
|
|
22
|
+
/** A mounted handler's node-direct resolver entry point. */
|
|
23
|
+
resolveNodeMount: "@nifrajs/core/resolve-node-mount",
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=bridge-markers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-markers.js","sourceRoot":"","sources":["../../src/server/bridge-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,yGAAyG;IACzG,YAAY,EAAE,qBAAqB;IACnC,gGAAgG;IAChG,cAAc,EAAE,uBAAuB;IACvC,kFAAkF;IAClF,mBAAmB,EAAE,yBAAyB;IAC9C,4DAA4D;IAC5D,gBAAgB,EAAE,kCAAkC;CAC5C,CAAA"}
|
package/dist/server/context.d.ts
CHANGED
|
@@ -50,7 +50,12 @@ export type Params<Path extends string> = Prettify<RawParams<Path>>;
|
|
|
50
50
|
export interface RouteSchema {
|
|
51
51
|
/** Transport body cap for this route. Defaults to the server's maxBodyBytes. Use a finite
|
|
52
52
|
* smaller/larger limit for a specific endpoint. The 'unlimited' value is an explicit
|
|
53
|
-
* streaming/upload exemption and requires a non-empty bodyLimitReason for auditability.
|
|
53
|
+
* streaming/upload exemption and requires a non-empty bodyLimitReason for auditability.
|
|
54
|
+
*
|
|
55
|
+
* 'unlimited' is legal only for schema-less streaming/upload routes. It is rejected with `body` or
|
|
56
|
+
* `idempotency`, because those lanes buffer the body before user code can apply a protocol-specific
|
|
57
|
+
* bound. Read an unlimited route from `c.req.body` as a stream and bound it by the protocol it speaks;
|
|
58
|
+
* `nifra.body-bounded` is deliberately NOT published for an unlimited route. */
|
|
54
59
|
readonly bodyLimit?: number | "unlimited";
|
|
55
60
|
/** Required explanation when bodyLimit is 'unlimited' (for example, a streaming upload is
|
|
56
61
|
* bounded by an upstream object-store protocol). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,oGAAoG;IACpG,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EACd,MAAM,GACN,CAAC,CACC,OAAO,EAAE;QACP,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,OAAO,EAAE;YAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;SAAE,CAAA;KACvD,EACD,QAAQ,EAAE,QAAQ,GAAG,SAAS,KAC3B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;CACnC;AAED,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAA;AAEvD;;;;;GAKG;AACH,KAAK,SAAS,CAAC,IAAI,SAAS,MAAM,IAAI,MAAM,SAAS,IAAI,GACrD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,IAAI,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GACzD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,GAC7C,IAAI,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,KAAK,EAAE,GAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GACrB,IAAI,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,IAAI,EAAE,GAC1C,MAAM,CAAC,IAAI,SAAS,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,GAC5C,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAE/B,MAAM,MAAM,MAAM,CAAC,IAAI,SAAS,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AAEnE,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/server/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAA;IAChC,sDAAsD;IACtD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,oGAAoG;IACpG,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EACd,MAAM,GACN,CAAC,CACC,OAAO,EAAE;QACP,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,OAAO,EAAE;YAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;SAAE,CAAA;KACvD,EACD,QAAQ,EAAE,QAAQ,GAAG,SAAS,KAC3B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;CACnC;AAED,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,EAAE,CAAA;AAEvD;;;;;GAKG;AACH,KAAK,SAAS,CAAC,IAAI,SAAS,MAAM,IAAI,MAAM,SAAS,IAAI,GACrD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtB,IAAI,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,GACzD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,GAC7C,IAAI,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,KAAK,EAAE,GAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GACrB,IAAI,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,IAAI,EAAE,GAC1C,MAAM,CAAC,IAAI,SAAS,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,MAAM,CAAC,GAC5C,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAE/B,MAAM,MAAM,MAAM,CAAC,IAAI,SAAS,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;AAEnE,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B;;;;;;;oFAOgF;IAChF,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IACzC;wDACoD;IACpD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,kGAAkG;IAClG,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAA;IAC5C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB;;;;kFAI8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;IAClC;;2BAEuB;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACjC;;;;0EAIsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IACpC;;;;;oGAKgG;IAChG,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC5D;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAA;IAC/B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAC3B,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,EACpC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,KAC1C,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAA;CACtD;AAED,+EAA+E;AAC/E,KAAK,MAAM,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,SAAS,gBAAgB,CAAA;CAAE,GACrF,WAAW,CAAC,CAAC,CAAC,GACd,SAAS,CAAA;AAEb,2FAA2F;AAC3F,KAAK,OAAO,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC,SAAS,gBAAgB,CAAA;CAAE,GACvF,WAAW,CAAC,CAAC,CAAC,GACd,eAAe,CAAA;AAEnB,oGAAoG;AACpG,KAAK,SAAS,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,SAAS;IAChD,OAAO,EAAE,MAAM,CAAC,SAAS,gBAAgB,CAAA;CAC1C,GACG,WAAW,CAAC,CAAC,CAAC,GACd,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEpC,yGAAyG;AACzG,KAAK,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,SAAS,MAAM,IAAI,CAAC,SAAS;IACpE,MAAM,EAAE,MAAM,CAAC,SAAS,gBAAgB,CAAA;CACzC,GACG,WAAW,CAAC,CAAC,CAAC,GACd,MAAM,CAAC,IAAI,CAAC,CAAA;AAEhB,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAA;IAClE;gDAC4C;IAC5C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAA;CACnF;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,GAAG,GAAG,OAAO;IACrC;qEACiE;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAA;IAClB,oFAAoF;IACpF,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IACxD;;yEAEqE;IACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,WAAW,GAAG,WAAW;IACxF,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,kGAAkG;IAClG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAChD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAClC,uFAAuF;IACvF,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IACxB;wGACoG;IACpG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAA;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IACvD;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAChE;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IACpE;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,KAAK,QAAQ,CAAA;IACxE,0GAA0G;IAC1G,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,KAAK,QAAQ,CAAA;CACxE"}
|
|
@@ -2,8 +2,9 @@ import type { DataClassification } from "../classification.js";
|
|
|
2
2
|
import { type Method } from "../router/router.js";
|
|
3
3
|
import type { InferInput, InferOutput, StandardSchemaV1 } from "../schema/standard.js";
|
|
4
4
|
import type { Context, IdempotencyConfig, Params, RouteSchema } from "./context.js";
|
|
5
|
-
import type { EmptyRegistry, OutputOf, Registry } from "./registry.js";
|
|
5
|
+
import type { EmptyRegistry, OutputOf, Registry, RouteInfoFor } from "./registry.js";
|
|
6
6
|
import { Server } from "./server.js";
|
|
7
|
+
type EmptyResponseMap = NonNullable<unknown>;
|
|
7
8
|
/** An additional (non-success) response a contract operation can document, e.g. a `404`. */
|
|
8
9
|
export interface ResponseDef {
|
|
9
10
|
readonly description?: string;
|
|
@@ -75,7 +76,9 @@ type OpResponse<O extends OperationDef> = O extends {
|
|
|
75
76
|
} ? InferOutput<R> : unknown;
|
|
76
77
|
/** The body types of a contract op's declared **non-2xx** `responses` (schema-bearing ones), keyed by status. */
|
|
77
78
|
type OpErrorBodies<Rs extends Record<string, ResponseDef>> = {
|
|
78
|
-
[K in keyof Rs as K extends `2${string}` ? never : K extends `${infer N extends number}` ?
|
|
79
|
+
[K in keyof Rs as K extends `2${string}` ? never : K extends `${infer N extends number}` ? Rs[K] extends {
|
|
80
|
+
schema: StandardSchemaV1;
|
|
81
|
+
} ? N : never : never]: Rs[K] extends {
|
|
79
82
|
schema: infer S extends StandardSchemaV1;
|
|
80
83
|
} ? InferOutput<S> : never;
|
|
81
84
|
};
|
|
@@ -84,6 +87,21 @@ type OpErrorBodies<Rs extends Record<string, ResponseDef>> = {
|
|
|
84
87
|
type OpErrors<O extends OperationDef> = O extends {
|
|
85
88
|
responses: infer Rs extends Record<string, ResponseDef>;
|
|
86
89
|
} ? [keyof OpErrorBodies<Rs>] extends [never] ? unknown : OpErrorBodies<Rs> : unknown;
|
|
90
|
+
/** The schema-bearing status map a contract consumer can use for success and failure narrowing. */
|
|
91
|
+
type OpAdditionalResponseMap<O extends OperationDef> = O extends {
|
|
92
|
+
responses: infer Rs extends Record<string, ResponseDef>;
|
|
93
|
+
} ? {
|
|
94
|
+
[K in keyof Rs as K extends `${infer N extends number}` ? Rs[K] extends {
|
|
95
|
+
schema: StandardSchemaV1;
|
|
96
|
+
} ? N : never : never]: Rs[K] extends {
|
|
97
|
+
schema: infer S extends StandardSchemaV1;
|
|
98
|
+
} ? InferOutput<S> : never;
|
|
99
|
+
} : EmptyResponseMap;
|
|
100
|
+
type OpResponseMap<O extends OperationDef> = Omit<OpAdditionalResponseMap<O>, 200> & (O extends {
|
|
101
|
+
response: infer R extends StandardSchemaV1;
|
|
102
|
+
} ? {
|
|
103
|
+
200: InferOutput<R>;
|
|
104
|
+
} : EmptyResponseMap);
|
|
87
105
|
/**
|
|
88
106
|
* RouteInfo as a *decoupled consumer* sees it from the contract alone: the
|
|
89
107
|
* `output` is the declared `response` schema's type, or `unknown` when none is
|
|
@@ -96,6 +114,7 @@ type RouteInfoForOp<O extends OperationDef> = {
|
|
|
96
114
|
readonly query: OpQuery<O>;
|
|
97
115
|
readonly body: OpBody<O>;
|
|
98
116
|
readonly output: OpResponse<O>;
|
|
117
|
+
readonly responses: OpResponseMap<O>;
|
|
99
118
|
readonly errors: OpErrors<O>;
|
|
100
119
|
readonly sse: never;
|
|
101
120
|
};
|
|
@@ -123,6 +142,22 @@ type SchemaForOp<O extends OperationDef> = (O extends {
|
|
|
123
142
|
} ? {
|
|
124
143
|
params: P;
|
|
125
144
|
} : Record<never, never>);
|
|
145
|
+
type OpResponseSchemas<O extends OperationDef> = O extends {
|
|
146
|
+
responses: infer Rs extends Record<string, ResponseDef>;
|
|
147
|
+
} ? {
|
|
148
|
+
[K in keyof Rs as K extends `2${string}` ? never : Rs[K] extends {
|
|
149
|
+
schema: StandardSchemaV1;
|
|
150
|
+
} ? K extends `${infer N extends number}` ? N : never : never]: Rs[K] extends {
|
|
151
|
+
schema: infer S extends StandardSchemaV1;
|
|
152
|
+
} ? S : never;
|
|
153
|
+
} : EmptyResponseMap;
|
|
154
|
+
type RouteSchemaForOp<O extends OperationDef> = SchemaForOp<O> & RouteSchema & (O extends {
|
|
155
|
+
response: infer R extends StandardSchemaV1;
|
|
156
|
+
} ? {
|
|
157
|
+
response: R;
|
|
158
|
+
} : EmptyResponseMap) & (keyof OpResponseSchemas<O> extends never ? EmptyResponseMap : {
|
|
159
|
+
errors: OpResponseSchemas<O>;
|
|
160
|
+
});
|
|
126
161
|
/**
|
|
127
162
|
* The handler context for an op - identical to the inline `Context<Path, S>`, so a
|
|
128
163
|
* handler written for an inline route type-checks unchanged under `implement`
|
|
@@ -164,18 +199,9 @@ type AnyFn = (...args: never[]) => unknown;
|
|
|
164
199
|
* the implemented server stays route-for-route identical to the equivalent inline server (the
|
|
165
200
|
* mode-conformance guarantee), and a contract-typed client and a `typeof app`-typed client agree.
|
|
166
201
|
*/
|
|
167
|
-
export type RegistryFromImpl<C extends ContractShape, H extends HandlersFor<C, Ctx>, Ctx = NonNullable<unknown
|
|
202
|
+
export type RegistryFromImpl<C extends ContractShape, H extends HandlersFor<C, Ctx>, Ctx = NonNullable<unknown>, HookOutput = never> = {
|
|
168
203
|
[P in C[keyof C]["path"]]: {
|
|
169
|
-
[K in keyof C as C[K]["path"] extends P ? C[K]["method"] : never]:
|
|
170
|
-
readonly params: Params<C[K]["path"]>;
|
|
171
|
-
readonly query: OpQuery<C[K]>;
|
|
172
|
-
readonly body: OpBody<C[K]>;
|
|
173
|
-
readonly output: C[K] extends {
|
|
174
|
-
response: infer R extends StandardSchemaV1;
|
|
175
|
-
} ? InferOutput<R> : H[K] extends AnyFn ? OutputOf<H[K]> : unknown;
|
|
176
|
-
readonly errors: OpErrors<C[K]>;
|
|
177
|
-
readonly sse: never;
|
|
178
|
-
};
|
|
204
|
+
[K in keyof C as C[K]["path"] extends P ? C[K]["method"] : never]: H[K] extends AnyFn ? RouteInfoFor<C[K]["path"], RouteSchemaForOp<C[K]>, OutputOf<H[K]>, HookOutput> : RouteInfoFor<C[K]["path"], RouteSchemaForOp<C[K]>, unknown, HookOutput>;
|
|
179
205
|
};
|
|
180
206
|
};
|
|
181
207
|
/**
|
|
@@ -198,6 +224,6 @@ export type RegistryFromImpl<C extends ContractShape, H extends HandlersFor<C, C
|
|
|
198
224
|
* ({@link withRouteAssurance}), and only a plugin installed *before* registration is captured. Handlers
|
|
199
225
|
* then see the app's `Ctx`, and the returned server keeps any routes the app already had.
|
|
200
226
|
*/
|
|
201
|
-
export declare function implement<const C extends ContractShape, H extends HandlersFor<C, Ctx>, R extends Registry = EmptyRegistry, Ctx = NonNullable<unknown
|
|
227
|
+
export declare function implement<const C extends ContractShape, H extends HandlersFor<C, Ctx>, R extends Registry = EmptyRegistry, Ctx = NonNullable<unknown>, HookOutput = never>(contract: C, handlers: H, app?: Server<R, Ctx, HookOutput>): Server<R & RegistryFromImpl<C, H, Ctx, HookOutput>, Ctx, HookOutput>;
|
|
202
228
|
export {};
|
|
203
229
|
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/server/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAG9D,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAEtF,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/server/contract.ts"],"names":[],"mappings":"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"}
|
package/dist/server/contract.js
CHANGED
|
@@ -70,6 +70,11 @@ export function defineContract(contract) {
|
|
|
70
70
|
export function implement(contract, handlers, app) {
|
|
71
71
|
const target = (app ?? new Server());
|
|
72
72
|
const routes = Object.entries(contract).map(([name, op]) => {
|
|
73
|
+
const errors = op.responses === undefined
|
|
74
|
+
? undefined
|
|
75
|
+
: Object.fromEntries(Object.entries(op.responses)
|
|
76
|
+
.filter(([status, response]) => !status.startsWith("2") && response.schema !== undefined)
|
|
77
|
+
.map(([status, response]) => [Number(status), response.schema]));
|
|
73
78
|
// body/query are validated at the request boundary; `response` is a type + introspection contract
|
|
74
79
|
// ONLY - never validated at runtime and never read on the request hot path (the lifecycle reads
|
|
75
80
|
// schema.body/query by name; the `bare`/bodyOnly/queryOnly fast-path gates ignore `response`). Built
|
|
@@ -80,6 +85,7 @@ export function implement(contract, handlers, app) {
|
|
|
80
85
|
op.body !== undefined ||
|
|
81
86
|
op.query !== undefined ||
|
|
82
87
|
op.response !== undefined ||
|
|
88
|
+
(errors !== undefined && Object.keys(errors).length > 0) ||
|
|
83
89
|
op.capabilities !== undefined ||
|
|
84
90
|
op.idempotency !== undefined ||
|
|
85
91
|
op.bodyLimit !== undefined ||
|
|
@@ -92,6 +98,7 @@ export function implement(contract, handlers, app) {
|
|
|
92
98
|
...(op.body !== undefined ? { body: op.body } : {}),
|
|
93
99
|
...(op.query !== undefined ? { query: op.query } : {}),
|
|
94
100
|
...(op.response !== undefined ? { response: op.response } : {}),
|
|
101
|
+
...(errors !== undefined && Object.keys(errors).length > 0 ? { errors } : {}),
|
|
95
102
|
...(op.capabilities !== undefined ? { capabilities: op.capabilities } : {}),
|
|
96
103
|
...(op.idempotency !== undefined ? { idempotency: op.idempotency } : {}),
|
|
97
104
|
...(op.bodyLimit !== undefined ? { bodyLimit: op.bodyLimit } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/server/contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAG3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/server/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/server/cookies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC/B;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAO5E;AAuBD;;;;;4DAK4D;AAC5D,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6CtF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAuDhG;
|
|
1
|
+
{"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/server/cookies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAC/B;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAO5E;AAuBD;;;;;4DAK4D;AAC5D,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6CtF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,MAAM,CAuDhG;AAqDD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;AASrD;6EAC6E;AAC7E,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAIpF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoB9F"}
|
package/dist/server/cookies.js
CHANGED
|
@@ -182,11 +182,25 @@ const toBase64Url = (buf) => {
|
|
|
182
182
|
bin += String.fromCharCode(bytes[i]);
|
|
183
183
|
return btoa(bin).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
184
184
|
};
|
|
185
|
+
const BASE64URL_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
|
|
186
|
+
const BASE64URL_RE = /^[A-Za-z0-9_-]+$/;
|
|
185
187
|
// Returns `Uint8Array<ArrayBuffer>` (not the generic `Uint8Array<ArrayBufferLike>`) so it satisfies
|
|
186
|
-
// WebCrypto's `BufferSource` parameter under TS 5.7+'s typed-array generics.
|
|
188
|
+
// WebCrypto's `BufferSource` parameter under TS 5.7+'s typed-array generics. Reject non-canonical
|
|
189
|
+
// encodings: base64 decoders otherwise accept alternate final characters whose unused padding bits
|
|
190
|
+
// decode to the same bytes, which lets a visibly changed signed cookie verify as if it were original.
|
|
187
191
|
const fromBase64Url = (s) => {
|
|
192
|
+
if (s.length === 0 || s.length % 4 === 1 || !BASE64URL_RE.test(s))
|
|
193
|
+
return null;
|
|
194
|
+
const remainder = s.length % 4;
|
|
195
|
+
const last = BASE64URL_ALPHABET.indexOf(s[s.length - 1]);
|
|
196
|
+
// Two or three base64 characters leave four or two unused low bits respectively. The encoder above
|
|
197
|
+
// always emits those bits as zero; accepting anything else creates a second spelling of the same
|
|
198
|
+
// byte sequence.
|
|
199
|
+
if ((remainder === 2 && (last & 0x0f) !== 0) || (remainder === 3 && (last & 0x03) !== 0))
|
|
200
|
+
return null;
|
|
188
201
|
try {
|
|
189
|
-
const
|
|
202
|
+
const padded = s + "=".repeat((4 - remainder) % 4);
|
|
203
|
+
const bin = atob(padded.replace(/-/g, "+").replace(/_/g, "/"));
|
|
190
204
|
const bytes = new Uint8Array(bin.length);
|
|
191
205
|
for (let i = 0; i < bin.length; i++)
|
|
192
206
|
bytes[i] = bin.charCodeAt(i);
|