@astrale-os/kernel-protocol 0.5.0-beta.6 → 0.5.0-beta.60

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 +4 -2
  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 +10 -4
  68. package/dist/invocation/schema.js +7 -7
  69. package/dist/invocation/service-reason.d.ts +16 -12
  70. package/dist/invocation/service-reason.js +15 -9
  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 +9 -1
  110. package/dist/publication/bindings/view.js +122 -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 +6 -8
  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 +71 -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 +5 -3
  222. package/dist/schema/installation/introspection/codec.js +184 -192
  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 +36 -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,24 +1,28 @@
1
1
  import type { IssuerId } from '@astrale-os/kernel-core/auth/issuer';
2
- import type { Revision } from '@astrale-os/kernel-dsl/v1/schema';
2
+ import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
3
3
  import type { Object as ValueObject } from '@astrale-os/kernel-dsl/value';
4
- import { type Key } from '@astrale-os/kernel-dsl/v1/addressing';
4
+ import { Key } from '@astrale-os/kernel-dsl/v1/addressing';
5
5
  import type { ErrorPayload, ErrorReason } from '../errors/index.js';
6
+ import type { Sha256Digest } from '../publication/index.js';
6
7
  import { CODES } from '../errors/index.js';
7
- export declare const SCHEMA_UPGRADE_REQUIRED: 'SCHEMA_UPGRADE_REQUIRED';
8
+ /** @deprecated Emitted only for the deprecated revision pin; fingerprint pins report CALLABLE_FINGERPRINT_MISMATCH. */
8
9
  export declare const SCHEMA_REVISION_MISMATCH: 'SCHEMA_REVISION_MISMATCH';
10
+ export declare const CALLABLE_FINGERPRINT_MISMATCH: 'CALLABLE_FINGERPRINT_MISMATCH';
9
11
  export declare const SERVICE_TRUST_REQUIRED: 'SERVICE_TRUST_REQUIRED';
10
12
  export declare const SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE';
11
13
  export declare const SERVICE_CANDIDATE_INVALID: 'SERVICE_CANDIDATE_INVALID';
12
- export type SchemaUpgradeRequiredDetails = ValueObject & {
13
- readonly origin: Key.Origin;
14
- readonly installedRevision: Revision;
15
- readonly candidateRevision: Revision;
16
- };
14
+ /** @deprecated Detail shape of the deprecated revision pin conflict. */
17
15
  export type SchemaRevisionMismatchDetails = ValueObject & {
18
16
  readonly origin: Key.Origin;
19
17
  readonly expectedRevision: Revision;
20
18
  readonly installedRevision: Revision;
21
19
  };
