@astrale-os/kernel-protocol 0.5.0-beta.2

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 (390) hide show
  1. package/LICENSE +202 -0
  2. package/dist/artifact/index.d.ts +2 -0
  3. package/dist/artifact/index.d.ts.map +1 -0
  4. package/dist/artifact/index.js +2 -0
  5. package/dist/artifact/index.js.map +1 -0
  6. package/dist/artifact/ref.d.ts +11 -0
  7. package/dist/artifact/ref.d.ts.map +1 -0
  8. package/dist/artifact/ref.js +71 -0
  9. package/dist/artifact/ref.js.map +1 -0
  10. package/dist/codecs/codec.d.ts +14 -0
  11. package/dist/codecs/codec.d.ts.map +1 -0
  12. package/dist/codecs/codec.js +7 -0
  13. package/dist/codecs/codec.js.map +1 -0
  14. package/dist/codecs/index.d.ts +5 -0
  15. package/dist/codecs/index.d.ts.map +1 -0
  16. package/dist/codecs/index.js +5 -0
  17. package/dist/codecs/index.js.map +1 -0
  18. package/dist/codecs/json.d.ts +3 -0
  19. package/dist/codecs/json.d.ts.map +1 -0
  20. package/dist/codecs/json.js +21 -0
  21. package/dist/codecs/json.js.map +1 -0
  22. package/dist/codecs/media-types.d.ts +3 -0
  23. package/dist/codecs/media-types.d.ts.map +1 -0
  24. package/dist/codecs/media-types.js +3 -0
  25. package/dist/codecs/media-types.js.map +1 -0
  26. package/dist/codecs/msgpack.d.ts +5 -0
  27. package/dist/codecs/msgpack.d.ts.map +1 -0
  28. package/dist/codecs/msgpack.js +51 -0
  29. package/dist/codecs/msgpack.js.map +1 -0
  30. package/dist/errors/codes.d.ts +24 -0
  31. package/dist/errors/codes.d.ts.map +1 -0
  32. package/dist/errors/codes.js +23 -0
  33. package/dist/errors/codes.js.map +1 -0
  34. package/dist/errors/http-status.d.ts +3 -0
  35. package/dist/errors/http-status.d.ts.map +1 -0
  36. package/dist/errors/http-status.js +26 -0
  37. package/dist/errors/http-status.js.map +1 -0
  38. package/dist/errors/index.d.ts +6 -0
  39. package/dist/errors/index.d.ts.map +1 -0
  40. package/dist/errors/index.js +6 -0
  41. package/dist/errors/index.js.map +1 -0
  42. package/dist/errors/payload.d.ts +9 -0
  43. package/dist/errors/payload.d.ts.map +1 -0
  44. package/dist/errors/payload.js +37 -0
  45. package/dist/errors/payload.js.map +1 -0
  46. package/dist/errors/protocol-error.d.ts +7 -0
  47. package/dist/errors/protocol-error.d.ts.map +1 -0
  48. package/dist/errors/protocol-error.js +10 -0
  49. package/dist/errors/protocol-error.js.map +1 -0
  50. package/dist/errors/reason.d.ts +8 -0
  51. package/dist/errors/reason.d.ts.map +1 -0
  52. package/dist/errors/reason.js +44 -0
  53. package/dist/errors/reason.js.map +1 -0
  54. package/dist/index.d.ts +9 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +9 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/invocation/admission.d.ts +22 -0
  59. package/dist/invocation/admission.d.ts.map +1 -0
  60. package/dist/invocation/admission.js +169 -0
  61. package/dist/invocation/admission.js.map +1 -0
  62. package/dist/invocation/binary.d.ts +10 -0
  63. package/dist/invocation/binary.d.ts.map +1 -0
  64. package/dist/invocation/binary.js +24 -0
  65. package/dist/invocation/binary.js.map +1 -0
  66. package/dist/invocation/binding-codecs.d.ts +9 -0
  67. package/dist/invocation/binding-codecs.d.ts.map +1 -0
  68. package/dist/invocation/binding-codecs.js +28 -0
  69. package/dist/invocation/binding-codecs.js.map +1 -0
  70. package/dist/invocation/cancellation.d.ts +9 -0
  71. package/dist/invocation/cancellation.d.ts.map +1 -0
  72. package/dist/invocation/cancellation.js +17 -0
  73. package/dist/invocation/cancellation.js.map +1 -0
  74. package/dist/invocation/correlation.d.ts +3 -0
  75. package/dist/invocation/correlation.d.ts.map +1 -0
  76. package/dist/invocation/correlation.js +8 -0
  77. package/dist/invocation/correlation.js.map +1 -0
  78. package/dist/invocation/delegate.d.ts +25 -0
  79. package/dist/invocation/delegate.d.ts.map +1 -0
  80. package/dist/invocation/delegate.js +44 -0
  81. package/dist/invocation/delegate.js.map +1 -0
  82. package/dist/invocation/http/binary.d.ts +6 -0
  83. package/dist/invocation/http/binary.d.ts.map +1 -0
  84. package/dist/invocation/http/binary.js +89 -0
  85. package/dist/invocation/http/binary.js.map +1 -0
  86. package/dist/invocation/http/index.d.ts +5 -0
  87. package/dist/invocation/http/index.d.ts.map +1 -0
  88. package/dist/invocation/http/index.js +5 -0
  89. package/dist/invocation/http/index.js.map +1 -0
  90. package/dist/invocation/http/negotiation.d.ts +4 -0
  91. package/dist/invocation/http/negotiation.d.ts.map +1 -0
  92. package/dist/invocation/http/negotiation.js +208 -0
  93. package/dist/invocation/http/negotiation.js.map +1 -0
  94. package/dist/invocation/http/stream.d.ts +6 -0
  95. package/dist/invocation/http/stream.d.ts.map +1 -0
  96. package/dist/invocation/http/stream.js +16 -0
  97. package/dist/invocation/http/stream.js.map +1 -0
  98. package/dist/invocation/http/trace.d.ts +7 -0
  99. package/dist/invocation/http/trace.d.ts.map +1 -0
  100. package/dist/invocation/http/trace.js +25 -0
  101. package/dist/invocation/http/trace.js.map +1 -0
  102. package/dist/invocation/idempotency.d.ts +11 -0
  103. package/dist/invocation/idempotency.d.ts.map +1 -0
  104. package/dist/invocation/idempotency.js +14 -0
  105. package/dist/invocation/idempotency.js.map +1 -0
  106. package/dist/invocation/index.d.ts +20 -0
  107. package/dist/invocation/index.d.ts.map +1 -0
  108. package/dist/invocation/index.js +20 -0
  109. package/dist/invocation/index.js.map +1 -0
  110. package/dist/invocation/miss.d.ts +8 -0
  111. package/dist/invocation/miss.d.ts.map +1 -0
  112. package/dist/invocation/miss.js +14 -0
  113. package/dist/invocation/miss.js.map +1 -0
  114. package/dist/invocation/redirect.d.ts +33 -0
  115. package/dist/invocation/redirect.d.ts.map +1 -0
  116. package/dist/invocation/redirect.js +68 -0
  117. package/dist/invocation/redirect.js.map +1 -0
  118. package/dist/invocation/request.d.ts +22 -0
  119. package/dist/invocation/request.d.ts.map +1 -0
  120. package/dist/invocation/request.js +55 -0
  121. package/dist/invocation/request.js.map +1 -0
  122. package/dist/invocation/response.d.ts +17 -0
  123. package/dist/invocation/response.d.ts.map +1 -0
  124. package/dist/invocation/response.js +34 -0
  125. package/dist/invocation/response.js.map +1 -0
  126. package/dist/invocation/routing.d.ts +14 -0
  127. package/dist/invocation/routing.d.ts.map +1 -0
  128. package/dist/invocation/routing.js +34 -0
  129. package/dist/invocation/routing.js.map +1 -0
  130. package/dist/invocation/schema.d.ts +10 -0
  131. package/dist/invocation/schema.d.ts.map +1 -0
  132. package/dist/invocation/schema.js +20 -0
  133. package/dist/invocation/schema.js.map +1 -0
  134. package/dist/invocation/service-reason.d.ts +41 -0
  135. package/dist/invocation/service-reason.d.ts.map +1 -0
  136. package/dist/invocation/service-reason.js +74 -0
  137. package/dist/invocation/service-reason.js.map +1 -0
  138. package/dist/invocation/stale-route.d.ts +11 -0
  139. package/dist/invocation/stale-route.d.ts.map +1 -0
  140. package/dist/invocation/stale-route.js +19 -0
  141. package/dist/invocation/stale-route.js.map +1 -0
  142. package/dist/invocation/stream.d.ts +26 -0
  143. package/dist/invocation/stream.d.ts.map +1 -0
  144. package/dist/invocation/stream.js +41 -0
  145. package/dist/invocation/stream.js.map +1 -0
  146. package/dist/invocation/target.d.ts +9 -0
  147. package/dist/invocation/target.d.ts.map +1 -0
  148. package/dist/invocation/target.js +12 -0
  149. package/dist/invocation/target.js.map +1 -0
  150. package/dist/invocation/trace.d.ts +10 -0
  151. package/dist/invocation/trace.d.ts.map +1 -0
  152. package/dist/invocation/trace.js +87 -0
  153. package/dist/invocation/trace.js.map +1 -0
  154. package/dist/invocation/version.d.ts +3 -0
  155. package/dist/invocation/version.d.ts.map +1 -0
  156. package/dist/invocation/version.js +2 -0
  157. package/dist/invocation/version.js.map +1 -0
  158. package/dist/invocation/websocket/binary.d.ts +4 -0
  159. package/dist/invocation/websocket/binary.d.ts.map +1 -0
  160. package/dist/invocation/websocket/binary.js +71 -0
  161. package/dist/invocation/websocket/binary.js.map +1 -0
  162. package/dist/invocation/websocket/index.d.ts +3 -0
  163. package/dist/invocation/websocket/index.d.ts.map +1 -0
  164. package/dist/invocation/websocket/index.js +3 -0
  165. package/dist/invocation/websocket/index.js.map +1 -0
  166. package/dist/invocation/websocket/subprotocol.d.ts +11 -0
  167. package/dist/invocation/websocket/subprotocol.d.ts.map +1 -0
  168. package/dist/invocation/websocket/subprotocol.js +30 -0
  169. package/dist/invocation/websocket/subprotocol.js.map +1 -0
  170. package/dist/issuer/configuration.d.ts +15 -0
  171. package/dist/issuer/configuration.d.ts.map +1 -0
  172. package/dist/issuer/configuration.js +87 -0
  173. package/dist/issuer/configuration.js.map +1 -0
  174. package/dist/issuer/error.d.ts +8 -0
  175. package/dist/issuer/error.d.ts.map +1 -0
  176. package/dist/issuer/error.js +12 -0
  177. package/dist/issuer/error.js.map +1 -0
  178. package/dist/issuer/exchange.d.ts +26 -0
  179. package/dist/issuer/exchange.d.ts.map +1 -0
  180. package/dist/issuer/exchange.js +130 -0
  181. package/dist/issuer/exchange.js.map +1 -0
  182. package/dist/issuer/hosted.d.ts +3 -0
  183. package/dist/issuer/hosted.d.ts.map +1 -0
  184. package/dist/issuer/hosted.js +8 -0
  185. package/dist/issuer/hosted.js.map +1 -0
  186. package/dist/issuer/index.d.ts +7 -0
  187. package/dist/issuer/index.d.ts.map +1 -0
  188. package/dist/issuer/index.js +7 -0
  189. package/dist/issuer/index.js.map +1 -0
  190. package/dist/issuer/key-set.d.ts +7 -0
  191. package/dist/issuer/key-set.d.ts.map +1 -0
  192. package/dist/issuer/key-set.js +48 -0
  193. package/dist/issuer/key-set.js.map +1 -0
  194. package/dist/issuer/paths.d.ts +7 -0
  195. package/dist/issuer/paths.d.ts.map +1 -0
  196. package/dist/issuer/paths.js +11 -0
  197. package/dist/issuer/paths.js.map +1 -0
  198. package/dist/issuer/url.d.ts +3 -0
  199. package/dist/issuer/url.d.ts.map +1 -0
  200. package/dist/issuer/url.js +34 -0
  201. package/dist/issuer/url.js.map +1 -0
  202. package/dist/publication/bindings/callable.d.ts +9 -0
  203. package/dist/publication/bindings/callable.d.ts.map +1 -0
  204. package/dist/publication/bindings/callable.js +32 -0
  205. package/dist/publication/bindings/callable.js.map +1 -0
  206. package/dist/publication/bindings/index.d.ts +4 -0
  207. package/dist/publication/bindings/index.d.ts.map +1 -0
  208. package/dist/publication/bindings/index.js +4 -0
  209. package/dist/publication/bindings/index.js.map +1 -0
  210. package/dist/publication/bindings/invocation.d.ts +6 -0
  211. package/dist/publication/bindings/invocation.d.ts.map +1 -0
  212. package/dist/publication/bindings/invocation.js +14 -0
  213. package/dist/publication/bindings/invocation.js.map +1 -0
  214. package/dist/publication/bindings/view.d.ts +8 -0
  215. package/dist/publication/bindings/view.d.ts.map +1 -0
  216. package/dist/publication/bindings/view.js +29 -0
  217. package/dist/publication/bindings/view.js.map +1 -0
  218. package/dist/publication/bundle.d.ts +16 -0
  219. package/dist/publication/bundle.d.ts.map +1 -0
  220. package/dist/publication/bundle.js +65 -0
  221. package/dist/publication/bundle.js.map +1 -0
  222. package/dist/publication/content.d.ts +11 -0
  223. package/dist/publication/content.d.ts.map +1 -0
  224. package/dist/publication/content.js +56 -0
  225. package/dist/publication/content.js.map +1 -0
  226. package/dist/publication/delivery/attestation.d.ts +7 -0
  227. package/dist/publication/delivery/attestation.d.ts.map +1 -0
  228. package/dist/publication/delivery/attestation.js +11 -0
  229. package/dist/publication/delivery/attestation.js.map +1 -0
  230. package/dist/publication/delivery/claims.d.ts +16 -0
  231. package/dist/publication/delivery/claims.d.ts.map +1 -0
  232. package/dist/publication/delivery/claims.js +62 -0
  233. package/dist/publication/delivery/claims.js.map +1 -0
  234. package/dist/publication/delivery/delivery.d.ts +10 -0
  235. package/dist/publication/delivery/delivery.d.ts.map +1 -0
  236. package/dist/publication/delivery/delivery.js +30 -0
  237. package/dist/publication/delivery/delivery.js.map +1 -0
  238. package/dist/publication/delivery/error.d.ts +8 -0
  239. package/dist/publication/delivery/error.d.ts.map +1 -0
  240. package/dist/publication/delivery/error.js +12 -0
  241. package/dist/publication/delivery/error.js.map +1 -0
  242. package/dist/publication/delivery/index.d.ts +7 -0
  243. package/dist/publication/delivery/index.d.ts.map +1 -0
  244. package/dist/publication/delivery/index.js +7 -0
  245. package/dist/publication/delivery/index.js.map +1 -0
  246. package/dist/publication/delivery/limits.d.ts +5 -0
  247. package/dist/publication/delivery/limits.d.ts.map +1 -0
  248. package/dist/publication/delivery/limits.js +5 -0
  249. package/dist/publication/delivery/limits.js.map +1 -0
  250. package/dist/publication/delivery/request.d.ts +16 -0
  251. package/dist/publication/delivery/request.d.ts.map +1 -0
  252. package/dist/publication/delivery/request.js +52 -0
  253. package/dist/publication/delivery/request.js.map +1 -0
  254. package/dist/publication/delivery-endpoint.d.ts +12 -0
  255. package/dist/publication/delivery-endpoint.d.ts.map +1 -0
  256. package/dist/publication/delivery-endpoint.js +23 -0
  257. package/dist/publication/delivery-endpoint.js.map +1 -0
  258. package/dist/publication/error.d.ts +8 -0
  259. package/dist/publication/error.d.ts.map +1 -0
  260. package/dist/publication/error.js +12 -0
  261. package/dist/publication/error.js.map +1 -0
  262. package/dist/publication/etag.d.ts +7 -0
  263. package/dist/publication/etag.d.ts.map +1 -0
  264. package/dist/publication/etag.js +80 -0
  265. package/dist/publication/etag.js.map +1 -0
  266. package/dist/publication/index.d.ts +14 -0
  267. package/dist/publication/index.d.ts.map +1 -0
  268. package/dist/publication/index.js +8 -0
  269. package/dist/publication/index.js.map +1 -0
  270. package/dist/publication/manifest.d.ts +7 -0
  271. package/dist/publication/manifest.d.ts.map +1 -0
  272. package/dist/publication/manifest.js +26 -0
  273. package/dist/publication/manifest.js.map +1 -0
  274. package/dist/publication/publication.d.ts +39 -0
  275. package/dist/publication/publication.d.ts.map +1 -0
  276. package/dist/publication/publication.js +190 -0
  277. package/dist/publication/publication.js.map +1 -0
  278. package/dist/publication/reference.d.ts +17 -0
  279. package/dist/publication/reference.d.ts.map +1 -0
  280. package/dist/publication/reference.js +68 -0
  281. package/dist/publication/reference.js.map +1 -0
  282. package/dist/publication/requirements.d.ts +26 -0
  283. package/dist/publication/requirements.d.ts.map +1 -0
  284. package/dist/publication/requirements.js +180 -0
  285. package/dist/publication/requirements.js.map +1 -0
  286. package/dist/publication/route.d.ts +33 -0
  287. package/dist/publication/route.d.ts.map +1 -0
  288. package/dist/publication/route.js +132 -0
  289. package/dist/publication/route.js.map +1 -0
  290. package/dist/publication/schema.d.ts +8 -0
  291. package/dist/publication/schema.d.ts.map +1 -0
  292. package/dist/publication/schema.js +16 -0
  293. package/dist/publication/schema.js.map +1 -0
  294. package/dist/routes/compile.d.ts +5 -0
  295. package/dist/routes/compile.d.ts.map +1 -0
  296. package/dist/routes/compile.js +69 -0
  297. package/dist/routes/compile.js.map +1 -0
  298. package/dist/routes/credential.d.ts +9 -0
  299. package/dist/routes/credential.d.ts.map +1 -0
  300. package/dist/routes/credential.js +119 -0
  301. package/dist/routes/credential.js.map +1 -0
  302. package/dist/routes/decode.d.ts +4 -0
  303. package/dist/routes/decode.d.ts.map +1 -0
  304. package/dist/routes/decode.js +147 -0
  305. package/dist/routes/decode.js.map +1 -0
  306. package/dist/routes/encode.d.ts +4 -0
  307. package/dist/routes/encode.d.ts.map +1 -0
  308. package/dist/routes/encode.js +147 -0
  309. package/dist/routes/encode.js.map +1 -0
  310. package/dist/routes/error-response.d.ts +6 -0
  311. package/dist/routes/error-response.d.ts.map +1 -0
  312. package/dist/routes/error-response.js +32 -0
  313. package/dist/routes/error-response.js.map +1 -0
  314. package/dist/routes/error.d.ts +9 -0
  315. package/dist/routes/error.d.ts.map +1 -0
  316. package/dist/routes/error.js +15 -0
  317. package/dist/routes/error.js.map +1 -0
  318. package/dist/routes/index.d.ts +13 -0
  319. package/dist/routes/index.d.ts.map +1 -0
  320. package/dist/routes/index.js +13 -0
  321. package/dist/routes/index.js.map +1 -0
  322. package/dist/routes/mapping.d.ts +6 -0
  323. package/dist/routes/mapping.d.ts.map +1 -0
  324. package/dist/routes/mapping.js +135 -0
  325. package/dist/routes/mapping.js.map +1 -0
  326. package/dist/routes/match.d.ts +5 -0
  327. package/dist/routes/match.d.ts.map +1 -0
  328. package/dist/routes/match.js +9 -0
  329. package/dist/routes/match.js.map +1 -0
  330. package/dist/routes/request.d.ts +27 -0
  331. package/dist/routes/request.d.ts.map +1 -0
  332. package/dist/routes/request.js +52 -0
  333. package/dist/routes/request.js.map +1 -0
  334. package/dist/routes/reservation.d.ts +4 -0
  335. package/dist/routes/reservation.d.ts.map +1 -0
  336. package/dist/routes/reservation.js +34 -0
  337. package/dist/routes/reservation.js.map +1 -0
  338. package/dist/routes/route.d.ts +13 -0
  339. package/dist/routes/route.d.ts.map +1 -0
  340. package/dist/routes/route.js +6 -0
  341. package/dist/routes/route.js.map +1 -0
  342. package/dist/routes/routing.d.ts +23 -0
  343. package/dist/routes/routing.d.ts.map +1 -0
  344. package/dist/routes/routing.js +88 -0
  345. package/dist/routes/routing.js.map +1 -0
  346. package/dist/routes/scalar.d.ts +7 -0
  347. package/dist/routes/scalar.d.ts.map +1 -0
  348. package/dist/routes/scalar.js +58 -0
  349. package/dist/routes/scalar.js.map +1 -0
  350. package/dist/routes/select.d.ts +4 -0
  351. package/dist/routes/select.d.ts.map +1 -0
  352. package/dist/routes/select.js +17 -0
  353. package/dist/routes/select.js.map +1 -0
  354. package/dist/routes/stream.d.ts +15 -0
  355. package/dist/routes/stream.d.ts.map +1 -0
  356. package/dist/routes/stream.js +51 -0
  357. package/dist/routes/stream.js.map +1 -0
  358. package/dist/routes/template.d.ts +9 -0
  359. package/dist/routes/template.d.ts.map +1 -0
  360. package/dist/routes/template.js +228 -0
  361. package/dist/routes/template.js.map +1 -0
  362. package/dist/runtime/artifact.d.ts +48 -0
  363. package/dist/runtime/artifact.d.ts.map +1 -0
  364. package/dist/runtime/artifact.js +177 -0
  365. package/dist/runtime/artifact.js.map +1 -0
  366. package/dist/runtime/index.d.ts +2 -0
  367. package/dist/runtime/index.d.ts.map +1 -0
  368. package/dist/runtime/index.js +2 -0
  369. package/dist/runtime/index.js.map +1 -0
  370. package/dist/schema/index.d.ts +2 -0
  371. package/dist/schema/index.d.ts.map +1 -0
  372. package/dist/schema/index.js +2 -0
  373. package/dist/schema/index.js.map +1 -0
  374. package/dist/schema/installation/index.d.ts +2 -0
  375. package/dist/schema/installation/index.d.ts.map +1 -0
  376. package/dist/schema/installation/index.js +2 -0
  377. package/dist/schema/installation/index.js.map +1 -0
  378. package/dist/schema/installation/introspection/codec.d.ts +6 -0
  379. package/dist/schema/installation/introspection/codec.d.ts.map +1 -0
  380. package/dist/schema/installation/introspection/codec.js +273 -0
  381. package/dist/schema/installation/introspection/codec.js.map +1 -0
  382. package/dist/schema/installation/introspection/index.d.ts +3 -0
  383. package/dist/schema/installation/introspection/index.d.ts.map +1 -0
  384. package/dist/schema/installation/introspection/index.js +2 -0
  385. package/dist/schema/installation/introspection/index.js.map +1 -0
  386. package/dist/schema/installation/introspection/result.d.ts +34 -0
  387. package/dist/schema/installation/introspection/result.d.ts.map +1 -0
  388. package/dist/schema/installation/introspection/result.js +2 -0
  389. package/dist/schema/installation/introspection/result.js.map +1 -0
  390. package/package.json +59 -0
