@astrale-os/kernel-protocol 0.5.0-beta.3 → 0.5.0-beta.31

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 (428) hide show
  1. package/CHANGELOG.md +683 -0
  2. package/dist/artifact/index.d.ts +0 -1
  3. package/dist/artifact/index.js +0 -1
  4. package/dist/artifact/ref.d.ts +0 -1
  5. package/dist/artifact/ref.js +0 -1
  6. package/dist/codecs/codec.d.ts +0 -1
  7. package/dist/codecs/codec.js +0 -1
  8. package/dist/codecs/index.d.ts +0 -1
  9. package/dist/codecs/index.js +0 -1
  10. package/dist/codecs/json.d.ts +0 -1
  11. package/dist/codecs/json.js +0 -1
  12. package/dist/codecs/media-types.d.ts +0 -1
  13. package/dist/codecs/media-types.js +0 -1
  14. package/dist/codecs/msgpack.d.ts +0 -1
  15. package/dist/codecs/msgpack.js +1 -5
  16. package/dist/errors/codes.d.ts +0 -1
  17. package/dist/errors/codes.js +0 -1
  18. package/dist/errors/http-status.d.ts +0 -1
  19. package/dist/errors/http-status.js +0 -1
  20. package/dist/errors/index.d.ts +0 -1
  21. package/dist/errors/index.js +0 -1
  22. package/dist/errors/payload.d.ts +0 -1
  23. package/dist/errors/payload.js +3 -3
  24. package/dist/errors/protocol-error.d.ts +0 -1
  25. package/dist/errors/protocol-error.js +4 -3
  26. package/dist/errors/reason.d.ts +0 -1
  27. package/dist/errors/reason.js +0 -1
  28. package/dist/index.d.ts +0 -1
  29. package/dist/index.js +0 -1
  30. package/dist/invocation/admission.d.ts +2 -3
  31. package/dist/invocation/admission.js +5 -8
  32. package/dist/invocation/binary.d.ts +1 -1
  33. package/dist/invocation/binary.js +14 -2
  34. package/dist/invocation/binding-codecs.d.ts +0 -1
  35. package/dist/invocation/binding-codecs.js +0 -1
  36. package/dist/invocation/cancellation.d.ts +0 -1
  37. package/dist/invocation/cancellation.js +0 -1
  38. package/dist/invocation/correlation.d.ts +0 -1
  39. package/dist/invocation/correlation.js +0 -1
  40. package/dist/invocation/delegate.d.ts +0 -1
  41. package/dist/invocation/delegate.js +0 -1
  42. package/dist/invocation/http/binary.d.ts +3 -2
  43. package/dist/invocation/http/binary.js +4 -2
  44. package/dist/invocation/http/index.d.ts +1 -2
  45. package/dist/invocation/http/index.js +1 -2
  46. package/dist/invocation/http/negotiation.d.ts +0 -1
  47. package/dist/invocation/http/negotiation.js +0 -1
  48. package/dist/invocation/http/stream.d.ts +0 -1
  49. package/dist/invocation/http/stream.js +0 -1
  50. package/dist/invocation/http/trace.d.ts +0 -1
  51. package/dist/invocation/http/trace.js +0 -1
  52. package/dist/invocation/idempotency.d.ts +0 -1
  53. package/dist/invocation/idempotency.js +0 -1
  54. package/dist/invocation/identity.d.ts +0 -1
  55. package/dist/invocation/identity.js +0 -1
  56. package/dist/invocation/index.d.ts +1 -2
  57. package/dist/invocation/index.js +1 -2
  58. package/dist/invocation/miss.d.ts +0 -1
  59. package/dist/invocation/miss.js +0 -1
  60. package/dist/invocation/redirect.d.ts +9 -8
  61. package/dist/invocation/redirect.js +6 -5
  62. package/dist/invocation/request.d.ts +0 -1
  63. package/dist/invocation/request.js +0 -1
  64. package/dist/invocation/response.d.ts +0 -1
  65. package/dist/invocation/response.js +0 -1
  66. package/dist/invocation/routing.d.ts +3 -3
  67. package/dist/invocation/routing.js +4 -4
  68. package/dist/invocation/schema.d.ts +2 -3
  69. package/dist/invocation/schema.js +2 -3
  70. package/dist/invocation/service-reason.d.ts +13 -13
  71. package/dist/invocation/service-reason.js +14 -14
  72. package/dist/invocation/stale-route.d.ts +0 -1
  73. package/dist/invocation/stale-route.js +0 -1
  74. package/dist/invocation/stream.d.ts +0 -1
  75. package/dist/invocation/stream.js +0 -1
  76. package/dist/invocation/target.d.ts +2 -3
  77. package/dist/invocation/target.js +0 -1
  78. package/dist/invocation/trace.d.ts +0 -1
  79. package/dist/invocation/trace.js +0 -1
  80. package/dist/invocation/version.d.ts +0 -1
  81. package/dist/invocation/version.js +0 -1
  82. package/dist/invocation/websocket/binary.d.ts +0 -1
  83. package/dist/invocation/websocket/binary.js +2 -2
  84. package/dist/invocation/websocket/index.d.ts +0 -1
  85. package/dist/invocation/websocket/index.js +0 -1
  86. package/dist/invocation/websocket/subprotocol.d.ts +0 -1
  87. package/dist/invocation/websocket/subprotocol.js +0 -1
  88. package/dist/issuer/configuration.d.ts +1 -2
  89. package/dist/issuer/configuration.js +0 -1
  90. package/dist/issuer/error.d.ts +0 -1
  91. package/dist/issuer/error.js +0 -1
  92. package/dist/issuer/exchange.d.ts +0 -1
  93. package/dist/issuer/exchange.js +0 -1
  94. package/dist/issuer/hosted.d.ts +1 -2
  95. package/dist/issuer/hosted.js +0 -1
  96. package/dist/issuer/index.d.ts +0 -1
  97. package/dist/issuer/index.js +0 -1
  98. package/dist/issuer/key-set.d.ts +1 -2
  99. package/dist/issuer/key-set.js +3 -3
  100. package/dist/issuer/paths.d.ts +0 -1
  101. package/dist/issuer/paths.js +0 -1
  102. package/dist/issuer/url.d.ts +1 -2
  103. package/dist/issuer/url.js +3 -3
  104. package/dist/publication/bindings/callable.d.ts +1 -2
  105. package/dist/publication/bindings/callable.js +8 -6
  106. package/dist/publication/bindings/index.d.ts +1 -2
  107. package/dist/publication/bindings/index.js +0 -1
  108. package/dist/publication/bindings/invocation.d.ts +0 -1
  109. package/dist/publication/bindings/invocation.js +0 -1
  110. package/dist/publication/bindings/view.d.ts +8 -2
  111. package/dist/publication/bindings/view.js +112 -4
  112. package/dist/publication/bundle-admission.d.ts +4 -0
  113. package/dist/publication/bundle-admission.js +65 -0
  114. package/dist/publication/bundle-descriptor.d.ts +9 -0
  115. package/dist/publication/bundle-descriptor.js +19 -0
  116. package/dist/publication/bundle-evidence.d.ts +3 -0
  117. package/dist/publication/bundle-evidence.js +13 -0
  118. package/dist/publication/bundle.d.ts +5 -12
  119. package/dist/publication/bundle.js +8 -29
  120. package/dist/publication/content.d.ts +0 -1
  121. package/dist/publication/content.js +0 -1
  122. package/dist/publication/declaration.d.ts +11 -0
  123. package/dist/publication/declaration.js +1 -0
  124. package/dist/publication/delivery/attestation.d.ts +0 -1
  125. package/dist/publication/delivery/attestation.js +0 -1
  126. package/dist/publication/delivery/claims.d.ts +8 -8
  127. package/dist/publication/delivery/claims.js +6 -7
  128. package/dist/publication/delivery/delivery.d.ts +1 -2
  129. package/dist/publication/delivery/delivery.js +1 -2
  130. package/dist/publication/delivery/error.d.ts +0 -1
  131. package/dist/publication/delivery/error.js +0 -1
  132. package/dist/publication/delivery/index.d.ts +0 -1
  133. package/dist/publication/delivery/index.js +0 -1
  134. package/dist/publication/delivery/limits.d.ts +0 -1
  135. package/dist/publication/delivery/limits.js +0 -1
  136. package/dist/publication/delivery/request.d.ts +3 -4
  137. package/dist/publication/delivery/request.js +4 -4
  138. package/dist/publication/delivery-declaration.d.ts +4 -0
  139. package/dist/publication/delivery-declaration.js +25 -0
  140. package/dist/publication/delivery-endpoint.d.ts +0 -1
  141. package/dist/publication/delivery-endpoint.js +0 -1
  142. package/dist/publication/error.d.ts +0 -1
  143. package/dist/publication/error.js +0 -1
  144. package/dist/publication/etag.d.ts +0 -1
  145. package/dist/publication/etag.js +0 -1
  146. package/dist/publication/index.d.ts +8 -5
  147. package/dist/publication/index.js +4 -2
  148. package/dist/publication/manifest.d.ts +2 -3
  149. package/dist/publication/manifest.js +10 -6
  150. package/dist/publication/publication.d.ts +13 -6
  151. package/dist/publication/publication.js +50 -71
  152. package/dist/publication/reference.d.ts +3 -3
  153. package/dist/publication/reference.js +7 -7
  154. package/dist/publication/requirements.d.ts +15 -7
  155. package/dist/publication/requirements.js +137 -47
  156. package/dist/publication/route.d.ts +6 -2
  157. package/dist/publication/route.js +31 -9
  158. package/dist/publication/schema.d.ts +3 -4
  159. package/dist/publication/schema.js +3 -4
  160. package/dist/routes/admission.d.ts +3 -0
  161. package/dist/routes/admission.js +89 -0
  162. package/dist/routes/binding.d.ts +6 -0
  163. package/dist/routes/binding.js +27 -0
  164. package/dist/routes/collision.d.ts +2 -0
  165. package/dist/routes/collision.js +16 -0
  166. package/dist/routes/compiler.d.ts +8 -0
  167. package/dist/routes/compiler.js +50 -0
  168. package/dist/routes/credential.d.ts +7 -8
  169. package/dist/routes/credential.js +7 -8
  170. package/dist/routes/decode.d.ts +4 -3
  171. package/dist/routes/decode.js +42 -42
  172. package/dist/routes/encode.d.ts +3 -3
  173. package/dist/routes/encode.js +31 -33
  174. package/dist/routes/error-response.d.ts +0 -1
  175. package/dist/routes/error-response.js +0 -1
  176. package/dist/routes/error.d.ts +0 -1
  177. package/dist/routes/error.js +0 -1
  178. package/dist/routes/evidence.d.ts +5 -0
  179. package/dist/routes/evidence.js +38 -0
  180. package/dist/routes/index.d.ts +9 -3
  181. package/dist/routes/index.js +6 -3
  182. package/dist/routes/mapping.d.ts +1 -2
  183. package/dist/routes/mapping.js +4 -13
  184. package/dist/routes/match.d.ts +3 -4
  185. package/dist/routes/match.js +3 -5
  186. package/dist/routes/placement.d.ts +5 -0
  187. package/dist/routes/placement.js +18 -0
  188. package/dist/routes/plan.d.ts +24 -0
  189. package/dist/routes/plan.js +1 -0
  190. package/dist/routes/release-unavailable.d.ts +8 -0
  191. package/dist/routes/release-unavailable.js +32 -0
  192. package/dist/routes/request.d.ts +0 -1
  193. package/dist/routes/request.js +3 -2
  194. package/dist/routes/reservation.d.ts +3 -4
  195. package/dist/routes/reservation.js +8 -5
  196. package/dist/routes/routing.d.ts +0 -1
  197. package/dist/routes/routing.js +0 -1
  198. package/dist/routes/scalar.d.ts +4 -4
  199. package/dist/routes/scalar.js +14 -11
  200. package/dist/routes/select.d.ts +2 -3
  201. package/dist/routes/select.js +2 -3
  202. package/dist/routes/stream.d.ts +0 -1
  203. package/dist/routes/stream.js +0 -1
  204. package/dist/routes/table.d.ts +9 -0
  205. package/dist/routes/table.js +1 -0
  206. package/dist/routes/target.d.ts +13 -0
  207. package/dist/routes/target.js +3 -0
  208. package/dist/routes/template.d.ts +0 -1
  209. package/dist/routes/template.js +0 -1
  210. package/dist/runtime/artifact.d.ts +3 -4
  211. package/dist/runtime/artifact.js +5 -6
  212. package/dist/runtime/index.d.ts +0 -1
  213. package/dist/runtime/index.js +0 -1
  214. package/dist/schema/index.d.ts +0 -1
  215. package/dist/schema/index.js +0 -1
  216. package/dist/schema/installation/codec.d.ts +4 -0
  217. package/dist/schema/installation/codec.js +70 -0
  218. package/dist/schema/installation/index.d.ts +2 -1
  219. package/dist/schema/installation/index.js +1 -1
  220. package/dist/schema/installation/introspection/codec.d.ts +3 -3
  221. package/dist/schema/installation/introspection/codec.js +144 -204
  222. package/dist/schema/installation/introspection/index.d.ts +2 -3
  223. package/dist/schema/installation/introspection/index.js +1 -2
  224. package/dist/schema/installation/introspection/result.d.ts +18 -23
  225. package/dist/schema/installation/introspection/result.js +0 -1
  226. package/dist/schema/installation/result.d.ts +9 -0
  227. package/dist/schema/installation/result.js +1 -0
  228. package/package.json +116 -13
  229. package/dist/artifact/index.d.ts.map +0 -1
  230. package/dist/artifact/index.js.map +0 -1
  231. package/dist/artifact/ref.d.ts.map +0 -1
  232. package/dist/artifact/ref.js.map +0 -1
  233. package/dist/codecs/codec.d.ts.map +0 -1
  234. package/dist/codecs/codec.js.map +0 -1
  235. package/dist/codecs/index.d.ts.map +0 -1
  236. package/dist/codecs/index.js.map +0 -1
  237. package/dist/codecs/json.d.ts.map +0 -1
  238. package/dist/codecs/json.js.map +0 -1
  239. package/dist/codecs/media-types.d.ts.map +0 -1
  240. package/dist/codecs/media-types.js.map +0 -1
  241. package/dist/codecs/msgpack.d.ts.map +0 -1
  242. package/dist/codecs/msgpack.js.map +0 -1
  243. package/dist/errors/codes.d.ts.map +0 -1
  244. package/dist/errors/codes.js.map +0 -1
  245. package/dist/errors/http-status.d.ts.map +0 -1
  246. package/dist/errors/http-status.js.map +0 -1
  247. package/dist/errors/index.d.ts.map +0 -1
  248. package/dist/errors/index.js.map +0 -1
  249. package/dist/errors/payload.d.ts.map +0 -1
  250. package/dist/errors/payload.js.map +0 -1
  251. package/dist/errors/protocol-error.d.ts.map +0 -1
  252. package/dist/errors/protocol-error.js.map +0 -1
  253. package/dist/errors/reason.d.ts.map +0 -1
  254. package/dist/errors/reason.js.map +0 -1
  255. package/dist/index.d.ts.map +0 -1
  256. package/dist/index.js.map +0 -1
  257. package/dist/invocation/admission.d.ts.map +0 -1
  258. package/dist/invocation/admission.js.map +0 -1
  259. package/dist/invocation/binary.d.ts.map +0 -1
  260. package/dist/invocation/binary.js.map +0 -1
  261. package/dist/invocation/binding-codecs.d.ts.map +0 -1
  262. package/dist/invocation/binding-codecs.js.map +0 -1
  263. package/dist/invocation/cancellation.d.ts.map +0 -1
  264. package/dist/invocation/cancellation.js.map +0 -1
  265. package/dist/invocation/correlation.d.ts.map +0 -1
  266. package/dist/invocation/correlation.js.map +0 -1
  267. package/dist/invocation/delegate.d.ts.map +0 -1
  268. package/dist/invocation/delegate.js.map +0 -1
  269. package/dist/invocation/http/binary.d.ts.map +0 -1
  270. package/dist/invocation/http/binary.js.map +0 -1
  271. package/dist/invocation/http/index.d.ts.map +0 -1
  272. package/dist/invocation/http/index.js.map +0 -1
  273. package/dist/invocation/http/negotiation.d.ts.map +0 -1
  274. package/dist/invocation/http/negotiation.js.map +0 -1
  275. package/dist/invocation/http/stream.d.ts.map +0 -1
  276. package/dist/invocation/http/stream.js.map +0 -1
  277. package/dist/invocation/http/trace.d.ts.map +0 -1
  278. package/dist/invocation/http/trace.js.map +0 -1
  279. package/dist/invocation/idempotency.d.ts.map +0 -1
  280. package/dist/invocation/idempotency.js.map +0 -1
  281. package/dist/invocation/identity.d.ts.map +0 -1
  282. package/dist/invocation/identity.js.map +0 -1
  283. package/dist/invocation/index.d.ts.map +0 -1
  284. package/dist/invocation/index.js.map +0 -1
  285. package/dist/invocation/miss.d.ts.map +0 -1
  286. package/dist/invocation/miss.js.map +0 -1
  287. package/dist/invocation/redirect.d.ts.map +0 -1
  288. package/dist/invocation/redirect.js.map +0 -1
  289. package/dist/invocation/request.d.ts.map +0 -1
  290. package/dist/invocation/request.js.map +0 -1
  291. package/dist/invocation/response.d.ts.map +0 -1
  292. package/dist/invocation/response.js.map +0 -1
  293. package/dist/invocation/routing.d.ts.map +0 -1
  294. package/dist/invocation/routing.js.map +0 -1
  295. package/dist/invocation/schema.d.ts.map +0 -1
  296. package/dist/invocation/schema.js.map +0 -1
  297. package/dist/invocation/service-reason.d.ts.map +0 -1
  298. package/dist/invocation/service-reason.js.map +0 -1
  299. package/dist/invocation/stale-route.d.ts.map +0 -1
  300. package/dist/invocation/stale-route.js.map +0 -1
  301. package/dist/invocation/stream.d.ts.map +0 -1
  302. package/dist/invocation/stream.js.map +0 -1
  303. package/dist/invocation/target.d.ts.map +0 -1
  304. package/dist/invocation/target.js.map +0 -1
  305. package/dist/invocation/trace.d.ts.map +0 -1
  306. package/dist/invocation/trace.js.map +0 -1
  307. package/dist/invocation/version.d.ts.map +0 -1
  308. package/dist/invocation/version.js.map +0 -1
  309. package/dist/invocation/websocket/binary.d.ts.map +0 -1
  310. package/dist/invocation/websocket/binary.js.map +0 -1
  311. package/dist/invocation/websocket/index.d.ts.map +0 -1
  312. package/dist/invocation/websocket/index.js.map +0 -1
  313. package/dist/invocation/websocket/subprotocol.d.ts.map +0 -1
  314. package/dist/invocation/websocket/subprotocol.js.map +0 -1
  315. package/dist/issuer/configuration.d.ts.map +0 -1
  316. package/dist/issuer/configuration.js.map +0 -1
  317. package/dist/issuer/error.d.ts.map +0 -1
  318. package/dist/issuer/error.js.map +0 -1
  319. package/dist/issuer/exchange.d.ts.map +0 -1
  320. package/dist/issuer/exchange.js.map +0 -1
  321. package/dist/issuer/hosted.d.ts.map +0 -1
  322. package/dist/issuer/hosted.js.map +0 -1
  323. package/dist/issuer/index.d.ts.map +0 -1
  324. package/dist/issuer/index.js.map +0 -1
  325. package/dist/issuer/key-set.d.ts.map +0 -1
  326. package/dist/issuer/key-set.js.map +0 -1
  327. package/dist/issuer/paths.d.ts.map +0 -1
  328. package/dist/issuer/paths.js.map +0 -1
  329. package/dist/issuer/url.d.ts.map +0 -1
  330. package/dist/issuer/url.js.map +0 -1
  331. package/dist/publication/bindings/callable.d.ts.map +0 -1
  332. package/dist/publication/bindings/callable.js.map +0 -1
  333. package/dist/publication/bindings/index.d.ts.map +0 -1
  334. package/dist/publication/bindings/index.js.map +0 -1
  335. package/dist/publication/bindings/invocation.d.ts.map +0 -1
  336. package/dist/publication/bindings/invocation.js.map +0 -1
  337. package/dist/publication/bindings/view.d.ts.map +0 -1
  338. package/dist/publication/bindings/view.js.map +0 -1
  339. package/dist/publication/bundle.d.ts.map +0 -1
  340. package/dist/publication/bundle.js.map +0 -1
  341. package/dist/publication/content.d.ts.map +0 -1
  342. package/dist/publication/content.js.map +0 -1
  343. package/dist/publication/delivery/attestation.d.ts.map +0 -1
  344. package/dist/publication/delivery/attestation.js.map +0 -1
  345. package/dist/publication/delivery/claims.d.ts.map +0 -1
  346. package/dist/publication/delivery/claims.js.map +0 -1
  347. package/dist/publication/delivery/delivery.d.ts.map +0 -1
  348. package/dist/publication/delivery/delivery.js.map +0 -1
  349. package/dist/publication/delivery/error.d.ts.map +0 -1
  350. package/dist/publication/delivery/error.js.map +0 -1
  351. package/dist/publication/delivery/index.d.ts.map +0 -1
  352. package/dist/publication/delivery/index.js.map +0 -1
  353. package/dist/publication/delivery/limits.d.ts.map +0 -1
  354. package/dist/publication/delivery/limits.js.map +0 -1
  355. package/dist/publication/delivery/request.d.ts.map +0 -1
  356. package/dist/publication/delivery/request.js.map +0 -1
  357. package/dist/publication/delivery-endpoint.d.ts.map +0 -1
  358. package/dist/publication/delivery-endpoint.js.map +0 -1
  359. package/dist/publication/error.d.ts.map +0 -1
  360. package/dist/publication/error.js.map +0 -1
  361. package/dist/publication/etag.d.ts.map +0 -1
  362. package/dist/publication/etag.js.map +0 -1
  363. package/dist/publication/index.d.ts.map +0 -1
  364. package/dist/publication/index.js.map +0 -1
  365. package/dist/publication/manifest.d.ts.map +0 -1
  366. package/dist/publication/manifest.js.map +0 -1
  367. package/dist/publication/publication.d.ts.map +0 -1
  368. package/dist/publication/publication.js.map +0 -1
  369. package/dist/publication/reference.d.ts.map +0 -1
  370. package/dist/publication/reference.js.map +0 -1
  371. package/dist/publication/requirements.d.ts.map +0 -1
  372. package/dist/publication/requirements.js.map +0 -1
  373. package/dist/publication/route.d.ts.map +0 -1
  374. package/dist/publication/route.js.map +0 -1
  375. package/dist/publication/schema.d.ts.map +0 -1
  376. package/dist/publication/schema.js.map +0 -1
  377. package/dist/routes/compile.d.ts +0 -5
  378. package/dist/routes/compile.d.ts.map +0 -1
  379. package/dist/routes/compile.js +0 -69
  380. package/dist/routes/compile.js.map +0 -1
  381. package/dist/routes/credential.d.ts.map +0 -1
  382. package/dist/routes/credential.js.map +0 -1
  383. package/dist/routes/decode.d.ts.map +0 -1
  384. package/dist/routes/decode.js.map +0 -1
  385. package/dist/routes/encode.d.ts.map +0 -1
  386. package/dist/routes/encode.js.map +0 -1
  387. package/dist/routes/error-response.d.ts.map +0 -1
  388. package/dist/routes/error-response.js.map +0 -1
  389. package/dist/routes/error.d.ts.map +0 -1
  390. package/dist/routes/error.js.map +0 -1
  391. package/dist/routes/index.d.ts.map +0 -1
  392. package/dist/routes/index.js.map +0 -1
  393. package/dist/routes/mapping.d.ts.map +0 -1
  394. package/dist/routes/mapping.js.map +0 -1
  395. package/dist/routes/match.d.ts.map +0 -1
  396. package/dist/routes/match.js.map +0 -1
  397. package/dist/routes/request.d.ts.map +0 -1
  398. package/dist/routes/request.js.map +0 -1
  399. package/dist/routes/reservation.d.ts.map +0 -1
  400. package/dist/routes/reservation.js.map +0 -1
  401. package/dist/routes/route.d.ts +0 -13
  402. package/dist/routes/route.d.ts.map +0 -1
  403. package/dist/routes/route.js +0 -6
  404. package/dist/routes/route.js.map +0 -1
  405. package/dist/routes/routing.d.ts.map +0 -1
  406. package/dist/routes/routing.js.map +0 -1
  407. package/dist/routes/scalar.d.ts.map +0 -1
  408. package/dist/routes/scalar.js.map +0 -1
  409. package/dist/routes/select.d.ts.map +0 -1
  410. package/dist/routes/select.js.map +0 -1
  411. package/dist/routes/stream.d.ts.map +0 -1
  412. package/dist/routes/stream.js.map +0 -1
  413. package/dist/routes/template.d.ts.map +0 -1
  414. package/dist/routes/template.js.map +0 -1
  415. package/dist/runtime/artifact.d.ts.map +0 -1
  416. package/dist/runtime/artifact.js.map +0 -1
  417. package/dist/runtime/index.d.ts.map +0 -1
  418. package/dist/runtime/index.js.map +0 -1
  419. package/dist/schema/index.d.ts.map +0 -1
  420. package/dist/schema/index.js.map +0 -1
  421. package/dist/schema/installation/index.d.ts.map +0 -1
  422. package/dist/schema/installation/index.js.map +0 -1
  423. package/dist/schema/installation/introspection/codec.d.ts.map +0 -1
  424. package/dist/schema/installation/introspection/codec.js.map +0 -1
  425. package/dist/schema/installation/introspection/index.d.ts.map +0 -1
  426. package/dist/schema/installation/introspection/index.js.map +0 -1
  427. package/dist/schema/installation/introspection/result.d.ts.map +0 -1
  428. package/dist/schema/installation/introspection/result.js.map +0 -1