20
+ export type CallableFingerprintMismatchDetails = ValueObject & {
21
+ readonly origin: Key.Origin;
22
+ readonly callable: Key.Callable;
23
+ readonly expectedFingerprint: Sha256Digest;
24
+ readonly installedFingerprint: Sha256Digest;
25
+ };
22
26
  export type ServiceTrustRequiredDetails = ValueObject & {
23
27
  readonly origin: Key.Origin;
24
28
  readonly installedIssuer: IssuerId;
@@ -31,19 +35,19 @@ export type ServiceUnavailableDetails = ValueObject & {
31
35
  export type ServiceCandidateInvalidDetails = ValueObject & {
32
36
  readonly origin: Key.Origin;
33
37
  };
34
- export type SchemaUpgradeRequiredReason = ErrorReason<typeof SCHEMA_UPGRADE_REQUIRED, SchemaUpgradeRequiredDetails>;
38
+ /** @deprecated Detail shape of the deprecated revision pin conflict. */
35
39
  export type SchemaRevisionMismatchReason = ErrorReason<typeof SCHEMA_REVISION_MISMATCH, SchemaRevisionMismatchDetails>;
40
+ export type CallableFingerprintMismatchReason = ErrorReason<typeof CALLABLE_FINGERPRINT_MISMATCH, CallableFingerprintMismatchDetails>;
36
41
  export type ServiceTrustRequiredReason = ErrorReason<typeof SERVICE_TRUST_REQUIRED, ServiceTrustRequiredDetails>;
37
42
  export type ServiceUnavailableReason = ErrorReason<typeof SERVICE_UNAVAILABLE, ServiceUnavailableDetails>;
38
43
  export type ServiceCandidateInvalidReason = ErrorReason<typeof SERVICE_CANDIDATE_INVALID, ServiceCandidateInvalidDetails>;
39
- export type ServiceReason = SchemaRevisionMismatchReason | SchemaUpgradeRequiredReason | ServiceTrustRequiredReason | ServiceUnavailableReason | ServiceCandidateInvalidReason;
44
+ export type ServiceReason = SchemaRevisionMismatchReason | CallableFingerprintMismatchReason | ServiceTrustRequiredReason | ServiceUnavailableReason | ServiceCandidateInvalidReason;
40
45
  export type ServiceErrorPayload = (Omit<ErrorPayload, 'code' | 'data'> & {
41
46
  readonly code: typeof CODES.CONFLICT;
42
- readonly data: SchemaRevisionMismatchReason | SchemaUpgradeRequiredReason | ServiceTrustRequiredReason;
47
+ readonly data: SchemaRevisionMismatchReason | CallableFingerprintMismatchReason | ServiceTrustRequiredReason;
43
48
  }) | (Omit<ErrorPayload, 'code' | 'data'> & {
44
49
  readonly code: typeof CODES.BACKEND_UNAVAILABLE;
45
50
  readonly data: ServiceUnavailableReason | ServiceCandidateInvalidReason;
46
51
  });
47
52
  /** Recognize only exact outer-code, reason-code, and detail-shape combinations. */
48
53
  export declare function serviceErrorOf(input: ErrorPayload): ServiceErrorPayload | undefined;
49
- //# sourceMappingURL=service-reason.d.ts.map
@@ -1,9 +1,10 @@
1
1
  import { AuthValueError } from '@astrale-os/kernel-core/auth/error';
2
2
  import { accept as acceptIssuer } from '@astrale-os/kernel-core/auth/issuer';
3
- import { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
3
+ import { Key, patterns } from '@astrale-os/kernel-dsl/v1/addressing';
4
4
  import { CODES, reasonOf } from '../errors/index.js';
5
- export const SCHEMA_UPGRADE_REQUIRED = 'SCHEMA_UPGRADE_REQUIRED';
5
+ /** @deprecated Emitted only for the deprecated revision pin; fingerprint pins report CALLABLE_FINGERPRINT_MISMATCH. */
6
6
  export const SCHEMA_REVISION_MISMATCH = 'SCHEMA_REVISION_MISMATCH';
7
+ export const CALLABLE_FINGERPRINT_MISMATCH = 'CALLABLE_FINGERPRINT_MISMATCH';
7
8
  export const SERVICE_TRUST_REQUIRED = 'SERVICE_TRUST_REQUIRED';
8
9
  export const SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE';
9
10
  export const SERVICE_CANDIDATE_INVALID = 'SERVICE_CANDIDATE_INVALID';
@@ -17,8 +18,8 @@ export function serviceErrorOf(input) {
17
18
  return input.code === CODES.CONFLICT && schemaRevisionMismatchDetails(reason.details)
18
19
  ? input
19
20
  : undefined;
20
- case SCHEMA_UPGRADE_REQUIRED:
21
- return input.code === CODES.CONFLICT && schemaUpgradeDetails(reason.details)
21
+ case CALLABLE_FINGERPRINT_MISMATCH:
22
+ return input.code === CODES.CONFLICT && callableFingerprintMismatchDetails(reason.details)
22
23
  ? input
23
24
  : undefined;
24
25
  case SERVICE_TRUST_REQUIRED:
@@ -43,11 +44,14 @@ function schemaRevisionMismatchDetails(input) {
43
44
  isRevision(input.expectedRevision) &&
44
45
  isRevision(input.installedRevision));
45
46
  }
46
- function schemaUpgradeDetails(input) {
47
- return (exact(input, ['origin', 'installedRevision', 'candidateRevision']) &&
47
+ function callableFingerprintMismatchDetails(input) {
48
+ return (exact(input, ['origin', 'callable', 'expectedFingerprint', 'installedFingerprint']) &&
48
49
  isOrigin(input.origin) &&
49
- isRevision(input.installedRevision) &&
50
- isRevision(input.candidateRevision));
50
+ typeof input.callable === 'string' &&
51
+ Key.is(input.callable) &&
52
+ Key.origin(input.callable) === input.origin &&
53
+ isDigest(input.expectedFingerprint) &&
54
+ isDigest(input.installedFingerprint));
51
55
  }
52
56
  function serviceTrustDetails(input) {
53
57
  return (exact(input, ['origin', 'installedIssuer', 'candidateIssuer']) &&
@@ -71,6 +75,9 @@ function isOrigin(input) {
71
75
  function isRevision(input) {
72
76
  return typeof input === 'string' && patterns.revision.test(input);
73
77
  }
78
+ function isDigest(input) {
79
+ return typeof input === 'string' && /^sha256:[0-9a-f]{64}$/u.test(input);
80
+ }
74
81
  function isIssuer(input) {
75
82
  if (typeof input !== 'string')
76
83
  return false;
@@ -83,4 +90,3 @@ function isIssuer(input) {
83
90
  throw cause;
84
91
  }
85
92
  }
86
- //# sourceMappingURL=service-reason.js.map
@@ -10,4 +10,3 @@ export interface Stale {
10
10
  }
11
11
  export declare function decodeStale(input: unknown): Stale;
12
12
  export declare function stale(requestId: RequestId, assigned: InvocationId, current: Etag): Stale;
13
- //# sourceMappingURL=stale-route.d.ts.map
@@ -17,4 +17,3 @@ export function decodeStale(input) {
17
17
  export function stale(requestId, assigned, current) {
18
18
  return decodeStale({ kind: 'stale', requestId, invocation: assigned, current });
19
19
  }
20
- //# sourceMappingURL=stale-route.js.map
@@ -25,4 +25,3 @@ export interface StreamErrorFrame {
25
25
  }
26
26
  export type StreamFrame = StreamStartFrame | StreamItemFrame | StreamEndFrame | StreamErrorFrame;
27
27
  export declare function decodeStreamFrame(input: unknown): StreamFrame;
28
- //# sourceMappingURL=stream.d.ts.map
@@ -42,4 +42,3 @@ export function decodeStreamFrame(input) {
42
42
  return invalid(`unsupported stream frame kind ${JSON.stringify(kind)}`);
43
43
  }
44
44
  }
45
- //# sourceMappingURL=stream.js.map
@@ -1,4 +1,3 @@
1
- import type { Call } from '@astrale-os/kernel-core/domain';
2
- export type { Call } from '@astrale-os/kernel-core/domain';
1
+ import { type Call } from '@astrale-os/kernel-core/callable';
2
+ export { Target, targetPath, type Call } from '@astrale-os/kernel-core/callable';
3
3
  export declare function acceptCall(input: unknown): Call;
4
- //# sourceMappingURL=target.d.ts.map
@@ -1,12 +1,26 @@
1
- import { exactFields, nodePath, portableObject, required } from './admission.js';
1
+ import { Target } from '@astrale-os/kernel-core/callable';
2
+ import { PathError } from '@astrale-os/kernel-core/path';
3
+ import { exactFields, invalid, nodePath, portableObject, required } from './admission.js';
4
+ export { Target, targetPath } from '@astrale-os/kernel-core/callable';
2
5
  const CALL_FIELDS = new Set(['target', 'input']);
3
6
  export function acceptCall(input) {
4
7
  const object = portableObject(input, 'call');
5
8
  exactFields(object, CALL_FIELDS, 'call');
6
9
  required(object, ['target', 'input'], 'call');
7
10
  return Object.freeze({
8
- target: nodePath(object.target, 'call.target'),
11
+ target: acceptTarget(object.target),
9
12
  input: object.input,
10
13
  });
11
14
  }
12
- //# sourceMappingURL=target.js.map
15
+ function acceptTarget(input) {
16
+ if (typeof input === 'string')
17
+ return nodePath(input, 'call.target');
18
+ try {
19
+ return Target(input);
20
+ }
21
+ catch (cause) {
22
+ if (cause instanceof TypeError || cause instanceof PathError)
23
+ return invalid('call.target must be a canonical NodePath or declaration Target');
24
+ throw cause;
25
+ }
26
+ }
@@ -7,4 +7,3 @@ export interface Trace {
7
7
  }
8
8
  /** Admit portable correlation syntax without making it an invocation validity condition. */
9
9
  export declare function admitTrace(input: unknown): Trace | undefined;
10
- //# sourceMappingURL=trace.d.ts.map
@@ -84,4 +84,3 @@ function validStateKey(input) {
84
84
  return false;
85
85
  return TENANT_ID.test(input.slice(0, separator)) && SYSTEM_ID.test(input.slice(separator + 1));
86
86
  }
87
- //# sourceMappingURL=trace.js.map
@@ -1,3 +1,2 @@
1
1
  export declare const VERSION: 2;
2
2
  export type Version = typeof VERSION;
3
- //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1 @@
1
1
  export const VERSION = 2;
2
- //# sourceMappingURL=version.js.map
@@ -1,4 +1,3 @@
1
1
  import type { BinaryResponse } from '../binary.js';
2
2
  export declare function encodeBinary(response: BinaryResponse): Uint8Array;
3
3
  export declare function decodeBinary(input: Uint8Array): BinaryResponse | undefined;
4
- //# sourceMappingURL=binary.d.ts.map
@@ -4,7 +4,7 @@ const MAGIC = new Uint8Array([0x41, 0x53, 0x54, 0x42, 0x01]);
4
4
  const LENGTH_BYTES = 4;
5
5
  const MAXIMUM_METADATA_BYTES = 65_536;
6
6
  const encoder = new TextEncoder();
7
- const decoder = new TextDecoder('utf-8', { fatal: true });
7
+ const decoder = new TextDecoder('utf-8', { fatal: true, ignoreBOM: false });
8
8
  export function encodeBinary(response) {
9
9
  const headers = response.headers === undefined
10
10
  ? undefined
@@ -14,6 +14,7 @@ export function encodeBinary(response) {
14
14
  requestId: response.requestId,
15
15
  invocation: response.invocation,
16
16
  mediaType: response.mediaType,
17
+ status: response.status,
17
18
  ...(headers === undefined ? {} : { headers }),
18
19
  }));
19
20
  if (metadata.byteLength > MAXIMUM_METADATA_BYTES)
@@ -69,4 +70,3 @@ function invalid() {
69
70
  message: 'WebSocket binary response is invalid.',
70
71
  });
71
72
  }
72
- //# sourceMappingURL=binary.js.map
@@ -1,3 +1,2 @@
1
1
  export { decodeBinary, encodeBinary } from './binary.js';
2
2
  export { JSON_SUBPROTOCOL, MSGPACK_SUBPROTOCOL, selectSubprotocol, subprotocolFor, type Subprotocol, type SubprotocolSelection, } from './subprotocol.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,2 @@
1
1
  export { decodeBinary, encodeBinary } from './binary.js';
2
2
  export { JSON_SUBPROTOCOL, MSGPACK_SUBPROTOCOL, selectSubprotocol, subprotocolFor, } from './subprotocol.js';
3
- //# sourceMappingURL=index.js.map
@@ -8,4 +8,3 @@ export interface SubprotocolSelection {
8
8
  }
9
9
  export declare function subprotocolFor(codec: Codec): Subprotocol;
10
10
  export declare function selectSubprotocol(offered: string | null, supported: readonly Codec[]): SubprotocolSelection | undefined;
11
- //# sourceMappingURL=subprotocol.d.ts.map
@@ -27,4 +27,3 @@ export function selectSubprotocol(offered, supported) {
27
27
  }
28
28
  return undefined;
29
29
  }
30
- //# sourceMappingURL=subprotocol.js.map
@@ -12,4 +12,3 @@ export interface ConfigurationOptions {
12
12
  export declare function configuration(issuer: string, algorithms: readonly [string, ...string[]], options?: ConfigurationOptions): Configuration;
13
13
  export declare function acceptConfiguration(input: unknown, expectedIssuer?: string): Configuration;
14
14
  export declare function acceptAlgorithms(input: unknown): readonly [string, ...string[]];
15
- //# sourceMappingURL=configuration.d.ts.map
@@ -84,4 +84,3 @@ function deepFreeze(input) {
84
84
  deepFreeze(value);
85
85
  return Object.freeze(input);
86
86
  }
87
- //# sourceMappingURL=configuration.js.map
@@ -5,4 +5,3 @@ export declare class DiscoveryError extends Error {
5
5
  constructor(code: DiscoveryErrorCode, message: string, options?: ErrorOptions);
6
6
  }
7
7
  export declare function fail(code: DiscoveryErrorCode, message: string, cause?: unknown): never;
8
- //# sourceMappingURL=error.d.ts.map
@@ -9,4 +9,3 @@ export class DiscoveryError extends Error {
9
9
  export function fail(code, message, cause) {
10
10
  throw new DiscoveryError(code, message, cause === undefined ? undefined : { cause });
11
11
  }
12
- //# sourceMappingURL=error.js.map
@@ -23,4 +23,3 @@ export declare function acceptResponse(input: unknown): Response;
23
23
  export declare function acceptErrorResponse(input: unknown): ErrorResponse;
24
24
  export declare function acceptHttpRequest(input: HttpRequest): Request;
25
25
  export declare function responseHeaders(): Readonly<Record<string, string>>;
26
- //# sourceMappingURL=exchange.d.ts.map
@@ -127,4 +127,3 @@ function nonEmptyText(input, label) {
127
127
  }
128
128
  return input;
129
129
  }
130
- //# sourceMappingURL=exchange.js.map
@@ -1,3 +1,2 @@
1
1
  import type { IssuerId } from '@astrale-os/kernel-core/auth/issuer';
2
2
  export declare function hosted(base: string, thumbprint: string): IssuerId | undefined;
3
- //# sourceMappingURL=hosted.d.ts.map
@@ -5,4 +5,3 @@ export function hosted(base, thumbprint) {
5
5
  return undefined;
6
6
  return acceptIssuer(`${acceptIssuer(base)}/iss/${thumbprint}`);
7
7
  }
8
- //# sourceMappingURL=hosted.js.map
@@ -4,4 +4,3 @@ export { hosted } from './hosted.js';
4
4
  export { acceptKeySet, keySet, type KeySet } from './key-set.js';
5
5
  export { paths, type Paths } from './paths.js';
6
6
  export * as exchange from './exchange.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@ export { hosted } from './hosted.js';
4
4
  export { acceptKeySet, keySet } from './key-set.js';
5
5
  export { paths } from './paths.js';
6
6
  export * as exchange from './exchange.js';
7
- //# sourceMappingURL=index.js.map
@@ -4,4 +4,3 @@ export interface KeySet {
4
4
  }
5
5
  export declare function keySet(keys: readonly JsonWebKey[], algorithms: readonly [string, ...string[]]): KeySet;
6
6
  export declare function acceptKeySet(input: unknown, algorithms: readonly [string, ...string[]]): KeySet;
7
- //# sourceMappingURL=key-set.d.ts.map
@@ -46,4 +46,3 @@ function deepFreeze(input) {
46
46
  deepFreeze(value);
47
47
  return Object.freeze(input);
48
48
  }
49
- //# sourceMappingURL=key-set.js.map
@@ -4,4 +4,3 @@ export interface Paths {
4
4
  readonly tokenExchange: string;
5
5
  }
6
6
  export declare function paths(issuer: string): Paths;
7
- //# sourceMappingURL=paths.d.ts.map
@@ -8,4 +8,3 @@ export function paths(issuer) {
8
8
  tokenExchange: `${pathname}/.well-known/astrale/token`,
9
9
  });
10
10
  }
11
- //# sourceMappingURL=paths.js.map
@@ -1,3 +1,2 @@
1
1
  import { type IssuerId } from '@astrale-os/kernel-core/auth/issuer';
2
2
  export declare function acceptIssuer(input: unknown): IssuerId;
3
- //# sourceMappingURL=url.d.ts.map
@@ -32,4 +32,3 @@ export function acceptIssuer(input) {
32
32
  throw cause;
33
33
  }
34
34
  }
35
- //# sourceMappingURL=url.js.map
@@ -6,4 +6,3 @@ export interface CallableBinding {
6
6
  }
7
7
  export declare function admitCallableBinding(input: unknown, origin: string): CallableBinding;
8
8
  export declare function admitCallableKey(input: unknown, origin: string): Key.Callable;
9
- //# sourceMappingURL=callable.d.ts.map
@@ -1,4 +1,4 @@
1
- import { Key, Ref } from '@astrale-os/kernel-dsl/v1/addressing';
1
+ import { callableAddress, Key } from '@astrale-os/kernel-dsl/v1/addressing';
2
2
  import { exact, record } from '../content.js';
3
3
  import { fail } from '../error.js';
4
4
  import { acceptInvocationEndpoints } from './invocation.js';
@@ -21,12 +21,14 @@ export function admitCallableKey(input, origin) {
21
21
  }
22
22
  throw cause;
23
23
  }
