@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
@@ -0,0 +1,103 @@
1
+ import { console } from 'openspan';
2
+ import * as http from '../HTTP/index.js';
3
+ import { schemas } from '@toa.io/definitions/extensions.exposition';
4
+ import { BATCH } from '@toa.io/definitions/extensions.exposition';
5
+ import { address, split } from './names.js';
6
+ import { fork } from './Context.js';
7
+ import { BATCH_TOO_LARGE, INVALID_REQUEST, PARSE, failure, of, response } from './errors.js';
8
+ import { VERSION } from './types.js';
9
+ /**
10
+ * JSON-RPC, as the calls a request carries.
11
+ *
12
+ * It clones the context per call and hands each clone back to the gateway: it holds no
13
+ * tree, no index and no knowledge of routing. Whether a name resolves, what it resolves
14
+ * to, and what the directives of that route do are answered by the same `route` an
15
+ * ordinary request goes through.
16
+ */
17
+ export class Dispatcher {
18
+ batch;
19
+ constructor(options) {
20
+ this.batch = options.batch ?? BATCH;
21
+ }
22
+ async dispatch(context, route) {
23
+ if (context.request.method !== 'POST')
24
+ throw new http.MethodNotAllowed(new Headers({ allow: 'POST' }));
25
+ const envelope = await this.read(context);
26
+ const batched = Array.isArray(envelope);
27
+ const calls = batched ? envelope : [envelope];
28
+ if (calls.length === 0)
29
+ throw new http.BadRequest(response(null, failure(INVALID_REQUEST, 'A request carries at least one call')));
30
+ if (calls.length > this.batch)
31
+ throw new http.BadRequest(response(null, failure(BATCH_TOO_LARGE, `A request carries at most ${this.batch} calls`)));
32
+ const answers = [];
33
+ // one after another: a request the caller writes should not become a fan-out they own
34
+ for (const call of calls) {
35
+ const answer = await this.answer(call, context, route);
36
+ if (answer !== null)
37
+ answers.push(answer);
38
+ }
39
+ // every call was a notification, and a notification is answered by not answering
40
+ if (answers.length === 0)
41
+ return { status: NO_CONTENT };
42
+ // a reply assembled from several is not one of them, and is not stored as if it were
43
+ return {
44
+ status: OK,
45
+ body: batched ? answers : answers[0],
46
+ headers: new Headers({ 'cache-control': 'no-store' })
47
+ };
48
+ }
49
+ async answer(input, context, route) {
50
+ const invalid = schemas.call.fit(input);
51
+ // it may have carried an id, but nothing about it is trustworthy enough to answer to
52
+ if (invalid !== null)
53
+ return response(null, failure(INVALID_REQUEST, invalid.message));
54
+ return await this.call(input, context, route);
55
+ }
56
+ async call(call, context, route) {
57
+ const notification = call.id === undefined;
58
+ try {
59
+ const params = call.params ?? {};
60
+ const { path, verb, variables } = address(call.method, params);
61
+ const { query, input } = split(params, variables);
62
+ const clone = fork(context, path, verb, query, input);
63
+ // one span per call, so what the directives of that call open has somewhere to hang
64
+ const message = await console.span({ name: call.method, attributes: { id: call.id } }, async () => await route(clone));
65
+ // what `io:output` restricts, over this call's reply rather than the envelope
66
+ await http.shape(clone, message);
67
+ if (notification)
68
+ return null;
69
+ return { jsonrpc: VERSION, id: call.id, result: message.body ?? null };
70
+ }
71
+ catch (exception) {
72
+ /*
73
+ * A credential belongs to the request. Refusing one call for it would leave the
74
+ * reply a 200, and the challenge that tells a client where to authenticate is
75
+ * attached to a 401 — so the whole envelope is refused instead.
76
+ */
77
+ if (exception instanceof http.Unauthorized)
78
+ throw exception;
79
+ if (notification) {
80
+ console.debug('Notification failed', {
81
+ method: call.method,
82
+ error: of(exception)
83
+ });
84
+ return null;
85
+ }
86
+ return { jsonrpc: VERSION, id: call.id, error: of(exception) };
87
+ }
88
+ }
89
+ /** A body the decoder refuses is a parse error; a media type it does not know is not. */
90
+ async read(context) {
91
+ try {
92
+ return await context.body();
93
+ }
94
+ catch (exception) {
95
+ if (exception instanceof http.BadRequest)
96
+ throw new http.BadRequest(response(null, failure(PARSE, 'Parse error')));
97
+ throw exception;
98
+ }
99
+ }
100
+ }
101
+ const OK = 200;
102
+ const NO_CONTENT = 204;
103
+ //# sourceMappingURL=Dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dispatcher.js","sourceRoot":"","sources":["../../source/RPC/Dispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type Failure, type Response } from './types.ts';
2
+ export declare const PARSE = -32700;
3
+ export declare const INVALID_REQUEST = -32600;
4
+ export declare const METHOD_NOT_FOUND = -32601;
5
+ export declare const INVALID_PARAMS = -32602;
6
+ export declare const INTERNAL = -32603;
7
+ export declare const FORBIDDEN = -32000;
8
+ export declare const REFUSED = -32001;
9
+ export declare const BATCH_TOO_LARGE = -32002;
10
+ export declare function failure(code: number, message: string, data?: unknown): Failure;
11
+ export declare function response(id: string | number | null, error: Failure): Response;
12
+ /**
13
+ * What an exception says as a JSON-RPC error.
14
+ *
15
+ * The readable text is `body`, never `message`: `http.Exception` calls `super()` with no
16
+ * argument, so every one of them carries an empty `message`.
17
+ */
18
+ export declare function of(exception: unknown): Failure;
@@ -0,0 +1,67 @@
1
+ import * as http from '../HTTP/index.js';
2
+ import { VERSION } from './types.js';
3
+ /*
4
+ * The five the specification fixes (JSON-RPC 2.0 §5.1). A client reads these the same
5
+ * whoever answers.
6
+ */
7
+ export const PARSE = -32700;
8
+ export const INVALID_REQUEST = -32600;
9
+ export const METHOD_NOT_FOUND = -32601;
10
+ export const INVALID_PARAMS = -32602;
11
+ export const INTERNAL = -32603;
12
+ /*
13
+ * Ours. The specification reserves -32000 to -32099 for implementation-defined server
14
+ * errors and defines nothing in it, so these mean nothing outside Toa — which is why
15
+ * `REFUSED` carries the operation's own code in `data`.
16
+ */
17
+ export const FORBIDDEN = -32000;
18
+ export const REFUSED = -32001;
19
+ export const BATCH_TOO_LARGE = -32002;
20
+ export function failure(code, message, data) {
21
+ const value = { code, message };
22
+ if (data !== undefined)
23
+ value.data = data;
24
+ return value;
25
+ }
26
+ export function response(id, error) {
27
+ return { jsonrpc: VERSION, id, error };
28
+ }
29
+ /**
30
+ * What an exception says as a JSON-RPC error.
31
+ *
32
+ * The readable text is `body`, never `message`: `http.Exception` calls `super()` with no
33
+ * argument, so every one of them carries an empty `message`.
34
+ */
35
+ export function of(exception) {
36
+ if (exception instanceof http.UnprocessableEntity)
37
+ return refusal(exception);
38
+ if (exception instanceof http.NotFound || exception instanceof http.MethodNotAllowed)
39
+ return failure(METHOD_NOT_FOUND, text(exception, 'Method not found'));
40
+ if (exception instanceof http.Forbidden)
41
+ return failure(FORBIDDEN, text(exception, 'Forbidden'));
42
+ if (exception instanceof http.BadRequest)
43
+ return failure(INVALID_PARAMS, text(exception, 'Invalid params'));
44
+ // a conflict, a precondition, a throttle: the call was refused, and by what is worth saying
45
+ if (exception instanceof http.ClientError)
46
+ return failure(REFUSED, text(exception, 'Refused'), { status: exception.status });
47
+ return failure(INTERNAL, 'Internal error');
48
+ }
49
+ /**
50
+ * An operation that declares its errors answers with one rather than throwing, and the
51
+ * reply contract states `{ code, message? }` — the message optional. The number says the
52
+ * operation refused; `data.code` says what it refused with, and is what a caller branches on.
53
+ */
54
+ function refusal(exception) {
55
+ const body = exception.body;
56
+ if (typeof body !== 'object' || body === null || typeof body.code !== 'string')
57
+ return failure(REFUSED, text(exception, 'Refused'));
58
+ const code = body.code;
59
+ const message = typeof body.message === 'string' && body.message !== '' ? body.message : code;
60
+ return failure(REFUSED, message, { code });
61
+ }
62
+ function text(exception, fallback) {
63
+ return typeof exception.body === 'string' && exception.body !== ''
64
+ ? exception.body
65
+ : fallback;
66
+ }
67
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../source/RPC/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { Dispatcher } from './Dispatcher.ts';
@@ -0,0 +1,2 @@
1
+ export { Dispatcher } from './Dispatcher.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/RPC/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,31 @@
1
+ import type { Segment } from '../RTD/segment.ts';
2
+ import { type Params } from './types.ts';
3
+ /**
4
+ * What a name resolves to: the path the call is made at, and the verb it is made with.
5
+ *
6
+ * A name is the route template with its variables marked and the verb appended as a segment
7
+ * of its own — `pots._id.GET`. The revision names the characters a tool's name may hold, and
8
+ * `/` is not among them, so segments are joined by `.` — which a segment cannot hold either,
9
+ * so nothing in a name can be mistaken for anything else, and the verb is always last.
10
+ */
11
+ export interface Address {
12
+ path: string;
13
+ verb: string;
14
+ /** the `params` the path took, which are therefore not the operation's input */
15
+ variables: string[];
16
+ }
17
+ export declare function address(method: string, params: Params): Address;
18
+ /**
19
+ * What the call carries, as a request carries it: the path took its variables, `query` is
20
+ * the querystring, and the rest is the body.
21
+ */
22
+ export declare function split(params: Params, variables: string[]): {
23
+ query?: Params;
24
+ input?: Params;
25
+ };
26
+ /** The name of a method on this route, or nothing where the route has none. */
27
+ export declare function name(segments: Segment[], verb: string): string | null;
28
+ /** The segment that leaves a route unnameable, as it was declared, or nothing where none does. */
29
+ export declare function refusal(segments: Segment[]): string | null;
30
+ /** The route as it was declared, which is how a message about it should read. */
31
+ export declare function template(segments: Segment[]): string;
@@ -0,0 +1,121 @@
1
+ import * as http from '../HTTP/index.js';
2
+ import { verbs } from '../RTD/syntax/index.js';
3
+ import { QUERY } from './types.js';
4
+ export function address(method, params) {
5
+ const parts = method.split(SEPARATOR);
6
+ const verb = parts.pop();
7
+ if (!verbs.has(verb))
8
+ throw new http.NotFound(`'${method}' names no method`);
9
+ const variables = [];
10
+ const fragments = [];
11
+ for (const part of parts) {
12
+ const key = parameter(part);
13
+ if (key === null) {
14
+ fragments.push(literal(part, method));
15
+ continue;
16
+ }
17
+ if (part !== TAIL && !NAMEABLE.test(key))
18
+ throw new http.NotFound(`'${method}' names no procedure`);
19
+ const value = params[key];
20
+ if (value === undefined || value === null)
21
+ throw new http.BadRequest(`'${method}' requires the parameter '${key}'`);
22
+ const fragment = String(value);
23
+ // `__` stands for the rest of the path and may carry separators; a variable is one segment
24
+ if (!(part === TAIL ? TAILED : OPAQUE).test(fragment))
25
+ throw new http.BadRequest(`The parameter '${key}' cannot be a path of its own`);
26
+ variables.push(key);
27
+ fragments.push(fragment);
28
+ }
29
+ // a route is matched with its trailing slash, and the trunk is the bare one
30
+ const path = fragments.length === 0 ? '/' : `/${fragments.join('/')}/`;
31
+ return { path, verb, variables };
32
+ }
33
+ /**
34
+ * What the call carries, as a request carries it: the path took its variables, `query` is
35
+ * the querystring, and the rest is the body.
36
+ */
37
+ export function split(params, variables) {
38
+ const input = {};
39
+ let query;
40
+ for (const [key, value] of Object.entries(params)) {
41
+ if (variables.includes(key))
42
+ continue;
43
+ if (key !== QUERY) {
44
+ input[key] = value;
45
+ continue;
46
+ }
47
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
48
+ throw new http.BadRequest(`'${QUERY}' must be an object`);
49
+ query = value;
50
+ }
51
+ // an absent body is what a request without one has, and the mapping fills it as it does
52
+ return { query, input: Object.keys(input).length === 0 ? undefined : input };
53
+ }
54
+ /** The parameter a part reads, or nothing where the part is a literal segment. */
55
+ function parameter(part) {
56
+ if (part === TAIL)
57
+ return WILDCARD;
58
+ return part[0] === VARIABLE ? part.slice(1) : null;
59
+ }
60
+ /** A segment a name cannot spell is a segment no name has, so this one names nothing. */
61
+ function literal(part, method) {
62
+ if (!NAMEABLE.test(part))
63
+ throw new http.NotFound(`'${method}' names no procedure`);
64
+ return part;
65
+ }
66
+ /** The name of a method on this route, or nothing where the route has none. */
67
+ export function name(segments, verb) {
68
+ const parts = [];
69
+ for (const segment of segments) {
70
+ const part = component(segment);
71
+ if (part === null)
72
+ return null;
73
+ parts.push(part);
74
+ }
75
+ parts.push(verb);
76
+ return parts.join(SEPARATOR);
77
+ }
78
+ /** The segment that leaves a route unnameable, as it was declared, or nothing where none does. */
79
+ export function refusal(segments) {
80
+ for (const segment of segments)
81
+ if (component(segment) === null)
82
+ return declared(segment);
83
+ return null;
84
+ }
85
+ function component(segment) {
86
+ if (segment.fragment !== null)
87
+ return NAMEABLE.test(segment.fragment) ? segment.fragment : null;
88
+ if (segment.wildcard === true)
89
+ return TAIL;
90
+ // it stands for a segment the caller cannot name, so there is nothing to substitute
91
+ if (segment.placeholder === null)
92
+ return null;
93
+ return NAMEABLE.test(segment.placeholder) ? VARIABLE + segment.placeholder : null;
94
+ }
95
+ /** The route as it was declared, which is how a message about it should read. */
96
+ export function template(segments) {
97
+ return '/' + segments.map(declared).join('/');
98
+ }
99
+ function declared(segment) {
100
+ if (segment.fragment !== null)
101
+ return segment.fragment;
102
+ if (segment.wildcard === true)
103
+ return '**';
104
+ return segment.placeholder === null ? '*' : ':' + segment.placeholder;
105
+ }
106
+ const SEPARATOR = '.';
107
+ const VARIABLE = '_';
108
+ const TAIL = '__';
109
+ /** How the RTD names the rest of a path, wherever a parameter of it is read. */
110
+ const WILDCARD = '**';
111
+ /**
112
+ * What a segment may hold to have a name. `_` is the convention's own, and every other
113
+ * character a client leaves alone is here: a client shows a model the name with the rest
114
+ * turned into `_`, and two names must not become one.
115
+ */
116
+ const NAMEABLE = /^[A-Za-z0-9-]+$/;
117
+ /** A segment ends at what divides or ends a path. */
118
+ const OPAQUE = /^[^/?#]*$/;
119
+ /** A tail is several segments, so it keeps the divider and loses only what ends a path. */
120
+ const TAILED = /^[^?#]*$/;
121
+ //# sourceMappingURL=names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../source/RPC/names.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /** The version every call and every response states. */
2
+ export declare const VERSION = "2.0";
3
+ /**
4
+ * The member `params` reserves for what a querystring would carry. An operation's input is
5
+ * free to have an `id` or a `limit` of its own, so the two cannot share one object.
6
+ */
7
+ export declare const QUERY = "query";
8
+ export type Params = Record<string, unknown>;
9
+ export interface Call {
10
+ jsonrpc: string;
11
+ method: string;
12
+ params?: Params;
13
+ /** Absent makes this a notification: it runs, and nothing is returned for it. */
14
+ id?: string | number;
15
+ }
16
+ export interface Response {
17
+ jsonrpc: string;
18
+ /** `null` where the request was not readable enough to carry one. */
19
+ id: string | number | null;
20
+ result?: unknown;
21
+ error?: Failure;
22
+ }
23
+ export interface Failure {
24
+ code: number;
25
+ message: string;
26
+ data?: unknown;
27
+ }
@@ -0,0 +1,8 @@
1
+ /** The version every call and every response states. */
2
+ export const VERSION = '2.0';
3
+ /**
4
+ * The member `params` reserves for what a querystring would carry. An operation's input is
5
+ * free to have an `id` or a `limit` of its own, so the two cannot share one object.
6
+ */
7
+ export const QUERY = 'query';
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../source/RPC/types.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAA;AAE5B;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAA"}
@@ -1,6 +1,6 @@
1
- import { type DirectiveFactory } from './Directives';
2
- import { type EndpointsFactory } from './Endpoint';
3
- import type { Directive } from './syntax';
1
+ import { type DirectiveFactory } from './Directives.ts';
2
+ import { type EndpointsFactory } from './Endpoint.ts';
3
+ import type { Directive } from './syntax/index.ts';
4
4
  export interface Context<TExtension = any> {
5
5
  readonly protected: boolean;
6
6
  readonly endpoints: EndpointsFactory;
@@ -8,5 +8,7 @@ export interface Context<TExtension = any> {
8
8
  readonly factory: DirectiveFactory;
9
9
  stack: Directive[];
10
10
  };
11
- readonly extension?: TExtension;
11
+ /** The route being built, accumulated on the way down and restored on the way up. */
12
+ path: string;
13
+ readonly extension: TExtension;
12
14
  }
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=Context.js.map
@@ -1,22 +1,87 @@
1
- import type { Parameter } from './Match';
2
- import type * as syntax from './syntax';
3
- import type { Context, OutgoingMessage } from '../HTTP';
4
- import type { Output } from '../io';
1
+ import type { Parameter } from './Match.ts';
2
+ import type * as syntax from './syntax/index.ts';
3
+ import type { Context, OutgoingMessage, Options } from '../HTTP/index.ts';
4
+ import type { Output } from '../io.ts';
5
+ import type { Introspection } from '../Introspection.ts';
6
+ import type { extensions } from '@toa.io/core/types';
7
+ type Host = extensions.Host;
5
8
  export interface Directives {
6
- preflight: (context: Context, parameters: Parameter[]) => Promise<Output>;
9
+ /**
10
+ * The directives of one family on this method, or nothing where it declares none of it.
11
+ * For a consumer of a declaration rather than of a stage: what a method is published as
12
+ * is stated on the route, and read where the publishing happens.
13
+ */
14
+ declared: <T>(family: string) => T[] | undefined;
15
+ precall: (context: Context, parameters: Parameter[]) => Promise<Output>;
16
+ /** What this route's directives make of what its method says about itself. */
17
+ explain: (context: Context, introspection: Introspection) => Promise<Introspection | null>;
7
18
  settle: (context: Context, response: OutgoingMessage) => Promise<void>;
19
+ dispose: () => void;
8
20
  }
9
21
  export interface DirectiveFactory {
10
- create: (directives: syntax.Directive[]) => Directives;
22
+ create: (directives: syntax.Directive[], route: string) => Directives;
23
+ /** Whether this declaration is carried into the nodes below the one it is on. */
24
+ inheritable: (directive: syntax.Directive) => boolean;
25
+ /** Runs every family's `preflight`, which is request-scoped and needs no node. */
26
+ preflight: (context: Context) => Promise<void>;
27
+ /** Runs every family's `depart`, the counterpart of `preflight`. */
28
+ depart: (context: Context, response: OutgoingMessage) => Promise<void>;
29
+ dispose: () => void;
11
30
  }
12
31
  export interface DirectiveSet {
13
32
  family: DirectiveFamily;
14
33
  directives: any[];
34
+ /** qualified directive names, e.g. `auth:id` */
35
+ names?: string[];
15
36
  }
16
37
  export interface DirectiveFamily<TDirective = any, TExtension = any> {
17
38
  readonly name: string;
18
39
  readonly mandatory: boolean;
40
+ /**
41
+ * Whether a declaration applies to everything below the node it is on, as every directive
42
+ * does unless it says otherwise. A family that describes what one node *is* sets this
43
+ * `false`: inherited, it would say the same thing of every resource under it.
44
+ */
45
+ readonly inherited?: boolean;
19
46
  create: (name: string, ...rest: any[]) => TDirective;
20
- preflight?: (directives: TDirective[], request: Context & TExtension, parameters: Parameter[]) => Output | Promise<Output>;
47
+ /**
48
+ * Called once per gateway with what the host provides and how the gateway is configured,
49
+ * before any directive is created.
50
+ */
51
+ mount?: (host: Host, options: Options) => void;
52
+ /**
53
+ * Puts the directives of one route in the order they must run in. Called once, when
54
+ * the set is built — the order cannot depend on the request.
55
+ */
56
+ arrange?: (directives: TDirective[]) => void;
57
+ /**
58
+ * Request-scoped, before anything is routed. It takes no directives: no node is known
59
+ * yet, and a request that carries several calls has no single node at all. What a
60
+ * directive declares is call-scoped by definition, so only what a family does on its
61
+ * own behalf — authenticating a credential — belongs here. It answers nothing: a stage
62
+ * that runs before a route is known has no reply to make, and refuses by throwing.
63
+ */
64
+ preflight?: (request: Context & TExtension) => void | Promise<void>;
65
+ /** Call-scoped, with what the node declares. Runs once per call. */
66
+ precall?: (directives: TDirective[], request: Context & TExtension, parameters: Parameter[]) => Output | Promise<Output>;
67
+ /**
68
+ * What this family's directives make of what the method says about itself, which is
69
+ * what `OPTIONS` answers and what a tool is described by. `null` refuses: the method
70
+ * is not reachable by this caller, and is not described at all.
71
+ *
72
+ * There is no request here — no route variable has a value and no body has arrived, which
73
+ * is why no parameters are passed — so a directive that can only tell from one hands back
74
+ * what it was given.
75
+ */
76
+ explain?: (directives: TDirective[], request: Context & TExtension, introspection: Introspection) => Introspection | null | Promise<Introspection | null>;
77
+ /** Call-scoped, on the message that call produced. */
21
78
  settle?: (directives: TDirective[], request: Context & TExtension, response: OutgoingMessage) => void | Promise<void>;
79
+ /**
80
+ * Request-scoped, on the message going back — the counterpart of `preflight`, and
81
+ * likewise without directives. A reply the whole request carries, such as a re-issued
82
+ * credential, is written here rather than by a call that would not own it.
83
+ */
84
+ depart?: (request: Context & TExtension, response: OutgoingMessage) => void | Promise<void>;
85
+ dispose?: (directives: TDirective[]) => void;
22
86
  }
87
+ export {};
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=Directives.js.map
@@ -1,9 +1,16 @@
1
- import { type Context } from './Context';
2
- import type * as http from '../HTTP';
3
- import type * as syntax from './syntax';
4
- import type * as RTD from './index';
1
+ import { type Context } from './Context.ts';
2
+ import type * as http from '../HTTP/index.ts';
3
+ import type * as syntax from './syntax/index.ts';
4
+ import type * as RTD from './index.ts';
5
+ import type { Introspection, Schema } from '../Introspection.ts';
5
6
  export interface Endpoint {
6
7
  call: (context: http.Context, parameters: RTD.Parameter[]) => Promise<http.OutgoingMessage>;
8
+ explain: (parameters: RTD.Parameter[]) => Promise<Introspection>;
9
+ /**
10
+ * What picks the records a call is about — `criteria`, `sort` and the rest. Stated as
11
+ * `selection` on the method, because it is not a parameter the resource declares.
12
+ */
13
+ selection: () => Record<string, Schema> | null;
7
14
  close: () => Promise<void>;
8
15
  }
9
16
  export interface EndpointsFactory {
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=Endpoint.js.map
@@ -1,4 +1,4 @@
1
- import { type Node } from './Node';
1
+ import { type Node } from './Node.ts';
2
2
  export interface Match {
3
3
  node: Node;
4
4
  parameters: Parameter[];
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=Match.js.map
@@ -1,9 +1,18 @@
1
- import type { Endpoint } from './Endpoint';
2
- import type { Directives } from './Directives';
1
+ import type { Parameter } from './Match.ts';
2
+ import type { Endpoint } from './Endpoint.ts';
3
+ import type { Directives } from './Directives.ts';
4
+ import type { Context } from '../HTTP/index.ts';
5
+ import type { Introspection } from '../Introspection.ts';
3
6
  export declare class Method {
4
7
  readonly endpoint: Endpoint | null;
5
8
  readonly directives: Directives;
6
9
  constructor(endpoint: Endpoint | null, directives: Directives);
10
+ /**
11
+ * What this method says about itself, as its directives leave it, or nothing where they
12
+ * refuse this caller. A method of no endpoint — one a directive answers on its own —
13
+ * states nothing of its own, and its directives still have their say.
14
+ */
15
+ explain(context: Context, parameters: Parameter[]): Promise<Introspection | null>;
7
16
  close(): Promise<void>;
8
17
  }
9
18
  export type Methods = Record<string, Method>;
@@ -1,16 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Method = void 0;
4
- class Method {
1
+ import { order } from '../Introspection.js';
2
+ export class Method {
5
3
  endpoint;
6
4
  directives;
7
5
  constructor(endpoint, directives) {
8
6
  this.endpoint = endpoint;
9
7
  this.directives = directives;
10
8
  }
9
+ /**
10
+ * What this method says about itself, as its directives leave it, or nothing where they
11
+ * refuse this caller. A method of no endpoint — one a directive answers on its own —
12
+ * states nothing of its own, and its directives still have their say.
13
+ */
14
+ async explain(context, parameters) {
15
+ const introspection = this.endpoint === null ? {} : await this.endpoint.explain(parameters);
16
+ const described = await this.directives.explain(context, introspection);
17
+ return described === null ? null : order(described);
18
+ }
11
19
  async close() {
12
20
  await this.endpoint?.close();
13
21
  }
14
22
  }
15
- exports.Method = Method;
16
23
  //# sourceMappingURL=Method.js.map