@nifrajs/core 3.3.0 → 4.0.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 +26 -0
- package/dist/assurance.d.ts +7 -0
- package/dist/assurance.d.ts.map +1 -1
- package/dist/assurance.js +39 -3
- package/dist/assurance.js.map +1 -1
- package/dist/capabilities.d.ts +20 -2
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +47 -15
- package/dist/capabilities.js.map +1 -1
- package/dist/diff.d.ts +6 -1
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +36 -2
- package/dist/diff.js.map +1 -1
- package/dist/durable-adapters.d.ts.map +1 -1
- package/dist/durable-adapters.js +16 -3
- package/dist/durable-adapters.js.map +1 -1
- package/dist/durable-effect.d.ts.map +1 -1
- package/dist/durable-effect.js +6 -3
- package/dist/durable-effect.js.map +1 -1
- package/dist/edge-kit.d.ts +2 -0
- package/dist/edge-kit.d.ts.map +1 -1
- package/dist/edge-kit.js +2 -0
- package/dist/edge-kit.js.map +1 -1
- package/dist/effect-lifecycle.d.ts.map +1 -1
- package/dist/effect-lifecycle.js +2 -1
- package/dist/effect-lifecycle.js.map +1 -1
- package/dist/effect-scope.d.ts.map +1 -1
- package/dist/effect-scope.js +1 -1
- package/dist/effect-scope.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/evidence.d.ts +36 -1
- package/dist/evidence.d.ts.map +1 -1
- package/dist/evidence.js +219 -13
- package/dist/evidence.js.map +1 -1
- package/dist/idempotency.d.ts +31 -0
- package/dist/idempotency.d.ts.map +1 -1
- package/dist/idempotency.js +48 -9
- package/dist/idempotency.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/code-unit-order.d.ts +7 -0
- package/dist/internal/code-unit-order.d.ts.map +1 -0
- package/dist/internal/code-unit-order.js +9 -0
- package/dist/internal/code-unit-order.js.map +1 -0
- package/dist/internal/durable-saga-protocol.d.ts.map +1 -1
- package/dist/internal/durable-saga-protocol.js +2 -0
- package/dist/internal/durable-saga-protocol.js.map +1 -1
- package/dist/internal/route-catalog.d.ts +6 -6
- package/dist/internal/route-catalog.d.ts.map +1 -1
- package/dist/internal/route-catalog.js +20 -18
- package/dist/internal/route-catalog.js.map +1 -1
- package/dist/internal/route-compiler.d.ts +7 -6
- package/dist/internal/route-compiler.d.ts.map +1 -1
- package/dist/internal/route-compiler.js +36 -4
- package/dist/internal/route-compiler.js.map +1 -1
- package/dist/internal/route-execution.d.ts +7 -3
- 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 +1 -0
- package/dist/internal/route-lanes.d.ts.map +1 -1
- package/dist/internal/route-lanes.js +34 -29
- package/dist/internal/route-lanes.js.map +1 -1
- package/dist/internal/route-program.d.ts +8 -2
- package/dist/internal/route-program.d.ts.map +1 -1
- package/dist/internal/route-program.js +222 -20
- package/dist/internal/route-program.js.map +1 -1
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +8 -5
- package/dist/ledger.js.map +1 -1
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +52 -46
- package/dist/manifest.js.map +1 -1
- package/dist/mount.d.ts +36 -0
- package/dist/mount.d.ts.map +1 -1
- package/dist/mount.js +32 -0
- package/dist/mount.js.map +1 -1
- package/dist/reflection.d.ts +26 -0
- package/dist/reflection.d.ts.map +1 -1
- package/dist/reflection.js +65 -1
- package/dist/reflection.js.map +1 -1
- package/dist/response-observer.d.ts +1 -1
- package/dist/response-observer.d.ts.map +1 -1
- package/dist/response-observer.js.map +1 -1
- package/dist/router/overlap.d.ts +23 -0
- package/dist/router/overlap.d.ts.map +1 -0
- package/dist/router/overlap.js +224 -0
- package/dist/router/overlap.js.map +1 -0
- package/dist/router/pattern.d.ts +117 -2
- package/dist/router/pattern.d.ts.map +1 -1
- package/dist/router/pattern.js +283 -23
- package/dist/router/pattern.js.map +1 -1
- package/dist/router/router.d.ts +18 -4
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +51 -44
- package/dist/router/router.js.map +1 -1
- package/dist/server/auth.d.ts +53 -0
- package/dist/server/auth.d.ts.map +1 -0
- package/dist/server/auth.js +9 -0
- package/dist/server/auth.js.map +1 -0
- package/dist/server/bare-error-lane.d.ts +12 -7
- package/dist/server/bare-error-lane.d.ts.map +1 -1
- package/dist/server/bare-error-lane.js +13 -11
- package/dist/server/bare-error-lane.js.map +1 -1
- package/dist/server/body-lane.d.ts +20 -2
- package/dist/server/body-lane.d.ts.map +1 -1
- package/dist/server/body-lane.js +26 -7
- package/dist/server/body-lane.js.map +1 -1
- package/dist/server/body-parser.d.ts +68 -0
- package/dist/server/body-parser.d.ts.map +1 -0
- package/dist/server/body-parser.js +172 -0
- package/dist/server/body-parser.js.map +1 -0
- package/dist/server/body.d.ts.map +1 -1
- package/dist/server/body.js +62 -7
- package/dist/server/body.js.map +1 -1
- package/dist/server/client-ip.d.ts +8 -0
- package/dist/server/client-ip.d.ts.map +1 -1
- package/dist/server/client-ip.js +8 -0
- package/dist/server/client-ip.js.map +1 -1
- package/dist/server/context.d.ts +71 -6
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/contract.d.ts +15 -5
- package/dist/server/contract.d.ts.map +1 -1
- package/dist/server/contract.js +25 -4
- package/dist/server/contract.js.map +1 -1
- package/dist/server/cookies.d.ts +4 -1
- package/dist/server/cookies.d.ts.map +1 -1
- package/dist/server/cookies.js +40 -2
- package/dist/server/cookies.js.map +1 -1
- package/dist/server/core-copies.d.ts +2 -0
- package/dist/server/core-copies.d.ts.map +1 -0
- package/dist/server/core-copies.js +20 -0
- package/dist/server/core-copies.js.map +1 -0
- package/dist/server/edge.d.ts.map +1 -1
- package/dist/server/edge.js +2 -0
- package/dist/server/edge.js.map +1 -1
- package/dist/server/http.d.ts +11 -0
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +36 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/idempotency-lane.d.ts +6 -0
- package/dist/server/idempotency-lane.d.ts.map +1 -1
- package/dist/server/idempotency-lane.js +130 -73
- package/dist/server/idempotency-lane.js.map +1 -1
- package/dist/server/install.d.ts +4 -0
- package/dist/server/install.d.ts.map +1 -1
- package/dist/server/install.js +4 -0
- package/dist/server/install.js.map +1 -1
- package/dist/server/methods.d.ts +45 -0
- package/dist/server/methods.d.ts.map +1 -0
- package/dist/server/methods.js +37 -0
- package/dist/server/methods.js.map +1 -0
- package/dist/server/multipart.d.ts +63 -0
- package/dist/server/multipart.d.ts.map +1 -0
- package/dist/server/multipart.js +374 -0
- package/dist/server/multipart.js.map +1 -0
- package/dist/server/node-outcome-hook.d.ts +20 -0
- package/dist/server/node-outcome-hook.d.ts.map +1 -1
- package/dist/server/node-outcome-hook.js +15 -6
- package/dist/server/node-outcome-hook.js.map +1 -1
- package/dist/server/not-found-answer.d.ts +40 -0
- package/dist/server/not-found-answer.d.ts.map +1 -0
- package/dist/server/not-found-answer.js +56 -0
- package/dist/server/not-found-answer.js.map +1 -0
- package/dist/server/not-found.d.ts +23 -0
- package/dist/server/not-found.d.ts.map +1 -0
- package/dist/server/not-found.js +81 -0
- package/dist/server/not-found.js.map +1 -0
- package/dist/server/plugin.d.ts +26 -1
- package/dist/server/plugin.d.ts.map +1 -1
- package/dist/server/plugin.js.map +1 -1
- package/dist/server/proto-guard.d.ts +18 -5
- package/dist/server/proto-guard.d.ts.map +1 -1
- package/dist/server/proto-guard.js +114 -9
- package/dist/server/proto-guard.js.map +1 -1
- package/dist/server/query.d.ts +7 -0
- package/dist/server/query.d.ts.map +1 -1
- package/dist/server/query.js +47 -0
- package/dist/server/query.js.map +1 -1
- package/dist/server/registry.d.ts +13 -2
- package/dist/server/registry.d.ts.map +1 -1
- package/dist/server/request-context.d.ts +11 -0
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +33 -19
- package/dist/server/request-context.js.map +1 -1
- package/dist/server/request-lineage.d.ts +8 -0
- package/dist/server/request-lineage.d.ts.map +1 -0
- package/dist/server/request-lineage.js +14 -0
- package/dist/server/request-lineage.js.map +1 -0
- package/dist/server/request-target.d.ts +31 -0
- package/dist/server/request-target.d.ts.map +1 -0
- package/dist/server/request-target.js +44 -0
- package/dist/server/request-target.js.map +1 -0
- package/dist/server/respond.d.ts +1 -1
- package/dist/server/respond.d.ts.map +1 -1
- package/dist/server/respond.js +16 -4
- package/dist/server/respond.js.map +1 -1
- package/dist/server/response-contract-lane.d.ts +19 -1
- package/dist/server/response-contract-lane.d.ts.map +1 -1
- package/dist/server/response-contract-lane.js +59 -14
- package/dist/server/response-contract-lane.js.map +1 -1
- package/dist/server/response-observer-runtime.d.ts +9 -5
- package/dist/server/response-observer-runtime.d.ts.map +1 -1
- package/dist/server/response-observer-runtime.js +10 -6
- package/dist/server/response-observer-runtime.js.map +1 -1
- package/dist/server/runtime-core.d.ts +2 -0
- package/dist/server/runtime-core.d.ts.map +1 -1
- package/dist/server/runtime-core.js.map +1 -1
- package/dist/server/server-types.d.ts +55 -3
- package/dist/server/server-types.d.ts.map +1 -1
- package/dist/server/server.d.ts +194 -19
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +1342 -274
- package/dist/server/server.js.map +1 -1
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js +10 -7
- package/dist/server/sse.js.map +1 -1
- package/dist/server/static-headers.d.ts +3 -0
- package/dist/server/static-headers.d.ts.map +1 -1
- package/dist/server/static-headers.js +19 -1
- package/dist/server/static-headers.js.map +1 -1
- package/dist/server/transport-lane.d.ts +8 -0
- package/dist/server/transport-lane.d.ts.map +1 -1
- package/dist/server/transport-lane.js +9 -8
- package/dist/server/transport-lane.js.map +1 -1
- package/dist/server/validation.d.ts.map +1 -1
- package/dist/server/validation.js +5 -1
- package/dist/server/validation.js.map +1 -1
- package/dist/server/websocket.d.ts +10 -3
- package/dist/server/websocket.d.ts.map +1 -1
- package/dist/server/websocket.js +7 -4
- package/dist/server/websocket.js.map +1 -1
- package/dist/server/ws-bun.d.ts +2 -0
- package/dist/server/ws-bun.d.ts.map +1 -1
- package/dist/server/ws-bun.js +6 -3
- package/dist/server/ws-bun.js.map +1 -1
- package/dist/server/ws-hook.d.ts +2 -1
- package/dist/server/ws-hook.d.ts.map +1 -1
- package/dist/server.d.ts +8 -5
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5 -2
- package/dist/server.js.map +1 -1
- package/dist/single-copy-register.js +5 -0
- package/dist/single-copy-register.js.map +1 -1
- package/dist/single-copy.d.ts +46 -3
- package/dist/single-copy.d.ts.map +1 -1
- package/dist/single-copy.js +125 -12
- package/dist/single-copy.js.map +1 -1
- package/dist/tool-contract.d.ts +23 -0
- package/dist/tool-contract.d.ts.map +1 -1
- package/dist/tool-contract.js +37 -3
- package/dist/tool-contract.js.map +1 -1
- package/dist/transport-codec.d.ts.map +1 -1
- package/dist/transport-codec.js +2 -1
- package/dist/transport-codec.js.map +1 -1
- package/package.json +27 -2
- package/src/assurance.ts +52 -2
- package/src/capabilities.ts +81 -22
- package/src/diff.ts +54 -7
- package/src/durable-adapters.ts +20 -3
- package/src/durable-effect.ts +10 -3
- package/src/edge-kit.ts +7 -0
- package/src/effect-lifecycle.ts +5 -1
- package/src/effect-scope.ts +2 -1
- package/src/errors.ts +3 -0
- package/src/evidence.ts +302 -12
- package/src/idempotency.ts +80 -9
- package/src/index.ts +41 -3
- package/src/internal/code-unit-order.ts +8 -0
- package/src/internal/durable-saga-protocol.ts +2 -0
- package/src/internal/route-catalog.ts +19 -18
- package/src/internal/route-compiler.ts +62 -13
- package/src/internal/route-execution.ts +13 -3
- package/src/internal/route-lanes.ts +37 -28
- package/src/internal/route-program.ts +434 -20
- package/src/ledger.ts +11 -5
- package/src/manifest.ts +52 -46
- package/src/mount.ts +62 -0
- package/src/reflection.ts +84 -1
- package/src/response-observer.ts +1 -0
- package/src/router/overlap.ts +258 -0
- package/src/router/pattern.ts +349 -25
- package/src/router/router.ts +76 -51
- package/src/server/auth.ts +75 -0
- package/src/server/bare-error-lane.ts +12 -11
- package/src/server/body-lane.ts +46 -6
- package/src/server/body-parser.ts +241 -0
- package/src/server/body.ts +82 -9
- package/src/server/client-ip.ts +9 -0
- package/src/server/context.ts +219 -12
- package/src/server/contract.ts +54 -9
- package/src/server/cookies.ts +34 -2
- package/src/server/core-copies.ts +21 -0
- package/src/server/edge.ts +2 -0
- package/src/server/http.ts +34 -0
- package/src/server/idempotency-lane.ts +147 -72
- package/src/server/install.ts +6 -0
- package/src/server/methods.ts +143 -0
- package/src/server/multipart.ts +424 -0
- package/src/server/node-outcome-hook.ts +40 -7
- package/src/server/not-found-answer.ts +109 -0
- package/src/server/not-found.ts +121 -0
- package/src/server/plugin.ts +45 -1
- package/src/server/proto-guard.ts +128 -9
- package/src/server/query.ts +49 -0
- package/src/server/registry.ts +17 -2
- package/src/server/request-context.ts +44 -16
- package/src/server/request-lineage.ts +15 -0
- package/src/server/request-target.ts +46 -0
- package/src/server/respond.ts +14 -3
- package/src/server/response-contract-lane.ts +97 -16
- package/src/server/response-observer-runtime.ts +37 -8
- package/src/server/runtime-core.ts +2 -0
- package/src/server/server-types.ts +61 -2
- package/src/server/server.ts +1798 -355
- package/src/server/sse.ts +10 -8
- package/src/server/static-headers.ts +22 -1
- package/src/server/transport-lane.ts +17 -9
- package/src/server/validation.ts +7 -1
- package/src/server/websocket.ts +23 -9
- package/src/server/ws-bun.ts +8 -3
- package/src/server/ws-hook.ts +2 -1
- package/src/server.ts +39 -2
- package/src/single-copy-register.ts +5 -0
- package/src/single-copy.ts +160 -12
- package/src/tool-contract.ts +66 -3
- package/src/transport-codec.ts +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effect-scope.d.ts","sourceRoot":"","sources":["../src/effect-scope.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"effect-scope.d.ts","sourceRoot":"","sources":["../src/effect-scope.ts"],"names":[],"mappings":"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"}
|
package/dist/effect-scope.js
CHANGED
|
@@ -20,7 +20,7 @@ function codeFor(configured, error, began) {
|
|
|
20
20
|
const code = typeof configured === "function"
|
|
21
21
|
? configured(error, began)
|
|
22
22
|
: (configured ?? (began ? "execution_failed" : "admission_failed"));
|
|
23
|
-
if (!ERROR_CODE.test(code))
|
|
23
|
+
if (typeof code !== "string" || !ERROR_CODE.test(code))
|
|
24
24
|
throw new TypeError("effect errorCode is invalid");
|
|
25
25
|
return code;
|
|
26
26
|
}
|
package/dist/effect-scope.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effect-scope.js","sourceRoot":"","sources":["../src/effect-scope.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIL,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAuB,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE1E,MAAM,UAAU,GAAG,0BAA0B,CAAA;AA2E7C,IAAI,WAAoC,CAAA;AACxC,SAAS,aAAa,CAAC,MAAoB;IACzC,WAAW,KAAK,IAAI,eAAe,EAAE,CAAC,MAAM,CAAA;IAC5C,OAAO,MAAM,IAAI,WAAW,CAAA;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,OAAO,CACd,UAAuD,EACvD,KAAc,EACd,KAAc;IAEd,MAAM,IAAI,GACR,OAAO,UAAU,KAAK,UAAU;QAC9B,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACvE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"effect-scope.js","sourceRoot":"","sources":["../src/effect-scope.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export declare class FrameworkError extends Error {
|
|
|
8
8
|
constructor(code: string, message: string);
|
|
9
9
|
}
|
|
10
10
|
/** Stable codes for boot-time (L2) route configuration failures. */
|
|
11
|
-
export type RouteConfigErrorCode = "DUPLICATE_ROUTE" | "DUPLICATE_PARAM" | "PARAM_NAME_CONFLICT" | "INVALID_PATH" | "INVALID_PARAM_NAME" | "WILDCARD_NOT_LAST" | "INVALID_METHOD" | "INVALID_ASSURANCE" | "INVALID_IDEMPOTENCY" | "INVALID_WS_SEND_VALIDATION" | "INVALID_BODY_LIMIT";
|
|
11
|
+
export type RouteConfigErrorCode = "DUPLICATE_ROUTE" | "DUPLICATE_PARAM" | "PARAM_NAME_CONFLICT" | "INVALID_PATH" | "INVALID_PARAM_NAME" | "WILDCARD_NOT_LAST" | "INVALID_METHOD" | "INVALID_ASSURANCE" | "INVALID_IDEMPOTENCY" | "INVALID_WS_SEND_VALIDATION" | "INVALID_WIRE" | "INVALID_VALIDATION_ORDER" | "INVALID_BODY_LIMIT" | "PLUGIN_RECONFIGURED";
|
|
12
12
|
/**
|
|
13
13
|
* Thrown at route registration when a route is misconfigured. This is the
|
|
14
14
|
* boot-time rejection layer: loud and early,
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBAET,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED,oEAAoE;AACpE,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,GACrB,cAAc,GACd,oBAAoB,GACpB,mBAAmB,GACnB,gBAAgB,GAChB,mBAAmB,GACnB,qBAAqB,GACrB,4BAA4B,GAC5B,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBAET,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED,oEAAoE;AACpE,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,iBAAiB,GACjB,qBAAqB,GACrB,cAAc,GACd,oBAAoB,GACpB,mBAAmB,GACnB,gBAAgB,GAChB,mBAAmB,GACnB,qBAAqB,GACrB,4BAA4B,GAC5B,cAAc,GACd,0BAA0B,GAC1B,oBAAoB,GACpB,qBAAqB,CAAA;AAEzB;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAElD,SAAiB,IAAI,EAAE,oBAAoB,CAAA;gBAE/B,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAIxD"}
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAQ;IAErB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IAC9B,IAAI,CAAQ;IAErB,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC,CAAA;QACvC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;CACF;AAmBD;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAIlD,YAAY,IAA0B,EAAE,OAAe;QACrD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAA;IAChC,CAAC;CACF"}
|
package/dist/evidence.d.ts
CHANGED
|
@@ -8,15 +8,18 @@
|
|
|
8
8
|
import type { AssuranceEvidence, AssuranceFinding, AssuranceReport } from "./assurance.js";
|
|
9
9
|
import type { AssuredCapabilityRoute, CapabilityAssuranceReport, CapabilityEvidence, CapabilityFinding } from "./capabilities.js";
|
|
10
10
|
import type { ResponseClassification } from "./classification.js";
|
|
11
|
-
import { type JsonSchema, type ReflectedRoute, type ReflectedSchemaField } from "./reflection.js";
|
|
11
|
+
import { type JsonSchema, type ReflectedMount, type ReflectedRoute, type ReflectedSchemaField } from "./reflection.js";
|
|
12
12
|
export interface ProjectEvidenceSchemaPart {
|
|
13
13
|
readonly jsonSchema?: JsonSchema;
|
|
14
14
|
readonly fields?: readonly ReflectedSchemaField[];
|
|
15
|
+
/** The media types a body schema reads through a parser of its own. */
|
|
16
|
+
readonly mediaTypes?: readonly string[];
|
|
15
17
|
}
|
|
16
18
|
export interface ProjectEvidenceSchema {
|
|
17
19
|
readonly bodyLimit?: number | "unlimited";
|
|
18
20
|
readonly bodyLimitReason?: string;
|
|
19
21
|
readonly headers?: ProjectEvidenceSchemaPart;
|
|
22
|
+
readonly cookies?: ProjectEvidenceSchemaPart;
|
|
20
23
|
readonly body?: ProjectEvidenceSchemaPart;
|
|
21
24
|
readonly query?: ProjectEvidenceSchemaPart;
|
|
22
25
|
readonly params?: ProjectEvidenceSchemaPart;
|
|
@@ -33,6 +36,7 @@ export interface ProjectEvidenceRoute {
|
|
|
33
36
|
readonly method: string;
|
|
34
37
|
readonly path: string;
|
|
35
38
|
readonly schema?: ProjectEvidenceSchema;
|
|
39
|
+
readonly responseContract?: "warn" | "enforce";
|
|
36
40
|
readonly assurance?: readonly AssuranceEvidence[];
|
|
37
41
|
readonly capabilities?: readonly string[];
|
|
38
42
|
readonly family?: boolean;
|
|
@@ -71,15 +75,46 @@ export interface ProjectEvidenceCapabilities {
|
|
|
71
75
|
export interface ProjectEvidenceSnapshot {
|
|
72
76
|
readonly version: 1;
|
|
73
77
|
readonly routes: readonly ProjectEvidenceRoute[];
|
|
78
|
+
/** Mounted children whose routes are not in `routes`, present when there is at least one. */
|
|
79
|
+
readonly mounts?: readonly ReflectedMount[];
|
|
74
80
|
readonly assurance?: ProjectEvidenceAssurance;
|
|
75
81
|
readonly capabilities?: ProjectEvidenceCapabilities;
|
|
76
82
|
}
|
|
77
83
|
export interface ProjectEvidenceOptions {
|
|
78
84
|
readonly assurance?: AssuranceReport;
|
|
79
85
|
readonly capabilities?: CapabilityAssuranceReport;
|
|
86
|
+
/**
|
|
87
|
+
* An existing reflection pass. Supplying it lets several offline projections share one pass
|
|
88
|
+
* without asking the runtime source for `.routes()` again. Validators are consumed only while
|
|
89
|
+
* building the token-only snapshot and never cross this seam.
|
|
90
|
+
*/
|
|
91
|
+
readonly routes?: readonly ReflectedRoute[];
|
|
80
92
|
/** Optional static source locations keyed by `${METHOD}\n${path}`. */
|
|
81
93
|
readonly sourceLocations?: ReadonlyMap<string, readonly ProjectEvidenceSourceLocation[]>;
|
|
94
|
+
/** An existing mount reflection, like `routes`. Default: `reflectMounts(source)`. */
|
|
95
|
+
readonly mounts?: readonly ReflectedMount[];
|
|
82
96
|
}
|
|
97
|
+
/** One token-only evidence snapshot in a composed application surface. */
|
|
98
|
+
export interface ProjectEvidenceCompositionPart {
|
|
99
|
+
readonly evidence: ProjectEvidenceSnapshot;
|
|
100
|
+
/** Public pathname prefix to add when the child receives a stripped mount request. */
|
|
101
|
+
readonly pathPrefix?: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Compose page and mounted-app evidence into one deterministic snapshot.
|
|
105
|
+
*
|
|
106
|
+
* This is an offline operation. It carries route contracts, assurance/capability tokens, and source
|
|
107
|
+
* locations only; it never invokes handlers or copies request/business data. A duplicate public
|
|
108
|
+
* method+path or a report that no longer describes a composed route is rejected rather than silently
|
|
109
|
+
* dropping one side of the trust boundary.
|
|
110
|
+
*/
|
|
111
|
+
export declare function composeProjectEvidence(parts: readonly ProjectEvidenceCompositionPart[]): ProjectEvidenceSnapshot;
|
|
112
|
+
/**
|
|
113
|
+
* Adapt the canonical token-only snapshot to the runtime-reflection shape used by projections.
|
|
114
|
+
* The returned schemas deliberately have no `standard` validator: this adapter is for offline
|
|
115
|
+
* contract views, not request validation or mock generation.
|
|
116
|
+
*/
|
|
117
|
+
export declare function reflectedRoutesFromEvidence(evidence: ProjectEvidenceSnapshot): readonly ReflectedRoute[];
|
|
83
118
|
/** Build the canonical snapshot from reflection and already-evaluated offline reports. */
|
|
84
119
|
export declare function snapshotProjectEvidence(source: unknown, options?: ProjectEvidenceOptions): ProjectEvidenceSnapshot;
|
|
85
120
|
/** Stable JSON for logs, MCP, generated artifacts, and snapshot tests. */
|
package/dist/evidence.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC1F,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC1F,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAGjE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAI1B,MAAM,iBAAiB,CAAA;AAExB,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACjD,uEAAuE;IACvE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IACzC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAA;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,yBAAyB,CAAA;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,yBAAyB,CAAA;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAA;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAAA;IACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAA;CACzC;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IACvC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAA;CAC3D;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;IAC/C,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,6BAA6B,EAAE,CAAA;IACzD,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAA;CAC/C;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAChD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,8BAA8B,EAAE,CAAA;IAC1D,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAChD;AAED,+FAA+F;AAC/F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,oBAAoB,EAAE,CAAA;IAChD,6FAA6F;IAC7F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,QAAQ,CAAC,SAAS,CAAC,EAAE,wBAAwB,CAAA;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,2BAA2B,CAAA;CACpD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAA;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,yBAAyB,CAAA;IACjD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IAC3C,sEAAsE;IACtE,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,6BAA6B,EAAE,CAAC,CAAA;IACxF,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;CAC5C;AAED,0EAA0E;AAC1E,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAA;IAC1C,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAwQD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,8BAA8B,EAAE,GAC/C,uBAAuB,CAoEzB;AA4CD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,uBAAuB,GAChC,SAAS,cAAc,EAAE,CAgB3B;AAED,0FAA0F;AAC1F,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,EACf,OAAO,GAAE,sBAA2B,GACnC,uBAAuB,CAmBzB;AAoCD,0EAA0E;AAC1E,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,CAElF;AAED,sFAAsF;AACtF,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAI9F"}
|
package/dist/evidence.js
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
* route contracts, assurance/capability decisions, and source locations only; validators, handlers,
|
|
6
6
|
* request bodies, secrets, and other runtime payloads never cross this interface.
|
|
7
7
|
*/
|
|
8
|
+
import { codeUnitOrder } from "./internal/code-unit-order.js";
|
|
8
9
|
import { evidenceProvenance } from "./internal/route-assurance.js";
|
|
9
|
-
import { reflectRoutes, } from "./reflection.js";
|
|
10
|
+
import { reflectMounts, reflectRoutes, } from "./reflection.js";
|
|
10
11
|
const recordOf = (value) => value !== null && typeof value === "object" && !Array.isArray(value)
|
|
11
12
|
? value
|
|
12
13
|
: undefined;
|
|
@@ -16,6 +17,9 @@ function schemaPart(value) {
|
|
|
16
17
|
return Object.freeze({
|
|
17
18
|
...(value.jsonSchema !== undefined ? { jsonSchema: value.jsonSchema } : {}),
|
|
18
19
|
...(value.fields !== undefined ? { fields: Object.freeze([...value.fields]) } : {}),
|
|
20
|
+
...(value.mediaTypes !== undefined
|
|
21
|
+
? { mediaTypes: Object.freeze([...value.mediaTypes].sort()) }
|
|
22
|
+
: {}),
|
|
19
23
|
});
|
|
20
24
|
}
|
|
21
25
|
function schemaOf(route) {
|
|
@@ -23,6 +27,7 @@ function schemaOf(route) {
|
|
|
23
27
|
if (source === undefined)
|
|
24
28
|
return undefined;
|
|
25
29
|
const headers = schemaPart(source.headers);
|
|
30
|
+
const cookies = schemaPart(source.cookies);
|
|
26
31
|
const body = schemaPart(source.body);
|
|
27
32
|
const query = schemaPart(source.query);
|
|
28
33
|
const params = schemaPart(source.params);
|
|
@@ -38,6 +43,7 @@ function schemaOf(route) {
|
|
|
38
43
|
...(source.bodyLimit !== undefined ? { bodyLimit: source.bodyLimit } : {}),
|
|
39
44
|
...(source.bodyLimitReason !== undefined ? { bodyLimitReason: source.bodyLimitReason } : {}),
|
|
40
45
|
...(headers !== undefined ? { headers } : {}),
|
|
46
|
+
...(cookies !== undefined ? { cookies } : {}),
|
|
41
47
|
...(body !== undefined ? { body } : {}),
|
|
42
48
|
...(query !== undefined ? { query } : {}),
|
|
43
49
|
...(params !== undefined ? { params } : {}),
|
|
@@ -55,22 +61,23 @@ function assuranceEvidenceOf(values) {
|
|
|
55
61
|
source: item.source,
|
|
56
62
|
provenance: evidenceProvenance(item),
|
|
57
63
|
}))
|
|
58
|
-
.sort((a, b) => a.id
|
|
64
|
+
.sort((a, b) => codeUnitOrder(a.id, b.id) || codeUnitOrder(a.source, b.source)));
|
|
59
65
|
}
|
|
60
66
|
function capabilityEvidenceOf(values) {
|
|
61
67
|
return Object.freeze([...values]
|
|
62
68
|
.map((item) => Object.freeze({ id: item.id, kind: item.kind, source: item.source }))
|
|
63
|
-
.sort((a, b) => a.id
|
|
64
|
-
a.kind
|
|
65
|
-
a.source
|
|
69
|
+
.sort((a, b) => codeUnitOrder(a.id, b.id) ||
|
|
70
|
+
codeUnitOrder(a.kind, b.kind) ||
|
|
71
|
+
codeUnitOrder(a.source, b.source)));
|
|
66
72
|
}
|
|
67
|
-
const sortByRoute = (values) => Object.freeze([...values].sort((a, b) => a.path
|
|
73
|
+
const sortByRoute = (values) => Object.freeze([...values].sort((a, b) => codeUnitOrder(a.path, b.path) || codeUnitOrder(a.method, b.method)));
|
|
68
74
|
function evidenceRouteOf(route, locations) {
|
|
69
75
|
const schema = schemaOf(route);
|
|
70
76
|
return Object.freeze({
|
|
71
77
|
method: route.method.toUpperCase(),
|
|
72
78
|
path: route.path,
|
|
73
79
|
...(schema !== undefined ? { schema } : {}),
|
|
80
|
+
...(route.responseContract === undefined ? {} : { responseContract: route.responseContract }),
|
|
74
81
|
...(route.assurance !== undefined ? { assurance: assuranceEvidenceOf(route.assurance) } : {}),
|
|
75
82
|
...(route.capabilities !== undefined
|
|
76
83
|
? { capabilities: Object.freeze([...route.capabilities].sort()) }
|
|
@@ -96,9 +103,9 @@ function assuranceOf(report) {
|
|
|
96
103
|
missing: Object.freeze([...route.missing].sort()),
|
|
97
104
|
forbidden: Object.freeze([...route.forbidden].sort()),
|
|
98
105
|
}))),
|
|
99
|
-
findings: Object.freeze([...report.findings].sort((a, b) => a.path
|
|
100
|
-
a.method
|
|
101
|
-
a.code
|
|
106
|
+
findings: Object.freeze([...report.findings].sort((a, b) => codeUnitOrder(a.path, b.path) ||
|
|
107
|
+
codeUnitOrder(a.method, b.method) ||
|
|
108
|
+
codeUnitOrder(a.code, b.code))),
|
|
102
109
|
});
|
|
103
110
|
}
|
|
104
111
|
function capabilitiesOf(report) {
|
|
@@ -115,9 +122,199 @@ function capabilitiesOf(report) {
|
|
|
115
122
|
covered: route.covered,
|
|
116
123
|
...(route.classification !== undefined ? { classification: route.classification } : {}),
|
|
117
124
|
}))),
|
|
118
|
-
findings: Object.freeze([...report.findings].sort((a, b) => a.path
|
|
119
|
-
a.method
|
|
120
|
-
a.code
|
|
125
|
+
findings: Object.freeze([...report.findings].sort((a, b) => codeUnitOrder(a.path, b.path) ||
|
|
126
|
+
codeUnitOrder(a.method, b.method) ||
|
|
127
|
+
codeUnitOrder(a.code, b.code))),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
function trimTrailingSlashes(path) {
|
|
131
|
+
// Index-scan instead of `/\/+$/`: path prefixes can be library input, and the
|
|
132
|
+
// unanchored-start trailing-run replacement can backtrack quadratically.
|
|
133
|
+
let end = path.length;
|
|
134
|
+
while (end > 0 && path.charCodeAt(end - 1) === 47 /* '/' */)
|
|
135
|
+
end--;
|
|
136
|
+
return path.slice(0, end);
|
|
137
|
+
}
|
|
138
|
+
const composedPath = (prefix, path) => {
|
|
139
|
+
if (path === "*")
|
|
140
|
+
return path;
|
|
141
|
+
if (!path.startsWith("/"))
|
|
142
|
+
throw new TypeError(`project evidence: route path must start with "/": ${path}`);
|
|
143
|
+
if (prefix === "")
|
|
144
|
+
return path;
|
|
145
|
+
if (!prefix.startsWith("/")) {
|
|
146
|
+
throw new TypeError(`project evidence: path prefix must start with "/": ${prefix}`);
|
|
147
|
+
}
|
|
148
|
+
const normalized = prefix === "/" ? "" : trimTrailingSlashes(prefix);
|
|
149
|
+
return normalized === "" ? path : path === "/" ? normalized : `${normalized}${path}`;
|
|
150
|
+
};
|
|
151
|
+
function remapEvidenceSnapshot(evidence, pathPrefix) {
|
|
152
|
+
if (evidence.version !== 1)
|
|
153
|
+
throw new Error("project evidence: unsupported snapshot version");
|
|
154
|
+
const route = (method, path) => ({
|
|
155
|
+
method: method.toUpperCase(),
|
|
156
|
+
path: composedPath(pathPrefix, path),
|
|
157
|
+
});
|
|
158
|
+
const routes = evidence.routes.map((item) => {
|
|
159
|
+
const key = route(item.method, item.path);
|
|
160
|
+
return Object.freeze({ ...item, ...key });
|
|
161
|
+
});
|
|
162
|
+
const mounts = evidence.mounts?.map((item) => Object.freeze({ ...item, path: composedPath(pathPrefix, item.path) }));
|
|
163
|
+
const assurance = evidence.assurance === undefined
|
|
164
|
+
? undefined
|
|
165
|
+
: Object.freeze({
|
|
166
|
+
ok: evidence.assurance.ok,
|
|
167
|
+
routes: Object.freeze(evidence.assurance.routes.map((item) => Object.freeze({ ...item, ...route(item.method, item.path) }))),
|
|
168
|
+
findings: Object.freeze(evidence.assurance.findings.map((item) => Object.freeze({ ...item, ...route(item.method, item.path) }))),
|
|
169
|
+
});
|
|
170
|
+
const capabilities = evidence.capabilities === undefined
|
|
171
|
+
? undefined
|
|
172
|
+
: Object.freeze({
|
|
173
|
+
ok: evidence.capabilities.ok,
|
|
174
|
+
routes: Object.freeze(evidence.capabilities.routes.map((item) => Object.freeze({ ...item, ...route(item.method, item.path) }))),
|
|
175
|
+
findings: Object.freeze(evidence.capabilities.findings.map((item) => Object.freeze({ ...item, ...route(item.method, item.path) }))),
|
|
176
|
+
});
|
|
177
|
+
return Object.freeze({
|
|
178
|
+
version: 1,
|
|
179
|
+
routes: Object.freeze(routes),
|
|
180
|
+
...(mounts === undefined ? {} : { mounts: Object.freeze(mounts) }),
|
|
181
|
+
...(assurance === undefined ? {} : { assurance }),
|
|
182
|
+
...(capabilities === undefined ? {} : { capabilities }),
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
function routeKeyForEvidence(method, path) {
|
|
186
|
+
return `${method.toUpperCase()}\n${path}`;
|
|
187
|
+
}
|
|
188
|
+
function validateComposedReportRoutes(report, routeKeys, kind) {
|
|
189
|
+
for (const route of report.routes) {
|
|
190
|
+
if (!routeKeys.has(routeKeyForEvidence(route.method, route.path))) {
|
|
191
|
+
throw new Error(`project evidence: ${kind} route ${route.method} ${route.path} is not present in the composed route set`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Compose page and mounted-app evidence into one deterministic snapshot.
|
|
197
|
+
*
|
|
198
|
+
* This is an offline operation. It carries route contracts, assurance/capability tokens, and source
|
|
199
|
+
* locations only; it never invokes handlers or copies request/business data. A duplicate public
|
|
200
|
+
* method+path or a report that no longer describes a composed route is rejected rather than silently
|
|
201
|
+
* dropping one side of the trust boundary.
|
|
202
|
+
*/
|
|
203
|
+
export function composeProjectEvidence(parts) {
|
|
204
|
+
const routes = [];
|
|
205
|
+
const routeKeys = new Set();
|
|
206
|
+
const mounts = [];
|
|
207
|
+
const assuranceReports = [];
|
|
208
|
+
const capabilityReports = [];
|
|
209
|
+
for (const part of parts) {
|
|
210
|
+
const prefix = part.pathPrefix ?? "";
|
|
211
|
+
const mapped = remapEvidenceSnapshot(part.evidence, prefix);
|
|
212
|
+
for (const route of mapped.routes) {
|
|
213
|
+
const key = routeKeyForEvidence(route.method, route.path);
|
|
214
|
+
if (routeKeys.has(key)) {
|
|
215
|
+
throw new Error(`project evidence: duplicate composed route ${route.method} ${route.path}`);
|
|
216
|
+
}
|
|
217
|
+
routeKeys.add(key);
|
|
218
|
+
routes.push(route);
|
|
219
|
+
}
|
|
220
|
+
mounts.push(...(mapped.mounts ?? []));
|
|
221
|
+
if (mapped.assurance !== undefined)
|
|
222
|
+
assuranceReports.push(mapped.assurance);
|
|
223
|
+
if (mapped.capabilities !== undefined)
|
|
224
|
+
capabilityReports.push(mapped.capabilities);
|
|
225
|
+
}
|
|
226
|
+
const assurance = assuranceReports.length === 0
|
|
227
|
+
? undefined
|
|
228
|
+
: Object.freeze({
|
|
229
|
+
ok: assuranceReports.every((report) => report.ok),
|
|
230
|
+
routes: sortByRoute(assuranceReports.flatMap((report) => report.routes)),
|
|
231
|
+
findings: Object.freeze(assuranceReports
|
|
232
|
+
.flatMap((report) => report.findings)
|
|
233
|
+
.sort((a, b) => codeUnitOrder(a.path, b.path) ||
|
|
234
|
+
codeUnitOrder(a.method, b.method) ||
|
|
235
|
+
codeUnitOrder(a.code, b.code))),
|
|
236
|
+
});
|
|
237
|
+
const capabilities = capabilityReports.length === 0
|
|
238
|
+
? undefined
|
|
239
|
+
: Object.freeze({
|
|
240
|
+
ok: capabilityReports.every((report) => report.ok),
|
|
241
|
+
routes: sortByRoute(capabilityReports.flatMap((report) => report.routes)),
|
|
242
|
+
findings: Object.freeze(capabilityReports
|
|
243
|
+
.flatMap((report) => report.findings)
|
|
244
|
+
.sort((a, b) => codeUnitOrder(a.path, b.path) ||
|
|
245
|
+
codeUnitOrder(a.method, b.method) ||
|
|
246
|
+
codeUnitOrder(a.code, b.code))),
|
|
247
|
+
});
|
|
248
|
+
if (assurance !== undefined)
|
|
249
|
+
validateComposedReportRoutes(assurance, routeKeys, "assurance");
|
|
250
|
+
if (capabilities !== undefined)
|
|
251
|
+
validateComposedReportRoutes(capabilities, routeKeys, "capabilities");
|
|
252
|
+
return Object.freeze({
|
|
253
|
+
version: 1,
|
|
254
|
+
routes: sortByRoute(routes),
|
|
255
|
+
...mountsPart(mounts),
|
|
256
|
+
...(assurance === undefined ? {} : { assurance }),
|
|
257
|
+
...(capabilities === undefined ? {} : { capabilities }),
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
function schemaPartToReflection(value) {
|
|
261
|
+
return value === undefined
|
|
262
|
+
? undefined
|
|
263
|
+
: {
|
|
264
|
+
standard: undefined,
|
|
265
|
+
jsonSchema: value.jsonSchema,
|
|
266
|
+
fields: value.fields,
|
|
267
|
+
...(value.mediaTypes !== undefined ? { mediaTypes: value.mediaTypes } : {}),
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
function schemaFromEvidence(schema) {
|
|
271
|
+
if (schema === undefined)
|
|
272
|
+
return undefined;
|
|
273
|
+
const errors = Object.fromEntries(Object.entries(schema.errors ?? {}).map(([status, value]) => [
|
|
274
|
+
status,
|
|
275
|
+
schemaPartToReflection(value),
|
|
276
|
+
]));
|
|
277
|
+
const headers = schemaPartToReflection(schema.headers);
|
|
278
|
+
const cookies = schemaPartToReflection(schema.cookies);
|
|
279
|
+
const body = schemaPartToReflection(schema.body);
|
|
280
|
+
const query = schemaPartToReflection(schema.query);
|
|
281
|
+
const params = schemaPartToReflection(schema.params);
|
|
282
|
+
const response = schemaPartToReflection(schema.response);
|
|
283
|
+
const sse = schemaPartToReflection(schema.sse);
|
|
284
|
+
return {
|
|
285
|
+
...(schema.bodyLimit !== undefined ? { bodyLimit: schema.bodyLimit } : {}),
|
|
286
|
+
...(schema.bodyLimitReason !== undefined ? { bodyLimitReason: schema.bodyLimitReason } : {}),
|
|
287
|
+
...(headers !== undefined ? { headers } : {}),
|
|
288
|
+
...(cookies !== undefined ? { cookies } : {}),
|
|
289
|
+
...(body !== undefined ? { body } : {}),
|
|
290
|
+
...(query !== undefined ? { query } : {}),
|
|
291
|
+
...(params !== undefined ? { params } : {}),
|
|
292
|
+
...(response !== undefined ? { response } : {}),
|
|
293
|
+
...(Object.keys(errors).length > 0 ? { errors } : {}),
|
|
294
|
+
...(sse !== undefined ? { sse } : {}),
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Adapt the canonical token-only snapshot to the runtime-reflection shape used by projections.
|
|
299
|
+
* The returned schemas deliberately have no `standard` validator: this adapter is for offline
|
|
300
|
+
* contract views, not request validation or mock generation.
|
|
301
|
+
*/
|
|
302
|
+
export function reflectedRoutesFromEvidence(evidence) {
|
|
303
|
+
if (evidence.version !== 1)
|
|
304
|
+
throw new Error("project evidence: unsupported snapshot version");
|
|
305
|
+
return evidence.routes.map((route) => {
|
|
306
|
+
const schema = schemaFromEvidence(route.schema);
|
|
307
|
+
return {
|
|
308
|
+
method: route.method,
|
|
309
|
+
path: route.path,
|
|
310
|
+
...(schema !== undefined ? { schema } : {}),
|
|
311
|
+
...(route.responseContract === undefined ? {} : { responseContract: route.responseContract }),
|
|
312
|
+
...(route.assurance !== undefined ? { assurance: route.assurance } : {}),
|
|
313
|
+
...(route.capabilities !== undefined ? { capabilities: route.capabilities } : {}),
|
|
314
|
+
...(route.family === true ? { family: true } : {}),
|
|
315
|
+
...(route.classification !== undefined ? { classification: route.classification } : {}),
|
|
316
|
+
...(route.tool !== undefined ? { tool: route.tool } : {}),
|
|
317
|
+
};
|
|
121
318
|
});
|
|
122
319
|
}
|
|
123
320
|
/** Build the canonical snapshot from reflection and already-evaluated offline reports. */
|
|
@@ -125,17 +322,26 @@ export function snapshotProjectEvidence(source, options = {}) {
|
|
|
125
322
|
const locations = options.sourceLocations;
|
|
126
323
|
const assurance = assuranceOf(options.assurance);
|
|
127
324
|
const capabilities = capabilitiesOf(options.capabilities);
|
|
325
|
+
const reflected = options.routes ?? reflectRoutes(source);
|
|
128
326
|
const routes = sortByRoute(
|
|
129
327
|
// Importantly, this is the only reflection pass for this snapshot. Every projection can consume
|
|
130
328
|
// the result instead of independently asking the app for `.routes()` and re-shaping schemas.
|
|
131
|
-
|
|
329
|
+
reflected.map((route) => evidenceRouteOf(route, locations?.get(keyOf(route.method, route.path)))));
|
|
132
330
|
return Object.freeze({
|
|
133
331
|
version: 1,
|
|
134
332
|
routes,
|
|
333
|
+
...mountsPart(options.mounts ?? reflectMounts(source)),
|
|
135
334
|
...(assurance !== undefined ? { assurance } : {}),
|
|
136
335
|
...(capabilities !== undefined ? { capabilities } : {}),
|
|
137
336
|
});
|
|
138
337
|
}
|
|
338
|
+
/** The snapshot's `mounts` field, sorted, and absent when empty so a mount-free app's snapshot (and its
|
|
339
|
+
* manifest hash) is unchanged. */
|
|
340
|
+
const mountsPart = (mounts) => mounts.length === 0
|
|
341
|
+
? {}
|
|
342
|
+
: {
|
|
343
|
+
mounts: Object.freeze([...mounts].sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0))),
|
|
344
|
+
};
|
|
139
345
|
function canonicalValue(value) {
|
|
140
346
|
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
141
347
|
return JSON.stringify(value);
|
package/dist/evidence.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
|
package/dist/idempotency.d.ts
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
export type IdempotencyScope = "request" | "durable";
|
|
14
14
|
/** Default retention for a stored idempotent response: 24 hours. */
|
|
15
15
|
export declare const DEFAULT_IDEMPOTENCY_TTL_MS = 86400000;
|
|
16
|
+
/** Default lease on a key whose handler is still running, with a store that can renew it: 60 seconds. */
|
|
17
|
+
export declare const DEFAULT_IDEMPOTENCY_PENDING_TTL_MS = 60000;
|
|
16
18
|
/** Canonical request header carrying the client-chosen idempotency key. */
|
|
17
19
|
export declare const DEFAULT_IDEMPOTENCY_HEADER = "idempotency-key";
|
|
18
20
|
/** Header stamped on a replayed response so clients/proxies can tell a replay from a fresh run. */
|
|
@@ -50,7 +52,14 @@ export interface IdempotencyEntryKey {
|
|
|
50
52
|
}
|
|
51
53
|
export interface IdempotencyBeginInput extends IdempotencyEntryKey {
|
|
52
54
|
readonly fingerprint: string;
|
|
55
|
+
/** Retention for the completed response. */
|
|
53
56
|
readonly ttlMs: number;
|
|
57
|
+
/**
|
|
58
|
+
* Lease on a `new` reservation: it lapses after this long unless {@link IdempotencyStore.renew}
|
|
59
|
+
* extends it, and `complete` then keeps the response for `ttlMs`. Passed only to a store with
|
|
60
|
+
* `renew`; when absent, the pending reservation holds the key for `ttlMs`.
|
|
61
|
+
*/
|
|
62
|
+
readonly pendingTtlMs?: number | undefined;
|
|
54
63
|
}
|
|
55
64
|
export interface IdempotencyCompletionInput extends IdempotencyEntryKey {
|
|
56
65
|
/** Opaque ownership token returned by `begin(state:"new")`. */
|
|
@@ -61,6 +70,12 @@ export interface IdempotencyAbandonInput extends IdempotencyEntryKey {
|
|
|
61
70
|
/** Opaque ownership token returned by `begin(state:"new")`. */
|
|
62
71
|
readonly reservation: string;
|
|
63
72
|
}
|
|
73
|
+
export interface IdempotencyRenewInput extends IdempotencyEntryKey {
|
|
74
|
+
/** Opaque ownership token returned by `begin(state:"new")`. */
|
|
75
|
+
readonly reservation: string;
|
|
76
|
+
/** The new lease, from now. */
|
|
77
|
+
readonly ttlMs: number;
|
|
78
|
+
}
|
|
64
79
|
/**
|
|
65
80
|
* Storage seam for idempotent responses. `begin` MUST be atomic: for one key, exactly one concurrent
|
|
66
81
|
* caller sees `new`; the rest see `in-flight` (or `replay` once completed). The in-memory store gets
|
|
@@ -82,6 +97,12 @@ export interface IdempotencyStore {
|
|
|
82
97
|
complete(input: IdempotencyCompletionInput): boolean | Promise<boolean>;
|
|
83
98
|
/** Release only the pending reservation owned by `reservation`. */
|
|
84
99
|
abandon(input: IdempotencyAbandonInput): boolean | Promise<boolean>;
|
|
100
|
+
/**
|
|
101
|
+
* Extend the pending reservation owned by `reservation` to `ttlMs` from now. Returns false when it
|
|
102
|
+
* is gone, lapsed, or completed. The server calls it while the handler runs, so with it a key
|
|
103
|
+
* whose process died frees after `pendingTtlMs` instead of `ttlMs`.
|
|
104
|
+
*/
|
|
105
|
+
renew?(input: IdempotencyRenewInput): boolean | Promise<boolean>;
|
|
85
106
|
}
|
|
86
107
|
/** A key must be a non-empty, bounded, control-char-free token. Fail closed on anything else. */
|
|
87
108
|
export declare function validIdempotencyKey(key: string): boolean;
|
|
@@ -111,6 +132,11 @@ export interface MemoryIdempotencyStoreOptions {
|
|
|
111
132
|
readonly now?: () => number;
|
|
112
133
|
/** Hard memory bound. At capacity new keys fail closed; completed/pending entries are never evicted early. */
|
|
113
134
|
readonly maxEntries?: number;
|
|
135
|
+
/**
|
|
136
|
+
* Bound for one namespace, so a single tenant or principal cannot use up `maxEntries` for the
|
|
137
|
+
* rest: past it, only that namespace's new keys fail closed. Default: no separate bound.
|
|
138
|
+
*/
|
|
139
|
+
readonly maxEntriesPerNamespace?: number;
|
|
114
140
|
}
|
|
115
141
|
/**
|
|
116
142
|
* In-process idempotency store. Reservation is atomic by construction - `begin` never awaits, so the
|
|
@@ -120,17 +146,22 @@ export interface MemoryIdempotencyStoreOptions {
|
|
|
120
146
|
export declare class MemoryIdempotencyStore implements IdempotencyStore {
|
|
121
147
|
readonly durability: "memory";
|
|
122
148
|
private readonly entries;
|
|
149
|
+
private readonly perNamespace;
|
|
123
150
|
private readonly now;
|
|
124
151
|
private readonly maxEntries;
|
|
152
|
+
private readonly maxPerNamespace;
|
|
125
153
|
constructor(options?: MemoryIdempotencyStoreOptions);
|
|
126
154
|
begin(input: IdempotencyBeginInput): IdempotencyBeginResult;
|
|
127
155
|
complete(input: IdempotencyCompletionInput): boolean;
|
|
128
156
|
abandon(input: IdempotencyAbandonInput): boolean;
|
|
157
|
+
renew(input: IdempotencyRenewInput): boolean;
|
|
129
158
|
/** Evict expired entries. Callers may run this on an interval; access-time eviction covers the rest. */
|
|
130
159
|
sweep(): void;
|
|
131
160
|
/** Live entry count (post-sweep semantics are the caller's; this is a raw size for tests/metrics). */
|
|
132
161
|
get size(): number;
|
|
133
162
|
private storageKey;
|
|
163
|
+
private full;
|
|
164
|
+
private drop;
|
|
134
165
|
}
|
|
135
166
|
/** Convenience factory mirroring the other core primitives' `create*` style. */
|
|
136
167
|
export declare function createMemoryIdempotencyStore(options?: MemoryIdempotencyStoreOptions): MemoryIdempotencyStore;
|