@toa.io/extensions.exposition 1.0.0-alpha.30 → 1.0.0-alpha.301

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 (1119) 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 +140 -0
  6. package/components/exposition.octets/package.json +10 -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 +2 -6
  11. package/components/identity.bans/source/transit.ts +1 -1
  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 +35 -0
  15. package/components/identity.basic/events/principal.js +8 -4
  16. package/components/identity.basic/manifest.toa.yaml +202 -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 +20 -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 +34 -16
  23. package/components/identity.basic/operations/info.js +7 -0
  24. package/components/identity.basic/operations/lib/credentials.js +12 -0
  25. package/components/identity.basic/operations/transit.js +42 -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 +31 -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 +52 -14
  32. package/components/identity.basic/source/info.ts +22 -0
  33. package/components/identity.basic/source/lib/credentials.ts +12 -0
  34. package/components/identity.basic/source/transit.ts +64 -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 +122 -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 +5 -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 +4 -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 +110 -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 +31 -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/0002-indexes.yaml +25 -0
  70. package/components/identity.federation/operations/authenticate.js +31 -20
  71. package/components/identity.federation/operations/create.js +29 -0
  72. package/components/identity.federation/operations/decode.js +9 -0
  73. package/components/identity.federation/operations/delete.js +7 -0
  74. package/components/identity.federation/operations/incept.js +9 -13
  75. package/components/identity.federation/operations/lib/Configuration.js +2 -0
  76. package/components/identity.federation/operations/lib/Ctx.js +2 -0
  77. package/components/identity.federation/operations/lib/Payload.js +2 -0
  78. package/components/identity.federation/operations/lib/decode.js +36 -0
  79. package/components/identity.federation/operations/lib/discovery.js +34 -0
  80. package/components/identity.federation/operations/lib/errors.js +45 -0
  81. package/components/identity.federation/operations/lib/exchange.js +90 -0
  82. package/components/identity.federation/operations/lib/index.js +5 -0
  83. package/components/identity.federation/operations/lib/jose.js +2 -0
  84. package/components/identity.federation/operations/lib/principal.js +14 -0
  85. package/components/identity.federation/operations/lib/resolve.js +13 -0
  86. package/components/identity.federation/operations/list.js +12 -0
  87. package/components/identity.federation/operations/types/Scheme.js +2 -0
  88. package/components/identity.federation/operations/types/configuration.js +2 -3
  89. package/components/identity.federation/operations/types/context.js +2 -3
  90. package/components/identity.federation/operations/types/entity.js +2 -3
  91. package/components/identity.federation/operations/types/index.js +5 -20
  92. package/components/identity.federation/package.json +8 -0
  93. package/components/identity.federation/source/authenticate.ts +50 -19
  94. package/components/identity.federation/source/create.ts +44 -0
  95. package/components/identity.federation/source/decode.ts +14 -0
  96. package/components/identity.federation/source/delete.ts +19 -0
  97. package/components/identity.federation/source/incept.ts +12 -15
  98. package/components/identity.federation/source/lib/Configuration.ts +39 -0
  99. package/components/identity.federation/source/lib/Ctx.ts +9 -0
  100. package/components/identity.federation/source/lib/Payload.ts +6 -0
  101. package/components/identity.federation/source/lib/decode.ts +44 -0
  102. package/components/identity.federation/source/lib/discovery.ts +50 -0
  103. package/components/identity.federation/source/lib/errors.ts +54 -0
  104. package/components/identity.federation/source/lib/exchange.ts +123 -0
  105. package/components/identity.federation/source/lib/index.ts +5 -0
  106. package/components/identity.federation/source/lib/jose.d.ts +1 -0
  107. package/components/identity.federation/source/lib/jose.js +1 -0
  108. package/components/identity.federation/source/lib/principal.ts +19 -0
  109. package/components/identity.federation/source/lib/resolve.ts +21 -0
  110. package/components/identity.federation/source/list.ts +21 -0
  111. package/components/identity.federation/source/types/Scheme.ts +1 -0
  112. package/components/identity.federation/source/types/configuration.ts +12 -4
  113. package/components/identity.federation/source/types/context.ts +22 -38
  114. package/components/identity.federation/source/types/entity.ts +3 -0
  115. package/components/identity.federation/source/types/index.ts +4 -3
  116. package/components/identity.federation/tsconfig.json +3 -2
  117. package/components/identity.federation/types/index.d.ts +3 -0
  118. package/components/identity.federation/types/toa.d.ts +128 -0
  119. package/components/identity.grants/manifest.toa.yaml +241 -0
  120. package/components/identity.grants/migrations/0002-indexes.yaml +5 -0
  121. package/components/identity.grants/operations/authorize.js +53 -0
  122. package/components/identity.grants/operations/exchange.js +92 -0
  123. package/components/identity.grants/operations/lib/code.js +30 -0
  124. package/components/identity.grants/operations/lib/identify.js +15 -0
  125. package/components/identity.grants/operations/lib/index.js +3 -0
  126. package/components/identity.grants/operations/list.js +18 -0
  127. package/components/identity.grants/operations/revoke.js +26 -0
  128. package/components/identity.grants/source/authorize.ts +97 -0
  129. package/components/identity.grants/source/exchange.ts +134 -0
  130. package/components/identity.grants/source/lib/code.ts +51 -0
  131. package/components/identity.grants/source/lib/identify.ts +16 -0
  132. package/components/identity.grants/source/lib/index.ts +3 -0
  133. package/components/identity.grants/source/list.ts +28 -0
  134. package/components/identity.grants/source/revoke.ts +40 -0
  135. package/components/identity.grants/tsconfig.json +10 -0
  136. package/components/identity.grants/types/index.d.ts +60 -0
  137. package/components/identity.grants/types/toa.d.ts +109 -0
  138. package/components/identity.keys/manifest.toa.yaml +79 -0
  139. package/components/identity.keys/migrations/0002-indexes.yaml +4 -0
  140. package/components/identity.keys/operations/create.js +12 -0
  141. package/components/identity.keys/operations/disable.js +5 -0
  142. package/components/identity.keys/operations/revoke.js +12 -0
  143. package/components/identity.keys/receivers/identity.bans.created.js +1 -0
  144. package/components/identity.keys/receivers/identity.bans.updated.js +1 -0
  145. package/components/identity.keys/receivers/identity.roles.deleted.js +1 -0
  146. package/components/identity.keys/source/create.ts +34 -0
  147. package/components/identity.keys/source/disable.ts +9 -0
  148. package/components/identity.keys/source/revoke.ts +30 -0
  149. package/components/identity.keys/tsconfig.json +10 -0
  150. package/components/identity.keys/types/index.d.ts +3 -0
  151. package/components/identity.keys/types/toa.d.ts +48 -0
  152. package/components/identity.otp/manifest.toa.yaml +96 -0
  153. package/components/identity.otp/migrations/0002-indexes.yaml +5 -0
  154. package/components/identity.otp/operations/authenticate.js +44 -0
  155. package/components/identity.otp/operations/issue.js +19 -0
  156. package/components/identity.otp/operations/lib/Context.js +2 -0
  157. package/components/identity.otp/operations/lib/Entity.js +2 -0
  158. package/components/identity.otp/operations/lib/index.js +2 -0
  159. package/components/identity.otp/source/authenticate.ts +70 -0
  160. package/components/identity.otp/source/issue.ts +35 -0
  161. package/components/identity.otp/source/lib/Context.ts +17 -0
  162. package/components/identity.otp/source/lib/Entity.ts +6 -0
  163. package/components/identity.otp/source/lib/index.ts +1 -0
  164. package/components/identity.otp/tsconfig.json +10 -0
  165. package/components/identity.otp/types/index.d.ts +3 -0
  166. package/components/identity.otp/types/toa.d.ts +57 -0
  167. package/components/identity.passkeys/manifest.toa.yaml +302 -0
  168. package/components/identity.passkeys/migrations/0002-indexes.yaml +11 -0
  169. package/components/identity.passkeys/operations/authenticate.js +32 -0
  170. package/components/identity.passkeys/operations/challenge.js +72 -0
  171. package/components/identity.passkeys/operations/create.js +57 -0
  172. package/components/identity.passkeys/operations/delete.js +9 -0
  173. package/components/identity.passkeys/operations/lib/const.js +2 -0
  174. package/components/identity.passkeys/operations/list.js +12 -0
  175. package/components/identity.passkeys/operations/types/Configuration.js +2 -0
  176. package/components/identity.passkeys/operations/types/Context.js +2 -0
  177. package/components/identity.passkeys/operations/types/Passkey.js +2 -0
  178. package/components/identity.passkeys/operations/types/index.js +2 -0
  179. package/components/identity.passkeys/operations/use.js +56 -0
  180. package/components/identity.passkeys/package.json +8 -0
  181. package/components/identity.passkeys/source/authenticate.ts +49 -0
  182. package/components/identity.passkeys/source/challenge.ts +119 -0
  183. package/components/identity.passkeys/source/create.ts +83 -0
  184. package/components/identity.passkeys/source/delete.ts +19 -0
  185. package/components/identity.passkeys/source/lib/const.ts +1 -0
  186. package/components/identity.passkeys/source/list.ts +21 -0
  187. package/components/identity.passkeys/source/types/Configuration.ts +6 -0
  188. package/components/identity.passkeys/source/types/Context.ts +17 -0
  189. package/components/identity.passkeys/source/types/Passkey.ts +12 -0
  190. package/components/identity.passkeys/source/types/index.ts +2 -0
  191. package/components/identity.passkeys/source/use.ts +81 -0
  192. package/components/identity.passkeys/tsconfig.json +10 -0
  193. package/components/identity.passkeys/types/index.d.ts +3 -0
  194. package/components/identity.passkeys/types/toa.d.ts +121 -0
  195. package/components/identity.roles/manifest.toa.yaml +42 -13
  196. package/components/identity.roles/migrations/0002-indexes.yaml +8 -0
  197. package/components/identity.roles/operations/grant.js +11 -11
  198. package/components/identity.roles/operations/lib/Entity.js +2 -3
  199. package/components/identity.roles/operations/list.js +2 -6
  200. package/components/identity.roles/operations/principal.js +30 -10
  201. package/components/identity.roles/receivers/identity.federation.principal.js +4 -0
  202. package/components/identity.roles/source/grant.ts +16 -10
  203. package/components/identity.roles/source/list.ts +2 -2
  204. package/components/identity.roles/source/principal.ts +34 -8
  205. package/components/identity.roles/tsconfig.json +2 -1
  206. package/components/identity.roles/types/index.d.ts +3 -0
  207. package/components/identity.roles/types/toa.d.ts +44 -0
  208. package/components/identity.tokens/manifest.toa.yaml +235 -29
  209. package/components/identity.tokens/operations/authenticate.js +35 -21
  210. package/components/identity.tokens/operations/decrypt.js +140 -25
  211. package/components/identity.tokens/operations/encrypt.js +35 -18
  212. package/components/identity.tokens/operations/issue.js +56 -0
  213. package/components/identity.tokens/operations/lib/form.js +24 -0
  214. package/components/identity.tokens/operations/lib/index.js +4 -0
  215. package/components/identity.tokens/operations/lib/jose.js +2 -0
  216. package/components/identity.tokens/operations/lib/key.js +7 -0
  217. package/components/identity.tokens/operations/lib/pad.js +2 -0
  218. package/components/identity.tokens/operations/revoke.js +2 -6
  219. package/components/identity.tokens/package.json +10 -0
  220. package/components/identity.tokens/receivers/identity.bans.created.js +1 -3
  221. package/components/identity.tokens/receivers/identity.bans.updated.js +1 -3
  222. package/components/identity.tokens/source/authenticate.ts +40 -20
  223. package/components/identity.tokens/source/decrypt.ts +182 -21
  224. package/components/identity.tokens/source/encrypt.ts +49 -17
  225. package/components/identity.tokens/source/issue.ts +85 -0
  226. package/components/identity.tokens/source/lib/form.ts +27 -0
  227. package/components/identity.tokens/source/lib/index.ts +4 -0
  228. package/components/identity.tokens/source/lib/jose.d.ts +1 -0
  229. package/components/identity.tokens/source/lib/jose.js +1 -0
  230. package/components/identity.tokens/source/lib/key.ts +8 -0
  231. package/components/identity.tokens/source/lib/pad.ts +1 -0
  232. package/components/identity.tokens/source/revoke.ts +2 -2
  233. package/components/identity.tokens/tsconfig.json +2 -1
  234. package/components/identity.tokens/types/index.d.ts +65 -0
  235. package/components/identity.tokens/types/toa.d.ts +120 -0
  236. package/package.json +47 -25
  237. package/readme.md +39 -7
  238. package/schemas/io/throttle.cos.yaml +81 -0
  239. package/schemas/octets/delete.cos.yaml +15 -2
  240. package/schemas/octets/get.cos.yaml +5 -0
  241. package/schemas/octets/put.cos.yaml +31 -0
  242. package/schemas/octets/workflow.cos.yaml +0 -1
  243. package/transpiled/Branch.d.ts +25 -1
  244. package/transpiled/Branch.js +14 -2
  245. package/transpiled/Branch.js.map +1 -1
  246. package/transpiled/Composition.d.ts +3 -4
  247. package/transpiled/Composition.js +13 -22
  248. package/transpiled/Composition.js.map +1 -1
  249. package/transpiled/Context.d.ts +3 -2
  250. package/transpiled/Context.js +1 -2
  251. package/transpiled/Directive.d.ts +33 -8
  252. package/transpiled/Directive.js +120 -32
  253. package/transpiled/Directive.js.map +1 -1
  254. package/transpiled/Discovery/Explorer.d.ts +11 -0
  255. package/transpiled/Discovery/Explorer.js +29 -0
  256. package/transpiled/Discovery/Explorer.js.map +1 -0
  257. package/transpiled/Discovery/Site.d.ts +43 -0
  258. package/transpiled/Discovery/Site.js +171 -0
  259. package/transpiled/Discovery/Site.js.map +1 -0
  260. package/transpiled/Discovery/index.d.ts +3 -0
  261. package/transpiled/Discovery/index.js +4 -0
  262. package/transpiled/Discovery/index.js.map +1 -0
  263. package/transpiled/Discovery/tree.d.ts +26 -0
  264. package/transpiled/Discovery/tree.js +50 -0
  265. package/transpiled/Discovery/tree.js.map +1 -0
  266. package/transpiled/Discovery/trunk.d.ts +13 -0
  267. package/transpiled/Discovery/trunk.js +29 -0
  268. package/transpiled/Discovery/trunk.js.map +1 -0
  269. package/transpiled/Endpoint.d.ts +30 -8
  270. package/transpiled/Endpoint.js +108 -58
  271. package/transpiled/Endpoint.js.map +1 -1
  272. package/transpiled/Factory.d.ts +8 -7
  273. package/transpiled/Factory.js +23 -69
  274. package/transpiled/Factory.js.map +1 -1
  275. package/transpiled/Gateway.d.ts +59 -6
  276. package/transpiled/Gateway.js +241 -51
  277. package/transpiled/Gateway.js.map +1 -1
  278. package/transpiled/HTTP/Context.d.ts +34 -14
  279. package/transpiled/HTTP/Context.js +84 -34
  280. package/transpiled/HTTP/Context.js.map +1 -1
  281. package/transpiled/HTTP/Probe.d.ts +26 -0
  282. package/transpiled/HTTP/Probe.js +80 -0
  283. package/transpiled/HTTP/Probe.js.map +1 -0
  284. package/transpiled/HTTP/Server.d.ts +42 -10
  285. package/transpiled/HTTP/Server.js +293 -93
  286. package/transpiled/HTTP/Server.js.map +1 -1
  287. package/transpiled/HTTP/Timing.d.ts +2 -6
  288. package/transpiled/HTTP/Timing.js +5 -25
  289. package/transpiled/HTTP/Timing.js.map +1 -1
  290. package/transpiled/HTTP/address.d.ts +7 -0
  291. package/transpiled/HTTP/address.js +14 -0
  292. package/transpiled/HTTP/address.js.map +1 -0
  293. package/transpiled/HTTP/exceptions.d.ts +26 -8
  294. package/transpiled/HTTP/exceptions.js +49 -35
  295. package/transpiled/HTTP/exceptions.js.map +1 -1
  296. package/transpiled/HTTP/formats/form.d.ts +9 -0
  297. package/transpiled/HTTP/formats/form.js +18 -0
  298. package/transpiled/HTTP/formats/form.js.map +1 -0
  299. package/transpiled/HTTP/formats/index.d.ts +10 -4
  300. package/transpiled/HTTP/formats/index.js +19 -35
  301. package/transpiled/HTTP/formats/index.js.map +1 -1
  302. package/transpiled/HTTP/formats/json.d.ts +1 -3
  303. package/transpiled/HTTP/formats/json.js +6 -12
  304. package/transpiled/HTTP/formats/json.js.map +1 -1
  305. package/transpiled/HTTP/formats/msgpack.d.ts +0 -2
  306. package/transpiled/HTTP/formats/msgpack.js +7 -12
  307. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  308. package/transpiled/HTTP/formats/text.d.ts +1 -3
  309. package/transpiled/HTTP/formats/text.js +6 -12
  310. package/transpiled/HTTP/formats/text.js.map +1 -1
  311. package/transpiled/HTTP/formats/yaml.d.ts +1 -3
  312. package/transpiled/HTTP/formats/yaml.js +26 -37
  313. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  314. package/transpiled/HTTP/index.d.ts +6 -4
  315. package/transpiled/HTTP/index.js +6 -20
  316. package/transpiled/HTTP/index.js.map +1 -1
  317. package/transpiled/HTTP/messages.d.ts +26 -4
  318. package/transpiled/HTTP/messages.js +159 -41
  319. package/transpiled/HTTP/messages.js.map +1 -1
  320. package/transpiled/HTTP/types.d.ts +37 -0
  321. package/transpiled/HTTP/types.js +2 -0
  322. package/transpiled/HTTP/types.js.map +1 -0
  323. package/transpiled/Interception.d.ts +7 -2
  324. package/transpiled/Interception.js +8 -6
  325. package/transpiled/Interception.js.map +1 -1
  326. package/transpiled/Introspection.d.ts +98 -0
  327. package/transpiled/Introspection.js +81 -0
  328. package/transpiled/Introspection.js.map +1 -0
  329. package/transpiled/MCP/Server.d.ts +41 -0
  330. package/transpiled/MCP/Server.js +191 -0
  331. package/transpiled/MCP/Server.js.map +1 -0
  332. package/transpiled/MCP/discover.d.ts +13 -0
  333. package/transpiled/MCP/discover.js +29 -0
  334. package/transpiled/MCP/discover.js.map +1 -0
  335. package/transpiled/MCP/errors.d.ts +24 -0
  336. package/transpiled/MCP/errors.js +67 -0
  337. package/transpiled/MCP/errors.js.map +1 -0
  338. package/transpiled/MCP/index.d.ts +1 -0
  339. package/transpiled/MCP/index.js +2 -0
  340. package/transpiled/MCP/index.js.map +1 -0
  341. package/transpiled/MCP/schema.d.ts +18 -0
  342. package/transpiled/MCP/schema.js +70 -0
  343. package/transpiled/MCP/schema.js.map +1 -0
  344. package/transpiled/MCP/tools.d.ts +31 -0
  345. package/transpiled/MCP/tools.js +109 -0
  346. package/transpiled/MCP/tools.js.map +1 -0
  347. package/transpiled/MCP/types.d.ts +66 -0
  348. package/transpiled/MCP/types.js +13 -0
  349. package/transpiled/MCP/types.js.map +1 -0
  350. package/transpiled/Mapping.d.ts +17 -6
  351. package/transpiled/Mapping.js +50 -24
  352. package/transpiled/Mapping.js.map +1 -1
  353. package/transpiled/Query.d.ts +29 -6
  354. package/transpiled/Query.js +135 -48
  355. package/transpiled/Query.js.map +1 -1
  356. package/transpiled/RPC/Context.d.ts +11 -0
  357. package/transpiled/RPC/Context.js +56 -0
  358. package/transpiled/RPC/Context.js.map +1 -0
  359. package/transpiled/RPC/Dispatcher.d.ts +19 -0
  360. package/transpiled/RPC/Dispatcher.js +103 -0
  361. package/transpiled/RPC/Dispatcher.js.map +1 -0
  362. package/transpiled/RPC/errors.d.ts +18 -0
  363. package/transpiled/RPC/errors.js +67 -0
  364. package/transpiled/RPC/errors.js.map +1 -0
  365. package/transpiled/RPC/index.d.ts +1 -0
  366. package/transpiled/RPC/index.js +2 -0
  367. package/transpiled/RPC/index.js.map +1 -0
  368. package/transpiled/RPC/names.d.ts +31 -0
  369. package/transpiled/RPC/names.js +121 -0
  370. package/transpiled/RPC/names.js.map +1 -0
  371. package/transpiled/RPC/types.d.ts +27 -0
  372. package/transpiled/RPC/types.js +8 -0
  373. package/transpiled/RPC/types.js.map +1 -0
  374. package/transpiled/RTD/Context.d.ts +6 -4
  375. package/transpiled/RTD/Context.js +1 -2
  376. package/transpiled/RTD/Directives.d.ts +72 -7
  377. package/transpiled/RTD/Directives.js +1 -2
  378. package/transpiled/RTD/Endpoint.d.ts +11 -4
  379. package/transpiled/RTD/Endpoint.js +1 -2
  380. package/transpiled/RTD/Match.d.ts +1 -1
  381. package/transpiled/RTD/Match.js +1 -2
  382. package/transpiled/RTD/Method.d.ts +11 -2
  383. package/transpiled/RTD/Method.js +12 -5
  384. package/transpiled/RTD/Method.js.map +1 -1
  385. package/transpiled/RTD/Node.d.ts +43 -5
  386. package/transpiled/RTD/Node.js +75 -21
  387. package/transpiled/RTD/Node.js.map +1 -1
  388. package/transpiled/RTD/Route.d.ts +8 -6
  389. package/transpiled/RTD/Route.js +40 -10
  390. package/transpiled/RTD/Route.js.map +1 -1
  391. package/transpiled/RTD/Tree.d.ts +14 -5
  392. package/transpiled/RTD/Tree.js +70 -12
  393. package/transpiled/RTD/Tree.js.map +1 -1
  394. package/transpiled/RTD/factory.d.ts +4 -3
  395. package/transpiled/RTD/factory.js +56 -15
  396. package/transpiled/RTD/factory.js.map +1 -1
  397. package/transpiled/RTD/index.d.ts +8 -8
  398. package/transpiled/RTD/index.js +8 -37
  399. package/transpiled/RTD/index.js.map +1 -1
  400. package/transpiled/RTD/segment.d.ts +8 -0
  401. package/transpiled/RTD/segment.js +21 -7
  402. package/transpiled/RTD/segment.js.map +1 -1
  403. package/transpiled/RTD/syntax/index.d.ts +1 -2
  404. package/transpiled/RTD/syntax/index.js +1 -18
  405. package/transpiled/RTD/syntax/index.js.map +1 -1
  406. package/transpiled/Remotes.d.ts +7 -7
  407. package/transpiled/Remotes.js +15 -16
  408. package/transpiled/Remotes.js.map +1 -1
  409. package/transpiled/Tenant.d.ts +15 -4
  410. package/transpiled/Tenant.js +39 -14
  411. package/transpiled/Tenant.js.map +1 -1
  412. package/transpiled/directives/auth/Anonymous.d.ts +17 -2
  413. package/transpiled/directives/auth/Anonymous.js +23 -9
  414. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  415. package/transpiled/directives/auth/Anyone.d.ts +10 -0
  416. package/transpiled/directives/auth/Anyone.js +17 -0
  417. package/transpiled/directives/auth/Anyone.js.map +1 -0
  418. package/transpiled/directives/auth/Assert.d.ts +9 -0
  419. package/transpiled/directives/auth/Assert.js +33 -0
  420. package/transpiled/directives/auth/Assert.js.map +1 -0
  421. package/transpiled/directives/auth/Authorization.d.ts +50 -8
  422. package/transpiled/directives/auth/Authorization.js +256 -85
  423. package/transpiled/directives/auth/Authorization.js.map +1 -1
  424. package/transpiled/directives/auth/Delegate.d.ts +13 -4
  425. package/transpiled/directives/auth/Delegate.js +23 -10
  426. package/transpiled/directives/auth/Delegate.js.map +1 -1
  427. package/transpiled/directives/auth/Echo.d.ts +6 -4
  428. package/transpiled/directives/auth/Echo.js +14 -9
  429. package/transpiled/directives/auth/Echo.js.map +1 -1
  430. package/transpiled/directives/auth/Federation.d.ts +21 -0
  431. package/transpiled/directives/auth/Federation.js +54 -0
  432. package/transpiled/directives/auth/Federation.js.map +1 -0
  433. package/transpiled/directives/auth/Id.d.ts +12 -3
  434. package/transpiled/directives/auth/Id.js +13 -5
  435. package/transpiled/directives/auth/Id.js.map +1 -1
  436. package/transpiled/directives/auth/Incept.d.ts +11 -6
  437. package/transpiled/directives/auth/Incept.js +68 -50
  438. package/transpiled/directives/auth/Incept.js.map +1 -1
  439. package/transpiled/directives/auth/Input.d.ts +15 -0
  440. package/transpiled/directives/auth/Input.js +49 -0
  441. package/transpiled/directives/auth/Input.js.map +1 -0
  442. package/transpiled/directives/auth/Role.d.ts +12 -3
  443. package/transpiled/directives/auth/Role.js +28 -16
  444. package/transpiled/directives/auth/Role.js.map +1 -1
  445. package/transpiled/directives/auth/Rule.d.ts +8 -5
  446. package/transpiled/directives/auth/Rule.js +23 -7
  447. package/transpiled/directives/auth/Rule.js.map +1 -1
  448. package/transpiled/directives/auth/Scheme.d.ts +4 -2
  449. package/transpiled/directives/auth/Scheme.js +11 -35
  450. package/transpiled/directives/auth/Scheme.js.map +1 -1
  451. package/transpiled/directives/auth/create.d.ts +2 -0
  452. package/transpiled/directives/auth/create.js +10 -0
  453. package/transpiled/directives/auth/create.js.map +1 -0
  454. package/transpiled/directives/auth/index.d.ts +1 -1
  455. package/transpiled/directives/auth/index.js +2 -5
  456. package/transpiled/directives/auth/index.js.map +1 -1
  457. package/transpiled/directives/auth/schemes.d.ts +26 -3
  458. package/transpiled/directives/auth/schemes.js +32 -8
  459. package/transpiled/directives/auth/schemes.js.map +1 -1
  460. package/transpiled/directives/auth/split.d.ts +1 -1
  461. package/transpiled/directives/auth/split.js +3 -30
  462. package/transpiled/directives/auth/split.js.map +1 -1
  463. package/transpiled/directives/auth/types.d.ts +42 -12
  464. package/transpiled/directives/auth/types.js +1 -2
  465. package/transpiled/directives/cache/Cache.d.ts +6 -6
  466. package/transpiled/directives/cache/Cache.js +54 -14
  467. package/transpiled/directives/cache/Cache.js.map +1 -1
  468. package/transpiled/directives/cache/Control.d.ts +3 -3
  469. package/transpiled/directives/cache/Control.js +16 -22
  470. package/transpiled/directives/cache/Control.js.map +1 -1
  471. package/transpiled/directives/cache/Exact.d.ts +1 -1
  472. package/transpiled/directives/cache/Exact.js +2 -6
  473. package/transpiled/directives/cache/Exact.js.map +1 -1
  474. package/transpiled/directives/cache/etag.d.ts +10 -0
  475. package/transpiled/directives/cache/etag.js +30 -0
  476. package/transpiled/directives/cache/etag.js.map +1 -0
  477. package/transpiled/directives/cache/index.d.ts +1 -1
  478. package/transpiled/directives/cache/index.js +2 -5
  479. package/transpiled/directives/cache/index.js.map +1 -1
  480. package/transpiled/directives/cache/types.d.ts +1 -1
  481. package/transpiled/directives/cache/types.js +1 -2
  482. package/transpiled/directives/censor/Censor.d.ts +10 -0
  483. package/transpiled/directives/censor/Censor.js +20 -0
  484. package/transpiled/directives/censor/Censor.js.map +1 -0
  485. package/transpiled/directives/censor/index.d.ts +2 -0
  486. package/transpiled/directives/censor/index.js +3 -0
  487. package/transpiled/directives/censor/index.js.map +1 -0
  488. package/transpiled/directives/cors/CORS.d.ts +10 -3
  489. package/transpiled/directives/cors/CORS.js +38 -21
  490. package/transpiled/directives/cors/CORS.js.map +1 -1
  491. package/transpiled/directives/cors/index.d.ts +1 -1
  492. package/transpiled/directives/cors/index.js +2 -5
  493. package/transpiled/directives/cors/index.js.map +1 -1
  494. package/transpiled/directives/dev/Development.d.ts +4 -4
  495. package/transpiled/directives/dev/Development.js +19 -15
  496. package/transpiled/directives/dev/Development.js.map +1 -1
  497. package/transpiled/directives/dev/Faulty.d.ts +8 -0
  498. package/transpiled/directives/dev/Faulty.js +20 -0
  499. package/transpiled/directives/dev/Faulty.js.map +1 -0
  500. package/transpiled/directives/dev/Sleep.d.ts +9 -0
  501. package/transpiled/directives/dev/Sleep.js +41 -0
  502. package/transpiled/directives/dev/Sleep.js.map +1 -0
  503. package/transpiled/directives/dev/Stub.d.ts +2 -2
  504. package/transpiled/directives/dev/Stub.js +1 -5
  505. package/transpiled/directives/dev/Stub.js.map +1 -1
  506. package/transpiled/directives/dev/Throw.d.ts +2 -2
  507. package/transpiled/directives/dev/Throw.js +1 -5
  508. package/transpiled/directives/dev/Throw.js.map +1 -1
  509. package/transpiled/directives/dev/index.d.ts +1 -1
  510. package/transpiled/directives/dev/index.js +2 -5
  511. package/transpiled/directives/dev/index.js.map +1 -1
  512. package/transpiled/directives/dev/types.d.ts +2 -2
  513. package/transpiled/directives/dev/types.js +1 -2
  514. package/transpiled/directives/flow/Compose.d.ts +9 -0
  515. package/transpiled/directives/flow/Compose.js +72 -0
  516. package/transpiled/directives/flow/Compose.js.map +1 -0
  517. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  518. package/transpiled/directives/flow/Fetch.js +51 -0
  519. package/transpiled/directives/flow/Fetch.js.map +1 -0
  520. package/transpiled/directives/flow/Flow.d.ts +10 -0
  521. package/transpiled/directives/flow/Flow.js +29 -0
  522. package/transpiled/directives/flow/Flow.js.map +1 -0
  523. package/transpiled/directives/flow/index.d.ts +2 -0
  524. package/transpiled/directives/flow/index.js +3 -0
  525. package/transpiled/directives/flow/index.js.map +1 -0
  526. package/transpiled/directives/flow/types.d.ts +6 -0
  527. package/transpiled/directives/flow/types.js +2 -0
  528. package/transpiled/directives/flow/types.js.map +1 -0
  529. package/transpiled/directives/help/Family.d.ts +27 -0
  530. package/transpiled/directives/help/Family.js +83 -0
  531. package/transpiled/directives/help/Family.js.map +1 -0
  532. package/transpiled/directives/help/Help.d.ts +22 -0
  533. package/transpiled/directives/help/Help.js +36 -0
  534. package/transpiled/directives/help/Help.js.map +1 -0
  535. package/transpiled/directives/help/Parameters.d.ts +18 -0
  536. package/transpiled/directives/help/Parameters.js +34 -0
  537. package/transpiled/directives/help/Parameters.js.map +1 -0
  538. package/transpiled/directives/help/described.d.ts +16 -0
  539. package/transpiled/directives/help/described.js +27 -0
  540. package/transpiled/directives/help/described.js.map +1 -0
  541. package/transpiled/directives/help/index.d.ts +22 -0
  542. package/transpiled/directives/help/index.js +34 -0
  543. package/transpiled/directives/help/index.js.map +1 -0
  544. package/transpiled/directives/index.d.ts +7 -2
  545. package/transpiled/directives/index.js +32 -13
  546. package/transpiled/directives/index.js.map +1 -1
  547. package/transpiled/directives/io/Directive.d.ts +8 -3
  548. package/transpiled/directives/io/Directive.js +1 -2
  549. package/transpiled/directives/io/IO.d.ts +24 -5
  550. package/transpiled/directives/io/IO.js +60 -17
  551. package/transpiled/directives/io/IO.js.map +1 -1
  552. package/transpiled/directives/io/Input.d.ts +5 -4
  553. package/transpiled/directives/io/Input.js +18 -38
  554. package/transpiled/directives/io/Input.js.map +1 -1
  555. package/transpiled/directives/io/Message.js +1 -2
  556. package/transpiled/directives/io/Output.d.ts +8 -4
  557. package/transpiled/directives/io/Output.js +24 -40
  558. package/transpiled/directives/io/Output.js.map +1 -1
  559. package/transpiled/directives/io/Status.d.ts +19 -0
  560. package/transpiled/directives/io/Status.js +35 -0
  561. package/transpiled/directives/io/Status.js.map +1 -0
  562. package/transpiled/directives/io/Throttle.d.ts +11 -0
  563. package/transpiled/directives/io/Throttle.js +22 -0
  564. package/transpiled/directives/io/Throttle.js.map +1 -0
  565. package/transpiled/directives/io/index.d.ts +1 -1
  566. package/transpiled/directives/io/index.js +2 -5
  567. package/transpiled/directives/io/index.js.map +1 -1
  568. package/transpiled/directives/io/lib/throttle/Configuration.d.ts +26 -0
  569. package/transpiled/directives/io/lib/throttle/Configuration.js +31 -0
  570. package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -0
  571. package/transpiled/directives/io/lib/throttle/Keys.d.ts +14 -0
  572. package/transpiled/directives/io/lib/throttle/Keys.js +32 -0
  573. package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -0
  574. package/transpiled/directives/io/lib/throttle/Quotas.d.ts +70 -0
  575. package/transpiled/directives/io/lib/throttle/Quotas.js +142 -0
  576. package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -0
  577. package/transpiled/directives/io/lib/throttle/Sync.d.ts +29 -0
  578. package/transpiled/directives/io/lib/throttle/Sync.js +70 -0
  579. package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -0
  580. package/transpiled/directives/io/lib/throttle/Warning.d.ts +11 -0
  581. package/transpiled/directives/io/lib/throttle/Warning.js +24 -0
  582. package/transpiled/directives/io/lib/throttle/Warning.js.map +1 -0
  583. package/transpiled/directives/io/lib/throttle/components/Component.d.ts +6 -0
  584. package/transpiled/directives/io/lib/throttle/components/Component.js +2 -0
  585. package/transpiled/directives/io/lib/throttle/components/Component.js.map +1 -0
  586. package/transpiled/directives/io/lib/throttle/components/IP.d.ts +14 -0
  587. package/transpiled/directives/io/lib/throttle/components/IP.js +24 -0
  588. package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -0
  589. package/transpiled/directives/io/lib/throttle/components/Identity.d.ts +11 -0
  590. package/transpiled/directives/io/lib/throttle/components/Identity.js +12 -0
  591. package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -0
  592. package/transpiled/directives/io/lib/throttle/components/Path.d.ts +5 -0
  593. package/transpiled/directives/io/lib/throttle/components/Path.js +6 -0
  594. package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -0
  595. package/transpiled/directives/io/lib/throttle/components/Route.d.ts +12 -0
  596. package/transpiled/directives/io/lib/throttle/components/Route.js +16 -0
  597. package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -0
  598. package/transpiled/directives/io/lib/throttle/components/Segment.d.ts +9 -0
  599. package/transpiled/directives/io/lib/throttle/components/Segment.js +13 -0
  600. package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -0
  601. package/transpiled/directives/io/lib/throttle/components/index.d.ts +5 -0
  602. package/transpiled/directives/io/lib/throttle/components/index.js +13 -0
  603. package/transpiled/directives/io/lib/throttle/components/index.js.map +1 -0
  604. package/transpiled/directives/io/lib/throttle/conditions/Condition.d.ts +4 -0
  605. package/transpiled/directives/io/lib/throttle/conditions/Condition.js +2 -0
  606. package/transpiled/directives/io/lib/throttle/conditions/Condition.js.map +1 -0
  607. package/transpiled/directives/io/lib/throttle/conditions/Status.d.ts +7 -0
  608. package/transpiled/directives/io/lib/throttle/conditions/Status.js +12 -0
  609. package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -0
  610. package/transpiled/directives/io/lib/throttle/conditions/index.d.ts +5 -0
  611. package/transpiled/directives/io/lib/throttle/conditions/index.js +5 -0
  612. package/transpiled/directives/io/lib/throttle/conditions/index.js.map +1 -0
  613. package/transpiled/directives/io/lib/throttle/index.d.ts +4 -0
  614. package/transpiled/directives/io/lib/throttle/index.js +5 -0
  615. package/transpiled/directives/io/lib/throttle/index.js.map +1 -0
  616. package/transpiled/directives/io/schemas.d.ts +6 -4
  617. package/transpiled/directives/io/schemas.js +8 -13
  618. package/transpiled/directives/io/schemas.js.map +1 -1
  619. package/transpiled/directives/map/Authority.d.ts +6 -0
  620. package/transpiled/directives/map/Authority.js +12 -0
  621. package/transpiled/directives/map/Authority.js.map +1 -0
  622. package/transpiled/directives/map/Buffer.d.ts +6 -0
  623. package/transpiled/directives/map/Buffer.js +12 -0
  624. package/transpiled/directives/map/Buffer.js.map +1 -0
  625. package/transpiled/directives/map/Claims.d.ts +10 -0
  626. package/transpiled/directives/map/Claims.js +38 -0
  627. package/transpiled/directives/map/Claims.js.map +1 -0
  628. package/transpiled/directives/map/Directive.d.ts +3 -0
  629. package/transpiled/directives/map/Directive.js +2 -0
  630. package/transpiled/directives/map/Directive.js.map +1 -0
  631. package/transpiled/directives/map/Headers.d.ts +14 -0
  632. package/transpiled/directives/map/Headers.js +44 -0
  633. package/transpiled/directives/map/Headers.js.map +1 -0
  634. package/transpiled/directives/map/Instance.d.ts +15 -0
  635. package/transpiled/directives/map/Instance.js +27 -0
  636. package/transpiled/directives/map/Instance.js.map +1 -0
  637. package/transpiled/directives/map/Language.d.ts +10 -0
  638. package/transpiled/directives/map/Language.js +31 -0
  639. package/transpiled/directives/map/Language.js.map +1 -0
  640. package/transpiled/directives/map/Languages.d.ts +4 -0
  641. package/transpiled/directives/map/Languages.js +11 -0
  642. package/transpiled/directives/map/Languages.js.map +1 -0
  643. package/transpiled/directives/map/Map.d.ts +15 -0
  644. package/transpiled/directives/map/Map.js +60 -0
  645. package/transpiled/directives/map/Map.js.map +1 -0
  646. package/transpiled/directives/map/Mapping.d.ts +26 -0
  647. package/transpiled/directives/map/Mapping.js +29 -0
  648. package/transpiled/directives/map/Mapping.js.map +1 -0
  649. package/transpiled/directives/map/Properties.d.ts +9 -0
  650. package/transpiled/directives/map/Properties.js +10 -0
  651. package/transpiled/directives/map/Properties.js.map +1 -0
  652. package/transpiled/directives/map/Segments.d.ts +9 -0
  653. package/transpiled/directives/map/Segments.js +34 -0
  654. package/transpiled/directives/map/Segments.js.map +1 -0
  655. package/transpiled/directives/map/index.d.ts +2 -0
  656. package/transpiled/directives/map/index.js +3 -0
  657. package/transpiled/directives/map/index.js.map +1 -0
  658. package/transpiled/directives/mcp/MCP.d.ts +18 -0
  659. package/transpiled/directives/mcp/MCP.js +25 -0
  660. package/transpiled/directives/mcp/MCP.js.map +1 -0
  661. package/transpiled/directives/mcp/Tool.d.ts +12 -0
  662. package/transpiled/directives/mcp/Tool.js +24 -0
  663. package/transpiled/directives/mcp/Tool.js.map +1 -0
  664. package/transpiled/directives/mcp/index.d.ts +4 -0
  665. package/transpiled/directives/mcp/index.js +4 -0
  666. package/transpiled/directives/mcp/index.js.map +1 -0
  667. package/transpiled/directives/oauth/Discovery.d.ts +23 -0
  668. package/transpiled/directives/oauth/Discovery.js +55 -0
  669. package/transpiled/directives/oauth/Discovery.js.map +1 -0
  670. package/transpiled/directives/oauth/documents.d.ts +9 -0
  671. package/transpiled/directives/oauth/documents.js +82 -0
  672. package/transpiled/directives/oauth/documents.js.map +1 -0
  673. package/transpiled/directives/oauth/index.d.ts +2 -0
  674. package/transpiled/directives/oauth/index.js +3 -0
  675. package/transpiled/directives/oauth/index.js.map +1 -0
  676. package/transpiled/directives/octets/Context.d.ts +2 -2
  677. package/transpiled/directives/octets/Context.js +4 -31
  678. package/transpiled/directives/octets/Context.js.map +1 -1
  679. package/transpiled/directives/octets/Delete.d.ts +11 -6
  680. package/transpiled/directives/octets/Delete.js +46 -53
  681. package/transpiled/directives/octets/Delete.js.map +1 -1
  682. package/transpiled/directives/octets/Directive.d.ts +9 -3
  683. package/transpiled/directives/octets/Directive.js +1 -5
  684. package/transpiled/directives/octets/Directive.js.map +1 -1
  685. package/transpiled/directives/octets/Get.d.ts +17 -0
  686. package/transpiled/directives/octets/Get.js +69 -0
  687. package/transpiled/directives/octets/Get.js.map +1 -0
  688. package/transpiled/directives/octets/Octets.d.ts +9 -6
  689. package/transpiled/directives/octets/Octets.js +27 -26
  690. package/transpiled/directives/octets/Octets.js.map +1 -1
  691. package/transpiled/directives/octets/Put.d.ts +33 -0
  692. package/transpiled/directives/octets/Put.js +84 -0
  693. package/transpiled/directives/octets/Put.js.map +1 -0
  694. package/transpiled/directives/octets/Workflow.d.ts +6 -6
  695. package/transpiled/directives/octets/Workflow.js +14 -36
  696. package/transpiled/directives/octets/Workflow.js.map +1 -1
  697. package/transpiled/directives/octets/bytes.d.ts +1 -0
  698. package/transpiled/directives/octets/bytes.js +14 -0
  699. package/transpiled/directives/octets/bytes.js.map +1 -0
  700. package/transpiled/directives/octets/index.d.ts +1 -1
  701. package/transpiled/directives/octets/index.js +2 -5
  702. package/transpiled/directives/octets/index.js.map +1 -1
  703. package/transpiled/directives/octets/schemas.d.ts +6 -10
  704. package/transpiled/directives/octets/schemas.js +8 -17
  705. package/transpiled/directives/octets/schemas.js.map +1 -1
  706. package/transpiled/directives/octets/types.d.ts +3 -1
  707. package/transpiled/directives/octets/types.js +1 -2
  708. package/transpiled/directives/octets/workflows/Execution.d.ts +22 -4
  709. package/transpiled/directives/octets/workflows/Execution.js +69 -15
  710. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  711. package/transpiled/directives/octets/workflows/Workflow.d.ts +10 -5
  712. package/transpiled/directives/octets/workflows/Workflow.js +16 -14
  713. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  714. package/transpiled/directives/octets/workflows/index.d.ts +2 -1
  715. package/transpiled/directives/octets/workflows/index.js +1 -5
  716. package/transpiled/directives/octets/workflows/index.js.map +1 -1
  717. package/transpiled/directives/require/Directive.d.ts +2 -2
  718. package/transpiled/directives/require/Directive.js +1 -2
  719. package/transpiled/directives/require/Headers.d.ts +3 -3
  720. package/transpiled/directives/require/Headers.js +4 -8
  721. package/transpiled/directives/require/Headers.js.map +1 -1
  722. package/transpiled/directives/require/Require.d.ts +4 -4
  723. package/transpiled/directives/require/Require.js +8 -15
  724. package/transpiled/directives/require/Require.js.map +1 -1
  725. package/transpiled/directives/require/index.d.ts +1 -1
  726. package/transpiled/directives/require/index.js +2 -5
  727. package/transpiled/directives/require/index.js.map +1 -1
  728. package/transpiled/discovery.js +1 -2
  729. package/transpiled/exceptions.d.ts +1 -1
  730. package/transpiled/exceptions.js +23 -34
  731. package/transpiled/exceptions.js.map +1 -1
  732. package/transpiled/index.d.ts +5 -5
  733. package/transpiled/index.js +2 -11
  734. package/transpiled/index.js.map +1 -1
  735. package/transpiled/io.d.ts +1 -1
  736. package/transpiled/io.js +1 -2
  737. package/transpiled/root.d.ts +1 -1
  738. package/transpiled/root.js +22 -11
  739. package/transpiled/root.js.map +1 -1
  740. package/transpiled/service.d.ts +7 -0
  741. package/transpiled/service.js +74 -0
  742. package/transpiled/service.js.map +1 -0
  743. package/transpiled/userland.d.ts +39 -0
  744. package/transpiled/userland.js +7 -0
  745. package/transpiled/userland.js.map +1 -0
  746. package/ui/dist/_app/env.js +1 -0
  747. package/ui/dist/_app/immutable/assets/0.DKJjMwRs.css +2 -0
  748. package/ui/dist/_app/immutable/assets/2.BghF56l_.css +1 -0
  749. package/ui/dist/_app/immutable/assets/ui.DWW-43mU.css +1 -0
  750. package/ui/dist/_app/immutable/chunks/BE7eB5v5.js +1 -0
  751. package/ui/dist/_app/immutable/chunks/BVDJTrf4.js +3 -0
  752. package/ui/dist/_app/immutable/chunks/Bjy-W4x2.js +81 -0
  753. package/ui/dist/_app/immutable/chunks/D4j-xChx.js +6 -0
  754. package/ui/dist/_app/immutable/chunks/VDPx7_k6.js +1 -0
  755. package/ui/dist/_app/immutable/chunks/sa0pbjcV.js +88 -0
  756. package/ui/dist/_app/immutable/chunks/xihTtKlq.js +1 -0
  757. package/ui/dist/_app/immutable/entry/app.AkuFmFm5.js +2 -0
  758. package/ui/dist/_app/immutable/entry/start.Bf-Wtlxj.js +1 -0
  759. package/ui/dist/_app/immutable/nodes/0.tjrDhK2K.js +1 -0
  760. package/ui/dist/_app/immutable/nodes/1.BBstrUMk.js +1 -0
  761. package/ui/dist/_app/immutable/nodes/2.kK-1mow1.js +8 -0
  762. package/ui/dist/_app/immutable/nodes/3.DyUOxgbQ.js +1 -0
  763. package/ui/dist/_app/immutable/nodes/4.DRJYPW3m.js +1 -0
  764. package/ui/dist/_app/immutable/nodes/5.3gnA7sEW.js +1 -0
  765. package/ui/dist/_app/immutable/nodes/6.DNBe1ELW.js +1 -0
  766. package/ui/dist/_app/version.json +1 -0
  767. package/ui/dist/apple-touch-icon.png +0 -0
  768. package/ui/dist/favicon-96x96.png +0 -0
  769. package/ui/dist/favicon.ico +0 -0
  770. package/ui/dist/index.html +66 -0
  771. package/components/context.toa.yaml +0 -27
  772. package/components/identity.bans/operations/transit.d.ts +0 -14
  773. package/components/identity.bans/operations/transit.js.map +0 -1
  774. package/components/identity.bans/operations/tsconfig.tsbuildinfo +0 -1
  775. package/components/identity.basic/operations/authenticate.d.ts +0 -13
  776. package/components/identity.basic/operations/authenticate.js.map +0 -1
  777. package/components/identity.basic/operations/incept.d.ts +0 -12
  778. package/components/identity.basic/operations/incept.js.map +0 -1
  779. package/components/identity.basic/operations/transit.d.ts +0 -12
  780. package/components/identity.basic/operations/transit.js.map +0 -1
  781. package/components/identity.basic/operations/tsconfig.tsbuildinfo +0 -1
  782. package/components/identity.basic/operations/types.d.ts +0 -40
  783. package/components/identity.basic/operations/types.js +0 -3
  784. package/components/identity.basic/operations/types.js.map +0 -1
  785. package/components/identity.basic/source/types.ts +0 -44
  786. package/components/identity.federation/operations/authenticate.d.ts +0 -3
  787. package/components/identity.federation/operations/authenticate.js.map +0 -1
  788. package/components/identity.federation/operations/incept.d.ts +0 -11
  789. package/components/identity.federation/operations/incept.js.map +0 -1
  790. package/components/identity.federation/operations/lib/assertions-as-values.d.ts +0 -4
  791. package/components/identity.federation/operations/lib/assertions-as-values.js +0 -45
  792. package/components/identity.federation/operations/lib/assertions-as-values.js.map +0 -1
  793. package/components/identity.federation/operations/lib/jwt.d.ts +0 -19
  794. package/components/identity.federation/operations/lib/jwt.js +0 -136
  795. package/components/identity.federation/operations/lib/jwt.js.map +0 -1
  796. package/components/identity.federation/operations/tsconfig.tsbuildinfo +0 -1
  797. package/components/identity.federation/operations/types/configuration.d.ts +0 -15
  798. package/components/identity.federation/operations/types/configuration.js.map +0 -1
  799. package/components/identity.federation/operations/types/context.d.ts +0 -56
  800. package/components/identity.federation/operations/types/context.js.map +0 -1
  801. package/components/identity.federation/operations/types/entity.d.ts +0 -6
  802. package/components/identity.federation/operations/types/entity.js.map +0 -1
  803. package/components/identity.federation/operations/types/index.d.ts +0 -3
  804. package/components/identity.federation/operations/types/index.js.map +0 -1
  805. package/components/identity.federation/source/lib/assertions-as-values.ts +0 -19
  806. package/components/identity.federation/source/lib/jwt.test.ts +0 -56
  807. package/components/identity.federation/source/lib/jwt.ts +0 -170
  808. package/components/identity.roles/operations/grant.d.ts +0 -10
  809. package/components/identity.roles/operations/grant.js.map +0 -1
  810. package/components/identity.roles/operations/lib/Entity.d.ts +0 -5
  811. package/components/identity.roles/operations/lib/Entity.js.map +0 -1
  812. package/components/identity.roles/operations/list.d.ts +0 -2
  813. package/components/identity.roles/operations/list.js.map +0 -1
  814. package/components/identity.roles/operations/principal.d.ts +0 -13
  815. package/components/identity.roles/operations/principal.js.map +0 -1
  816. package/components/identity.roles/operations/tsconfig.tsbuildinfo +0 -1
  817. package/components/identity.tokens/operations/authenticate.d.ts +0 -9
  818. package/components/identity.tokens/operations/authenticate.js.map +0 -1
  819. package/components/identity.tokens/operations/decrypt.d.ts +0 -3
  820. package/components/identity.tokens/operations/decrypt.js.map +0 -1
  821. package/components/identity.tokens/operations/encrypt.d.ts +0 -8
  822. package/components/identity.tokens/operations/encrypt.js.map +0 -1
  823. package/components/identity.tokens/operations/revoke.d.ts +0 -2
  824. package/components/identity.tokens/operations/revoke.js.map +0 -1
  825. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +0 -1
  826. package/components/identity.tokens/operations/types.d.ts +0 -46
  827. package/components/identity.tokens/operations/types.js +0 -3
  828. package/components/identity.tokens/operations/types.js.map +0 -1
  829. package/components/identity.tokens/source/authenticate.test.ts +0 -63
  830. package/components/identity.tokens/source/decrypt.test.ts +0 -61
  831. package/components/identity.tokens/source/encrypt.test.ts +0 -59
  832. package/components/identity.tokens/source/types.ts +0 -55
  833. package/components/octets.storage/manifest.toa.yaml +0 -21
  834. package/components/octets.storage/operations/delete.js +0 -7
  835. package/components/octets.storage/operations/fetch.js +0 -46
  836. package/components/octets.storage/operations/get.js +0 -7
  837. package/components/octets.storage/operations/list.js +0 -7
  838. package/components/octets.storage/operations/store.js +0 -11
  839. package/cucumber.js +0 -7
  840. package/documentation/.assets/ia3-dark.jpg +0 -0
  841. package/documentation/.assets/ia3-light.jpg +0 -0
  842. package/documentation/.assets/overview-dark.jpg +0 -0
  843. package/documentation/.assets/overview-light.jpg +0 -0
  844. package/documentation/.assets/role-scopes-dark.jpg +0 -0
  845. package/documentation/.assets/role-scopes-light.jpg +0 -0
  846. package/documentation/.assets/rtd-dark.jpg +0 -0
  847. package/documentation/.assets/rtd-light.jpg +0 -0
  848. package/documentation/access.md +0 -266
  849. package/documentation/authorities.md +0 -53
  850. package/documentation/cache.md +0 -49
  851. package/documentation/components.md +0 -331
  852. package/documentation/identity.md +0 -158
  853. package/documentation/io.md +0 -56
  854. package/documentation/notes/sse.md +0 -71
  855. package/documentation/octets.md +0 -261
  856. package/documentation/protocol.md +0 -85
  857. package/documentation/query.md +0 -275
  858. package/documentation/require.md +0 -15
  859. package/documentation/tree.md +0 -183
  860. package/documentation/vary.md +0 -69
  861. package/entity.json +0 -0
  862. package/features/access.feature +0 -476
  863. package/features/annotation.feature +0 -32
  864. package/features/authorities.basic.feature +0 -141
  865. package/features/authorities.feature +0 -32
  866. package/features/authorities.federation.feature +0 -99
  867. package/features/authorities.tokens.feature +0 -118
  868. package/features/body.feature +0 -49
  869. package/features/cache.feature +0 -233
  870. package/features/cors.feature +0 -76
  871. package/features/debug.feature +0 -34
  872. package/features/directives.feature +0 -61
  873. package/features/dynamic.feature +0 -110
  874. package/features/errors.feature +0 -225
  875. package/features/etag.feature +0 -103
  876. package/features/identity.bans.feature +0 -137
  877. package/features/identity.basic.feature +0 -401
  878. package/features/identity.feature +0 -82
  879. package/features/identity.federation.feature +0 -208
  880. package/features/identity.roles.feature +0 -267
  881. package/features/identity.tokens.feature +0 -229
  882. package/features/io.feature +0 -205
  883. package/features/octets.entries.feature +0 -131
  884. package/features/octets.feature +0 -265
  885. package/features/octets.meta.feature +0 -69
  886. package/features/octets.workflows.feature +0 -300
  887. package/features/probes.feature +0 -14
  888. package/features/query.feature +0 -261
  889. package/features/require.feature +0 -67
  890. package/features/response.feature +0 -74
  891. package/features/routes.feature +0 -139
  892. package/features/steps/Captures.ts +0 -6
  893. package/features/steps/Common.ts +0 -10
  894. package/features/steps/Components.ts +0 -55
  895. package/features/steps/Database.ts +0 -65
  896. package/features/steps/Gateway.ts +0 -132
  897. package/features/steps/HTTP.ts +0 -74
  898. package/features/steps/IdP.ts +0 -154
  899. package/features/steps/Parameters.ts +0 -21
  900. package/features/steps/Workspace.ts +0 -41
  901. package/features/steps/components/echo/manifest.toa.yaml +0 -14
  902. package/features/steps/components/echo/operations/affect.js +0 -7
  903. package/features/steps/components/echo/operations/compute.js +0 -7
  904. package/features/steps/components/echo/operations/error.js +0 -11
  905. package/features/steps/components/echo/operations/identity.js +0 -7
  906. package/features/steps/components/greeter/manifest.toa.yaml +0 -6
  907. package/features/steps/components/greeter/operations/greet.js +0 -7
  908. package/features/steps/components/octets.tester/manifest.toa.yaml +0 -19
  909. package/features/steps/components/octets.tester/operations/bar.js +0 -12
  910. package/features/steps/components/octets.tester/operations/baz.js +0 -11
  911. package/features/steps/components/octets.tester/operations/concat.js +0 -7
  912. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  913. package/features/steps/components/octets.tester/operations/echo.js +0 -7
  914. package/features/steps/components/octets.tester/operations/err.js +0 -16
  915. package/features/steps/components/octets.tester/operations/foo.js +0 -7
  916. package/features/steps/components/octets.tester/operations/lenna.png +0 -0
  917. package/features/steps/components/pots/manifest.toa.yaml +0 -29
  918. package/features/steps/components/sequences/manifest.toa.yaml +0 -11
  919. package/features/steps/components/sequences/operations/numbers.js +0 -7
  920. package/features/steps/components/sequences/operations/tokens.js +0 -16
  921. package/features/steps/components/users/manifest.toa.yaml +0 -14
  922. package/features/steps/components/users.properties/manifest.toa.yaml +0 -14
  923. package/features/steps/tsconfig.json +0 -9
  924. package/features/streams.feature +0 -31
  925. package/features/timing.feature +0 -69
  926. package/features/vary.feature +0 -252
  927. package/schemas/annotation.cos.yaml +0 -6
  928. package/schemas/directive.cos.yaml +0 -3
  929. package/schemas/method.cos.yaml +0 -8
  930. package/schemas/node.cos.yaml +0 -5
  931. package/schemas/octets/context.cos.yaml +0 -1
  932. package/schemas/octets/fetch.cos.yaml +0 -3
  933. package/schemas/octets/list.cos.yaml +0 -2
  934. package/schemas/octets/permute.cos.yaml +0 -1
  935. package/schemas/octets/store.cos.yaml +0 -3
  936. package/schemas/query.cos.yaml +0 -17
  937. package/schemas/querystring.cos.yaml +0 -6
  938. package/schemas/range.cos.yaml +0 -2
  939. package/schemas/route.cos.yaml +0 -2
  940. package/source/Annotation.ts +0 -8
  941. package/source/Branch.ts +0 -8
  942. package/source/Composition.ts +0 -57
  943. package/source/Context.ts +0 -8
  944. package/source/Directive.test.ts +0 -97
  945. package/source/Directive.ts +0 -96
  946. package/source/Endpoint.ts +0 -108
  947. package/source/Factory.ts +0 -60
  948. package/source/Gateway.ts +0 -97
  949. package/source/HTTP/Context.ts +0 -89
  950. package/source/HTTP/Server.ts +0 -171
  951. package/source/HTTP/Timing.ts +0 -40
  952. package/source/HTTP/exceptions.ts +0 -73
  953. package/source/HTTP/formats/index.ts +0 -22
  954. package/source/HTTP/formats/json.ts +0 -16
  955. package/source/HTTP/formats/msgpack.ts +0 -16
  956. package/source/HTTP/formats/text.ts +0 -12
  957. package/source/HTTP/formats/yaml.ts +0 -17
  958. package/source/HTTP/index.ts +0 -4
  959. package/source/HTTP/messages.test.ts +0 -89
  960. package/source/HTTP/messages.ts +0 -110
  961. package/source/Interception.ts +0 -24
  962. package/source/Mapping.ts +0 -55
  963. package/source/Query.test.ts +0 -37
  964. package/source/Query.ts +0 -116
  965. package/source/RTD/Context.ts +0 -13
  966. package/source/RTD/Directives.ts +0 -33
  967. package/source/RTD/Endpoint.ts +0 -13
  968. package/source/RTD/Match.ts +0 -11
  969. package/source/RTD/Method.ts +0 -18
  970. package/source/RTD/Node.ts +0 -84
  971. package/source/RTD/Route.ts +0 -59
  972. package/source/RTD/Tree.ts +0 -58
  973. package/source/RTD/factory.ts +0 -44
  974. package/source/RTD/index.ts +0 -8
  975. package/source/RTD/segment.test.ts +0 -32
  976. package/source/RTD/segment.ts +0 -26
  977. package/source/RTD/syntax/index.ts +0 -2
  978. package/source/RTD/syntax/parse.test.ts +0 -188
  979. package/source/RTD/syntax/parse.ts +0 -154
  980. package/source/RTD/syntax/types.ts +0 -48
  981. package/source/Remotes.test.ts +0 -42
  982. package/source/Remotes.ts +0 -30
  983. package/source/Tenant.ts +0 -35
  984. package/source/deployment.ts +0 -64
  985. package/source/directives/auth/Anonymous.ts +0 -15
  986. package/source/directives/auth/Authorization.ts +0 -157
  987. package/source/directives/auth/Delegate.ts +0 -35
  988. package/source/directives/auth/Echo.ts +0 -12
  989. package/source/directives/auth/Id.ts +0 -19
  990. package/source/directives/auth/Incept.ts +0 -48
  991. package/source/directives/auth/Role.test.ts +0 -109
  992. package/source/directives/auth/Role.ts +0 -66
  993. package/source/directives/auth/Rule.ts +0 -28
  994. package/source/directives/auth/Scheme.ts +0 -26
  995. package/source/directives/auth/index.ts +0 -3
  996. package/source/directives/auth/schemes.ts +0 -9
  997. package/source/directives/auth/split.ts +0 -15
  998. package/source/directives/auth/types.ts +0 -40
  999. package/source/directives/cache/Cache.ts +0 -35
  1000. package/source/directives/cache/Control.ts +0 -85
  1001. package/source/directives/cache/Exact.ts +0 -7
  1002. package/source/directives/cache/index.ts +0 -3
  1003. package/source/directives/cache/types.ts +0 -9
  1004. package/source/directives/cors/CORS.ts +0 -62
  1005. package/source/directives/cors/index.ts +0 -3
  1006. package/source/directives/dev/Development.ts +0 -35
  1007. package/source/directives/dev/Stub.ts +0 -14
  1008. package/source/directives/dev/Throw.ts +0 -14
  1009. package/source/directives/dev/index.ts +0 -3
  1010. package/source/directives/dev/types.ts +0 -5
  1011. package/source/directives/index.ts +0 -13
  1012. package/source/directives/io/Directive.ts +0 -11
  1013. package/source/directives/io/IO.ts +0 -43
  1014. package/source/directives/io/Input.ts +0 -50
  1015. package/source/directives/io/Message.ts +0 -1
  1016. package/source/directives/io/Output.ts +0 -69
  1017. package/source/directives/io/index.ts +0 -3
  1018. package/source/directives/io/schemas.ts +0 -12
  1019. package/source/directives/octets/Context.ts +0 -19
  1020. package/source/directives/octets/Delete.ts +0 -85
  1021. package/source/directives/octets/Directive.ts +0 -10
  1022. package/source/directives/octets/Fetch.ts +0 -100
  1023. package/source/directives/octets/List.ts +0 -72
  1024. package/source/directives/octets/Octets.ts +0 -71
  1025. package/source/directives/octets/Store.ts +0 -126
  1026. package/source/directives/octets/Workflow.ts +0 -48
  1027. package/source/directives/octets/index.ts +0 -3
  1028. package/source/directives/octets/schemas.test.ts +0 -21
  1029. package/source/directives/octets/schemas.ts +0 -19
  1030. package/source/directives/octets/types.ts +0 -7
  1031. package/source/directives/octets/workflows/Execution.ts +0 -76
  1032. package/source/directives/octets/workflows/Workflow.ts +0 -37
  1033. package/source/directives/octets/workflows/index.ts +0 -1
  1034. package/source/directives/require/Directive.ts +0 -5
  1035. package/source/directives/require/Headers.ts +0 -20
  1036. package/source/directives/require/Require.ts +0 -28
  1037. package/source/directives/require/index.ts +0 -3
  1038. package/source/directives/vary/Directive.ts +0 -7
  1039. package/source/directives/vary/Embed.ts +0 -68
  1040. package/source/directives/vary/Properties.ts +0 -17
  1041. package/source/directives/vary/Vary.ts +0 -50
  1042. package/source/directives/vary/embeddings/Authority.ts +0 -8
  1043. package/source/directives/vary/embeddings/Embedding.ts +0 -7
  1044. package/source/directives/vary/embeddings/Header.ts +0 -32
  1045. package/source/directives/vary/embeddings/Language.ts +0 -31
  1046. package/source/directives/vary/embeddings/Parameter.ts +0 -14
  1047. package/source/directives/vary/embeddings/index.ts +0 -13
  1048. package/source/directives/vary/index.ts +0 -3
  1049. package/source/discovery.ts +0 -1
  1050. package/source/exceptions.ts +0 -28
  1051. package/source/index.test.ts +0 -9
  1052. package/source/index.ts +0 -6
  1053. package/source/io.ts +0 -4
  1054. package/source/manifest.test.ts +0 -51
  1055. package/source/manifest.ts +0 -51
  1056. package/source/root.ts +0 -43
  1057. package/source/schemas.ts +0 -13
  1058. package/transpiled/Annotation.d.ts +0 -8
  1059. package/transpiled/Annotation.js +0 -3
  1060. package/transpiled/Annotation.js.map +0 -1
  1061. package/transpiled/RTD/syntax/parse.d.ts +0 -4
  1062. package/transpiled/RTD/syntax/parse.js +0 -128
  1063. package/transpiled/RTD/syntax/parse.js.map +0 -1
  1064. package/transpiled/RTD/syntax/types.d.ts +0 -41
  1065. package/transpiled/RTD/syntax/types.js +0 -5
  1066. package/transpiled/RTD/syntax/types.js.map +0 -1
  1067. package/transpiled/deployment.d.ts +0 -3
  1068. package/transpiled/deployment.js +0 -79
  1069. package/transpiled/deployment.js.map +0 -1
  1070. package/transpiled/directives/octets/Fetch.d.ts +0 -18
  1071. package/transpiled/directives/octets/Fetch.js +0 -92
  1072. package/transpiled/directives/octets/Fetch.js.map +0 -1
  1073. package/transpiled/directives/octets/List.d.ts +0 -16
  1074. package/transpiled/directives/octets/List.js +0 -74
  1075. package/transpiled/directives/octets/List.js.map +0 -1
  1076. package/transpiled/directives/octets/Store.d.ts +0 -24
  1077. package/transpiled/directives/octets/Store.js +0 -95
  1078. package/transpiled/directives/octets/Store.js.map +0 -1
  1079. package/transpiled/directives/vary/Directive.d.ts +0 -6
  1080. package/transpiled/directives/vary/Directive.js +0 -3
  1081. package/transpiled/directives/vary/Directive.js.map +0 -1
  1082. package/transpiled/directives/vary/Embed.d.ts +0 -11
  1083. package/transpiled/directives/vary/Embed.js +0 -51
  1084. package/transpiled/directives/vary/Embed.js.map +0 -1
  1085. package/transpiled/directives/vary/Properties.d.ts +0 -9
  1086. package/transpiled/directives/vary/Properties.js +0 -16
  1087. package/transpiled/directives/vary/Properties.js.map +0 -1
  1088. package/transpiled/directives/vary/Vary.d.ts +0 -10
  1089. package/transpiled/directives/vary/Vary.js +0 -36
  1090. package/transpiled/directives/vary/Vary.js.map +0 -1
  1091. package/transpiled/directives/vary/embeddings/Authority.d.ts +0 -5
  1092. package/transpiled/directives/vary/embeddings/Authority.js +0 -10
  1093. package/transpiled/directives/vary/embeddings/Authority.js.map +0 -1
  1094. package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -6
  1095. package/transpiled/directives/vary/embeddings/Embedding.js +0 -3
  1096. package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
  1097. package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
  1098. package/transpiled/directives/vary/embeddings/Header.js +0 -28
  1099. package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
  1100. package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
  1101. package/transpiled/directives/vary/embeddings/Language.js +0 -28
  1102. package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
  1103. package/transpiled/directives/vary/embeddings/Parameter.d.ts +0 -7
  1104. package/transpiled/directives/vary/embeddings/Parameter.js +0 -14
  1105. package/transpiled/directives/vary/embeddings/Parameter.js.map +0 -1
  1106. package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
  1107. package/transpiled/directives/vary/embeddings/index.js +0 -14
  1108. package/transpiled/directives/vary/embeddings/index.js.map +0 -1
  1109. package/transpiled/directives/vary/index.d.ts +0 -2
  1110. package/transpiled/directives/vary/index.js +0 -6
  1111. package/transpiled/directives/vary/index.js.map +0 -1
  1112. package/transpiled/manifest.d.ts +0 -3
  1113. package/transpiled/manifest.js +0 -66
  1114. package/transpiled/manifest.js.map +0 -1
  1115. package/transpiled/schemas.d.ts +0 -7
  1116. package/transpiled/schemas.js +0 -14
  1117. package/transpiled/schemas.js.map +0 -1
  1118. package/transpiled/tsconfig.tsbuildinfo +0 -1
  1119. package/tsconfig.json +0 -12