@@ -1,9 +1,17 @@
1
- import { Key } from '@astrale-os/kernel-dsl/v1';
1
+ import { Key } from '@astrale-os/kernel-dsl/v1/addressing';
2
2
  import { absoluteHttpUrl, exact, record } from '../content.js';
3
3
  import { fail } from '../error.js';
4
+ const TOKEN = /^[a-z][a-z0-9-]*$/u;
4
5
  export function admitViewBinding(input, origin) {
6
+ return readViewBinding(input, origin, false);
7
+ }
8
+ /** Authoring-only normalization used before a Publication receives its canonical ETag. */
9
+ export function canonicalizeViewBinding(input, origin) {
10
+ return readViewBinding(input, origin, true);
11
+ }
12
+ function readViewBinding(input, origin, canonicalize) {
5
13
  const value = record(input, 'PUBLICATION_VIEW_INVALID', 'Published View binding is invalid.');
6
- exact(value, ['view', 'href', 'handshake'], 'PUBLICATION_VIEW_INVALID');
14
+ exact(value, ['view', 'href', 'handshake', 'iframe'], 'PUBLICATION_VIEW_INVALID');
7
15
  let view;
8
16
  try {
9
17
  view = Key(String(value.view));
@@ -14,16 +22,116 @@ export function admitViewBinding(input, origin) {
14
22
  }
15
23
  throw cause;
16
24
  }
17
- if (Key.origin(view) !== origin || !Key.ref(view).startsWith('view.')) {
25
+ if (Key.origin(view) !== origin || !view.slice(view.indexOf(':') + 1).startsWith('view.')) {
18
26
  fail('PUBLICATION_VIEW_INVALID', 'View binding must name a root View.');
19
27
  }
20
28
  if (value.handshake !== 'shell' && value.handshake !== 'none') {
21
29
  fail('PUBLICATION_VIEW_INVALID', 'View handshake is invalid.');
22
30
  }
31
+ const iframe = admitIframeRequirements(dataValue(value, 'iframe'), value.handshake, canonicalize);
23
32
  return Object.freeze({
24
33
  view,
25
34
  href: absoluteHttpUrl(value.href, true, 'PUBLICATION_VIEW_INVALID'),
26
35
  handshake: value.handshake,
36
+ ...(iframe === undefined ? {} : { iframe }),
37
+ });
38
+ }
39
+ function admitIframeRequirements(input, handshake, canonicalize) {
40
+ if (input === undefined)
41
+ return undefined;
42
+ const value = plainRecord(input);
43
+ exactOwnKeys(value, ['sandbox', 'allow']);
44
+ if (!canonicalize && (!Object.hasOwn(value, 'sandbox') || !Object.hasOwn(value, 'allow'))) {
45
+ invalid();
46
+ }
47
+ const sandbox = tokens(dataValue(value, 'sandbox'), canonicalize);
48
+ const allow = tokens(dataValue(value, 'allow'), canonicalize);
49
+ assertRelationships(sandbox);
50
+ const baselineSandbox = handshake === 'shell' ? ['allow-same-origin', 'allow-scripts'] : ['allow-scripts'];
51
+ const baselineAllow = handshake === 'shell' ? ['clipboard-write'] : [];
52
+ if (!canonicalize &&
53
+ (sandbox.some((token) => baselineSandbox.includes(token)) ||
54
+ allow.some((feature) => baselineAllow.includes(feature)))) {
55
+ invalid();
56
+ }
57
+ const canonicalSandbox = canonicalize
58
+ ? sandbox.filter((token) => !baselineSandbox.includes(token))
59
+ : sandbox;
60
+ const canonicalAllow = canonicalize
61
+ ? allow.filter((feature) => !baselineAllow.includes(feature))
62
+ : allow;
63
+ if (!canonicalize && canonicalSandbox.length === 0 && canonicalAllow.length === 0)
64
+ invalid();
65
+ if (canonicalSandbox.length === 0 && canonicalAllow.length === 0)
66
+ return undefined;
67
+ return Object.freeze({
68
+ sandbox: Object.freeze(canonicalSandbox),
69
+ allow: Object.freeze(canonicalAllow),
27
70
  });
28
71
  }
29
- //# sourceMappingURL=view.js.map
72
+ function plainRecord(input) {
73
+ if (input === null || typeof input !== 'object' || Array.isArray(input))
74
+ invalid();
75
+ const prototype = Object.getPrototypeOf(input);
76
+ if (prototype !== Object.prototype && prototype !== null)
77
+ invalid();
78
+ return input;
79
+ }
80
+ function exactOwnKeys(input, allowed) {
81
+ const keys = new Set(allowed);
82
+ if (Reflect.ownKeys(input).some((key) => typeof key !== 'string' || !keys.has(key)))
83
+ invalid();
84
+ }
85
+ function dataValue(input, key) {
86
+ const descriptor = Object.getOwnPropertyDescriptor(input, key);
87
+ if (descriptor === undefined)
88
+ return undefined;
89
+ if (!('value' in descriptor))
90
+ invalid();
91
+ return descriptor.value;
92
+ }
93
+ function tokens(input, canonicalize) {
94
+ if (input === undefined)
95
+ return [];
96
+ if (!Array.isArray(input))
97
+ invalid();
98
+ const descriptors = Object.getOwnPropertyDescriptors(input);
99
+ const values = [];
100
+ for (let index = 0; index < input.length; index += 1) {
101
+ const descriptor = descriptors[String(index)];
102
+ if (descriptor === undefined || !('value' in descriptor))
103
+ invalid();
104
+ if (typeof descriptor.value !== 'string' || !TOKEN.test(descriptor.value))
105
+ invalid();
106
+ values.push(descriptor.value);
107
+ }
108
+ for (const key of Reflect.ownKeys(descriptors)) {
109
+ if (key === 'length')
110
+ continue;
111
+ if (typeof key !== 'string' || !/^(0|[1-9][0-9]*)$/u.test(key) || Number(key) >= input.length) {
112
+ invalid();
113
+ }
114
+ }
115
+ if (canonicalize)
116
+ return [...new Set(values)].sort();
117
+ for (let index = 1; index < values.length; index += 1) {
118
+ if (values[index - 1] >= values[index])
119
+ invalid();
120
+ }
121
+ return values;
122
+ }
123
+ function assertRelationships(sandbox) {
124
+ const tokens = new Set(sandbox);
125
+ if (tokens.has('allow-popups-to-escape-sandbox') && !tokens.has('allow-popups'))
126
+ invalid();
127
+ if (tokens.has('allow-top-navigation') && tokens.has('allow-top-navigation-by-user-activation')) {
128
+ invalid();
129
+ }
130
+ if (tokens.has('allow-top-navigation-to-custom-protocols') &&
131
+ (tokens.has('allow-top-navigation') || tokens.has('allow-popups'))) {
132
+ invalid();
133
+ }
134
+ }
135
+ function invalid() {
136
+ return fail('PUBLICATION_VIEW_INVALID', 'View iframe requirements are invalid.');
137
+ }
@@ -0,0 +1,4 @@
1
+ import * as dslBundle from '@astrale-os/kernel-dsl/v1/bundle';
2
+ import type { Publication } from './publication.js';
3
+ export declare function acceptBundle(input: Publication, artifact: unknown): dslBundle.Bundle;
4
+ export declare function decodeBundle(input: Publication, bytes: Uint8Array): dslBundle.Bundle;
@@ -0,0 +1,65 @@
1
+ import { Key, MethodKey } from '@astrale-os/kernel-dsl/v1/addressing';
2
+ import * as dslBundle from '@astrale-os/kernel-dsl/v1/bundle';
3
+ import { revision } from '@astrale-os/kernel-dsl/v1/schema/revision';
4
+ import { acceptBundleValue, decodeBundleValue, verifyBundleBytes } from './bundle.js';
5
+ import { fail } from './error.js';
6
+ import { validateRequirements } from './requirements.js';
7
+ export function acceptBundle(input, artifact) {
8
+ const accepted = acceptBundleValue(artifact);
9
+ verifyBundleBytes(input, dslBundle.encode(accepted));
10
+ validateInventory(input, accepted);
11
+ return accepted;
12
+ }
13
+ export function decodeBundle(input, bytes) {
14
+ const decoded = decodeBundleValue(input, bytes);
15
+ validateInventory(input, decoded);
16
+ return decoded;
17
+ }
18
+ function validateInventory(publication, bundle) {
19
+ const root = bundle.root;
20
+ if (root.origin !== publication.origin || revision(root) !== publication.schema.revision) {
21
+ fail('PUBLICATION_INVALID', 'Bundle root does not match the Publication schema.');
22
+ }
23
+ validateRequirements(root, bundle.closure, publication.requirements);
24
+ const callables = concreteCallables(root);
25
+ const publishedCallables = new Set(publication.bindings.callables.map(({ callable }) => callable));
26
+ if (publishedCallables.size !== callables.size ||
27
+ [...callables].some((key) => !publishedCallables.has(key))) {
28
+ fail('PUBLICATION_BINDING_INVALID', 'Callable bindings must exhaust the root Domain.');
29
+ }
30
+ const views = new Set(Object.keys(root.views).map((name) => Key.of({ origin: root.origin, kind: 'view', name })));
31
+ const publishedViews = new Set(publication.bindings.views.map(({ view }) => view));
32
+ if (publishedViews.size !== views.size || [...views].some((key) => !publishedViews.has(key))) {
33
+ fail('PUBLICATION_VIEW_INVALID', 'View bindings must exhaust the root Domain.');
34
+ }
35
+ if (publication.manifest?.entrypoint !== undefined &&
36
+ (publication.manifest.entrypoint.origin !== root.origin ||
37
+ publication.manifest.entrypoint.kind !== 'view' ||
38
+ root.views[publication.manifest.entrypoint.name] === undefined)) {
39
+ fail('PUBLICATION_INVALID', 'Manifest entrypoint does not exist in the root schema.');
40
+ }
41
+ for (const route of publication.routes) {
42
+ if (!callables.has(route.callable)) {
43
+ fail('PUBLICATION_ROUTE_INVALID', `Route ${route.name} names an unknown callable.`);
44
+ }
45
+ }
46
+ }
47
+ function concreteCallables(root) {
48
+ const result = new Set();
49
+ for (const name of Object.keys(root.functions)) {
50
+ result.add(Key.of({ origin: root.origin, kind: 'function', name }));
51
+ }
52
+ addClassMethods(result, root.origin, root.classes);
53
+ return result;
54
+ }
55
+ function addClassMethods(result, origin, definitions) {
56
+ for (const [owner, declaration] of Object.entries(definitions)) {
57
+ if (declaration.kind !== 'node')
58
+ continue;
59
+ for (const [name, method] of Object.entries(declaration.methods)) {
60
+ if (method.inheritance === 'abstract')
61
+ continue;
62
+ result.add(MethodKey.of({ origin, kind: 'class', name: owner }, name));
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,9 @@
1
+ import * as artifact from '../artifact/index.js';
2
+ export declare const BUNDLE_MEDIA_TYPE: 'application/vnd.astrale.domain-bundle+json;v=1';
3
+ export interface BundleDescriptor {
4
+ readonly href: string;
5
+ readonly ref: artifact.Ref & {
6
+ readonly mediaType: typeof BUNDLE_MEDIA_TYPE;
7
+ };
8
+ }
9
+ export declare function admitBundleDescriptor(input: unknown): BundleDescriptor;
@@ -0,0 +1,19 @@
1
+ import * as artifact from '../artifact/index.js';
2
+ import { absoluteHttpUrl, exact, record } from './content.js';
3
+ import { fail } from './error.js';
4
+ export const BUNDLE_MEDIA_TYPE = 'application/vnd.astrale.domain-bundle+json;v=1';
5
+ export function admitBundleDescriptor(input) {
6
+ const value = record(input, 'PUBLICATION_INVALID', 'Bundle descriptor is invalid.');
7
+ exact(value, ['href', 'ref'], 'PUBLICATION_INVALID');
8
+ const ref = artifact.accept(value.ref);
9
+ if (ref.mediaType !== BUNDLE_MEDIA_TYPE) {
10
+ fail('PUBLICATION_INVALID', 'Bundle media type is unsupported.');
11
+ }
12
+ if (ref.size < 1) {
13
+ fail('PUBLICATION_INVALID', 'Bundle size is invalid.');
14
+ }
15
+ return Object.freeze({
16
+ href: absoluteHttpUrl(value.href, true, 'PUBLICATION_INVALID'),
17
+ ref: Object.freeze({ ...ref, mediaType: BUNDLE_MEDIA_TYPE }),
18
+ });
19
+ }
@@ -0,0 +1,3 @@
1
+ import type { Publication } from './publication.js';
2
+ /** Verify exact artifact bytes without decoding an authored Schema Bundle. */
3
+ export declare function verifyBundleBytes(publication: Publication, bytes: Uint8Array): void;
@@ -0,0 +1,13 @@
1
+ import { fail } from './error.js';
2
+ import { sha256Hex } from './etag.js';
3
+ /** Verify exact artifact bytes without decoding an authored Schema Bundle. */
4
+ export function verifyBundleBytes(publication, bytes) {
5
+ if (!(bytes instanceof Uint8Array)) {
6
+ fail('PUBLICATION_INVALID', 'Bundle artifact bytes are invalid.');
7
+ }
8
+ const descriptor = publication.schema.bundle;
9
+ if (bytes.byteLength !== descriptor.ref.size ||
10
+ `sha256:${sha256Hex(bytes)}` !== descriptor.ref.digest) {
11
+ fail('PUBLICATION_INVALID', 'Bundle artifact does not match its descriptor.');
12
+ }
13
+ }
@@ -1,16 +1,9 @@
1
- import { bundle } from '@astrale-os/kernel-dsl/v1';
1
+ import * as bundle from '@astrale-os/kernel-dsl/v1/bundle/transport';
2
+ import type { BundleDescriptor } from './bundle-descriptor.js';
2
3
  import type { Publication } from './publication.js';
3
- import * as artifact from '../artifact/index.js';
4
- export declare const BUNDLE_MEDIA_TYPE: 'application/vnd.astrale.domain-bundle+json;v=1';
5
- export interface BundleDescriptor {
6
- readonly href: string;
7
- readonly ref: artifact.Ref & {
8
- readonly mediaType: typeof BUNDLE_MEDIA_TYPE;
9
- };
10
- }
11
- export declare function admitBundleDescriptor(input: unknown): BundleDescriptor;
4
+ import { verifyBundleBytes } from './bundle-evidence.js';
12
5
  export declare function describeBundle(input: bundle.Bundle, href: string): BundleDescriptor;
13
6
  export declare function acceptBundleValue(input: unknown): bundle.Bundle;
14
- export declare function verifyBundleBytes(publication: Publication, bytes: Uint8Array): void;
15
7
  export declare function decodeBundleValue(publication: Publication, bytes: Uint8Array): bundle.Bundle;
16
- //# sourceMappingURL=bundle.d.ts.map
8
+ export { verifyBundleBytes };
9
+ export { admitBundleDescriptor, BUNDLE_MEDIA_TYPE, type BundleDescriptor, } from './bundle-descriptor.js';
@@ -1,24 +1,9 @@
1
- import { bundle, schema } from '@astrale-os/kernel-dsl/v1';
1
+ import * as bundle from '@astrale-os/kernel-dsl/v1/bundle/transport';
2
2
  import * as artifact from '../artifact/index.js';
3
- import { absoluteHttpUrl, exact, record } from './content.js';
3
+ import { BUNDLE_MEDIA_TYPE } from './bundle-descriptor.js';
4
+ import { verifyBundleBytes } from './bundle-evidence.js';
5
+ import { absoluteHttpUrl } from './content.js';
4
6
  import { fail } from './error.js';
5
- import { sha256Hex } from './etag.js';
6
- export const BUNDLE_MEDIA_TYPE = 'application/vnd.astrale.domain-bundle+json;v=1';
7
- export function admitBundleDescriptor(input) {
8
- const value = record(input, 'PUBLICATION_INVALID', 'Bundle descriptor is invalid.');
9
- exact(value, ['href', 'ref'], 'PUBLICATION_INVALID');
10
- const ref = artifact.accept(value.ref);
11
- if (ref.mediaType !== BUNDLE_MEDIA_TYPE) {
12
- fail('PUBLICATION_INVALID', 'Bundle media type is unsupported.');
13
- }
14
- if (ref.size < 1) {
15
- fail('PUBLICATION_INVALID', 'Bundle size is invalid.');
16
- }
17
- return Object.freeze({
18
- href: absoluteHttpUrl(value.href, true, 'PUBLICATION_INVALID'),
19
- ref: Object.freeze({ ...ref, mediaType: BUNDLE_MEDIA_TYPE }),
20
- });
21
- }
22
7
  export function describeBundle(input, href) {
23
8
  const bytes = bundle.encode(input);
24
9
  return Object.freeze({
@@ -34,19 +19,12 @@ export function acceptBundleValue(input) {
34
19
  return bundle.accept(input);
35
20
  }
36
21
  catch (cause) {
37
- if (cause instanceof schema.Error) {
22
+ if (cause instanceof bundle.Error) {
38
23
  return fail('PUBLICATION_INVALID', 'Publication bundle is invalid.', cause);
39
24
  }
40
25
  throw cause;
41
26
  }
42
27
  }
43
- export function verifyBundleBytes(publication, bytes) {
44
- const descriptor = publication.schema.bundle;
45
- if (bytes.byteLength !== descriptor.ref.size ||
46
- `sha256:${sha256Hex(bytes)}` !== descriptor.ref.digest) {
47
- fail('PUBLICATION_INVALID', 'Bundle artifact does not match its descriptor.');
48
- }
49
- }
50
28
  export function decodeBundleValue(publication, bytes) {
51
29
  if (!(bytes instanceof Uint8Array)) {
52
30
  fail('PUBLICATION_INVALID', 'Bundle artifact bytes are invalid.');
@@ -56,10 +34,11 @@ export function decodeBundleValue(publication, bytes) {
56
34
  return bundle.decode(bytes);
57
35
  }
58
36
  catch (cause) {
59
- if (cause instanceof schema.Error) {
37
+ if (cause instanceof bundle.Error) {
60
38
  return fail('PUBLICATION_INVALID', 'Bundle artifact cannot be decoded.', cause);
61
39
  }
62
40
  throw cause;
63
41
  }
64
42
  }
65
- //# sourceMappingURL=bundle.js.map
43
+ export { verifyBundleBytes };
44
+ export { admitBundleDescriptor, BUNDLE_MEDIA_TYPE, } from './bundle-descriptor.js';
@@ -8,4 +8,3 @@ export declare function unique(values: readonly string[], code: PublicationError
8
8
  export declare function deepFreeze<T>(value: T): T;
9
9
  export declare function absoluteHttpUrl(input: unknown, allowSearch: boolean, code: PublicationErrorCode, allowTemplate?: boolean): string;
10
10
  export declare function absoluteUrl(input: unknown, protocols: readonly string[], allowSearch: boolean, code: PublicationErrorCode, allowTemplate?: boolean): string;
11
- //# sourceMappingURL=content.d.ts.map
@@ -53,4 +53,3 @@ export function absoluteUrl(input, protocols, allowSearch, code, allowTemplate =
53
53
  }
54
54
  return input;
55
55
  }
56
- //# sourceMappingURL=content.js.map
@@ -0,0 +1,11 @@
1
+ import type { Authentication as DeliveryAuthentication } from './delivery-endpoint.js';
2
+ import type { HttpRouteDeclaration } from './route.js';
3
+ export interface DeliveryDeclaration {
4
+ readonly path: string;
5
+ readonly authentication: DeliveryAuthentication;
6
+ }
7
+ /** Provider-neutral deployment input selected independently from Domain and Adapter. */
8
+ export interface Declaration {
9
+ readonly routes: readonly HttpRouteDeclaration[];
10
+ readonly delivery?: DeliveryDeclaration;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -4,4 +4,3 @@ export type Attestation = string & {
4
4
  };
5
5
  export declare function acceptAttestation(input: unknown): Attestation;
6
6
  export {};
7
- //# sourceMappingURL=attestation.d.ts.map
@@ -8,4 +8,3 @@ export function acceptAttestation(input) {
8
8
  }
9
9
  return input;
10
10
  }
11
- //# sourceMappingURL=attestation.js.map
@@ -1,16 +1,16 @@
1
- import * as auth from '@astrale-os/kernel-core/auth';
2
- import { type schema } from '@astrale-os/kernel-dsl/v1';
3
- import type { Etag } from '../index.js';
1
+ import type { Subject } from '@astrale-os/kernel-core/auth/identity';
2
+ import type { Revision } from '@astrale-os/kernel-dsl/v1/addressing';
3
+ import { type IssuerId } from '@astrale-os/kernel-core/auth/issuer';
4
+ import type { Etag } from '../etag.js';
4
5
  import { PURPOSE } from './limits.js';
5
6
  export interface Claims {
6
7
  readonly purpose: typeof PURPOSE;
7
- readonly iss: auth.IssuerId;
8
- readonly sub: auth.IdentitySubject;
9
- readonly aud: auth.IssuerId;
8
+ readonly iss: IssuerId;
9
+ readonly sub: Subject;
10
+ readonly aud: IssuerId;
10
11
  readonly nonce: string;
11
12
  readonly etag: Etag;
12
- readonly schemaRevision: schema.Revision;
13
+ readonly schemaRevision: Revision;
13
14
  readonly exp: number;
14
15
  }
15
16
  export declare function acceptClaims(input: unknown): Claims;
16
- //# sourceMappingURL=claims.d.ts.map
@@ -1,5 +1,6 @@
1
- import * as auth from '@astrale-os/kernel-core/auth';
2
- import { schema as dslSchema } from '@astrale-os/kernel-dsl/v1';
1
+ import { AuthValueError } from '@astrale-os/kernel-core/auth/error';
2
+ import { accept as acceptIssuerId } from '@astrale-os/kernel-core/auth/issuer';
3
+ import { patterns } from '@astrale-os/kernel-dsl/v1/addressing';
3
4
  import { fail } from './error.js';
4
5
  import { NONCE_MAX_LENGTH, NONCE_MIN_LENGTH, PURPOSE } from './limits.js';
5
6
  export function acceptClaims(input) {
@@ -26,8 +27,7 @@ export function acceptClaims(input) {
26
27
  if (typeof value.etag !== 'string' || !/^sha256:[0-9a-f]{64}$/u.test(value.etag)) {
27
28
  fail('DELIVERY_CLAIMS_INVALID', 'Delivery claims ETag is invalid.');
28
29
  }
29
- if (typeof value.schemaRevision !== 'string' ||
30
- !dslSchema.patterns.revision.test(value.schemaRevision)) {
30
+ if (typeof value.schemaRevision !== 'string' || !patterns.revision.test(value.schemaRevision)) {
31
31
  fail('DELIVERY_CLAIMS_INVALID', 'Schema revision is invalid.');
32
32
  }
33
33
  return deepFreeze({
@@ -43,10 +43,10 @@ export function acceptClaims(input) {
43
43
  }
44
44
  function acceptIssuer(input) {
45
45
  try {
46
- return auth.issuer.accept(String(input));
46
+ return acceptIssuerId(String(input));
47
47
  }
48
48
  catch (cause) {
49
- if (cause instanceof auth.AuthValueError) {
49
+ if (cause instanceof AuthValueError) {
50
50
  return fail('DELIVERY_CLAIMS_INVALID', 'Delivery claims issuer is invalid.', cause);
51
51
  }
52
52
  throw cause;
@@ -59,4 +59,3 @@ function deepFreeze(value) {
59
59
  deepFreeze(nested);
60
60
  return Object.freeze(value);
61
61
  }
62
- //# sourceMappingURL=claims.js.map
@@ -1,4 +1,4 @@
1
- import type { Publication } from '../index.js';
1
+ import type { Publication } from '../publication.js';
2
2
  import type { Attestation } from './attestation.js';
3
3
  export interface Delivery {
4
4
  readonly format: 'astrale.domain.delivery';
@@ -7,4 +7,3 @@ export interface Delivery {
7
7
  readonly attestation: Attestation;
8
8
  }
9
9
  export declare function accept(input: unknown): Delivery;
10
- //# sourceMappingURL=delivery.d.ts.map
@@ -1,4 +1,4 @@
1
- import { accept as acceptPublication } from '../index.js';
1
+ import { accept as acceptPublication } from '../publication.js';
2
2
  import { acceptAttestation } from './attestation.js';
3
3
  import { fail } from './error.js';
4
4
  export function accept(input) {
@@ -27,4 +27,3 @@ function deepFreeze(value) {
27
27
  deepFreeze(nested);
28
28
  return Object.freeze(value);
29
29
  }
30
- //# sourceMappingURL=delivery.js.map
@@ -5,4 +5,3 @@ export declare class DeliveryError extends Error {
5
5
  constructor(code: DeliveryErrorCode, message: string, options?: ErrorOptions);
6
6
  }
7
7
  export declare function fail(code: DeliveryErrorCode, message: string, cause?: unknown): never;
8
- //# sourceMappingURL=error.d.ts.map
@@ -9,4 +9,3 @@ export class DeliveryError extends Error {
9
9
  export function fail(code, message, cause) {
10
10
  throw new DeliveryError(code, message, cause === undefined ? undefined : { cause });
11
11
  }
12
- //# sourceMappingURL=error.js.map
@@ -4,4 +4,3 @@ export { DeliveryError as Error, type DeliveryErrorCode as ErrorCode } from './e
4
4
  export { accept, type Delivery } from './delivery.js';
5
5
  export { ATTESTATION_MAX_BYTES, NONCE_MAX_LENGTH, NONCE_MIN_LENGTH, PURPOSE } from './limits.js';
6
6
  export { acceptRequest, type Token, type Request } from './request.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -4,4 +4,3 @@ export { DeliveryError as Error } from './error.js';
4
4
  export { accept } from './delivery.js';
5
5
  export { ATTESTATION_MAX_BYTES, NONCE_MAX_LENGTH, NONCE_MIN_LENGTH, PURPOSE } from './limits.js';
6
6
  export { acceptRequest } from './request.js';
7
- //# sourceMappingURL=index.js.map
@@ -2,4 +2,3 @@ export declare const PURPOSE: 'astrale.domain.delivery.v1';
2
2
  export declare const NONCE_MIN_LENGTH = 16;
3
3
  export declare const NONCE_MAX_LENGTH = 256;
4
4
  export declare const ATTESTATION_MAX_BYTES = 16384;
5
- //# sourceMappingURL=limits.d.ts.map
@@ -2,4 +2,3 @@ export const PURPOSE = 'astrale.domain.delivery.v1';
2
2
  export const NONCE_MIN_LENGTH = 16;
3
3
  export const NONCE_MAX_LENGTH = 256;
4
4
  export const ATTESTATION_MAX_BYTES = 16_384;
5
- //# sourceMappingURL=limits.js.map
@@ -1,8 +1,8 @@
1
- import * as auth from '@astrale-os/kernel-core/auth';
2
- import type { Etag } from '../index.js';
1
+ import { type IssuerId } from '@astrale-os/kernel-core/auth/issuer';
2
+ import type { Etag } from '../etag.js';
3
3
  export interface Request {
4
4
  readonly version: 1;
5
- readonly kernel: auth.IssuerId;
5
+ readonly kernel: IssuerId;
6
6
  readonly nonce: string;
7
7
  readonly etag: Etag;
8
8
  }
@@ -13,4 +13,3 @@ export interface Token {
13
13
  }
14
14
  /** Admit the exact request representation accepted by a Delivery transport boundary. */
15
15
  export declare function acceptRequest(input: unknown): Request;
16
- //# sourceMappingURL=request.d.ts.map
@@ -1,4 +1,5 @@
1
- import * as auth from '@astrale-os/kernel-core/auth';
1
+ import { AuthValueError } from '@astrale-os/kernel-core/auth/error';
2
+ import { accept as acceptIssuer } from '@astrale-os/kernel-core/auth/issuer';
2
3
  import { fail } from './error.js';
3
4
  import { NONCE_MAX_LENGTH, NONCE_MIN_LENGTH } from './limits.js';
4
5
  /** Admit the exact request representation accepted by a Delivery transport boundary. */
@@ -34,10 +35,10 @@ export function acceptRequest(input) {
34
35
  }
35
36
  let kernel;
36
37
  try {
37
- kernel = auth.issuer.accept(value.kernel);
38
+ kernel = acceptIssuer(value.kernel);
38
39
  }
39
40
  catch (cause) {
40
- if (cause instanceof auth.AuthValueError) {
41
+ if (cause instanceof AuthValueError) {
41
42
  return fail('DELIVERY_REQUEST_INVALID', 'Delivery request issuer is invalid.', cause);
42
43
  }
43
44
  throw cause;
@@ -49,4 +50,3 @@ export function acceptRequest(input) {
49
50
  etag: value.etag,
50
51
  });
51
52
  }
52
- //# sourceMappingURL=request.js.map
@@ -0,0 +1,4 @@
1
+ import type { DeliveryDeclaration } from './declaration.js';
2
+ import type { Endpoint } from './delivery-endpoint.js';
3
+ /** Place one provider-neutral Delivery declaration beneath an exact serving issuer. */
4
+ export declare function placeDelivery(input: DeliveryDeclaration, issuer: string, bundleHref: string): Endpoint;
@@ -0,0 +1,25 @@
1
+ import { admitEndpoint } from './delivery-endpoint.js';
2
+ import { fail } from './error.js';
3
+ /** Place one provider-neutral Delivery declaration beneath an exact serving issuer. */
4
+ export function placeDelivery(input, issuer, bundleHref) {
5
+ if (input === null || typeof input !== 'object' || Array.isArray(input)) {
6
+ fail('PUBLICATION_INVALID', 'Delivery declaration is invalid.');
7
+ }
8
+ if (Reflect.ownKeys(input).some((key) => key !== 'path' && key !== 'authentication') ||
9
+ typeof input.path !== 'string' ||
10
+ !input.path.startsWith('/')) {
11
+ fail('PUBLICATION_INVALID', 'Delivery declaration is invalid.');
12
+ }
13
+ let href;
14
+ try {
15
+ const url = new URL(input.path, issuer);
16
+ if (url.origin !== new URL(issuer).origin || url.search !== '' || url.hash !== '') {
17
+ fail('PUBLICATION_INVALID', 'Delivery declaration must be one relative path.');
18
+ }
19
+ href = url.href;
20
+ }
21
+ catch (cause) {
22
+ return fail('PUBLICATION_INVALID', 'Delivery declaration path is invalid.', cause);
23
+ }
24
+ return admitEndpoint({ href, method: 'POST', authentication: input.authentication }, bundleHref);
25
+ }
@@ -9,4 +9,3 @@ export interface Endpoint {
9
9
  readonly authentication: Authentication;
10
10
  }
11
11
  export declare function admitEndpoint(input: unknown, publicUrl: string): Endpoint | undefined;
12
- //# sourceMappingURL=delivery-endpoint.d.ts.map
@@ -20,4 +20,3 @@ export function admitEndpoint(input, publicUrl) {
20
20
  authentication: Object.freeze({ kind: authentication.kind }),
21
21
  });
22
22
  }
23
- //# sourceMappingURL=delivery-endpoint.js.map
@@ -5,4 +5,3 @@ export declare class PublicationError extends Error {
5
5
  constructor(code: PublicationErrorCode, message: string, options?: ErrorOptions);
6
6
  }
7
7
  export declare function fail(code: PublicationErrorCode, message: string, cause?: unknown): never;
8
- //# sourceMappingURL=error.d.ts.map
@@ -9,4 +9,3 @@ export class PublicationError extends Error {
9
9
  export function fail(code, message, cause) {
10
10
  throw new PublicationError(code, message, cause === undefined ? undefined : { cause });
11
11
  }
12
- //# sourceMappingURL=error.js.map
@@ -4,4 +4,3 @@ export type Etag = Sha256Digest;
4
4
  export declare function admitDigest(input: unknown): Sha256Digest;
5
5
  export declare function computeEtag(input: Content): Etag;
6
6
  export declare function sha256Hex(input: Uint8Array): string;
7
- //# sourceMappingURL=etag.d.ts.map
@@ -77,4 +77,3 @@ const ROUND = new Uint32Array([
77
77
  0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
78
78
  0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
79
79
  ]);
80
- //# sourceMappingURL=etag.js.map