@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.
Files changed (331) hide show
  1. package/README.md +26 -0
  2. package/dist/assurance.d.ts +7 -0
  3. package/dist/assurance.d.ts.map +1 -1
  4. package/dist/assurance.js +39 -3
  5. package/dist/assurance.js.map +1 -1
  6. package/dist/capabilities.d.ts +20 -2
  7. package/dist/capabilities.d.ts.map +1 -1
  8. package/dist/capabilities.js +47 -15
  9. package/dist/capabilities.js.map +1 -1
  10. package/dist/diff.d.ts +6 -1
  11. package/dist/diff.d.ts.map +1 -1
  12. package/dist/diff.js +36 -2
  13. package/dist/diff.js.map +1 -1
  14. package/dist/durable-adapters.d.ts.map +1 -1
  15. package/dist/durable-adapters.js +16 -3
  16. package/dist/durable-adapters.js.map +1 -1
  17. package/dist/durable-effect.d.ts.map +1 -1
  18. package/dist/durable-effect.js +6 -3
  19. package/dist/durable-effect.js.map +1 -1
  20. package/dist/edge-kit.d.ts +2 -0
  21. package/dist/edge-kit.d.ts.map +1 -1
  22. package/dist/edge-kit.js +2 -0
  23. package/dist/edge-kit.js.map +1 -1
  24. package/dist/effect-lifecycle.d.ts.map +1 -1
  25. package/dist/effect-lifecycle.js +2 -1
  26. package/dist/effect-lifecycle.js.map +1 -1
  27. package/dist/effect-scope.d.ts.map +1 -1
  28. package/dist/effect-scope.js +1 -1
  29. package/dist/effect-scope.js.map +1 -1
  30. package/dist/errors.d.ts +1 -1
  31. package/dist/errors.d.ts.map +1 -1
  32. package/dist/errors.js.map +1 -1
  33. package/dist/evidence.d.ts +36 -1
  34. package/dist/evidence.d.ts.map +1 -1
  35. package/dist/evidence.js +219 -13
  36. package/dist/evidence.js.map +1 -1
  37. package/dist/idempotency.d.ts +31 -0
  38. package/dist/idempotency.d.ts.map +1 -1
  39. package/dist/idempotency.js +48 -9
  40. package/dist/idempotency.js.map +1 -1
  41. package/dist/index.d.ts +9 -6
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +6 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/internal/code-unit-order.d.ts +7 -0
  46. package/dist/internal/code-unit-order.d.ts.map +1 -0
  47. package/dist/internal/code-unit-order.js +9 -0
  48. package/dist/internal/code-unit-order.js.map +1 -0
  49. package/dist/internal/durable-saga-protocol.d.ts.map +1 -1
  50. package/dist/internal/durable-saga-protocol.js +2 -0
  51. package/dist/internal/durable-saga-protocol.js.map +1 -1
  52. package/dist/internal/route-catalog.d.ts +6 -6
  53. package/dist/internal/route-catalog.d.ts.map +1 -1
  54. package/dist/internal/route-catalog.js +20 -18
  55. package/dist/internal/route-catalog.js.map +1 -1
  56. package/dist/internal/route-compiler.d.ts +7 -6
  57. package/dist/internal/route-compiler.d.ts.map +1 -1
  58. package/dist/internal/route-compiler.js +36 -4
  59. package/dist/internal/route-compiler.js.map +1 -1
  60. package/dist/internal/route-execution.d.ts +7 -3
  61. package/dist/internal/route-execution.d.ts.map +1 -1
  62. package/dist/internal/route-execution.js.map +1 -1
  63. package/dist/internal/route-lanes.d.ts +1 -0
  64. package/dist/internal/route-lanes.d.ts.map +1 -1
  65. package/dist/internal/route-lanes.js +34 -29
  66. package/dist/internal/route-lanes.js.map +1 -1
  67. package/dist/internal/route-program.d.ts +8 -2
  68. package/dist/internal/route-program.d.ts.map +1 -1
  69. package/dist/internal/route-program.js +222 -20
  70. package/dist/internal/route-program.js.map +1 -1
  71. package/dist/ledger.d.ts.map +1 -1
  72. package/dist/ledger.js +8 -5
  73. package/dist/ledger.js.map +1 -1
  74. package/dist/manifest.d.ts +1 -1
  75. package/dist/manifest.d.ts.map +1 -1
  76. package/dist/manifest.js +52 -46
  77. package/dist/manifest.js.map +1 -1
  78. package/dist/mount.d.ts +36 -0
  79. package/dist/mount.d.ts.map +1 -1
  80. package/dist/mount.js +32 -0
  81. package/dist/mount.js.map +1 -1
  82. package/dist/reflection.d.ts +26 -0
  83. package/dist/reflection.d.ts.map +1 -1
  84. package/dist/reflection.js +65 -1
  85. package/dist/reflection.js.map +1 -1
  86. package/dist/response-observer.d.ts +1 -1
  87. package/dist/response-observer.d.ts.map +1 -1
  88. package/dist/response-observer.js.map +1 -1
  89. package/dist/router/overlap.d.ts +23 -0
  90. package/dist/router/overlap.d.ts.map +1 -0
  91. package/dist/router/overlap.js +224 -0
  92. package/dist/router/overlap.js.map +1 -0
  93. package/dist/router/pattern.d.ts +117 -2
  94. package/dist/router/pattern.d.ts.map +1 -1
  95. package/dist/router/pattern.js +283 -23
  96. package/dist/router/pattern.js.map +1 -1
  97. package/dist/router/router.d.ts +18 -4
  98. package/dist/router/router.d.ts.map +1 -1
  99. package/dist/router/router.js +51 -44
  100. package/dist/router/router.js.map +1 -1
  101. package/dist/server/auth.d.ts +53 -0
  102. package/dist/server/auth.d.ts.map +1 -0
  103. package/dist/server/auth.js +9 -0
  104. package/dist/server/auth.js.map +1 -0
  105. package/dist/server/bare-error-lane.d.ts +12 -7
  106. package/dist/server/bare-error-lane.d.ts.map +1 -1
  107. package/dist/server/bare-error-lane.js +13 -11
  108. package/dist/server/bare-error-lane.js.map +1 -1
  109. package/dist/server/body-lane.d.ts +20 -2
  110. package/dist/server/body-lane.d.ts.map +1 -1
  111. package/dist/server/body-lane.js +26 -7
  112. package/dist/server/body-lane.js.map +1 -1
  113. package/dist/server/body-parser.d.ts +68 -0
  114. package/dist/server/body-parser.d.ts.map +1 -0
  115. package/dist/server/body-parser.js +172 -0
  116. package/dist/server/body-parser.js.map +1 -0
  117. package/dist/server/body.d.ts.map +1 -1
  118. package/dist/server/body.js +62 -7
  119. package/dist/server/body.js.map +1 -1
  120. package/dist/server/client-ip.d.ts +8 -0
  121. package/dist/server/client-ip.d.ts.map +1 -1
  122. package/dist/server/client-ip.js +8 -0
  123. package/dist/server/client-ip.js.map +1 -1
  124. package/dist/server/context.d.ts +71 -6
  125. package/dist/server/context.d.ts.map +1 -1
  126. package/dist/server/contract.d.ts +15 -5
  127. package/dist/server/contract.d.ts.map +1 -1
  128. package/dist/server/contract.js +25 -4
  129. package/dist/server/contract.js.map +1 -1
  130. package/dist/server/cookies.d.ts +4 -1
  131. package/dist/server/cookies.d.ts.map +1 -1
  132. package/dist/server/cookies.js +40 -2
  133. package/dist/server/cookies.js.map +1 -1
  134. package/dist/server/core-copies.d.ts +2 -0
  135. package/dist/server/core-copies.d.ts.map +1 -0
  136. package/dist/server/core-copies.js +20 -0
  137. package/dist/server/core-copies.js.map +1 -0
  138. package/dist/server/edge.d.ts.map +1 -1
  139. package/dist/server/edge.js +2 -0
  140. package/dist/server/edge.js.map +1 -1
  141. package/dist/server/http.d.ts +11 -0
  142. package/dist/server/http.d.ts.map +1 -1
  143. package/dist/server/http.js +36 -0
  144. package/dist/server/http.js.map +1 -1
  145. package/dist/server/idempotency-lane.d.ts +6 -0
  146. package/dist/server/idempotency-lane.d.ts.map +1 -1
  147. package/dist/server/idempotency-lane.js +130 -73
  148. package/dist/server/idempotency-lane.js.map +1 -1
  149. package/dist/server/install.d.ts +4 -0
  150. package/dist/server/install.d.ts.map +1 -1
  151. package/dist/server/install.js +4 -0
  152. package/dist/server/install.js.map +1 -1
  153. package/dist/server/methods.d.ts +45 -0
  154. package/dist/server/methods.d.ts.map +1 -0
  155. package/dist/server/methods.js +37 -0
  156. package/dist/server/methods.js.map +1 -0
  157. package/dist/server/multipart.d.ts +63 -0
  158. package/dist/server/multipart.d.ts.map +1 -0
  159. package/dist/server/multipart.js +374 -0
  160. package/dist/server/multipart.js.map +1 -0
  161. package/dist/server/node-outcome-hook.d.ts +20 -0
  162. package/dist/server/node-outcome-hook.d.ts.map +1 -1
  163. package/dist/server/node-outcome-hook.js +15 -6
  164. package/dist/server/node-outcome-hook.js.map +1 -1
  165. package/dist/server/not-found-answer.d.ts +40 -0
  166. package/dist/server/not-found-answer.d.ts.map +1 -0
  167. package/dist/server/not-found-answer.js +56 -0
  168. package/dist/server/not-found-answer.js.map +1 -0
  169. package/dist/server/not-found.d.ts +23 -0
  170. package/dist/server/not-found.d.ts.map +1 -0
  171. package/dist/server/not-found.js +81 -0
  172. package/dist/server/not-found.js.map +1 -0
  173. package/dist/server/plugin.d.ts +26 -1
  174. package/dist/server/plugin.d.ts.map +1 -1
  175. package/dist/server/plugin.js.map +1 -1
  176. package/dist/server/proto-guard.d.ts +18 -5
  177. package/dist/server/proto-guard.d.ts.map +1 -1
  178. package/dist/server/proto-guard.js +114 -9
  179. package/dist/server/proto-guard.js.map +1 -1
  180. package/dist/server/query.d.ts +7 -0
  181. package/dist/server/query.d.ts.map +1 -1
  182. package/dist/server/query.js +47 -0
  183. package/dist/server/query.js.map +1 -1
  184. package/dist/server/registry.d.ts +13 -2
  185. package/dist/server/registry.d.ts.map +1 -1
  186. package/dist/server/request-context.d.ts +11 -0
  187. package/dist/server/request-context.d.ts.map +1 -1
  188. package/dist/server/request-context.js +33 -19
  189. package/dist/server/request-context.js.map +1 -1
  190. package/dist/server/request-lineage.d.ts +8 -0
  191. package/dist/server/request-lineage.d.ts.map +1 -0
  192. package/dist/server/request-lineage.js +14 -0
  193. package/dist/server/request-lineage.js.map +1 -0
  194. package/dist/server/request-target.d.ts +31 -0
  195. package/dist/server/request-target.d.ts.map +1 -0
  196. package/dist/server/request-target.js +44 -0
  197. package/dist/server/request-target.js.map +1 -0
  198. package/dist/server/respond.d.ts +1 -1
  199. package/dist/server/respond.d.ts.map +1 -1
  200. package/dist/server/respond.js +16 -4
  201. package/dist/server/respond.js.map +1 -1
  202. package/dist/server/response-contract-lane.d.ts +19 -1
  203. package/dist/server/response-contract-lane.d.ts.map +1 -1
  204. package/dist/server/response-contract-lane.js +59 -14
  205. package/dist/server/response-contract-lane.js.map +1 -1
  206. package/dist/server/response-observer-runtime.d.ts +9 -5
  207. package/dist/server/response-observer-runtime.d.ts.map +1 -1
  208. package/dist/server/response-observer-runtime.js +10 -6
  209. package/dist/server/response-observer-runtime.js.map +1 -1
  210. package/dist/server/runtime-core.d.ts +2 -0
  211. package/dist/server/runtime-core.d.ts.map +1 -1
  212. package/dist/server/runtime-core.js.map +1 -1
  213. package/dist/server/server-types.d.ts +55 -3
  214. package/dist/server/server-types.d.ts.map +1 -1
  215. package/dist/server/server.d.ts +194 -19
  216. package/dist/server/server.d.ts.map +1 -1
  217. package/dist/server/server.js +1342 -274
  218. package/dist/server/server.js.map +1 -1
  219. package/dist/server/sse.d.ts.map +1 -1
  220. package/dist/server/sse.js +10 -7
  221. package/dist/server/sse.js.map +1 -1
  222. package/dist/server/static-headers.d.ts +3 -0
  223. package/dist/server/static-headers.d.ts.map +1 -1
  224. package/dist/server/static-headers.js +19 -1
  225. package/dist/server/static-headers.js.map +1 -1
  226. package/dist/server/transport-lane.d.ts +8 -0
  227. package/dist/server/transport-lane.d.ts.map +1 -1
  228. package/dist/server/transport-lane.js +9 -8
  229. package/dist/server/transport-lane.js.map +1 -1
  230. package/dist/server/validation.d.ts.map +1 -1
  231. package/dist/server/validation.js +5 -1
  232. package/dist/server/validation.js.map +1 -1
  233. package/dist/server/websocket.d.ts +10 -3
  234. package/dist/server/websocket.d.ts.map +1 -1
  235. package/dist/server/websocket.js +7 -4
  236. package/dist/server/websocket.js.map +1 -1
  237. package/dist/server/ws-bun.d.ts +2 -0
  238. package/dist/server/ws-bun.d.ts.map +1 -1
  239. package/dist/server/ws-bun.js +6 -3
  240. package/dist/server/ws-bun.js.map +1 -1
  241. package/dist/server/ws-hook.d.ts +2 -1
  242. package/dist/server/ws-hook.d.ts.map +1 -1
  243. package/dist/server.d.ts +8 -5
  244. package/dist/server.d.ts.map +1 -1
  245. package/dist/server.js +5 -2
  246. package/dist/server.js.map +1 -1
  247. package/dist/single-copy-register.js +5 -0
  248. package/dist/single-copy-register.js.map +1 -1
  249. package/dist/single-copy.d.ts +46 -3
  250. package/dist/single-copy.d.ts.map +1 -1
  251. package/dist/single-copy.js +125 -12
  252. package/dist/single-copy.js.map +1 -1
  253. package/dist/tool-contract.d.ts +23 -0
  254. package/dist/tool-contract.d.ts.map +1 -1
  255. package/dist/tool-contract.js +37 -3
  256. package/dist/tool-contract.js.map +1 -1
  257. package/dist/transport-codec.d.ts.map +1 -1
  258. package/dist/transport-codec.js +2 -1
  259. package/dist/transport-codec.js.map +1 -1
  260. package/package.json +27 -2
  261. package/src/assurance.ts +52 -2
  262. package/src/capabilities.ts +81 -22
  263. package/src/diff.ts +54 -7
  264. package/src/durable-adapters.ts +20 -3
  265. package/src/durable-effect.ts +10 -3
  266. package/src/edge-kit.ts +7 -0
  267. package/src/effect-lifecycle.ts +5 -1
  268. package/src/effect-scope.ts +2 -1
  269. package/src/errors.ts +3 -0
  270. package/src/evidence.ts +302 -12
  271. package/src/idempotency.ts +80 -9
  272. package/src/index.ts +41 -3
  273. package/src/internal/code-unit-order.ts +8 -0
  274. package/src/internal/durable-saga-protocol.ts +2 -0
  275. package/src/internal/route-catalog.ts +19 -18
  276. package/src/internal/route-compiler.ts +62 -13
  277. package/src/internal/route-execution.ts +13 -3
  278. package/src/internal/route-lanes.ts +37 -28
  279. package/src/internal/route-program.ts +434 -20
  280. package/src/ledger.ts +11 -5
  281. package/src/manifest.ts +52 -46
  282. package/src/mount.ts +62 -0
  283. package/src/reflection.ts +84 -1
  284. package/src/response-observer.ts +1 -0
  285. package/src/router/overlap.ts +258 -0
  286. package/src/router/pattern.ts +349 -25
  287. package/src/router/router.ts +76 -51
  288. package/src/server/auth.ts +75 -0
  289. package/src/server/bare-error-lane.ts +12 -11
  290. package/src/server/body-lane.ts +46 -6
  291. package/src/server/body-parser.ts +241 -0
  292. package/src/server/body.ts +82 -9
  293. package/src/server/client-ip.ts +9 -0
  294. package/src/server/context.ts +219 -12
  295. package/src/server/contract.ts +54 -9
  296. package/src/server/cookies.ts +34 -2
  297. package/src/server/core-copies.ts +21 -0
  298. package/src/server/edge.ts +2 -0
  299. package/src/server/http.ts +34 -0
  300. package/src/server/idempotency-lane.ts +147 -72
  301. package/src/server/install.ts +6 -0
  302. package/src/server/methods.ts +143 -0
  303. package/src/server/multipart.ts +424 -0
  304. package/src/server/node-outcome-hook.ts +40 -7
  305. package/src/server/not-found-answer.ts +109 -0
  306. package/src/server/not-found.ts +121 -0
  307. package/src/server/plugin.ts +45 -1
  308. package/src/server/proto-guard.ts +128 -9
  309. package/src/server/query.ts +49 -0
  310. package/src/server/registry.ts +17 -2
  311. package/src/server/request-context.ts +44 -16
  312. package/src/server/request-lineage.ts +15 -0
  313. package/src/server/request-target.ts +46 -0
  314. package/src/server/respond.ts +14 -3
  315. package/src/server/response-contract-lane.ts +97 -16
  316. package/src/server/response-observer-runtime.ts +37 -8
  317. package/src/server/runtime-core.ts +2 -0
  318. package/src/server/server-types.ts +61 -2
  319. package/src/server/server.ts +1798 -355
  320. package/src/server/sse.ts +10 -8
  321. package/src/server/static-headers.ts +22 -1
  322. package/src/server/transport-lane.ts +17 -9
  323. package/src/server/validation.ts +7 -1
  324. package/src/server/websocket.ts +23 -9
  325. package/src/server/ws-bun.ts +8 -3
  326. package/src/server/ws-hook.ts +2 -1
  327. package/src/server.ts +39 -2
  328. package/src/single-copy-register.ts +5 -0
  329. package/src/single-copy.ts +160 -12
  330. package/src/tool-contract.ts +66 -3
  331. 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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"}
