@toa.io/extensions.exposition 1.0.0-alpha.34 → 1.0.0-alpha.340

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 (1179) hide show
  1. package/components/exposition.octets/manifest.toa.yaml +58 -0
  2. package/components/exposition.octets/operations/delete.js +3 -0
  3. package/components/exposition.octets/operations/get.js +6 -0
  4. package/components/exposition.octets/operations/head.js +3 -0
  5. package/components/exposition.octets/operations/put.js +128 -0
  6. package/components/exposition.octets/package.json +11 -0
  7. package/components/exposition.octets/types/index.d.ts +3 -0
  8. package/components/exposition.octets/types/toa.d.ts +41 -0
  9. package/components/identity.bans/manifest.toa.yaml +26 -8
  10. package/components/identity.bans/operations/transit.js +6 -10
  11. package/components/identity.bans/source/transit.ts +5 -5
  12. package/components/identity.bans/tsconfig.json +2 -1
  13. package/components/identity.bans/types/index.d.ts +3 -0
  14. package/components/identity.bans/types/toa.d.ts +37 -0
  15. package/components/identity.basic/events/principal.js +8 -4
  16. package/components/identity.basic/manifest.toa.yaml +204 -29
  17. package/components/identity.basic/migrations/0002-indexes.yaml +13 -0
  18. package/components/identity.basic/operations/add.js +13 -0
  19. package/components/identity.basic/operations/authenticate.js +16 -17
  20. package/components/identity.basic/operations/check.js +14 -0
  21. package/components/identity.basic/operations/delete.js +7 -0
  22. package/components/identity.basic/operations/incept.js +32 -16
  23. package/components/identity.basic/operations/info.js +11 -0
  24. package/components/identity.basic/operations/lib/credentials.js +12 -0
  25. package/components/identity.basic/operations/transit.js +30 -21
  26. package/components/identity.basic/package.json +8 -0
  27. package/components/identity.basic/source/add.ts +18 -0
  28. package/components/identity.basic/source/authenticate.ts +27 -23
  29. package/components/identity.basic/source/check.ts +24 -0
  30. package/components/identity.basic/source/delete.ts +18 -0
  31. package/components/identity.basic/source/incept.ts +50 -14
  32. package/components/identity.basic/source/info.ts +26 -0
  33. package/components/identity.basic/source/lib/credentials.ts +12 -0
  34. package/components/identity.basic/source/transit.ts +52 -27
  35. package/components/identity.basic/tsconfig.json +2 -1
  36. package/components/identity.basic/types/index.d.ts +26 -0
  37. package/components/identity.basic/types/toa.d.ts +125 -0
  38. package/components/identity.clients/manifest.toa.yaml +239 -0
  39. package/components/identity.clients/migrations/0002-indexes.yaml +4 -0
  40. package/components/identity.clients/operations/describe.js +44 -0
  41. package/components/identity.clients/operations/lib/Context.js +2 -0
  42. package/components/identity.clients/operations/lib/Entity.js +2 -0
  43. package/components/identity.clients/operations/lib/canonical.js +24 -0
  44. package/components/identity.clients/operations/lib/cimd.js +87 -0
  45. package/components/identity.clients/operations/lib/errors.js +2 -0
  46. package/components/identity.clients/operations/lib/index.js +7 -0
  47. package/components/identity.clients/operations/lib/redirect.js +35 -0
  48. package/components/identity.clients/operations/register.js +84 -0
  49. package/components/identity.clients/source/describe.ts +63 -0
  50. package/components/identity.clients/source/lib/Context.ts +40 -0
  51. package/components/identity.clients/source/lib/Entity.ts +31 -0
  52. package/components/identity.clients/source/lib/canonical.ts +27 -0
  53. package/components/identity.clients/source/lib/cimd.ts +112 -0
  54. package/components/identity.clients/source/lib/errors.ts +1 -0
  55. package/components/identity.clients/source/lib/index.ts +6 -0
  56. package/components/identity.clients/source/lib/redirect.ts +39 -0
  57. package/components/identity.clients/source/register.ts +125 -0
  58. package/components/identity.clients/tsconfig.json +10 -0
  59. package/components/identity.clients/types/index.d.ts +3 -0
  60. package/components/identity.clients/types/toa.d.ts +112 -0
  61. package/components/identity.credentials/manifest.toa.yaml +78 -0
  62. package/components/identity.credentials/operations/list.js +32 -0
  63. package/components/identity.credentials/source/list.ts +92 -0
  64. package/components/identity.credentials/tsconfig.json +10 -0
  65. package/components/identity.credentials/types/index.d.ts +3 -0
  66. package/components/identity.credentials/types/toa.d.ts +30 -0
  67. package/components/identity.federation/events/principal.js +7 -8
  68. package/components/identity.federation/manifest.toa.yaml +258 -65
  69. package/components/identity.federation/migrations/0001-identity.yaml +13 -0
  70. package/components/identity.federation/migrations/0002-indexes.yaml +25 -0
  71. package/components/identity.federation/operations/authenticate.js +29 -20
  72. package/components/identity.federation/operations/create.js +26 -0
  73. package/components/identity.federation/operations/decode.js +9 -0
  74. package/components/identity.federation/operations/delete.js +7 -0
  75. package/components/identity.federation/operations/incept.js +9 -13
  76. package/components/identity.federation/operations/lib/Configuration.js +2 -0
  77. package/components/identity.federation/operations/lib/Ctx.js +2 -0
  78. package/components/identity.federation/operations/lib/Payload.js +2 -0
  79. package/components/identity.federation/operations/lib/decode.js +36 -0
  80. package/components/identity.federation/operations/lib/discovery.js +34 -0
  81. package/components/identity.federation/operations/lib/errors.js +12 -0
  82. package/components/identity.federation/operations/lib/exchange.js +90 -0
  83. package/components/identity.federation/operations/lib/index.js +5 -0
  84. package/components/identity.federation/operations/lib/jose.js +2 -0
  85. package/components/identity.federation/operations/lib/principal.js +14 -0
  86. package/components/identity.federation/operations/lib/resolve.js +13 -0
  87. package/components/identity.federation/operations/list.js +12 -0
  88. package/components/identity.federation/operations/types/Scheme.js +2 -0
  89. package/components/identity.federation/operations/types/configuration.js +2 -3
  90. package/components/identity.federation/operations/types/context.js +2 -3
  91. package/components/identity.federation/operations/types/entity.js +2 -3
  92. package/components/identity.federation/operations/types/index.js +5 -20
  93. package/components/identity.federation/package.json +8 -0
  94. package/components/identity.federation/source/authenticate.ts +48 -19
  95. package/components/identity.federation/source/create.ts +40 -0
  96. package/components/identity.federation/source/decode.ts +14 -0
  97. package/components/identity.federation/source/delete.ts +19 -0
  98. package/components/identity.federation/source/incept.ts +12 -15
  99. package/components/identity.federation/source/lib/Configuration.ts +39 -0
  100. package/components/identity.federation/source/lib/Ctx.ts +9 -0
  101. package/components/identity.federation/source/lib/Payload.ts +6 -0
  102. package/components/identity.federation/source/lib/decode.ts +44 -0
  103. package/components/identity.federation/source/lib/discovery.ts +50 -0
  104. package/components/identity.federation/source/lib/errors.ts +21 -0
  105. package/components/identity.federation/source/lib/exchange.ts +123 -0
  106. package/components/identity.federation/source/lib/index.ts +5 -0
  107. package/components/identity.federation/source/lib/jose.d.ts +1 -0
  108. package/components/identity.federation/source/lib/jose.js +1 -0
  109. package/components/identity.federation/source/lib/principal.ts +19 -0
  110. package/components/identity.federation/source/lib/resolve.ts +21 -0
  111. package/components/identity.federation/source/list.ts +21 -0
  112. package/components/identity.federation/source/types/Scheme.ts +1 -0
  113. package/components/identity.federation/source/types/configuration.ts +12 -4
  114. package/components/identity.federation/source/types/context.ts +22 -38
  115. package/components/identity.federation/source/types/entity.ts +3 -0
  116. package/components/identity.federation/source/types/index.ts +4 -3
  117. package/components/identity.federation/tsconfig.json +3 -2
  118. package/components/identity.federation/types/index.d.ts +3 -0
  119. package/components/identity.federation/types/toa.d.ts +130 -0
  120. package/components/identity.grants/manifest.toa.yaml +243 -0
  121. package/components/identity.grants/migrations/0002-indexes.yaml +5 -0
  122. package/components/identity.grants/operations/authorize.js +53 -0
  123. package/components/identity.grants/operations/exchange.js +92 -0
  124. package/components/identity.grants/operations/lib/code.js +30 -0
  125. package/components/identity.grants/operations/lib/identify.js +15 -0
  126. package/components/identity.grants/operations/lib/index.js +3 -0
  127. package/components/identity.grants/operations/list.js +18 -0
  128. package/components/identity.grants/operations/revoke.js +24 -0
  129. package/components/identity.grants/source/authorize.ts +97 -0
  130. package/components/identity.grants/source/exchange.ts +134 -0
  131. package/components/identity.grants/source/lib/code.ts +51 -0
  132. package/components/identity.grants/source/lib/identify.ts +16 -0
  133. package/components/identity.grants/source/lib/index.ts +3 -0
  134. package/components/identity.grants/source/list.ts +28 -0
  135. package/components/identity.grants/source/revoke.ts +38 -0
  136. package/components/identity.grants/tsconfig.json +10 -0
  137. package/components/identity.grants/types/index.d.ts +60 -0
  138. package/components/identity.grants/types/toa.d.ts +111 -0
  139. package/components/identity.keys/manifest.toa.yaml +79 -0
  140. package/components/identity.keys/migrations/0002-indexes.yaml +4 -0
  141. package/components/identity.keys/operations/create.js +12 -0
  142. package/components/identity.keys/operations/disable.js +5 -0
  143. package/components/identity.keys/operations/revoke.js +12 -0
  144. package/components/identity.keys/receivers/identity.bans.created.js +1 -0
  145. package/components/identity.keys/receivers/identity.bans.updated.js +1 -0
  146. package/components/identity.keys/receivers/identity.roles.deleted.js +1 -0
  147. package/components/identity.keys/source/create.ts +34 -0
  148. package/components/identity.keys/source/disable.ts +9 -0
  149. package/components/identity.keys/source/revoke.ts +30 -0
  150. package/components/identity.keys/tsconfig.json +10 -0
  151. package/components/identity.keys/types/index.d.ts +3 -0
  152. package/components/identity.keys/types/toa.d.ts +50 -0
  153. package/components/identity.otp/manifest.toa.yaml +125 -0
  154. package/components/identity.otp/migrations/0002-indexes.yaml +5 -0
  155. package/components/identity.otp/migrations/0003-unique-username.yaml +34 -0
  156. package/components/identity.otp/operations/authenticate.js +32 -0
  157. package/components/identity.otp/operations/confirm.js +23 -0
  158. package/components/identity.otp/operations/issue.js +13 -0
  159. package/components/identity.otp/operations/lib/Context.js +2 -0
  160. package/components/identity.otp/operations/lib/Entity.js +2 -0
  161. package/components/identity.otp/operations/lib/index.js +2 -0
  162. package/components/identity.otp/operations/lib/redeem.js +28 -0
  163. package/components/identity.otp/source/authenticate.ts +53 -0
  164. package/components/identity.otp/source/confirm.ts +41 -0
  165. package/components/identity.otp/source/issue.ts +28 -0
  166. package/components/identity.otp/source/lib/Context.ts +17 -0
  167. package/components/identity.otp/source/lib/Entity.ts +6 -0
  168. package/components/identity.otp/source/lib/index.ts +2 -0
  169. package/components/identity.otp/source/lib/redeem.ts +49 -0
  170. package/components/identity.otp/tsconfig.json +10 -0
  171. package/components/identity.otp/types/index.d.ts +3 -0
  172. package/components/identity.otp/types/toa.d.ts +67 -0
  173. package/components/identity.passkeys/manifest.toa.yaml +302 -0
  174. package/components/identity.passkeys/migrations/0002-indexes.yaml +11 -0
  175. package/components/identity.passkeys/operations/authenticate.js +30 -0
  176. package/components/identity.passkeys/operations/challenge.js +72 -0
  177. package/components/identity.passkeys/operations/create.js +53 -0
  178. package/components/identity.passkeys/operations/delete.js +9 -0
  179. package/components/identity.passkeys/operations/lib/const.js +2 -0
  180. package/components/identity.passkeys/operations/list.js +12 -0
  181. package/components/identity.passkeys/operations/types/Configuration.js +2 -0
  182. package/components/identity.passkeys/operations/types/Context.js +2 -0
  183. package/components/identity.passkeys/operations/types/Passkey.js +2 -0
  184. package/components/identity.passkeys/operations/types/index.js +2 -0
  185. package/components/identity.passkeys/operations/use.js +52 -0
  186. package/components/identity.passkeys/package.json +8 -0
  187. package/components/identity.passkeys/source/authenticate.ts +47 -0
  188. package/components/identity.passkeys/source/challenge.ts +119 -0
  189. package/components/identity.passkeys/source/create.ts +79 -0
  190. package/components/identity.passkeys/source/delete.ts +19 -0
  191. package/components/identity.passkeys/source/lib/const.ts +1 -0
  192. package/components/identity.passkeys/source/list.ts +21 -0
  193. package/components/identity.passkeys/source/types/Configuration.ts +6 -0
  194. package/components/identity.passkeys/source/types/Context.ts +17 -0
  195. package/components/identity.passkeys/source/types/Passkey.ts +12 -0
  196. package/components/identity.passkeys/source/types/index.ts +2 -0
  197. package/components/identity.passkeys/source/use.ts +77 -0
  198. package/components/identity.passkeys/tsconfig.json +10 -0
  199. package/components/identity.passkeys/types/index.d.ts +3 -0
  200. package/components/identity.passkeys/types/toa.d.ts +123 -0
  201. package/components/identity.roles/manifest.toa.yaml +42 -13
  202. package/components/identity.roles/migrations/0002-indexes.yaml +8 -0
  203. package/components/identity.roles/operations/grant.js +14 -16
  204. package/components/identity.roles/operations/lib/Entity.js +2 -3
  205. package/components/identity.roles/operations/list.js +3 -7
  206. package/components/identity.roles/operations/principal.js +30 -10
  207. package/components/identity.roles/receivers/identity.federation.principal.js +4 -0
  208. package/components/identity.roles/source/grant.ts +18 -14
  209. package/components/identity.roles/source/list.ts +3 -3
  210. package/components/identity.roles/source/principal.ts +34 -8
  211. package/components/identity.roles/tsconfig.json +2 -1
  212. package/components/identity.roles/types/index.d.ts +3 -0
  213. package/components/identity.roles/types/toa.d.ts +46 -0
  214. package/components/identity.tokens/manifest.toa.yaml +240 -29
  215. package/components/identity.tokens/operations/authenticate.js +34 -19
  216. package/components/identity.tokens/operations/decrypt.js +177 -24
  217. package/components/identity.tokens/operations/encrypt.js +33 -18
  218. package/components/identity.tokens/operations/issue.js +56 -0
  219. package/components/identity.tokens/operations/lib/form.js +24 -0
  220. package/components/identity.tokens/operations/lib/index.js +4 -0
  221. package/components/identity.tokens/operations/lib/jose.js +5 -0
  222. package/components/identity.tokens/operations/lib/key.js +7 -0
  223. package/components/identity.tokens/operations/lib/pad.js +2 -0
  224. package/components/identity.tokens/operations/revoke.js +3 -7
  225. package/components/identity.tokens/package.json +10 -0
  226. package/components/identity.tokens/receivers/identity.bans.created.js +1 -3
  227. package/components/identity.tokens/receivers/identity.bans.updated.js +1 -3
  228. package/components/identity.tokens/source/authenticate.ts +42 -18
  229. package/components/identity.tokens/source/decrypt.ts +240 -20
  230. package/components/identity.tokens/source/encrypt.ts +47 -17
  231. package/components/identity.tokens/source/issue.ts +85 -0
  232. package/components/identity.tokens/source/lib/form.ts +27 -0
  233. package/components/identity.tokens/source/lib/index.ts +4 -0
  234. package/components/identity.tokens/source/lib/jose.d.ts +1 -0
  235. package/components/identity.tokens/source/lib/jose.js +5 -0
  236. package/components/identity.tokens/source/lib/key.ts +8 -0
  237. package/components/identity.tokens/source/lib/pad.ts +1 -0
  238. package/components/identity.tokens/source/revoke.ts +3 -3
  239. package/components/identity.tokens/tsconfig.json +2 -1
  240. package/components/identity.tokens/types/index.d.ts +66 -0
  241. package/components/identity.tokens/types/toa.d.ts +124 -0
  242. package/package.json +50 -25
  243. package/readme.md +40 -7
  244. package/schemas/io/throttle.cos.yaml +81 -0
  245. package/schemas/octets/delete.cos.yaml +15 -2
  246. package/schemas/octets/get.cos.yaml +5 -0
  247. package/schemas/octets/put.cos.yaml +31 -0
  248. package/schemas/octets/workflow.cos.yaml +0 -1
  249. package/transpiled/Announcements.d.ts +26 -0
  250. package/transpiled/Announcements.js +34 -0
  251. package/transpiled/Announcements.js.map +1 -0
  252. package/transpiled/Branch.d.ts +43 -1
  253. package/transpiled/Branch.js +24 -2
  254. package/transpiled/Branch.js.map +1 -1
  255. package/transpiled/Composition.d.ts +7 -8
  256. package/transpiled/Composition.js +13 -29
  257. package/transpiled/Composition.js.map +1 -1
  258. package/transpiled/Context.d.ts +5 -2
  259. package/transpiled/Context.js +1 -2
  260. package/transpiled/Directive.d.ts +40 -8
  261. package/transpiled/Directive.js +169 -32
  262. package/transpiled/Directive.js.map +1 -1
  263. package/transpiled/Discovery/Explorer.d.ts +14 -0
  264. package/transpiled/Discovery/Explorer.js +36 -0
  265. package/transpiled/Discovery/Explorer.js.map +1 -0
  266. package/transpiled/Discovery/Site.d.ts +46 -0
  267. package/transpiled/Discovery/Site.js +177 -0
  268. package/transpiled/Discovery/Site.js.map +1 -0
  269. package/transpiled/Discovery/index.d.ts +3 -0
  270. package/transpiled/Discovery/index.js +4 -0
  271. package/transpiled/Discovery/index.js.map +1 -0
  272. package/transpiled/Discovery/tree.d.ts +28 -0
  273. package/transpiled/Discovery/tree.js +50 -0
  274. package/transpiled/Discovery/tree.js.map +1 -0
  275. package/transpiled/Discovery/trunk.d.ts +13 -0
  276. package/transpiled/Discovery/trunk.js +29 -0
  277. package/transpiled/Discovery/trunk.js.map +1 -0
  278. package/transpiled/Endpoint.d.ts +32 -8
  279. package/transpiled/Endpoint.js +138 -62
  280. package/transpiled/Endpoint.js.map +1 -1
  281. package/transpiled/Factory.d.ts +27 -7
  282. package/transpiled/Factory.js +49 -68
  283. package/transpiled/Factory.js.map +1 -1
  284. package/transpiled/Gateway.d.ts +62 -6
  285. package/transpiled/Gateway.js +268 -52
  286. package/transpiled/Gateway.js.map +1 -1
  287. package/transpiled/HTTP/Context.d.ts +70 -14
  288. package/transpiled/HTTP/Context.js +122 -34
  289. package/transpiled/HTTP/Context.js.map +1 -1
  290. package/transpiled/HTTP/Probe.d.ts +26 -0
  291. package/transpiled/HTTP/Probe.js +80 -0
  292. package/transpiled/HTTP/Probe.js.map +1 -0
  293. package/transpiled/HTTP/Server.d.ts +61 -10
  294. package/transpiled/HTTP/Server.js +366 -107
  295. package/transpiled/HTTP/Server.js.map +1 -1
  296. package/transpiled/HTTP/Timing.d.ts +2 -6
  297. package/transpiled/HTTP/Timing.js +5 -25
  298. package/transpiled/HTTP/Timing.js.map +1 -1
  299. package/transpiled/HTTP/address.d.ts +12 -0
  300. package/transpiled/HTTP/address.js +25 -0
  301. package/transpiled/HTTP/address.js.map +1 -0
  302. package/transpiled/HTTP/exceptions.d.ts +28 -7
  303. package/transpiled/HTTP/exceptions.js +53 -34
  304. package/transpiled/HTTP/exceptions.js.map +1 -1
  305. package/transpiled/HTTP/formats/form.d.ts +9 -0
  306. package/transpiled/HTTP/formats/form.js +18 -0
  307. package/transpiled/HTTP/formats/form.js.map +1 -0
  308. package/transpiled/HTTP/formats/index.d.ts +10 -4
  309. package/transpiled/HTTP/formats/index.js +19 -35
  310. package/transpiled/HTTP/formats/index.js.map +1 -1
  311. package/transpiled/HTTP/formats/json.d.ts +1 -3
  312. package/transpiled/HTTP/formats/json.js +6 -12
  313. package/transpiled/HTTP/formats/json.js.map +1 -1
  314. package/transpiled/HTTP/formats/msgpack.d.ts +0 -2
  315. package/transpiled/HTTP/formats/msgpack.js +7 -12
  316. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  317. package/transpiled/HTTP/formats/text.d.ts +1 -3
  318. package/transpiled/HTTP/formats/text.js +6 -12
  319. package/transpiled/HTTP/formats/text.js.map +1 -1
  320. package/transpiled/HTTP/formats/yaml.d.ts +1 -3
  321. package/transpiled/HTTP/formats/yaml.js +26 -37
  322. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  323. package/transpiled/HTTP/index.d.ts +6 -4
  324. package/transpiled/HTTP/index.js +6 -20
  325. package/transpiled/HTTP/index.js.map +1 -1
  326. package/transpiled/HTTP/messages.d.ts +28 -4
  327. package/transpiled/HTTP/messages.js +195 -42
  328. package/transpiled/HTTP/messages.js.map +1 -1
  329. package/transpiled/HTTP/types.d.ts +38 -0
  330. package/transpiled/HTTP/types.js +2 -0
  331. package/transpiled/HTTP/types.js.map +1 -0
  332. package/transpiled/Interception.d.ts +7 -2
  333. package/transpiled/Interception.js +12 -7
  334. package/transpiled/Interception.js.map +1 -1
  335. package/transpiled/Introspection.d.ts +103 -0
  336. package/transpiled/Introspection.js +82 -0
  337. package/transpiled/Introspection.js.map +1 -0
  338. package/transpiled/MCP/Server.d.ts +57 -0
  339. package/transpiled/MCP/Server.js +219 -0
  340. package/transpiled/MCP/Server.js.map +1 -0
  341. package/transpiled/MCP/discover.d.ts +14 -0
  342. package/transpiled/MCP/discover.js +32 -0
  343. package/transpiled/MCP/discover.js.map +1 -0
  344. package/transpiled/MCP/errors.d.ts +24 -0
  345. package/transpiled/MCP/errors.js +66 -0
  346. package/transpiled/MCP/errors.js.map +1 -0
  347. package/transpiled/MCP/index.d.ts +1 -0
  348. package/transpiled/MCP/index.js +2 -0
  349. package/transpiled/MCP/index.js.map +1 -0
  350. package/transpiled/MCP/manifest.d.ts +40 -0
  351. package/transpiled/MCP/manifest.js +164 -0
  352. package/transpiled/MCP/manifest.js.map +1 -0
  353. package/transpiled/MCP/schema.d.ts +27 -0
  354. package/transpiled/MCP/schema.js +88 -0
  355. package/transpiled/MCP/schema.js.map +1 -0
  356. package/transpiled/MCP/tools.d.ts +31 -0
  357. package/transpiled/MCP/tools.js +144 -0
  358. package/transpiled/MCP/tools.js.map +1 -0
  359. package/transpiled/MCP/types.d.ts +66 -0
  360. package/transpiled/MCP/types.js +13 -0
  361. package/transpiled/MCP/types.js.map +1 -0
  362. package/transpiled/Mapping.d.ts +17 -6
  363. package/transpiled/Mapping.js +50 -24
  364. package/transpiled/Mapping.js.map +1 -1
  365. package/transpiled/Query.d.ts +37 -6
  366. package/transpiled/Query.js +177 -48
  367. package/transpiled/Query.js.map +1 -1
  368. package/transpiled/RPC/Context.d.ts +11 -0
  369. package/transpiled/RPC/Context.js +56 -0
  370. package/transpiled/RPC/Context.js.map +1 -0
  371. package/transpiled/RPC/Dispatcher.d.ts +19 -0
  372. package/transpiled/RPC/Dispatcher.js +103 -0
  373. package/transpiled/RPC/Dispatcher.js.map +1 -0
  374. package/transpiled/RPC/errors.d.ts +18 -0
  375. package/transpiled/RPC/errors.js +66 -0
  376. package/transpiled/RPC/errors.js.map +1 -0
  377. package/transpiled/RPC/index.d.ts +1 -0
  378. package/transpiled/RPC/index.js +2 -0
  379. package/transpiled/RPC/index.js.map +1 -0
  380. package/transpiled/RPC/names.d.ts +31 -0
  381. package/transpiled/RPC/names.js +121 -0
  382. package/transpiled/RPC/names.js.map +1 -0
  383. package/transpiled/RPC/types.d.ts +27 -0
  384. package/transpiled/RPC/types.js +8 -0
  385. package/transpiled/RPC/types.js.map +1 -0
  386. package/transpiled/RTD/Context.d.ts +6 -4
  387. package/transpiled/RTD/Context.js +1 -2
  388. package/transpiled/RTD/Directives.d.ts +90 -7
  389. package/transpiled/RTD/Directives.js +1 -2
  390. package/transpiled/RTD/Endpoint.d.ts +11 -4
  391. package/transpiled/RTD/Endpoint.js +1 -2
  392. package/transpiled/RTD/Match.d.ts +7 -1
  393. package/transpiled/RTD/Match.js +1 -2
  394. package/transpiled/RTD/Method.d.ts +23 -2
  395. package/transpiled/RTD/Method.js +32 -5
  396. package/transpiled/RTD/Method.js.map +1 -1
  397. package/transpiled/RTD/Node.d.ts +46 -6
  398. package/transpiled/RTD/Node.js +79 -23
  399. package/transpiled/RTD/Node.js.map +1 -1
  400. package/transpiled/RTD/Route.d.ts +9 -7
  401. package/transpiled/RTD/Route.js +50 -15
  402. package/transpiled/RTD/Route.js.map +1 -1
  403. package/transpiled/RTD/Tree.d.ts +26 -5
  404. package/transpiled/RTD/Tree.js +89 -13
  405. package/transpiled/RTD/Tree.js.map +1 -1
  406. package/transpiled/RTD/factory.d.ts +4 -3
  407. package/transpiled/RTD/factory.js +56 -15
  408. package/transpiled/RTD/factory.js.map +1 -1
  409. package/transpiled/RTD/index.d.ts +8 -8
  410. package/transpiled/RTD/index.js +8 -37
  411. package/transpiled/RTD/index.js.map +1 -1
  412. package/transpiled/RTD/segment.d.ts +10 -0
  413. package/transpiled/RTD/segment.js +36 -7
  414. package/transpiled/RTD/segment.js.map +1 -1
  415. package/transpiled/RTD/syntax/index.d.ts +1 -2
  416. package/transpiled/RTD/syntax/index.js +1 -18
  417. package/transpiled/RTD/syntax/index.js.map +1 -1
  418. package/transpiled/Remotes.d.ts +12 -7
  419. package/transpiled/Remotes.js +36 -16
  420. package/transpiled/Remotes.js.map +1 -1
  421. package/transpiled/Tenant.d.ts +16 -7
  422. package/transpiled/Tenant.js +52 -18
  423. package/transpiled/Tenant.js.map +1 -1
  424. package/transpiled/diagnostics.d.ts +13 -0
  425. package/transpiled/diagnostics.js +17 -0
  426. package/transpiled/diagnostics.js.map +1 -0
  427. package/transpiled/directives/auth/Anonymous.d.ts +17 -2
  428. package/transpiled/directives/auth/Anonymous.js +23 -9
  429. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  430. package/transpiled/directives/auth/Anyone.d.ts +10 -0
  431. package/transpiled/directives/auth/Anyone.js +17 -0
  432. package/transpiled/directives/auth/Anyone.js.map +1 -0
  433. package/transpiled/directives/auth/Assert.d.ts +9 -0
  434. package/transpiled/directives/auth/Assert.js +33 -0
  435. package/transpiled/directives/auth/Assert.js.map +1 -0
  436. package/transpiled/directives/auth/Authorization.d.ts +54 -8
  437. package/transpiled/directives/auth/Authorization.js +278 -85
  438. package/transpiled/directives/auth/Authorization.js.map +1 -1
  439. package/transpiled/directives/auth/Delegate.d.ts +13 -4
  440. package/transpiled/directives/auth/Delegate.js +23 -10
  441. package/transpiled/directives/auth/Delegate.js.map +1 -1
  442. package/transpiled/directives/auth/Echo.d.ts +6 -4
  443. package/transpiled/directives/auth/Echo.js +14 -9
  444. package/transpiled/directives/auth/Echo.js.map +1 -1
  445. package/transpiled/directives/auth/Federation.d.ts +21 -0
  446. package/transpiled/directives/auth/Federation.js +54 -0
  447. package/transpiled/directives/auth/Federation.js.map +1 -0
  448. package/transpiled/directives/auth/Id.d.ts +12 -3
  449. package/transpiled/directives/auth/Id.js +13 -5
  450. package/transpiled/directives/auth/Id.js.map +1 -1
  451. package/transpiled/directives/auth/Incept.d.ts +11 -6
  452. package/transpiled/directives/auth/Incept.js +68 -50
  453. package/transpiled/directives/auth/Incept.js.map +1 -1
  454. package/transpiled/directives/auth/Input.d.ts +15 -0
  455. package/transpiled/directives/auth/Input.js +49 -0
  456. package/transpiled/directives/auth/Input.js.map +1 -0
  457. package/transpiled/directives/auth/Refresh.d.ts +16 -0
  458. package/transpiled/directives/auth/Refresh.js +44 -0
  459. package/transpiled/directives/auth/Refresh.js.map +1 -0
  460. package/transpiled/directives/auth/Role.d.ts +12 -3
  461. package/transpiled/directives/auth/Role.js +28 -16
  462. package/transpiled/directives/auth/Role.js.map +1 -1
  463. package/transpiled/directives/auth/Rule.d.ts +8 -5
  464. package/transpiled/directives/auth/Rule.js +23 -7
  465. package/transpiled/directives/auth/Rule.js.map +1 -1
  466. package/transpiled/directives/auth/Scheme.d.ts +4 -2
  467. package/transpiled/directives/auth/Scheme.js +11 -35
  468. package/transpiled/directives/auth/Scheme.js.map +1 -1
  469. package/transpiled/directives/auth/create.d.ts +2 -0
  470. package/transpiled/directives/auth/create.js +10 -0
  471. package/transpiled/directives/auth/create.js.map +1 -0
  472. package/transpiled/directives/auth/index.d.ts +1 -1
  473. package/transpiled/directives/auth/index.js +2 -5
  474. package/transpiled/directives/auth/index.js.map +1 -1
  475. package/transpiled/directives/auth/schemes.d.ts +26 -3
  476. package/transpiled/directives/auth/schemes.js +32 -8
  477. package/transpiled/directives/auth/schemes.js.map +1 -1
  478. package/transpiled/directives/auth/split.d.ts +1 -1
  479. package/transpiled/directives/auth/split.js +3 -30
  480. package/transpiled/directives/auth/split.js.map +1 -1
  481. package/transpiled/directives/auth/types.d.ts +42 -12
  482. package/transpiled/directives/auth/types.js +1 -2
  483. package/transpiled/directives/cache/Cache.d.ts +17 -6
  484. package/transpiled/directives/cache/Cache.js +56 -15
  485. package/transpiled/directives/cache/Cache.js.map +1 -1
  486. package/transpiled/directives/cache/Control.d.ts +9 -5
  487. package/transpiled/directives/cache/Control.js +27 -32
  488. package/transpiled/directives/cache/Control.js.map +1 -1
  489. package/transpiled/directives/cache/Exact.d.ts +2 -2
  490. package/transpiled/directives/cache/Exact.js +3 -7
  491. package/transpiled/directives/cache/Exact.js.map +1 -1
  492. package/transpiled/directives/cache/etag.d.ts +13 -0
  493. package/transpiled/directives/cache/etag.js +33 -0
  494. package/transpiled/directives/cache/etag.js.map +1 -0
  495. package/transpiled/directives/cache/index.d.ts +1 -1
  496. package/transpiled/directives/cache/index.js +2 -5
  497. package/transpiled/directives/cache/index.js.map +1 -1
  498. package/transpiled/directives/cache/types.d.ts +1 -1
  499. package/transpiled/directives/cache/types.js +1 -2
  500. package/transpiled/directives/censor/Censor.d.ts +10 -0
  501. package/transpiled/directives/censor/Censor.js +15 -0
  502. package/transpiled/directives/censor/Censor.js.map +1 -0
  503. package/transpiled/directives/censor/index.d.ts +2 -0
  504. package/transpiled/directives/censor/index.js +3 -0
  505. package/transpiled/directives/censor/index.js.map +1 -0
  506. package/transpiled/directives/cors/CORS.d.ts +2 -6
  507. package/transpiled/directives/cors/CORS.js +27 -45
  508. package/transpiled/directives/cors/CORS.js.map +1 -1
  509. package/transpiled/directives/cors/index.d.ts +1 -1
  510. package/transpiled/directives/cors/index.js +2 -5
  511. package/transpiled/directives/cors/index.js.map +1 -1
  512. package/transpiled/directives/dev/Development.d.ts +4 -4
  513. package/transpiled/directives/dev/Development.js +19 -15
  514. package/transpiled/directives/dev/Development.js.map +1 -1
  515. package/transpiled/directives/dev/Faulty.d.ts +8 -0
  516. package/transpiled/directives/dev/Faulty.js +18 -0
  517. package/transpiled/directives/dev/Faulty.js.map +1 -0
  518. package/transpiled/directives/dev/Sleep.d.ts +9 -0
  519. package/transpiled/directives/dev/Sleep.js +39 -0
  520. package/transpiled/directives/dev/Sleep.js.map +1 -0
  521. package/transpiled/directives/dev/Stub.d.ts +2 -2
  522. package/transpiled/directives/dev/Stub.js +1 -5
  523. package/transpiled/directives/dev/Stub.js.map +1 -1
  524. package/transpiled/directives/dev/Throw.d.ts +2 -2
  525. package/transpiled/directives/dev/Throw.js +1 -5
  526. package/transpiled/directives/dev/Throw.js.map +1 -1
  527. package/transpiled/directives/dev/index.d.ts +1 -1
  528. package/transpiled/directives/dev/index.js +2 -5
  529. package/transpiled/directives/dev/index.js.map +1 -1
  530. package/transpiled/directives/dev/types.d.ts +2 -2
  531. package/transpiled/directives/dev/types.js +1 -2
  532. package/transpiled/directives/flow/Compose.d.ts +9 -0
  533. package/transpiled/directives/flow/Compose.js +74 -0
  534. package/transpiled/directives/flow/Compose.js.map +1 -0
  535. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  536. package/transpiled/directives/flow/Fetch.js +51 -0
  537. package/transpiled/directives/flow/Fetch.js.map +1 -0
  538. package/transpiled/directives/flow/Flow.d.ts +10 -0
  539. package/transpiled/directives/flow/Flow.js +29 -0
  540. package/transpiled/directives/flow/Flow.js.map +1 -0
  541. package/transpiled/directives/flow/index.d.ts +2 -0
  542. package/transpiled/directives/flow/index.js +3 -0
  543. package/transpiled/directives/flow/index.js.map +1 -0
  544. package/transpiled/directives/flow/types.d.ts +6 -0
  545. package/transpiled/directives/flow/types.js +2 -0
  546. package/transpiled/directives/flow/types.js.map +1 -0
  547. package/transpiled/directives/help/Family.d.ts +26 -0
  548. package/transpiled/directives/help/Family.js +83 -0
  549. package/transpiled/directives/help/Family.js.map +1 -0
  550. package/transpiled/directives/help/Help.d.ts +22 -0
  551. package/transpiled/directives/help/Help.js +36 -0
  552. package/transpiled/directives/help/Help.js.map +1 -0
  553. package/transpiled/directives/help/Parameters.d.ts +18 -0
  554. package/transpiled/directives/help/Parameters.js +34 -0
  555. package/transpiled/directives/help/Parameters.js.map +1 -0
  556. package/transpiled/directives/help/described.d.ts +16 -0
  557. package/transpiled/directives/help/described.js +27 -0
  558. package/transpiled/directives/help/described.js.map +1 -0
  559. package/transpiled/directives/help/index.d.ts +22 -0
  560. package/transpiled/directives/help/index.js +34 -0
  561. package/transpiled/directives/help/index.js.map +1 -0
  562. package/transpiled/directives/index.d.ts +6 -2
  563. package/transpiled/directives/index.js +33 -13
  564. package/transpiled/directives/index.js.map +1 -1
  565. package/transpiled/directives/io/Directive.d.ts +8 -3
  566. package/transpiled/directives/io/Directive.js +1 -2
  567. package/transpiled/directives/io/IO.d.ts +24 -5
  568. package/transpiled/directives/io/IO.js +64 -17
  569. package/transpiled/directives/io/IO.js.map +1 -1
  570. package/transpiled/directives/io/Input.d.ts +5 -4
  571. package/transpiled/directives/io/Input.js +18 -38
  572. package/transpiled/directives/io/Input.js.map +1 -1
  573. package/transpiled/directives/io/Message.js +1 -2
  574. package/transpiled/directives/io/Output.d.ts +12 -6
  575. package/transpiled/directives/io/Output.js +19 -59
  576. package/transpiled/directives/io/Output.js.map +1 -1
  577. package/transpiled/directives/io/Readonly.d.ts +14 -0
  578. package/transpiled/directives/io/Readonly.js +20 -0
  579. package/transpiled/directives/io/Readonly.js.map +1 -0
  580. package/transpiled/directives/io/Status.d.ts +19 -0
  581. package/transpiled/directives/io/Status.js +37 -0
  582. package/transpiled/directives/io/Status.js.map +1 -0
  583. package/transpiled/directives/io/Throttle.d.ts +11 -0
  584. package/transpiled/directives/io/Throttle.js +22 -0
  585. package/transpiled/directives/io/Throttle.js.map +1 -0
  586. package/transpiled/directives/io/index.d.ts +1 -1
  587. package/transpiled/directives/io/index.js +2 -5
  588. package/transpiled/directives/io/index.js.map +1 -1
  589. package/transpiled/directives/io/lib/throttle/Configuration.d.ts +26 -0
  590. package/transpiled/directives/io/lib/throttle/Configuration.js +31 -0
  591. package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -0
  592. package/transpiled/directives/io/lib/throttle/Keys.d.ts +14 -0
  593. package/transpiled/directives/io/lib/throttle/Keys.js +32 -0
  594. package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -0
  595. package/transpiled/directives/io/lib/throttle/Quotas.d.ts +70 -0
  596. package/transpiled/directives/io/lib/throttle/Quotas.js +142 -0
  597. package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -0
  598. package/transpiled/directives/io/lib/throttle/Sync.d.ts +29 -0
  599. package/transpiled/directives/io/lib/throttle/Sync.js +70 -0
  600. package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -0
  601. package/transpiled/directives/io/lib/throttle/Warning.d.ts +11 -0
  602. package/transpiled/directives/io/lib/throttle/Warning.js +24 -0
  603. package/transpiled/directives/io/lib/throttle/Warning.js.map +1 -0
  604. package/transpiled/directives/io/lib/throttle/components/Component.d.ts +6 -0
  605. package/transpiled/directives/io/lib/throttle/components/Component.js +2 -0
  606. package/transpiled/directives/io/lib/throttle/components/Component.js.map +1 -0
  607. package/transpiled/directives/io/lib/throttle/components/IP.d.ts +14 -0
  608. package/transpiled/directives/io/lib/throttle/components/IP.js +24 -0
  609. package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -0
  610. package/transpiled/directives/io/lib/throttle/components/Identity.d.ts +11 -0
  611. package/transpiled/directives/io/lib/throttle/components/Identity.js +12 -0
  612. package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -0
  613. package/transpiled/directives/io/lib/throttle/components/Path.d.ts +5 -0
  614. package/transpiled/directives/io/lib/throttle/components/Path.js +6 -0
  615. package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -0
  616. package/transpiled/directives/io/lib/throttle/components/Route.d.ts +12 -0
  617. package/transpiled/directives/io/lib/throttle/components/Route.js +16 -0
  618. package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -0
  619. package/transpiled/directives/io/lib/throttle/components/Segment.d.ts +9 -0
  620. package/transpiled/directives/io/lib/throttle/components/Segment.js +13 -0
  621. package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -0
  622. package/transpiled/directives/io/lib/throttle/components/index.d.ts +5 -0
  623. package/transpiled/directives/io/lib/throttle/components/index.js +13 -0
  624. package/transpiled/directives/io/lib/throttle/components/index.js.map +1 -0
  625. package/transpiled/directives/io/lib/throttle/conditions/Condition.d.ts +4 -0
  626. package/transpiled/directives/io/lib/throttle/conditions/Condition.js +2 -0
  627. package/transpiled/directives/io/lib/throttle/conditions/Condition.js.map +1 -0
  628. package/transpiled/directives/io/lib/throttle/conditions/Status.d.ts +7 -0
  629. package/transpiled/directives/io/lib/throttle/conditions/Status.js +12 -0
  630. package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -0
  631. package/transpiled/directives/io/lib/throttle/conditions/index.d.ts +5 -0
  632. package/transpiled/directives/io/lib/throttle/conditions/index.js +5 -0
  633. package/transpiled/directives/io/lib/throttle/conditions/index.js.map +1 -0
  634. package/transpiled/directives/io/lib/throttle/index.d.ts +4 -0
  635. package/transpiled/directives/io/lib/throttle/index.js +5 -0
  636. package/transpiled/directives/io/lib/throttle/index.js.map +1 -0
  637. package/transpiled/directives/io/schemas.d.ts +6 -4
  638. package/transpiled/directives/io/schemas.js +8 -13
  639. package/transpiled/directives/io/schemas.js.map +1 -1
  640. package/transpiled/directives/map/Authority.d.ts +6 -0
  641. package/transpiled/directives/map/Authority.js +12 -0
  642. package/transpiled/directives/map/Authority.js.map +1 -0
  643. package/transpiled/directives/map/Buffer.d.ts +6 -0
  644. package/transpiled/directives/map/Buffer.js +12 -0
  645. package/transpiled/directives/map/Buffer.js.map +1 -0
  646. package/transpiled/directives/map/Claims.d.ts +10 -0
  647. package/transpiled/directives/map/Claims.js +38 -0
  648. package/transpiled/directives/map/Claims.js.map +1 -0
  649. package/transpiled/directives/map/Client.d.ts +21 -0
  650. package/transpiled/directives/map/Client.js +33 -0
  651. package/transpiled/directives/map/Client.js.map +1 -0
  652. package/transpiled/directives/map/Directive.d.ts +3 -0
  653. package/transpiled/directives/map/Directive.js +2 -0
  654. package/transpiled/directives/map/Directive.js.map +1 -0
  655. package/transpiled/directives/map/Headers.d.ts +15 -0
  656. package/transpiled/directives/map/Headers.js +41 -0
  657. package/transpiled/directives/map/Headers.js.map +1 -0
  658. package/transpiled/directives/map/Instance.d.ts +15 -0
  659. package/transpiled/directives/map/Instance.js +27 -0
  660. package/transpiled/directives/map/Instance.js.map +1 -0
  661. package/transpiled/directives/map/Language.d.ts +10 -0
  662. package/transpiled/directives/map/Language.js +29 -0
  663. package/transpiled/directives/map/Language.js.map +1 -0
  664. package/transpiled/directives/map/Languages.d.ts +4 -0
  665. package/transpiled/directives/map/Languages.js +11 -0
  666. package/transpiled/directives/map/Languages.js.map +1 -0
  667. package/transpiled/directives/map/Map.d.ts +15 -0
  668. package/transpiled/directives/map/Map.js +72 -0
  669. package/transpiled/directives/map/Map.js.map +1 -0
  670. package/transpiled/directives/map/Mapping.d.ts +26 -0
  671. package/transpiled/directives/map/Mapping.js +29 -0
  672. package/transpiled/directives/map/Mapping.js.map +1 -0
  673. package/transpiled/directives/map/Properties.d.ts +9 -0
  674. package/transpiled/directives/map/Properties.js +10 -0
  675. package/transpiled/directives/map/Properties.js.map +1 -0
  676. package/transpiled/directives/map/Segments.d.ts +9 -0
  677. package/transpiled/directives/map/Segments.js +34 -0
  678. package/transpiled/directives/map/Segments.js.map +1 -0
  679. package/transpiled/directives/map/Stream.d.ts +30 -0
  680. package/transpiled/directives/map/Stream.js +91 -0
  681. package/transpiled/directives/map/Stream.js.map +1 -0
  682. package/transpiled/directives/map/index.d.ts +2 -0
  683. package/transpiled/directives/map/index.js +3 -0
  684. package/transpiled/directives/map/index.js.map +1 -0
  685. package/transpiled/directives/mcp/MCP.d.ts +17 -0
  686. package/transpiled/directives/mcp/MCP.js +25 -0
  687. package/transpiled/directives/mcp/MCP.js.map +1 -0
  688. package/transpiled/directives/mcp/Tool.d.ts +12 -0
  689. package/transpiled/directives/mcp/Tool.js +24 -0
  690. package/transpiled/directives/mcp/Tool.js.map +1 -0
  691. package/transpiled/directives/mcp/index.d.ts +4 -0
  692. package/transpiled/directives/mcp/index.js +4 -0
  693. package/transpiled/directives/mcp/index.js.map +1 -0
  694. package/transpiled/directives/oauth/Discovery.d.ts +25 -0
  695. package/transpiled/directives/oauth/Discovery.js +69 -0
  696. package/transpiled/directives/oauth/Discovery.js.map +1 -0
  697. package/transpiled/directives/oauth/documents.d.ts +16 -0
  698. package/transpiled/directives/oauth/documents.js +101 -0
  699. package/transpiled/directives/oauth/documents.js.map +1 -0
  700. package/transpiled/directives/oauth/index.d.ts +2 -0
  701. package/transpiled/directives/oauth/index.js +3 -0
  702. package/transpiled/directives/oauth/index.js.map +1 -0
  703. package/transpiled/directives/octets/Context.d.ts +2 -2
  704. package/transpiled/directives/octets/Context.js +4 -31
  705. package/transpiled/directives/octets/Context.js.map +1 -1
  706. package/transpiled/directives/octets/Delete.d.ts +11 -6
  707. package/transpiled/directives/octets/Delete.js +46 -53
  708. package/transpiled/directives/octets/Delete.js.map +1 -1
  709. package/transpiled/directives/octets/Directive.d.ts +9 -3
  710. package/transpiled/directives/octets/Directive.js +1 -5
  711. package/transpiled/directives/octets/Directive.js.map +1 -1
  712. package/transpiled/directives/octets/Get.d.ts +17 -0
  713. package/transpiled/directives/octets/Get.js +69 -0
  714. package/transpiled/directives/octets/Get.js.map +1 -0
  715. package/transpiled/directives/octets/Octets.d.ts +9 -6
  716. package/transpiled/directives/octets/Octets.js +27 -26
  717. package/transpiled/directives/octets/Octets.js.map +1 -1
  718. package/transpiled/directives/octets/Put.d.ts +33 -0
  719. package/transpiled/directives/octets/Put.js +81 -0
  720. package/transpiled/directives/octets/Put.js.map +1 -0
  721. package/transpiled/directives/octets/Workflow.d.ts +6 -6
  722. package/transpiled/directives/octets/Workflow.js +14 -36
  723. package/transpiled/directives/octets/Workflow.js.map +1 -1
  724. package/transpiled/directives/octets/bytes.d.ts +1 -0
  725. package/transpiled/directives/octets/bytes.js +14 -0
  726. package/transpiled/directives/octets/bytes.js.map +1 -0
  727. package/transpiled/directives/octets/index.d.ts +1 -1
  728. package/transpiled/directives/octets/index.js +2 -5
  729. package/transpiled/directives/octets/index.js.map +1 -1
  730. package/transpiled/directives/octets/schemas.d.ts +6 -10
  731. package/transpiled/directives/octets/schemas.js +8 -17
  732. package/transpiled/directives/octets/schemas.js.map +1 -1
  733. package/transpiled/directives/octets/types.d.ts +3 -1
  734. package/transpiled/directives/octets/types.js +1 -2
  735. package/transpiled/directives/octets/workflows/Execution.d.ts +22 -4
  736. package/transpiled/directives/octets/workflows/Execution.js +69 -15
  737. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  738. package/transpiled/directives/octets/workflows/Workflow.d.ts +10 -5
  739. package/transpiled/directives/octets/workflows/Workflow.js +16 -14
  740. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  741. package/transpiled/directives/octets/workflows/index.d.ts +2 -1
  742. package/transpiled/directives/octets/workflows/index.js +1 -5
  743. package/transpiled/directives/octets/workflows/index.js.map +1 -1
  744. package/transpiled/directives/realtime/Hub.d.ts +45 -0
  745. package/transpiled/directives/realtime/Hub.js +221 -0
  746. package/transpiled/directives/realtime/Hub.js.map +1 -0
  747. package/transpiled/directives/realtime/Realtime.d.ts +25 -0
  748. package/transpiled/directives/realtime/Realtime.js +50 -0
  749. package/transpiled/directives/realtime/Realtime.js.map +1 -0
  750. package/transpiled/directives/realtime/Stream.d.ts +38 -0
  751. package/transpiled/directives/realtime/Stream.js +89 -0
  752. package/transpiled/directives/realtime/Stream.js.map +1 -0
  753. package/transpiled/directives/realtime/index.d.ts +2 -0
  754. package/transpiled/directives/realtime/index.js +3 -0
  755. package/transpiled/directives/realtime/index.js.map +1 -0
  756. package/transpiled/directives/realtime/measurements.d.ts +1 -0
  757. package/transpiled/directives/realtime/measurements.js +11 -0
  758. package/transpiled/directives/realtime/measurements.js.map +1 -0
  759. package/transpiled/directives/require/Directive.d.ts +2 -2
  760. package/transpiled/directives/require/Directive.js +1 -2
  761. package/transpiled/directives/require/Headers.d.ts +3 -3
  762. package/transpiled/directives/require/Headers.js +4 -8
  763. package/transpiled/directives/require/Headers.js.map +1 -1
  764. package/transpiled/directives/require/Require.d.ts +4 -4
  765. package/transpiled/directives/require/Require.js +8 -15
  766. package/transpiled/directives/require/Require.js.map +1 -1
  767. package/transpiled/directives/require/index.d.ts +1 -1
  768. package/transpiled/directives/require/index.js +2 -5
  769. package/transpiled/directives/require/index.js.map +1 -1
  770. package/transpiled/discovery.js +1 -2
  771. package/transpiled/exceptions.d.ts +1 -1
  772. package/transpiled/exceptions.js +31 -34
  773. package/transpiled/exceptions.js.map +1 -1
  774. package/transpiled/index.d.ts +5 -5
  775. package/transpiled/index.js +2 -11
  776. package/transpiled/index.js.map +1 -1
  777. package/transpiled/io.d.ts +1 -1
  778. package/transpiled/io.js +1 -2
  779. package/transpiled/measurements.d.ts +22 -0
  780. package/transpiled/measurements.js +37 -0
  781. package/transpiled/measurements.js.map +1 -0
  782. package/transpiled/realtime/Destination.d.ts +44 -0
  783. package/transpiled/realtime/Destination.js +128 -0
  784. package/transpiled/realtime/Destination.js.map +1 -0
  785. package/transpiled/realtime/Factory.d.ts +11 -0
  786. package/transpiled/realtime/Factory.js +15 -0
  787. package/transpiled/realtime/Factory.js.map +1 -0
  788. package/transpiled/realtime/measurements.d.ts +1 -0
  789. package/transpiled/realtime/measurements.js +11 -0
  790. package/transpiled/realtime/measurements.js.map +1 -0
  791. package/transpiled/realtime/redis.d.ts +36 -0
  792. package/transpiled/realtime/redis.js +83 -0
  793. package/transpiled/realtime/redis.js.map +1 -0
  794. package/transpiled/root.d.ts +1 -1
  795. package/transpiled/root.js +62 -10
  796. package/transpiled/root.js.map +1 -1
  797. package/transpiled/service.d.ts +7 -0
  798. package/transpiled/service.js +122 -0
  799. package/transpiled/service.js.map +1 -0
  800. package/transpiled/userland.d.ts +39 -0
  801. package/transpiled/userland.js +7 -0
  802. package/transpiled/userland.js.map +1 -0
  803. package/ui/dist/_app/env.js +1 -0
  804. package/ui/dist/_app/immutable/assets/0.DKJjMwRs.css +2 -0
  805. package/ui/dist/_app/immutable/assets/2.BghF56l_.css +1 -0
  806. package/ui/dist/_app/immutable/assets/ui.DWW-43mU.css +1 -0
  807. package/ui/dist/_app/immutable/chunks/-39mDws-.js +1 -0
  808. package/ui/dist/_app/immutable/chunks/1WXXcBlU.js +90 -0
  809. package/ui/dist/_app/immutable/chunks/BjwH--Q_.js +1 -0
  810. package/ui/dist/_app/immutable/chunks/Bjy-W4x2.js +81 -0
  811. package/ui/dist/_app/immutable/chunks/Bt6Kyh95.js +2 -0
  812. package/ui/dist/_app/immutable/chunks/C3gnuDhG.js +3 -0
  813. package/ui/dist/_app/immutable/chunks/CRzLMJPS.js +1 -0
  814. package/ui/dist/_app/immutable/chunks/DYI4yOrv.js +6 -0
  815. package/ui/dist/_app/immutable/chunks/XKyaHtl9.js +1 -0
  816. package/ui/dist/_app/immutable/entry/app.C3gvpmYY.js +2 -0
  817. package/ui/dist/_app/immutable/entry/payload.DSmR2FwN.js +1 -0
  818. package/ui/dist/_app/immutable/entry/start.BzTqgs51.js +2 -0
  819. package/ui/dist/_app/immutable/nodes/0.BufbmJeT.js +1 -0
  820. package/ui/dist/_app/immutable/nodes/1.Dn_85faQ.js +1 -0
  821. package/ui/dist/_app/immutable/nodes/2.DCLYeX2U.js +8 -0
  822. package/ui/dist/_app/immutable/nodes/3.aoe4R-SX.js +1 -0
  823. package/ui/dist/_app/immutable/nodes/4.B0CiB3ml.js +1 -0
  824. package/ui/dist/_app/immutable/nodes/5.BUrdbysb.js +1 -0
  825. package/ui/dist/_app/immutable/nodes/6.yNbGQqYT.js +1 -0
  826. package/ui/dist/_app/version.json +1 -0
  827. package/ui/dist/apple-touch-icon.png +0 -0
  828. package/ui/dist/favicon-96x96.png +0 -0
  829. package/ui/dist/favicon.ico +0 -0
  830. package/ui/dist/index.html +69 -0
  831. package/components/context.toa.yaml +0 -27
  832. package/components/identity.bans/operations/transit.d.ts +0 -14
  833. package/components/identity.bans/operations/transit.js.map +0 -1
  834. package/components/identity.bans/operations/tsconfig.tsbuildinfo +0 -1
  835. package/components/identity.basic/operations/authenticate.d.ts +0 -13
  836. package/components/identity.basic/operations/authenticate.js.map +0 -1
  837. package/components/identity.basic/operations/incept.d.ts +0 -12
  838. package/components/identity.basic/operations/incept.js.map +0 -1
  839. package/components/identity.basic/operations/transit.d.ts +0 -12
  840. package/components/identity.basic/operations/transit.js.map +0 -1
  841. package/components/identity.basic/operations/tsconfig.tsbuildinfo +0 -1
  842. package/components/identity.basic/operations/types.d.ts +0 -40
  843. package/components/identity.basic/operations/types.js +0 -3
  844. package/components/identity.basic/operations/types.js.map +0 -1
  845. package/components/identity.basic/source/types.ts +0 -44
  846. package/components/identity.federation/operations/authenticate.d.ts +0 -3
  847. package/components/identity.federation/operations/authenticate.js.map +0 -1
  848. package/components/identity.federation/operations/incept.d.ts +0 -11
  849. package/components/identity.federation/operations/incept.js.map +0 -1
  850. package/components/identity.federation/operations/lib/assertions-as-values.d.ts +0 -4
  851. package/components/identity.federation/operations/lib/assertions-as-values.js +0 -45
  852. package/components/identity.federation/operations/lib/assertions-as-values.js.map +0 -1
  853. package/components/identity.federation/operations/lib/jwt.d.ts +0 -19
  854. package/components/identity.federation/operations/lib/jwt.js +0 -136
  855. package/components/identity.federation/operations/lib/jwt.js.map +0 -1
  856. package/components/identity.federation/operations/tsconfig.tsbuildinfo +0 -1
  857. package/components/identity.federation/operations/types/configuration.d.ts +0 -15
  858. package/components/identity.federation/operations/types/configuration.js.map +0 -1
  859. package/components/identity.federation/operations/types/context.d.ts +0 -56
  860. package/components/identity.federation/operations/types/context.js.map +0 -1
  861. package/components/identity.federation/operations/types/entity.d.ts +0 -6
  862. package/components/identity.federation/operations/types/entity.js.map +0 -1
  863. package/components/identity.federation/operations/types/index.d.ts +0 -3
  864. package/components/identity.federation/operations/types/index.js.map +0 -1
  865. package/components/identity.federation/source/lib/assertions-as-values.ts +0 -19
  866. package/components/identity.federation/source/lib/jwt.test.ts +0 -56
  867. package/components/identity.federation/source/lib/jwt.ts +0 -170
  868. package/components/identity.roles/operations/grant.d.ts +0 -10
  869. package/components/identity.roles/operations/grant.js.map +0 -1
  870. package/components/identity.roles/operations/lib/Entity.d.ts +0 -5
  871. package/components/identity.roles/operations/lib/Entity.js.map +0 -1
  872. package/components/identity.roles/operations/list.d.ts +0 -2
  873. package/components/identity.roles/operations/list.js.map +0 -1
  874. package/components/identity.roles/operations/principal.d.ts +0 -13
  875. package/components/identity.roles/operations/principal.js.map +0 -1
  876. package/components/identity.roles/operations/tsconfig.tsbuildinfo +0 -1
  877. package/components/identity.tokens/operations/authenticate.d.ts +0 -9
  878. package/components/identity.tokens/operations/authenticate.js.map +0 -1
  879. package/components/identity.tokens/operations/decrypt.d.ts +0 -3
  880. package/components/identity.tokens/operations/decrypt.js.map +0 -1
  881. package/components/identity.tokens/operations/encrypt.d.ts +0 -8
  882. package/components/identity.tokens/operations/encrypt.js.map +0 -1
  883. package/components/identity.tokens/operations/revoke.d.ts +0 -2
  884. package/components/identity.tokens/operations/revoke.js.map +0 -1
  885. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +0 -1
  886. package/components/identity.tokens/operations/types.d.ts +0 -46
  887. package/components/identity.tokens/operations/types.js +0 -3
  888. package/components/identity.tokens/operations/types.js.map +0 -1
  889. package/components/identity.tokens/source/authenticate.test.ts +0 -63
  890. package/components/identity.tokens/source/decrypt.test.ts +0 -61
  891. package/components/identity.tokens/source/encrypt.test.ts +0 -59
  892. package/components/identity.tokens/source/types.ts +0 -55
  893. package/components/octets.storage/manifest.toa.yaml +0 -21
  894. package/components/octets.storage/operations/delete.js +0 -7
  895. package/components/octets.storage/operations/fetch.js +0 -46
  896. package/components/octets.storage/operations/get.js +0 -7
  897. package/components/octets.storage/operations/list.js +0 -7
  898. package/components/octets.storage/operations/store.js +0 -11
  899. package/cucumber.js +0 -7
  900. package/documentation/.assets/ia3-dark.jpg +0 -0
  901. package/documentation/.assets/ia3-light.jpg +0 -0
  902. package/documentation/.assets/overview-dark.jpg +0 -0
  903. package/documentation/.assets/overview-light.jpg +0 -0
  904. package/documentation/.assets/role-scopes-dark.jpg +0 -0
  905. package/documentation/.assets/role-scopes-light.jpg +0 -0
  906. package/documentation/.assets/rtd-dark.jpg +0 -0
  907. package/documentation/.assets/rtd-light.jpg +0 -0
  908. package/documentation/access.md +0 -266
  909. package/documentation/authorities.md +0 -53
  910. package/documentation/cache.md +0 -49
  911. package/documentation/components.md +0 -331
  912. package/documentation/identity.md +0 -158
  913. package/documentation/io.md +0 -56
  914. package/documentation/notes/sse.md +0 -71
  915. package/documentation/octets.md +0 -261
  916. package/documentation/protocol.md +0 -85
  917. package/documentation/query.md +0 -275
  918. package/documentation/require.md +0 -15
  919. package/documentation/tree.md +0 -183
  920. package/documentation/vary.md +0 -69
  921. package/entity.json +0 -0
  922. package/features/access.feature +0 -476
  923. package/features/annotation.feature +0 -32
  924. package/features/authorities.basic.feature +0 -141
  925. package/features/authorities.feature +0 -32
  926. package/features/authorities.federation.feature +0 -99
  927. package/features/authorities.tokens.feature +0 -118
  928. package/features/body.feature +0 -49
  929. package/features/cache.feature +0 -233
  930. package/features/cors.feature +0 -76
  931. package/features/debug.feature +0 -34
  932. package/features/directives.feature +0 -61
  933. package/features/dynamic.feature +0 -110
  934. package/features/errors.feature +0 -225
  935. package/features/etag.feature +0 -103
  936. package/features/identity.bans.feature +0 -137
  937. package/features/identity.basic.feature +0 -401
  938. package/features/identity.feature +0 -82
  939. package/features/identity.federation.feature +0 -208
  940. package/features/identity.roles.feature +0 -267
  941. package/features/identity.tokens.feature +0 -229
  942. package/features/io.feature +0 -205
  943. package/features/octets.entries.feature +0 -131
  944. package/features/octets.feature +0 -265
  945. package/features/octets.meta.feature +0 -69
  946. package/features/octets.workflows.feature +0 -300
  947. package/features/probes.feature +0 -14
  948. package/features/query.feature +0 -261
  949. package/features/require.feature +0 -67
  950. package/features/response.feature +0 -74
  951. package/features/routes.feature +0 -139
  952. package/features/steps/Captures.ts +0 -6
  953. package/features/steps/Common.ts +0 -10
  954. package/features/steps/Components.ts +0 -55
  955. package/features/steps/Database.ts +0 -65
  956. package/features/steps/Gateway.ts +0 -132
  957. package/features/steps/HTTP.ts +0 -74
  958. package/features/steps/IdP.ts +0 -154
  959. package/features/steps/Parameters.ts +0 -21
  960. package/features/steps/Workspace.ts +0 -41
  961. package/features/steps/components/echo/manifest.toa.yaml +0 -14
  962. package/features/steps/components/echo/operations/affect.js +0 -7
  963. package/features/steps/components/echo/operations/compute.js +0 -7
  964. package/features/steps/components/echo/operations/error.js +0 -11
  965. package/features/steps/components/echo/operations/identity.js +0 -7
  966. package/features/steps/components/greeter/manifest.toa.yaml +0 -6
  967. package/features/steps/components/greeter/operations/greet.js +0 -7
  968. package/features/steps/components/octets.tester/manifest.toa.yaml +0 -19
  969. package/features/steps/components/octets.tester/operations/bar.js +0 -12
  970. package/features/steps/components/octets.tester/operations/baz.js +0 -11
  971. package/features/steps/components/octets.tester/operations/concat.js +0 -7
  972. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  973. package/features/steps/components/octets.tester/operations/echo.js +0 -7
  974. package/features/steps/components/octets.tester/operations/err.js +0 -16
  975. package/features/steps/components/octets.tester/operations/foo.js +0 -7
  976. package/features/steps/components/octets.tester/operations/lenna.png +0 -0
  977. package/features/steps/components/pots/manifest.toa.yaml +0 -29
  978. package/features/steps/components/sequences/manifest.toa.yaml +0 -11
  979. package/features/steps/components/sequences/operations/numbers.js +0 -7
  980. package/features/steps/components/sequences/operations/tokens.js +0 -16
  981. package/features/steps/components/users/manifest.toa.yaml +0 -14
  982. package/features/steps/components/users.properties/manifest.toa.yaml +0 -14
  983. package/features/steps/tsconfig.json +0 -9
  984. package/features/streams.feature +0 -31
  985. package/features/timing.feature +0 -69
  986. package/features/vary.feature +0 -252
  987. package/schemas/annotation.cos.yaml +0 -6
  988. package/schemas/directive.cos.yaml +0 -3
  989. package/schemas/method.cos.yaml +0 -8
  990. package/schemas/node.cos.yaml +0 -5
  991. package/schemas/octets/context.cos.yaml +0 -1
  992. package/schemas/octets/fetch.cos.yaml +0 -3
  993. package/schemas/octets/list.cos.yaml +0 -2
  994. package/schemas/octets/permute.cos.yaml +0 -1
  995. package/schemas/octets/store.cos.yaml +0 -3
  996. package/schemas/query.cos.yaml +0 -17
  997. package/schemas/querystring.cos.yaml +0 -6
  998. package/schemas/range.cos.yaml +0 -2
  999. package/schemas/route.cos.yaml +0 -2
  1000. package/source/Annotation.ts +0 -8
  1001. package/source/Branch.ts +0 -8
  1002. package/source/Composition.ts +0 -57
  1003. package/source/Context.ts +0 -8
  1004. package/source/Directive.test.ts +0 -97
  1005. package/source/Directive.ts +0 -96
  1006. package/source/Endpoint.ts +0 -108
  1007. package/source/Factory.ts +0 -60
  1008. package/source/Gateway.ts +0 -97
  1009. package/source/HTTP/Context.ts +0 -89
  1010. package/source/HTTP/Server.ts +0 -171
  1011. package/source/HTTP/Timing.ts +0 -40
  1012. package/source/HTTP/exceptions.ts +0 -73
  1013. package/source/HTTP/formats/index.ts +0 -22
  1014. package/source/HTTP/formats/json.ts +0 -16
  1015. package/source/HTTP/formats/msgpack.ts +0 -16
  1016. package/source/HTTP/formats/text.ts +0 -12
  1017. package/source/HTTP/formats/yaml.ts +0 -17
  1018. package/source/HTTP/index.ts +0 -4
  1019. package/source/HTTP/messages.test.ts +0 -89
  1020. package/source/HTTP/messages.ts +0 -110
  1021. package/source/Interception.ts +0 -24
  1022. package/source/Mapping.ts +0 -55
  1023. package/source/Query.test.ts +0 -37
  1024. package/source/Query.ts +0 -116
  1025. package/source/RTD/Context.ts +0 -13
  1026. package/source/RTD/Directives.ts +0 -33
  1027. package/source/RTD/Endpoint.ts +0 -13
  1028. package/source/RTD/Match.ts +0 -11
  1029. package/source/RTD/Method.ts +0 -18
  1030. package/source/RTD/Node.ts +0 -84
  1031. package/source/RTD/Route.ts +0 -59
  1032. package/source/RTD/Tree.ts +0 -58
  1033. package/source/RTD/factory.ts +0 -44
  1034. package/source/RTD/index.ts +0 -8
  1035. package/source/RTD/segment.test.ts +0 -32
  1036. package/source/RTD/segment.ts +0 -26
  1037. package/source/RTD/syntax/index.ts +0 -2
  1038. package/source/RTD/syntax/parse.test.ts +0 -188
  1039. package/source/RTD/syntax/parse.ts +0 -154
  1040. package/source/RTD/syntax/types.ts +0 -48
  1041. package/source/Remotes.test.ts +0 -42
  1042. package/source/Remotes.ts +0 -30
  1043. package/source/Tenant.ts +0 -35
  1044. package/source/deployment.ts +0 -64
  1045. package/source/directives/auth/Anonymous.ts +0 -15
  1046. package/source/directives/auth/Authorization.ts +0 -157
  1047. package/source/directives/auth/Delegate.ts +0 -35
  1048. package/source/directives/auth/Echo.ts +0 -12
  1049. package/source/directives/auth/Id.ts +0 -19
  1050. package/source/directives/auth/Incept.ts +0 -48
  1051. package/source/directives/auth/Role.test.ts +0 -109
  1052. package/source/directives/auth/Role.ts +0 -66
  1053. package/source/directives/auth/Rule.ts +0 -28
  1054. package/source/directives/auth/Scheme.ts +0 -26
  1055. package/source/directives/auth/index.ts +0 -3
  1056. package/source/directives/auth/schemes.ts +0 -9
  1057. package/source/directives/auth/split.ts +0 -15
  1058. package/source/directives/auth/types.ts +0 -40
  1059. package/source/directives/cache/Cache.ts +0 -35
  1060. package/source/directives/cache/Control.ts +0 -85
  1061. package/source/directives/cache/Exact.ts +0 -7
  1062. package/source/directives/cache/index.ts +0 -3
  1063. package/source/directives/cache/types.ts +0 -9
  1064. package/source/directives/cors/CORS.ts +0 -62
  1065. package/source/directives/cors/index.ts +0 -3
  1066. package/source/directives/dev/Development.ts +0 -35
  1067. package/source/directives/dev/Stub.ts +0 -14
  1068. package/source/directives/dev/Throw.ts +0 -14
  1069. package/source/directives/dev/index.ts +0 -3
  1070. package/source/directives/dev/types.ts +0 -5
  1071. package/source/directives/index.ts +0 -13
  1072. package/source/directives/io/Directive.ts +0 -11
  1073. package/source/directives/io/IO.ts +0 -43
  1074. package/source/directives/io/Input.ts +0 -50
  1075. package/source/directives/io/Message.ts +0 -1
  1076. package/source/directives/io/Output.ts +0 -69
  1077. package/source/directives/io/index.ts +0 -3
  1078. package/source/directives/io/schemas.ts +0 -12
  1079. package/source/directives/octets/Context.ts +0 -19
  1080. package/source/directives/octets/Delete.ts +0 -85
  1081. package/source/directives/octets/Directive.ts +0 -10
  1082. package/source/directives/octets/Fetch.ts +0 -100
  1083. package/source/directives/octets/List.ts +0 -72
  1084. package/source/directives/octets/Octets.ts +0 -71
  1085. package/source/directives/octets/Store.ts +0 -126
  1086. package/source/directives/octets/Workflow.ts +0 -48
  1087. package/source/directives/octets/index.ts +0 -3
  1088. package/source/directives/octets/schemas.test.ts +0 -21
  1089. package/source/directives/octets/schemas.ts +0 -19
  1090. package/source/directives/octets/types.ts +0 -7
  1091. package/source/directives/octets/workflows/Execution.ts +0 -76
  1092. package/source/directives/octets/workflows/Workflow.ts +0 -37
  1093. package/source/directives/octets/workflows/index.ts +0 -1
  1094. package/source/directives/require/Directive.ts +0 -5
  1095. package/source/directives/require/Headers.ts +0 -20
  1096. package/source/directives/require/Require.ts +0 -28
  1097. package/source/directives/require/index.ts +0 -3
  1098. package/source/directives/vary/Directive.ts +0 -7
  1099. package/source/directives/vary/Embed.ts +0 -68
  1100. package/source/directives/vary/Properties.ts +0 -17
  1101. package/source/directives/vary/Vary.ts +0 -50
  1102. package/source/directives/vary/embeddings/Authority.ts +0 -8
  1103. package/source/directives/vary/embeddings/Embedding.ts +0 -7
  1104. package/source/directives/vary/embeddings/Header.ts +0 -32
  1105. package/source/directives/vary/embeddings/Language.ts +0 -31
  1106. package/source/directives/vary/embeddings/Parameter.ts +0 -14
  1107. package/source/directives/vary/embeddings/index.ts +0 -13
  1108. package/source/directives/vary/index.ts +0 -3
  1109. package/source/discovery.ts +0 -1
  1110. package/source/exceptions.ts +0 -28
  1111. package/source/index.test.ts +0 -9
  1112. package/source/index.ts +0 -6
  1113. package/source/io.ts +0 -4
  1114. package/source/manifest.test.ts +0 -51
  1115. package/source/manifest.ts +0 -51
  1116. package/source/root.ts +0 -43
  1117. package/source/schemas.ts +0 -13
  1118. package/transpiled/Annotation.d.ts +0 -8
  1119. package/transpiled/Annotation.js +0 -3
  1120. package/transpiled/Annotation.js.map +0 -1
  1121. package/transpiled/RTD/syntax/parse.d.ts +0 -4
  1122. package/transpiled/RTD/syntax/parse.js +0 -128
  1123. package/transpiled/RTD/syntax/parse.js.map +0 -1
  1124. package/transpiled/RTD/syntax/types.d.ts +0 -41
  1125. package/transpiled/RTD/syntax/types.js +0 -5
  1126. package/transpiled/RTD/syntax/types.js.map +0 -1
  1127. package/transpiled/deployment.d.ts +0 -3
  1128. package/transpiled/deployment.js +0 -79
  1129. package/transpiled/deployment.js.map +0 -1
  1130. package/transpiled/directives/octets/Fetch.d.ts +0 -18
  1131. package/transpiled/directives/octets/Fetch.js +0 -92
  1132. package/transpiled/directives/octets/Fetch.js.map +0 -1
  1133. package/transpiled/directives/octets/List.d.ts +0 -16
  1134. package/transpiled/directives/octets/List.js +0 -74
  1135. package/transpiled/directives/octets/List.js.map +0 -1
  1136. package/transpiled/directives/octets/Store.d.ts +0 -24
  1137. package/transpiled/directives/octets/Store.js +0 -95
  1138. package/transpiled/directives/octets/Store.js.map +0 -1
  1139. package/transpiled/directives/vary/Directive.d.ts +0 -6
  1140. package/transpiled/directives/vary/Directive.js +0 -3
  1141. package/transpiled/directives/vary/Directive.js.map +0 -1
  1142. package/transpiled/directives/vary/Embed.d.ts +0 -11
  1143. package/transpiled/directives/vary/Embed.js +0 -51
  1144. package/transpiled/directives/vary/Embed.js.map +0 -1
  1145. package/transpiled/directives/vary/Properties.d.ts +0 -9
  1146. package/transpiled/directives/vary/Properties.js +0 -16
  1147. package/transpiled/directives/vary/Properties.js.map +0 -1
  1148. package/transpiled/directives/vary/Vary.d.ts +0 -10
  1149. package/transpiled/directives/vary/Vary.js +0 -36
  1150. package/transpiled/directives/vary/Vary.js.map +0 -1
  1151. package/transpiled/directives/vary/embeddings/Authority.d.ts +0 -5
  1152. package/transpiled/directives/vary/embeddings/Authority.js +0 -10
  1153. package/transpiled/directives/vary/embeddings/Authority.js.map +0 -1
  1154. package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -6
  1155. package/transpiled/directives/vary/embeddings/Embedding.js +0 -3
  1156. package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
  1157. package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
  1158. package/transpiled/directives/vary/embeddings/Header.js +0 -28
  1159. package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
  1160. package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
  1161. package/transpiled/directives/vary/embeddings/Language.js +0 -28
  1162. package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
  1163. package/transpiled/directives/vary/embeddings/Parameter.d.ts +0 -7
  1164. package/transpiled/directives/vary/embeddings/Parameter.js +0 -14
  1165. package/transpiled/directives/vary/embeddings/Parameter.js.map +0 -1
  1166. package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
  1167. package/transpiled/directives/vary/embeddings/index.js +0 -14
  1168. package/transpiled/directives/vary/embeddings/index.js.map +0 -1
  1169. package/transpiled/directives/vary/index.d.ts +0 -2
  1170. package/transpiled/directives/vary/index.js +0 -6
  1171. package/transpiled/directives/vary/index.js.map +0 -1
  1172. package/transpiled/manifest.d.ts +0 -3
  1173. package/transpiled/manifest.js +0 -66
  1174. package/transpiled/manifest.js.map +0 -1
  1175. package/transpiled/schemas.d.ts +0 -7
  1176. package/transpiled/schemas.js +0 -14
  1177. package/transpiled/schemas.js.map +0 -1
  1178. package/transpiled/tsconfig.tsbuildinfo +0 -1
  1179. package/tsconfig.json +0 -12