@@ -1,75 +1,163 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.shortcuts = exports.DirectivesFactory = exports.Directives = void 0;
4
- class Directives {
1
+ import { console } from 'openspan';
2
+ export class Directives {
5
3
  sets;
4
+ /** the span of a stage depends only on the set, so it is built once per route */
5
+ spans;
6
6
  constructor(sets) {
7
7
  this.sets = sets;
8
+ this.spans = sets.map((set) => ({
9
+ precall: options(set, 'precall'),
10
+ settle: options(set, 'settle'),
11
+ explain: options(set, 'explain')
12
+ }));
8
13
  }
9
- async preflight(context, parameters) {
10
- for (const set of this.sets) {
11
- if (set.family.preflight === undefined)
14
+ declared(family) {
15
+ return this.sets.find((set) => set.family.name === family)?.directives;
16
+ }
17
+ async precall(context, parameters) {
18
+ let output = null;
19
+ for (let i = 0; i < this.sets.length; i++) {
20
+ const set = this.sets[i];
21
+ if (set.family.precall === undefined)
22
+ continue;
23
+ const out = await console.span(this.spans[i].precall, async () => await set.family.precall(set.directives, context, parameters));
24
+ if (out === null)
12
25
  continue;
13
- const output = await set.family.preflight(set.directives, context, parameters);
14
26
  if (output !== null)
15
- return output;
27
+ throw new Error('Multiple precall directives responded');
28
+ else
29
+ output = out;
30
+ }
31
+ return output;
32
+ }
33
+ /**
34
+ * What the method says about itself, as its directives leave it. Each family is given
35
+ * what the one before it returned, and the first to refuse ends it: a method this caller
36
+ * cannot reach is not described at all.
37
+ */
38
+ async explain(context, introspection) {
39
+ let described = introspection;
40
+ for (let i = 0; i < this.sets.length; i++) {
41
+ const set = this.sets[i];
42
+ if (set.family.explain === undefined)
43
+ continue;
44
+ const next = await console.span(this.spans[i].explain, async () => await set.family.explain(set.directives, context, described));
45
+ if (next === null)
46
+ return null;
47
+ described = next;
16
48
  }
17
- return null;
49
+ return described;
18
50
  }
19
51
  async settle(context, response) {
20
- for (const set of this.sets)
52
+ for (let i = 0; i < this.sets.length; i++) {
53
+ const set = this.sets[i];
21
54
  if (set.family.settle !== undefined)
22
- await set.family.settle(set.directives, context, response);
55
+ await console.span(this.spans[i].settle, async () => await set.family.settle(set.directives, context, response));
56
+ }
57
+ }
58
+ dispose() {
59
+ for (const set of this.sets)
60
+ set.family.dispose?.(set.directives);
23
61
  }
24
62
  }
25
- exports.Directives = Directives;
26
- class DirectivesFactory {
63
+ export class DirectivesFactory {
27
64
  remotes;
28
65
  families = {};
29
66
  mandatory = [];
30
- constructor(families, remotes) {
67
+ instances = [];
68
+ /** The request-scoped stages, in registration order, with the spans they run in. */
69
+ stages = [];
70
+ // eslint-disable-next-line max-params
71
+ constructor(families, remotes, host, options) {
31
72
  for (const family of families) {
73
+ family.mount?.(host, options);
32
74
  this.families[family.name] = family;
33
75
  if (family.mandatory)
34
76
  this.mandatory.push(family.name);
77
+ this.stages.push({
78
+ family,
79
+ preflight: { name: `${family.name} preflight` },
80
+ depart: { name: `${family.name} depart` }
81
+ });
35
82
  }
36
83
  this.remotes = remotes;
37
84
  }
38
- create(declarations) {
85
+ /**
86
+ * Request-scoped, before anything is routed, so no directives are passed: a family
87
+ * answers here only for what it does on its own behalf.
88
+ */
89
+ async preflight(context) {
90
+ for (const stage of this.stages)
91
+ if (stage.family.preflight !== undefined)
92
+ await console.span(stage.preflight, async () => {
93
+ await stage.family.preflight(context);
94
+ });
95
+ }
96
+ /** Request-scoped, on the message going back. */
97
+ async depart(context, response) {
98
+ for (const stage of this.stages)
99
+ if (stage.family.depart !== undefined)
100
+ await console.span(stage.depart, async () => {
101
+ await stage.family.depart(context, response);
102
+ });
103
+ }
104
+ create(declarations, route = '') {
39
105
  const groups = {};
40
106
  const mandatory = new Set(this.mandatory);
41
- declarations.sort((a, b) => (mandatory.has(b.family) ? 1 : 0) - (mandatory.has(a.family) ? 1 : 0));
107
+ const names = {};
42
108
  for (const declaration of declarations) {
43
109
  const family = this.families[declaration.family];
44
110
  if (family === undefined)
45
- throw new Error(`Directive family '${declaration.family}' is not found.`);
46
- const directive = family.create(declaration.name, declaration.value, this.remotes);
111
+ throw new Error(`Directive family '${declaration.family}' is not found`);
112
+ const directive = family.create(declaration.name, declaration.value, this.remotes, route);
47
113
  groups[family.name] ??= [];
48
114
  groups[family.name].push(directive);
115
+ names[family.name] ??= [];
116
+ names[family.name].push(`${declaration.family}:${declaration.name}`);
49
117
  mandatory.delete(family.name);
50
118
  }
51
119
  const sets = [];
52
120
  for (const family of mandatory)
53
121
  sets.push({
54
122
  family: this.families[family],
55
- directives: []
123
+ directives: [],
124
+ names: []
56
125
  });
57
126
  for (const [family, directives] of Object.entries(groups))
58
127
  sets.push({
59
128
  family: this.families[family],
60
- directives
129
+ directives,
130
+ names: names[family]
61
131
  });
62
- return new Directives(sets);
132
+ // Mandatory families run in the order they are registered in, not in the order a
133
+ // manifest happens to mention them: `auth` must resolve the identity before `io`
134
+ // can key a quota on it, and a request it denies should not reach `io` at all.
135
+ // The rest keep the order they were declared in, the sort being stable.
136
+ sets.sort((a, b) => this.rank(a.family.name) - this.rank(b.family.name));
137
+ // whatever order a family needs among its own directives is fixed here, not per request
138
+ for (const set of sets)
139
+ set.family.arrange?.(set.directives);
140
+ const directives = new Directives(sets);
141
+ this.instances.push(directives);
142
+ return directives;
63
143
  }
144
+ inheritable(directive) {
145
+ return this.families[directive.family]?.inherited !== false;
146
+ }
147
+ dispose() {
148
+ for (const directives of this.instances)
149
+ directives.dispose();
150
+ }
151
+ /** Mandatory families first, in their own order; everything else keeps its own. */
152
+ rank(family) {
153
+ const index = this.mandatory.indexOf(family);
154
+ return index === -1 ? this.mandatory.length : index;
155
+ }
156
+ }
157
+ function options(set, stage) {
158
+ const options = { name: `${set.family.name} ${stage}` };
159
+ if (set.names !== undefined && set.names.length > 0)
160
+ options.attributes = { directives: Array.from(new Set(set.names)).join(' ') };
161
+ return options;
64
162
  }
65
- exports.DirectivesFactory = DirectivesFactory;
66
- exports.shortcuts = new Map([
67
- ['anonymous', 'auth:anonymous'],
68
- ['id', 'auth:id'],
69
- ['role', 'auth:role'],
70
- ['rule', 'auth:rule'],
71
- ['incept', 'auth:incept'],
72
- ['input', 'io:input'],
73
- ['output', 'io:output']
74
- ]);
75
163
  //# sourceMappingURL=Directive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Directive.js","sourceRoot":"","sources":["../source/Directive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Directive.js","sourceRoot":"","sources":["../source/Directive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import * as http from '../HTTP/index.ts';
2
+ import type { Tree } from '../RTD/index.ts';
3
+ /**
4
+ * What an application serves, for every route at once. Each entry is what `OPTIONS` on that
5
+ * path answers, so a key taken from here is a request that can be made.
6
+ */
7
+ export declare class Explorer {
8
+ private readonly tree;
9
+ constructor(tree: Tree);
10
+ process(context: http.Context): Promise<http.OutgoingMessage>;
11
+ }
@@ -0,0 +1,29 @@
1
+ import * as http from '../HTTP/index.js';
2
+ import { BRANCH_TTL } from '@toa.io/definitions/extensions.exposition';
3
+ import { describe } from './tree.js';
4
+ /**
5
+ * What an application serves, for every route at once. Each entry is what `OPTIONS` on that
6
+ * path answers, so a key taken from here is a request that can be made.
7
+ */
8
+ export class Explorer {
9
+ tree;
10
+ constructor(tree) {
11
+ this.tree = tree;
12
+ }
13
+ async process(context) {
14
+ if (context.request.method !== 'OPTIONS')
15
+ throw new http.MethodNotAllowed(new Headers({ allow: ALLOW }));
16
+ return {
17
+ body: await describe(this.tree, context),
18
+ headers: new Headers({
19
+ allow: ALLOW,
20
+ // it stands until a branch expires, and it is filtered by who asked
21
+ 'cache-control': `private, max-age=${BRANCH_TTL / 1000}`,
22
+ vary: 'authorization'
23
+ })
24
+ };
25
+ }
26
+ }
27
+ /** The verbs of this path, which are not the verbs of the tree it answers with. */
28
+ const ALLOW = 'GET, HEAD, OPTIONS';
29
+ //# sourceMappingURL=Explorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Explorer.js","sourceRoot":"","sources":["../../source/Discovery/Explorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACF,IAAI,CAAM;IAE3B,YAAmB,IAAU;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,OAAqB;QACxC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;YACtC,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAEhE,OAAO;YACL,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;YACxC,OAAO,EAAE,IAAI,OAAO,CAAC;gBACnB,KAAK,EAAE,KAAK;gBACZ,oEAAoE;gBACpE,eAAe,EAAE,oBAAoB,UAAU,GAAG,IAAI,EAAE;gBACxD,IAAI,EAAE,eAAe;aACtB,CAAC;SACH,CAAA;IACH,CAAC;CACF;AAED,mFAAmF;AACnF,MAAM,KAAK,GAAG,oBAAoB,CAAA"}
@@ -0,0 +1,43 @@
1
+ import type { Input, Output } from '../io.ts';
2
+ import type { Interceptor } from '../Interception.ts';
3
+ /**
4
+ * The page that reads the tree: the directory `ui` builds, and nothing else.
5
+ *
6
+ * An interceptor rather than an endpoint, for the reason the OAuth documents are one — it
7
+ * runs before a credential is resolved. A page is public, and one served after `auth` would
8
+ * refuse the client holding a stale token, who is the client most likely to have opened it.
9
+ * It is also what keeps `depart` off these replies: a re-issued credential sets `no-store`,
10
+ * which would take the build hash off every asset that carries one.
11
+ *
12
+ * It claims the whole prefix, so that nothing under it reaches the router — a crawler
13
+ * asking for assets that are not there would otherwise have every one of them counted as a
14
+ * route that has gone missing, and ping discovery about it.
15
+ *
16
+ * `OPTIONS` on the prefix itself is the exception it lets through: the tree is what answers
17
+ * there, and that needs the identity this stage does not have yet.
18
+ */
19
+ export declare class Site implements Interceptor {
20
+ readonly name = "discovery";
21
+ /** What a test points at a fixture; the build otherwise. */
22
+ private readonly override;
23
+ private root;
24
+ constructor(root?: string);
25
+ /**
26
+ * Resolved here rather than at construction because this is a module singleton, built
27
+ * when the module loads and before anything has said where the page is. Said once, too,
28
+ * because a page that is not built is otherwise a `503` per request and nothing else.
29
+ */
30
+ mount(): void;
31
+ intercept(input: Input): Output;
32
+ /**
33
+ * The file a request lands on, or `null` when nothing does. A path that exists is served
34
+ * as it is; anything else that could be a route falls back to the page, because the
35
+ * client router — not this server — knows what routes there are.
36
+ */
37
+ private resolve;
38
+ /**
39
+ * Always with a `content-type` of its own: a stream without one is framed as
40
+ * `multipart/*` and the page arrives as an envelope of JSON-encoded buffers.
41
+ */
42
+ private send;
43
+ }
@@ -0,0 +1,171 @@
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
+ constructor(root) {
29
+ this.override = root;
30
+ this.root = root ?? site();
31
+ }
32
+ /**
33
+ * Resolved here rather than at construction because this is a module singleton, built
34
+ * when the module loads and before anything has said where the page is. Said once, too,
35
+ * because a page that is not built is otherwise a `503` per request and nothing else.
36
+ */
37
+ mount() {
38
+ this.root = this.override ?? site();
39
+ if (!isFile(path.join(this.root, 'index.html')))
40
+ console.warn('Discovery UI is not built', { root: this.root });
41
+ }
42
+ intercept(input) {
43
+ const { pathname } = input.url;
44
+ if (pathname !== DISCOVERY && !pathname.startsWith(DISCOVERY + '/'))
45
+ return null;
46
+ // the prefix itself, as opposed to something under it
47
+ const bare = pathname === DISCOVERY || pathname === DISCOVERY + '/';
48
+ const method = input.request.method;
49
+ if (method !== 'GET' && method !== 'HEAD') {
50
+ // the tree answers here, and it needs the identity this stage does not have yet
51
+ if (bare && method === 'OPTIONS')
52
+ return null;
53
+ throw new http.MethodNotAllowed(new Headers({ allow: bare ? 'GET, HEAD, OPTIONS' : 'GET, HEAD' }));
54
+ }
55
+ // the page is a directory, and every asset it names is relative to it
56
+ if (pathname === DISCOVERY)
57
+ return {
58
+ status: 302,
59
+ headers: new Headers({ location: DISCOVERY + '/' + input.url.search })
60
+ };
61
+ const file = this.resolve(pathname);
62
+ if (file === null)
63
+ throw new http.NotFound();
64
+ return this.send(file, method);
65
+ }
66
+ /**
67
+ * The file a request lands on, or `null` when nothing does. A path that exists is served
68
+ * as it is; anything else that could be a route falls back to the page, because the
69
+ * client router — not this server — knows what routes there are.
70
+ */
71
+ resolve(pathname) {
72
+ /*
73
+ * Decoded after the prefix is off, so that an encoded separator cannot smuggle a
74
+ * segment past the test that put us here. A dot segment never arrives — `..` and
75
+ * `%2e%2e` alike are collapsed while the URL is parsed — but `%2f` survives that and
76
+ * decodes to a separator here, which is what the guard below is for.
77
+ */
78
+ const relative = decode(pathname.slice(DISCOVERY.length));
79
+ if (relative === null || relative.includes('\0'))
80
+ return null;
81
+ const file = path.join(this.root, relative);
82
+ if (file !== this.root && !file.startsWith(this.root + path.sep))
83
+ return null;
84
+ if (isFile(file))
85
+ return file;
86
+ /*
87
+ * A missing asset is missing, but a route can look like one. What this server would
88
+ * have served is what it knows how to serve, so anything else is a route and falls
89
+ * back to the page — as does anything ending in a slash, which is no name for a file.
90
+ */
91
+ const asset = !relative.endsWith('/') && path.extname(relative) in TYPES;
92
+ return asset ? null : path.join(this.root, 'index.html');
93
+ }
94
+ /**
95
+ * Always with a `content-type` of its own: a stream without one is framed as
96
+ * `multipart/*` and the page arrives as an envelope of JSON-encoded buffers.
97
+ */
98
+ send(file, method) {
99
+ const stats = fs.statSync(file, { throwIfNoEntry: false });
100
+ if (stats === undefined)
101
+ return {
102
+ status: 503,
103
+ headers: new Headers({ 'content-type': 'text/plain; charset=utf-8' }),
104
+ body: Readable.from([Buffer.from(NOT_BUILT)])
105
+ };
106
+ const headers = new Headers({
107
+ 'content-type': TYPES[path.extname(file)] ?? 'application/octet-stream',
108
+ 'content-length': String(stats.size),
109
+ 'cache-control': caching(path.relative(this.root, file))
110
+ });
111
+ // a HEAD reply carries no body but reports the length a GET would have returned; the
112
+ // HTTP/2 layer does not drop one written to it, so none is opened
113
+ if (method === 'HEAD')
114
+ return { status: 200, headers };
115
+ return { status: 200, headers, body: fs.createReadStream(file) };
116
+ }
117
+ }
118
+ const NOT_BUILT = 'The discovery UI is not built. Run `npm run build:ui`.\n';
119
+ function decode(pathname) {
120
+ try {
121
+ return decodeURIComponent(pathname);
122
+ }
123
+ catch {
124
+ return null;
125
+ }
126
+ }
127
+ function isFile(file) {
128
+ return fs.statSync(file, { throwIfNoEntry: false })?.isFile() === true;
129
+ }
130
+ /**
131
+ * Where `npm run build:ui` puts the page. Two levels up because this module is a directory
132
+ * deeper than `source` itself, and `transpiled` mirrors that — so it resolves the same from
133
+ * either. The variable is the features', which run against a fixture rather than a build.
134
+ */
135
+ function site() {
136
+ return (process.env.__TESTING_EXPOSITION_DISCOVERY_ROOT ??
137
+ path.resolve(import.meta.dirname, '..', '..', 'ui', 'dist'));
138
+ }
139
+ /** Assets under this prefix carry their build hash in the name. */
140
+ const IMMUTABLE = path.join('_app', 'immutable');
141
+ const FOREVER = 'public, max-age=31536000, immutable';
142
+ /** The icons: named without a hash, so they are re-read, but rarely. */
143
+ const ICONS = new Set(['favicon.ico', 'favicon-96x96.png', 'apple-touch-icon.png']);
144
+ const DAY = 'public, max-age=86400';
145
+ /**
146
+ * How long what is served may be held. The page is never cached — it names the assets, and
147
+ * their names carry the build. An icon is named for what it is rather than for its content,
148
+ * so it is asked about again, but not on every page load.
149
+ */
150
+ function caching(relative) {
151
+ if (relative.startsWith(IMMUTABLE))
152
+ return FOREVER;
153
+ return ICONS.has(relative) ? DAY : 'no-cache';
154
+ }
155
+ const TYPES = {
156
+ '.css': 'text/css; charset=utf-8',
157
+ '.html': 'text/html; charset=utf-8',
158
+ '.ico': 'image/x-icon',
159
+ '.jpg': 'image/jpeg',
160
+ '.js': 'text/javascript; charset=utf-8',
161
+ '.json': 'application/json; charset=utf-8',
162
+ '.map': 'application/json; charset=utf-8',
163
+ '.png': 'image/png',
164
+ '.svg': 'image/svg+xml',
165
+ '.txt': 'text/plain; charset=utf-8',
166
+ '.webmanifest': 'application/manifest+json',
167
+ '.webp': 'image/webp',
168
+ '.woff': 'font/woff',
169
+ '.woff2': 'font/woff2'
170
+ };
171
+ //# 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,26 @@
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
+ }
23
+ /** What one resource is, and what it serves; a verb is upper case, and nothing else here is. */
24
+ export interface Resource extends Described {
25
+ [verb: string]: unknown;
26
+ }
@@ -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"}