@astrale-os/kernel-protocol 0.5.0-beta.5 → 0.5.0-beta.51

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 (451) hide show
  1. package/dist/artifact/index.d.ts +0 -1
  2. package/dist/artifact/index.js +0 -1
  3. package/dist/artifact/ref.d.ts +0 -1
  4. package/dist/artifact/ref.js +0 -1
  5. package/dist/codecs/codec.d.ts +0 -1
  6. package/dist/codecs/codec.js +0 -1
  7. package/dist/codecs/index.d.ts +0 -1
  8. package/dist/codecs/index.js +0 -1
  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 -1
  12. package/dist/codecs/media-types.js +0 -1
  13. package/dist/codecs/msgpack.d.ts +0 -1
  14. package/dist/codecs/msgpack.js +1 -5
  15. package/dist/errors/codes.d.ts +0 -1
  16. package/dist/errors/codes.js +0 -1
  17. package/dist/errors/http-status.d.ts +0 -1
  18. package/dist/errors/http-status.js +0 -1
  19. package/dist/errors/index.d.ts +0 -1
  20. package/dist/errors/index.js +0 -1
  21. package/dist/errors/payload.d.ts +0 -1
  22. package/dist/errors/payload.js +3 -3
  23. package/dist/errors/protocol-error.d.ts +0 -1
  24. package/dist/errors/protocol-error.js +4 -3
  25. package/dist/errors/reason.d.ts +0 -1
  26. package/dist/errors/reason.js +0 -1
  27. package/dist/index.d.ts +0 -1
  28. package/dist/index.js +0 -1
  29. package/dist/invocation/admission.d.ts +0 -1
  30. package/dist/invocation/admission.js +2 -6
  31. package/dist/invocation/binary.d.ts +1 -1
  32. package/dist/invocation/binary.js +14 -2
  33. package/dist/invocation/binding-codecs.d.ts +0 -1
  34. package/dist/invocation/binding-codecs.js +0 -1
  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 +0 -1
  40. package/dist/invocation/delegate.js +0 -1
  41. package/dist/invocation/http/binary.d.ts +3 -2
  42. package/dist/invocation/http/binary.js +4 -2
  43. package/dist/invocation/http/index.d.ts +1 -2
  44. package/dist/invocation/http/index.js +1 -2
  45. package/dist/invocation/http/negotiation.d.ts +0 -1
  46. package/dist/invocation/http/negotiation.js +0 -1
  47. package/dist/invocation/http/stream.d.ts +0 -1
  48. package/dist/invocation/http/stream.js +0 -1
  49. package/dist/invocation/http/trace.d.ts +0 -1
  50. package/dist/invocation/http/trace.js +0 -1
  51. package/dist/invocation/idempotency.d.ts +0 -1
  52. package/dist/invocation/idempotency.js +0 -1
  53. package/dist/invocation/identity.d.ts +0 -1
  54. package/dist/invocation/identity.js +0 -1
  55. package/dist/invocation/index.d.ts +2 -3
  56. package/dist/invocation/index.js +2 -3
  57. package/dist/invocation/miss.d.ts +0 -1
  58. package/dist/invocation/miss.js +0 -1
  59. package/dist/invocation/redirect.d.ts +0 -1
  60. package/dist/invocation/redirect.js +0 -1
  61. package/dist/invocation/request.d.ts +0 -1
  62. package/dist/invocation/request.js +0 -1
  63. package/dist/invocation/response.d.ts +0 -1
  64. package/dist/invocation/response.js +0 -1
  65. package/dist/invocation/routing.d.ts +0 -1
  66. package/dist/invocation/routing.js +0 -1
  67. package/dist/invocation/schema.d.ts +1 -2
  68. package/dist/invocation/schema.js +0 -1
  69. package/dist/invocation/service-reason.d.ts +3 -11
  70. package/dist/invocation/service-reason.js +0 -12
  71. package/dist/invocation/stale-route.d.ts +0 -1
  72. package/dist/invocation/stale-route.js +0 -1
  73. package/dist/invocation/stream.d.ts +0 -1
  74. package/dist/invocation/stream.js +0 -1
  75. package/dist/invocation/target.d.ts +2 -3
  76. package/dist/invocation/target.js +17 -3
  77. package/dist/invocation/trace.d.ts +0 -1
  78. package/dist/invocation/trace.js +0 -1
  79. package/dist/invocation/version.d.ts +0 -1
  80. package/dist/invocation/version.js +0 -1
  81. package/dist/invocation/websocket/binary.d.ts +0 -1
  82. package/dist/invocation/websocket/binary.js +2 -2
  83. package/dist/invocation/websocket/index.d.ts +0 -1
  84. package/dist/invocation/websocket/index.js +0 -1
  85. package/dist/invocation/websocket/subprotocol.d.ts +0 -1
  86. package/dist/invocation/websocket/subprotocol.js +0 -1
  87. package/dist/issuer/configuration.d.ts +0 -1
  88. package/dist/issuer/configuration.js +0 -1
  89. package/dist/issuer/error.d.ts +0 -1
  90. package/dist/issuer/error.js +0 -1
  91. package/dist/issuer/exchange.d.ts +0 -1
  92. package/dist/issuer/exchange.js +0 -1
  93. package/dist/issuer/hosted.d.ts +0 -1
  94. package/dist/issuer/hosted.js +0 -1
  95. package/dist/issuer/index.d.ts +0 -1
  96. package/dist/issuer/index.js +0 -1
  97. package/dist/issuer/key-set.d.ts +0 -1
  98. package/dist/issuer/key-set.js +0 -1
  99. package/dist/issuer/paths.d.ts +0 -1
  100. package/dist/issuer/paths.js +0 -1
  101. package/dist/issuer/url.d.ts +0 -1
  102. package/dist/issuer/url.js +0 -1
  103. package/dist/publication/bindings/callable.d.ts +0 -1
  104. package/dist/publication/bindings/callable.js +8 -6
  105. package/dist/publication/bindings/index.d.ts +1 -2
  106. package/dist/publication/bindings/index.js +0 -1
  107. package/dist/publication/bindings/invocation.d.ts +0 -1
  108. package/dist/publication/bindings/invocation.js +0 -1
  109. package/dist/publication/bindings/view.d.ts +7 -1
  110. package/dist/publication/bindings/view.js +111 -3
  111. package/dist/publication/bundle-admission.d.ts +0 -1
  112. package/dist/publication/bundle-admission.js +14 -14
  113. package/dist/publication/bundle-descriptor.d.ts +0 -1
  114. package/dist/publication/bundle-descriptor.js +0 -1
  115. package/dist/publication/bundle-evidence.d.ts +0 -1
  116. package/dist/publication/bundle-evidence.js +0 -1
  117. package/dist/publication/bundle.d.ts +4 -2
  118. package/dist/publication/bundle.js +9 -4
  119. package/dist/publication/content.d.ts +0 -1
  120. package/dist/publication/content.js +0 -1
  121. package/dist/publication/declaration.d.ts +0 -1
  122. package/dist/publication/declaration.js +0 -1
  123. package/dist/publication/delivery/attestation.d.ts +0 -1
  124. package/dist/publication/delivery/attestation.js +0 -1
  125. package/dist/publication/delivery/claims.d.ts +1 -2
  126. package/dist/publication/delivery/claims.js +0 -1
  127. package/dist/publication/delivery/delivery.d.ts +0 -1
  128. package/dist/publication/delivery/delivery.js +0 -1
  129. package/dist/publication/delivery/error.d.ts +0 -1
  130. package/dist/publication/delivery/error.js +0 -1
  131. package/dist/publication/delivery/index.d.ts +0 -1
  132. package/dist/publication/delivery/index.js +0 -1
  133. package/dist/publication/delivery/limits.d.ts +0 -1
  134. package/dist/publication/delivery/limits.js +0 -1
  135. package/dist/publication/delivery/request.d.ts +0 -1
  136. package/dist/publication/delivery/request.js +0 -1
  137. package/dist/publication/delivery-declaration.d.ts +0 -1
  138. package/dist/publication/delivery-declaration.js +0 -1
  139. package/dist/publication/delivery-endpoint.d.ts +0 -1
  140. package/dist/publication/delivery-endpoint.js +0 -1
  141. package/dist/publication/error.d.ts +0 -1
  142. package/dist/publication/error.js +0 -1
  143. package/dist/publication/etag.d.ts +0 -1
  144. package/dist/publication/etag.js +5 -2
  145. package/dist/publication/index.d.ts +4 -5
  146. package/dist/publication/index.js +2 -3
  147. package/dist/publication/legacy-requirements.d.ts +12 -0
  148. package/dist/publication/legacy-requirements.js +23 -0
  149. package/dist/publication/manifest.d.ts +2 -3
  150. package/dist/publication/manifest.js +10 -6
  151. package/dist/publication/publication.d.ts +4 -3
  152. package/dist/publication/publication.js +27 -12
  153. package/dist/publication/reference.d.ts +1 -2
  154. package/dist/publication/reference.js +0 -1
  155. package/dist/publication/requirements.d.ts +15 -8
  156. package/dist/publication/requirements.js +147 -45
  157. package/dist/publication/route.d.ts +0 -1
  158. package/dist/publication/route.js +0 -1
  159. package/dist/publication/schema.d.ts +1 -2
  160. package/dist/publication/schema.js +0 -1
  161. package/dist/routes/admission.d.ts +0 -1
  162. package/dist/routes/admission.js +5 -6
  163. package/dist/routes/binding.d.ts +3 -4
  164. package/dist/routes/binding.js +5 -6
  165. package/dist/routes/collision.d.ts +0 -1
  166. package/dist/routes/collision.js +0 -1
  167. package/dist/routes/compiler.d.ts +2 -3
  168. package/dist/routes/compiler.js +14 -12
  169. package/dist/routes/credential.d.ts +0 -1
  170. package/dist/routes/credential.js +0 -1
  171. package/dist/routes/decode.d.ts +2 -3
  172. package/dist/routes/decode.js +14 -25
  173. package/dist/routes/encode.d.ts +2 -3
  174. package/dist/routes/encode.js +18 -17
  175. package/dist/routes/error-response.d.ts +0 -1
  176. package/dist/routes/error-response.js +0 -1
  177. package/dist/routes/error.d.ts +0 -1
  178. package/dist/routes/error.js +0 -1
  179. package/dist/routes/evidence.d.ts +3 -4
  180. package/dist/routes/evidence.js +15 -14
  181. package/dist/routes/index.d.ts +0 -1
  182. package/dist/routes/index.js +0 -1
  183. package/dist/routes/mapping.d.ts +0 -1
  184. package/dist/routes/mapping.js +0 -1
  185. package/dist/routes/match.d.ts +0 -1
  186. package/dist/routes/match.js +0 -1
  187. package/dist/routes/placement.d.ts +0 -1
  188. package/dist/routes/placement.js +1 -2
  189. package/dist/routes/plan.d.ts +5 -5
  190. package/dist/routes/plan.js +0 -1
  191. package/dist/routes/release-unavailable.d.ts +0 -1
  192. package/dist/routes/release-unavailable.js +0 -1
  193. package/dist/routes/request.d.ts +0 -1
  194. package/dist/routes/request.js +3 -2
  195. package/dist/routes/reservation.d.ts +0 -1
  196. package/dist/routes/reservation.js +7 -2
  197. package/dist/routes/routing.d.ts +0 -1
  198. package/dist/routes/routing.js +0 -1
  199. package/dist/routes/scalar.d.ts +3 -4
  200. package/dist/routes/scalar.js +5 -6
  201. package/dist/routes/select.d.ts +0 -1
  202. package/dist/routes/select.js +0 -1
  203. package/dist/routes/stream.d.ts +0 -1
  204. package/dist/routes/stream.js +0 -1
  205. package/dist/routes/table.d.ts +0 -1
  206. package/dist/routes/table.js +0 -1
  207. package/dist/routes/target.d.ts +0 -1
  208. package/dist/routes/target.js +0 -1
  209. package/dist/routes/template.d.ts +0 -1
  210. package/dist/routes/template.js +0 -1
  211. package/dist/runtime/artifact.d.ts +6 -5
  212. package/dist/runtime/artifact.js +22 -10
  213. package/dist/runtime/index.d.ts +1 -2
  214. package/dist/runtime/index.js +1 -2
  215. package/dist/schema/index.d.ts +0 -1
  216. package/dist/schema/index.js +0 -1
  217. package/dist/schema/installation/codec.d.ts +4 -0
  218. package/dist/schema/installation/codec.js +70 -0
  219. package/dist/schema/installation/index.d.ts +2 -1
  220. package/dist/schema/installation/index.js +1 -1
  221. package/dist/schema/installation/introspection/codec.d.ts +3 -3
  222. package/dist/schema/installation/introspection/codec.js +144 -204
  223. package/dist/schema/installation/introspection/index.d.ts +2 -3
  224. package/dist/schema/installation/introspection/index.js +1 -2
  225. package/dist/schema/installation/introspection/result.d.ts +18 -23
  226. package/dist/schema/installation/introspection/result.js +0 -1
  227. package/dist/schema/installation/result.d.ts +9 -0
  228. package/dist/schema/installation/result.js +1 -0
  229. package/package.json +27 -13
  230. package/dist/artifact/index.d.ts.map +0 -1
  231. package/dist/artifact/index.js.map +0 -1
  232. package/dist/artifact/ref.d.ts.map +0 -1
  233. package/dist/artifact/ref.js.map +0 -1
  234. package/dist/codecs/codec.d.ts.map +0 -1
  235. package/dist/codecs/codec.js.map +0 -1
  236. package/dist/codecs/index.d.ts.map +0 -1
  237. package/dist/codecs/index.js.map +0 -1
  238. package/dist/codecs/json.d.ts.map +0 -1
  239. package/dist/codecs/json.js.map +0 -1
  240. package/dist/codecs/media-types.d.ts.map +0 -1
  241. package/dist/codecs/media-types.js.map +0 -1
  242. package/dist/codecs/msgpack.d.ts.map +0 -1
  243. package/dist/codecs/msgpack.js.map +0 -1
  244. package/dist/errors/codes.d.ts.map +0 -1
  245. package/dist/errors/codes.js.map +0 -1
  246. package/dist/errors/http-status.d.ts.map +0 -1
  247. package/dist/errors/http-status.js.map +0 -1
  248. package/dist/errors/index.d.ts.map +0 -1
  249. package/dist/errors/index.js.map +0 -1
  250. package/dist/errors/payload.d.ts.map +0 -1
  251. package/dist/errors/payload.js.map +0 -1
  252. package/dist/errors/protocol-error.d.ts.map +0 -1
  253. package/dist/errors/protocol-error.js.map +0 -1
  254. package/dist/errors/reason.d.ts.map +0 -1
  255. package/dist/errors/reason.js.map +0 -1
  256. package/dist/index.d.ts.map +0 -1
  257. package/dist/index.js.map +0 -1
  258. package/dist/invocation/admission.d.ts.map +0 -1
  259. package/dist/invocation/admission.js.map +0 -1
  260. package/dist/invocation/binary.d.ts.map +0 -1
  261. package/dist/invocation/binary.js.map +0 -1
  262. package/dist/invocation/binding-codecs.d.ts.map +0 -1
  263. package/dist/invocation/binding-codecs.js.map +0 -1
  264. package/dist/invocation/cancellation.d.ts.map +0 -1
  265. package/dist/invocation/cancellation.js.map +0 -1
  266. package/dist/invocation/correlation.d.ts.map +0 -1
  267. package/dist/invocation/correlation.js.map +0 -1
  268. package/dist/invocation/delegate.d.ts.map +0 -1
  269. package/dist/invocation/delegate.js.map +0 -1
  270. package/dist/invocation/http/binary.d.ts.map +0 -1
  271. package/dist/invocation/http/binary.js.map +0 -1
  272. package/dist/invocation/http/index.d.ts.map +0 -1
  273. package/dist/invocation/http/index.js.map +0 -1
  274. package/dist/invocation/http/negotiation.d.ts.map +0 -1
  275. package/dist/invocation/http/negotiation.js.map +0 -1
  276. package/dist/invocation/http/stream.d.ts.map +0 -1
  277. package/dist/invocation/http/stream.js.map +0 -1
  278. package/dist/invocation/http/trace.d.ts.map +0 -1
  279. package/dist/invocation/http/trace.js.map +0 -1
  280. package/dist/invocation/idempotency.d.ts.map +0 -1
  281. package/dist/invocation/idempotency.js.map +0 -1
  282. package/dist/invocation/identity.d.ts.map +0 -1
  283. package/dist/invocation/identity.js.map +0 -1
  284. package/dist/invocation/index.d.ts.map +0 -1
  285. package/dist/invocation/index.js.map +0 -1
  286. package/dist/invocation/miss.d.ts.map +0 -1
  287. package/dist/invocation/miss.js.map +0 -1
  288. package/dist/invocation/redirect.d.ts.map +0 -1
  289. package/dist/invocation/redirect.js.map +0 -1
  290. package/dist/invocation/request.d.ts.map +0 -1
  291. package/dist/invocation/request.js.map +0 -1
  292. package/dist/invocation/response.d.ts.map +0 -1
  293. package/dist/invocation/response.js.map +0 -1
  294. package/dist/invocation/routing.d.ts.map +0 -1
  295. package/dist/invocation/routing.js.map +0 -1
  296. package/dist/invocation/schema.d.ts.map +0 -1
  297. package/dist/invocation/schema.js.map +0 -1
  298. package/dist/invocation/service-reason.d.ts.map +0 -1
  299. package/dist/invocation/service-reason.js.map +0 -1
  300. package/dist/invocation/stale-route.d.ts.map +0 -1
  301. package/dist/invocation/stale-route.js.map +0 -1
  302. package/dist/invocation/stream.d.ts.map +0 -1
  303. package/dist/invocation/stream.js.map +0 -1
  304. package/dist/invocation/target.d.ts.map +0 -1
  305. package/dist/invocation/target.js.map +0 -1
  306. package/dist/invocation/trace.d.ts.map +0 -1
  307. package/dist/invocation/trace.js.map +0 -1
  308. package/dist/invocation/version.d.ts.map +0 -1
  309. package/dist/invocation/version.js.map +0 -1
  310. package/dist/invocation/websocket/binary.d.ts.map +0 -1
  311. package/dist/invocation/websocket/binary.js.map +0 -1
  312. package/dist/invocation/websocket/index.d.ts.map +0 -1
  313. package/dist/invocation/websocket/index.js.map +0 -1
  314. package/dist/invocation/websocket/subprotocol.d.ts.map +0 -1
  315. package/dist/invocation/websocket/subprotocol.js.map +0 -1
  316. package/dist/issuer/configuration.d.ts.map +0 -1
  317. package/dist/issuer/configuration.js.map +0 -1
  318. package/dist/issuer/error.d.ts.map +0 -1
  319. package/dist/issuer/error.js.map +0 -1
  320. package/dist/issuer/exchange.d.ts.map +0 -1
  321. package/dist/issuer/exchange.js.map +0 -1
  322. package/dist/issuer/hosted.d.ts.map +0 -1
  323. package/dist/issuer/hosted.js.map +0 -1
  324. package/dist/issuer/index.d.ts.map +0 -1
  325. package/dist/issuer/index.js.map +0 -1
  326. package/dist/issuer/key-set.d.ts.map +0 -1
  327. package/dist/issuer/key-set.js.map +0 -1
  328. package/dist/issuer/paths.d.ts.map +0 -1
  329. package/dist/issuer/paths.js.map +0 -1
  330. package/dist/issuer/url.d.ts.map +0 -1
  331. package/dist/issuer/url.js.map +0 -1
  332. package/dist/publication/bindings/callable.d.ts.map +0 -1
  333. package/dist/publication/bindings/callable.js.map +0 -1
  334. package/dist/publication/bindings/index.d.ts.map +0 -1
  335. package/dist/publication/bindings/index.js.map +0 -1
  336. package/dist/publication/bindings/invocation.d.ts.map +0 -1
  337. package/dist/publication/bindings/invocation.js.map +0 -1
  338. package/dist/publication/bindings/view.d.ts.map +0 -1
  339. package/dist/publication/bindings/view.js.map +0 -1
  340. package/dist/publication/bundle-admission.d.ts.map +0 -1
  341. package/dist/publication/bundle-admission.js.map +0 -1
  342. package/dist/publication/bundle-descriptor.d.ts.map +0 -1
  343. package/dist/publication/bundle-descriptor.js.map +0 -1
  344. package/dist/publication/bundle-evidence.d.ts.map +0 -1
  345. package/dist/publication/bundle-evidence.js.map +0 -1
  346. package/dist/publication/bundle.d.ts.map +0 -1
  347. package/dist/publication/bundle.js.map +0 -1
  348. package/dist/publication/content.d.ts.map +0 -1
  349. package/dist/publication/content.js.map +0 -1
  350. package/dist/publication/declaration.d.ts.map +0 -1
  351. package/dist/publication/declaration.js.map +0 -1
  352. package/dist/publication/delivery/attestation.d.ts.map +0 -1
  353. package/dist/publication/delivery/attestation.js.map +0 -1
  354. package/dist/publication/delivery/claims.d.ts.map +0 -1
  355. package/dist/publication/delivery/claims.js.map +0 -1
  356. package/dist/publication/delivery/delivery.d.ts.map +0 -1
  357. package/dist/publication/delivery/delivery.js.map +0 -1
  358. package/dist/publication/delivery/error.d.ts.map +0 -1
  359. package/dist/publication/delivery/error.js.map +0 -1
  360. package/dist/publication/delivery/index.d.ts.map +0 -1
  361. package/dist/publication/delivery/index.js.map +0 -1
  362. package/dist/publication/delivery/limits.d.ts.map +0 -1
  363. package/dist/publication/delivery/limits.js.map +0 -1
  364. package/dist/publication/delivery/request.d.ts.map +0 -1
  365. package/dist/publication/delivery/request.js.map +0 -1
  366. package/dist/publication/delivery-declaration.d.ts.map +0 -1
  367. package/dist/publication/delivery-declaration.js.map +0 -1
  368. package/dist/publication/delivery-endpoint.d.ts.map +0 -1
  369. package/dist/publication/delivery-endpoint.js.map +0 -1
  370. package/dist/publication/error.d.ts.map +0 -1
  371. package/dist/publication/error.js.map +0 -1
  372. package/dist/publication/etag.d.ts.map +0 -1
  373. package/dist/publication/etag.js.map +0 -1
  374. package/dist/publication/index.d.ts.map +0 -1
  375. package/dist/publication/index.js.map +0 -1
  376. package/dist/publication/manifest.d.ts.map +0 -1
  377. package/dist/publication/manifest.js.map +0 -1
  378. package/dist/publication/publication.d.ts.map +0 -1
  379. package/dist/publication/publication.js.map +0 -1
  380. package/dist/publication/reference.d.ts.map +0 -1
  381. package/dist/publication/reference.js.map +0 -1
  382. package/dist/publication/requirements.d.ts.map +0 -1
  383. package/dist/publication/requirements.js.map +0 -1
  384. package/dist/publication/route.d.ts.map +0 -1
  385. package/dist/publication/route.js.map +0 -1
  386. package/dist/publication/schema.d.ts.map +0 -1
  387. package/dist/publication/schema.js.map +0 -1
  388. package/dist/routes/admission.d.ts.map +0 -1
  389. package/dist/routes/admission.js.map +0 -1
  390. package/dist/routes/binding.d.ts.map +0 -1
  391. package/dist/routes/binding.js.map +0 -1
  392. package/dist/routes/collision.d.ts.map +0 -1
  393. package/dist/routes/collision.js.map +0 -1
  394. package/dist/routes/compiler.d.ts.map +0 -1
  395. package/dist/routes/compiler.js.map +0 -1
  396. package/dist/routes/credential.d.ts.map +0 -1
  397. package/dist/routes/credential.js.map +0 -1
  398. package/dist/routes/decode.d.ts.map +0 -1
  399. package/dist/routes/decode.js.map +0 -1
  400. package/dist/routes/encode.d.ts.map +0 -1
  401. package/dist/routes/encode.js.map +0 -1
  402. package/dist/routes/error-response.d.ts.map +0 -1
  403. package/dist/routes/error-response.js.map +0 -1
  404. package/dist/routes/error.d.ts.map +0 -1
  405. package/dist/routes/error.js.map +0 -1
  406. package/dist/routes/evidence.d.ts.map +0 -1
  407. package/dist/routes/evidence.js.map +0 -1
  408. package/dist/routes/index.d.ts.map +0 -1
  409. package/dist/routes/index.js.map +0 -1
  410. package/dist/routes/mapping.d.ts.map +0 -1
  411. package/dist/routes/mapping.js.map +0 -1
  412. package/dist/routes/match.d.ts.map +0 -1
  413. package/dist/routes/match.js.map +0 -1
  414. package/dist/routes/placement.d.ts.map +0 -1
  415. package/dist/routes/placement.js.map +0 -1
  416. package/dist/routes/plan.d.ts.map +0 -1
  417. package/dist/routes/plan.js.map +0 -1
  418. package/dist/routes/release-unavailable.d.ts.map +0 -1
  419. package/dist/routes/release-unavailable.js.map +0 -1
  420. package/dist/routes/request.d.ts.map +0 -1
  421. package/dist/routes/request.js.map +0 -1
  422. package/dist/routes/reservation.d.ts.map +0 -1
  423. package/dist/routes/reservation.js.map +0 -1
  424. package/dist/routes/routing.d.ts.map +0 -1
  425. package/dist/routes/routing.js.map +0 -1
  426. package/dist/routes/scalar.d.ts.map +0 -1
  427. package/dist/routes/scalar.js.map +0 -1
  428. package/dist/routes/select.d.ts.map +0 -1
  429. package/dist/routes/select.js.map +0 -1
  430. package/dist/routes/stream.d.ts.map +0 -1
  431. package/dist/routes/stream.js.map +0 -1
  432. package/dist/routes/table.d.ts.map +0 -1
  433. package/dist/routes/table.js.map +0 -1
  434. package/dist/routes/target.d.ts.map +0 -1
  435. package/dist/routes/target.js.map +0 -1
  436. package/dist/routes/template.d.ts.map +0 -1
  437. package/dist/routes/template.js.map +0 -1
  438. package/dist/runtime/artifact.d.ts.map +0 -1
  439. package/dist/runtime/artifact.js.map +0 -1
  440. package/dist/runtime/index.d.ts.map +0 -1
  441. package/dist/runtime/index.js.map +0 -1
  442. package/dist/schema/index.d.ts.map +0 -1
  443. package/dist/schema/index.js.map +0 -1
  444. package/dist/schema/installation/index.d.ts.map +0 -1
  445. package/dist/schema/installation/index.js.map +0 -1
  446. package/dist/schema/installation/introspection/codec.d.ts.map +0 -1
  447. package/dist/schema/installation/introspection/codec.js.map +0 -1
  448. package/dist/schema/installation/introspection/index.d.ts.map +0 -1
  449. package/dist/schema/installation/introspection/index.js.map +0 -1
  450. package/dist/schema/installation/introspection/result.d.ts.map +0 -1
  451. package/dist/schema/installation/introspection/result.js.map +0 -1
