@nifrajs/core 2.11.0 → 2.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.
Files changed (180) hide show
  1. package/dist/assurance.d.ts +61 -3
  2. package/dist/assurance.d.ts.map +1 -1
  3. package/dist/assurance.js +152 -5
  4. package/dist/assurance.js.map +1 -1
  5. package/dist/capabilities.d.ts +9 -1
  6. package/dist/capabilities.d.ts.map +1 -1
  7. package/dist/capabilities.js +5 -1
  8. package/dist/capabilities.js.map +1 -1
  9. package/dist/diff.d.ts +2 -1
  10. package/dist/diff.d.ts.map +1 -1
  11. package/dist/diff.js +3 -1
  12. package/dist/diff.js.map +1 -1
  13. package/dist/errors.d.ts +1 -1
  14. package/dist/errors.d.ts.map +1 -1
  15. package/dist/errors.js.map +1 -1
  16. package/dist/evidence.d.ts +89 -0
  17. package/dist/evidence.d.ts.map +1 -0
  18. package/dist/evidence.js +170 -0
  19. package/dist/evidence.js.map +1 -0
  20. package/dist/execution-policy.d.ts +23 -0
  21. package/dist/execution-policy.d.ts.map +1 -0
  22. package/dist/execution-policy.js +28 -0
  23. package/dist/execution-policy.js.map +1 -0
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/internal/route-assurance.d.ts +19 -0
  27. package/dist/internal/route-assurance.d.ts.map +1 -1
  28. package/dist/internal/route-assurance.js +38 -5
  29. package/dist/internal/route-assurance.js.map +1 -1
  30. package/dist/internal/route-execution.d.ts +18 -0
  31. package/dist/internal/route-execution.d.ts.map +1 -1
  32. package/dist/internal/route-execution.js +67 -1
  33. package/dist/internal/route-execution.js.map +1 -1
  34. package/dist/manifest.d.ts +5 -1
  35. package/dist/manifest.d.ts.map +1 -1
  36. package/dist/manifest.js +22 -4
  37. package/dist/manifest.js.map +1 -1
  38. package/dist/reflection.d.ts +5 -0
  39. package/dist/reflection.d.ts.map +1 -1
  40. package/dist/reflection.js +13 -4
  41. package/dist/reflection.js.map +1 -1
  42. package/dist/replay.d.ts +26 -0
  43. package/dist/replay.d.ts.map +1 -0
  44. package/dist/replay.js +63 -0
  45. package/dist/replay.js.map +1 -0
  46. package/dist/schema/standard.d.ts +2 -0
  47. package/dist/schema/standard.d.ts.map +1 -1
  48. package/dist/schema/standard.js +13 -0
  49. package/dist/schema/standard.js.map +1 -1
  50. package/dist/server/body.d.ts +49 -6
  51. package/dist/server/body.d.ts.map +1 -1
  52. package/dist/server/body.js +226 -8
  53. package/dist/server/body.js.map +1 -1
  54. package/dist/server/context.d.ts +20 -3
  55. package/dist/server/context.d.ts.map +1 -1
  56. package/dist/server/contract.d.ts +15 -3
  57. package/dist/server/contract.d.ts.map +1 -1
  58. package/dist/server/contract.js +22 -0
  59. package/dist/server/contract.js.map +1 -1
  60. package/dist/server/cookies.d.ts +26 -5
  61. package/dist/server/cookies.d.ts.map +1 -1
  62. package/dist/server/cookies.js +76 -9
  63. package/dist/server/cookies.js.map +1 -1
  64. package/dist/server/edge.d.ts.map +1 -1
  65. package/dist/server/edge.js +11 -0
  66. package/dist/server/edge.js.map +1 -1
  67. package/dist/server/header-case.d.ts +9 -0
  68. package/dist/server/header-case.d.ts.map +1 -0
  69. package/dist/server/header-case.js +54 -0
  70. package/dist/server/header-case.js.map +1 -0
  71. package/dist/server/headers.d.ts +8 -0
  72. package/dist/server/headers.d.ts.map +1 -0
  73. package/dist/server/headers.js +13 -0
  74. package/dist/server/headers.js.map +1 -0
  75. package/dist/server/node-outcome-hook.d.ts.map +1 -1
  76. package/dist/server/node-outcome-hook.js +7 -11
  77. package/dist/server/node-outcome-hook.js.map +1 -1
  78. package/dist/server/node-outcome.d.ts +8 -1
  79. package/dist/server/node-outcome.d.ts.map +1 -1
  80. package/dist/server/node-outcome.js +10 -3
  81. package/dist/server/node-outcome.js.map +1 -1
  82. package/dist/server/plugin.d.ts +66 -7
  83. package/dist/server/plugin.d.ts.map +1 -1
  84. package/dist/server/plugin.js +14 -10
  85. package/dist/server/plugin.js.map +1 -1
  86. package/dist/server/proto-guard.d.ts +30 -0
  87. package/dist/server/proto-guard.d.ts.map +1 -0
  88. package/dist/server/proto-guard.js +116 -0
  89. package/dist/server/proto-guard.js.map +1 -0
  90. package/dist/server/registry.d.ts +6 -2
  91. package/dist/server/registry.d.ts.map +1 -1
  92. package/dist/server/request-context.d.ts +24 -6
  93. package/dist/server/request-context.d.ts.map +1 -1
  94. package/dist/server/request-context.js +157 -30
  95. package/dist/server/request-context.js.map +1 -1
  96. package/dist/server/respond.d.ts +2 -2
  97. package/dist/server/respond.d.ts.map +1 -1
  98. package/dist/server/respond.js +34 -8
  99. package/dist/server/respond.js.map +1 -1
  100. package/dist/server/response-contract-lane.d.ts +1 -1
  101. package/dist/server/response-contract-lane.d.ts.map +1 -1
  102. package/dist/server/response-contract-lane.js +45 -13
  103. package/dist/server/response-contract-lane.js.map +1 -1
  104. package/dist/server/response-hooks.d.ts +10 -0
  105. package/dist/server/response-hooks.d.ts.map +1 -0
  106. package/dist/server/response-hooks.js +52 -0
  107. package/dist/server/response-hooks.js.map +1 -0
  108. package/dist/server/runtime-core.d.ts +12 -0
  109. package/dist/server/runtime-core.d.ts.map +1 -1
  110. package/dist/server/runtime-core.js +8 -0
  111. package/dist/server/runtime-core.js.map +1 -1
  112. package/dist/server/server-types.d.ts +60 -6
  113. package/dist/server/server-types.d.ts.map +1 -1
  114. package/dist/server/server.d.ts +80 -23
  115. package/dist/server/server.d.ts.map +1 -1
  116. package/dist/server/server.js +424 -213
  117. package/dist/server/server.js.map +1 -1
  118. package/dist/server/static-headers.d.ts +14 -3
  119. package/dist/server/static-headers.d.ts.map +1 -1
  120. package/dist/server/static-headers.js +28 -6
  121. package/dist/server/static-headers.js.map +1 -1
  122. package/dist/server/transport-lane.d.ts +8 -0
  123. package/dist/server/transport-lane.d.ts.map +1 -1
  124. package/dist/server/transport-lane.js +12 -8
  125. package/dist/server/transport-lane.js.map +1 -1
  126. package/dist/server/websocket.d.ts +3 -0
  127. package/dist/server/websocket.d.ts.map +1 -1
  128. package/dist/server/websocket.js +14 -0
  129. package/dist/server/websocket.js.map +1 -1
  130. package/dist/server.d.ts +2 -2
  131. package/dist/server.d.ts.map +1 -1
  132. package/dist/server.js +2 -2
  133. package/dist/server.js.map +1 -1
  134. package/dist/tool-catalog.d.ts +21 -0
  135. package/dist/tool-catalog.d.ts.map +1 -0
  136. package/dist/tool-catalog.js +16 -0
  137. package/dist/tool-catalog.js.map +1 -0
  138. package/dist/tool-contract.d.ts +238 -0
  139. package/dist/tool-contract.d.ts.map +1 -0
  140. package/dist/tool-contract.js +569 -0
  141. package/dist/tool-contract.js.map +1 -0
  142. package/package.json +26 -1
  143. package/src/assurance.ts +236 -6
  144. package/src/capabilities.ts +14 -1
  145. package/src/diff.ts +5 -2
  146. package/src/errors.ts +1 -0
  147. package/src/evidence.ts +319 -0
  148. package/src/execution-policy.ts +57 -0
  149. package/src/index.ts +1 -1
  150. package/src/internal/route-assurance.ts +67 -4
  151. package/src/internal/route-execution.ts +276 -1
  152. package/src/manifest.ts +27 -5
  153. package/src/reflection.ts +24 -4
  154. package/src/replay.ts +96 -0
  155. package/src/schema/standard.ts +16 -0
  156. package/src/server/body.ts +275 -7
  157. package/src/server/context.ts +23 -3
  158. package/src/server/contract.ts +43 -3
  159. package/src/server/cookies.ts +80 -10
  160. package/src/server/edge.ts +10 -0
  161. package/src/server/header-case.ts +54 -0
  162. package/src/server/headers.ts +11 -0
  163. package/src/server/node-outcome-hook.ts +6 -11
  164. package/src/server/node-outcome.ts +10 -2
  165. package/src/server/plugin.ts +87 -8
  166. package/src/server/proto-guard.ts +118 -0
  167. package/src/server/registry.ts +6 -2
  168. package/src/server/request-context.ts +242 -26
  169. package/src/server/respond.ts +35 -4
  170. package/src/server/response-contract-lane.ts +6 -17
  171. package/src/server/response-hooks.ts +51 -0
  172. package/src/server/runtime-core.ts +14 -0
  173. package/src/server/server-types.ts +66 -6
  174. package/src/server/server.ts +667 -287
  175. package/src/server/static-headers.ts +27 -3
  176. package/src/server/transport-lane.ts +19 -8
  177. package/src/server/websocket.ts +18 -2
  178. package/src/server.ts +7 -0
  179. package/src/tool-catalog.ts +40 -0
  180. package/src/tool-contract.ts +896 -0