24
- const reference = Key.ref(callable);
25
- if (Key.origin(callable) !== origin ||
26
- (!Ref.isDefinition(reference) && !Ref.isMethod(reference)) ||
27
- (!reference.startsWith('function.') && !Ref.isMethod(reference))) {
24
+ if (Key.origin(callable) !== origin) {
28
25
  fail('PUBLICATION_BINDING_INVALID', 'Binding must name one callable owned by the root Domain.');
29
26
  }
27
+ try {
28
+ callableAddress(callable);
29
+ }
30
+ catch (cause) {
31
+ return fail('PUBLICATION_BINDING_INVALID', 'Binding must name one callable owned by the root Domain.', cause);
32
+ }
30
33
  return callable;
31
34
  }
32
- //# sourceMappingURL=callable.js.map
@@ -1,4 +1,3 @@
1
1
  export { admitCallableBinding, admitCallableKey, type CallableBinding } from './callable.js';
2
2
  export { acceptInvocationEndpoints, type InvocationEndpoints } from './invocation.js';
3
- export { admitViewBinding, type ViewBinding } from './view.js';
4
- //# sourceMappingURL=index.d.ts.map
3
+ export { admitViewBinding, type IframeRequirements, type ViewBinding } from './view.js';
@@ -1,4 +1,3 @@
1
1
  export { admitCallableBinding, admitCallableKey } from './callable.js';
