@astrale-os/kernel-protocol 0.5.0-beta.7 → 0.5.0-beta.70

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 (556) hide show
  1. package/dist/artifact/index.d.ts +1 -2
  2. package/dist/artifact/index.js +1 -2
  3. package/dist/artifact/ref.d.ts +2 -1
  4. package/dist/artifact/ref.js +4 -4
  5. package/dist/codecs/codec.d.ts +0 -1
  6. package/dist/codecs/codec.js +0 -1
  7. package/dist/codecs/index.d.ts +1 -3
  8. package/dist/codecs/index.js +1 -3
  9. package/dist/codecs/json.d.ts +0 -1
  10. package/dist/codecs/json.js +0 -1
  11. package/dist/codecs/media-types.d.ts +0 -2
  12. package/dist/codecs/media-types.js +0 -2
  13. package/dist/errors/codes.d.ts +0 -1
  14. package/dist/errors/codes.js +0 -1
  15. package/dist/errors/http-status.d.ts +0 -1
  16. package/dist/errors/http-status.js +0 -1
  17. package/dist/errors/index.d.ts +1 -1
  18. package/dist/errors/index.js +1 -1
  19. package/dist/errors/payload.d.ts +0 -1
  20. package/dist/errors/payload.js +3 -3
  21. package/dist/errors/protocol-error.d.ts +0 -1
  22. package/dist/errors/protocol-error.js +4 -3
  23. package/dist/errors/reason.d.ts +0 -1
  24. package/dist/errors/reason.js +0 -1
  25. package/dist/errors/retry.d.ts +23 -0
  26. package/dist/errors/retry.js +44 -0
  27. package/dist/index.d.ts +3 -2
  28. package/dist/index.js +3 -2
  29. package/dist/invocation/admission.d.ts +2 -3
  30. package/dist/invocation/admission.js +7 -11
  31. package/dist/invocation/binary.d.ts +1 -1
  32. package/dist/invocation/binary.js +21 -5
  33. package/dist/invocation/binding-codecs.d.ts +1 -2
  34. package/dist/invocation/binding-codecs.js +1 -7
  35. package/dist/invocation/cancellation.d.ts +0 -1
  36. package/dist/invocation/cancellation.js +0 -1
  37. package/dist/invocation/correlation.d.ts +0 -1
  38. package/dist/invocation/correlation.js +0 -1
  39. package/dist/invocation/delegate.d.ts +1 -11
  40. package/dist/invocation/delegate.js +4 -19
  41. package/dist/invocation/http/binary.d.ts +3 -2
  42. package/dist/invocation/http/binary.js +6 -2
  43. package/dist/invocation/http/index.d.ts +2 -2
  44. package/dist/invocation/http/index.js +2 -2
  45. package/dist/invocation/http/negotiation.d.ts +0 -1
  46. package/dist/invocation/http/negotiation.js +3 -11
  47. package/dist/invocation/http/request.d.ts +9 -0
  48. package/dist/invocation/http/request.js +61 -0
  49. package/dist/invocation/http/stream.d.ts +0 -1
  50. package/dist/invocation/http/stream.js +0 -1
  51. package/dist/invocation/http/trace.d.ts +0 -1
  52. package/dist/invocation/http/trace.js +0 -1
  53. package/dist/invocation/idempotency.d.ts +0 -1
  54. package/dist/invocation/idempotency.js +0 -1
  55. package/dist/invocation/identity.d.ts +0 -1
  56. package/dist/invocation/identity.js +0 -1
  57. package/dist/invocation/index.d.ts +6 -4
  58. package/dist/invocation/index.js +5 -4
  59. package/dist/invocation/legacy/index.d.ts +29 -0
  60. package/dist/invocation/legacy/index.js +28 -0
  61. package/dist/invocation/legacy/route.d.ts +14 -0
  62. package/dist/invocation/legacy/route.js +25 -0
  63. package/dist/invocation/legacy/via.d.ts +30 -0
  64. package/dist/invocation/legacy/via.js +15 -0
  65. package/dist/invocation/miss.d.ts +0 -1
  66. package/dist/invocation/miss.js +0 -1
  67. package/dist/invocation/redirect.d.ts +15 -13
  68. package/dist/invocation/redirect.js +9 -22
  69. package/dist/invocation/request.d.ts +0 -1
  70. package/dist/invocation/request.js +2 -3
  71. package/dist/invocation/response.d.ts +0 -1
  72. package/dist/invocation/response.js +0 -1
  73. package/dist/invocation/routing.d.ts +19 -6
  74. package/dist/invocation/routing.js +50 -21
  75. package/dist/invocation/schema.d.ts +6 -5
  76. package/dist/invocation/schema.js +5 -12
  77. package/dist/invocation/service-reason.d.ts +21 -17
  78. package/dist/invocation/service-reason.js +27 -20
  79. package/dist/invocation/stale-route.d.ts +1 -2
  80. package/dist/invocation/stale-route.js +0 -1
  81. package/dist/invocation/stream.d.ts +0 -1
  82. package/dist/invocation/stream.js +0 -1
  83. package/dist/invocation/target.d.ts +5 -3
  84. package/dist/invocation/target.js +25 -4
  85. package/dist/invocation/trace.d.ts +0 -1
  86. package/dist/invocation/trace.js +0 -1
  87. package/dist/invocation/version.d.ts +0 -1
  88. package/dist/invocation/version.js +0 -1
  89. package/dist/invocation/websocket/binary.d.ts +0 -1
  90. package/dist/invocation/websocket/binary.js +1 -1
  91. package/dist/invocation/websocket/index.d.ts +1 -2
  92. package/dist/invocation/websocket/index.js +1 -2
  93. package/dist/invocation/websocket/subprotocol.d.ts +1 -3
  94. package/dist/invocation/websocket/subprotocol.js +3 -5
  95. package/dist/issuer/claims.d.ts +7 -0
  96. package/dist/issuer/claims.js +7 -0
  97. package/dist/issuer/configuration.d.ts +0 -1
  98. package/dist/issuer/configuration.js +0 -1
  99. package/dist/issuer/error.d.ts +0 -1
  100. package/dist/issuer/error.js +0 -1
  101. package/dist/issuer/exchange.d.ts +0 -1
  102. package/dist/issuer/exchange.js +0 -1
  103. package/dist/issuer/hosted.d.ts +0 -1
  104. package/dist/issuer/hosted.js +0 -1
  105. package/dist/issuer/index.d.ts +2 -1
  106. package/dist/issuer/index.js +2 -1
  107. package/dist/issuer/key-set.d.ts +0 -1
  108. package/dist/issuer/key-set.js +0 -1
  109. package/dist/issuer/paths.d.ts +2 -1
  110. package/dist/issuer/paths.js +1 -1
  111. package/dist/issuer/url.d.ts +0 -1
  112. package/dist/issuer/url.js +0 -1
  113. package/dist/issuer/workflow-engine.d.ts +18 -0
  114. package/dist/issuer/workflow-engine.js +59 -0
  115. package/dist/{publication → release}/bindings/callable.d.ts +0 -1
  116. package/dist/release/bindings/callable.js +34 -0
  117. package/dist/{publication → release}/bindings/index.d.ts +1 -2
  118. package/dist/{publication → release}/bindings/index.js +0 -1
  119. package/dist/{publication → release}/bindings/invocation.d.ts +0 -1
  120. package/dist/release/bindings/invocation.js +13 -0
  121. package/dist/release/bindings/view.d.ts +16 -0
  122. package/dist/release/bindings/view.js +148 -0
  123. package/dist/release/build.d.ts +6 -0
  124. package/dist/release/build.js +7 -0
  125. package/dist/release/bundle-admission.d.ts +21 -0
  126. package/dist/release/bundle-admission.js +66 -0
  127. package/dist/{publication → release}/bundle-descriptor.d.ts +0 -1
  128. package/dist/release/bundle-descriptor.js +19 -0
  129. package/dist/release/bundle-evidence.d.ts +3 -0
  130. package/dist/release/bundle-evidence.js +13 -0
  131. package/dist/release/bundle.d.ts +12 -0
  132. package/dist/{publication → release}/bundle.js +16 -11
  133. package/dist/{publication → release}/declaration.d.ts +0 -1
  134. package/dist/release/declaration.js +1 -0
  135. package/dist/{publication → release}/delivery/attestation.d.ts +1 -1
  136. package/dist/{publication → release}/delivery/attestation.js +0 -1
  137. package/dist/release/delivery/claims.d.ts +21 -0
  138. package/dist/release/delivery/claims.js +68 -0
  139. package/dist/release/delivery/delivery.d.ts +11 -0
  140. package/dist/release/delivery/delivery.js +24 -0
  141. package/dist/{publication → release}/delivery/error.d.ts +2 -1
  142. package/dist/{publication → release}/delivery/error.js +1 -1
  143. package/dist/{publication → release}/delivery/index.d.ts +6 -2
  144. package/dist/{publication → release}/delivery/index.js +5 -1
  145. package/dist/{publication → release}/delivery/limits.d.ts +2 -2
  146. package/dist/release/delivery/limits.js +5 -0
  147. package/dist/release/delivery/request.d.ts +21 -0
  148. package/dist/release/delivery/request.js +60 -0
  149. package/dist/{publication → release}/delivery-declaration.d.ts +0 -1
  150. package/dist/{publication → release}/delivery-declaration.js +4 -5
  151. package/dist/{publication → release}/delivery-endpoint.d.ts +0 -1
  152. package/dist/release/delivery-endpoint.js +22 -0
  153. package/dist/release/digest.d.ts +13 -0
  154. package/dist/{publication/etag.js → release/digest.js} +1 -7
  155. package/dist/release/error.d.ts +7 -0
  156. package/dist/release/error.js +11 -0
  157. package/dist/release/index.d.ts +21 -0
  158. package/dist/release/index.js +14 -0
  159. package/dist/release/issuer.d.ts +5 -0
  160. package/dist/release/issuer.js +34 -0
  161. package/dist/release/legacy/bindings.d.ts +14 -0
  162. package/dist/release/legacy/bindings.js +11 -0
  163. package/dist/release/legacy/bundle-admission.d.ts +6 -0
  164. package/dist/release/legacy/bundle-admission.js +10 -0
  165. package/dist/release/legacy/bundle-evidence.d.ts +8 -0
  166. package/dist/release/legacy/bundle-evidence.js +11 -0
  167. package/dist/release/legacy/bundle.d.ts +24 -0
  168. package/dist/release/legacy/bundle.js +31 -0
  169. package/dist/release/legacy/delivery/attestation.d.ts +6 -0
  170. package/dist/release/legacy/delivery/attestation.js +1 -0
  171. package/dist/{publication → release/legacy}/delivery/claims.d.ts +10 -2
  172. package/dist/{publication → release/legacy}/delivery/claims.js +7 -3
  173. package/dist/release/legacy/delivery/delivery.d.ts +18 -0
  174. package/dist/{publication → release/legacy}/delivery/delivery.js +6 -3
  175. package/dist/release/legacy/delivery/error.d.ts +16 -0
  176. package/dist/release/legacy/delivery/error.js +6 -0
  177. package/dist/release/legacy/delivery/index.d.ts +13 -0
  178. package/dist/release/legacy/delivery/index.js +13 -0
  179. package/dist/release/legacy/delivery/limits.d.ts +21 -0
  180. package/dist/release/legacy/delivery/limits.js +22 -0
  181. package/dist/release/legacy/delivery/request.d.ts +26 -0
  182. package/dist/{publication → release/legacy}/delivery/request.js +8 -4
  183. package/dist/release/legacy/delivery-declaration.d.ts +9 -0
  184. package/dist/release/legacy/delivery-declaration.js +11 -0
  185. package/dist/release/legacy/error.d.ts +26 -0
  186. package/dist/release/legacy/error.js +114 -0
  187. package/dist/release/legacy/etag.d.ts +12 -0
  188. package/dist/release/legacy/etag.js +14 -0
  189. package/dist/release/legacy/index.d.ts +75 -0
  190. package/dist/release/legacy/index.js +15 -0
  191. package/dist/release/legacy/profiles.d.ts +23 -0
  192. package/dist/release/legacy/profiles.js +36 -0
  193. package/dist/release/legacy/projection.d.ts +13 -0
  194. package/dist/release/legacy/projection.js +25 -0
  195. package/dist/release/legacy/publication.d.ts +90 -0
  196. package/dist/release/legacy/publication.js +124 -0
  197. package/dist/release/legacy/reference.d.ts +47 -0
  198. package/dist/{publication → release/legacy}/reference.js +27 -4
  199. package/dist/release/legacy/requirements.d.ts +30 -0
  200. package/dist/release/legacy/requirements.js +20 -0
  201. package/dist/{publication → release}/manifest.d.ts +2 -3
  202. package/dist/release/manifest.js +30 -0
  203. package/dist/release/reference.d.ts +26 -0
  204. package/dist/release/reference.js +70 -0
  205. package/dist/release/release.d.ts +60 -0
  206. package/dist/release/release.js +123 -0
  207. package/dist/release/requirements.d.ts +41 -0
  208. package/dist/release/requirements.js +306 -0
  209. package/dist/{publication → release}/route.d.ts +0 -1
  210. package/dist/{publication → release}/route.js +24 -25
  211. package/dist/{publication → release}/schema.d.ts +1 -2
  212. package/dist/{publication → release}/schema.js +4 -5
  213. package/dist/release/served.d.ts +26 -0
  214. package/dist/release/served.js +65 -0
  215. package/dist/release/shape.d.ts +8 -0
  216. package/dist/{publication/content.js → release/shape.js} +0 -1
  217. package/dist/routes/admission.d.ts +1 -2
  218. package/dist/routes/admission.js +7 -86
  219. package/dist/routes/binding.d.ts +4 -5
  220. package/dist/routes/binding.js +11 -22
  221. package/dist/routes/collision.d.ts +0 -1
  222. package/dist/routes/collision.js +0 -1
  223. package/dist/routes/compiler.d.ts +4 -5
  224. package/dist/routes/compiler.js +20 -13
  225. package/dist/routes/credential.d.ts +12 -2
  226. package/dist/routes/credential.js +11 -4
  227. package/dist/routes/decode.d.ts +6 -4
  228. package/dist/routes/decode.js +32 -30
  229. package/dist/routes/deployment-retired.d.ts +30 -0
  230. package/dist/routes/deployment-retired.js +96 -0
  231. package/dist/routes/encode.d.ts +2 -3
  232. package/dist/routes/encode.js +22 -20
  233. package/dist/routes/entries.d.ts +23 -0
  234. package/dist/routes/entries.js +150 -0
  235. package/dist/routes/error-response.d.ts +0 -1
  236. package/dist/routes/error-response.js +0 -1
  237. package/dist/routes/error.d.ts +0 -1
  238. package/dist/routes/error.js +0 -1
  239. package/dist/routes/evidence.d.ts +4 -5
  240. package/dist/routes/evidence.js +8 -34
  241. package/dist/routes/header.d.ts +9 -0
  242. package/dist/routes/header.js +34 -0
  243. package/dist/routes/index.d.ts +5 -3
  244. package/dist/routes/index.js +5 -3
  245. package/dist/routes/legacy/index.d.ts +29 -0
  246. package/dist/routes/legacy/index.js +29 -0
  247. package/dist/routes/legacy/routing.d.ts +24 -0
  248. package/dist/routes/legacy/routing.js +45 -0
  249. package/dist/routes/legacy/table.d.ts +34 -0
  250. package/dist/routes/legacy/table.js +50 -0
  251. package/dist/routes/mapping.d.ts +1 -2
  252. package/dist/routes/mapping.js +4 -5
  253. package/dist/routes/match.d.ts +1 -2
  254. package/dist/routes/match.js +0 -1
  255. package/dist/routes/placement.d.ts +2 -3
  256. package/dist/routes/placement.js +1 -2
  257. package/dist/routes/plan.d.ts +6 -6
  258. package/dist/routes/plan.js +0 -1
  259. package/dist/routes/request.d.ts +5 -4
  260. package/dist/routes/request.js +0 -1
  261. package/dist/routes/reservation.d.ts +4 -3
  262. package/dist/routes/reservation.js +10 -4
  263. package/dist/routes/routing.d.ts +30 -7
  264. package/dist/routes/routing.js +34 -50
  265. package/dist/routes/scalar.d.ts +3 -4
  266. package/dist/routes/scalar.js +5 -6
  267. package/dist/routes/select.d.ts +1 -2
  268. package/dist/routes/select.js +0 -1
  269. package/dist/routes/stream.d.ts +0 -1
  270. package/dist/routes/stream.js +0 -1
  271. package/dist/routes/table.d.ts +3 -3
  272. package/dist/routes/table.js +0 -1
  273. package/dist/routes/target.d.ts +5 -1
  274. package/dist/routes/target.js +16 -1
  275. package/dist/routes/template.d.ts +0 -1
  276. package/dist/routes/template.js +0 -1
  277. package/dist/runtime/artifact.d.ts +8 -7
  278. package/dist/runtime/artifact.js +23 -11
  279. package/dist/runtime/index.d.ts +1 -2
  280. package/dist/runtime/index.js +1 -2
  281. package/dist/schema/index.d.ts +0 -1
  282. package/dist/schema/index.js +0 -1
  283. package/dist/schema/installation/codec.d.ts +9 -0
  284. package/dist/schema/installation/codec.js +74 -0
  285. package/dist/schema/installation/index.d.ts +2 -1
  286. package/dist/schema/installation/index.js +1 -1
  287. package/dist/schema/installation/introspection/codec.d.ts +14 -3
  288. package/dist/schema/installation/introspection/codec.js +323 -194
  289. package/dist/schema/installation/introspection/index.d.ts +2 -3
  290. package/dist/schema/installation/introspection/index.js +1 -2
  291. package/dist/schema/installation/introspection/result.d.ts +96 -23
  292. package/dist/schema/installation/introspection/result.js +0 -1
  293. package/dist/schema/installation/legacy/index.d.ts +39 -0
  294. package/dist/schema/installation/legacy/index.js +39 -0
  295. package/dist/schema/installation/legacy/installation.d.ts +9 -0
  296. package/dist/schema/installation/legacy/installation.js +28 -0
  297. package/dist/schema/installation/legacy/introspection.d.ts +10 -0
  298. package/dist/schema/installation/legacy/introspection.js +70 -0
  299. package/dist/schema/installation/legacy/msgpack.d.ts +1 -0
  300. package/dist/schema/installation/legacy/msgpack.js +143 -0
  301. package/dist/schema/installation/result.d.ts +9 -0
  302. package/dist/schema/installation/result.js +1 -0
  303. package/package.json +78 -37
  304. package/dist/artifact/index.d.ts.map +0 -1
  305. package/dist/artifact/index.js.map +0 -1
  306. package/dist/artifact/ref.d.ts.map +0 -1
  307. package/dist/artifact/ref.js.map +0 -1
  308. package/dist/codecs/codec.d.ts.map +0 -1
  309. package/dist/codecs/codec.js.map +0 -1
  310. package/dist/codecs/index.d.ts.map +0 -1
  311. package/dist/codecs/index.js.map +0 -1
  312. package/dist/codecs/json.d.ts.map +0 -1
  313. package/dist/codecs/json.js.map +0 -1
  314. package/dist/codecs/media-types.d.ts.map +0 -1
  315. package/dist/codecs/media-types.js.map +0 -1
  316. package/dist/codecs/msgpack.d.ts +0 -5
  317. package/dist/codecs/msgpack.d.ts.map +0 -1
  318. package/dist/codecs/msgpack.js +0 -51
  319. package/dist/codecs/msgpack.js.map +0 -1
  320. package/dist/errors/codes.d.ts.map +0 -1
  321. package/dist/errors/codes.js.map +0 -1
  322. package/dist/errors/http-status.d.ts.map +0 -1
  323. package/dist/errors/http-status.js.map +0 -1
  324. package/dist/errors/index.d.ts.map +0 -1
  325. package/dist/errors/index.js.map +0 -1
  326. package/dist/errors/payload.d.ts.map +0 -1
  327. package/dist/errors/payload.js.map +0 -1
  328. package/dist/errors/protocol-error.d.ts.map +0 -1
  329. package/dist/errors/protocol-error.js.map +0 -1
  330. package/dist/errors/reason.d.ts.map +0 -1
  331. package/dist/errors/reason.js.map +0 -1
  332. package/dist/index.d.ts.map +0 -1
  333. package/dist/index.js.map +0 -1
  334. package/dist/invocation/admission.d.ts.map +0 -1
  335. package/dist/invocation/admission.js.map +0 -1
  336. package/dist/invocation/binary.d.ts.map +0 -1
  337. package/dist/invocation/binary.js.map +0 -1
  338. package/dist/invocation/binding-codecs.d.ts.map +0 -1
  339. package/dist/invocation/binding-codecs.js.map +0 -1
  340. package/dist/invocation/cancellation.d.ts.map +0 -1
  341. package/dist/invocation/cancellation.js.map +0 -1
  342. package/dist/invocation/correlation.d.ts.map +0 -1
  343. package/dist/invocation/correlation.js.map +0 -1
  344. package/dist/invocation/delegate.d.ts.map +0 -1
  345. package/dist/invocation/delegate.js.map +0 -1
  346. package/dist/invocation/http/binary.d.ts.map +0 -1
  347. package/dist/invocation/http/binary.js.map +0 -1
  348. package/dist/invocation/http/index.d.ts.map +0 -1
  349. package/dist/invocation/http/index.js.map +0 -1
  350. package/dist/invocation/http/negotiation.d.ts.map +0 -1
  351. package/dist/invocation/http/negotiation.js.map +0 -1
  352. package/dist/invocation/http/stream.d.ts.map +0 -1
  353. package/dist/invocation/http/stream.js.map +0 -1
  354. package/dist/invocation/http/trace.d.ts.map +0 -1
  355. package/dist/invocation/http/trace.js.map +0 -1
  356. package/dist/invocation/idempotency.d.ts.map +0 -1
  357. package/dist/invocation/idempotency.js.map +0 -1
  358. package/dist/invocation/identity.d.ts.map +0 -1
  359. package/dist/invocation/identity.js.map +0 -1
  360. package/dist/invocation/index.d.ts.map +0 -1
  361. package/dist/invocation/index.js.map +0 -1
  362. package/dist/invocation/miss.d.ts.map +0 -1
  363. package/dist/invocation/miss.js.map +0 -1
  364. package/dist/invocation/redirect.d.ts.map +0 -1
  365. package/dist/invocation/redirect.js.map +0 -1
  366. package/dist/invocation/request.d.ts.map +0 -1
  367. package/dist/invocation/request.js.map +0 -1
  368. package/dist/invocation/response.d.ts.map +0 -1
  369. package/dist/invocation/response.js.map +0 -1
  370. package/dist/invocation/routing.d.ts.map +0 -1
  371. package/dist/invocation/routing.js.map +0 -1
  372. package/dist/invocation/schema.d.ts.map +0 -1
  373. package/dist/invocation/schema.js.map +0 -1
  374. package/dist/invocation/service-reason.d.ts.map +0 -1
  375. package/dist/invocation/service-reason.js.map +0 -1
  376. package/dist/invocation/stale-route.d.ts.map +0 -1
  377. package/dist/invocation/stale-route.js.map +0 -1
  378. package/dist/invocation/stream.d.ts.map +0 -1
  379. package/dist/invocation/stream.js.map +0 -1
  380. package/dist/invocation/target.d.ts.map +0 -1
  381. package/dist/invocation/target.js.map +0 -1
  382. package/dist/invocation/trace.d.ts.map +0 -1
  383. package/dist/invocation/trace.js.map +0 -1
  384. package/dist/invocation/version.d.ts.map +0 -1
  385. package/dist/invocation/version.js.map +0 -1
  386. package/dist/invocation/websocket/binary.d.ts.map +0 -1
  387. package/dist/invocation/websocket/binary.js.map +0 -1
  388. package/dist/invocation/websocket/index.d.ts.map +0 -1
  389. package/dist/invocation/websocket/index.js.map +0 -1
  390. package/dist/invocation/websocket/subprotocol.d.ts.map +0 -1
  391. package/dist/invocation/websocket/subprotocol.js.map +0 -1
  392. package/dist/issuer/configuration.d.ts.map +0 -1
  393. package/dist/issuer/configuration.js.map +0 -1
  394. package/dist/issuer/error.d.ts.map +0 -1
  395. package/dist/issuer/error.js.map +0 -1
  396. package/dist/issuer/exchange.d.ts.map +0 -1
  397. package/dist/issuer/exchange.js.map +0 -1
  398. package/dist/issuer/hosted.d.ts.map +0 -1
  399. package/dist/issuer/hosted.js.map +0 -1
  400. package/dist/issuer/index.d.ts.map +0 -1
  401. package/dist/issuer/index.js.map +0 -1
  402. package/dist/issuer/key-set.d.ts.map +0 -1
  403. package/dist/issuer/key-set.js.map +0 -1
  404. package/dist/issuer/paths.d.ts.map +0 -1
  405. package/dist/issuer/paths.js.map +0 -1
  406. package/dist/issuer/url.d.ts.map +0 -1
  407. package/dist/issuer/url.js.map +0 -1
  408. package/dist/publication/bindings/callable.d.ts.map +0 -1
  409. package/dist/publication/bindings/callable.js +0 -32
  410. package/dist/publication/bindings/callable.js.map +0 -1
  411. package/dist/publication/bindings/index.d.ts.map +0 -1
  412. package/dist/publication/bindings/index.js.map +0 -1
  413. package/dist/publication/bindings/invocation.d.ts.map +0 -1
  414. package/dist/publication/bindings/invocation.js +0 -14
  415. package/dist/publication/bindings/invocation.js.map +0 -1
  416. package/dist/publication/bindings/view.d.ts +0 -8
  417. package/dist/publication/bindings/view.d.ts.map +0 -1
  418. package/dist/publication/bindings/view.js +0 -29
  419. package/dist/publication/bindings/view.js.map +0 -1
  420. package/dist/publication/bundle-admission.d.ts +0 -5
  421. package/dist/publication/bundle-admission.d.ts.map +0 -1
  422. package/dist/publication/bundle-admission.js +0 -66
  423. package/dist/publication/bundle-admission.js.map +0 -1
  424. package/dist/publication/bundle-descriptor.d.ts.map +0 -1
  425. package/dist/publication/bundle-descriptor.js +0 -20
  426. package/dist/publication/bundle-descriptor.js.map +0 -1
  427. package/dist/publication/bundle-evidence.d.ts +0 -4
  428. package/dist/publication/bundle-evidence.d.ts.map +0 -1
  429. package/dist/publication/bundle-evidence.js +0 -14
  430. package/dist/publication/bundle-evidence.js.map +0 -1
  431. package/dist/publication/bundle.d.ts +0 -10
  432. package/dist/publication/bundle.d.ts.map +0 -1
  433. package/dist/publication/bundle.js.map +0 -1
  434. package/dist/publication/content.d.ts +0 -11
  435. package/dist/publication/content.d.ts.map +0 -1
  436. package/dist/publication/content.js.map +0 -1
  437. package/dist/publication/declaration.d.ts.map +0 -1
  438. package/dist/publication/declaration.js +0 -2
  439. package/dist/publication/declaration.js.map +0 -1
  440. package/dist/publication/delivery/attestation.d.ts.map +0 -1
  441. package/dist/publication/delivery/attestation.js.map +0 -1
  442. package/dist/publication/delivery/claims.d.ts.map +0 -1
  443. package/dist/publication/delivery/claims.js.map +0 -1
  444. package/dist/publication/delivery/delivery.d.ts +0 -10
  445. package/dist/publication/delivery/delivery.d.ts.map +0 -1
  446. package/dist/publication/delivery/delivery.js.map +0 -1
  447. package/dist/publication/delivery/error.d.ts.map +0 -1
  448. package/dist/publication/delivery/error.js.map +0 -1
  449. package/dist/publication/delivery/index.d.ts.map +0 -1
  450. package/dist/publication/delivery/index.js.map +0 -1
  451. package/dist/publication/delivery/limits.d.ts.map +0 -1
  452. package/dist/publication/delivery/limits.js +0 -5
  453. package/dist/publication/delivery/limits.js.map +0 -1
  454. package/dist/publication/delivery/request.d.ts +0 -16
  455. package/dist/publication/delivery/request.d.ts.map +0 -1
  456. package/dist/publication/delivery/request.js.map +0 -1
  457. package/dist/publication/delivery-declaration.d.ts.map +0 -1
  458. package/dist/publication/delivery-declaration.js.map +0 -1
  459. package/dist/publication/delivery-endpoint.d.ts.map +0 -1
  460. package/dist/publication/delivery-endpoint.js +0 -23
  461. package/dist/publication/delivery-endpoint.js.map +0 -1
  462. package/dist/publication/error.d.ts +0 -8
  463. package/dist/publication/error.d.ts.map +0 -1
  464. package/dist/publication/error.js +0 -12
  465. package/dist/publication/error.js.map +0 -1
  466. package/dist/publication/etag.d.ts +0 -7
  467. package/dist/publication/etag.d.ts.map +0 -1
  468. package/dist/publication/etag.js.map +0 -1
  469. package/dist/publication/index.d.ts +0 -18
  470. package/dist/publication/index.d.ts.map +0 -1
  471. package/dist/publication/index.js +0 -11
  472. package/dist/publication/index.js.map +0 -1
  473. package/dist/publication/manifest.d.ts.map +0 -1
  474. package/dist/publication/manifest.js +0 -26
  475. package/dist/publication/manifest.js.map +0 -1
  476. package/dist/publication/publication.d.ts +0 -37
  477. package/dist/publication/publication.d.ts.map +0 -1
  478. package/dist/publication/publication.js +0 -131
  479. package/dist/publication/publication.js.map +0 -1
  480. package/dist/publication/reference.d.ts +0 -18
  481. package/dist/publication/reference.d.ts.map +0 -1
  482. package/dist/publication/reference.js.map +0 -1
  483. package/dist/publication/requirements.d.ts +0 -27
  484. package/dist/publication/requirements.d.ts.map +0 -1
  485. package/dist/publication/requirements.js +0 -185
  486. package/dist/publication/requirements.js.map +0 -1
  487. package/dist/publication/route.d.ts.map +0 -1
  488. package/dist/publication/route.js.map +0 -1
  489. package/dist/publication/schema.d.ts.map +0 -1
  490. package/dist/publication/schema.js.map +0 -1
  491. package/dist/routes/admission.d.ts.map +0 -1
  492. package/dist/routes/admission.js.map +0 -1
  493. package/dist/routes/binding.d.ts.map +0 -1
  494. package/dist/routes/binding.js.map +0 -1
  495. package/dist/routes/collision.d.ts.map +0 -1
  496. package/dist/routes/collision.js.map +0 -1
  497. package/dist/routes/compiler.d.ts.map +0 -1
  498. package/dist/routes/compiler.js.map +0 -1
  499. package/dist/routes/credential.d.ts.map +0 -1
  500. package/dist/routes/credential.js.map +0 -1
  501. package/dist/routes/decode.d.ts.map +0 -1
  502. package/dist/routes/decode.js.map +0 -1
  503. package/dist/routes/encode.d.ts.map +0 -1
  504. package/dist/routes/encode.js.map +0 -1
  505. package/dist/routes/error-response.d.ts.map +0 -1
  506. package/dist/routes/error-response.js.map +0 -1
  507. package/dist/routes/error.d.ts.map +0 -1
  508. package/dist/routes/error.js.map +0 -1
  509. package/dist/routes/evidence.d.ts.map +0 -1
  510. package/dist/routes/evidence.js.map +0 -1
  511. package/dist/routes/index.d.ts.map +0 -1
  512. package/dist/routes/index.js.map +0 -1
  513. package/dist/routes/mapping.d.ts.map +0 -1
  514. package/dist/routes/mapping.js.map +0 -1
  515. package/dist/routes/match.d.ts.map +0 -1
  516. package/dist/routes/match.js.map +0 -1
  517. package/dist/routes/placement.d.ts.map +0 -1
  518. package/dist/routes/placement.js.map +0 -1
  519. package/dist/routes/plan.d.ts.map +0 -1
  520. package/dist/routes/plan.js.map +0 -1
  521. package/dist/routes/release-unavailable.d.ts +0 -9
  522. package/dist/routes/release-unavailable.d.ts.map +0 -1
  523. package/dist/routes/release-unavailable.js +0 -33
  524. package/dist/routes/release-unavailable.js.map +0 -1
  525. package/dist/routes/request.d.ts.map +0 -1
  526. package/dist/routes/request.js.map +0 -1
  527. package/dist/routes/reservation.d.ts.map +0 -1
  528. package/dist/routes/reservation.js.map +0 -1
  529. package/dist/routes/routing.d.ts.map +0 -1
  530. package/dist/routes/routing.js.map +0 -1
  531. package/dist/routes/scalar.d.ts.map +0 -1
  532. package/dist/routes/scalar.js.map +0 -1
  533. package/dist/routes/select.d.ts.map +0 -1
  534. package/dist/routes/select.js.map +0 -1
  535. package/dist/routes/stream.d.ts.map +0 -1
  536. package/dist/routes/stream.js.map +0 -1
  537. package/dist/routes/table.d.ts.map +0 -1
  538. package/dist/routes/table.js.map +0 -1
  539. package/dist/routes/target.d.ts.map +0 -1
  540. package/dist/routes/target.js.map +0 -1
  541. package/dist/routes/template.d.ts.map +0 -1
  542. package/dist/routes/template.js.map +0 -1
  543. package/dist/runtime/artifact.d.ts.map +0 -1
  544. package/dist/runtime/artifact.js.map +0 -1
  545. package/dist/runtime/index.d.ts.map +0 -1
  546. package/dist/runtime/index.js.map +0 -1
  547. package/dist/schema/index.d.ts.map +0 -1
  548. package/dist/schema/index.js.map +0 -1
  549. package/dist/schema/installation/index.d.ts.map +0 -1
  550. package/dist/schema/installation/index.js.map +0 -1
  551. package/dist/schema/installation/introspection/codec.d.ts.map +0 -1
  552. package/dist/schema/installation/introspection/codec.js.map +0 -1
  553. package/dist/schema/installation/introspection/index.d.ts.map +0 -1
  554. package/dist/schema/installation/introspection/index.js.map +0 -1
  555. package/dist/schema/installation/introspection/result.d.ts.map +0 -1
  556. package/dist/schema/installation/introspection/result.js.map +0 -1
