@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-contract-lane.d.ts","sourceRoot":"","sources":["../../src/server/response-contract-lane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"response-contract-lane.d.ts","sourceRoot":"","sources":["../../src/server/response-contract-lane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAIjD;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAAA;AAErD,uFAAuF;AACvF,MAAM,MAAM,uBAAuB;AACjC,yGAAyG;AACvG;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE;AAClD,gGAAgG;GAC9F;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAC9E,kGAAkG;GAChG;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAW5D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAW5D;AA0BD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;IACnC,KAAK,CACH,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,OAAO,GACd,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;CAC9D;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,oBAA6B,GAAG,cAAc,CAUpF"}
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
*/
|
|
44
44
|
import { formatStandardIssues, } from "../schema/standard.js";
|
|
45
45
|
import { INSTALL_RESPONSE_CONTRACT } from "./install.js";
|
|
46
|
+
import { isResponseResult } from "./runtime-core.js";
|
|
46
47
|
const isPlainObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
47
48
|
/** Top-level keys present in the handler's result but absent from the validated value. */
|
|
48
49
|
function droppedKeys(result, value) {
|
|
@@ -58,8 +59,10 @@ function droppedKeys(result, value) {
|
|
|
58
59
|
*/
|
|
59
60
|
export function checkResponseContract(schema, result, mode) {
|
|
60
61
|
// A handler may return a raw Response as deliberate control flow (a redirect, a stream). There is no
|
|
61
|
-
// JSON payload to hold to the contract, and re-serializing one would corrupt it.
|
|
62
|
-
|
|
62
|
+
// JSON payload to hold to the contract, and re-serializing one would corrupt it. A `status(...)` is
|
|
63
|
+
// the same control flow in plain-data form: the contract describes the route's SUCCESS payload, so
|
|
64
|
+
// holding an early exit (a 401 body, say) to it would fail every guarded route that declares one.
|
|
65
|
+
if (result instanceof Response || result === undefined || isResponseResult(result))
|
|
63
66
|
return { kind: "ok", value: result };
|
|
64
67
|
const settled = schema["~standard"].validate(result);
|
|
65
68
|
return settled instanceof Promise
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response-contract-lane.js","sourceRoot":"","sources":["../../src/server/response-contract-lane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,EACL,oBAAoB,GAGrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"response-contract-lane.js","sourceRoot":"","sources":["../../src/server/response-contract-lane.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { NodeResponseHook, ResponseBodyHook, ResponseHeadersHook } from "./node-outcome-hook.js";
|
|
2
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
3
|
+
type WebResponseHook = (response: Response, req: Request) => MaybePromise<Response>;
|
|
4
|
+
export type { ResponseBodyHook, ResponseHeadersHook } from "./node-outcome-hook.js";
|
|
5
|
+
export interface ResponseObserverHost {
|
|
6
|
+
assertConfigurable(operation: string): void;
|
|
7
|
+
addResponseHook(web: WebResponseHook, node: NodeResponseHook | undefined): void;
|
|
8
|
+
enableResponseBodyTagging(): object;
|
|
9
|
+
responseBodyOwners(): ReadonlySet<object>;
|
|
10
|
+
}
|
|
11
|
+
export interface ResponseObserverMethods {
|
|
12
|
+
onResponseHeaders(fn: ResponseHeadersHook): this;
|
|
13
|
+
onResponseBody(fn: ResponseBodyHook): this;
|
|
14
|
+
onResponseRaw(fn: (response: Response, req: Request) => MaybePromise<Response>): this;
|
|
15
|
+
}
|
|
16
|
+
export interface ResponseObserverRuntime {
|
|
17
|
+
install(host: ResponseObserverHost): ResponseObserverMethods;
|
|
18
|
+
}
|
|
19
|
+
export declare function createResponseObserverRuntime(): ResponseObserverRuntime;
|
|
20
|
+
//# sourceMappingURL=response-observer-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-observer-runtime.d.ts","sourceRoot":"","sources":["../../src/server/response-observer-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EAEpB,MAAM,wBAAwB,CAAA;AAK/B,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AACrC,KAAK,eAAe,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAA;AAEnF,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEnF,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAA;IAC/E,yBAAyB,IAAI,MAAM,CAAA;IACnC,kBAAkB,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAAA;IAChD,cAAc,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC1C,aAAa,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,KAAK,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;CACtF;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,IAAI,EAAE,oBAAoB,GAAG,uBAAuB,CAAA;CAC7D;AAgDD,wBAAgB,6BAA6B,IAAI,uBAAuB,CAuDvE"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { recordHeadersView } from "./node-outcome-hook.js";
|
|
2
|
+
import { knownMutableHeaders, rememberMutableHeaders, taggedResponseBody } from "./respond.js";
|
|
3
|
+
import { applyBodyReplacement, withReplacedBody } from "./response-hooks.js";
|
|
4
|
+
const HEADER_MUTABILITY_PROBE = "x-nifra-header-probe";
|
|
5
|
+
const GUARDED_RESPONSE_HEADERS = new WeakSet();
|
|
6
|
+
function hasMutableResponseHeaders(headers) {
|
|
7
|
+
if (knownMutableHeaders(headers))
|
|
8
|
+
return true;
|
|
9
|
+
if (GUARDED_RESPONSE_HEADERS.has(headers))
|
|
10
|
+
return false;
|
|
11
|
+
let previous = null;
|
|
12
|
+
try {
|
|
13
|
+
previous = headers.get(HEADER_MUTABILITY_PROBE);
|
|
14
|
+
headers.set(HEADER_MUTABILITY_PROBE, "1");
|
|
15
|
+
if (previous === null)
|
|
16
|
+
headers.delete(HEADER_MUTABILITY_PROBE);
|
|
17
|
+
else
|
|
18
|
+
headers.set(HEADER_MUTABILITY_PROBE, previous);
|
|
19
|
+
rememberMutableHeaders(headers);
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
try {
|
|
24
|
+
if (previous === null)
|
|
25
|
+
headers.delete(HEADER_MUTABILITY_PROBE);
|
|
26
|
+
else
|
|
27
|
+
headers.set(HEADER_MUTABILITY_PROBE, previous);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// A guarded response rejected the probe and the clone path is authoritative.
|
|
31
|
+
}
|
|
32
|
+
GUARDED_RESPONSE_HEADERS.add(headers);
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function webRequestView(req) {
|
|
37
|
+
return { method: req.method, url: req.url, header: (name) => req.headers.get(name) };
|
|
38
|
+
}
|
|
39
|
+
function webHeadersView(response, req) {
|
|
40
|
+
const request = webRequestView(req);
|
|
41
|
+
if (!hasMutableResponseHeaders(response.headers)) {
|
|
42
|
+
const clone = new Response(response.body, response);
|
|
43
|
+
return { response: clone, headers: clone.headers, request };
|
|
44
|
+
}
|
|
45
|
+
return { response, headers: response.headers, request };
|
|
46
|
+
}
|
|
47
|
+
export function createResponseObserverRuntime() {
|
|
48
|
+
return {
|
|
49
|
+
install(host) {
|
|
50
|
+
return {
|
|
51
|
+
onResponseHeaders(fn) {
|
|
52
|
+
host.assertConfigurable("onResponseHeaders()");
|
|
53
|
+
host.addResponseHook((response, req) => {
|
|
54
|
+
const view = webHeadersView(response, req);
|
|
55
|
+
const out = fn(view.headers, view.request, response.status);
|
|
56
|
+
return out instanceof Promise ? out.then(() => view.response) : view.response;
|
|
57
|
+
}, (response, req) => fn(recordHeadersView(response), req, response.status));
|
|
58
|
+
return this;
|
|
59
|
+
},
|
|
60
|
+
onResponseBody(fn) {
|
|
61
|
+
host.assertConfigurable("onResponseBody()");
|
|
62
|
+
host.enableResponseBodyTagging();
|
|
63
|
+
host.addResponseHook((response, req) => {
|
|
64
|
+
const body = taggedResponseBody(response, host.responseBodyOwners());
|
|
65
|
+
if (body === undefined)
|
|
66
|
+
return response;
|
|
67
|
+
const view = webHeadersView(response, req);
|
|
68
|
+
const out = fn(body, view.headers, view.request, response.status);
|
|
69
|
+
return out instanceof Promise
|
|
70
|
+
? out.then((replaced) => withReplacedBody(response, replaced))
|
|
71
|
+
: withReplacedBody(response, out);
|
|
72
|
+
}, (response, req) => {
|
|
73
|
+
if (response.body === null)
|
|
74
|
+
return undefined;
|
|
75
|
+
const out = fn(response.body, recordHeadersView(response), req, response.status);
|
|
76
|
+
if (out instanceof Promise)
|
|
77
|
+
return out.then((replaced) => applyBodyReplacement(response, replaced));
|
|
78
|
+
applyBodyReplacement(response, out);
|
|
79
|
+
return undefined;
|
|
80
|
+
});
|
|
81
|
+
return this;
|
|
82
|
+
},
|
|
83
|
+
onResponseRaw(fn) {
|
|
84
|
+
host.assertConfigurable("onResponseRaw()");
|
|
85
|
+
host.enableResponseBodyTagging();
|
|
86
|
+
host.addResponseHook((response, req) => taggedResponseBody(response, host.responseBodyOwners()) === undefined
|
|
87
|
+
? fn(response, req)
|
|
88
|
+
: response, () => undefined);
|
|
89
|
+
return this;
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=response-observer-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-observer-runtime.js","sourceRoot":"","sources":["../../src/server/response-observer-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,27 @@ export declare const PRE_DECODED_BODY: unique symbol;
|
|
|
23
23
|
export interface PreDecodedBody {
|
|
24
24
|
readonly value: unknown;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* A response described as plain data - the status, any headers of its own, and a body still in value
|
|
28
|
+
* form. A `ResponseResult` carrying one is rendered on the SAME lane a handler's plain return takes:
|
|
29
|
+
* `JSON.stringify` straight into the node writer's `kind: "json"` outcome, or the web lane's prebuilt
|
|
30
|
+
* JSON init. No `Response` is constructed anywhere on the node path.
|
|
31
|
+
*
|
|
32
|
+
* That matters because building one is the dominant cost of answering early. Measured on the rig, one
|
|
33
|
+
* server per shape, all five answering the same 401: `c.set.status` + a plain object 82802 req/s,
|
|
34
|
+
* `beforeHandle` returning that same object 81819, `return new Response(...)` 49668, `throw new
|
|
35
|
+
* Response(...)` 47505, the same throw from a `derive` 48746. The `Response` costs 40%; the throw
|
|
36
|
+
* around it costs another 4%; unwinding a lifecycle stage instead of a handler costs nothing
|
|
37
|
+
* measurable. So the fix for a slow rejection is not a faster throw - it is not allocating the
|
|
38
|
+
* `Response`.
|
|
39
|
+
*/
|
|
40
|
+
export interface PlainRender {
|
|
41
|
+
readonly status: number;
|
|
42
|
+
/** Headers belonging to this render. They win over anything the request left in `c.set.headers`. */
|
|
43
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
44
|
+
/** The body as a value, serialized by the lane that renders it. `undefined` means no body. */
|
|
45
|
+
readonly body: unknown;
|
|
46
|
+
}
|
|
26
47
|
export interface ResponseResult {
|
|
27
48
|
readonly [RESPONSE_RESULT]: true;
|
|
28
49
|
toResponse(): Response;
|
|
@@ -31,8 +52,63 @@ export interface ResponseResult {
|
|
|
31
52
|
readonly headers: Readonly<Record<string, string | readonly string[]>> | undefined;
|
|
32
53
|
readonly body: string | Uint8Array;
|
|
33
54
|
};
|
|
55
|
+
/** Present when this result can be rendered as plain data - see {@link PlainRender}. Every lane
|
|
56
|
+
* checks it before `toNodeBody`/`toResponse`, so a carrier that has one never builds a `Response`. */
|
|
57
|
+
readonly plain?: PlainRender;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Type-only metadata carried by {@link status}. The symbol is declared, not created, so this brand
|
|
61
|
+
* adds no runtime property and no per-response allocation. It lets the registry distinguish a typed
|
|
62
|
+
* early response from an ordinary handler value while preserving the existing ResponseResult marker.
|
|
63
|
+
*/
|
|
64
|
+
export declare const STATUS_RESPONSE_TYPE: unique symbol;
|
|
65
|
+
/** A status-bearing response whose code and body remain visible to TypeScript. */
|
|
66
|
+
export interface StatusResponse<Code extends number = number, Body = unknown> extends ResponseResult {
|
|
67
|
+
readonly [STATUS_RESPONSE_TYPE]: {
|
|
68
|
+
readonly code: Code;
|
|
69
|
+
readonly body: Body;
|
|
70
|
+
};
|
|
34
71
|
}
|
|
35
72
|
export declare function isResponseResult(value: unknown): value is ResponseResult;
|
|
73
|
+
/**
|
|
74
|
+
* The headers a plain render ships: its own on top of whatever the request left in `c.set.headers`,
|
|
75
|
+
* so an ambient header (a request id, say) survives an early exit the way it survives an ordinary
|
|
76
|
+
* return, and a header named at the exit site still wins.
|
|
77
|
+
*
|
|
78
|
+
* Always a fresh object when the render has headers of its own: the node writers mutate the record
|
|
79
|
+
* they are handed (content-type, content-length, cookies), and a `status(...)` value is commonly
|
|
80
|
+
* hoisted to module scope and answered from on every request.
|
|
81
|
+
*/
|
|
82
|
+
export declare function plainRenderHeaders(plain: PlainRender, set: CtxSet): Record<string, string> | undefined;
|
|
83
|
+
/**
|
|
84
|
+
* Finish the request here, with this status and body, without building a `Response`.
|
|
85
|
+
*
|
|
86
|
+
* Returned or thrown, from a handler or from any lifecycle stage:
|
|
87
|
+
*
|
|
88
|
+
* ```ts
|
|
89
|
+
* app.derive((c) => {
|
|
90
|
+
* const user = sessionOf(c)
|
|
91
|
+
* if (user === undefined) return status(401, { error: "unauthorized" })
|
|
92
|
+
* return { user }
|
|
93
|
+
* })
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* A `derive` is the reason this exists as a value rather than as a rule about `beforeHandle`: a
|
|
97
|
+
* `beforeHandle` already short-circuits by returning a value, but a `derive`'s return IS the context
|
|
98
|
+
* extension, so before this its only exit was `throw new Response(...)` - the most expensive way to
|
|
99
|
+
* say 401 (see {@link PlainRender} for the measurements). Returning it is preferred; throwing it
|
|
100
|
+
* carries the same cost as any other throw and stays supported so a guard helper called for effect
|
|
101
|
+
* (`requireSession(c)`) can still end the request from inside a call it makes.
|
|
102
|
+
*
|
|
103
|
+
* The body is serialized by the lane that renders it, exactly like a handler's plain return, so the
|
|
104
|
+
* response carries a `content-length` rather than falling to chunked, and queued cookies still apply.
|
|
105
|
+
*/
|
|
106
|
+
export declare function status<const Code extends number>(code: Code, body?: undefined, init?: {
|
|
107
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
108
|
+
}): StatusResponse<Code, undefined>;
|
|
109
|
+
export declare function status<const Code extends number, const Body>(code: Code, body: Body, init?: {
|
|
110
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
111
|
+
}): StatusResponse<Code, Body>;
|
|
36
112
|
/** The concrete `Request` for a source - itself when a real `Request` was passed (the Web path), or the
|
|
37
113
|
* lazily-built one (the Node adapter). A real `Request` IS a `RequestSource`, so no wrapper is allocated
|
|
38
114
|
* on the Web hot path. */
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"runtime-core.d.ts","sourceRoot":"","sources":["../../src/server/runtime-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* its values) so `request-context`, `respond`, `node-outcome`, and the kernel form a cycle-free graph.
|
|
6
6
|
*/
|
|
7
7
|
import { createUnboundedRequestBudget } from "../budget.js";
|
|
8
|
-
|
|
8
|
+
import { NODE_BRIDGE_MARKER_KEYS } from "./bridge-markers.js";
|
|
9
|
+
export const RESPONSE_RESULT = Symbol.for(NODE_BRIDGE_MARKER_KEYS.responseResult);
|
|
9
10
|
export const CONTEXT_SET = Symbol("nifra.context.set");
|
|
10
11
|
export const CONTEXT_SEARCH = Symbol("nifra.context.search");
|
|
11
12
|
/**
|
|
@@ -22,6 +23,46 @@ export function isResponseResult(value) {
|
|
|
22
23
|
value[RESPONSE_RESULT] === true &&
|
|
23
24
|
typeof value.toResponse === "function");
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* The headers a plain render ships: its own on top of whatever the request left in `c.set.headers`,
|
|
28
|
+
* so an ambient header (a request id, say) survives an early exit the way it survives an ordinary
|
|
29
|
+
* return, and a header named at the exit site still wins.
|
|
30
|
+
*
|
|
31
|
+
* Always a fresh object when the render has headers of its own: the node writers mutate the record
|
|
32
|
+
* they are handed (content-type, content-length, cookies), and a `status(...)` value is commonly
|
|
33
|
+
* hoisted to module scope and answered from on every request.
|
|
34
|
+
*/
|
|
35
|
+
export function plainRenderHeaders(plain, set) {
|
|
36
|
+
const own = plain.headers;
|
|
37
|
+
if (own === undefined)
|
|
38
|
+
return set._headers;
|
|
39
|
+
return set._headers === undefined ? { ...own } : { ...set._headers, ...own };
|
|
40
|
+
}
|
|
41
|
+
export function status(code, body, init) {
|
|
42
|
+
// The range `Response` accepts, enforced HERE so the plain lane cannot outrun it. A plain render
|
|
43
|
+
// is written straight to the socket by the Node adapter, where `writeHead` takes 100-999 - so a
|
|
44
|
+
// status this rejects would otherwise ship on Node and throw on every Web runtime, from the same
|
|
45
|
+
// code. One integer comparison against the value already in a register; the divergence it closes
|
|
46
|
+
// is the kind that only shows up in the runtime an app did not test on.
|
|
47
|
+
if (!Number.isInteger(code) || code < 200 || code > 599) {
|
|
48
|
+
throw new RangeError(`[nifra] status(${String(code)}): HTTP status must be an integer 200-599`);
|
|
49
|
+
}
|
|
50
|
+
const headers = init?.headers;
|
|
51
|
+
const plain = headers === undefined ? { status: code, body } : { status: code, headers, body };
|
|
52
|
+
return {
|
|
53
|
+
[RESPONSE_RESULT]: true,
|
|
54
|
+
plain,
|
|
55
|
+
// Only the lanes that cannot take plain data reach this - an edge runtime handed the value by a
|
|
56
|
+
// caller outside the server, say. Built on demand, never on the lanes that matter.
|
|
57
|
+
toResponse() {
|
|
58
|
+
const headers = { ...init?.headers };
|
|
59
|
+
if (body === undefined)
|
|
60
|
+
return new Response(null, { status: code, headers });
|
|
61
|
+
headers["content-type"] ??= "application/json;charset=utf-8";
|
|
62
|
+
return new Response(JSON.stringify(body), { status: code, headers });
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
25
66
|
/** The concrete `Request` for a source - itself when a real `Request` was passed (the Web path), or the
|
|
26
67
|
* lazily-built one (the Node adapter). A real `Request` IS a `RequestSource`, so no wrapper is allocated
|
|
27
68
|
* on the Web hot path. */
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"runtime-core.js","sourceRoot":"","sources":["../../src/server/runtime-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -245,11 +245,16 @@ export interface RunningServer {
|
|
|
245
245
|
readonly hostname: string;
|
|
246
246
|
readonly pendingRequests: number;
|
|
247
247
|
stop(closeActiveConnections?: boolean): void;
|
|
248
|
+
/** Bun's native topic broadcast, present on the Bun `Server` handle. `app.publish` delegates to it
|
|
249
|
+
* in native-pubsub mode; absent on other runtimes' running-server views. */
|
|
250
|
+
publish?(topic: string, data: string | ArrayBufferView | ArrayBuffer): number;
|
|
248
251
|
}
|
|
249
252
|
/**
|
|
250
253
|
* A bundle of lifecycle hooks applied together via {@link Server.use} - the unit
|
|
251
254
|
* `@nifrajs/middleware` ships (cors, security headers, rate-limit). Every hook is
|
|
252
|
-
* optional and wired to its lifecycle point. Middleware
|
|
255
|
+
* optional and wired to its lifecycle point. Middleware carrying a portable response tier must be
|
|
256
|
+
* marked with `withResponseObserver()` from `@nifrajs/core/response-observer`, or the server must
|
|
257
|
+
* install `responseObserver()` before the bundle is applied. Middleware is context-agnostic (sees
|
|
253
258
|
* the base `Context`); `use` does no context-type merging - the full type-merging
|
|
254
259
|
* plugin system is deferred, and `.use` is reserved as its future entry point.
|
|
255
260
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-types.d.ts","sourceRoot":"","sources":["../../src/server/server-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server-types.d.ts","sourceRoot":"","sources":["../../src/server/server-types.ts"],"names":[],"mappings":"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"}
|