2
2
  export { acceptInvocationEndpoints } from './invocation.js';
3
3
  export { admitViewBinding } from './view.js';
4
- //# sourceMappingURL=index.js.map
@@ -3,4 +3,3 @@ export interface InvocationEndpoints {
3
3
  readonly websocket?: string;
4
4
  }
5
5
  export declare function acceptInvocationEndpoints(input: unknown): InvocationEndpoints;
6
- //# sourceMappingURL=invocation.d.ts.map
@@ -11,4 +11,3 @@ export function acceptInvocationEndpoints(input) {
11
11
  ...(websocket === undefined ? {} : { websocket }),
12
12
  });
13
13
  }
14
- //# sourceMappingURL=invocation.js.map
@@ -1,8 +1,16 @@
1
+ import { type ViewHostRequirements } from '@astrale-os/kernel-core/schema/kernel/syscalls/view-resolution';
1
2
  import { Key } from '@astrale-os/kernel-dsl/v1/addressing';
2
3
  export interface ViewBinding {
3
4
  readonly view: Key.View;
4
5
  readonly href: string;
5
6
  readonly handshake: 'shell' | 'none';
7
+ readonly iframe?: IframeRequirements;
8
+ readonly host?: ViewHostRequirements;
9
+ }
10
+ export interface IframeRequirements {
11
+ readonly sandbox?: readonly string[];
12
+ readonly allow?: readonly string[];
6
13
  }