@@ -1,33 +1,36 @@
1
+ import { targetPath } from '@astrale-os/kernel-core/callable';
1
2
  import { Path } from '@astrale-os/kernel-core/path';
2
- import { Key, Ref } from '@astrale-os/kernel-dsl/v1/addressing';
3
+ import { callableAddress } from '@astrale-os/kernel-dsl/v1/addressing';
3
4
  import * as portable from '@astrale-os/kernel-dsl/value';
5
+ import { routedDigest } from '../invocation/index.js';
4
6
  import { firstCredentialIsAmbient, putCredential, specificHeaderWires, withoutCredentialHeaders, } from './credential.js';
5
7
  import { fail, invalidRequest } from './error.js';
6
8
  import { isReservedHeader } from './mapping.js';
7
- import { encodeStrongEtag, HTTP_ROUTE_ISSUER, HTTP_ROUTE_PUBLICATION } from './routing.js';
9
+ import { encodeStrongEtag, HTTP_ROUTE_DIGEST, HTTP_ROUTE_ISSUER } from './routing.js';
8
10
  import { asObject, encodeScalar, scalar } from './scalar.js';
9
- import { requiresReceiver } from './target.js';
11
+ import { requiresReceiver, routeFingerprint } from './target.js';
10
12
  import { authorityEnd, encodeTemplate, PLACEHOLDER } from './template.js';