@@ -1,9 +1,14 @@
1
- import { KernelSchema } from '@astrale-os/kernel-core/schema';
2
1
  import { AuthorityOperationOrder } from '@astrale-os/kernel-core/schema/authority/operation';
3
- import { Key, patterns, Ref } from '@astrale-os/kernel-dsl/v1/addressing';
4
- import { revisionOfDomainSchema } from '@astrale-os/kernel-dsl/v1/schema/revision';
2
+ import { acceptDefinitionRef, callableAddress, Key } from '@astrale-os/kernel-dsl/v1/addressing';
3
+ import { isMethodExecutable } from '@astrale-os/kernel-dsl/v1/language';
4
+ import { revision } from '@astrale-os/kernel-dsl/v1/schema/revision';
5
5
  import { array, deepFreeze, exact, record, unique } from './content.js';
6
6
  import { fail } from './error.js';
7
+ const KernelIdentityClass = Object.freeze({
8
+ origin: 'kernel.astrale.ai',
9
+ kind: 'class',
10
+ name: 'Identity',
11
+ });
7
12
  export const ClassOperationOrder = Object.freeze([
8
13
  'create',
9
14
  'read',
@@ -11,12 +16,12 @@ export const ClassOperationOrder = Object.freeze([
11
16
  'update',
12
17
  'delete',
13
18
  ]);
14
- /** Admit the exact closed Publication v2 requirements object. */
19
+ /** Admit the exact closed canonical requirements object used by Publication v3. */
15
20
  export function admitRequirements(input) {
16
21
  const requirements = record(input, 'PUBLICATION_INVALID', 'Publication requirements are invalid.');
17
22
  exact(requirements, ['capabilities'], 'PUBLICATION_INVALID');
18
23
  const capabilities = record(requirements.capabilities, 'PUBLICATION_INVALID', 'Publication capability requirements are invalid.');
19
- exact(capabilities, ['admin', 'classes', 'functions'], 'PUBLICATION_INVALID');
24
+ exact(capabilities, ['authority', 'classes', 'functions', 'core'], 'PUBLICATION_INVALID');
20
25
  const functions = capabilities.functions === undefined
21
26
  ? undefined
22
27
  : nonEmpty(capabilities.functions, 'Function capability requirements').map(admitCallable);
@@ -31,7 +36,16 @@ export function admitRequirements(input) {
31
36
  unique(classes.map((entry) => classKey(entry.class)), 'PUBLICATION_INVALID', 'Class capability requirement');
32
37
  canonical(classes, (left, right) => compare(classKey(left.class), classKey(right.class)), 'Class capability requirements');
33
38
  }
34
- const admin = capabilities.admin === undefined ? undefined : admitAdminRequirements(capabilities.admin);
39
+ const authority = capabilities.authority === undefined
40
+ ? undefined
41
+ : admitAuthorityRequirements(capabilities.authority);
42
+ const core = capabilities.core === undefined
43
+ ? undefined
44
+ : nonEmpty(capabilities.core, 'Core capability requirements').map(admitCoreCapabilityRequirement);
45
+ if (core !== undefined) {
46
+ unique(core.map(({ subject }) => Key.of(subject)), 'PUBLICATION_INVALID', 'Core capability subject');
47
+ canonical(core, (left, right) => compare(Key.of(left.subject), Key.of(right.subject)), 'Core capability requirements');
48
+ }
35
49
  return deepFreeze({
36
50
  capabilities: {
37
51
  ...(functions === undefined
@@ -40,35 +54,113 @@ export function admitRequirements(input) {
40
54
  ...(classes === undefined
41
55
  ? {}
42
56
  : { classes: Object.freeze(classes) }),
43
- ...(admin === undefined ? {} : { admin }),
57
+ ...(authority === undefined ? {} : { authority }),
58
+ ...(core === undefined
59
+ ? {}
60
+ : { core: Object.freeze(core) }),
44
61
  },
45
62
  });
46
63
  }
64
+ function admitCoreCapabilityRequirement(input) {
65
+ const requirement = record(input, 'PUBLICATION_INVALID', 'Core capability requirement is invalid.');
66
+ exact(requirement, ['authority', 'classes', 'functions', 'subject'], 'PUBLICATION_INVALID');
67
+ const subject = admitCoreRef(requirement.subject);
68
+ const functions = requirement.functions === undefined
69
+ ? undefined
70
+ : nonEmpty(requirement.functions, 'Core capability Function requirements').map(admitCallable);
71
+ if (functions !== undefined) {
72
+ unique(functions, 'PUBLICATION_INVALID', 'Core capability Function requirement');
73
+ canonical(functions, compare, 'Core capability Function requirements');
74
+ }
75
+ const classes = requirement.classes === undefined
76
+ ? undefined
77
+ : nonEmpty(requirement.classes, 'Core capability Class requirements').map(admitClassRequirement);
78
+ if (classes !== undefined) {
79
+ unique(classes.map((entry) => classKey(entry.class)), 'PUBLICATION_INVALID', 'Core capability Class requirement');
80
+ canonical(classes, (left, right) => compare(classKey(left.class), classKey(right.class)), 'Core capability Class requirements');
81
+ }
82
+ const authority = requirement.authority === undefined
83
+ ? undefined
84
+ : admitAuthorityRequirements(requirement.authority);
85
+ if (functions === undefined && classes === undefined && authority === undefined) {
86
+ fail('PUBLICATION_INVALID', 'Core capability requirements cannot be empty.');
87
+ }
88
+ return Object.freeze({
89
+ subject,
90
+ ...(functions === undefined
91
+ ? {}
92
+ : { functions: Object.freeze(functions) }),
93
+ ...(classes === undefined
94
+ ? {}
95
+ : { classes: Object.freeze(classes) }),
96
+ ...(authority === undefined ? {} : { authority }),
97
+ });
98
+ }
47
99
  /** Bind explicit capability targets to exact functional dependencies in the bundle closure. */
48
100
  export function validateRequirements(root, closure, requirements) {
49
101
  const dependencies = exactDependencyClosure(root, closure);
50
102
  for (const callable of requirements.capabilities.functions ?? []) {
51
103
  const dependency = capabilityOwner(root, dependencies, callable, 'Function');
52
- const reference = Key.ref(callable);
53
- if (!hasCallable(dependency, reference)) {
104
+ if (!hasCallable(dependency, callable)) {
54
105
  fail('PUBLICATION_INVALID', 'Function capability requirement names an unknown dependency callable.');
55
106
  }
56
107
  }
57
108
  for (const requirement of requirements.capabilities.classes ?? []) {
58
- const key = Key.fromSchema(requirement.class);
109
+ const key = Key.of(requirement.class);
59
110
  const dependency = capabilityOwner(root, dependencies, key, 'Class');
60
111
  if (dependency.classes[requirement.class.name] === undefined) {
61
112
  fail('PUBLICATION_INVALID', 'Class capability requirement names an unknown dependency Class.');
62
113
  }
63
114
  }
115
+ for (const requirement of requirements.capabilities.core ?? []) {
116
+ const subject = root.core.nodes[requirement.subject.name];
117
+ if (requirement.subject.origin !== root.origin ||
118
+ subject === undefined ||
119
+ !classSatisfies(root, dependencies, subject.class, KernelIdentityClass)) {
120
+ fail('PUBLICATION_INVALID', 'Core capability subject must name one local Core Identity.');
121
+ }
122
+ for (const callable of requirement.functions ?? []) {
123
+ const owner = Key.origin(callable) === root.origin
124
+ ? root
125
+ : capabilityOwner(root, dependencies, callable, 'Function');
126
+ if (!hasCallable(owner, callable)) {
127
+ fail('PUBLICATION_INVALID', 'Core capability Function requirement names an unknown or non-executable callable.');
128
+ }
129
+ }
130
+ for (const classRequirement of requirement.classes ?? []) {
131
+ const key = Key.of(classRequirement.class);
132
+ const owner = classRequirement.class.origin === root.origin
133
+ ? root
134
+ : capabilityOwner(root, dependencies, key, 'Class');
135
+ if (owner.classes[classRequirement.class.name] === undefined) {
136
+ fail('PUBLICATION_INVALID', 'Core capability Class requirement names an unknown dependency Class.');
137
+ }
138
+ }
139
+ }
140
+ }
141
+ function classSatisfies(root, dependencies, candidate, expected) {
142
+ const expectedKey = Key.of(expected);
143
+ const visited = new Set();
144
+ const visit = (reference) => {
145
+ const key = Key.of(reference);
146
+ if (key === expectedKey)
147
+ return true;
148
+ if (visited.has(key))
149
+ return false;
150
+ visited.add(key);
151
+ const owner = reference.origin === root.origin ? root : dependencies.get(reference.origin);
152
+ const definition = owner?.classes[reference.name];
153
+ return definition?.kind === 'node' && definition.extends.some(visit);
154
+ };
155
+ return visit(candidate);
64
156
  }
65
157
  function exactDependencyClosure(root, closure) {
66
158
  const supplied = new Map(closure.map((dependency) => [dependency.origin, dependency]));
67
159
  const reachable = new Map();
68
160
  const visit = (owner) => {
69
- for (const coordinate of owner.dependencies) {
161
+ for (const coordinate of Object.values(owner.dependencies)) {
70
162
  const dependency = supplied.get(coordinate.origin);
71
- if (dependency === undefined || revisionOfDomainSchema(dependency) !== coordinate.revision) {
163
+ if (dependency === undefined || revision(dependency) !== coordinate.revision) {
72
164
  fail('PUBLICATION_INVALID', 'Publication Bundle omits an exact dependency.');
73
165
  }
74
166
  if (reachable.has(dependency.origin))
@@ -84,8 +176,10 @@ function admitCallable(input) {
84
176
  if (typeof input !== 'string' || !Key.is(input)) {
85
177
  return fail('PUBLICATION_INVALID', 'Function capability reference is invalid.');
86
178
  }
87
- const reference = Key.ref(input);
88
- if (!reference.startsWith('function.') && !Ref.isMethod(reference)) {
179
+ try {
180
+ callableAddress(input);
181
+ }
182
+ catch {
89
183
  return fail('PUBLICATION_INVALID', 'Function capability reference must name a Function or Method.');
90
184
  }
91
185
  return input;
@@ -101,14 +195,14 @@ function admitClassRequirement(input) {
101
195
  operations: Object.freeze(operations),
102
196
  });
103
197
  }
104
- function admitAdminRequirements(input) {
105
- const admin = record(input, 'PUBLICATION_INVALID', 'Administrative capability requirements are invalid.');
106
- exact(admin, ['grant', 'revoke'], 'PUBLICATION_INVALID');
107
- if (admin.grant === undefined && admin.revoke === undefined) {
108
- fail('PUBLICATION_INVALID', 'Administrative capability requirements cannot be empty.');
198
+ function admitAuthorityRequirements(input) {
199
+ const authority = record(input, 'PUBLICATION_INVALID', 'Authority capability requirements are invalid.');
200
+ exact(authority, ['grant', 'revoke'], 'PUBLICATION_INVALID');
201
+ if (authority.grant === undefined && authority.revoke === undefined) {
202
+ fail('PUBLICATION_INVALID', 'Authority capability requirements cannot be empty.');
109
203
  }
110
- const grant = admitAuthorityOperations(admin.grant, 'grant');
111
- const revoke = admitAuthorityOperations(admin.revoke, 'revoke');
204
+ const grant = admitAuthorityOperations(authority.grant, 'grant');
205
+ const revoke = admitAuthorityOperations(authority.revoke, 'revoke');
112
206
  return Object.freeze({
113
207
  ...(grant === undefined ? {} : { grant }),
114
208
  ...(revoke === undefined ? {} : { revoke }),
@@ -117,22 +211,35 @@ function admitAdminRequirements(input) {
117
211
  function admitAuthorityOperations(input, kind) {
118
212
  if (input === undefined)
119
213
  return undefined;
120
- const values = nonEmpty(input, `Administrative ${kind} operations`).map((entry) => admitOperation(entry, AuthorityOperationOrder, `Administrative ${kind} operation`));
121
- unique(values, 'PUBLICATION_INVALID', `administrative ${kind} operation`);
122
- canonical(values, ordered(AuthorityOperationOrder), `Administrative ${kind} operations`);
214
+ const values = nonEmpty(input, `Authority ${kind} operations`).map((entry) => admitOperation(entry, AuthorityOperationOrder, `Authority ${kind} operation`));
215
+ unique(values, 'PUBLICATION_INVALID', `authority ${kind} operation`);
216
+ canonical(values, ordered(AuthorityOperationOrder), `Authority ${kind} operations`);
123
217
  return Object.freeze(values);
124
218
  }
125
219
  function admitClassRef(input) {
126
- const value = record(input, 'PUBLICATION_INVALID', 'Class capability reference is invalid.');
127
- exact(value, ['kind', 'name', 'origin'], 'PUBLICATION_INVALID');
128
- if (value.kind !== 'class' ||
129
- typeof value.origin !== 'string' ||
130
- !patterns.origin.test(value.origin) ||
131
- typeof value.name !== 'string' ||
132
- !patterns.memberName.test(value.name)) {
220
+ let value;
221
+ try {
222
+ value = acceptDefinitionRef(input);
223
+ }
224
+ catch {
133
225
  fail('PUBLICATION_INVALID', 'Class capability reference is invalid.');
134
226
  }
135
- return Object.freeze({ origin: value.origin, kind: 'class', name: value.name });
227
+ if (value.kind !== 'class')
228
+ fail('PUBLICATION_INVALID', 'Class capability reference is invalid.');
229
+ return value;
230
+ }
231
+ function admitCoreRef(input) {
232
+ let value;
233
+ try {
234
+ value = acceptDefinitionRef(input);
235
+ }
236
+ catch {
237
+ fail('PUBLICATION_INVALID', 'Core capability subject is invalid.');
238
+ }
239
+ if (value.kind !== 'core') {
240
+ fail('PUBLICATION_INVALID', 'Core capability subject must be one local Core reference.');
241
+ }
242
+ return value;
136
243
  }
137
244
  function nonEmpty(input, label) {
138
245
  const values = [...array(input, 'PUBLICATION_INVALID')];
@@ -158,28 +265,23 @@ function compare(left, right) {
158
265
  return left < right ? -1 : left > right ? 1 : 0;
159
266
  }
160
267
  function classKey(input) {
161
- return String(Key.fromSchema(input));
268
+ return String(Key.of(input));
162
269
  }
163
270
  function capabilityOwner(root, dependencies, key, label) {
164
271
  const origin = Key.origin(key);
165
272
  if (origin === root.origin)
166
273
  fail('PUBLICATION_INVALID', `${label} capability target cannot be local.`);
167
- if (origin === KernelSchema.origin)
168
- return KernelSchema;
169
274
  const dependency = dependencies.get(origin);
170
275
  if (dependency === undefined) {
171
276
  fail('PUBLICATION_INVALID', `${label} capability target must belong to the exact dependency closure.`);
172
277
  }
173
278
  return dependency;
174
279
  }
175
- function hasCallable(dependency, reference) {
176
- if (reference.startsWith('function.')) {
177
- return dependency.functions[Ref.member(reference)] !== undefined;
178
- }
179
- const ownerKind = Ref.namespace(reference);
180
- const owner = Ref.member(reference);
181
- const method = Ref.child(reference);
182
- const declaration = ownerKind === 'class' ? dependency.classes[owner] : dependency.interfaces[owner];
183
- return declaration?.family === 'node' && declaration.methods[method] !== undefined;
280
+ function hasCallable(dependency, callable) {
281
+ const coordinate = callableAddress(callable);
282
+ if (coordinate.kind === 'function')
283
+ return dependency.functions[coordinate.name] !== undefined;
284
+ const declaration = dependency.classes[coordinate.owner.name];
285
+ const method = declaration?.kind === 'node' ? declaration.methods[coordinate.name] : undefined;
286
+ return method !== undefined && isMethodExecutable(declaration, method);
184
287
  }
185
- //# sourceMappingURL=requirements.js.map
@@ -35,4 +35,3 @@ export interface HttpRouteDeclaration extends Omit<HttpRoute, 'href'> {
35
35
  }
36
36
  export declare function admitRoute(input: unknown, origin: string): HttpRoute;
37
37
  export declare function admitRouteDeclaration(input: unknown, origin: string): HttpRouteDeclaration;
38
- //# sourceMappingURL=route.d.ts.map
@@ -152,4 +152,3 @@ function stringRecord(input) {
152
152
  }
153
153
  return Object.freeze(output);
154
154
  }
155
- //# sourceMappingURL=route.js.map
@@ -1,8 +1,7 @@
1
- import type { Revision } from '@astrale-os/kernel-dsl/v1/schema';
1
+ import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
2
2
  import type { BundleDescriptor } from './bundle-descriptor.js';
3
3
  export interface Schema {
4
4
  readonly revision: Revision;
5
5
  readonly bundle: BundleDescriptor;
6
6
  }
7
7
  export declare function admitSchema(input: unknown): Schema;
8
- //# sourceMappingURL=schema.d.ts.map
@@ -13,4 +13,3 @@ export function admitSchema(input) {
13
13
  bundle: admitBundleDescriptor(value.bundle),
14
14
  });
15
15
  }
16
- //# sourceMappingURL=schema.js.map
@@ -1,4 +1,3 @@
1
1
  import type { Table } from './table.js';
2
2
  /** Admit one emitted portable Table before Server composition. */
3
3
  export declare function acceptTable(input: unknown): Table;
4
- //# sourceMappingURL=admission.d.ts.map
@@ -2,7 +2,7 @@ import { accept as acceptPortable } from '@astrale-os/kernel-dsl/value';
2
2
  import { acceptReference } from '../publication/reference.js';
3
3
  import { admitRoute } from '../publication/route.js';
4
4
  import { fail } from './error.js';
5
- const AUTHENTICATION = new Set(['anonymous', 'authenticated', 'authorized']);
5
+ const AUTH = new Set(['anonymous', 'authenticated', 'authorized']);
6
6
  const OUTPUT = new Set(['value', 'stream', 'binary']);
7
7
  /** Admit one emitted portable Table before Server composition. */
8
8
  export function acceptTable(input) {
@@ -19,11 +19,11 @@ export function acceptTable(input) {
19
19
  }
20
20
  function acceptRoute(input, origin) {
21
21
  const value = object(input, 'Route Table entry');
22
- exact(value, ['name', 'callable', 'target', 'authentication', 'output', 'href', 'method', 'default'], 'Route Table entry', ['requestMethod', 'query', 'headers', 'body', 'credential']);
22
+ exact(value, ['name', 'callable', 'target', 'auth', 'output', 'href', 'method', 'default'], 'Route Table entry', ['requestMethod', 'query', 'headers', 'body', 'credential']);
23
23
  if (typeof value.default !== 'boolean')
24
24
  invalid('Route Table default');
25
- if (typeof value.authentication !== 'string' || !AUTHENTICATION.has(value.authentication)) {
26
- invalid('Route Table authentication');
25
+ if (typeof value.auth !== 'string' || !AUTH.has(value.auth)) {
26
+ invalid('Route Table auth');
27
27
  }
28
28
  if (typeof value.output !== 'string' || !OUTPUT.has(value.output))
29
29
  invalid('Route Table output');
@@ -44,7 +44,7 @@ function acceptRoute(input, origin) {
44
44
  return Object.freeze({
45
45
  ...common,
46
46
  target: target(value.target),
47
- authentication: value.authentication,
47
+ auth: value.auth,
48
48
  output: value.output,
49
49
  default: value.default,
50
50
  });
@@ -87,4 +87,3 @@ function exact(value, required, label, optional = []) {
87
87
  function invalid(label) {
88
88
  return fail('NATIVE_ROUTE_BINDING_INVALID', `${label} is invalid.`);
89
89
  }
90
- //# sourceMappingURL=admission.js.map
@@ -1,7 +1,6 @@
1
- import type { schema } from '@astrale-os/kernel-dsl/v1';
1
+ import type { Domain } from '@astrale-os/kernel-dsl/v1';
2
2
  import type { Publication } from '../publication/publication.js';
3
3
  import type { Plan } from './plan.js';
4
4
  import type { Table } from './table.js';
5
- /** Bind one Plan to an exact placed Publication and matching Validator. */
6
- export declare function bind(plan: Plan, deployed: Publication, validator: schema.Validator): Table;
7
- //# sourceMappingURL=binding.d.ts.map
5
+ /** Bind one Plan to an exact placed Publication and matching resolved Domain. */
6
+ export declare function bind(plan: Plan, deployed: Publication, domain: Domain): Table;
@@ -3,13 +3,13 @@ import { reference } from '../publication/reference.js';
3
3
  import { fail } from './error.js';
4
4
  import { place } from './placement.js';
5
5
  import { rejectReserved } from './reservation.js';
6
- /** Bind one Plan to an exact placed Publication and matching Validator. */
7
- export function bind(plan, deployed, validator) {
6
+ /** Bind one Plan to an exact placed Publication and matching resolved Domain. */
7
+ export function bind(plan, deployed, domain) {
8
8
  if (plan.origin !== deployed.origin ||
9
- plan.origin !== validator.origin ||
9
+ plan.origin !== domain.origin ||
10
10
  plan.revision !== deployed.schema.revision ||
11
- plan.revision !== validator.revision) {
12
- fail('NATIVE_ROUTE_BINDING_INVALID', 'Route Plan, Publication, and Validator identity differ.');
11
+ plan.revision !== domain.revision) {
12
+ fail('NATIVE_ROUTE_BINDING_INVALID', 'Route Plan, Publication, and Domain identity differ.');
13
13
  }
14
14
  if (json.serialize(place(plan, deployed.identity.issuer)) !==
15
15
  json.serialize(deployed.routes)) {
@@ -25,4 +25,3 @@ export function bind(plan, deployed, validator) {
25
25
  entries: Object.freeze(entries),
26
26
  });
27
27
  }
28
- //# sourceMappingURL=binding.js.map
@@ -1,3 +1,2 @@
1
1
  import type { Route } from './table.js';
2
2
  export declare function rejectCollisions(entries: readonly Route[]): void;
3
- //# sourceMappingURL=collision.d.ts.map
@@ -14,4 +14,3 @@ export function rejectCollisions(entries) {
14
14
  function overlap(left, right) {
15
15
  return left === '*' || right === '*' || left === right;
16
16
  }
17
- //# sourceMappingURL=collision.js.map
@@ -1,9 +1,8 @@
1
- import type { schema } from '@astrale-os/kernel-dsl/v1';
1
+ import type { Domain } from '@astrale-os/kernel-dsl/v1';
2
2
  import type * as publication from '../publication/index.js';
3
3
  import type { Plan } from './plan.js';
4
4
  export interface CompileInput {
5
5
  readonly routes: readonly publication.HttpRouteDeclaration[];
6
- readonly validator: schema.Validator;
6
+ readonly domain: Domain;
7
7
  }
8
8
  export declare function compile(input: CompileInput): Plan;
9
- //# sourceMappingURL=compiler.d.ts.map
@@ -8,41 +8,43 @@ export function compile(input) {
8
8
  if (input === null || typeof input !== 'object' || !Array.isArray(input.routes)) {
9
9
  throw new TypeError('Route compilation input is invalid.');
10
10
  }
11
- const authored = input.routes.map((entry) => admitRouteDeclaration(entry, input.validator.origin));
11
+ const authored = input.routes.map((entry) => admitRouteDeclaration(entry, input.domain.origin));
12
12
  const entries = authored.map((declaration) => {
13
- const meaning = input.validator.callable(declaration.callable);
14
- if (meaning === undefined) {
15
- fail('NATIVE_ROUTE_BINDING_INVALID', `Unknown callable ${declaration.callable}.`);
13
+ const meaning = input.domain.callable(declaration.callable);
14
+ if (meaning === undefined || (isMethod(meaning) && !meaning.executable)) {
15
+ fail('NATIVE_ROUTE_BINDING_INVALID', `Unavailable callable ${declaration.callable}.`);
16
16
  }
17
17
  const href = placePath(declaration.path, 'https://routes.invalid');
18
18
  const route = { ...declaration, href };
19
19
  validateTemplate(href);
20
- validateMapping(route, meaning.fields, meaning.target.kind === 'method' && meaning.target.dispatch === 'instance');
20
+ validateMapping(route, meaning.inputFields, isMethod(meaning) && !meaning.static);
21
21
  validateWireMapping(route);
22
22
  validateCredentialMapping(route);
23
23
  if (route.method === 'GET' && route.body !== undefined) {
24
24
  fail('NATIVE_ROUTE_DECLARATION_INVALID', `GET route ${route.name} cannot declare a body.`);
25
25
  }
26
- const target = meaning.target.kind === 'function'
26
+ const target = !isMethod(meaning)
27
27
  ? { kind: 'function' }
28
- : meaning.target.dispatch === 'static'
28
+ : meaning.static
29
29
  ? { kind: 'method', dispatch: 'static' }
30
30
  : { kind: 'method', dispatch: 'instance', receiver: route.receiver };
31
31
  const { href: _href, receiver: _receiver, ...portable } = route;
32
32
  return Object.freeze({
33
33
  ...portable,
34
34
  target,
35
- authentication: meaning.authentication,
36
- output: meaning.output,
35
+ auth: meaning.auth,
36
+ output: meaning.output.mode,
37
37
  path: declaration.path,
38
38
  default: declaration.default === true,
39
39
  });
40
40
  });
41
41
  rejectCollisions(entries.map((entry) => ({ ...entry, href: placePath(entry.path, 'https://routes.invalid') })));
42
42
  return Object.freeze({
43
- origin: input.validator.origin,
44
- revision: input.validator.revision,
43
+ origin: input.domain.origin,
44
+ revision: input.domain.revision,
45
45
  entries: Object.freeze(entries),
46
46
  });
47
47
  }
48
- //# sourceMappingURL=compiler.js.map
48
+ function isMethod(meaning) {
49
+ return 'owner' in meaning;
50
+ }
@@ -6,4 +6,3 @@ export declare function specificHeaderWires(entry: Route): ReadonlySet<string>;
6
6
  export declare function putCredential(entry: Route, url: URL, headers: Record<string, string>, credential: string): void;
7
7
  export declare function withoutCredentialHeaders(entry: Route, input: Readonly<Record<string, string>>): Record<string, string>;
8
8
  export declare function readCredential(entry: Route, url: URL, headers: Record<string, string>): string | undefined;
9
- //# sourceMappingURL=credential.d.ts.map
@@ -116,4 +116,3 @@ function withoutCookie(header, name) {
116
116
  .join('; ');
117
117
  return value.length === 0 ? undefined : value;
118
118
  }
119
- //# sourceMappingURL=credential.js.map
@@ -1,6 +1,5 @@
1
- import type { schema } from '@astrale-os/kernel-dsl/v1';
1
+ import type { Domain } from '@astrale-os/kernel-dsl/v1';
2
2
  import type { PublicationRef } from '../publication/index.js';
3
3
  import type { HttpRequest, Invocation } from './request.js';
4
4
  import type { Route } from './table.js';
5
- export declare function decode(entry: Route, request: HttpRequest, validator: schema.Validator, served: PublicationRef): Invocation;
6
- //# sourceMappingURL=decode.d.ts.map
5
+ export declare function decode(entry: Route, request: HttpRequest, domain: Domain, served: PublicationRef): Invocation;
@@ -1,5 +1,4 @@
1
- import { NodePath, Path } from '@astrale-os/kernel-core/path';
2
- import { Key, Ref } from '@astrale-os/kernel-dsl/v1/addressing';
1
+ import { NodePath } from '@astrale-os/kernel-core/path';
3
2
  import * as portable from '@astrale-os/kernel-dsl/value';
4
3
  import { readCredential, specificHeaderWires, withoutCredentialHeaders } from './credential.js';
5
4
  import { fail, invalidRequest } from './error.js';
@@ -10,7 +9,7 @@ import { decodeRouting } from './routing.js';
10
9
  import { decodeScalar } from './scalar.js';
11
10
  import { requiresReceiver } from './target.js';
12
11
  import { matchTemplate, PLACEHOLDER } from './template.js';
13
- export function decode(entry, request, validator, served) {
12
+ export function decode(entry, request, domain, served) {
14
13
  if (!methodMatches(entry, request.method))
15
14
  invalidRequest('HTTP method does not match the route.');
16
15
  const matched = matchTemplate(entry.href, request.url);
@@ -18,10 +17,10 @@ export function decode(entry, request, validator, served) {
18
17
  invalidRequest('URL does not match the route template.');
19
18
  const values = {};
20
19
  for (const [name, value] of Object.entries(matched)) {
21
- values[name] = decodeScalar(entry, name, value, validator);
20
+ values[name] = decodeScalar(entry, name, value, domain);
22
21
  }
23
22
  if (entry.requestMethod !== undefined) {
24
- values[entry.requestMethod] = decodeScalar(entry, entry.requestMethod, request.method.toUpperCase(), validator);
23
+ values[entry.requestMethod] = decodeScalar(entry, entry.requestMethod, request.method.toUpperCase(), domain);
25
24
  }
26
25
  let url;
27
26
  try {
@@ -41,7 +40,7 @@ export function decode(entry, request, validator, served) {
41
40
  const found = url.searchParams.getAll(wire);
42
41
  if (found.length !== 1)
43
42
  invalidRequest(`Query parameter ${wire} must occur exactly once.`);
44
- values[name] = decodeScalar(entry, name, found[0], validator);
43
+ values[name] = decodeScalar(entry, name, found[0], domain);
45
44
  }
46
45
  for (const [name, pick] of Object.entries(entry.headers ?? {})) {
47
46
  if (pick === '*') {
@@ -55,12 +54,12 @@ export function decode(entry, request, validator, served) {
55
54
  const value = headers[pick.toLowerCase()];
56
55
  if (value === undefined)
57
56
  invalidRequest(`Missing header ${pick}.`);
58
- values[name] = decodeScalar(entry, name, value, validator);
57
+ values[name] = decodeScalar(entry, name, value, domain);
59
58
  }
60
59
  }
61
60
  if (entry.body === '*') {
62
61
  const body = parseJsonObject(request.body);
63
- const allowed = remainderFields(entry, validator);
62
+ const allowed = remainderFields(entry, domain);
64
63
  for (const name of Object.keys(body)) {
65
64
  if (!allowed.has(name)) {
66
65
  invalidRequest(`JSON body field ${name} is not owned by the route remainder mapping.`);
@@ -112,34 +111,25 @@ export function decode(entry, request, validator, served) {
112
111
  }
113
112
  throw cause;
114
113
  }
115
- const ref = Key.ref(entry.callable);
116
- const target = Ref.isMethod(ref)
117
- ? receiver === undefined
118
- ? Path.staticMethod(Path.project({
119
- origin: Key.origin(entry.callable),
120
- kind: Ref.namespace(ref),
121
- name: Ref.member(ref),
122
- }), Ref.child(ref)).raw
123
- : Path.instanceMethod(Path.from(receiver), Ref.child(ref)).raw
124
- : Path.project({
125
- origin: Key.origin(entry.callable),
126
- kind: 'function',
127
- name: Ref.member(ref),
128
- }).raw;
114
+ const target = Object.freeze({
115
+ callable: entry.callable,
116
+ revision: domain.revision,
117
+ ...(receiver === undefined ? {} : { instance: receiver }),
118
+ });
129
119
  return Object.freeze({
130
120
  call: Object.freeze({ target, input }),
131
121
  ...(credential === undefined ? {} : { credential }),
132
122
  ...(routing === undefined ? {} : { routing }),
133
123
  });
134
124
  }
135
- function remainderFields(entry, validator) {
125
+ function remainderFields(entry, domain) {
136
126
  const claimed = new Set([
137
127
  ...[...entry.href.matchAll(PLACEHOLDER)].map((item) => item[1]),
138
128
  ...(entry.requestMethod === undefined ? [] : [entry.requestMethod]),
139
129
  ...Object.keys(entry.query ?? {}),
140
130
  ...Object.keys(entry.headers ?? {}),
141
131
  ]);
142
- const fields = validator.callable(entry.callable)?.fields ?? [];
132
+ const fields = domain.callable(entry.callable)?.inputFields ?? [];
143
133
  const allowed = new Set(fields.filter((name) => !claimed.has(name)));
144
134
  const receiver = entry.target.kind === 'method' && entry.target.dispatch === 'instance'
145
135
  ? entry.target.receiver
@@ -149,4 +139,3 @@ function remainderFields(entry, validator) {
149
139
  }
150
140
  return allowed;
151
141
  }
152
- //# sourceMappingURL=decode.js.map
@@ -1,5 +1,4 @@
1
- import type { schema } from '@astrale-os/kernel-dsl/v1';
1
+ import type { Domain } from '@astrale-os/kernel-dsl/v1';
2
2
  import type { Invocation, Request } from './request.js';
3
3
  import type { Route } from './table.js';
4
- export declare function encode(entry: Route, invocation: Invocation, validator: schema.Validator): Request;
5
- //# sourceMappingURL=encode.d.ts.map
4
+ export declare function encode(entry: Route, invocation: Invocation, domain: Domain): Request;