@@ -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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"effect-scope.js","sourceRoot":"","sources":["../src/effect-scope.ts"],"names":[],"mappings":"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"}
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,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QACpD,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;IACpD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,yBAAyB;IACvC,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IACpD,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,QAAQ;YACN,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,CAAC,EAAE,CAAC,CAAA;QAClE,CAAC;QACD,SAAS;YACP,SAAS,CAAC,KAAK,GAAG,IAAI,CAAA;YACtB,aAAa,GAAG,KAAK,CAAA;YACrB,SAAS,EAAE,CAAA;QACb,CAAC;QACD,aAAa;YACX,SAAS,CAAC,KAAK,GAAG,IAAI,CAAA;YACtB,SAAS,CAAC,SAAS,GAAG,IAAI,CAAA;YAC1B,IAAI,SAAS,GAAG,CAAC;gBAAE,SAAS,EAAE,CAAA;QAChC,CAAC;QACD,aAAa;YACX,SAAS,CAAC,KAAK,GAAG,IAAI,CAAA;YACtB,aAAa,GAAG,KAAK,CAAA;YACrB,IAAI,SAAS,KAAK,CAAC;gBAAE,SAAS,GAAG,CAAC,CAAA;QACpC,CAAC;QACD,UAAU;YACR,SAAS,CAAC,KAAK,GAAG,IAAI,CAAA;YACtB,aAAa,GAAG,KAAK,CAAA;YACrB,IAAI,SAAS,GAAG,CAAC;gBAAE,SAAS,EAAE,CAAA;QAChC,CAAC;QACD,eAAe;YACb,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;YAC1F,CAAC;YACD,aAAa,GAAG,IAAI,CAAA;QACtB,CAAC;QACD,WAAW;YACT,OAAO,aAAa,IAAI,CAAC,SAAS,CAAC,KAAK,CAAA;QAC1C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,UAA8B,EAAE,EAChC,gBAAqC,yBAAyB,EAAE;IAEhE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEhE,MAAM,KAAK,GAAgB;QACzB,KAAK,CAAC,GAAG,CACP,KAA+B,EAC/B,OAA4D;YAE5D,IAAI,OAAO,OAAO,KAAK,UAAU;gBAC/B,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAA;YACjE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC;gBACtC,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAA;YAC1C,cAAc,CAAC,QAAQ,CAAC,CAAA;YACxB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE,CAAA;YAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,WAAW,CAAA;YACxC,IACE,KAAK,CAAC,OAAO,KAAK,SAAS;gBAC3B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;gBAE3D,MAAM,IAAI,UAAU,CAAC,sDAAsD,CAAC,CAAA;YAC9E,MAAM,OAAO,GAAuB,MAAM,CAAC,MAAM,CAAC;gBAChD,QAAQ;gBACR,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,KAAK;gBACL,MAAM;gBACN,GAAG,QAAQ;gBACX,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;aACnE,CAAC,CAAA;YACF,MAAM,YAAY,GAChB,KAAK,CAAC,SAAS,KAAK,SAAS;gBAC3B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;YACvD,IAAI,KAAK,GAAG,KAAK,CAAA;YACjB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;YACnC,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,MAAM,CAAC,MAAM,CAAA;gBACvC,MAAM,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,CAAA;gBAC1C,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC9B,mBAAmB,CAAC,YAAY,EAAE;wBAChC,GAAG,OAAO;wBACV,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,SAAS;wBAChB,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;qBAC7D,CAAC,CAAA;oBACF,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;oBAC1B,mBAAmB,CAAC,YAAY,EAAE;wBAChC,GAAG,OAAO;wBACV,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,WAAW;wBAClB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;wBACtD,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;qBAC7D,CAAC,CAAA;gBACJ,CAAC;gBACD,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,MAAM,CAAC,MAAM,CAAA;gBACvC,MAAM,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAA;gBAC7C,KAAK,GAAG,IAAI,CAAA;gBACZ,aAAa,CAAC,SAAS,EAAE,CAAA;gBACzB,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;gBAC5C,mBAAmB,CAAC,YAAY,EAAE;oBAChC,GAAG,OAAO;oBACV,KAAK,EAAE,SAAS;oBAChB,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;iBAC7D,CAAC,CAAA;gBACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;gBACrC,MAAM,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACrD,aAAa,CAAC,aAAa,EAAE,CAAA;gBAC7B,mBAAmB,CAAC,YAAY,EAAE;oBAChC,GAAG,OAAO;oBACV,KAAK,EAAE,WAAW;oBAClB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC;oBAC/D,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;iBAC7D,CAAC,CAAA;gBACF,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;gBACxD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;gBAC3F,IAAI,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;oBAC9D,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAA;gBAC5E,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;gBACzE,CAAC;gBAAC,MAAM,CAAC;oBACP,uFAAuF;gBACzF,CAAC;gBACD,IAAI,KAAK,IAAI,YAAY,KAAK,QAAQ;oBAAE,aAAa,CAAC,UAAU,EAAE,CAAA;gBAClE,mBAAmB,CAAC,YAAY,EAAE;oBAChC,GAAG,OAAO;oBACV,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;oBACtE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;oBACtC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBACtD,SAAS;oBACT,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;iBAC7D,CAAC,CAAA;gBACF,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE;QACxC,SAAS,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE;QAC1C,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE;QAClD,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE;QAClD,UAAU,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE;QAC5C,eAAe,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE;QACtD,WAAW,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE;KAC/C,CAAA;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC"}
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,
@@ -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;AAExB;;;;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,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"}
@@ -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;AAgBD;;;;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;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"}
@@ -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. */
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
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.localeCompare(b.id) || a.source.localeCompare(b.source)));
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.localeCompare(b.id) ||
64
- a.kind.localeCompare(b.kind) ||
65
- a.source.localeCompare(b.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.localeCompare(b.path) || a.method.localeCompare(b.method)));
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.localeCompare(b.path) ||
100
- a.method.localeCompare(b.method) ||
101
- a.code.localeCompare(b.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.localeCompare(b.path) ||
119
- a.method.localeCompare(b.method) ||
120
- a.code.localeCompare(b.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
- reflectRoutes(source).map((route) => evidenceRouteOf(route, locations?.get(keyOf(route.method, route.path)))));
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);
@@ -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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"}
@@ -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;