@@ -0,0 +1,68 @@
1
+ import * as publication from '../publication/index.js';
2
+ import { exactFields, invalid, issuerId, portableObject, requestId, required, string, } from './admission.js';
3
+ import { admitTrace } from './trace.js';
4
+ const ROUTE_FIELDS = new Set(['endpoint', 'via']);
5
+ const VIA_FIELDS = new Set(['kind', 'publication', 'issuer']);
6
+ const REDIRECT_FIELDS = new Set(['kind', 'id', 'route', 'credential', 'trace']);
7
+ export function acceptRoute(input) {
8
+ const object = portableObject(input, 'route');
9
+ exactFields(object, ROUTE_FIELDS, 'route');
10
+ required(object, ['endpoint', 'via'], 'route');
11
+ try {
12
+ const via = portableObject(object.via, 'route.via');
13
+ exactFields(via, VIA_FIELDS, 'route.via');
14
+ required(via, ['kind', 'publication', 'issuer'], 'route.via');
15
+ if (via.kind !== 'via')
16
+ invalid('route.via.kind must be "via"');
17
+ return Object.freeze({
18
+ endpoint: publication.acceptInvocationEndpoints(object.endpoint),
19
+ via: Object.freeze({
20
+ kind: 'via',
21
+ publication: publication.acceptReference(via.publication),
22
+ issuer: issuerId(via.issuer, 'route.via.issuer'),
23
+ }),
24
+ });
25
+ }
26
+ catch (cause) {
27
+ if (cause instanceof publication.PublicationError) {
28
+ return invalid(`route is invalid: ${cause.message}`);
29
+ }
30
+ throw cause;
31
+ }
32
+ }
33
+ /** Project one semantic remote binding into its admitted protocol route representation. */
34
+ export function remoteRoute(origin, binding, issuer) {
35
+ return acceptRoute({
36
+ endpoint: binding.endpoint,
37
+ via: {
38
+ kind: 'via',
39
+ publication: {
40
+ origin,
41
+ identity: { issuer: binding.issuer, subject: binding.subject },
42
+ revision: binding.revision,
43
+ etag: binding.etag,
44
+ },
45
+ issuer,
46
+ },
47
+ });
48
+ }
49
+ export function decodeRedirect(input) {
50
+ const object = portableObject(input, 'redirect');
51
+ exactFields(object, REDIRECT_FIELDS, 'redirect');
52
+ required(object, ['kind', 'id', 'route'], 'redirect');
53
+ if (object.kind !== 'redirect')
54
+ invalid('redirect.kind must be "redirect"');
55
+ const route = acceptRoute(object.route);
56
+ const credential = object.credential === undefined ? undefined : string(object.credential, 'redirect.credential');
57
+ const trace = object.trace === undefined ? undefined : admitTrace(object.trace);
58
+ if (credential !== undefined && credential.length === 0)
59
+ invalid('redirect.credential must be non-empty');
60
+ return Object.freeze({
61
+ kind: 'redirect',
62
+ id: requestId(object.id, 'redirect.id'),
63
+ route,
64
+ ...(credential === undefined ? {} : { credential }),
65
+ ...(trace === undefined ? {} : { trace }),
66
+ });
67
+ }
68
+ //# sourceMappingURL=redirect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirect.js","sourceRoot":"","sources":["../../invocation/redirect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { RequestId } from './correlation.js';
2
+ import type { Delegate } from './delegate.js';
3
+ import type { IdempotencyKey } from './idempotency.js';
4
+ import type { Routing } from './routing.js';
5
+ import type { SchemaTarget } from './schema.js';
6
+ import type { Call } from './target.js';
7
+ import type { Trace } from './trace.js';
8
+ import type { Version } from './version.js';
9
+ export interface Request {
10
+ readonly version: Version;
11
+ readonly id: RequestId;
12
+ readonly call: Call;
13
+ readonly credential?: string;
14
+ readonly delegate?: Delegate;
15
+ readonly routing?: Routing;
16
+ /** Source-Kernel precondition; forbidden on an already-routed destination request. */
17
+ readonly schema?: SchemaTarget;
18
+ readonly idempotencyKey?: IdempotencyKey;
19
+ readonly trace?: Trace;
20
+ }
21
+ export declare function decodeRequest(input: unknown): Request;
22
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../invocation/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAU3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CACvB;AAcD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAkCrD"}
@@ -0,0 +1,55 @@
1
+ import { exactFields, invalid, portableObject, requestId, required, string } from './admission.js';
2
+ import { acceptDelegate } from './delegate.js';
3
+ import { acceptIdempotencyKey } from './idempotency.js';
4
+ import { acceptRouting } from './routing.js';
5
+ import { acceptSchemaTarget } from './schema.js';
6
+ import { acceptCall } from './target.js';
7
+ import { admitTrace } from './trace.js';
8
+ const REQUEST_FIELDS = new Set([
9
+ 'version',
10
+ 'id',
11
+ 'call',
12
+ 'credential',
13
+ 'delegate',
14
+ 'routing',
15
+ 'schema',
16
+ 'idempotencyKey',
17
+ 'trace',
18
+ ]);
19
+ export function decodeRequest(input) {
20
+ const object = portableObject(input, 'request');
21
+ exactFields(object, REQUEST_FIELDS, 'request');
22
+ required(object, ['version', 'id', 'call'], 'request');
23
+ if (object.version !== 2)
24
+ invalid('request.version must be 2');
25
+ const credential = object.credential === undefined ? undefined : string(object.credential, 'request.credential');
26
+ const delegate = object.delegate === undefined ? undefined : acceptDelegate(object.delegate);
27
+ const routing = object.routing === undefined ? undefined : acceptRouting(object.routing);
28
+ const schema = object.schema === undefined ? undefined : acceptSchemaTarget(object.schema);
29
+ const trace = object.trace === undefined ? undefined : admitTrace(object.trace);
30
+ if (routing?.kind === 'via') {
31
+ if (delegate !== undefined)
32
+ invalid('destination requests with via routing forbid delegate');
33
+ if (schema !== undefined)
34
+ invalid('destination requests with via routing forbid schema target');
35
+ }
36
+ else if ((credential === undefined) !== (delegate === undefined)) {
37
+ invalid('source requests require credential and delegate together');
38
+ }
39
+ return Object.freeze({
40
+ version: 2,
41
+ id: requestId(object.id, 'request.id'),
42
+ call: acceptCall(object.call),
43
+ ...(credential === undefined ? {} : { credential }),
44
+ ...(delegate === undefined ? {} : { delegate }),
45
+ ...(routing === undefined ? {} : { routing }),
46
+ ...(schema === undefined ? {} : { schema }),
47
+ ...(object.idempotencyKey === undefined
48
+ ? {}
49
+ : {
50
+ idempotencyKey: acceptIdempotencyKey(object.idempotencyKey, 'request.idempotencyKey'),
51
+ }),
52
+ ...(trace === undefined ? {} : { trace }),
53
+ });
54
+ }
55
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../invocation/request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Value } from '@astrale-os/kernel-dsl/value';
2
+ import type { ErrorPayload } from '../errors/index.js';
3
+ import type { RequestId } from './correlation.js';
4
+ import type { Miss } from './miss.js';
5
+ import type { Redirect } from './redirect.js';
6
+ import type { Stale } from './stale-route.js';
7
+ export interface SuccessResponse<Result extends Value = Value> {
8
+ readonly result: Result;
9
+ readonly id: RequestId;
10
+ }
11
+ export interface ErrorResponse {
12
+ readonly error: ErrorPayload;
13
+ readonly id: RequestId;
14
+ }
15
+ export type Response<Result extends Value = Value> = SuccessResponse<Result> | ErrorResponse | Redirect | Stale | Miss;
16
+ export declare function decodeResponse(input: unknown): Response;
17
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../invocation/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAc7C,MAAM,WAAW,eAAe,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK;IAC3D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;IAC5B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;CACvB;AAED,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK,IAC7C,eAAe,CAAC,MAAM,CAAC,GACvB,aAAa,GACb,QAAQ,GACR,KAAK,GACL,IAAI,CAAA;AAKR,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAyBvD"}
@@ -0,0 +1,34 @@
1
+ import { errorPayload, exactFields, invalid, portableObject, requestId, required, } from './admission.js';
2
+ import { decodeMiss } from './miss.js';
3
+ import { decodeRedirect } from './redirect.js';
4
+ import { decodeStale } from './stale-route.js';
5
+ const SUCCESS_FIELDS = new Set(['result', 'id']);
6
+ const ERROR_FIELDS = new Set(['error', 'id']);
7
+ export function decodeResponse(input) {
8
+ const object = portableObject(input, 'response');
9
+ const hasResult = Object.hasOwn(object, 'result');
10
+ const hasError = Object.hasOwn(object, 'error');
11
+ if (hasResult || hasError) {
12
+ if (hasResult === hasError)
13
+ invalid('response must contain exactly one of result or error');
14
+ if (hasResult) {
15
+ exactFields(object, SUCCESS_FIELDS, 'response');
16
+ required(object, ['id'], 'response');
17
+ return Object.freeze({ result: object.result, id: requestId(object.id, 'response.id') });
18
+ }
19
+ exactFields(object, ERROR_FIELDS, 'response');
20
+ required(object, ['id', 'error'], 'response');
21
+ return Object.freeze({
22
+ error: errorPayload(object.error, 'response.error'),
23
+ id: requestId(object.id, 'response.id'),
24
+ });
25
+ }
26
+ if (object.kind === 'redirect')
27
+ return decodeRedirect(object);
28
+ if (object.kind === 'stale')
29
+ return decodeStale(object);
30
+ if (object.kind === 'miss')
31
+ return decodeMiss(object);
32
+ return invalid('response must contain a result, error, redirect, stale, or miss control');
33
+ }
34
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../invocation/response.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,OAAO,EACP,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAmB9C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;AAChD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;AAE7C,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAChD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/C,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC1B,IAAI,SAAS,KAAK,QAAQ;YAAE,OAAO,CAAC,sDAAsD,CAAC,CAAA;QAE3F,IAAI,SAAS,EAAE,CAAC;YACd,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,CAAA;YAC/C,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAA;YACpC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAO,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;QAC3F,CAAC;QAED,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;QAC7C,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAA;QAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC;YACnD,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;IAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,WAAW,CAAC,MAAM,CAAC,CAAA;IACvD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;IACrD,OAAO,OAAO,CAAC,yEAAyE,CAAC,CAAA;AAC3F,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { IssuerId } from '@astrale-os/kernel-core/auth';
2
+ import type { Etag, PublicationRef } from '../publication/index.js';
3
+ export interface Via {
4
+ readonly kind: 'via';
5
+ readonly publication: PublicationRef;
6
+ readonly issuer: IssuerId;
7
+ }
8
+ export interface Refresh {
9
+ readonly kind: 'refresh';
10
+ readonly stale: Etag;
11
+ }
12
+ export type Routing = Via | Refresh;
13
+ export declare function acceptRouting(input: unknown): Routing;
14
+ //# sourceMappingURL=routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../invocation/routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAE5D,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAKnE,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;IACpB,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAC1B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;CACrB;AAED,MAAM,MAAM,OAAO,GAAG,GAAG,GAAG,OAAO,CAAA;AAKnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA2BrD"}
@@ -0,0 +1,34 @@
1
+ import * as publication from '../publication/index.js';
2
+ import { digest, exactFields, invalid, issuerId, portableObject, required } from './admission.js';
3
+ const VIA_FIELDS = new Set(['kind', 'publication', 'issuer']);
4
+ const REFRESH_FIELDS = new Set(['kind', 'stale']);
5
+ export function acceptRouting(input) {
6
+ const object = portableObject(input, 'routing');
7
+ if (object.kind === 'via') {
8
+ exactFields(object, VIA_FIELDS, 'via routing');
9
+ required(object, ['kind', 'publication', 'issuer'], 'via routing');
10
+ try {
11
+ return Object.freeze({
12
+ kind: 'via',
13
+ publication: publication.acceptReference(object.publication),
14
+ issuer: issuerId(object.issuer, 'via routing.issuer'),
15
+ });
16
+ }
17
+ catch (cause) {
18
+ if (cause instanceof publication.PublicationError) {
19
+ return invalid(`via routing.publication is invalid: ${cause.message}`);
20
+ }
21
+ throw cause;
22
+ }
23
+ }
24
+ if (object.kind === 'refresh') {
25
+ exactFields(object, REFRESH_FIELDS, 'refresh routing');
26
+ required(object, ['kind', 'stale'], 'refresh routing');
27
+ return Object.freeze({
28
+ kind: 'refresh',
29
+ stale: digest(object.stale, 'refresh routing.stale'),
30
+ });
31
+ }
32
+ return invalid('routing.kind must be "via" or "refresh"');
33
+ }
34
+ //# sourceMappingURL=routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.js","sourceRoot":"","sources":["../../invocation/routing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAejG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC7D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEjD,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC/C,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAA;QAC9C,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAA;QAClE,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC5D,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;aACtD,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBAClD,OAAO,OAAO,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YACxE,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAA;QACtD,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAA;QACtD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,uBAAuB,CAAC;SACrD,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,yCAAyC,CAAC,CAAA;AAC3D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type schema } from '@astrale-os/kernel-dsl/v1';
2
+ import type { Sha256Digest } from '../publication/index.js';
3
+ /** Source-Kernel precondition for the active Schema Registration selected by one invocation. */
4
+ export type SchemaTarget = {
5
+ readonly target: Sha256Digest;
6
+ } | {
7
+ readonly revision: schema.Revision;
8
+ };
9
+ export declare function acceptSchemaTarget(input: unknown): SchemaTarget;
10
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../invocation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAE5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAI3D,gGAAgG;AAChG,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAAE,GACjC;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;CAAE,CAAA;AAI1C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAe/D"}
@@ -0,0 +1,20 @@
1
+ import { schema as dslSchema } from '@astrale-os/kernel-dsl/v1';
2
+ import { digest, exactFields, invalid, portableObject } from './admission.js';
3
+ const FIELDS = new Set(['target', 'revision']);
4
+ export function acceptSchemaTarget(input) {
5
+ const object = portableObject(input, 'schema target');
6
+ exactFields(object, FIELDS, 'schema target');
7
+ const hasTarget = Object.hasOwn(object, 'target');
8
+ const hasRevision = Object.hasOwn(object, 'revision');
9
+ if (hasTarget === hasRevision) {
10
+ invalid('schema target must contain exactly one of target or revision');
11
+ }
12
+ if (hasTarget) {
13
+ return Object.freeze({ target: digest(object.target, 'schema target.target') });
14
+ }
15
+ if (typeof object.revision !== 'string' || !dslSchema.patterns.revision.test(object.revision)) {
16
+ invalid('schema target.revision must be a Schema revision');
17
+ }
18
+ return Object.freeze({ revision: object.revision });
19
+ }
20
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../invocation/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,SAAS,EAAe,MAAM,2BAA2B,CAAA;AAI5E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAO7E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;AAE9C,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IACrD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACrD,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,OAAO,CAAC,8DAA8D,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9F,OAAO,CAAC,kDAAkD,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAA2B,EAAE,CAAC,CAAA;AACxE,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { Object as ValueObject } from '@astrale-os/kernel-dsl/value';
2
+ import * as auth from '@astrale-os/kernel-core/auth';
3
+ import { schema as dslSchema, type Key } from '@astrale-os/kernel-dsl/v1';
4
+ import type { ErrorPayload, ErrorReason } from '../errors/index.js';
5
+ import { CODES } from '../errors/index.js';
6
+ export declare const SCHEMA_UPGRADE_REQUIRED: 'SCHEMA_UPGRADE_REQUIRED';
7
+ export declare const SERVICE_TRUST_REQUIRED: 'SERVICE_TRUST_REQUIRED';
8
+ export declare const SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE';
9
+ export declare const SERVICE_CANDIDATE_INVALID: 'SERVICE_CANDIDATE_INVALID';
10
+ export type SchemaUpgradeRequiredDetails = ValueObject & {
11
+ readonly origin: Key.Origin;
12
+ readonly installedRevision: dslSchema.Revision;
13
+ readonly candidateRevision: dslSchema.Revision;
14
+ };
15
+ export type ServiceTrustRequiredDetails = ValueObject & {
16
+ readonly origin: Key.Origin;
17
+ readonly installedIssuer: auth.IssuerId;
18
+ readonly candidateIssuer: auth.IssuerId;
19
+ };
20
+ export type ServiceUnavailableDetails = ValueObject & {
21
+ readonly origin: Key.Origin;
22
+ readonly revision: dslSchema.Revision;
23
+ };
24
+ export type ServiceCandidateInvalidDetails = ValueObject & {
25
+ readonly origin: Key.Origin;
26
+ };
27
+ export type SchemaUpgradeRequiredReason = ErrorReason<typeof SCHEMA_UPGRADE_REQUIRED, SchemaUpgradeRequiredDetails>;
28
+ export type ServiceTrustRequiredReason = ErrorReason<typeof SERVICE_TRUST_REQUIRED, ServiceTrustRequiredDetails>;
29
+ export type ServiceUnavailableReason = ErrorReason<typeof SERVICE_UNAVAILABLE, ServiceUnavailableDetails>;
30
+ export type ServiceCandidateInvalidReason = ErrorReason<typeof SERVICE_CANDIDATE_INVALID, ServiceCandidateInvalidDetails>;
31
+ export type ServiceReason = SchemaUpgradeRequiredReason | ServiceTrustRequiredReason | ServiceUnavailableReason | ServiceCandidateInvalidReason;
32
+ export type ServiceErrorPayload = (Omit<ErrorPayload, 'code' | 'data'> & {
33
+ readonly code: typeof CODES.CONFLICT;
34
+ readonly data: SchemaUpgradeRequiredReason | ServiceTrustRequiredReason;
35
+ }) | (Omit<ErrorPayload, 'code' | 'data'> & {
36
+ readonly code: typeof CODES.BACKEND_UNAVAILABLE;
37
+ readonly data: ServiceUnavailableReason | ServiceCandidateInvalidReason;
38
+ });
39
+ /** Recognize only exact outer-code, reason-code, and detail-shape combinations. */
40
+ export declare function serviceErrorOf(input: ErrorPayload): ServiceErrorPayload | undefined;
41
+ //# sourceMappingURL=service-reason.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-reason.d.ts","sourceRoot":"","sources":["../../invocation/service-reason.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAEzE,OAAO,KAAK,IAAI,MAAM,8BAA8B,CAAA;AACpD,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,2BAA2B,CAAA;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,KAAK,EAAY,MAAM,oBAAoB,CAAA;AAEpD,eAAO,MAAM,uBAAuB,EAAG,yBAAkC,CAAA;AACzE,eAAO,MAAM,sBAAsB,EAAG,wBAAiC,CAAA;AACvE,eAAO,MAAM,mBAAmB,EAAG,qBAA8B,CAAA;AACjE,eAAO,MAAM,yBAAyB,EAAG,2BAAoC,CAAA;AAE7E,MAAM,MAAM,4BAA4B,GAAG,WAAW,GAAG;IACvD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAA;IAC3B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC,QAAQ,CAAA;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,CAAC,QAAQ,CAAA;CAC/C,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG;IACtD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAA;IACvC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG;IACpD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG,WAAW,GAAG;IACzD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG,WAAW,CACnD,OAAO,uBAAuB,EAC9B,4BAA4B,CAC7B,CAAA;AACD,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAClD,OAAO,sBAAsB,EAC7B,2BAA2B,CAC5B,CAAA;AACD,MAAM,MAAM,wBAAwB,GAAG,WAAW,CAChD,OAAO,mBAAmB,EAC1B,yBAAyB,CAC1B,CAAA;AACD,MAAM,MAAM,6BAA6B,GAAG,WAAW,CACrD,OAAO,yBAAyB,EAChC,8BAA8B,CAC/B,CAAA;AAED,MAAM,MAAM,aAAa,GACrB,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,6BAA6B,CAAA;AAEjC,MAAM,MAAM,mBAAmB,GAC3B,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAA;IACpC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,GAAG,0BAA0B,CAAA;CACxE,CAAC,GACF,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,mBAAmB,CAAA;IAC/C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,GAAG,6BAA6B,CAAA;CACxE,CAAC,CAAA;AAEN,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,mBAAmB,GAAG,SAAS,CAwBnF"}
@@ -0,0 +1,74 @@
1
+ import * as auth from '@astrale-os/kernel-core/auth';
2
+ import { schema as dslSchema } from '@astrale-os/kernel-dsl/v1';
3
+ import { CODES, reasonOf } from '../errors/index.js';
4
+ export const SCHEMA_UPGRADE_REQUIRED = 'SCHEMA_UPGRADE_REQUIRED';
5
+ export const SERVICE_TRUST_REQUIRED = 'SERVICE_TRUST_REQUIRED';
6
+ export const SERVICE_UNAVAILABLE = 'SERVICE_UNAVAILABLE';
7
+ export const SERVICE_CANDIDATE_INVALID = 'SERVICE_CANDIDATE_INVALID';
8
+ /** Recognize only exact outer-code, reason-code, and detail-shape combinations. */
9
+ export function serviceErrorOf(input) {
10
+ const reason = reasonOf(input.data);
11
+ if (reason === undefined)
12
+ return undefined;
13
+ switch (reason.code) {
14
+ case SCHEMA_UPGRADE_REQUIRED:
15
+ return input.code === CODES.CONFLICT && schemaUpgradeDetails(reason.details)
16
+ ? input
17
+ : undefined;
18
+ case SERVICE_TRUST_REQUIRED:
19
+ return input.code === CODES.CONFLICT && serviceTrustDetails(reason.details)
20
+ ? input
21
+ : undefined;
22
+ case SERVICE_UNAVAILABLE:
23
+ return input.code === CODES.BACKEND_UNAVAILABLE && serviceUnavailableDetails(reason.details)
24
+ ? input
25
+ : undefined;
26
+ case SERVICE_CANDIDATE_INVALID:
27
+ return input.code === CODES.BACKEND_UNAVAILABLE && candidateInvalidDetails(reason.details)
28
+ ? input
29
+ : undefined;
30
+ default:
31
+ return undefined;
32
+ }
33
+ }
34
+ function schemaUpgradeDetails(input) {
35
+ return (exact(input, ['origin', 'installedRevision', 'candidateRevision']) &&
36
+ isOrigin(input.origin) &&
37
+ isRevision(input.installedRevision) &&
38
+ isRevision(input.candidateRevision));
39
+ }
40
+ function serviceTrustDetails(input) {
41
+ return (exact(input, ['origin', 'installedIssuer', 'candidateIssuer']) &&
42
+ isOrigin(input.origin) &&
43
+ isIssuer(input.installedIssuer) &&
44
+ isIssuer(input.candidateIssuer));
45
+ }
46
+ function serviceUnavailableDetails(input) {
47
+ return (exact(input, ['origin', 'revision']) && isOrigin(input.origin) && isRevision(input.revision));
48
+ }
49
+ function candidateInvalidDetails(input) {
50
+ return exact(input, ['origin']) && isOrigin(input.origin);
51
+ }
52
+ function exact(input, fields) {
53
+ return (Object.keys(input).length === fields.length &&
54
+ fields.every((field) => Object.hasOwn(input, field)));
55
+ }
56
+ function isOrigin(input) {
57
+ return typeof input === 'string' && dslSchema.patterns.origin.test(input);
58
+ }
59
+ function isRevision(input) {
60
+ return typeof input === 'string' && dslSchema.patterns.revision.test(input);
61
+ }
62
+ function isIssuer(input) {
63
+ if (typeof input !== 'string')
64
+ return false;
65
+ try {
66
+ return auth.issuer.accept(input) === input;
67
+ }
68
+ catch (cause) {
69
+ if (cause instanceof auth.AuthValueError)
70
+ return false;
71
+ throw cause;
72
+ }
73
+ }
74
+ //# sourceMappingURL=service-reason.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-reason.js","sourceRoot":"","sources":["../../invocation/service-reason.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Etag } from '../publication/index.js';
2
+ import type { RequestId } from './correlation.js';
3
+ /** Reserved pre-handler routing control; never an application ErrorResponse. */
4
+ export interface Stale {
5
+ readonly kind: 'stale';
6
+ readonly id: RequestId;
7
+ readonly current: Etag;
8
+ }
9
+ export declare function decodeStale(input: unknown): Stale;
10
+ export declare function stale(id: RequestId, current: Etag): Stale;
11
+ //# sourceMappingURL=stale-route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stale-route.d.ts","sourceRoot":"","sources":["../../invocation/stale-route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAIjD,gFAAgF;AAChF,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAA;CACvB;AAID,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAYjD;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,KAAK,CAEzD"}
@@ -0,0 +1,19 @@
1
+ import { digest, exactFields, invalid, portableObject, requestId, required } from './admission.js';
2
+ const FIELDS = new Set(['kind', 'id', 'current']);
3
+ export function decodeStale(input) {
4
+ const object = portableObject(input, 'stale control');
5
+ exactFields(object, FIELDS, 'stale control');
6
+ required(object, ['kind', 'id', 'current'], 'stale control');
7
+ if (object.kind !== 'stale') {
8
+ invalid('stale control.kind must be "stale"');
9
+ }
10
+ return Object.freeze({
11
+ kind: 'stale',
12
+ id: requestId(object.id, 'stale control.id'),
13
+ current: digest(object.current, 'stale control.current'),
14
+ });
15
+ }
16
+ export function stale(id, current) {
17
+ return Object.freeze({ kind: 'stale', id, current });
18
+ }
19
+ //# sourceMappingURL=stale-route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stale-route.js","sourceRoot":"","sources":["../../invocation/stale-route.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AASlG,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;AAEjD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;IACrD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAA;IAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,oCAAoC,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC;QAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC;KACzD,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAa,EAAE,OAAa;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;AACtD,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { Value } from '@astrale-os/kernel-dsl/value';
2
+ import type { ErrorPayload } from '../errors/index.js';
3
+ import type { RequestId } from './correlation.js';
4
+ export interface StreamStartFrame {
5
+ readonly kind: 'stream.start';
6
+ readonly id: RequestId;
7
+ }
8
+ export interface StreamItemFrame {
9
+ readonly kind: 'stream.item';
10
+ readonly id: RequestId;
11
+ readonly index: number;
12
+ readonly value: Value;
13
+ }
14
+ export interface StreamEndFrame {
15
+ readonly kind: 'stream.end';
16
+ readonly id: RequestId;
17
+ readonly count: number;
18
+ }
19
+ export interface StreamErrorFrame {
20
+ readonly kind: 'stream.error';
21
+ readonly id: RequestId;
22
+ readonly error: ErrorPayload;
23
+ }
24
+ export type StreamFrame = StreamStartFrame | StreamItemFrame | StreamEndFrame | StreamErrorFrame;
25
+ export declare function decodeStreamFrame(input: unknown): StreamFrame;
26
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../invocation/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAYjD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;IAC5B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAA;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,eAAe,GAAG,cAAc,GAAG,gBAAgB,CAAA;AAEhG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAsC7D"}
@@ -0,0 +1,41 @@
1
+ import { count, errorPayload, exactFields, invalid, portableObject, requestId, required, } from './admission.js';
2
+ export function decodeStreamFrame(input) {
3
+ const object = portableObject(input, 'stream frame');
4
+ const kind = object.kind;
5
+ if (typeof kind !== 'string')
6
+ invalid('stream frame.kind must be a string');
7
+ switch (kind) {
8
+ case 'stream.start':
9
+ exactFields(object, new Set(['kind', 'id']), 'stream.start');
10
+ required(object, ['id'], 'stream.start');
11
+ return Object.freeze({ kind, id: requestId(object.id, 'stream.start.id') });
12
+ case 'stream.item':
13
+ exactFields(object, new Set(['kind', 'id', 'index', 'value']), 'stream.item');
14
+ required(object, ['id', 'index', 'value'], 'stream.item');
15
+ return Object.freeze({
16
+ kind,
17
+ id: requestId(object.id, 'stream.item.id'),
18
+ index: count(object.index, 'stream.item.index'),
19
+ value: object.value,
20
+ });
21
+ case 'stream.end':
22
+ exactFields(object, new Set(['kind', 'id', 'count']), 'stream.end');
23
+ required(object, ['id', 'count'], 'stream.end');
24
+ return Object.freeze({
25
+ kind,
26
+ id: requestId(object.id, 'stream.end.id'),
27
+ count: count(object.count, 'stream.end.count'),
28
+ });
29
+ case 'stream.error':
30
+ exactFields(object, new Set(['kind', 'id', 'error']), 'stream.error');
31
+ required(object, ['id', 'error'], 'stream.error');
32
+ return Object.freeze({
33
+ kind,
34
+ id: requestId(object.id, 'stream.error.id'),
35
+ error: errorPayload(object.error, 'stream.error.error'),
36
+ });
37
+ default:
38
+ return invalid(`unsupported stream frame kind ${JSON.stringify(kind)}`);
39
+ }
40
+ }
41
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../invocation/stream.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,EACL,YAAY,EACZ,WAAW,EACX,OAAO,EACP,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAA;AA4BvB,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IACpD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxB,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,CAAC,oCAAoC,CAAC,CAAA;IAE3E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;YAC5D,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAA;YACxC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAA;QAC7E,KAAK,aAAa;YAChB,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;YAC7E,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAA;YACzD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI;gBACJ,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC;gBAC1C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,mBAAmB,CAAC;gBAC/C,KAAK,EAAE,MAAM,CAAC,KAAM;aACrB,CAAC,CAAA;QACJ,KAAK,YAAY;YACf,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;YACnE,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;YAC/C,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI;gBACJ,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC;gBACzC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC;aAC/C,CAAC,CAAA;QACJ,KAAK,cAAc;YACjB,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;YACrE,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAA;YACjD,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,IAAI;gBACJ,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC;gBAC3C,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,oBAAoB,CAAC;aACxD,CAAC,CAAA;QACJ;YACE,OAAO,OAAO,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3E,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { NodePath } from '@astrale-os/kernel-core/path';
2
+ import type { Value } from '@astrale-os/kernel-dsl/value';
3
+ /** One portable invocation meaning. Resolution remains Runtime-owned. */
4
+ export interface Call {
5
+ readonly target: NodePath;
6
+ readonly input: Value;
7
+ }
8
+ export declare function acceptCall(input: unknown): Call;
9
+ //# sourceMappingURL=target.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../invocation/target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAA;AAIzD,yEAAyE;AACzE,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CACtB;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAQ/C"}
@@ -0,0 +1,12 @@
1
+ import { exactFields, nodePath, portableObject, required } from './admission.js';
2
+ const CALL_FIELDS = new Set(['target', 'input']);
3
+ export function acceptCall(input) {
4
+ const object = portableObject(input, 'call');
5
+ exactFields(object, CALL_FIELDS, 'call');
6
+ required(object, ['target', 'input'], 'call');
7
+ return Object.freeze({
8
+ target: nodePath(object.target, 'call.target'),
9
+ input: object.input,
10
+ });
11
+ }
12
+ //# sourceMappingURL=target.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target.js","sourceRoot":"","sources":["../../invocation/target.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAQhF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;AAEhD,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC5C,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC;QAC9C,KAAK,EAAE,MAAM,CAAC,KAAM;KACrB,CAAC,CAAA;AACJ,CAAC"}