@@ -0,0 +1,177 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { Readable } from 'node:stream';
4
+ import { console } from 'openspan';
5
+ import * as http from '../HTTP/index.js';
6
+ import { DISCOVERY } from '@toa.io/definitions/extensions.exposition';
7
+ /**
8
+ * The page that reads the tree: the directory `ui` builds, and nothing else.
9
+ *
10
+ * An interceptor rather than an endpoint, for the reason the OAuth documents are one — it
11
+ * runs before a credential is resolved. A page is public, and one served after `auth` would
12
+ * refuse the client holding a stale token, who is the client most likely to have opened it.
13
+ * It is also what keeps `depart` off these replies: a re-issued credential sets `no-store`,
14
+ * which would take the build hash off every asset that carries one.
15
+ *
16
+ * It claims the whole prefix, so that nothing under it reaches the router — a crawler
17
+ * asking for assets that are not there would otherwise have every one of them counted as a
18
+ * route that has gone missing, and ping discovery about it.
19
+ *
20
+ * `OPTIONS` on the prefix itself is the exception it lets through: the tree is what answers
21
+ * there, and that needs the identity this stage does not have yet.
22
+ */
23
+ export class Site {
24
+ name = 'discovery';
25
+ /** What a test points at a fixture; the build otherwise. */
26
+ override;
27
+ root;
28
+ /** Hosts MCP is served at the root of, where this page is not served. */
29
+ roots = new Set();
30
+ constructor(root) {
31
+ this.override = root;
32
+ this.root = root ?? site();
33
+ }
34
+ /**
35
+ * Resolved here rather than at construction because this is a module singleton, built
36
+ * when the module loads and before anything has said where the page is. Said once, too,
37
+ * because a page that is not built is otherwise a `503` per request and nothing else.
38
+ */
39
+ mount(options) {
40
+ this.root = this.override ?? site();
41
+ this.roots = new Set(Object.values(options.mcp?.hosts ?? {}).map((host) => host.toLowerCase()));
42
+ if (!isFile(path.join(this.root, 'index.html')))
43
+ console.warn('Discovery UI is not built', { root: this.root });
44
+ }
45
+ intercept(input) {
46
+ const { pathname } = input.url;
47
+ if (pathname !== DISCOVERY && !pathname.startsWith(DISCOVERY + '/'))
48
+ return null;
49
+ // the gateway answers for such a host, and what it answers there is `404`
50
+ if (this.roots.has(input.url.host))
51
+ return null;
52
+ // the prefix itself, as opposed to something under it
53
+ const bare = pathname === DISCOVERY || pathname === DISCOVERY + '/';
54
+ const method = input.request.method;
55
+ if (method !== 'GET' && method !== 'HEAD') {
56
+ // the tree answers here, and it needs the identity this stage does not have yet
57
+ if (bare && method === 'OPTIONS')
58
+ return null;
59
+ throw new http.MethodNotAllowed(new Headers({ allow: bare ? 'GET, HEAD, OPTIONS' : 'GET, HEAD' }));
60
+ }
61
+ // the page is a directory, and every asset it names is relative to it
62
+ if (pathname === DISCOVERY)
63
+ return {
64
+ status: 302,
65
+ headers: new Headers({ location: DISCOVERY + '/' + input.url.search })
66
+ };
67
+ const file = this.resolve(pathname);
68
+ if (file === null)
69
+ throw new http.NotFound();
70
+ return this.send(file, method);
71
+ }
72
+ /**
73
+ * The file a request lands on, or `null` when nothing does. A path that exists is served
74
+ * as it is; anything else that could be a route falls back to the page, because the
75
+ * client router — not this server — knows what routes there are.
76
+ */
77
+ resolve(pathname) {
78
+ /*
79
+ * Decoded after the prefix is off, so that an encoded separator cannot smuggle a
80
+ * segment past the test that put us here. A dot segment never arrives — `..` and
81
+ * `%2e%2e` alike are collapsed while the URL is parsed — but `%2f` survives that and
82
+ * decodes to a separator here, which is what the guard below is for.
83
+ */
84
+ const relative = decode(pathname.slice(DISCOVERY.length));
85
+ if (relative === null || relative.includes('\0'))
86
+ return null;
87
+ const file = path.join(this.root, relative);
88
+ if (file !== this.root && !file.startsWith(this.root + path.sep))
89
+ return null;
90
+ if (isFile(file))
91
+ return file;
92
+ /*
93
+ * A missing asset is missing, but a route can look like one. What this server would
94
+ * have served is what it knows how to serve, so anything else is a route and falls
95
+ * back to the page — as does anything ending in a slash, which is no name for a file.
96
+ */
97
+ const asset = !relative.endsWith('/') && path.extname(relative) in TYPES;
98
+ return asset ? null : path.join(this.root, 'index.html');
99
+ }
100
+ /**
101
+ * Always with a `content-type` of its own: a stream without one is framed as
102
+ * `multipart/*` and the page arrives as an envelope of JSON-encoded buffers.
103
+ */
104
+ send(file, method) {
105
+ const stats = fs.statSync(file, { throwIfNoEntry: false });
106
+ if (stats === undefined)
107
+ return {
108
+ status: 503,
109
+ headers: new Headers({ 'content-type': 'text/plain; charset=utf-8' }),
110
+ body: Readable.from([Buffer.from(NOT_BUILT)])
111
+ };
112
+ const headers = new Headers({
113
+ 'content-type': TYPES[path.extname(file)] ?? 'application/octet-stream',
114
+ 'content-length': String(stats.size),
115
+ 'cache-control': caching(path.relative(this.root, file))
116
+ });
117
+ // a HEAD reply carries no body but reports the length a GET would have returned; the
118
+ // HTTP/2 layer does not drop one written to it, so none is opened
119
+ if (method === 'HEAD')
120
+ return { status: 200, headers };
121
+ return { status: 200, headers, body: fs.createReadStream(file) };
122
+ }
123
+ }
124
+ const NOT_BUILT = 'The discovery UI is not built. Run `npm run build:ui`.\n';
125
+ function decode(pathname) {
126
+ try {
127
+ return decodeURIComponent(pathname);
128
+ }
129
+ catch {
130
+ return null;
131
+ }
132
+ }
133
+ function isFile(file) {
134
+ return fs.statSync(file, { throwIfNoEntry: false })?.isFile() === true;
135
+ }
136
+ /**
137
+ * Where `npm run build:ui` puts the page. Two levels up because this module is a directory
138
+ * deeper than `source` itself, and `transpiled` mirrors that — so it resolves the same from
139
+ * either. The variable is the features', which run against a fixture rather than a build.
140
+ */
141
+ function site() {
142
+ return (process.env.__TESTING_EXPOSITION_DISCOVERY_ROOT ??
143
+ path.resolve(import.meta.dirname, '..', '..', 'ui', 'dist'));
144
+ }
145
+ /** Assets under this prefix carry their build hash in the name. */
146
+ const IMMUTABLE = path.join('_app', 'immutable');
147
+ const FOREVER = 'public, max-age=31536000, immutable';
148
+ /** The icons: named without a hash, so they are re-read, but rarely. */
149
+ const ICONS = new Set(['favicon.ico', 'favicon-96x96.png', 'apple-touch-icon.png']);
150
+ const DAY = 'public, max-age=86400';
151
+ /**
152
+ * How long what is served may be held. The page is never cached — it names the assets, and
153
+ * their names carry the build. An icon is named for what it is rather than for its content,
154
+ * so it is asked about again, but not on every page load.
155
+ */
156
+ function caching(relative) {
157
+ if (relative.startsWith(IMMUTABLE))
158
+ return FOREVER;
159
+ return ICONS.has(relative) ? DAY : 'no-cache';
160
+ }
161
+ const TYPES = {
162
+ '.css': 'text/css; charset=utf-8',
163
+ '.html': 'text/html; charset=utf-8',
164
+ '.ico': 'image/x-icon',
165
+ '.jpg': 'image/jpeg',
166
+ '.js': 'text/javascript; charset=utf-8',
167
+ '.json': 'application/json; charset=utf-8',
168
+ '.map': 'application/json; charset=utf-8',
169
+ '.png': 'image/png',
170
+ '.svg': 'image/svg+xml',
171
+ '.txt': 'text/plain; charset=utf-8',
172
+ '.webmanifest': 'application/manifest+json',
173
+ '.webp': 'image/webp',
174
+ '.woff': 'font/woff',
175
+ '.woff2': 'font/woff2'
176
+ };
177
+ //# sourceMappingURL=Site.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Site.js","sourceRoot":"","sources":["../../source/Discovery/Site.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { Explorer } from './Explorer.ts';
2
+ export { Site } from './Site.ts';
3
+ export { looking } from './trunk.ts';
@@ -0,0 +1,4 @@
1
+ export { Explorer } from './Explorer.js';
2
+ export { Site } from './Site.js';
3
+ export { looking } from './trunk.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/Discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { type Described } from '../directives/help/index.ts';
2
+ import type * as http from '../HTTP/index.ts';
3
+ import type { Tree } from '../RTD/index.ts';
4
+ /**
5
+ * Every route in the tree this caller may reach, keyed by the template it answers at, and
6
+ * each described exactly as `OPTIONS` on that path describes it — so a key can be taken
7
+ * from the answer and sent back as a request.
8
+ *
9
+ * A route a name cannot spell is here, unlike at `/.rpc` and `/.mcp`: HTTP addresses a
10
+ * route by its path, so leaving one out would make this disagree with the router. A
11
+ * resource no method of which this caller may reach is not here at all — `OPTIONS` answers
12
+ * `403` to one, and an empty entry would still say it exists.
13
+ *
14
+ * Sorted, because a branch is merged whenever its tenant answers and two replicas would
15
+ * otherwise order the same tree differently. Verbs keep the order they were declared in,
16
+ * which is the order `OPTIONS` answers them in.
17
+ */
18
+ export declare function describe(tree: Tree, request: http.Context): Promise<Discovered>;
19
+ /** What the tree answers. An object, so that what is said of the whole of it has somewhere to go. */
20
+ export interface Discovered {
21
+ routes: Record<string, Resource>;
22
+ /** Where MCP is served for the authority asked, where that is a host of its own. */
23
+ mcp?: string;
24
+ }
25
+ /** What one resource is, and what it serves; a verb is upper case, and nothing else here is. */
26
+ export interface Resource extends Described {
27
+ [verb: string]: unknown;
28
+ }
@@ -0,0 +1,50 @@
1
+ import { describing } from '../Introspection.js';
2
+ import { template } from '../RPC/names.js';
3
+ import { variables } from '../RTD/segment.js';
4
+ import { guarded, resource } from '../directives/help/index.js';
5
+ /**
6
+ * Every route in the tree this caller may reach, keyed by the template it answers at, and
7
+ * each described exactly as `OPTIONS` on that path describes it — so a key can be taken
8
+ * from the answer and sent back as a request.
9
+ *
10
+ * A route a name cannot spell is here, unlike at `/.rpc` and `/.mcp`: HTTP addresses a
11
+ * route by its path, so leaving one out would make this disagree with the router. A
12
+ * resource no method of which this caller may reach is not here at all — `OPTIONS` answers
13
+ * `403` to one, and an empty entry would still say it exists.
14
+ *
15
+ * Sorted, because a branch is merged whenever its tenant answers and two replicas would
16
+ * otherwise order the same tree differently. Verbs keep the order they were declared in,
17
+ * which is the order `OPTIONS` answers them in.
18
+ */
19
+ export async function describe(tree, request) {
20
+ const context = describing(request);
21
+ const routes = new Map();
22
+ /*
23
+ * Sequentially: there is no I/O to overlap — an endpoint's own description is read once
24
+ * and memoized — so awaiting the whole tree at once would only allocate every clone of
25
+ * it at the same moment.
26
+ */
27
+ for (const { segments, verb, method } of tree.walk()) {
28
+ const introspection = await method.explain(context, variables(segments));
29
+ if (introspection === null)
30
+ continue;
31
+ const route = template(segments);
32
+ let mounted = routes.get(route);
33
+ if (mounted === undefined) {
34
+ mounted = { described: resource(method.directives), methods: {} };
35
+ routes.set(route, mounted);
36
+ }
37
+ // two declarations can walk to one template — `/a/b` and `/a: { /b: }` — and the walk
38
+ // is in the order `match` tries them, so the first is the one a request would reach
39
+ mounted.methods[verb] ??= introspection;
40
+ }
41
+ const described = {};
42
+ for (const route of Array.from(routes.keys()).sort()) {
43
+ const { described: stated, methods } = routes.get(route);
44
+ // what the resource is, beside the methods it serves; a verb is upper case and cannot
45
+ // collide with either key
46
+ described[route] = { ...stated, ...guarded(methods), ...methods };
47
+ }
48
+ return { routes: described };
49
+ }
50
+ //# sourceMappingURL=tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../source/Discovery/tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,6BAA6B,CAAA;AAK/E;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,OAAqB;IAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAA;IAEzC;;;;OAIG;IACH,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;QAExE,IAAI,aAAa,KAAK,IAAI;YAAE,SAAQ;QAEpC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAChC,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAE/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;YACjE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC5B,CAAC;QAED,sFAAsF;QACtF,oFAAoF;QACpF,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,aAAa,CAAA;IACzC,CAAC;IAED,MAAM,SAAS,GAA6B,EAAE,CAAA;IAE9C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACrD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAA;QAEzD,sFAAsF;QACtF,0BAA0B;QAC1B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,CAAA;IACnE,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAC9B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Context, OutgoingMessage } from '../HTTP/index.ts';
2
+ /**
3
+ * Where a browser that asked for the trunk is sent. An application serves what it declares,
4
+ * and `/` is usually not one of those — a person who typed the address into a browser is
5
+ * looking for something to look at, and the page is the only thing here that is one.
6
+ *
7
+ * A client that asked for something in particular gets what it asked for: only an `accept`
8
+ * that prefers a page, or one that names no preference at all, is sent here. The second is
9
+ * what an unfurler sends — several ask for anything, and a link to an application would
10
+ * otherwise show nothing — and what `curl` sends, which the page serves no worse than the
11
+ * `405` it used to get.
12
+ */
13
+ export declare function looking(context: Context): OutgoingMessage | null;
@@ -0,0 +1,29 @@
1
+ import Negotiator from 'negotiator';
2
+ import { types } from '../HTTP/formats/index.js';
3
+ import { DISCOVERY } from '@toa.io/definitions/extensions.exposition';
4
+ /** What a browser asks for, and what nothing else here answers with. */
5
+ const HTML = 'text/html';
6
+ /**
7
+ * Where a browser that asked for the trunk is sent. An application serves what it declares,
8
+ * and `/` is usually not one of those — a person who typed the address into a browser is
9
+ * looking for something to look at, and the page is the only thing here that is one.
10
+ *
11
+ * A client that asked for something in particular gets what it asked for: only an `accept`
12
+ * that prefers a page, or one that names no preference at all, is sent here. The second is
13
+ * what an unfurler sends — several ask for anything, and a link to an application would
14
+ * otherwise show nothing — and what `curl` sends, which the page serves no worse than the
15
+ * `405` it used to get.
16
+ */
17
+ export function looking(context) {
18
+ if (context.request.method !== 'GET' || context.procedural)
19
+ return null;
20
+ const accept = context.request.headers.accept;
21
+ if (accept !== undefined && accept.trim() !== ANYTHING) {
22
+ if (new Negotiator(context.request).mediaType([...types, HTML]) !== HTML)
23
+ return null;
24
+ }
25
+ return { status: 302, headers: new Headers({ location: DISCOVERY + '/' }) };
26
+ }
27
+ /** An `accept` that names nothing, which is the same as naming none. */
28
+ const ANYTHING = '*/*';
29
+ //# sourceMappingURL=trunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trunk.js","sourceRoot":"","sources":["../../source/Discovery/trunk.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAA;AAGrE,wEAAwE;AACxE,MAAM,IAAI,GAAG,WAAW,CAAA;AAExB;;;;;;;;;;GAUG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB;IACtC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAEvE,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;IAE7C,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QACvD,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;IACvF,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,SAAS,GAAG,GAAG,EAAE,CAAC,EAAE,CAAA;AAC7E,CAAC;AAED,wEAAwE;AACxE,MAAM,QAAQ,GAAG,KAAK,CAAA"}
@@ -1,16 +1,30 @@
1
- import { type Component } from '@toa.io/core';
2
- import { type Remotes } from './Remotes';
3
- import { Mapping } from './Mapping';
4
- import { type Context } from './Context';
5
- import * as http from './HTTP';
6
- import type * as RTD from './RTD';
1
+ import { Mapping } from './Mapping.ts';
2
+ import * as http from './HTTP/index.ts';
3
+ import type { Introspection, Schema } from './Introspection.ts';
4
+ import type { Remote } from '@toa.io/core';
5
+ import type { Remotes } from './Remotes.ts';
6
+ import type { Context } from './Context.ts';
7
+ import type * as RTD from './RTD/index.ts';
7
8
  export declare class Endpoint implements RTD.Endpoint {
8
9
  private readonly endpoint;
9
10
  private readonly mapping;
10
11
  private readonly discovery;
11
12
  private remote;
12
- constructor(endpoint: string, mapping: Mapping, discovery: Promise<Component>);
13
- call(context: http.Context, parameters: RTD.Parameter[]): Promise<http.OutgoingMessage>;
13
+ /** Whether the method this serves is a safe one, which `io:readonly` overrides per request. */
14
+ private readonly safe;
15
+ /** What the operation says, with what the route takes already split out of it. */
16
+ private introspection;
17
+ constructor(endpoint: string, mapping: Mapping, discovery: Promise<Remote>, safe?: boolean);
18
+ call(context: http.Context & Authenticated, parameters: RTD.Parameter[]): Promise<http.OutgoingMessage>;
19
+ selection(): Record<string, Schema> | null;
20
+ explain(parameters: RTD.Parameter[]): Promise<Introspection>;
21
+ /**
22
+ * `Remote.explain` answers the contract's own object, whose `input` is the manifest's by
23
+ * reference. What follows takes properties out of it, and two routes mounting one endpoint
24
+ * share one remote — so the copy is what keeps the second from describing what the first
25
+ * took away.
26
+ */
27
+ private introspect;
14
28
  close(): Promise<void>;
15
29
  private query;
16
30
  private version;
@@ -20,3 +34,13 @@ export declare class EndpointsFactory implements RTD.EndpointsFactory {
20
34
  constructor(remotes: Remotes);
21
35
  create(method: RTD.syntax.Method, context: Context): Endpoint;
22
36
  }
37
+ /**
38
+ * What the auth family leaves on the context, as much of it as this reads. Declared here rather
39
+ * than imported, the way `cache` declares its own: the property is that family's.
40
+ */
41
+ interface Authenticated {
42
+ identity?: {
43
+ id: string;
44
+ } | null;
45
+ }
46
+ export {};
@@ -1,103 +1,179 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.EndpointsFactory = exports.Endpoint = void 0;
27
- const Mapping_1 = require("./Mapping");
28
- const http = __importStar(require("./HTTP"));
29
- class Endpoint {
1
+ import { Readable } from 'node:stream';
2
+ import { entities } from '@toa.io/core';
3
+ import { Mapping } from './Mapping.js';
4
+ import { take } from './Introspection.js';
5
+ import { parse } from './directives/cache/etag.js';
6
+ import * as http from './HTTP/index.js';
7
+ /** What a reply may travel as bytes in, which is the one format a component encodes. */
8
+ const JSON_TYPE = 'application/json';
9
+ export class Endpoint {
30
10
  endpoint;
31
11
  mapping;
32
12
  discovery;
33
13
  remote = null;
34
- constructor(endpoint, mapping, discovery) {
14
+ /** Whether the method this serves is a safe one, which `io:readonly` overrides per request. */
15
+ safe;
16
+ /** What the operation says, with what the route takes already split out of it. */
17
+ introspection = null;
18
+ // eslint-disable-next-line max-params
19
+ constructor(endpoint, mapping, discovery, safe = false) {
35
20
  this.endpoint = endpoint;
36
21
  this.mapping = mapping;
37
22
  this.discovery = discovery;
23
+ this.safe = safe;
38
24
  }
39
25
  async call(context, parameters) {
40
26
  const body = await context.body();
41
27
  const query = this.query(context);
42
28
  const request = this.mapping.fit(body, query, parameters);
29
+ // a header sent twice is an ambiguity, not a key; the client repeats one value or none
30
+ const key = context.request.headers[IDEMPOTENCY_KEY];
31
+ if (typeof key === 'string' && key !== '')
32
+ request.id = identity(context, key);
33
+ // the process a stateful operation is called on, where the route carries one
34
+ if (context.instance !== undefined)
35
+ request.instance = context.instance;
36
+ // what this request receives of the output, which the operation answers of it
37
+ if (context.output !== undefined)
38
+ request.output = context.output;
39
+ /*
40
+ * Bytes to write on rather than values to read: the response is JSON, nothing on the way out
41
+ * reads the body, and this is a request to a resource rather than a procedure of one, whose
42
+ * reply is wrapped in an envelope of its own.
43
+ */
44
+ if (context.encoder?.type === JSON_TYPE &&
45
+ context.reads !== true &&
46
+ !context.procedural)
47
+ request.encoded = true;
48
+ // what the method means, unless a route said otherwise; see `documentation/readonly.md`
49
+ if (context.readonly ?? this.safe)
50
+ request.readonly = true;
43
51
  this.remote ??= await this.discovery;
44
52
  const reply = await this.remote.invoke(this.endpoint, request);
45
- if (context.debug)
46
- console.debug('Call', `${this.remote.locator.id}.${this.endpoint}`, request);
53
+ // a body that outgrew what the route takes was cut, whatever the operation made of that
54
+ if (context.exceeded === true)
55
+ throw new http.RequestEntityTooLarge();
47
56
  if (reply instanceof Error)
48
57
  throw new http.UnprocessableEntity(reply);
49
- const message = {};
50
- if (typeof reply === 'object' && reply !== null && '_version' in reply) {
51
- const etag = context.request.headers['if-none-match'];
52
- message.headers ??= new Headers();
53
- if (etag !== undefined && reply._version === this.version(etag)) {
54
- message.status = 304;
55
- message.headers.set('etag', etag);
56
- return message;
57
- }
58
- else
59
- message.headers.set('etag', `"${reply._version.toString()}"`);
58
+ if (context.answers === undefined)
59
+ return { body: reply };
60
+ // a route that states what it produces answers bytes, and a value is not one of those
61
+ if (!(reply instanceof Readable) || reply.readableObjectMode)
62
+ throw new http.UnprocessableEntity();
63
+ return { body: reply, headers: new Headers({ 'content-type': context.answers }) };
64
+ }
65
+ selection() {
66
+ return this.mapping.selection();
67
+ }
68
+ async explain(parameters) {
69
+ this.introspection ??= await this.introspect(parameters);
70
+ // what a directive narrows is this caller's answer, not the next caller's
71
+ return structuredClone(this.introspection);
72
+ }
73
+ /**
74
+ * `Remote.explain` answers the contract's own object, whose `input` is the manifest's by
75
+ * reference. What follows takes properties out of it, and two routes mounting one endpoint
76
+ * share one remote — so the copy is what keeps the second from describing what the first
77
+ * took away.
78
+ */
79
+ async introspect(parameters) {
80
+ this.remote ??= await this.discovery;
81
+ const operation = structuredClone(await this.remote.explain(this.endpoint));
82
+ // what the operation states it is, is the Introspection's to read and not a resource's:
83
+ // an operation is written without knowledge of any route, and the same one mounted twice
84
+ // is two methods. What a method states is what its route states, which `mcp:tool` gives.
85
+ delete operation.description;
86
+ let route = null;
87
+ // a variable the operation names is taken by the path, so it is not the body's to send
88
+ for (const parameter of parameters) {
89
+ const schema = take(operation, parameter.name);
90
+ if (schema === undefined)
91
+ continue;
92
+ route ??= {};
93
+ route[parameter.name] = schema;
60
94
  }
61
- message.body = reply;
62
- return message;
95
+ const query = this.mapping.explain(operation);
96
+ const selection = this.mapping.selection();
97
+ const introspection = {};
98
+ if (route !== null)
99
+ introspection.route = route;
100
+ if (query !== null)
101
+ introspection.query = query;
102
+ if (selection !== null)
103
+ introspection.selection = selection;
104
+ Object.assign(introspection, operation);
105
+ return introspection;
63
106
  }
64
107
  async close() {
65
108
  this.remote ??= await this.discovery;
66
109
  await this.remote.disconnect(INTERRUPT);
67
110
  }
68
111
  query(context) {
69
- const query = Object.fromEntries(context.url.searchParams);
112
+ // a URL without a query builds no parameters to read nothing out of
113
+ const query = context.url.search === '' ? {} : Object.fromEntries(context.url.searchParams);
70
114
  const etag = context.request.headers['if-match'];
71
- if (etag !== undefined)
115
+ if (etag !== undefined && this.mapping.queryable)
72
116
  query.version = this.version(etag);
73
117
  return query;
74
118
  }
75
119
  version(etag) {
76
- const match = etag.match(ETAG);
77
- if (match === null)
78
- throw new http.BadRequest('Invalid ETag.');
79
- return Number.parseInt(match.groups.version);
120
+ const version = parse(etag);
121
+ if (version === null)
122
+ throw new http.BadRequest('Invalid ETag');
123
+ return version;
80
124
  }
81
125
  }
82
- exports.Endpoint = Endpoint;
83
- class EndpointsFactory {
126
+ export class EndpointsFactory {
84
127
  remotes;
85
128
  constructor(remotes) {
86
129
  this.remotes = remotes;
87
130
  }
88
131
  create(method, context) {
89
132
  if (method.mapping === undefined)
90
- throw new Error('Cannot create Endpoint without mapping.');
91
- const mapping = Mapping_1.Mapping.create(method.mapping.query);
92
- const namespace = method.mapping.namespace ?? context.extension?.namespace;
93
- const component = method.mapping.component ?? context.extension?.component;
133
+ throw new Error('Cannot create Endpoint without mapping');
134
+ const mapping = Mapping.create(method.mapping.query, method.mapping.paged, method.mapping.streamed);
135
+ const branch = context.extension;
136
+ const namespace = method.mapping.namespace ?? branch?.namespace;
137
+ const component = method.mapping.component ?? branch?.component;
94
138
  if (namespace === undefined || component === undefined)
95
- throw new Error('Annotation endpoints must be fully qualified.');
96
- const discovery = this.remotes.discover(namespace, component);
97
- return new Endpoint(method.mapping.endpoint, mapping, discovery);
139
+ throw new Error('Annotation endpoints must be fully qualified');
140
+ const discovery = this.remotes.discover(namespace, component, branch?.contract);
141
+ return new Endpoint(method.mapping.endpoint, mapping, discovery, SAFE.has(method.verb));
98
142
  }
99
143
  }
100
- exports.EndpointsFactory = EndpointsFactory;
101
- const ETAG = /^"(?<version>\d{1,32})"$/;
144
+ /**
145
+ * The methods that only read, as RFC 9110 defines safe ones. `OPTIONS` is not among them because it
146
+ * reaches no endpoint, and `TRACE` because the server answers it `501`.
147
+ */
148
+ const SAFE = new Set(['GET', 'HEAD']);
102
149
  const INTERRUPT = true;
150
+ /**
151
+ * What a client's idempotency key names, as an identity the runtime can hold: it is what the
152
+ * operation records the call under, so a retry under the same key is the same call.
153
+ *
154
+ * Four things, and each of them earns its place. The **principal**, because two clients that
155
+ * both pick `1` would otherwise be answered with each other's replies — and worse, either could
156
+ * suppress the other's write by getting there first. The **key** itself, which is what the
157
+ * client repeats. The **method** and the **path**, because one key sent to two routes is two
158
+ * calls: the path carries the record the call is about, so a key reused across orders does not
159
+ * collapse them into one.
160
+ *
161
+ * Not the payload. A client that sends one key with two different bodies is answered with what
162
+ * the first one answered, which is what an idempotency key means; telling them off for it costs
163
+ * a stored fingerprint and buys a diagnostic.
164
+ *
165
+ * Hashed rather than taken as it is, so that a key is opaque input: a client cannot name an
166
+ * identity the runtime would have minted, and cannot reach one another client's key derives.
167
+ */
168
+ function identity(context, key) {
169
+ return entities.derive(context.identity?.id ?? ANONYMOUS, key, context.request.method, context.url.pathname);
170
+ }
171
+ /**
172
+ * A route nothing authenticates has no principal to scope a key by, so every client of one
173
+ * shares a namespace. Keys are still honoured there — the alternative is refusing a header the
174
+ * client is entitled to send — and what it costs is that two anonymous clients picking one key
175
+ * on one path collide. Anonymous routes that change state are the case to watch.
176
+ */
177
+ const ANONYMOUS = '';
178
+ const IDEMPOTENCY_KEY = 'idempotency-key';
103
179
  //# sourceMappingURL=Endpoint.js.map