7
14
  export declare function admitViewBinding(input: unknown, origin: string): ViewBinding;
8
- //# sourceMappingURL=view.d.ts.map
15
+ /** Authoring-only normalization used before a Publication receives its canonical ETag. */
16
+ export declare function canonicalizeViewBinding(input: unknown, origin: string): ViewBinding;
@@ -1,9 +1,18 @@
1
+ import { acceptViewHostRequirements, } from '@astrale-os/kernel-core/schema/kernel/syscalls/view-resolution';
1
2
  import { Key } from '@astrale-os/kernel-dsl/v1/addressing';
2
3
  import { absoluteHttpUrl, exact, record } from '../content.js';
3
4
  import { fail } from '../error.js';
5
+ const TOKEN = /^[a-z][a-z0-9-]*$/u;
4
6
  export function admitViewBinding(input, origin) {
7
+ return readViewBinding(input, origin, false);
8
+ }
9
+ /** Authoring-only normalization used before a Publication receives its canonical ETag. */
10
+ export function canonicalizeViewBinding(input, origin) {
11
+ return readViewBinding(input, origin, true);
12
+ }
13
+ function readViewBinding(input, origin, canonicalize) {
5
14
  const value = record(input, 'PUBLICATION_VIEW_INVALID', 'Published View binding is invalid.');
6
- exact(value, ['view', 'href', 'handshake'], 'PUBLICATION_VIEW_INVALID');
15
+ exact(value, ['view', 'href', 'handshake', 'iframe', 'host'], 'PUBLICATION_VIEW_INVALID');
7
16
  let view;
8
17
  try {
9
18
  view = Key(String(value.view));
@@ -14,16 +23,126 @@ export function admitViewBinding(input, origin) {
14
23
  }
15
24
  throw cause;
16
25
  }
17
- if (Key.origin(view) !== origin || !Key.ref(view).startsWith('view.')) {
26
+ if (Key.origin(view) !== origin || !view.slice(view.indexOf(':') + 1).startsWith('view.')) {
18
27
  fail('PUBLICATION_VIEW_INVALID', 'View binding must name a root View.');
19
28
  }
20
29
  if (value.handshake !== 'shell' && value.handshake !== 'none') {
21
30
  fail('PUBLICATION_VIEW_INVALID', 'View handshake is invalid.');
22
31
  }
32
+ const iframe = admitIframeRequirements(dataValue(value, 'iframe'), value.handshake, canonicalize);
33
+ let host;
34
+ try {
35
+ host = acceptViewHostRequirements(dataValue(value, 'host'), value.handshake, canonicalize);
36
+ }
37
+ catch (cause) {
38
+ if (cause instanceof TypeError)
39
+ return fail('PUBLICATION_VIEW_INVALID', 'View host requirements are invalid.', cause);
40
+ throw cause;
41
+ }
23
42
  return Object.freeze({
24
43
  view,
25
44
  href: absoluteHttpUrl(value.href, true, 'PUBLICATION_VIEW_INVALID'),
26
45
  handshake: value.handshake,
46
+ ...(iframe === undefined ? {} : { iframe }),
47
+ ...(host === undefined ? {} : { host }),
48
+ });
49
+ }
50
+ function admitIframeRequirements(input, handshake, canonicalize) {
51
+ if (input === undefined)
52
+ return undefined;
53
+ const value = plainRecord(input);
54
+ exactOwnKeys(value, ['sandbox', 'allow']);
55
+ if (!canonicalize && (!Object.hasOwn(value, 'sandbox') || !Object.hasOwn(value, 'allow'))) {
56
+ invalid();
57
+ }
58
+ const sandbox = tokens(dataValue(value, 'sandbox'), canonicalize);
59
+ const allow = tokens(dataValue(value, 'allow'), canonicalize);
60
+ assertRelationships(sandbox);
61
+ const baselineSandbox = handshake === 'shell' ? ['allow-same-origin', 'allow-scripts'] : ['allow-scripts'];
62
+ const baselineAllow = handshake === 'shell' ? ['clipboard-write'] : [];
63
+ if (!canonicalize &&
64
+ (sandbox.some((token) => baselineSandbox.includes(token)) ||
65
+ allow.some((feature) => baselineAllow.includes(feature)))) {
66
+ invalid();
67
+ }
68
+ const canonicalSandbox = canonicalize
69
+ ? sandbox.filter((token) => !baselineSandbox.includes(token))
70
+ : sandbox;
71
+ const canonicalAllow = canonicalize
72
+ ? allow.filter((feature) => !baselineAllow.includes(feature))
73
+ : allow;
74
+ if (!canonicalize && canonicalSandbox.length === 0 && canonicalAllow.length === 0)
75
+ invalid();
76
+ if (canonicalSandbox.length === 0 && canonicalAllow.length === 0)
77
+ return undefined;
78
+ return Object.freeze({
79
+ sandbox: Object.freeze(canonicalSandbox),
80
+ allow: Object.freeze(canonicalAllow),
27
81
  });
28
82
  }
29
- //# sourceMappingURL=view.js.map
83
+ function plainRecord(input) {
84
+ if (input === null || typeof input !== 'object' || Array.isArray(input))
85
+ invalid();
86
+ const prototype = Object.getPrototypeOf(input);
87
+ if (prototype !== Object.prototype && prototype !== null)
88
+ invalid();
89
+ return input;
90
+ }
91
+ function exactOwnKeys(input, allowed) {
92
+ const keys = new Set(allowed);
93
+ if (Reflect.ownKeys(input).some((key) => typeof key !== 'string' || !keys.has(key)))
94
+ invalid();
95
+ }
96
+ function dataValue(input, key) {
97
+ const descriptor = Object.getOwnPropertyDescriptor(input, key);
98
+ if (descriptor === undefined)
99
+ return undefined;
100
+ if (!('value' in descriptor))
101
+ invalid();
102
+ return descriptor.value;
103
+ }
104
+ function tokens(input, canonicalize) {
105
+ if (input === undefined)
106
+ return [];
107
+ if (!Array.isArray(input))
108
+ invalid();
109
+ const descriptors = Object.getOwnPropertyDescriptors(input);
110
+ const values = [];
111
+ for (let index = 0; index < input.length; index += 1) {
112
+ const descriptor = descriptors[String(index)];
113
+ if (descriptor === undefined || !('value' in descriptor))
114
+ invalid();
115
+ if (typeof descriptor.value !== 'string' || !TOKEN.test(descriptor.value))
116
+ invalid();
117
+ values.push(descriptor.value);
118
+ }
119
+ for (const key of Reflect.ownKeys(descriptors)) {
120
+ if (key === 'length')
121
+ continue;
122
+ if (typeof key !== 'string' || !/^(0|[1-9][0-9]*)$/u.test(key) || Number(key) >= input.length) {
123
+ invalid();
124
+ }
125
+ }
126
+ if (canonicalize)
127
+ return [...new Set(values)].sort();
128
+ for (let index = 1; index < values.length; index += 1) {
129
+ if (values[index - 1] >= values[index])
130
+ invalid();
131
+ }
132
+ return values;
133
+ }
134
+ function assertRelationships(sandbox) {
135
+ const tokens = new Set(sandbox);
136
+ if (tokens.has('allow-popups-to-escape-sandbox') && !tokens.has('allow-popups'))
137
+ invalid();
138
+ if (tokens.has('allow-top-navigation') && tokens.has('allow-top-navigation-by-user-activation')) {
139
+ invalid();
140
+ }
141
+ if (tokens.has('allow-top-navigation-to-custom-protocols') &&
142
+ (tokens.has('allow-top-navigation') || tokens.has('allow-popups'))) {
143
+ invalid();
144
+ }
145
+ }
146
+ function invalid() {
147
+ return fail('PUBLICATION_VIEW_INVALID', 'View iframe requirements are invalid.');
148
+ }
@@ -2,4 +2,3 @@ import * as dslBundle from '@astrale-os/kernel-dsl/v1/bundle';
2
2
  import type { Publication } from './publication.js';
3
3
  export declare function acceptBundle(input: Publication, artifact: unknown): dslBundle.Bundle;
4
4
  export declare function decodeBundle(input: Publication, bytes: Uint8Array): dslBundle.Bundle;
5
- //# sourceMappingURL=bundle-admission.d.ts.map