package/dist/diff.d.ts CHANGED
@@ -24,6 +24,7 @@ export interface SchemaSnapshot {
24
24
  readonly fields?: readonly ReflectedSchemaField[];
25
25
  }
26
26
  export interface RouteSnapshotSchema {
27
+ readonly headers?: SchemaSnapshot;
27
28
  readonly body?: SchemaSnapshot;
28
29
  readonly query?: SchemaSnapshot;
29
30
  readonly response?: SchemaSnapshot;
@@ -42,7 +43,7 @@ export interface RouteChange {
42
43
  readonly method: string;
43
44
  readonly path: string;
44
45
  /** Which part of the contract changed; "route" for add/remove of the whole route. */
45
- readonly section: "route" | "body" | "query" | "response" | "sse" | "errors";
46
+ readonly section: "route" | "headers" | "body" | "query" | "response" | "sse" | "errors";
46
47
  /** The top-level field (or error status) the change is about, when field-granular. */
47
48
  readonly field?: string;
48
49
  readonly message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,oBAAoB,EAE1B,MAAM,iBAAiB,CAAA;AAExB,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAClD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;CAC3D;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAA;CACtC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAA;AAE7D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAA;IAC5E,sFAAsF;IACtF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAiBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,aAAa,EAAE,CAExE;AA+OD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,KAAK,EAAE,SAAS,aAAa,EAAE,GAC9B,UAAU,CA+CZ"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,oBAAoB,EAE1B,MAAM,iBAAiB,CAAA;AAExB,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAClD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;CAC3D;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAA;CACtC;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAA;AAE7D,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAA;IACxF,sFAAsF;IACtF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAiBD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,aAAa,EAAE,CAExE;AAiPD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,KAAK,EAAE,SAAS,aAAa,EAAE,GAC9B,UAAU,CA+CZ"}
package/dist/diff.js CHANGED
@@ -45,10 +45,12 @@ const snapshotRoute = (route) => {
45
45
  errors[status] = snapped;
46
46
  }
47
47
  const body = schemaSnapshot(schema.body);
48
+ const headers = schemaSnapshot(schema.headers);
48
49
  const query = schemaSnapshot(schema.query);
49
50
  const response = schemaSnapshot(schema.response);
50
51
  const sse = schemaSnapshot(schema.sse);
51
52
  const snapped = {
53
+ ...(headers !== undefined ? { headers } : {}),
52
54
  ...(body !== undefined ? { body } : {}),
53
55
  ...(query !== undefined ? { query } : {}),
54
56
  ...(response !== undefined ? { response } : {}),
@@ -240,7 +242,7 @@ export function diffRouteSnapshots(before, after) {
240
242
  const path = beforeRoute.path;
241
243
  const beforeSchema = beforeRoute.schema ?? {};
242
244
  const afterSchema = afterRoute.schema ?? {};
243
- for (const section of ["body", "query"]) {
245
+ for (const section of ["headers", "body", "query"]) {
244
246
  diffSchemaSection({ method, path, section, direction: "request", changes }, beforeSchema[section], afterSchema[section]);
245
247
  }
246
248
  for (const section of ["response", "sse"]) {
package/dist/diff.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.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";
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_BODY_LIMIT";
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,
@@ -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,CAAA;AAEzB;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAElD,SAAiB,IAAI,EAAE,oBAAoB,CAAA;gBAE/B,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAIxD"}
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,oBAAoB,CAAA;AAExB;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAElD,SAAiB,IAAI,EAAE,oBAAoB,CAAA;gBAE/B,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;CAIxD"}
@@ -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;AAcD;;;;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"}
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;AAeD;;;;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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Canonical, token-only project evidence.
3
+ *
4
+ * This is the offline seam shared by agent views and deploy artifacts. It deliberately contains
5
+ * route contracts, assurance/capability decisions, and source locations only; validators, handlers,
6
+ * request bodies, secrets, and other runtime payloads never cross this interface.
7
+ */
8
+ import type { AssuranceEvidence, AssuranceFinding, AssuranceReport } from "./assurance.js";
9
+ import type { AssuredCapabilityRoute, CapabilityAssuranceReport, CapabilityEvidence, CapabilityFinding } from "./capabilities.js";
10
+ import type { ResponseClassification } from "./classification.js";
11
+ import { type JsonSchema, type ReflectedRoute, type ReflectedSchemaField } from "./reflection.js";
12
+ export interface ProjectEvidenceSchemaPart {
13
+ readonly jsonSchema?: JsonSchema;
14
+ readonly fields?: readonly ReflectedSchemaField[];
15
+ }
16
+ export interface ProjectEvidenceSchema {
17
+ readonly bodyLimit?: number | "unlimited";
18
+ readonly bodyLimitReason?: string;
19
+ readonly headers?: ProjectEvidenceSchemaPart;
20
+ readonly body?: ProjectEvidenceSchemaPart;
21
+ readonly query?: ProjectEvidenceSchemaPart;
22
+ readonly params?: ProjectEvidenceSchemaPart;
23
+ readonly response?: ProjectEvidenceSchemaPart;
24
+ readonly errors?: Readonly<Record<string, ProjectEvidenceSchemaPart>>;
25
+ readonly sse?: ProjectEvidenceSchemaPart;
26
+ }
27
+ export interface ProjectEvidenceSourceLocation {
28
+ readonly file: string;
29
+ readonly line?: number;
30
+ readonly column?: number;
31
+ }
32
+ export interface ProjectEvidenceRoute {
33
+ readonly method: string;
34
+ readonly path: string;
35
+ readonly schema?: ProjectEvidenceSchema;
36
+ readonly assurance?: readonly AssuranceEvidence[];
37
+ readonly capabilities?: readonly string[];
38
+ readonly family?: boolean;
39
+ readonly classification?: ResponseClassification;
40
+ readonly tool?: ReflectedRoute["tool"];
41
+ readonly source?: readonly ProjectEvidenceSourceLocation[];
42
+ }
43
+ export interface ProjectEvidenceAssuranceRoute {
44
+ readonly method: string;
45
+ readonly path: string;
46
+ readonly rule?: string;
47
+ readonly evidence: readonly AssuranceEvidence[];
48
+ readonly missing: readonly string[];
49
+ readonly forbidden: readonly string[];
50
+ }
51
+ export interface ProjectEvidenceAssurance {
52
+ readonly ok: boolean;
53
+ readonly routes: readonly ProjectEvidenceAssuranceRoute[];
54
+ readonly findings: readonly AssuranceFinding[];
55
+ }
56
+ export interface ProjectEvidenceCapabilityRoute {
57
+ readonly method: string;
58
+ readonly path: string;
59
+ readonly declared: readonly string[];
60
+ readonly evidence: readonly CapabilityEvidence[];
61
+ readonly unproven: readonly string[];
62
+ readonly covered: boolean;
63
+ readonly classification?: AssuredCapabilityRoute["classification"];
64
+ }
65
+ export interface ProjectEvidenceCapabilities {
66
+ readonly ok: boolean;
67
+ readonly routes: readonly ProjectEvidenceCapabilityRoute[];
68
+ readonly findings: readonly CapabilityFinding[];
69
+ }
70
+ /** One deterministic, persistence-safe view of a project's public and trust-relevant facts. */
71
+ export interface ProjectEvidenceSnapshot {
72
+ readonly version: 1;
73
+ readonly routes: readonly ProjectEvidenceRoute[];
74
+ readonly assurance?: ProjectEvidenceAssurance;
75
+ readonly capabilities?: ProjectEvidenceCapabilities;
76
+ }
77
+ export interface ProjectEvidenceOptions {
78
+ readonly assurance?: AssuranceReport;
79
+ readonly capabilities?: CapabilityAssuranceReport;
80
+ /** Optional static source locations keyed by `${METHOD}\n${path}`. */
81
+ readonly sourceLocations?: ReadonlyMap<string, readonly ProjectEvidenceSourceLocation[]>;
82
+ }
83
+ /** Build the canonical snapshot from reflection and already-evaluated offline reports. */
84
+ export declare function snapshotProjectEvidence(source: unknown, options?: ProjectEvidenceOptions): ProjectEvidenceSnapshot;
85
+ /** Stable JSON for logs, MCP, generated artifacts, and snapshot tests. */
86
+ export declare function serializeProjectEvidence(snapshot: ProjectEvidenceSnapshot): string;
87
+ /** SHA-256 of the canonical snapshot, useful as a cheap freshness/reference token. */
88
+ export declare function digestProjectEvidence(snapshot: ProjectEvidenceSnapshot): Promise<string>;
89
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Canonical, token-only project evidence.
3
+ *
4
+ * This is the offline seam shared by agent views and deploy artifacts. It deliberately contains
5
+ * route contracts, assurance/capability decisions, and source locations only; validators, handlers,
6
+ * request bodies, secrets, and other runtime payloads never cross this interface.
7
+ */
8
+ import { evidenceProvenance } from "./internal/route-assurance.js";
9
+ import { reflectRoutes, } from "./reflection.js";
10
+ const recordOf = (value) => value !== null && typeof value === "object" && !Array.isArray(value)
11
+ ? value
12
+ : undefined;
13
+ function schemaPart(value) {
14
+ if (value === undefined)
15
+ return undefined;
16
+ return Object.freeze({
17
+ ...(value.jsonSchema !== undefined ? { jsonSchema: value.jsonSchema } : {}),
18
+ ...(value.fields !== undefined ? { fields: Object.freeze([...value.fields]) } : {}),
19
+ });
20
+ }
21
+ function schemaOf(route) {
22
+ const source = route.schema;
23
+ if (source === undefined)
24
+ return undefined;
25
+ const headers = schemaPart(source.headers);
26
+ const body = schemaPart(source.body);
27
+ const query = schemaPart(source.query);
28
+ const params = schemaPart(source.params);
29
+ const response = schemaPart(source.response);
30
+ const sse = schemaPart(source.sse);
31
+ const errors = {};
32
+ for (const [status, value] of Object.entries(source.errors ?? {})) {
33
+ const part = schemaPart(value);
34
+ if (part !== undefined)
35
+ errors[status] = part;
36
+ }
37
+ const schema = {
38
+ ...(source.bodyLimit !== undefined ? { bodyLimit: source.bodyLimit } : {}),
39
+ ...(source.bodyLimitReason !== undefined ? { bodyLimitReason: source.bodyLimitReason } : {}),
40
+ ...(headers !== undefined ? { headers } : {}),
41
+ ...(body !== undefined ? { body } : {}),
42
+ ...(query !== undefined ? { query } : {}),
43
+ ...(params !== undefined ? { params } : {}),
44
+ ...(response !== undefined ? { response } : {}),
45
+ ...(Object.keys(errors).length > 0 ? { errors: Object.freeze(errors) } : {}),
46
+ ...(sse !== undefined ? { sse } : {}),
47
+ };
48
+ return Object.freeze(schema);
49
+ }
50
+ const keyOf = (method, path) => `${method.toUpperCase()}\n${path}`;
51
+ function assuranceEvidenceOf(values) {
52
+ return Object.freeze(values
53
+ .map((item) => Object.freeze({
54
+ id: item.id,
55
+ source: item.source,
56
+ provenance: evidenceProvenance(item),
57
+ }))
58
+ .sort((a, b) => a.id.localeCompare(b.id) || a.source.localeCompare(b.source)));
59
+ }
60
+ function capabilityEvidenceOf(values) {
61
+ return Object.freeze([...values]
62
+ .map((item) => Object.freeze({ id: item.id, kind: item.kind, source: item.source }))
63
+ .sort((a, b) => a.id.localeCompare(b.id) ||
64
+ a.kind.localeCompare(b.kind) ||
65
+ a.source.localeCompare(b.source)));
66
+ }
67
+ const sortByRoute = (values) => Object.freeze([...values].sort((a, b) => a.path.localeCompare(b.path) || a.method.localeCompare(b.method)));
68
+ function evidenceRouteOf(route, locations) {
69
+ const schema = schemaOf(route);
70
+ return Object.freeze({
71
+ method: route.method.toUpperCase(),
72
+ path: route.path,
73
+ ...(schema !== undefined ? { schema } : {}),
74
+ ...(route.assurance !== undefined ? { assurance: assuranceEvidenceOf(route.assurance) } : {}),
75
+ ...(route.capabilities !== undefined
76
+ ? { capabilities: Object.freeze([...route.capabilities].sort()) }
77
+ : {}),
78
+ ...(route.family === true ? { family: true } : {}),
79
+ ...(route.classification !== undefined ? { classification: route.classification } : {}),
80
+ ...(route.tool !== undefined ? { tool: route.tool } : {}),
81
+ ...(locations !== undefined && locations.length > 0
82
+ ? { source: Object.freeze([...locations]) }
83
+ : {}),
84
+ });
85
+ }
86
+ function assuranceOf(report) {
87
+ if (report === undefined)
88
+ return undefined;
89
+ return Object.freeze({
90
+ ok: report.ok,
91
+ routes: sortByRoute(report.routes.map((route) => Object.freeze({
92
+ method: route.method,
93
+ path: route.path,
94
+ ...(route.rule !== undefined ? { rule: route.rule } : {}),
95
+ evidence: assuranceEvidenceOf(route.evidence),
96
+ missing: Object.freeze([...route.missing].sort()),
97
+ forbidden: Object.freeze([...route.forbidden].sort()),
98
+ }))),
99
+ findings: Object.freeze([...report.findings].sort((a, b) => a.path.localeCompare(b.path) ||
100
+ a.method.localeCompare(b.method) ||
101
+ a.code.localeCompare(b.code))),
102
+ });
103
+ }
104
+ function capabilitiesOf(report) {
105
+ if (report === undefined)
106
+ return undefined;
107
+ return Object.freeze({
108
+ ok: report.ok,
109
+ routes: sortByRoute(report.routes.map((route) => Object.freeze({
110
+ method: route.method,
111
+ path: route.path,
112
+ declared: Object.freeze([...route.declared].sort()),
113
+ evidence: capabilityEvidenceOf(route.evidence),
114
+ unproven: Object.freeze([...route.unproven].sort()),
115
+ covered: route.covered,
116
+ ...(route.classification !== undefined ? { classification: route.classification } : {}),
117
+ }))),
118
+ findings: Object.freeze([...report.findings].sort((a, b) => a.path.localeCompare(b.path) ||
119
+ a.method.localeCompare(b.method) ||
120
+ a.code.localeCompare(b.code))),
121
+ });
122
+ }
123
+ /** Build the canonical snapshot from reflection and already-evaluated offline reports. */
124
+ export function snapshotProjectEvidence(source, options = {}) {
125
+ const locations = options.sourceLocations;
126
+ const assurance = assuranceOf(options.assurance);
127
+ const capabilities = capabilitiesOf(options.capabilities);
128
+ const routes = sortByRoute(
129
+ // Importantly, this is the only reflection pass for this snapshot. Every projection can consume
130
+ // the result instead of independently asking the app for `.routes()` and re-shaping schemas.
131
+ reflectRoutes(source).map((route) => evidenceRouteOf(route, locations?.get(keyOf(route.method, route.path)))));
132
+ return Object.freeze({
133
+ version: 1,
134
+ routes,
135
+ ...(assurance !== undefined ? { assurance } : {}),
136
+ ...(capabilities !== undefined ? { capabilities } : {}),
137
+ });
138
+ }
139
+ function canonicalValue(value) {
140
+ if (value === null || typeof value === "string" || typeof value === "boolean") {
141
+ return JSON.stringify(value);
142
+ }
143
+ if (typeof value === "number") {
144
+ if (!Number.isFinite(value))
145
+ throw new TypeError("project evidence cannot encode non-finite numbers");
146
+ return JSON.stringify(value);
147
+ }
148
+ if (Array.isArray(value))
149
+ return `[${value.map((item) => canonicalValue(item)).join(",")}]`;
150
+ const record = recordOf(value);
151
+ if (record !== undefined) {
152
+ return `{${Object.keys(record)
153
+ .filter((key) => record[key] !== undefined)
154
+ .sort()
155
+ .map((key) => `${JSON.stringify(key)}:${canonicalValue(record[key])}`)
156
+ .join(",")}}`;
157
+ }
158
+ throw new TypeError(`project evidence cannot encode ${typeof value}`);
159
+ }
160
+ /** Stable JSON for logs, MCP, generated artifacts, and snapshot tests. */
161
+ export function serializeProjectEvidence(snapshot) {
162
+ return canonicalValue(snapshot);
163
+ }
164
+ /** SHA-256 of the canonical snapshot, useful as a cheap freshness/reference token. */
165
+ export async function digestProjectEvidence(snapshot) {
166
+ const bytes = new TextEncoder().encode(serializeProjectEvidence(snapshot));
167
+ const digest = new Uint8Array(await crypto.subtle.digest("SHA-256", bytes));
168
+ return [...digest].map((byte) => byte.toString(16).padStart(2, "0")).join("");
169
+ }
170
+ //# sourceMappingURL=evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAIL,aAAa,GAEd,MAAM,iBAAiB,CAAA;AAmFxB,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAiD,EAAE,CACjF,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClE,CAAC,CAAE,KAA2C;IAC9C,CAAC,CAAC,SAAS,CAAA;AAEf,SAAS,UAAU,CAAC,KAAmC;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAqB;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC3B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAClC,MAAM,MAAM,GAA8C,EAAE,CAAA;IAC5D,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC/C,CAAC;IACD,MAAM,MAAM,GAA0B;QACpC,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,MAAM,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,IAAY,EAAU,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAA;AAE1F,SAAS,mBAAmB,CAAC,MAAoC;IAC/D,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM;SACH,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC;KACrC,CAAC,CACH;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAChF,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAqC;IAErC,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,MAAM,CAAC;SACR,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACnF,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CACnC,CACJ,CAAA;AACH,CAAC;AAED,MAAM,WAAW,GAAG,CAClB,MAAoB,EACN,EAAE,CAChB,MAAM,CAAC,MAAM,CACX,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAC7F,CAAA;AAEH,SAAS,eAAe,CACtB,KAAqB,EACrB,SAA+D;IAE/D,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;YACjE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YACjD,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAmC;IACtD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,MAAM,EAAE,WAAW,CACjB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1B,MAAM,CAAC,MAAM,CAAC;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,QAAQ,EAAE,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;SACtD,CAAC,CACH,CACF;QACD,QAAQ,EAAE,MAAM,CAAC,MAAM,CACrB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC/B,CACF;KACF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,MAA6C;IAE7C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,MAAM,EAAE,WAAW,CACjB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC1B,MAAM,CAAC,MAAM,CAAC;YACZ,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,QAAQ,EAAE,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC9C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxF,CAAC,CACH,CACF;QACD,QAAQ,EAAE,MAAM,CAAC,MAAM,CACrB,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC/B,CACF;KACF,CAAC,CAAA;AACJ,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,uBAAuB,CACrC,MAAe,EACf,UAAkC,EAAE;IAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAA;IACzC,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACzD,MAAM,MAAM,GAAG,WAAW;IACxB,gGAAgG;IAChG,6FAA6F;IAC7F,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAClC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACxE,CACF,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC;QACV,MAAM;QACN,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxD,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACzB,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAA;QAC1E,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;aAC1C,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;aACrE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACjB,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,kCAAkC,OAAO,KAAK,EAAE,CAAC,CAAA;AACvE,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,wBAAwB,CAAC,QAAiC;IACxE,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;AACjC,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,QAAiC;IAC3E,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3E,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC/E,CAAC"}
@@ -0,0 +1,23 @@
1
+ /** The filesystem access a child process is expected to have. */
2
+ export type ExecutionFilesystemScope = "none" | "cwd" | "declared";
3
+ /** Network access requested by an execution policy. */
4
+ export type ExecutionNetworkAccess = "deny" | "allow";
5
+ /**
6
+ * A public, token-only execution policy. It describes a required capability; it is not an
7
+ * isolation mechanism by itself.
8
+ */
9
+ export interface ExecutionPolicy {
10
+ readonly filesystem: ExecutionFilesystemScope;
11
+ readonly network: ExecutionNetworkAccess;
12
+ readonly timeMs: number;
13
+ readonly capabilityCeiling: readonly string[];
14
+ }
15
+ /** An adapter that can prove whether it satisfies a contract's execution policy. */
16
+ export interface ExecutionPolicyAdapter {
17
+ readonly name: string;
18
+ canSatisfy(policy: ExecutionPolicy): boolean | PromiseLike<boolean>;
19
+ /** Token-only limitations are suitable for evidence and diagnostics. */
20
+ limitations(policy: ExecutionPolicy): readonly string[];
21
+ }
22
+ export declare function defineExecutionPolicy(policy: ExecutionPolicy): ExecutionPolicy;
23
+ //# sourceMappingURL=execution-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-policy.d.ts","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"AAEA,iEAAiE;AACjE,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAA;AAElE,uDAAuD;AACvD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAA;AAErD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAA;CAC9C;AAED,oFAAoF;AACpF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACnE,wEAAwE;IACxE,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,MAAM,EAAE,CAAA;CACxD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CA6B9E"}
@@ -0,0 +1,28 @@
1
+ import { validCapabilityId } from "./internal/capability-runtime.js";
2
+ export function defineExecutionPolicy(policy) {
3
+ if (policy === null || typeof policy !== "object") {
4
+ throw new TypeError("execution policy: policy must be an object");
5
+ }
6
+ if (policy.filesystem !== "none" &&
7
+ policy.filesystem !== "cwd" &&
8
+ policy.filesystem !== "declared") {
9
+ throw new TypeError("execution policy: filesystem must be none, cwd, or declared");
10
+ }
11
+ if (policy.network !== "deny" && policy.network !== "allow") {
12
+ throw new TypeError("execution policy: network must be deny or allow");
13
+ }
14
+ if (!Number.isSafeInteger(policy.timeMs) || policy.timeMs < 1) {
15
+ throw new RangeError("execution policy: timeMs must be a positive safe integer");
16
+ }
17
+ if (!Array.isArray(policy.capabilityCeiling) ||
18
+ policy.capabilityCeiling.some((value) => !validCapabilityId(value))) {
19
+ throw new TypeError("execution policy: capabilityCeiling must contain valid capabilities");
20
+ }
21
+ return Object.freeze({
22
+ filesystem: policy.filesystem,
23
+ network: policy.network,
24
+ timeMs: policy.timeMs,
25
+ capabilityCeiling: Object.freeze([...new Set(policy.capabilityCeiling)]),
26
+ });
27
+ }
28
+ //# sourceMappingURL=execution-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-policy.js","sourceRoot":"","sources":["../src/execution-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AA2BpE,MAAM,UAAU,qBAAqB,CAAC,MAAuB;IAC3D,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAA;IACnE,CAAC;IACD,IACE,MAAM,CAAC,UAAU,KAAK,MAAM;QAC5B,MAAM,CAAC,UAAU,KAAK,KAAK;QAC3B,MAAM,CAAC,UAAU,KAAK,UAAU,EAChC,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,6DAA6D,CAAC,CAAA;IACpF,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAC5D,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAA;IACxE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,UAAU,CAAC,0DAA0D,CAAC,CAAA;IAClF,CAAC;IACD,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;QACxC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EACnE,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAA;IAC5F,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;KACzE,CAAC,CAAA;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@
9
9
  * read its own package.json at runtime. `scripts/version.ts` rewrites it on every release bump and
10
10
  * `check:publish` asserts it equals `@nifrajs/core`'s package version.
11
11
  */
12
- export declare const VERSION: "2.11.0";
12
+ export declare const VERSION: "2.12.0";
13
13
  export type Version = typeof VERSION;
14
14
  export * from "./server.js";
15
15
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -9,6 +9,6 @@
9
9
  * read its own package.json at runtime. `scripts/version.ts` rewrites it on every release bump and
10
10
  * `check:publish` asserts it equals `@nifrajs/core`'s package version.
11
11
  */
12
- export const VERSION = "2.11.0";
12
+ export const VERSION = "2.12.0";
13
13
  export * from "./server.js";
14
14
  //# sourceMappingURL=index.js.map
@@ -5,6 +5,9 @@ export type AssuranceScope = "global" | "subsequent" | "plugin";
5
5
  export interface AssuranceEvidence {
6
6
  readonly id: string;
7
7
  readonly source: string;
8
+ /** Runtime-installed enforcement versus an author assertion on a route. Optional for legacy
9
+ * reflected descriptors; evaluators infer legacy values from source when absent. */
10
+ readonly provenance?: "runtime" | "declared";
8
11
  }
9
12
  /** Metadata installed on a middleware/plugin by {@link withRouteAssurance}. */
10
13
  export interface AssuranceDeclaration extends AssuranceEvidence {
@@ -14,6 +17,15 @@ export interface AssuranceDeclaration extends AssuranceEvidence {
14
17
  /** Restrict evidence to these absolute route globs. Omit for every path. */
15
18
  readonly paths?: readonly string[];
16
19
  }
20
+ /**
21
+ * Evidence published from OUTSIDE the plugin chain - a deployment shell, a mount site, the call that
22
+ * hands the app to `serve`. `scope` defaults to `global` (retroactive, app-wide) because the shell
23
+ * runs after every route is registered, and `provenance` is always stamped `declared`: nifra did not
24
+ * install this enforcement and cannot see it, so a `requireProvenance: "runtime"` rule still rejects it.
25
+ */
26
+ export type AssuranceAttachment = Omit<AssuranceDeclaration, "scope" | "provenance"> & {
27
+ readonly scope?: AssuranceScope;
28
+ };
17
29
  export declare const NIFRA_ASSURANCE_IDS: Readonly<{
18
30
  readonly AUTHENTICATED: "nifra.authenticated";
19
31
  readonly BODY_BOUNDED: "nifra.body-bounded";
@@ -23,9 +35,16 @@ export declare const NIFRA_ASSURANCE_IDS: Readonly<{
23
35
  readonly IP_RESTRICTED: "nifra.ip-restricted";
24
36
  readonly RATE_LIMITED: "nifra.rate-limited";
25
37
  readonly SECURITY_HEADERS: "nifra.security-headers";
38
+ readonly RESPONSE_CONTRACT: "nifra.response-contract";
26
39
  }>;
40
+ /** Create evidence with provenance stored non-enumerably so existing route descriptors remain
41
+ * byte-compatible while strict assurance policies can reject author-only assertions. */
42
+ export declare function evidenceWithProvenance(id: string, source: string, provenance: "runtime" | "declared"): AssuranceEvidence;
43
+ export declare function evidenceProvenance(value: AssuranceEvidence): "runtime" | "declared";
27
44
  /** Compile an absolute route glob. `*` is one segment; `**` is zero or more segments. */
28
45
  export declare function routeGlob(pattern: string): RegExp;
46
+ /** Validate and freeze declarations, one or many. */
47
+ export declare function normalizeAssuranceDeclarations(declaration: AssuranceDeclaration | readonly AssuranceDeclaration[]): readonly AssuranceDeclaration[];
29
48
  /** Attach enforcement evidence to the middleware/plugin that installs it. */
30
49
  export declare function withRouteAssurance<T extends object>(target: T, declaration: AssuranceDeclaration | readonly AssuranceDeclaration[]): T;
31
50
  export declare function assuranceDeclarationsOf(value: object): readonly AssuranceDeclaration[];
@@ -1 +1 @@
1
- {"version":3,"file":"route-assurance.d.ts","sourceRoot":"","sources":["../../src/internal/route-assurance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE1D,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAA;AAE/D,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,+EAA+E;AAC/E,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAMD,eAAO,MAAM,mBAAmB;;;;;;;;;EASrB,CAAA;AAIX,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6BjD;AAiCD,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EACjD,MAAM,EAAE,CAAC,EACT,WAAW,EAAE,oBAAoB,GAAG,SAAS,oBAAoB,EAAE,GAClE,CAAC,CASH;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,oBAAoB,EAAE,CAEtF;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,oBAAoB,EACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAOT;AAED,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,SAAS,oBAAoB,EAAE,EACpD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,SAAS,iBAAiB,EAAE,CAW9B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CASxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAE1D"}
1
+ {"version":3,"file":"route-assurance.d.ts","sourceRoot":"","sources":["../../src/internal/route-assurance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE1D,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAA;AAE/D,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;wFACoF;IACpF,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;CAC7C;AAED,+EAA+E;AAC/E,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACnC;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,YAAY,CAAC,GAAG;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAMD,eAAO,MAAM,mBAAmB;;;;;;;;;;EAUrB,CAAA;AAEX;wFACwF;AACxF,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,GAAG,UAAU,GACjC,iBAAiB,CAYnB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,GAAG,UAAU,CAEnF;AAID,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA6BjD;AA2CD,qDAAqD;AACrD,wBAAgB,8BAA8B,CAC5C,WAAW,EAAE,oBAAoB,GAAG,SAAS,oBAAoB,EAAE,GAClE,SAAS,oBAAoB,EAAE,CAMjC;AAED,6EAA6E;AAC7E,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EACjD,MAAM,EAAE,CAAC,EACT,WAAW,EAAE,oBAAoB,GAAG,SAAS,oBAAoB,EAAE,GAClE,CAAC,CAOH;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,oBAAoB,EAAE,CAEtF;AAED,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,oBAAoB,EACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAOT;AAED,wBAAgB,oBAAoB,CAClC,mBAAmB,EAAE,SAAS,oBAAoB,EAAE,EACpD,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,SAAS,iBAAiB,EAAE,CAiB9B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CASxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAE1D"}
@@ -11,7 +11,26 @@ export const NIFRA_ASSURANCE_IDS = Object.freeze({
11
11
  IP_RESTRICTED: "nifra.ip-restricted",
12
12
  RATE_LIMITED: "nifra.rate-limited",
13
13
  SECURITY_HEADERS: "nifra.security-headers",
14
+ RESPONSE_CONTRACT: "nifra.response-contract",
14
15
  });
16
+ /** Create evidence with provenance stored non-enumerably so existing route descriptors remain
17
+ * byte-compatible while strict assurance policies can reject author-only assertions. */
18
+ export function evidenceWithProvenance(id, source, provenance) {
19
+ const evidence = {
20
+ id,
21
+ source,
22
+ };
23
+ Object.defineProperty(evidence, "provenance", {
24
+ value: provenance,
25
+ enumerable: false,
26
+ configurable: false,
27
+ writable: false,
28
+ });
29
+ return Object.freeze(evidence);
30
+ }
31
+ export function evidenceProvenance(value) {
32
+ return value.provenance ?? (value.source === "declared" ? "declared" : "runtime");
33
+ }
15
34
  const escapeRegex = (value) => value.replace(/[|\\{}()[\]^$+?.-]/g, "\\$&");
16
35
  /** Compile an absolute route glob. `*` is one segment; `**` is zero or more segments. */
17
36
  export function routeGlob(pattern) {
@@ -61,21 +80,35 @@ function normalizeDeclaration(value) {
61
80
  routeGlob(path);
62
81
  return path;
63
82
  });
83
+ if (value.provenance !== undefined &&
84
+ value.provenance !== "runtime" &&
85
+ value.provenance !== "declared") {
86
+ throw new Error(`route assurance: invalid provenance ${JSON.stringify(value.provenance)}`);
87
+ }
64
88
  return Object.freeze({
65
89
  id: value.id,
66
90
  source: value.source.trim(),
67
91
  scope: value.scope,
92
+ // Carried, not defaulted: evidence attached by an author (rather than installed by a running
93
+ // hook) must stay distinguishable so `requireProvenance: "runtime"` rules can still reject it.
94
+ ...(value.provenance !== undefined ? { provenance: value.provenance } : {}),
68
95
  ...(methods !== undefined ? { methods: Object.freeze(methods) } : {}),
69
96
  ...(paths !== undefined ? { paths: Object.freeze(paths) } : {}),
70
97
  });
71
98
  }
72
- /** Attach enforcement evidence to the middleware/plugin that installs it. */
73
- export function withRouteAssurance(target, declaration) {
74
- const values = Array.isArray(declaration) ? declaration : [declaration];
99
+ /** Validate and freeze declarations, one or many. */
100
+ export function normalizeAssuranceDeclarations(declaration) {
101
+ const values = Array.isArray(declaration)
102
+ ? declaration
103
+ : [declaration];
75
104
  if (values.length === 0)
76
105
  throw new Error("route assurance: at least one declaration is required");
106
+ return Object.freeze(values.map((value) => normalizeDeclaration(value)));
107
+ }
108
+ /** Attach enforcement evidence to the middleware/plugin that installs it. */
109
+ export function withRouteAssurance(target, declaration) {
77
110
  const previous = declarations.get(target) ?? [];
78
- declarations.set(target, Object.freeze([...previous, ...values.map((value) => normalizeDeclaration(value))]));
111
+ declarations.set(target, Object.freeze([...previous, ...normalizeAssuranceDeclarations(declaration)]));
79
112
  return target;
80
113
  }
81
114
  export function assuranceDeclarationsOf(value) {
@@ -97,7 +130,7 @@ export function assuranceEvidenceFor(declarationsToApply, method, path) {
97
130
  if (seen.has(key))
98
131
  continue;
99
132
  seen.add(key);
100
- evidence.push(Object.freeze({ id: declaration.id, source: declaration.source }));
133
+ evidence.push(evidenceWithProvenance(declaration.id, declaration.source, declaration.provenance === "declared" ? "declared" : "runtime"));
101
134
  }
102
135
  return Object.freeze(evidence);
103
136
  }