11
- export function encode(entry, invocation, validator) {
13
+ export function encode(entry, invocation, domain) {
14
+ if (typeof invocation.call.target !== 'string' &&
15
+ invocation.call.target.fingerprint !== undefined &&
16
+ invocation.call.target.fingerprint !== routeFingerprint(domain, entry.callable)) {
17
+ invalidRequest('Invocation Target fingerprint does not match the selected route Domain.');
18
+ }
12
19
  const input = asObject(invocation.call.input);
13
- const target = Path.from(invocation.call.target);
20
+ const target = Path.from(targetPath(invocation.call.target));
14
21
  const needsReceiver = requiresReceiver(entry);
15
- const ref = Key.ref(entry.callable);
16
- const methodName = Ref.isMethod(ref) ? Ref.child(ref) : undefined;
22
+ const coordinate = callableAddress(entry.callable);
23
+ const methodName = coordinate.kind === 'method' ? coordinate.name : undefined;
17
24
  const receiver = needsReceiver ? instanceSource(target, methodName) : undefined;
18
25
  const source = receiver?.raw;
19
26
  const expected = needsReceiver
20
- ? Path.instanceMethod(receiver, methodName).raw
21
- : Ref.isMethod(ref)
22
- ? Path.staticMethod(Path.project({
23
- origin: Key.origin(entry.callable),
24
- kind: Ref.namespace(ref),
25
- name: Ref.member(ref),
26
- }), methodName).raw
27
+ ? Path.instanceMethod(receiver, entry.callable).raw
28
+ : coordinate.kind === 'method'
29
+ ? Path.staticMethod(Path.project(coordinate.owner), methodName).raw
27
30
  : Path.project({
28
- origin: Key.origin(entry.callable),
31
+ origin: coordinate.origin,
29
32
  kind: 'function',
30
- name: Ref.member(ref),
33
+ name: coordinate.name,
31
34
  }).raw;
32
35
  if (target.raw !== expected)
33
36
  invalidRequest('Invocation Path does not match the selected route.');
@@ -35,7 +38,7 @@ export function encode(entry, invocation, validator) {
35
38
  ? entry.target.receiver
36
39
  : undefined;
37
40
  const field = (name) => (name === receiverName ? source : input[name]);
38
- const wireField = (name) => encodeScalar(entry, name, field(name), validator);
41
+ const wireField = (name) => encodeScalar(entry, name, field(name), domain);
39
42
  const hostEnd = authorityEnd(entry.href);
40
43
  let url = entry.href.replaceAll(PLACEHOLDER, (_whole, name, catchall, offset) => encodeTemplate(wireField(name), catchall, offset < hostEnd));
41
44
  const parsed = new URL(url);
@@ -107,13 +110,13 @@ export function encode(entry, invocation, validator) {
107
110
  }
108
111
  }
109
112
  if (invocation.routing !== undefined) {
110
- headers[HTTP_ROUTE_PUBLICATION] = encodeStrongEtag(invocation.routing.publication.etag);
113
+ headers[HTTP_ROUTE_DIGEST] = encodeStrongEtag(routedDigest(invocation.routing));
111
114
  headers[HTTP_ROUTE_ISSUER] = invocation.routing.issuer;
112
115
  }
113
116
  url = parsed.toString();
114
117
  const mappedMethod = entry.requestMethod === undefined
115
118
  ? undefined
116
- : encodeScalar(entry, entry.requestMethod, input[entry.requestMethod], validator).toUpperCase();
119
+ : encodeScalar(entry, entry.requestMethod, input[entry.requestMethod], domain).toUpperCase();
117
120
  const requestedMethod = invocation.method?.toUpperCase();
118
121
  if (mappedMethod !== undefined &&
119
122
  requestedMethod !== undefined &&
@@ -147,4 +150,3 @@ function instanceSource(target, name) {
147
150
  }
148
151
  return Path.fromAST({ anchor: target.ast.anchor, steps: steps.slice(0, -1) });
149
152
  }
150
- //# sourceMappingURL=encode.js.map
@@ -0,0 +1,23 @@
1
+ import type { Domain } from '@astrale-os/kernel-dsl/v1';
2
+ import type { Object as JsonObject, Value as JsonValue } from '@astrale-os/kernel-dsl/value';
3
+ import type { Plan } from './plan.js';
4
+ import type { Placed } from './reservation.js';
5
+ import type { Route } from './table.js';
6
+ type Meaning = Pick<Domain, 'origin' | 'revision' | 'callable'>;
7
+ /**
8
+ * The coordinate in which a served document differs from one Plan placed at `publicUrl`: its
9
+ * origin or schema revision (`identity`), or its route wire (`routes`). Each Table words its own
10
+ * refusal after the document it binds.
11
+ */
12
+ export declare function placementMismatch(plan: Plan, deployed: Placed, domain: Domain, publicUrl: string): 'identity' | 'routes' | undefined;
13
+ /** The entries of one placed Plan at the hrefs its served document publishes. */
14
+ export declare function placedEntries(plan: Plan, deployed: Pick<Placed, 'routes'>): readonly Route[];
15
+ /** Whether entries carry exactly the route wire and Domain identity of one served document. */
16
+ export declare function sameServedWire(entries: readonly Route[], deployed: Pick<Placed, 'origin' | 'schema' | 'routes'>, domain: Meaning): boolean;
17
+ /** Refuse an entry whose target, auth or output differs from the Domain's callable meaning. */
18
+ export declare function verifyMeaning(entries: readonly Route[], domain: Meaning): void;
19
+ /** Admit one portable Table object holding exactly `fields`. */
20
+ export declare function tableObject(input: unknown, fields: readonly string[]): JsonObject;
21
+ /** Admit the entries of one Table bound to `origin`; an invalid route wire is a `ReleaseError`. */
22
+ export declare function acceptEntries(input: JsonValue | undefined, origin: string): readonly Route[];
23
+ export {};
@@ -0,0 +1,150 @@
1
+ import { accept as acceptPortable, json } from '@astrale-os/kernel-dsl/value';
2
+ import { admitRoute } from '../release/route.js';
3
+ import { fail } from './error.js';
4
+ import { place } from './placement.js';
5
+ const AUTH = new Set(['anonymous', 'authenticated', 'authorized']);
6
+ const OUTPUT = new Set(['value', 'stream', 'binary']);
7
+ /**
8
+ * The coordinate in which a served document differs from one Plan placed at `publicUrl`: its
9
+ * origin or schema revision (`identity`), or its route wire (`routes`). Each Table words its own
10
+ * refusal after the document it binds.
11
+ */
12
+ export function placementMismatch(plan, deployed, domain, publicUrl) {
13
+ if (plan.origin !== deployed.origin ||
14
+ plan.origin !== domain.origin ||
15
+ plan.revision !== deployed.schema.revision ||
16
+ plan.revision !== domain.revision) {
17
+ return 'identity';
18
+ }
19
+ return json.serialize(place(plan, publicUrl)) ===
20
+ json.serialize(deployed.routes)
21
+ ? undefined
22
+ : 'routes';
23
+ }
24
+ /** The entries of one placed Plan at the hrefs its served document publishes. */
25
+ export function placedEntries(plan, deployed) {
26
+ return Object.freeze(plan.entries.map((entry, index) => {
27
+ const { path: _path, ...portable } = entry;
28
+ return Object.freeze({ ...portable, href: deployed.routes[index].href });
29
+ }));
30
+ }
31
+ /** Whether entries carry exactly the route wire and Domain identity of one served document. */
32
+ export function sameServedWire(entries, deployed, domain) {
33
+ return (domain.origin === deployed.origin &&
34
+ domain.revision === deployed.schema.revision &&
35
+ json.serialize(entries.map(wireRoute)) === json.serialize(deployed.routes));
36
+ }
37
+ /** Refuse an entry whose target, auth or output differs from the Domain's callable meaning. */
38
+ export function verifyMeaning(entries, domain) {
39
+ for (const entry of entries) {
40
+ const meaning = domain.callable(entry.callable);
41
+ const targetMatches = meaning !== undefined &&
42
+ ((entry.target.kind === 'function' && !isMethod(meaning)) ||
43
+ (entry.target.kind === 'method' &&
44
+ isMethod(meaning) &&
45
+ meaning.executable &&
46
+ entry.target.dispatch === (meaning.static ? 'static' : 'instance')));
47
+ if (!targetMatches || meaning.auth !== entry.auth || meaning.output.mode !== entry.output) {
48
+ fail('NATIVE_ROUTE_BINDING_INVALID', `Route ${entry.name} differs from Domain meaning.`);
49
+ }
50
+ }
51
+ }
52
+ /** Admit one portable Table object holding exactly `fields`. */
53
+ export function tableObject(input, fields) {
54
+ const value = object(acceptPortable(input), 'Route Table');
55
+ exact(value, fields, 'Route Table');
56
+ return value;
57
+ }
58
+ /** Admit the entries of one Table bound to `origin`; an invalid route wire is a `ReleaseError`. */
59
+ export function acceptEntries(input, origin) {
60
+ if (!Array.isArray(input))
61
+ invalid('Route Table entries');
62
+ const entries = input.map((entry) => acceptRoute(entry, origin));
63
+ if (new Set(entries.map(({ name }) => name)).size !== entries.length) {
64
+ fail('NATIVE_ROUTE_BINDING_INVALID', 'Route Table names must be unique.');
65
+ }
66
+ return Object.freeze(entries);
67
+ }
68
+ function acceptRoute(input, origin) {
69
+ const value = object(input, 'Route Table entry');
70
+ exact(value, ['name', 'callable', 'target', 'auth', 'output', 'href', 'method', 'default'], 'Route Table entry', ['requestMethod', 'query', 'headers', 'body', 'credential']);
71
+ if (typeof value.default !== 'boolean')
72
+ invalid('Route Table default');
73
+ if (typeof value.auth !== 'string' || !AUTH.has(value.auth)) {
74
+ invalid('Route Table auth');
75
+ }
76
+ if (typeof value.output !== 'string' || !OUTPUT.has(value.output))
77
+ invalid('Route Table output');
78
+ const wire = admitRoute({
79
+ name: value.name,
80
+ callable: value.callable,
81
+ href: value.href,
82
+ method: value.method,
83
+ ...(value.default === true ? { default: true } : {}),
84
+ ...(value.requestMethod === undefined ? {} : { requestMethod: value.requestMethod }),
85
+ ...(value.query === undefined ? {} : { query: value.query }),
86
+ ...(value.headers === undefined ? {} : { headers: value.headers }),
87
+ ...(value.body === undefined ? {} : { body: value.body }),
88
+ ...(value.credential === undefined ? {} : { credential: value.credential }),
89
+ ...receiver(value.target),
90
+ }, origin);
91
+ const { default: _default, receiver: _receiver, ...common } = wire;
92
+ return Object.freeze({
93
+ ...common,
94
+ target: target(value.target),
95
+ auth: value.auth,
96
+ output: value.output,
97
+ default: value.default,
98
+ });
99
+ }
100
+ function target(input) {
101
+ const value = object(input, 'Route target');
102
+ if (value.kind === 'function') {
103
+ exact(value, ['kind'], 'Route Function target');
104
+ return Object.freeze({ kind: 'function' });
105
+ }
106
+ if (value.kind !== 'method' || (value.dispatch !== 'static' && value.dispatch !== 'instance')) {
107
+ invalid('Route Method target');
108
+ }
109
+ if (value.dispatch === 'static') {
110
+ exact(value, ['kind', 'dispatch'], 'Route static Method target');
111
+ return Object.freeze({ kind: 'method', dispatch: 'static' });
112
+ }
113
+ exact(value, ['kind', 'dispatch', 'receiver'], 'Route instance Method target');
114
+ if (typeof value.receiver !== 'string')
115
+ invalid('Route receiver');
116
+ return Object.freeze({ kind: 'method', dispatch: 'instance', receiver: value.receiver });
117
+ }
118
+ function receiver(input) {
119
+ const admitted = target(input);
120
+ return admitted.kind === 'method' && admitted.dispatch === 'instance'
121
+ ? { receiver: admitted.receiver }
122
+ : {};
123
+ }
124
+ function isMethod(meaning) {
125
+ return 'owner' in meaning;
126
+ }
127
+ function wireRoute(entry) {
128
+ const { target, auth: _auth, output: _output, default: isDefault, ...wire } = entry;
129
+ return {
130
+ ...wire,
131
+ ...(isDefault ? { default: true } : {}),
132
+ ...(target.kind === 'method' && target.dispatch === 'instance'
133
+ ? { receiver: target.receiver }
134
+ : {}),
135
+ };
136
+ }
137
+ function object(input, label) {
138
+ if (input === null || typeof input !== 'object' || Array.isArray(input))
139
+ invalid(label);
140
+ return input;
141
+ }
142
+ function exact(value, required, label, optional = []) {
143
+ const allowed = new Set([...required, ...optional]);
144
+ if (Object.keys(value).some((key) => !allowed.has(key)) ||
145
+ required.some((key) => !Object.hasOwn(value, key)))
146
+ invalid(label);
147
+ }
148
+ function invalid(label) {
149
+ return fail('NATIVE_ROUTE_BINDING_INVALID', `${label} is invalid.`);
150
+ }
@@ -3,4 +3,3 @@ export interface ErrorResponse {
3
3
  readonly error: ErrorPayload;
4
4
  }
5
5
  export declare function decodeErrorResponse(input: unknown): ErrorResponse;
6
- //# sourceMappingURL=error-response.d.ts.map
@@ -29,4 +29,3 @@ function isValueObject(value) {
29
29
  function invalid(cause) {
30
30
  return fail('NATIVE_ROUTE_RESPONSE_INVALID', 'Native route error response is invalid.', cause);
31
31
  }
32
- //# sourceMappingURL=error-response.js.map
@@ -6,4 +6,3 @@ export declare class RouteError extends Error {
6
6
  }
7
7
  export declare function fail(code: ErrorCode, message: string, cause?: unknown): never;
8
8
  export declare function invalidRequest(message: string): never;
9
- //# sourceMappingURL=error.d.ts.map
@@ -12,4 +12,3 @@ export function fail(code, message, cause) {
12
12
  export function invalidRequest(message) {
13
13
  return fail('NATIVE_ROUTE_REQUEST_INVALID', message);
14
14
  }
15
- //# sourceMappingURL=error.js.map
@@ -1,6 +1,5 @@
1
- import type { schema } from '@astrale-os/kernel-dsl/v1';
2
- import type { Publication } from '../publication/publication.js';
1
+ import type { Domain } from '@astrale-os/kernel-dsl/v1';
2
+ import type { DomainRelease } from '../release/release.js';
3
3
  import type { Table } from './table.js';
4
- /** Verify that an admitted Table carries the exact published wire and Validator meaning. */
5
- export declare function verifyTable(table: Table, deployed: Publication, validator: schema.Validator): Table;
6
- //# sourceMappingURL=evidence.d.ts.map
4
+ /** Verify that an admitted Table carries the exact released wire and Domain meaning. */
5
+ export declare function verifyTable(table: Table, deployed: DomainRelease, domain: Pick<Domain, 'origin' | 'revision' | 'callable'>): Table;
@@ -1,38 +1,12 @@
1
- import { json } from '@astrale-os/kernel-dsl/value';
2
- import { compareReferences, reference } from '../publication/reference.js';
1
+ import { compareReferences, reference } from '../release/reference.js';
2
+ import { sameServedWire, verifyMeaning } from './entries.js';
3
3
  import { fail } from './error.js';
4
- /** Verify that an admitted Table carries the exact published wire and Validator meaning. */
5
- export function verifyTable(table, deployed, validator) {
6
- if (compareReferences(table.publication, reference(deployed)) !== 'exact' ||
7
- validator.origin !== deployed.origin ||
8
- validator.revision !== deployed.schema.revision ||
9
- json.serialize(table.entries.map(wireRoute)) !==
10
- json.serialize(deployed.routes)) {
11
- fail('NATIVE_ROUTE_BINDING_INVALID', 'Route Table evidence differs from its Publication.');
12
- }
13
- for (const entry of table.entries) {
14
- const meaning = validator.callable(entry.callable);
15
- const targetMatches = meaning !== undefined &&
16
- ((entry.target.kind === 'function' && meaning.target.kind === 'function') ||
17
- (entry.target.kind === 'method' &&
18
- meaning.target.kind === 'method' &&
19
- entry.target.dispatch === meaning.target.dispatch));
20
- if (!targetMatches ||
21
- meaning.authentication !== entry.authentication ||
22
- meaning.output !== entry.output) {
23
- fail('NATIVE_ROUTE_BINDING_INVALID', `Route ${entry.name} differs from Validator meaning.`);
24
- }
4
+ /** Verify that an admitted Table carries the exact released wire and Domain meaning. */
5
+ export function verifyTable(table, deployed, domain) {
6
+ if (compareReferences(table.release, reference(deployed)) !== 'exact' ||
7
+ !sameServedWire(table.entries, deployed, domain)) {
8
+ fail('NATIVE_ROUTE_BINDING_INVALID', 'Route Table evidence differs from its Release.');
25
9
  }
10
+ verifyMeaning(table.entries, domain);
26
11
  return table;
27
12
  }
28
- function wireRoute(entry) {
29
- const { target, authentication: _authentication, output: _output, default: isDefault, ...wire } = entry;
30
- return {
31
- ...wire,
32
- ...(isDefault ? { default: true } : {}),
33
- ...(target.kind === 'method' && target.dispatch === 'instance'
34
- ? { receiver: target.receiver }
35
- : {}),
36
- };
37
- }
38
- //# sourceMappingURL=evidence.js.map
@@ -0,0 +1,9 @@
1
+ import * as auth from '@astrale-os/kernel-core/auth';
2
+ import type { Sha256Digest } from '../release/digest.js';
3
+ import type { HttpRequest } from './request.js';
4
+ /** The digest one header value names as exactly one strong quoted digest, else undefined. */
5
+ export declare function strongDigest(input: string): Sha256Digest | undefined;
6
+ /** Read one reserved header, which occurs at most once in any spelling. */
7
+ export declare function reservedHeader(input: HttpRequest['headers'], name: string): string | undefined;
8
+ /** Admit the routing Kernel issuer one native route request names in header `name`. */
9
+ export declare function acceptIssuerHeader(encoded: string, name: string): auth.IssuerId;
@@ -0,0 +1,34 @@
1
+ import * as auth from '@astrale-os/kernel-core/auth';
2
+ import { fail } from './error.js';
3
+ const STRONG_DIGEST = /^"(sha256:[0-9a-f]{64})"$/u;
4
+ /** The digest one header value names as exactly one strong quoted digest, else undefined. */
5
+ export function strongDigest(input) {
6
+ return STRONG_DIGEST.exec(input)?.[1];
7
+ }
8
+ /** Read one reserved header, which occurs at most once in any spelling. */
9
+ export function reservedHeader(input, name) {
10
+ if (input instanceof Headers)
11
+ return input.get(name) ?? undefined;
12
+ let found;
13
+ for (const [candidate, value] of Object.entries(input ?? {})) {
14
+ if (candidate.toLowerCase() !== name || value === undefined)
15
+ continue;
16
+ if (found !== undefined || (Array.isArray(value) && value.length !== 1)) {
17
+ fail('NATIVE_ROUTE_ROUTING_INVALID', `Header ${name} must occur at most once.`);
18
+ }
19
+ found = typeof value === 'string' ? value : value[0];
20
+ }
21
+ return found;
22
+ }
23
+ /** Admit the routing Kernel issuer one native route request names in header `name`. */
24
+ export function acceptIssuerHeader(encoded, name) {
25
+ try {
26
+ return auth.issuer.accept(encoded);
27
+ }
28
+ catch (cause) {
29
+ if (cause instanceof auth.AuthValueError) {
30
+ return fail('NATIVE_ROUTE_ROUTING_INVALID', `${name} is invalid.`, cause);
31
+ }
32
+ throw cause;
33
+ }
34
+ }
@@ -12,9 +12,11 @@ export type { Plan, PlanEntry } from './plan.js';
12
12
  export type { Route, Table } from './table.js';
13
13
  export type { RouteTarget } from './target.js';
14
14
  export { place } from './placement.js';
15
- export { decodeReleaseUnavailable, HTTP_ROUTE_RELEASE_UNAVAILABLE, HTTP_ROUTE_RELEASE_UNAVAILABLE_STATUS, releaseUnavailableHeaders, type ReleaseUnavailable, } from './release-unavailable.js';
16
- export { decodeRouting, decodeMiss, decodeStale, HTTP_ROUTE_PUBLICATION, HTTP_ROUTE_ISSUER, HTTP_ROUTE_MISS, HTTP_ROUTE_MISS_STATUS, HTTP_ROUTE_STALE, HTTP_ROUTE_STALE_STATUS, missHeaders, staleHeaders, type MissControl, type StaleControl, } from './routing.js';
15
+ export { decodeDeploymentRetired, deploymentRetiredBody, deploymentRetiredHeaders, HTTP_DEPLOYMENT_RETIRED, HTTP_DEPLOYMENT_RETIRED_STATUS, type DeploymentRetired, } from './deployment-retired.js';
16
+ export { decodeRouting, decodeMiss, decodeStale, HTTP_ROUTE_DIGEST, HTTP_ROUTE_ISSUER, HTTP_ROUTE_MISS, HTTP_ROUTE_MISS_STATUS, HTTP_ROUTE_STALE, HTTP_ROUTE_STALE_STATUS, missHeaders, staleHeaders, type MissControl, type ServedReferences, type StaleControl, } from './routing.js';
17
17
  export { select } from './select.js';
18
18
  export { decodeStreamFrame, encodeStreamFrame, STREAM_MEDIA_TYPE, type StreamFrame, } from './stream.js';
19
19
  export { templatesOverlap } from './template.js';
20
- //# sourceMappingURL=index.d.ts.map
20
+ /** @deprecated Native routes of a v3-input destination; use the release-bound Table and decoders. */
21
+ export * as legacy from './legacy/index.js';
22
+ export { HTTP_ROUTE_PUBLICATION } from './legacy/index.js';
@@ -9,9 +9,11 @@ export { RouteError } from './error.js';
9
9
  export { match } from './match.js';
10
10
  export {} from './request.js';
11
11
  export { place } from './placement.js';
12
- export { decodeReleaseUnavailable, HTTP_ROUTE_RELEASE_UNAVAILABLE, HTTP_ROUTE_RELEASE_UNAVAILABLE_STATUS, releaseUnavailableHeaders, } from './release-unavailable.js';
13
- export { decodeRouting, decodeMiss, decodeStale, HTTP_ROUTE_PUBLICATION, HTTP_ROUTE_ISSUER, HTTP_ROUTE_MISS, HTTP_ROUTE_MISS_STATUS, HTTP_ROUTE_STALE, HTTP_ROUTE_STALE_STATUS, missHeaders, staleHeaders, } from './routing.js';
12
+ export { decodeDeploymentRetired, deploymentRetiredBody, deploymentRetiredHeaders, HTTP_DEPLOYMENT_RETIRED, HTTP_DEPLOYMENT_RETIRED_STATUS, } from './deployment-retired.js';
13
+ export { decodeRouting, decodeMiss, decodeStale, HTTP_ROUTE_DIGEST, HTTP_ROUTE_ISSUER, HTTP_ROUTE_MISS, HTTP_ROUTE_MISS_STATUS, HTTP_ROUTE_STALE, HTTP_ROUTE_STALE_STATUS, missHeaders, staleHeaders, } from './routing.js';
14
14
  export { select } from './select.js';
15
15
  export { decodeStreamFrame, encodeStreamFrame, STREAM_MEDIA_TYPE, } from './stream.js';
16
16
  export { templatesOverlap } from './template.js';
17
- //# sourceMappingURL=index.js.map
17
+ /** @deprecated Native routes of a v3-input destination; use the release-bound Table and decoders. */
18
+ export * as legacy from './legacy/index.js';
19
+ export { HTTP_ROUTE_PUBLICATION } from './legacy/index.js';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Native routes bound to a v2/v3 Publication and its ETag. Binding also reserves `release.json`
3
+ * to prevent routes from shadowing the release document.
4
+ * Superseded by release-based Tables and routing from `@astrale-os/kernel-protocol/routes`.
5
+ *
6
+ * Short-term consumers: every destination sealed from a v2/v3 Publication, the legacy stable
7
+ * Workers and the SDK's v3 seal and preflight (`legacy.bind`, `legacy.verifyTable`,
8
+ * `legacy.Table`, adopted at its Kernel pin bump), and the Server's Publication-backed native
9
+ * routes (`server/routes/routes.ts`, `server/release/legacy/`) that serve them.
10
+ *
11
+ * Removal, in a separate breaking release: the conditions of `protocol/release/legacy/index.ts`
12
+ * hold (no stable Worker serves a v2/v3 document, no installation pins one) and every supported
13
+ * client relays `Via`. Then delete, in the same PR:
14
+ * - this folder with its tests and laws, the `legacy` namespace and `HTTP_ROUTE_PUBLICATION`
15
+ * re-export of `routes/index.ts`, and the `./routes/legacy` subpaths (source and `dist`) of
16
+ * `protocol/package.json`;
17
+ * - the projection branch of the canonical `decodeRouting` (`routing.ts`) with
18
+ * `ServedReferences.projection`, so stale reports the release digest as `current`, and the
19
+ * projection vectors of TEST-DECODES-ROUTING-BY-SERVED-REFERENCE;
20
+ * - the Publication-backed native routes of the Server (`server/routes/routes.ts`,
21
+ * `server/release/legacy/`, and #508 in `server/invocation/legacy/`), which read this module;
22
+ * - rebase `protocol/__tests__/publication-routes.test.ts`, which exercises the shared compile,
23
+ * placement and reservation laws through this Table, on the release Table;
24
+ * - `ServedReferences.projection` from law PROTOCOL-LEGACY-WIRE-FIELDS and its test.
25
+ * The shared entry mechanics (`entries.ts`, `header.ts`) and `reservation.ts` stay: they carry no
26
+ * document label.
27
+ */
28
+ export { acceptTable, bind, verifyTable, type Table } from './table.js';
29
+ export { decode, decodeRouting, HTTP_ROUTE_PUBLICATION } from './routing.js';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Native routes bound to a v2/v3 Publication and its ETag. Binding also reserves `release.json`
3
+ * to prevent routes from shadowing the release document.
4
+ * Superseded by release-based Tables and routing from `@astrale-os/kernel-protocol/routes`.
5
+ *
6
+ * Short-term consumers: every destination sealed from a v2/v3 Publication, the legacy stable
7
+ * Workers and the SDK's v3 seal and preflight (`legacy.bind`, `legacy.verifyTable`,
8
+ * `legacy.Table`, adopted at its Kernel pin bump), and the Server's Publication-backed native
9
+ * routes (`server/routes/routes.ts`, `server/release/legacy/`) that serve them.
10
+ *
11
+ * Removal, in a separate breaking release: the conditions of `protocol/release/legacy/index.ts`
12
+ * hold (no stable Worker serves a v2/v3 document, no installation pins one) and every supported
13
+ * client relays `Via`. Then delete, in the same PR:
14
+ * - this folder with its tests and laws, the `legacy` namespace and `HTTP_ROUTE_PUBLICATION`
15
+ * re-export of `routes/index.ts`, and the `./routes/legacy` subpaths (source and `dist`) of
16
+ * `protocol/package.json`;
17
+ * - the projection branch of the canonical `decodeRouting` (`routing.ts`) with
18
+ * `ServedReferences.projection`, so stale reports the release digest as `current`, and the
19
+ * projection vectors of TEST-DECODES-ROUTING-BY-SERVED-REFERENCE;
20
+ * - the Publication-backed native routes of the Server (`server/routes/routes.ts`,
21
+ * `server/release/legacy/`, and #508 in `server/invocation/legacy/`), which read this module;
22
+ * - rebase `protocol/__tests__/publication-routes.test.ts`, which exercises the shared compile,
23
+ * placement and reservation laws through this Table, on the release Table;
24
+ * - `ServedReferences.projection` from law PROTOCOL-LEGACY-WIRE-FIELDS and its test.
25
+ * The shared entry mechanics (`entries.ts`, `header.ts`) and `reservation.ts` stay: they carry no
26
+ * document label.
27
+ */
28
+ export { acceptTable, bind, verifyTable } from './table.js';
29
+ export { decode, decodeRouting, HTTP_ROUTE_PUBLICATION } from './routing.js';
@@ -0,0 +1,24 @@
1
+ import type { Domain } from '@astrale-os/kernel-dsl/v1';
2
+ import type { PublicationVia } from '../../invocation/index.js';
3
+ import type { PublicationRef } from '../../release/legacy/reference.js';
4
+ import type { HttpRequest, Invocation } from '../request.js';
5
+ import type { Route } from '../table.js';
6
+ /**
7
+ * The If-Match header native routing reads, named for the Publication ETag it carried.
8
+ *
9
+ * @deprecated Successor: `HTTP_ROUTE_DIGEST`, the same header named for the routed digest.
10
+ */
11
+ export declare const HTTP_ROUTE_PUBLICATION: "if-match";
12
+ /**
13
+ * Decode only the native strong If-Match representation of Publication routing, served by a
14
+ * v3-input destination; a mismatched ETag is invalid here because the Server answers stale first.
15
+ *
16
+ * @deprecated Successor: `decodeRouting`, which serves a release and its v3 projection.
17
+ */
18
+ export declare function decodeRouting(input: Pick<HttpRequest, 'headers'>, publication: PublicationRef): PublicationVia | undefined;
19
+ /**
20
+ * Decode one native route request served by a v3-input destination.
21
+ *
22
+ * @deprecated Successor: `decode`, which serves a release and its v3 projection.
23
+ */
24
+ export declare function decode(entry: Route, request: HttpRequest, domain: Domain, served: PublicationRef): Invocation;
@@ -0,0 +1,45 @@
1
+ import { decodeInvocation } from '../decode.js';
2
+ import { fail } from '../error.js';
3
+ import { acceptIssuerHeader, reservedHeader, strongDigest } from '../header.js';
4
+ import { HTTP_ROUTE_DIGEST, HTTP_ROUTE_ISSUER } from '../routing.js';
5
+ /**
6
+ * The If-Match header native routing reads, named for the Publication ETag it carried.
7
+ *
8
+ * @deprecated Successor: `HTTP_ROUTE_DIGEST`, the same header named for the routed digest.
9
+ */
10
+ export const HTTP_ROUTE_PUBLICATION = HTTP_ROUTE_DIGEST;
11
+ /**
12
+ * Decode only the native strong If-Match representation of Publication routing, served by a
13
+ * v3-input destination; a mismatched ETag is invalid here because the Server answers stale first.
14
+ *
15
+ * @deprecated Successor: `decodeRouting`, which serves a release and its v3 projection.
16
+ */
17
+ export function decodeRouting(input, publication) {
18
+ const encodedEtag = reservedHeader(input.headers, HTTP_ROUTE_DIGEST);
19
+ const encodedIssuer = reservedHeader(input.headers, HTTP_ROUTE_ISSUER);
20
+ if (encodedEtag === undefined && encodedIssuer === undefined)
21
+ return undefined;
22
+ if (encodedEtag === undefined || encodedIssuer === undefined) {
23
+ fail('NATIVE_ROUTE_ROUTING_INVALID', `${HTTP_ROUTE_DIGEST} and ${HTTP_ROUTE_ISSUER} must occur together.`);
24
+ }
25
+ const etag = strongDigest(encodedEtag);
26
+ if (etag === undefined) {
27
+ fail('NATIVE_ROUTE_ROUTING_INVALID', 'If-Match must contain exactly one strong quoted Publication ETag.');
28
+ }
29
+ if (etag !== publication.etag) {
30
+ fail('NATIVE_ROUTE_ROUTING_INVALID', 'If-Match does not name the compiled Publication.');
31
+ }
32
+ return Object.freeze({
33
+ kind: 'via',
34
+ publication,
35
+ issuer: acceptIssuerHeader(encodedIssuer, HTTP_ROUTE_ISSUER),
36
+ });
37
+ }
38
+ /**
39
+ * Decode one native route request served by a v3-input destination.
40
+ *
41
+ * @deprecated Successor: `decode`, which serves a release and its v3 projection.
42
+ */
43
+ export function decode(entry, request, domain, served) {
44
+ return decodeInvocation(entry, request, domain, (input) => decodeRouting(input, served));
45
+ }
@@ -0,0 +1,34 @@
1
+ import type { Domain } from '@astrale-os/kernel-dsl/v1';
2
+ import type { Publication } from '../../release/legacy/publication.js';
3
+ import type { PublicationRef } from '../../release/legacy/reference.js';
4
+ import type { Plan } from '../plan.js';
5
+ import type { Route } from '../table.js';
6
+ /**
7
+ * Serving proof tied to one exact v2/v3 Publication and its resolved Domain.
8
+ *
9
+ * @deprecated Successor: `Table`, bound to the `ReleaseRef` of a `DomainRelease`.
10
+ */
11
+ export interface Table {
12
+ readonly publication: PublicationRef;
13
+ readonly entries: readonly Route[];
14
+ }
15
+ /**
16
+ * Bind one Plan to an exact placed Publication and matching resolved Domain. Like the release
17
+ * Table, it also reserves `release.json`, so a v3 Domain cannot claim the document a v4 Kernel
18
+ * reads first.
19
+ *
20
+ * @deprecated Successor: `bind`, which binds a `DomainRelease`.
21
+ */
22
+ export declare function bind(plan: Plan, deployed: Publication, domain: Domain, publicUrl?: string): Table;
23
+ /**
24
+ * Admit one emitted portable Publication Table before Server composition.
25
+ *
26
+ * @deprecated Successor: `acceptTable`, which admits a release Table.
27
+ */
28
+ export declare function acceptTable(input: unknown): Table;
29
+ /**
30
+ * Verify exact Publication bytes and callable meaning before Server trusts one Table.
31
+ *
32
+ * @deprecated Successor: `verifyTable`, which verifies a release Table.
33
+ */
34
+ export declare function verifyTable(table: Table, deployed: Publication, domain: Pick<Domain, 'origin' | 'revision' | 'callable'>): Table;
@@ -0,0 +1,50 @@
1
+ import { withPublicationError } from '../../release/legacy/error.js';
2
+ import { acceptReference, compareReferences, reference } from '../../release/legacy/reference.js';
3
+ import { acceptEntries, placedEntries, placementMismatch, sameServedWire, tableObject, verifyMeaning, } from '../entries.js';
4
+ import { fail } from '../error.js';
5
+ import { rejectReserved } from '../reservation.js';
6
+ /**
7
+ * Bind one Plan to an exact placed Publication and matching resolved Domain. Like the release
8
+ * Table, it also reserves `release.json`, so a v3 Domain cannot claim the document a v4 Kernel
9
+ * reads first.
10
+ *
11
+ * @deprecated Successor: `bind`, which binds a `DomainRelease`.
12
+ */
13
+ export function bind(plan, deployed, domain, publicUrl = deployed.identity.issuer) {
14
+ const mismatch = placementMismatch(plan, deployed, domain, publicUrl);
15
+ if (mismatch === 'identity') {
16
+ fail('NATIVE_ROUTE_BINDING_INVALID', 'Route Plan, Publication, and Domain identity differ.');
17
+ }
18
+ if (mismatch === 'routes') {
19
+ fail('NATIVE_ROUTE_BINDING_INVALID', 'Publication routes differ from the placed Route Plan.');
20
+ }
21
+ const entries = placedEntries(plan, deployed);
22
+ withPublicationError(() => rejectReserved(deployed, entries));
23
+ return Object.freeze({ publication: reference(deployed), entries });
24
+ }
25
+ /**
26
+ * Admit one emitted portable Publication Table before Server composition.
27
+ *
28
+ * @deprecated Successor: `acceptTable`, which admits a release Table.
29
+ */
30
+ export function acceptTable(input) {
31
+ const value = tableObject(input, ['publication', 'entries']);
32
+ const publication = acceptReference(value.publication);
33
+ return Object.freeze({
34
+ publication,
35
+ entries: withPublicationError(() => acceptEntries(value.entries, publication.origin)),
36
+ });
37
+ }
38
+ /**
39
+ * Verify exact Publication bytes and callable meaning before Server trusts one Table.
40
+ *
41
+ * @deprecated Successor: `verifyTable`, which verifies a release Table.
42
+ */
43
+ export function verifyTable(table, deployed, domain) {
44
+ if (compareReferences(table.publication, reference(deployed)) !== 'exact' ||
45
+ !sameServedWire(table.entries, deployed, domain)) {
46
+ fail('NATIVE_ROUTE_BINDING_INVALID', 'Route Table evidence differs from its Publication.');
47
+ }
48
+ verifyMeaning(table.entries, domain);
49
+ return table;
50
+ }