@nifrajs/core 5.10.0 → 5.12.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 +24 -0
- package/dist/edge-kit.d.ts +3 -2
- package/dist/edge-kit.d.ts.map +1 -1
- package/dist/edge-kit.js +3 -2
- package/dist/edge-kit.js.map +1 -1
- package/dist/guard-deny.d.ts +38 -0
- package/dist/guard-deny.d.ts.map +1 -0
- package/dist/guard-deny.js +43 -0
- package/dist/guard-deny.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/capability-runtime.d.ts.map +1 -1
- package/dist/internal/capability-runtime.js +3 -2
- package/dist/internal/capability-runtime.js.map +1 -1
- package/dist/internal/route-execution.d.ts +6 -4
- package/dist/internal/route-execution.d.ts.map +1 -1
- package/dist/internal/route-execution.js.map +1 -1
- package/dist/internal/route-lanes.d.ts +4 -4
- package/dist/internal/route-lanes.d.ts.map +1 -1
- package/dist/internal/route-lanes.js +37 -37
- package/dist/internal/route-lanes.js.map +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +2 -1
- package/dist/manifest.js.map +1 -1
- package/dist/server/body.d.ts +2 -0
- package/dist/server/body.d.ts.map +1 -1
- package/dist/server/body.js +2 -0
- package/dist/server/body.js.map +1 -1
- package/dist/server/core-copies.js +1 -1
- package/dist/server/idle-timeout.d.ts +1 -1
- package/dist/server/idle-timeout.d.ts.map +1 -1
- package/dist/server/idle-timeout.js.map +1 -1
- package/dist/server/json-response.d.ts +14 -0
- package/dist/server/json-response.d.ts.map +1 -1
- package/dist/server/json-response.js +205 -0
- package/dist/server/json-response.js.map +1 -1
- package/dist/server/server-types.d.ts +7 -1
- package/dist/server/server-types.d.ts.map +1 -1
- package/dist/server/server.d.ts +16 -24
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +285 -140
- package/dist/server/server.js.map +1 -1
- package/dist/server/static-response.d.ts +13 -0
- package/dist/server/static-response.d.ts.map +1 -0
- package/dist/server/static-response.js +28 -0
- package/dist/server/static-response.js.map +1 -0
- package/dist/server/websocket.d.ts +23 -7
- package/dist/server/websocket.d.ts.map +1 -1
- package/dist/server/websocket.js +8 -3
- package/dist/server/websocket.js.map +1 -1
- package/dist/server/ws-adapter-view.d.ts +3 -3
- package/dist/server/ws-adapter-view.d.ts.map +1 -1
- package/dist/server/ws-bun.d.ts +4 -4
- package/dist/server/ws-bun.d.ts.map +1 -1
- package/dist/server/ws-bun.js +12 -5
- package/dist/server/ws-bun.js.map +1 -1
- package/dist/server/ws-hook.d.ts +4 -4
- package/dist/server/ws-hook.d.ts.map +1 -1
- package/dist/server.d.ts +2 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/dist/single-copy-register.js +5 -3
- package/dist/single-copy-register.js.map +1 -1
- package/dist/single-copy.d.ts +1 -1
- package/dist/single-copy.d.ts.map +1 -1
- package/dist/single-copy.js +49 -2
- package/dist/single-copy.js.map +1 -1
- package/dist/tool-contract.d.ts +5 -0
- package/dist/tool-contract.d.ts.map +1 -1
- package/dist/tool-contract.js +6 -3
- package/dist/tool-contract.js.map +1 -1
- package/dist/ws.d.ts +1 -1
- package/dist/ws.d.ts.map +1 -1
- package/dist/ws.js.map +1 -1
- package/package.json +6 -1
- package/src/edge-kit.ts +3 -2
- package/src/guard-deny.ts +61 -0
- package/src/index.ts +3 -1
- package/src/internal/capability-runtime.ts +3 -2
- package/src/internal/route-execution.ts +6 -4
- package/src/internal/route-lanes.ts +44 -44
- package/src/manifest.ts +2 -1
- package/src/server/body.ts +3 -0
- package/src/server/core-copies.ts +1 -1
- package/src/server/idle-timeout.ts +2 -4
- package/src/server/json-response.ts +209 -0
- package/src/server/server-types.ts +7 -1
- package/src/server/server.ts +414 -189
- package/src/server/static-response.ts +36 -0
- package/src/server/websocket.ts +29 -8
- package/src/server/ws-adapter-view.ts +3 -3
- package/src/server/ws-bun.ts +15 -9
- package/src/server/ws-hook.ts +4 -3
- package/src/server.ts +2 -0
- package/src/single-copy-register.ts +5 -3
- package/src/single-copy.ts +51 -3
- package/src/tool-contract.ts +13 -3
- package/src/ws.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @nifrajs/core
|
|
2
2
|
|
|
3
|
+
## 5.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 91cc290: Export the shared default request-body cap from core's edge kit and use it in both servers.
|
|
8
|
+
- 28bdd6c: Add `staticResponse()` for fixed bodyless GET/HEAD routes. Eligible Bun listeners serve a prebuilt response directly from Bun's route table.
|
|
9
|
+
- 878bb89: A capability id joins lowercase segments with `.`, `-` or `_`, so the capability `defineTool` derives, `tool.execute.<name>`, is valid for a snake_case tool name such as `archive_notes`, and a grant of it runs the tool. Before, that derived id failed the capability grammar, and the tool was denied unless it named its own `capability`. The grammar is the same wherever a capability id is read: route and socket `capabilities`, execution-policy ceilings, the effect ledger, assurance policies and manifests. A tool name with an empty segment (`a__b`, a trailing `-`) derives no valid id, and `defineTool` refuses it unless `capability` is passed, rather than returning a tool no grant can run.
|
|
10
|
+
- c4bd5b2: Allow server apps to provide a WebSocket `TopicAdapter`, and extend the schema coercion fast path to scalar arrays and primitive literal unions.
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- d274304: Route ordinary combinations of validated HTTP inputs and lifecycle hooks through the shared compiled fast path.
|
|
15
|
+
|
|
16
|
+
## 5.11.0
|
|
17
|
+
|
|
18
|
+
### Minor Changes
|
|
19
|
+
|
|
20
|
+
- d76f9d7: The three auth packages' guards deny a missing session through one owner: `@nifrajs/core/guard-deny` now holds `UnauthenticatedResponse`, the default `401` it builds (`unauthenticatedResult`), and the fail-loud check `assertUnauthenticated`, which refuses a denial that both redirects and answers, and a status outside 400-599. A new argument carries the package name, so every error keeps its prefix (`[nifra/auth]`, `[nifra/authjs]`, `[nifra/better-auth]`). Each package re-exports `UnauthenticatedResponse` and keeps its own guard options and its redirect rejection; no behavior and no message changed. The new subpath imports only the status lane, so it costs nothing beyond the grammar itself.
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- 9a0f0a0: `withIdleTimeout(c, seconds, work)` accepts the context of any route, including one that declares a `body`, `query` or `headers` schema.
|
|
25
|
+
- abf5a0b: Resolve the single-copy declaration from the app root when Bun runs a filtered workspace script.
|
|
26
|
+
|
|
3
27
|
## 5.10.0
|
|
4
28
|
|
|
5
29
|
### Minor Changes
|
package/dist/edge-kit.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* - {@link readBodyFramed} read + cap + proto-guard + content-type framing (JSON / urlencoded / 415)
|
|
11
11
|
* - {@link capBodyBytes} the same byte cap on a handler's own reads of the raw request
|
|
12
|
+
* - {@link boundedJsonText} preflight JSON output against an exact UTF-8 byte budget
|
|
12
13
|
* - {@link renderResult} render a {@link ResponseResult} (e.g. a 413 / 415 rejection) to a `Response`
|
|
13
14
|
* - {@link toResponse} render any handler result, a handler's own `Response` included
|
|
14
15
|
* - {@link plainError} the structured rejection envelope the lane returns
|
|
@@ -20,10 +21,10 @@
|
|
|
20
21
|
* or app state. It is the interface, not the framework.
|
|
21
22
|
*/
|
|
22
23
|
export { type ErrorLogDetail, emitRequestErrorLog } from "./server/bare-error-lane.js";
|
|
23
|
-
export { assertByteLimit, capBodyBytes } from "./server/body.js";
|
|
24
|
+
export { assertByteLimit, capBodyBytes, DEFAULT_MAX_BODY_BYTES } from "./server/body.js";
|
|
24
25
|
export { type FormOrigins, readBodyFramed } from "./server/body-lane.js";
|
|
25
26
|
export { plainError } from "./server/http.js";
|
|
26
|
-
export { jsonResponse } from "./server/json-response.js";
|
|
27
|
+
export { boundedJsonText, JsonByteLimitError, jsonResponse } from "./server/json-response.js";
|
|
27
28
|
export { answerNotFound, type NotFoundHandler, type NotFoundInput, notFoundInput, } from "./server/not-found-answer.js";
|
|
28
29
|
export type { ProtoPoisoning } from "./server/proto-guard.js";
|
|
29
30
|
export { type QueryValue, queryObjectOf, searchOf } from "./server/query.js";
|
package/dist/edge-kit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-kit.d.ts","sourceRoot":"","sources":["../src/edge-kit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"edge-kit.d.ts","sourceRoot":"","sources":["../src/edge-kit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACxF,OAAO,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7F,OAAO,EACL,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,aAAa,GACd,MAAM,8BAA8B,CAAA;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,KAAK,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC9D,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA"}
|
package/dist/edge-kit.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* - {@link readBodyFramed} read + cap + proto-guard + content-type framing (JSON / urlencoded / 415)
|
|
11
11
|
* - {@link capBodyBytes} the same byte cap on a handler's own reads of the raw request
|
|
12
|
+
* - {@link boundedJsonText} preflight JSON output against an exact UTF-8 byte budget
|
|
12
13
|
* - {@link renderResult} render a {@link ResponseResult} (e.g. a 413 / 415 rejection) to a `Response`
|
|
13
14
|
* - {@link toResponse} render any handler result, a handler's own `Response` included
|
|
14
15
|
* - {@link plainError} the structured rejection envelope the lane returns
|
|
@@ -20,10 +21,10 @@
|
|
|
20
21
|
* or app state. It is the interface, not the framework.
|
|
21
22
|
*/
|
|
22
23
|
export { emitRequestErrorLog } from "./server/bare-error-lane.js";
|
|
23
|
-
export { assertByteLimit, capBodyBytes } from "./server/body.js";
|
|
24
|
+
export { assertByteLimit, capBodyBytes, DEFAULT_MAX_BODY_BYTES } from "./server/body.js";
|
|
24
25
|
export { readBodyFramed } from "./server/body-lane.js";
|
|
25
26
|
export { plainError } from "./server/http.js";
|
|
26
|
-
export { jsonResponse } from "./server/json-response.js";
|
|
27
|
+
export { boundedJsonText, JsonByteLimitError, jsonResponse } from "./server/json-response.js";
|
|
27
28
|
export { answerNotFound, notFoundInput, } from "./server/not-found-answer.js";
|
|
28
29
|
export { queryObjectOf, searchOf } from "./server/query.js";
|
|
29
30
|
export { renderResult, toResponse } from "./server/respond.js";
|
package/dist/edge-kit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-kit.js","sourceRoot":"","sources":["../src/edge-kit.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"edge-kit.js","sourceRoot":"","sources":["../src/edge-kit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAuB,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtF,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACxF,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7F,OAAO,EACL,cAAc,EAGd,aAAa,GACd,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAmB,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The denial grammar the three auth packages' route guards share: what a guard rejects a missing
|
|
3
|
+
* session with. `@nifrajs/auth`, `@nifrajs/authjs` and `@nifrajs/better-auth` each keep their own
|
|
4
|
+
* options shape and their own redirect rejection; this subpath owns the `unauthenticated` response
|
|
5
|
+
* type, its construction, and the two fail-loud dev-config checks, so the three cannot drift: a
|
|
6
|
+
* fix made here holds for every guard family at once.
|
|
7
|
+
*
|
|
8
|
+
* The module imports only the status lane, so an app whose guards use it pays nothing besides the
|
|
9
|
+
* grammar itself.
|
|
10
|
+
*/
|
|
11
|
+
import { type ResponseResult } from "./server/runtime-core.js";
|
|
12
|
+
/**
|
|
13
|
+
* The response a guard denies a missing session with, in place of the default `401` JSON. Every
|
|
14
|
+
* nifra auth package's guard options named `unauthenticated` takes this shape.
|
|
15
|
+
*/
|
|
16
|
+
export interface UnauthenticatedResponse {
|
|
17
|
+
/** An error status, 400-599. Default `401`. */
|
|
18
|
+
readonly status?: number;
|
|
19
|
+
/** The body; present but `undefined` sends none. Default `{ ok: false, error: "unauthorized" }`. */
|
|
20
|
+
readonly body?: unknown;
|
|
21
|
+
/** Response headers, such as a `www-authenticate` challenge. */
|
|
22
|
+
readonly headers?: Readonly<Record<string, string>>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A dev-authored denial that is not an error status, or that competes with a redirect, fails loud.
|
|
26
|
+
* A mutation-taking guard must say one thing, and `unauthenticated.status` must stay an HTTP error
|
|
27
|
+
* status. `owner` names the package in the message: `[nifra/<owner>]`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function assertUnauthenticated(options: {
|
|
30
|
+
readonly redirectTo?: string;
|
|
31
|
+
readonly unauthenticated?: UnauthenticatedResponse;
|
|
32
|
+
}, owner: string): void;
|
|
33
|
+
/**
|
|
34
|
+
* The response one guard rejection carries: what the options declared, or the default `401` JSON
|
|
35
|
+
* (`{ ok: false, error: "unauthorized" }`). An explicit `body` of `undefined` sends no body.
|
|
36
|
+
*/
|
|
37
|
+
export declare function unauthenticatedResult(custom: UnauthenticatedResponse | undefined): ResponseResult;
|
|
38
|
+
//# sourceMappingURL=guard-deny.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard-deny.d.ts","sourceRoot":"","sources":["../src/guard-deny.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,cAAc,EAAU,MAAM,0BAA0B,CAAA;AAKtE;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,oGAAoG;IACpG,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,gEAAgE;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACpD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE;IAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,uBAAuB,CAAA;CAAE,EAC7F,KAAK,EAAE,MAAM,GACZ,IAAI,CAYN;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,GAAG,cAAc,CAMjG"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The denial grammar the three auth packages' route guards share: what a guard rejects a missing
|
|
3
|
+
* session with. `@nifrajs/auth`, `@nifrajs/authjs` and `@nifrajs/better-auth` each keep their own
|
|
4
|
+
* options shape and their own redirect rejection; this subpath owns the `unauthenticated` response
|
|
5
|
+
* type, its construction, and the two fail-loud dev-config checks, so the three cannot drift: a
|
|
6
|
+
* fix made here holds for every guard family at once.
|
|
7
|
+
*
|
|
8
|
+
* The module imports only the status lane, so an app whose guards use it pays nothing besides the
|
|
9
|
+
* grammar itself.
|
|
10
|
+
*/
|
|
11
|
+
import { status } from "./server/runtime-core.js";
|
|
12
|
+
/** The body a guard sends when the app did not declare its own. */
|
|
13
|
+
const UNAUTHORIZED = { ok: false, error: "unauthorized" };
|
|
14
|
+
/**
|
|
15
|
+
* A dev-authored denial that is not an error status, or that competes with a redirect, fails loud.
|
|
16
|
+
* A mutation-taking guard must say one thing, and `unauthenticated.status` must stay an HTTP error
|
|
17
|
+
* status. `owner` names the package in the message: `[nifra/<owner>]`.
|
|
18
|
+
*/
|
|
19
|
+
export function assertUnauthenticated(options, owner) {
|
|
20
|
+
const custom = options.unauthenticated;
|
|
21
|
+
if (custom === undefined)
|
|
22
|
+
return;
|
|
23
|
+
if (options.redirectTo !== undefined) {
|
|
24
|
+
throw new Error(`[nifra/${owner}] a guard takes redirectTo or unauthenticated, not both`);
|
|
25
|
+
}
|
|
26
|
+
const code = custom.status;
|
|
27
|
+
if (code !== undefined && (!Number.isInteger(code) || code < 400 || code > 599)) {
|
|
28
|
+
throw new RangeError(`[nifra/${owner}] guard unauthenticated.status must be an integer 400-599 (got ${String(code)})`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The response one guard rejection carries: what the options declared, or the default `401` JSON
|
|
33
|
+
* (`{ ok: false, error: "unauthorized" }`). An explicit `body` of `undefined` sends no body.
|
|
34
|
+
*/
|
|
35
|
+
export function unauthenticatedResult(custom) {
|
|
36
|
+
if (custom === undefined)
|
|
37
|
+
return status(401, UNAUTHORIZED);
|
|
38
|
+
const body = "body" in custom ? custom.body : UNAUTHORIZED;
|
|
39
|
+
return custom.headers === undefined
|
|
40
|
+
? status(custom.status ?? 401, body)
|
|
41
|
+
: status(custom.status ?? 401, body, { headers: custom.headers });
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=guard-deny.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard-deny.js","sourceRoot":"","sources":["../src/guard-deny.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAuB,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAEtE,mEAAmE;AACnE,MAAM,YAAY,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAW,CAAA;AAelE;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA6F,EAC7F,KAAa;IAEb,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAA;IACtC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAM;IAChC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,yDAAyD,CAAC,CAAA;IAC3F,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAC1B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,UAAU,CAClB,UAAU,KAAK,kEAAkE,MAAM,CAAC,IAAI,CAAC,GAAG,CACjG,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA2C;IAC/E,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAA;IAC1D,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS;QACjC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;AACrE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* read its own package.json at runtime. `scripts/version.ts` rewrites it on every release bump and
|
|
16
16
|
* `check:publish` asserts it equals `@nifrajs/core`'s package version.
|
|
17
17
|
*/
|
|
18
|
-
export declare const VERSION: "5.
|
|
18
|
+
export declare const VERSION: "5.12.0";
|
|
19
19
|
export type Version = typeof VERSION;
|
|
20
20
|
export { FrameworkError, RouteConfigError, type RouteConfigErrorCode } from "./errors.js";
|
|
21
21
|
export { FRAMEWORK_NAME, type FrameworkName } from "./internal/brand.js";
|
|
@@ -39,5 +39,6 @@ export { routeTemplateOf } from "./server/route-template.js";
|
|
|
39
39
|
export { type PlainRender, type ResponseResult, type StatusResponse, status, } from "./server/runtime-core.js";
|
|
40
40
|
export { type AdmissionController, type AdmissionDecision, type AnyServer, type ContextPlugin, type DeclaredMountRoute, type DefinePluginResult, defineContextPlugin, defineIdentityPlugin, definePlugin, defineRouterPlugin, type Handler, type IdentityPlugin, type ListenTlsOptions, type McpPromptDescriptor, type McpResourceDescriptor, type Middleware, type MountableApp, type MountFetchOptions, type MountOptions, type NifraFeatureVersion, type NifraPlugin, type NodeRequestContext, type NodeRequestHook, type NodeResponseBodyHook, type NodeResponseContext, type NodeResponseHook, type NodeServeOutcome, type OnRequestResult, type OpaqueMountDeclaration, type PluginTypeCollapsed, type PromptArgument, type PromptMessage, type ResponseBodyHook, type ResponseBodyReplacement, type ResponseFinalization, type ResponseHeadersHook, type ResponseHeadersView, type RouteDescriptor, type RunningServer, Server, type ServerOptions, server, type ToolAnnotations, } from "./server/server.js";
|
|
41
41
|
export type { SSEContext, SSEInit, SSEMessage, SSEStream, TypedSSEStream, } from "./server/sse.js";
|
|
42
|
-
export
|
|
42
|
+
export { staticResponse } from "./server/static-response.js";
|
|
43
|
+
export type { NifraWebSocket, StandardWebSocket, TopicAdapter, WebSocketContext, WebSocketData, WebSocketHandler, WebSocketUpgradeOutcome, } from "./server/websocket.js";
|
|
43
44
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,eAAO,MAAM,OAAO,EAAG,QAAiB,CAAA;AAExC,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAA;AAEpC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACzF,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,OAAO,EACP,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,MAAM,EACN,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,QAAQ,GACT,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,YAAY,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,WAAW,GACZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,cAAc,GACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,KAAK,QAAQ,EACb,UAAU,EACV,MAAM,GACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,KAAK,aAAa,GACnB,MAAM,+BAA+B,CAAA;AACtC,YAAY,EACV,aAAa,EACb,cAAc,EACd,QAAQ,EACR,cAAc,EACd,SAAS,EACT,YAAY,GACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,YAAY,GACb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,MAAM,GACP,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,MAAM,EACN,KAAK,aAAa,EAClB,MAAM,EACN,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,UAAU,EACV,OAAO,EACP,UAAU,EACV,SAAS,EACT,cAAc,GACf,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* read its own package.json at runtime. `scripts/version.ts` rewrites it on every release bump and
|
|
16
16
|
* `check:publish` asserts it equals `@nifrajs/core`'s package version.
|
|
17
17
|
*/
|
|
18
|
-
export const VERSION = "5.
|
|
18
|
+
export const VERSION = "5.12.0";
|
|
19
19
|
export { FrameworkError, RouteConfigError } from "./errors.js";
|
|
20
20
|
export { FRAMEWORK_NAME } from "./internal/brand.js";
|
|
21
21
|
export { isSameOriginForm, isSameOriginRequest } from "./internal/same-origin.js";
|
|
@@ -34,4 +34,5 @@ export { writableResponse } from "./server/respond.js";
|
|
|
34
34
|
export { routeTemplateOf } from "./server/route-template.js";
|
|
35
35
|
export { status, } from "./server/runtime-core.js";
|
|
36
36
|
export { defineContextPlugin, defineIdentityPlugin, definePlugin, defineRouterPlugin, Server, server, } from "./server/server.js";
|
|
37
|
+
export { staticResponse } from "./server/static-response.js";
|
|
37
38
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAiB,CAAA;AAIxC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAA6B,MAAM,aAAa,CAAA;AACzF,OAAO,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,OAAO,EAGP,MAAM,GAEP,MAAM,oBAAoB,CAAA;AAU3B,OAAO,EASL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,QAAQ,GACT,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAU1D,OAAO,EAGL,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,WAAW,GACZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAKL,cAAc,GACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,gBAAgB,EAChB,UAAU,EAEV,UAAU,EACV,MAAM,GACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,oBAAoB,EACpB,UAAU,EAIV,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAUL,eAAe,EACf,gBAAgB,EAChB,eAAe,GAEhB,MAAM,+BAA+B,CAAA;AAStC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAElB,YAAY,GACb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAIL,MAAM,GACP,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAOL,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EA8BlB,MAAM,EAEN,MAAM,GAEP,MAAM,oBAAoB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAiB,CAAA;AAIxC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAA6B,MAAM,aAAa,CAAA;AACzF,OAAO,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,OAAO,EAGP,MAAM,GAEP,MAAM,oBAAoB,CAAA;AAU3B,OAAO,EASL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,QAAQ,GACT,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAU1D,OAAO,EAGL,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,SAAS,EACT,WAAW,GACZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAKL,cAAc,GACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,gBAAgB,EAChB,UAAU,EAEV,UAAU,EACV,MAAM,GACP,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,oBAAoB,EACpB,UAAU,EAIV,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAUL,eAAe,EACf,gBAAgB,EAChB,eAAe,GAEhB,MAAM,+BAA+B,CAAA;AAStC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EACL,kBAAkB,EAElB,YAAY,GACb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAIL,MAAM,GACP,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAOL,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EA8BlB,MAAM,EAEN,MAAM,GAEP,MAAM,oBAAoB,CAAA;AAQ3B,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-runtime.d.ts","sourceRoot":"","sources":["../../src/internal/capability-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,eAAO,MAAM,gBAAgB,eAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"capability-runtime.d.ts","sourceRoot":"","sources":["../../src/internal/capability-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export const CAPABILITY_GUARD = Symbol("nifra.capability.guard");
|
|
2
|
-
|
|
2
|
+
// Lowercase segments joined by `.`, `-` or `_`, so a snake_case tool name is a valid capability segment.
|
|
3
|
+
const CAPABILITY_ID = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
|
|
3
4
|
export function validCapabilityId(value) {
|
|
4
5
|
return CAPABILITY_ID.test(value);
|
|
5
6
|
}
|
|
@@ -13,7 +14,7 @@ export function normalizeRouteCapabilities(values) {
|
|
|
13
14
|
const seen = new Set();
|
|
14
15
|
for (const value of values) {
|
|
15
16
|
if (typeof value !== "string" || !validCapabilityId(value)) {
|
|
16
|
-
throw new Error(`route capabilities: invalid capability id ${JSON.stringify(value)} (use lowercase dot/dash segments)`);
|
|
17
|
+
throw new Error(`route capabilities: invalid capability id ${JSON.stringify(value)} (use lowercase dot/dash/underscore segments)`);
|
|
17
18
|
}
|
|
18
19
|
if (!seen.has(value)) {
|
|
19
20
|
seen.add(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-runtime.js","sourceRoot":"","sources":["../../src/internal/capability-runtime.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAA;AAChE,MAAM,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"capability-runtime.js","sourceRoot":"","sources":["../../src/internal/capability-runtime.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAA;AAChE,yGAAyG;AACzG,MAAM,aAAa,GAAG,qCAAqC,CAAA;AAE3D,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AA2ED,MAAM,CAAC,MAAM,yCAAyC,GAAG,MAAM,CAAA;AAY/D,MAAM,UAAU,0BAA0B,CACxC,MAAqC;IAErC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAA;IACtF,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,+CAA+C,CAClH,CAAA;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,OAA0B,EAC1B,MAAc,EACd,IAAY,EACZ,KAAwD,EACxD,WAAwE,EACxE,YAAwD,EACxD,SAA6C;IAE7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO;QACP,MAAM;QACN,IAAI;QACJ,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -25,6 +25,7 @@ import type { Registry } from "../server/registry.js";
|
|
|
25
25
|
import type { ResponseContractDefinition, ResponseContractRuntime } from "../server/response-contract-lane.js";
|
|
26
26
|
import type { HandlerResult, ResponseResult } from "../server/runtime-core.js";
|
|
27
27
|
import type { CtxSet, MaybePromise, RawContext, RequestSource, Server } from "../server/server.js";
|
|
28
|
+
import type { StaticResponseDefinition } from "../server/static-response.js";
|
|
28
29
|
import type { RouteProgram } from "./route-program.js";
|
|
29
30
|
export type InternalHandler = (ctx: RawContext) => MaybePromise<HandlerResult>;
|
|
30
31
|
/** A `derive` computes per-request context extensions; stored path-erased. */
|
|
@@ -50,7 +51,7 @@ export declare function compileRouteExecutionPlan(options: {
|
|
|
50
51
|
readonly hasLedger: boolean;
|
|
51
52
|
readonly fusedWeb: FusedWebRunner | undefined;
|
|
52
53
|
readonly fusedBody: FusedBodyRunner | undefined;
|
|
53
|
-
readonly fusedLane: "bare" | "body" | "query" | "
|
|
54
|
+
readonly fusedLane: "bare" | "body" | "query" | "inputs" | "hooks" | undefined;
|
|
54
55
|
}): RouteExecutionPlan;
|
|
55
56
|
/** Registration-compiled route behavior. Every adapter invokes the same runner; the optional fused
|
|
56
57
|
* renderer is only a response-format specialization of that same selected route semantics. */
|
|
@@ -59,12 +60,13 @@ export interface RouteExecutionPlan {
|
|
|
59
60
|
readonly fusedWeb: FusedWebRunner | undefined;
|
|
60
61
|
readonly fusedBody: FusedBodyRunner | undefined;
|
|
61
62
|
/** Which builder produced {@link fusedWeb} - a merge rebinds the closure to the executing server
|
|
62
|
-
* and must rebuild it with the SAME semantics (a query-fused route rebuilt as bare would
|
|
63
|
-
* validation). `undefined` iff `fusedWeb` is. */
|
|
64
|
-
readonly fusedLane: "bare" | "body" | "query" | "
|
|
63
|
+
* and must rebuild it with the SAME semantics (a query- or input-fused route rebuilt as bare would
|
|
64
|
+
* skip its validation). `undefined` iff `fusedWeb` is. */
|
|
65
|
+
readonly fusedLane: "bare" | "body" | "query" | "inputs" | "hooks" | undefined;
|
|
65
66
|
}
|
|
66
67
|
export interface RouteEntry {
|
|
67
68
|
readonly handler: InternalHandler;
|
|
69
|
+
readonly staticResponse: StaticResponseDefinition | undefined;
|
|
68
70
|
readonly schema: RouteSchema | undefined;
|
|
69
71
|
/**
|
|
70
72
|
* Effective transport body cap, already resolved at registration: the route's own
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-execution.d.ts","sourceRoot":"","sources":["../../src/internal/route-execution.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"route-execution.d.ts","sourceRoot":"","sources":["../../src/internal/route-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-execution.js","sourceRoot":"","sources":["../../src/internal/route-execution.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAMxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"route-execution.js","sourceRoot":"","sources":["../../src/internal/route-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Registration-time route-lane selection.
|
|
3
3
|
*
|
|
4
4
|
* A route's lane is a property of its registered shape, not of an individual request. Keeping this
|
|
5
|
-
* decision in a small internal module gives the server kernel one vocabulary for
|
|
6
|
-
* lifecycle execution
|
|
7
|
-
*
|
|
5
|
+
* decision in a small internal module gives the server kernel one vocabulary for
|
|
6
|
+
* bare/body/query/input/lifecycle execution. This module is never called from the request path. The
|
|
7
|
+
* returned booleans are consumed by the existing compiled execution plan and fused
|
|
8
8
|
* builders; no adapter or extra dispatch hop is introduced at runtime.
|
|
9
9
|
*/
|
|
10
10
|
import type { RouteSchema } from "../server/context.js";
|
|
@@ -17,7 +17,7 @@ export interface RouteLaneSelection {
|
|
|
17
17
|
readonly lane: RouteExecutionLane;
|
|
18
18
|
readonly lifecycleLane: LifecycleExecutionLane;
|
|
19
19
|
readonly lifecycleHookLane: "hooks" | undefined;
|
|
20
|
-
readonly fusedLane: "bare" | "body" | "query" | "
|
|
20
|
+
readonly fusedLane: "bare" | "body" | "query" | "inputs" | "hooks" | undefined;
|
|
21
21
|
}
|
|
22
22
|
export declare function selectRouteLanes(options: {
|
|
23
23
|
readonly schema: RouteSchema | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-lanes.d.ts","sourceRoot":"","sources":["../../src/internal/route-lanes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAA;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"route-lanes.d.ts","sourceRoot":"","sources":["../../src/internal/route-lanes.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAA;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAA;CAC/E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAA;IACrC,uGAAuG;IACvG,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAA;CAC3C,GAAG,kBAAkB,CA0KrB"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
export function selectRouteLanes(options) {
|
|
2
2
|
const { schema, hasIdempotency, hasLedger, hasResponseContract, decorationsAssignable = true, derives, beforeHandle, afterHandle, onError, around, defaultOnValidationError, } = options;
|
|
3
3
|
const authBeforeValidation = options.hasAuth === true || schema?.validationOrder === "auth-before-validation";
|
|
4
|
-
//
|
|
5
|
-
const plain = schema?.
|
|
4
|
+
// Narrow body/query runners handle simple shapes; the shared input lane composes schemas.
|
|
5
|
+
const plain = schema?.headers === undefined && schema?.cookies === undefined;
|
|
6
|
+
const noParams = schema?.params === undefined;
|
|
7
|
+
const hasInputSchema = schema?.headers !== undefined ||
|
|
8
|
+
schema?.cookies !== undefined ||
|
|
9
|
+
schema?.params !== undefined ||
|
|
10
|
+
schema?.body !== undefined ||
|
|
11
|
+
schema?.query !== undefined;
|
|
6
12
|
const bare = !authBeforeValidation &&
|
|
7
13
|
plain &&
|
|
14
|
+
noParams &&
|
|
8
15
|
schema?.body === undefined &&
|
|
9
16
|
schema?.query === undefined &&
|
|
10
17
|
!hasIdempotency &&
|
|
@@ -14,18 +21,17 @@ export function selectRouteLanes(options) {
|
|
|
14
21
|
beforeHandle === 0 &&
|
|
15
22
|
afterHandle === 0 &&
|
|
16
23
|
onError === 0;
|
|
17
|
-
// A route whose
|
|
18
|
-
// respond collapse into one closure with no lifecycle promise on the sync path. The guards
|
|
19
|
-
// query lane below PLUS everything the fused dispatch skips: around hooks, the
|
|
20
|
-
// wrappers, and validation-error recovery (schema or server default)
|
|
21
|
-
// exactly `validationError(issues)`, so any recovery semantics keep the generic lane.
|
|
24
|
+
// A route whose only input stages are path params and/or a query schema can fuse too: validate +
|
|
25
|
+
// handler + respond collapse into one closure with no lifecycle promise on the sync path. The guards
|
|
26
|
+
// mirror the query lane below PLUS everything the fused dispatch skips: around hooks, the
|
|
27
|
+
// idempotency/ledger wrappers, and validation-error recovery (schema or server default).
|
|
22
28
|
const fusedQuery = !bare &&
|
|
23
29
|
!authBeforeValidation &&
|
|
24
30
|
!hasResponseContract &&
|
|
25
|
-
schema?.query !== undefined &&
|
|
31
|
+
(schema?.query !== undefined || schema?.params !== undefined) &&
|
|
26
32
|
schema.body === undefined &&
|
|
27
33
|
plain &&
|
|
28
|
-
schema
|
|
34
|
+
schema?.onValidationError === undefined &&
|
|
29
35
|
!defaultOnValidationError &&
|
|
30
36
|
!hasIdempotency &&
|
|
31
37
|
!hasLedger &&
|
|
@@ -51,16 +57,29 @@ export function selectRouteLanes(options) {
|
|
|
51
57
|
!hasIdempotency &&
|
|
52
58
|
!hasLedger &&
|
|
53
59
|
around === 0;
|
|
60
|
+
// The shared input runner handles every ordinary validation shape, including body+query and
|
|
61
|
+
// params+headers+cookies combinations. It also carries lifecycle and error hooks; only recovery
|
|
62
|
+
// callbacks or outer wrappers that observe the stage sequence need the general program.
|
|
63
|
+
const fusedInputs = hasInputSchema &&
|
|
64
|
+
!authBeforeValidation &&
|
|
65
|
+
!hasResponseContract &&
|
|
66
|
+
schema.onValidationError === undefined &&
|
|
67
|
+
!defaultOnValidationError &&
|
|
68
|
+
!hasIdempotency &&
|
|
69
|
+
!hasLedger &&
|
|
70
|
+
decorationsAssignable &&
|
|
71
|
+
around === 0;
|
|
54
72
|
// The idempotency gate lives in the general program, so an idempotent route always runs it.
|
|
55
73
|
const lane = authBeforeValidation || hasIdempotency
|
|
56
74
|
? "lifecycle"
|
|
57
75
|
: bare
|
|
58
76
|
? "bare"
|
|
59
|
-
: bodyOnly
|
|
77
|
+
: bodyOnly && (noParams || fusedBody)
|
|
60
78
|
? "body"
|
|
61
79
|
: !hasResponseContract &&
|
|
62
80
|
schema?.body === undefined &&
|
|
63
81
|
schema?.query !== undefined &&
|
|
82
|
+
noParams &&
|
|
64
83
|
plain &&
|
|
65
84
|
derives === 0 &&
|
|
66
85
|
beforeHandle === 0 &&
|
|
@@ -68,10 +87,8 @@ export function selectRouteLanes(options) {
|
|
|
68
87
|
onError === 0
|
|
69
88
|
? "query"
|
|
70
89
|
: "lifecycle";
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
// request path never re-checks params/body presence. Parameter-schema routes retain the generic
|
|
74
|
-
// lifecycle runner until their more involved recovery matrix is selected explicitly.
|
|
90
|
+
// Select the lifecycle stage shape at registration so the request path never re-checks which input
|
|
91
|
+
// schemas or hook phases are present.
|
|
75
92
|
const lifecycleLane = lane !== "lifecycle" || !plain
|
|
76
93
|
? undefined
|
|
77
94
|
: schema?.body !== undefined
|
|
@@ -81,12 +98,8 @@ export function selectRouteLanes(options) {
|
|
|
81
98
|
: schema?.query !== undefined
|
|
82
99
|
? "query"
|
|
83
100
|
: "hooks";
|
|
84
|
-
// A route
|
|
85
|
-
//
|
|
86
|
-
// that can observe around hooks, a response contract or a validation-error recovery keeps the
|
|
87
|
-
// generic runner. A params, headers or cookies schema
|
|
88
|
-
// routes back to the generic lane because the fused builder has no validation step for them, and a
|
|
89
|
-
// `body` schema is the `body-hooks` lane below because this one does not parse the body.
|
|
101
|
+
// A route with lifecycle hooks and no validated inputs uses the same compiled hook chain. Input
|
|
102
|
+
// routes use `fusedInputs` above, including when their hooks run after validation.
|
|
90
103
|
const hookCount = derives + beforeHandle + afterHandle;
|
|
91
104
|
const lifecycleHookLane = lane === "lifecycle" &&
|
|
92
105
|
!authBeforeValidation &&
|
|
@@ -98,25 +111,10 @@ export function selectRouteLanes(options) {
|
|
|
98
111
|
!defaultOnValidationError &&
|
|
99
112
|
plain &&
|
|
100
113
|
schema?.body === undefined &&
|
|
101
|
-
hookCount > 0 &&
|
|
114
|
+
(hookCount > 0 || onError > 0) &&
|
|
102
115
|
around === 0
|
|
103
116
|
? "hooks"
|
|
104
117
|
: undefined;
|
|
105
|
-
// The same hooks around a body schema: the fused closure runs parse, validate, derive, before,
|
|
106
|
-
// handler and after in one function frame, the win `fusedBody` already gives the no-hooks shape.
|
|
107
|
-
const fusedBodyLifecycle = lane === "lifecycle" &&
|
|
108
|
-
!authBeforeValidation &&
|
|
109
|
-
schema?.body !== undefined &&
|
|
110
|
-
schema?.query === undefined &&
|
|
111
|
-
plain &&
|
|
112
|
-
schema?.onValidationError === undefined &&
|
|
113
|
-
!defaultOnValidationError &&
|
|
114
|
-
!hasResponseContract &&
|
|
115
|
-
decorationsAssignable &&
|
|
116
|
-
!hasIdempotency &&
|
|
117
|
-
!hasLedger &&
|
|
118
|
-
hookCount > 0 &&
|
|
119
|
-
around === 0;
|
|
120
118
|
return {
|
|
121
119
|
bare,
|
|
122
120
|
fusedQuery,
|
|
@@ -132,7 +130,9 @@ export function selectRouteLanes(options) {
|
|
|
132
130
|
? "body"
|
|
133
131
|
: bare
|
|
134
132
|
? "bare"
|
|
135
|
-
:
|
|
133
|
+
: fusedInputs
|
|
134
|
+
? "inputs"
|
|
135
|
+
: lifecycleHookLane
|
|
136
136
|
: undefined,
|
|
137
137
|
};
|
|
138
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-lanes.js","sourceRoot":"","sources":["../../src/internal/route-lanes.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,gBAAgB,CAAC,OAchC;IACC,MAAM,EACJ,MAAM,EACN,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,qBAAqB,GAAG,IAAI,EAC5B,OAAO,EACP,YAAY,EACZ,WAAW,EACX,OAAO,EACP,MAAM,EACN,wBAAwB,GACzB,GAAG,OAAO,CAAA;IAEX,MAAM,oBAAoB,GACxB,OAAO,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,EAAE,eAAe,KAAK,wBAAwB,CAAA;IAClF,
|
|
1
|
+
{"version":3,"file":"route-lanes.js","sourceRoot":"","sources":["../../src/internal/route-lanes.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAElG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACzB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,KAAK,uBAAuB,EAA2B,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/manifest.js
CHANGED
|
@@ -3,6 +3,7 @@ import { canonicalJson } from "./canonical-json.js";
|
|
|
3
3
|
import { isDataClassification, } from "./classification.js";
|
|
4
4
|
import { diffRouteSnapshots, } from "./diff.js";
|
|
5
5
|
import { snapshotProjectEvidence } from "./evidence.js";
|
|
6
|
+
import { validCapabilityId } from "./internal/capability-runtime.js";
|
|
6
7
|
import { codeUnitOrder } from "./internal/code-unit-order.js";
|
|
7
8
|
import { hasControlCharacter } from "./internal/control-character.js";
|
|
8
9
|
import { sha256Hex } from "./internal/hex.js";
|
|
@@ -249,7 +250,7 @@ export async function parseNifraManifest(content, source = "manifest") {
|
|
|
249
250
|
!Array.isArray(capabilities.evidenced) ||
|
|
250
251
|
!Array.isArray(capabilities.unproven) ||
|
|
251
252
|
typeof capabilities.covered !== "boolean" ||
|
|
252
|
-
[...capabilities.declared, ...capabilities.evidenced, ...capabilities.unproven].some((value) => typeof value !== "string" ||
|
|
253
|
+
[...capabilities.declared, ...capabilities.evidenced, ...capabilities.unproven].some((value) => typeof value !== "string" || !validCapabilityId(value))) {
|
|
253
254
|
throw new Error(`nifra manifest: ${source} contains invalid capability material`);
|
|
254
255
|
}
|
|
255
256
|
}
|