@toa.io/extensions.exposition 1.0.0-alpha.29 → 1.0.0-alpha.291

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 (1313) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/components/exposition.octets/manifest.toa.yaml +58 -0
  3. package/components/exposition.octets/operations/delete.js +5 -0
  4. package/components/exposition.octets/operations/get.js +8 -0
  5. package/components/exposition.octets/operations/head.js +5 -0
  6. package/components/exposition.octets/operations/put.js +142 -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/tsconfig.tsbuildinfo +1 -0
  14. package/components/identity.bans/types/index.d.ts +3 -0
  15. package/components/identity.bans/types/toa.d.ts +34 -0
  16. package/components/identity.basic/events/principal.js +8 -4
  17. package/components/identity.basic/manifest.toa.yaml +202 -29
  18. package/components/identity.basic/migrations/0002-indexes.yaml +13 -0
  19. package/components/identity.basic/operations/add.js +13 -0
  20. package/components/identity.basic/operations/authenticate.js +20 -17
  21. package/components/identity.basic/operations/check.js +14 -0
  22. package/components/identity.basic/operations/delete.js +7 -0
  23. package/components/identity.basic/operations/incept.js +34 -16
  24. package/components/identity.basic/operations/info.js +7 -0
  25. package/components/identity.basic/operations/lib/credentials.js +12 -0
  26. package/components/identity.basic/operations/transit.js +42 -21
  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.test.ts +18 -0
  34. package/components/identity.basic/source/lib/credentials.ts +12 -0
  35. package/components/identity.basic/source/transit.ts +64 -27
  36. package/components/identity.basic/tsconfig.json +2 -1
  37. package/components/identity.basic/tsconfig.tsbuildinfo +1 -0
  38. package/components/identity.basic/types/index.d.ts +26 -0
  39. package/components/identity.basic/types/toa.d.ts +121 -0
  40. package/components/identity.clients/manifest.toa.yaml +239 -0
  41. package/components/identity.clients/migrations/0002-indexes.yaml +4 -0
  42. package/components/identity.clients/operations/describe.js +44 -0
  43. package/components/identity.clients/operations/lib/Context.js +2 -0
  44. package/components/identity.clients/operations/lib/Entity.js +2 -0
  45. package/components/identity.clients/operations/lib/canonical.js +24 -0
  46. package/components/identity.clients/operations/lib/cimd.js +87 -0
  47. package/components/identity.clients/operations/lib/errors.js +5 -0
  48. package/components/identity.clients/operations/lib/index.js +7 -0
  49. package/components/identity.clients/operations/lib/redirect.js +35 -0
  50. package/components/identity.clients/operations/register.js +84 -0
  51. package/components/identity.clients/source/describe.ts +63 -0
  52. package/components/identity.clients/source/lib/Context.ts +41 -0
  53. package/components/identity.clients/source/lib/Entity.ts +31 -0
  54. package/components/identity.clients/source/lib/canonical.test.ts +43 -0
  55. package/components/identity.clients/source/lib/canonical.ts +27 -0
  56. package/components/identity.clients/source/lib/cimd.test.ts +122 -0
  57. package/components/identity.clients/source/lib/cimd.ts +112 -0
  58. package/components/identity.clients/source/lib/errors.ts +4 -0
  59. package/components/identity.clients/source/lib/index.ts +6 -0
  60. package/components/identity.clients/source/lib/redirect.test.ts +47 -0
  61. package/components/identity.clients/source/lib/redirect.ts +39 -0
  62. package/components/identity.clients/source/register.ts +125 -0
  63. package/components/identity.clients/tsconfig.json +10 -0
  64. package/components/identity.clients/tsconfig.tsbuildinfo +1 -0
  65. package/components/identity.clients/types/index.d.ts +3 -0
  66. package/components/identity.clients/types/toa.d.ts +109 -0
  67. package/components/identity.credentials/manifest.toa.yaml +78 -0
  68. package/components/identity.credentials/operations/list.js +32 -0
  69. package/components/identity.credentials/source/list.test.ts +70 -0
  70. package/components/identity.credentials/source/list.ts +92 -0
  71. package/components/identity.credentials/tsconfig.json +10 -0
  72. package/components/identity.credentials/tsconfig.tsbuildinfo +1 -0
  73. package/components/identity.credentials/types/index.d.ts +3 -0
  74. package/components/identity.credentials/types/toa.d.ts +30 -0
  75. package/components/identity.federation/events/principal.js +7 -8
  76. package/components/identity.federation/manifest.toa.yaml +258 -65
  77. package/components/identity.federation/migrations/0002-indexes.yaml +25 -0
  78. package/components/identity.federation/operations/authenticate.js +31 -20
  79. package/components/identity.federation/operations/create.js +29 -0
  80. package/components/identity.federation/operations/decode.js +9 -0
  81. package/components/identity.federation/operations/delete.js +7 -0
  82. package/components/identity.federation/operations/incept.js +9 -13
  83. package/components/identity.federation/operations/lib/Configuration.js +2 -0
  84. package/components/identity.federation/operations/lib/Ctx.js +2 -0
  85. package/components/identity.federation/operations/lib/Payload.js +2 -0
  86. package/components/identity.federation/operations/lib/decode.js +36 -0
  87. package/components/identity.federation/operations/lib/discovery.js +34 -0
  88. package/components/identity.federation/operations/lib/errors.js +45 -0
  89. package/components/identity.federation/operations/lib/exchange.js +90 -0
  90. package/components/identity.federation/operations/lib/index.js +5 -0
  91. package/components/identity.federation/operations/lib/jose.js +2 -0
  92. package/components/identity.federation/operations/lib/principal.js +14 -0
  93. package/components/identity.federation/operations/lib/resolve.js +13 -0
  94. package/components/identity.federation/operations/list.js +12 -0
  95. package/components/identity.federation/operations/types/Scheme.js +2 -0
  96. package/components/identity.federation/operations/types/configuration.js +2 -3
  97. package/components/identity.federation/operations/types/context.js +2 -3
  98. package/components/identity.federation/operations/types/entity.js +2 -3
  99. package/components/identity.federation/operations/types/index.js +5 -20
  100. package/components/identity.federation/source/authenticate.ts +50 -19
  101. package/components/identity.federation/source/create.ts +44 -0
  102. package/components/identity.federation/source/decode.ts +14 -0
  103. package/components/identity.federation/source/delete.ts +19 -0
  104. package/components/identity.federation/source/incept.ts +12 -15
  105. package/components/identity.federation/source/lib/Configuration.ts +39 -0
  106. package/components/identity.federation/source/lib/Ctx.ts +9 -0
  107. package/components/identity.federation/source/lib/Payload.ts +6 -0
  108. package/components/identity.federation/source/lib/decode.ts +44 -0
  109. package/components/identity.federation/source/lib/discovery.test.ts +60 -0
  110. package/components/identity.federation/source/lib/discovery.ts +50 -0
  111. package/components/identity.federation/source/lib/errors.ts +54 -0
  112. package/components/identity.federation/source/lib/exchange.ts +123 -0
  113. package/components/identity.federation/source/lib/index.ts +5 -0
  114. package/components/identity.federation/source/lib/jose.d.ts +1 -0
  115. package/components/identity.federation/source/lib/jose.js +1 -0
  116. package/components/identity.federation/source/lib/principal.ts +19 -0
  117. package/components/identity.federation/source/lib/resolve.ts +21 -0
  118. package/components/identity.federation/source/list.test.ts +41 -0
  119. package/components/identity.federation/source/list.ts +21 -0
  120. package/components/identity.federation/source/types/Scheme.ts +1 -0
  121. package/components/identity.federation/source/types/configuration.ts +12 -4
  122. package/components/identity.federation/source/types/context.ts +22 -38
  123. package/components/identity.federation/source/types/entity.ts +3 -0
  124. package/components/identity.federation/source/types/index.ts +4 -3
  125. package/components/identity.federation/tsconfig.json +3 -2
  126. package/components/identity.federation/tsconfig.tsbuildinfo +1 -0
  127. package/components/identity.federation/types/index.d.ts +3 -0
  128. package/components/identity.federation/types/toa.d.ts +127 -0
  129. package/components/identity.grants/manifest.toa.yaml +241 -0
  130. package/components/identity.grants/migrations/0002-indexes.yaml +5 -0
  131. package/components/identity.grants/operations/authorize.js +54 -0
  132. package/components/identity.grants/operations/exchange.js +92 -0
  133. package/components/identity.grants/operations/lib/code.js +30 -0
  134. package/components/identity.grants/operations/lib/identify.js +15 -0
  135. package/components/identity.grants/operations/lib/index.js +3 -0
  136. package/components/identity.grants/operations/list.js +18 -0
  137. package/components/identity.grants/operations/revoke.js +26 -0
  138. package/components/identity.grants/source/authorize.ts +98 -0
  139. package/components/identity.grants/source/exchange.ts +134 -0
  140. package/components/identity.grants/source/lib/code.ts +51 -0
  141. package/components/identity.grants/source/lib/identify.ts +16 -0
  142. package/components/identity.grants/source/lib/index.ts +3 -0
  143. package/components/identity.grants/source/list.ts +28 -0
  144. package/components/identity.grants/source/revoke.ts +40 -0
  145. package/components/identity.grants/tsconfig.json +10 -0
  146. package/components/identity.grants/tsconfig.tsbuildinfo +1 -0
  147. package/components/identity.grants/types/index.d.ts +60 -0
  148. package/components/identity.grants/types/toa.d.ts +108 -0
  149. package/components/identity.keys/manifest.toa.yaml +79 -0
  150. package/components/identity.keys/migrations/0002-indexes.yaml +4 -0
  151. package/components/identity.keys/operations/create.js +12 -0
  152. package/components/identity.keys/operations/disable.js +5 -0
  153. package/components/identity.keys/operations/revoke.js +12 -0
  154. package/components/identity.keys/receivers/identity.bans.created.js +1 -0
  155. package/components/identity.keys/receivers/identity.bans.updated.js +1 -0
  156. package/components/identity.keys/receivers/identity.roles.deleted.js +1 -0
  157. package/components/identity.keys/source/create.ts +34 -0
  158. package/components/identity.keys/source/disable.ts +9 -0
  159. package/components/identity.keys/source/revoke.ts +30 -0
  160. package/components/identity.keys/tsconfig.json +10 -0
  161. package/components/identity.keys/tsconfig.tsbuildinfo +1 -0
  162. package/components/identity.keys/types/index.d.ts +3 -0
  163. package/components/identity.keys/types/toa.d.ts +47 -0
  164. package/components/identity.otp/manifest.toa.yaml +96 -0
  165. package/components/identity.otp/migrations/0002-indexes.yaml +5 -0
  166. package/components/identity.otp/operations/authenticate.js +44 -0
  167. package/components/identity.otp/operations/issue.js +19 -0
  168. package/components/identity.otp/operations/lib/Context.js +2 -0
  169. package/components/identity.otp/operations/lib/Entity.js +2 -0
  170. package/components/identity.otp/operations/lib/index.js +2 -0
  171. package/components/identity.otp/source/authenticate.ts +70 -0
  172. package/components/identity.otp/source/issue.ts +35 -0
  173. package/components/identity.otp/source/lib/Context.ts +17 -0
  174. package/components/identity.otp/source/lib/Entity.ts +6 -0
  175. package/components/identity.otp/source/lib/index.ts +1 -0
  176. package/components/identity.otp/tsconfig.json +10 -0
  177. package/components/identity.otp/tsconfig.tsbuildinfo +1 -0
  178. package/components/identity.otp/types/index.d.ts +3 -0
  179. package/components/identity.otp/types/toa.d.ts +56 -0
  180. package/components/identity.passkeys/manifest.toa.yaml +302 -0
  181. package/components/identity.passkeys/migrations/0002-indexes.yaml +11 -0
  182. package/components/identity.passkeys/operations/authenticate.js +32 -0
  183. package/components/identity.passkeys/operations/challenge.js +72 -0
  184. package/components/identity.passkeys/operations/create.js +57 -0
  185. package/components/identity.passkeys/operations/delete.js +9 -0
  186. package/components/identity.passkeys/operations/lib/const.js +2 -0
  187. package/components/identity.passkeys/operations/list.js +12 -0
  188. package/components/identity.passkeys/operations/types/Configuration.js +2 -0
  189. package/components/identity.passkeys/operations/types/Context.js +2 -0
  190. package/components/identity.passkeys/operations/types/Passkey.js +2 -0
  191. package/components/identity.passkeys/operations/types/index.js +2 -0
  192. package/components/identity.passkeys/operations/use.js +56 -0
  193. package/components/identity.passkeys/source/authenticate.ts +49 -0
  194. package/components/identity.passkeys/source/challenge.ts +119 -0
  195. package/components/identity.passkeys/source/create.ts +83 -0
  196. package/components/identity.passkeys/source/delete.ts +19 -0
  197. package/components/identity.passkeys/source/errors.test.ts +34 -0
  198. package/components/identity.passkeys/source/lib/const.ts +1 -0
  199. package/components/identity.passkeys/source/list.ts +21 -0
  200. package/components/identity.passkeys/source/types/Configuration.ts +6 -0
  201. package/components/identity.passkeys/source/types/Context.ts +17 -0
  202. package/components/identity.passkeys/source/types/Passkey.ts +12 -0
  203. package/components/identity.passkeys/source/types/index.ts +2 -0
  204. package/components/identity.passkeys/source/use.ts +81 -0
  205. package/components/identity.passkeys/source/webauthn.test.ts +26 -0
  206. package/components/identity.passkeys/tsconfig.json +10 -0
  207. package/components/identity.passkeys/tsconfig.tsbuildinfo +1 -0
  208. package/components/identity.passkeys/types/index.d.ts +3 -0
  209. package/components/identity.passkeys/types/toa.d.ts +120 -0
  210. package/components/identity.roles/manifest.toa.yaml +46 -13
  211. package/components/identity.roles/migrations/0002-indexes.yaml +8 -0
  212. package/components/identity.roles/operations/grant.js +11 -11
  213. package/components/identity.roles/operations/lib/Entity.js +2 -3
  214. package/components/identity.roles/operations/list.js +2 -6
  215. package/components/identity.roles/operations/principal.js +30 -10
  216. package/components/identity.roles/receivers/identity.federation.principal.js +4 -0
  217. package/components/identity.roles/source/grant.ts +16 -10
  218. package/components/identity.roles/source/list.ts +2 -2
  219. package/components/identity.roles/source/principal.ts +34 -8
  220. package/components/identity.roles/tsconfig.json +2 -1
  221. package/components/identity.roles/tsconfig.tsbuildinfo +1 -0
  222. package/components/identity.roles/types/index.d.ts +3 -0
  223. package/components/identity.roles/types/toa.d.ts +43 -0
  224. package/components/identity.tokens/manifest.toa.yaml +222 -29
  225. package/components/identity.tokens/operations/authenticate.js +29 -20
  226. package/components/identity.tokens/operations/decrypt.js +138 -25
  227. package/components/identity.tokens/operations/encrypt.js +33 -18
  228. package/components/identity.tokens/operations/issue.js +55 -0
  229. package/components/identity.tokens/operations/lib/form.js +24 -0
  230. package/components/identity.tokens/operations/lib/index.js +4 -0
  231. package/components/identity.tokens/operations/lib/jose.js +2 -0
  232. package/components/identity.tokens/operations/lib/key.js +7 -0
  233. package/components/identity.tokens/operations/lib/pad.js +2 -0
  234. package/components/identity.tokens/operations/revoke.js +2 -6
  235. package/components/identity.tokens/receivers/identity.bans.created.js +1 -3
  236. package/components/identity.tokens/receivers/identity.bans.updated.js +1 -3
  237. package/components/identity.tokens/source/authenticate.test.ts +74 -25
  238. package/components/identity.tokens/source/authenticate.ts +33 -19
  239. package/components/identity.tokens/source/decrypt.test.ts +173 -18
  240. package/components/identity.tokens/source/decrypt.ts +180 -21
  241. package/components/identity.tokens/source/encrypt.test.ts +107 -16
  242. package/components/identity.tokens/source/encrypt.ts +44 -17
  243. package/components/identity.tokens/source/issue.test.ts +73 -0
  244. package/components/identity.tokens/source/issue.ts +83 -0
  245. package/components/identity.tokens/source/lib/form.test.ts +25 -0
  246. package/components/identity.tokens/source/lib/form.ts +27 -0
  247. package/components/identity.tokens/source/lib/index.ts +4 -0
  248. package/components/identity.tokens/source/lib/jose.d.ts +1 -0
  249. package/components/identity.tokens/source/lib/jose.js +1 -0
  250. package/components/identity.tokens/source/lib/key.ts +8 -0
  251. package/components/identity.tokens/source/lib/pad.ts +1 -0
  252. package/components/identity.tokens/source/lib/paseto.test.ts +62 -0
  253. package/components/identity.tokens/source/revoke.ts +2 -2
  254. package/components/identity.tokens/tsconfig.json +2 -1
  255. package/components/identity.tokens/tsconfig.tsbuildinfo +1 -0
  256. package/components/identity.tokens/types/index.d.ts +70 -0
  257. package/components/identity.tokens/types/toa.d.ts +113 -0
  258. package/{components/context.toa.yaml → context.toa.yaml} +8 -4
  259. package/cucumber.mjs +7 -0
  260. package/documentation/access.md +112 -28
  261. package/documentation/authorities.md +9 -11
  262. package/documentation/cache.md +27 -4
  263. package/documentation/components.md +204 -63
  264. package/documentation/consent.md +101 -0
  265. package/documentation/credentials.md +88 -0
  266. package/documentation/dev.md +30 -0
  267. package/documentation/discovery.md +81 -0
  268. package/documentation/flow.md +44 -0
  269. package/documentation/help.md +122 -0
  270. package/documentation/identity.md +164 -18
  271. package/documentation/introspection.md +123 -0
  272. package/documentation/io.md +115 -4
  273. package/documentation/ip.md +24 -0
  274. package/documentation/map.md +123 -0
  275. package/documentation/mcp.md +183 -0
  276. package/documentation/notes/desync.jpg +0 -0
  277. package/documentation/notes/peers.md +59 -0
  278. package/documentation/notes/throttling.md +122 -0
  279. package/documentation/oauth.md +180 -0
  280. package/documentation/octets.md +146 -73
  281. package/documentation/passkeys.md +11 -0
  282. package/documentation/protocol.md +41 -6
  283. package/documentation/query.md +56 -7
  284. package/documentation/rpc.md +154 -0
  285. package/documentation/tracing.md +70 -0
  286. package/documentation/tree.md +17 -1
  287. package/features/access.feature +123 -3
  288. package/features/auth.assert.feature +55 -0
  289. package/features/auth.bearer.feature +120 -0
  290. package/features/auth.claims.feature +171 -0
  291. package/features/auth.incept.feature +166 -0
  292. package/features/auth.input.feature +59 -0
  293. package/features/authorities.feature +41 -2
  294. package/features/authorities.federation.feature +21 -20
  295. package/features/authorities.tokens.feature +1 -2
  296. package/features/body.feature +27 -0
  297. package/features/cache.feature +143 -8
  298. package/features/configuration.feature +206 -0
  299. package/features/cors.feature +59 -8
  300. package/features/credentials.feature +106 -0
  301. package/features/dev.feature +90 -0
  302. package/features/discovery.feature +213 -0
  303. package/features/discovery.ui.feature +213 -0
  304. package/features/dynamic.feature +83 -1
  305. package/features/errors.feature +38 -5
  306. package/features/etag.feature +139 -3
  307. package/features/flow.feature +148 -0
  308. package/features/help.feature +512 -0
  309. package/features/identity.bans.feature +66 -3
  310. package/features/identity.basic.feature +282 -17
  311. package/features/identity.feature +158 -0
  312. package/features/identity.federation.feature +226 -38
  313. package/features/identity.otp.feature +142 -0
  314. package/features/identity.roles.feature +305 -4
  315. package/features/identity.tokens.custom.feature +430 -0
  316. package/features/identity.tokens.feature +6 -104
  317. package/features/interruptions.feature +20 -0
  318. package/features/introspection.feature +565 -0
  319. package/features/introspection.map.feature +108 -0
  320. package/features/io.feature +0 -1
  321. package/features/io.throttle.feature +166 -0
  322. package/features/map.feature +360 -0
  323. package/features/mcp.feature +753 -0
  324. package/features/methods.feature +48 -0
  325. package/features/oauth.clients.feature +195 -0
  326. package/features/oauth.discovery.feature +164 -0
  327. package/features/oauth.grants.feature +301 -0
  328. package/features/octets.cloudinary.feature +233 -0
  329. package/features/octets.download.feature +194 -0
  330. package/features/octets.entries.feature +13 -61
  331. package/features/octets.feature +96 -55
  332. package/features/octets.head.feature +40 -0
  333. package/features/octets.location.feature +83 -0
  334. package/features/octets.meta.feature +64 -16
  335. package/features/octets.workflows.feature +333 -68
  336. package/features/passkeys.feature +66 -0
  337. package/features/probes.feature +8 -4
  338. package/features/query.feature +128 -0
  339. package/features/realtime.feature +34 -0
  340. package/features/require.feature +1 -2
  341. package/features/response.feature +30 -1
  342. package/features/routes.feature +85 -0
  343. package/features/rpc.feature +429 -0
  344. package/features/server.feature +21 -0
  345. package/features/site/_app/immutable/asset.js +1 -0
  346. package/features/site/favicon.ico +0 -0
  347. package/features/site/index.html +10 -0
  348. package/features/steps/.env.example +5 -0
  349. package/features/steps/Captures.ts +15 -1
  350. package/features/steps/Cloudinary.ts +12 -0
  351. package/features/steps/Common.ts +31 -3
  352. package/features/steps/Components.ts +74 -14
  353. package/features/steps/Database.ts +57 -16
  354. package/features/steps/Gateway.ts +157 -49
  355. package/features/steps/HTTP.ts +41 -19
  356. package/features/steps/IDP.ts +361 -0
  357. package/features/steps/Identity.ts +54 -0
  358. package/features/steps/OTP.ts +42 -0
  359. package/features/steps/Parameters.ts +151 -10
  360. package/features/steps/Probe.ts +38 -0
  361. package/features/steps/Realtime.ts +175 -0
  362. package/features/steps/Workspace.ts +19 -12
  363. package/features/steps/components/audit/manifest.toa.yaml +20 -0
  364. package/features/steps/components/audit/operations/record.js +5 -0
  365. package/features/steps/components/echo/manifest.toa.yaml +50 -5
  366. package/features/steps/components/echo/operations/affect.js +1 -5
  367. package/features/steps/components/echo/operations/compute.js +1 -5
  368. package/features/steps/components/echo/operations/echo.js +3 -0
  369. package/features/steps/components/echo/operations/error.js +1 -5
  370. package/features/steps/components/echo/operations/identity.js +1 -5
  371. package/features/steps/components/echo/operations/parameters.js +3 -0
  372. package/features/steps/components/echo/operations/ping.js +3 -0
  373. package/features/steps/components/echo/operations/unwrap.js +3 -0
  374. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  375. package/features/steps/components/echo.beacon/operations/hello.js +3 -0
  376. package/features/steps/components/greeter/manifest.toa.yaml +0 -1
  377. package/features/steps/components/greeter/operations/greet.js +1 -5
  378. package/features/steps/components/notify/manifest.toa.yaml +20 -0
  379. package/features/steps/components/notify/operations/send.js +5 -0
  380. package/features/steps/components/octets.tester/manifest.toa.yaml +60 -6
  381. package/features/steps/components/octets.tester/operations/authority.js +3 -0
  382. package/features/steps/components/octets.tester/operations/bar.js +2 -5
  383. package/features/steps/components/octets.tester/operations/baz.js +3 -5
  384. package/features/steps/components/octets.tester/operations/concat.js +2 -4
  385. package/features/steps/components/octets.tester/operations/echo.js +3 -5
  386. package/features/steps/components/octets.tester/operations/err.js +2 -4
  387. package/features/steps/components/octets.tester/operations/foo.js +3 -5
  388. package/features/steps/components/octets.tester/operations/id.js +5 -0
  389. package/features/steps/components/octets.tester/operations/identity.js +5 -0
  390. package/features/steps/components/octets.tester/operations/redirect.js +17 -0
  391. package/features/steps/components/octets.tester/operations/yex.js +14 -0
  392. package/features/steps/components/octets.tester/operations/yield.js +11 -0
  393. package/features/steps/components/orders/manifest.toa.yaml +30 -0
  394. package/features/steps/components/orders/operations/create.js +7 -0
  395. package/features/steps/components/pots/manifest.toa.yaml +77 -15
  396. package/features/steps/components/pots/migrations/0002-indexes.yaml +4 -0
  397. package/features/steps/components/pricing/manifest.toa.yaml +13 -0
  398. package/features/steps/components/pricing/operations/quote.js +3 -0
  399. package/features/steps/components/sequences/manifest.toa.yaml +2 -2
  400. package/features/steps/components/sequences/operations/numbers.js +2 -4
  401. package/features/steps/components/sequences/operations/tokens.js +5 -7
  402. package/features/steps/components/users/manifest.toa.yaml +20 -4
  403. package/features/steps/components/users/operations/create.js +11 -0
  404. package/features/steps/components/users.properties/manifest.toa.yaml +12 -4
  405. package/features/steps/map.ts +30 -0
  406. package/features/streams.feature +4 -0
  407. package/features/timestamps.feature +41 -0
  408. package/features/timing.feature +2 -22
  409. package/features/tracing.feature +123 -0
  410. package/package.json +35 -25
  411. package/readme.md +37 -7
  412. package/schemas/annotation.cos.yaml +125 -6
  413. package/schemas/call.cos.yaml +18 -0
  414. package/schemas/directive.cos.yaml +7 -3
  415. package/schemas/io/throttle.cos.yaml +81 -0
  416. package/schemas/method.cos.yaml +23 -8
  417. package/schemas/node.cos.yaml +22 -5
  418. package/schemas/octets/delete.cos.yaml +15 -2
  419. package/schemas/octets/get.cos.yaml +5 -0
  420. package/schemas/octets/put.cos.yaml +31 -0
  421. package/schemas/octets/workflow.cos.yaml +0 -1
  422. package/schemas/query.cos.yaml +31 -17
  423. package/schemas/querystring.cos.yaml +19 -6
  424. package/schemas/range.cos.yaml +10 -2
  425. package/schemas/route.cos.yaml +6 -2
  426. package/source/Annotation.ts +82 -1
  427. package/source/Branch.test.ts +40 -0
  428. package/source/Branch.ts +37 -1
  429. package/source/Composition.ts +10 -16
  430. package/source/Context.ts +5 -2
  431. package/source/Directive.test.ts +132 -30
  432. package/source/Directive.ts +189 -37
  433. package/source/Discovery/Explorer.ts +34 -0
  434. package/source/Discovery/Site.test.ts +147 -0
  435. package/source/Discovery/Site.ts +202 -0
  436. package/source/Discovery/index.ts +3 -0
  437. package/source/Discovery/tree.test.ts +175 -0
  438. package/source/Discovery/tree.ts +77 -0
  439. package/source/Discovery/trunk.ts +33 -0
  440. package/source/Endpoint.test.ts +67 -0
  441. package/source/Endpoint.ts +94 -45
  442. package/source/Factory.ts +30 -48
  443. package/source/Gateway.ts +337 -44
  444. package/source/HTTP/Context.ts +96 -42
  445. package/source/HTTP/Probe.ts +99 -0
  446. package/source/HTTP/Server.ts +337 -78
  447. package/source/HTTP/Timing.ts +7 -33
  448. package/source/HTTP/address.test.ts +28 -0
  449. package/source/HTTP/address.ts +16 -0
  450. package/source/HTTP/exceptions.ts +49 -23
  451. package/source/HTTP/formats/form.ts +21 -0
  452. package/source/HTTP/formats/index.ts +24 -10
  453. package/source/HTTP/formats/json.ts +3 -5
  454. package/source/HTTP/formats/msgpack.ts +3 -5
  455. package/source/HTTP/formats/text.ts +3 -5
  456. package/source/HTTP/formats/yaml.test.ts +22 -0
  457. package/source/HTTP/formats/yaml.ts +29 -6
  458. package/source/HTTP/index.ts +6 -4
  459. package/source/HTTP/messages.test.ts +126 -19
  460. package/source/HTTP/messages.ts +127 -51
  461. package/source/HTTP/types.ts +39 -0
  462. package/source/Interception.ts +18 -5
  463. package/source/Introspection.ts +179 -0
  464. package/source/MCP/Server.ts +335 -0
  465. package/source/MCP/discover.ts +51 -0
  466. package/source/MCP/errors.ts +80 -0
  467. package/source/MCP/index.ts +1 -0
  468. package/source/MCP/schema.test.ts +91 -0
  469. package/source/MCP/schema.ts +94 -0
  470. package/source/MCP/tools.ts +144 -0
  471. package/source/MCP/types.ts +84 -0
  472. package/source/Mapping.ts +75 -29
  473. package/source/Query.test.ts +22 -5
  474. package/source/Query.ts +200 -39
  475. package/source/RPC/Context.ts +75 -0
  476. package/source/RPC/Dispatcher.ts +150 -0
  477. package/source/RPC/errors.test.ts +77 -0
  478. package/source/RPC/errors.ts +82 -0
  479. package/source/RPC/index.ts +1 -0
  480. package/source/RPC/names.test.ts +141 -0
  481. package/source/RPC/names.ts +176 -0
  482. package/source/RPC/types.ts +34 -0
  483. package/source/RTD/Context.ts +7 -4
  484. package/source/RTD/Directives.ts +103 -10
  485. package/source/RTD/Endpoint.ts +19 -5
  486. package/source/RTD/Match.ts +1 -1
  487. package/source/RTD/Method.ts +25 -4
  488. package/source/RTD/Node.ts +118 -33
  489. package/source/RTD/Route.ts +55 -21
  490. package/source/RTD/Tree.ts +96 -17
  491. package/source/RTD/expiration.test.ts +81 -0
  492. package/source/RTD/factory.ts +82 -21
  493. package/source/RTD/index.ts +8 -8
  494. package/source/RTD/segment.test.ts +13 -10
  495. package/source/RTD/segment.ts +33 -8
  496. package/source/RTD/syntax/index.ts +2 -2
  497. package/source/RTD/syntax/parse.test.ts +39 -31
  498. package/source/RTD/syntax/parse.ts +68 -51
  499. package/source/RTD/syntax/types.ts +25 -4
  500. package/source/RTD/walk.test.ts +147 -0
  501. package/source/Remotes.test.ts +55 -18
  502. package/source/Remotes.ts +20 -11
  503. package/source/Tenant.ts +54 -16
  504. package/source/const.ts +45 -0
  505. package/source/deployment.ts +58 -26
  506. package/source/directives/auth/Anonymous.test.ts +70 -0
  507. package/source/directives/auth/Anonymous.ts +27 -6
  508. package/source/directives/auth/Anyone.ts +23 -0
  509. package/source/directives/auth/Assert.ts +43 -0
  510. package/source/directives/auth/Authorization.test.ts +24 -0
  511. package/source/directives/auth/Authorization.ts +299 -68
  512. package/source/directives/auth/Delegate.test.ts +36 -0
  513. package/source/directives/auth/Delegate.ts +31 -12
  514. package/source/directives/auth/Echo.ts +18 -6
  515. package/source/directives/auth/Federation.ts +104 -0
  516. package/source/directives/auth/Id.ts +24 -6
  517. package/source/directives/auth/Incept.ts +101 -32
  518. package/source/directives/auth/Input.ts +92 -0
  519. package/source/directives/auth/Role.test.ts +79 -41
  520. package/source/directives/auth/Role.ts +59 -26
  521. package/source/directives/auth/Rule.ts +41 -10
  522. package/source/directives/auth/Scheme.ts +15 -10
  523. package/source/directives/auth/create.ts +11 -0
  524. package/source/directives/auth/index.ts +1 -1
  525. package/source/directives/auth/schemes.test.ts +18 -0
  526. package/source/directives/auth/schemes.ts +36 -6
  527. package/source/directives/auth/split.ts +4 -5
  528. package/source/directives/auth/types.ts +48 -13
  529. package/source/directives/cache/Cache.ts +70 -13
  530. package/source/directives/cache/Control.ts +36 -40
  531. package/source/directives/cache/Exact.ts +2 -2
  532. package/source/directives/cache/etag.ts +38 -0
  533. package/source/directives/cache/index.ts +1 -1
  534. package/source/directives/cache/types.ts +1 -1
  535. package/source/directives/cors/CORS.test.ts +75 -0
  536. package/source/directives/cors/CORS.ts +49 -23
  537. package/source/directives/cors/index.ts +1 -1
  538. package/source/directives/dev/Development.ts +20 -14
  539. package/source/directives/dev/Faulty.ts +31 -0
  540. package/source/directives/dev/Sleep.ts +53 -0
  541. package/source/directives/dev/Stub.ts +4 -4
  542. package/source/directives/dev/Throw.ts +4 -4
  543. package/source/directives/dev/index.ts +1 -1
  544. package/source/directives/dev/types.ts +2 -2
  545. package/source/directives/flow/Compose.ts +98 -0
  546. package/source/directives/flow/Fetch.ts +86 -0
  547. package/source/directives/flow/Flow.ts +43 -0
  548. package/source/directives/flow/index.ts +3 -0
  549. package/source/directives/flow/types.ts +7 -0
  550. package/source/directives/help/Family.ts +122 -0
  551. package/source/directives/help/Help.test.ts +227 -0
  552. package/source/directives/help/Help.ts +47 -0
  553. package/source/directives/help/Parameters.ts +47 -0
  554. package/source/directives/help/described.ts +57 -0
  555. package/source/directives/help/index.ts +45 -0
  556. package/source/directives/index.ts +32 -12
  557. package/source/directives/io/Directive.ts +9 -3
  558. package/source/directives/io/IO.ts +89 -14
  559. package/source/directives/io/Input.ts +26 -21
  560. package/source/directives/io/Output.ts +43 -31
  561. package/source/directives/io/Status.test.ts +88 -0
  562. package/source/directives/io/Status.ts +47 -0
  563. package/source/directives/io/Throttle.ts +30 -0
  564. package/source/directives/io/index.ts +1 -1
  565. package/source/directives/io/lib/throttle/Configuration.test.ts +72 -0
  566. package/source/directives/io/lib/throttle/Configuration.ts +68 -0
  567. package/source/directives/io/lib/throttle/Keys.ts +53 -0
  568. package/source/directives/io/lib/throttle/Quotas.test.ts +411 -0
  569. package/source/directives/io/lib/throttle/Quotas.ts +190 -0
  570. package/source/directives/io/lib/throttle/Sync.test.ts +163 -0
  571. package/source/directives/io/lib/throttle/Sync.ts +93 -0
  572. package/source/directives/io/lib/throttle/Warning.test.ts +32 -0
  573. package/source/directives/io/lib/throttle/Warning.ts +29 -0
  574. package/source/directives/io/lib/throttle/components/Component.ts +7 -0
  575. package/source/directives/io/lib/throttle/components/IP.ts +30 -0
  576. package/source/directives/io/lib/throttle/components/Identity.ts +19 -0
  577. package/source/directives/io/lib/throttle/components/Path.ts +8 -0
  578. package/source/directives/io/lib/throttle/components/Route.ts +19 -0
  579. package/source/directives/io/lib/throttle/components/Segment.ts +19 -0
  580. package/source/directives/io/lib/throttle/components/index.ts +19 -0
  581. package/source/directives/io/lib/throttle/conditions/Condition.ts +5 -0
  582. package/source/directives/io/lib/throttle/conditions/Status.ts +17 -0
  583. package/source/directives/io/lib/throttle/conditions/index.ts +11 -0
  584. package/source/directives/io/lib/throttle/index.ts +4 -0
  585. package/source/directives/io/schemas.test.ts +40 -0
  586. package/source/directives/io/schemas.ts +9 -5
  587. package/source/directives/map/Authority.ts +15 -0
  588. package/source/directives/map/Buffer.ts +15 -0
  589. package/source/directives/map/Claims.ts +63 -0
  590. package/source/directives/map/Directive.ts +4 -0
  591. package/source/directives/map/Headers.ts +60 -0
  592. package/source/directives/map/Language.ts +45 -0
  593. package/source/directives/map/Languages.ts +17 -0
  594. package/source/directives/map/Map.ts +85 -0
  595. package/source/directives/map/Mapping.ts +45 -0
  596. package/source/directives/{vary → map}/Properties.ts +3 -5
  597. package/source/directives/map/Segments.ts +52 -0
  598. package/source/directives/map/index.ts +3 -0
  599. package/source/directives/mcp/MCP.ts +33 -0
  600. package/source/directives/mcp/Tool.test.ts +56 -0
  601. package/source/directives/mcp/Tool.ts +32 -0
  602. package/source/directives/mcp/index.ts +6 -0
  603. package/source/directives/oauth/Discovery.ts +66 -0
  604. package/source/directives/oauth/documents.ts +110 -0
  605. package/source/directives/oauth/index.ts +3 -0
  606. package/source/directives/octets/Context.ts +10 -6
  607. package/source/directives/octets/Delete.ts +48 -37
  608. package/source/directives/octets/Directive.ts +15 -4
  609. package/source/directives/octets/Get.ts +88 -0
  610. package/source/directives/octets/Octets.ts +44 -33
  611. package/source/directives/octets/Put.ts +186 -0
  612. package/source/directives/octets/Workflow.ts +34 -22
  613. package/source/directives/octets/bytes.test.ts +33 -0
  614. package/source/directives/octets/bytes.ts +18 -0
  615. package/source/directives/octets/index.ts +1 -1
  616. package/source/directives/octets/schemas.test.ts +14 -15
  617. package/source/directives/octets/schemas.ts +8 -12
  618. package/source/directives/octets/types.ts +3 -1
  619. package/source/directives/octets/workflows/Execution.ts +74 -20
  620. package/source/directives/octets/workflows/Workflow.ts +30 -16
  621. package/source/directives/octets/workflows/index.ts +1 -1
  622. package/source/directives/require/Directive.ts +2 -2
  623. package/source/directives/require/Headers.ts +6 -7
  624. package/source/directives/require/Require.ts +7 -8
  625. package/source/directives/require/index.ts +1 -1
  626. package/source/exceptions.ts +32 -13
  627. package/source/index.ts +11 -5
  628. package/source/io.ts +1 -1
  629. package/source/manifest.test.ts +15 -10
  630. package/source/manifest.ts +27 -22
  631. package/source/octets.d.ts +17 -0
  632. package/source/root.ts +22 -6
  633. package/source/schemas.test.ts +31 -0
  634. package/source/schemas.ts +7 -5
  635. package/source/service.ts +94 -0
  636. package/source/shortcuts.ts +14 -0
  637. package/source/userland.ts +47 -0
  638. package/transpiled/Annotation.d.ts +63 -1
  639. package/transpiled/Annotation.js +1 -2
  640. package/transpiled/Branch.d.ts +25 -1
  641. package/transpiled/Branch.js +14 -2
  642. package/transpiled/Branch.js.map +1 -1
  643. package/transpiled/Composition.d.ts +3 -4
  644. package/transpiled/Composition.js +13 -22
  645. package/transpiled/Composition.js.map +1 -1
  646. package/transpiled/Context.d.ts +3 -2
  647. package/transpiled/Context.js +1 -2
  648. package/transpiled/Directive.d.ts +33 -8
  649. package/transpiled/Directive.js +120 -32
  650. package/transpiled/Directive.js.map +1 -1
  651. package/transpiled/Discovery/Explorer.d.ts +11 -0
  652. package/transpiled/Discovery/Explorer.js +29 -0
  653. package/transpiled/Discovery/Explorer.js.map +1 -0
  654. package/transpiled/Discovery/Site.d.ts +43 -0
  655. package/transpiled/Discovery/Site.js +171 -0
  656. package/transpiled/Discovery/Site.js.map +1 -0
  657. package/transpiled/Discovery/index.d.ts +3 -0
  658. package/transpiled/Discovery/index.js +4 -0
  659. package/transpiled/Discovery/index.js.map +1 -0
  660. package/transpiled/Discovery/tree.d.ts +26 -0
  661. package/transpiled/Discovery/tree.js +50 -0
  662. package/transpiled/Discovery/tree.js.map +1 -0
  663. package/transpiled/Discovery/trunk.d.ts +13 -0
  664. package/transpiled/Discovery/trunk.js +29 -0
  665. package/transpiled/Discovery/trunk.js.map +1 -0
  666. package/transpiled/Endpoint.d.ts +19 -7
  667. package/transpiled/Endpoint.js +68 -58
  668. package/transpiled/Endpoint.js.map +1 -1
  669. package/transpiled/Factory.d.ts +8 -7
  670. package/transpiled/Factory.js +23 -69
  671. package/transpiled/Factory.js.map +1 -1
  672. package/transpiled/Gateway.d.ts +59 -6
  673. package/transpiled/Gateway.js +240 -51
  674. package/transpiled/Gateway.js.map +1 -1
  675. package/transpiled/HTTP/Context.d.ts +24 -14
  676. package/transpiled/HTTP/Context.js +73 -34
  677. package/transpiled/HTTP/Context.js.map +1 -1
  678. package/transpiled/HTTP/Probe.d.ts +26 -0
  679. package/transpiled/HTTP/Probe.js +80 -0
  680. package/transpiled/HTTP/Probe.js.map +1 -0
  681. package/transpiled/HTTP/Server.d.ts +30 -10
  682. package/transpiled/HTTP/Server.js +250 -93
  683. package/transpiled/HTTP/Server.js.map +1 -1
  684. package/transpiled/HTTP/Timing.d.ts +2 -6
  685. package/transpiled/HTTP/Timing.js +5 -25
  686. package/transpiled/HTTP/Timing.js.map +1 -1
  687. package/transpiled/HTTP/address.d.ts +7 -0
  688. package/transpiled/HTTP/address.js +14 -0
  689. package/transpiled/HTTP/address.js.map +1 -0
  690. package/transpiled/HTTP/exceptions.d.ts +21 -9
  691. package/transpiled/HTTP/exceptions.js +40 -36
  692. package/transpiled/HTTP/exceptions.js.map +1 -1
  693. package/transpiled/HTTP/formats/form.d.ts +9 -0
  694. package/transpiled/HTTP/formats/form.js +18 -0
  695. package/transpiled/HTTP/formats/form.js.map +1 -0
  696. package/transpiled/HTTP/formats/index.d.ts +10 -4
  697. package/transpiled/HTTP/formats/index.js +19 -35
  698. package/transpiled/HTTP/formats/index.js.map +1 -1
  699. package/transpiled/HTTP/formats/json.d.ts +1 -3
  700. package/transpiled/HTTP/formats/json.js +6 -12
  701. package/transpiled/HTTP/formats/json.js.map +1 -1
  702. package/transpiled/HTTP/formats/msgpack.d.ts +0 -2
  703. package/transpiled/HTTP/formats/msgpack.js +7 -12
  704. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  705. package/transpiled/HTTP/formats/text.d.ts +1 -3
  706. package/transpiled/HTTP/formats/text.js +6 -12
  707. package/transpiled/HTTP/formats/text.js.map +1 -1
  708. package/transpiled/HTTP/formats/yaml.d.ts +1 -3
  709. package/transpiled/HTTP/formats/yaml.js +26 -37
  710. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  711. package/transpiled/HTTP/index.d.ts +6 -4
  712. package/transpiled/HTTP/index.js +6 -20
  713. package/transpiled/HTTP/index.js.map +1 -1
  714. package/transpiled/HTTP/messages.d.ts +26 -4
  715. package/transpiled/HTTP/messages.js +80 -41
  716. package/transpiled/HTTP/messages.js.map +1 -1
  717. package/transpiled/HTTP/types.d.ts +37 -0
  718. package/transpiled/HTTP/types.js +2 -0
  719. package/transpiled/HTTP/types.js.map +1 -0
  720. package/transpiled/Interception.d.ts +7 -2
  721. package/transpiled/Interception.js +8 -6
  722. package/transpiled/Interception.js.map +1 -1
  723. package/transpiled/Introspection.d.ts +83 -0
  724. package/transpiled/Introspection.js +79 -0
  725. package/transpiled/Introspection.js.map +1 -0
  726. package/transpiled/MCP/Server.d.ts +41 -0
  727. package/transpiled/MCP/Server.js +191 -0
  728. package/transpiled/MCP/Server.js.map +1 -0
  729. package/transpiled/MCP/discover.d.ts +13 -0
  730. package/transpiled/MCP/discover.js +29 -0
  731. package/transpiled/MCP/discover.js.map +1 -0
  732. package/transpiled/MCP/errors.d.ts +24 -0
  733. package/transpiled/MCP/errors.js +67 -0
  734. package/transpiled/MCP/errors.js.map +1 -0
  735. package/transpiled/MCP/index.d.ts +1 -0
  736. package/transpiled/MCP/index.js +2 -0
  737. package/transpiled/MCP/index.js.map +1 -0
  738. package/transpiled/MCP/schema.d.ts +18 -0
  739. package/transpiled/MCP/schema.js +70 -0
  740. package/transpiled/MCP/schema.js.map +1 -0
  741. package/transpiled/MCP/tools.d.ts +31 -0
  742. package/transpiled/MCP/tools.js +109 -0
  743. package/transpiled/MCP/tools.js.map +1 -0
  744. package/transpiled/MCP/types.d.ts +66 -0
  745. package/transpiled/MCP/types.js +13 -0
  746. package/transpiled/MCP/types.js.map +1 -0
  747. package/transpiled/Mapping.d.ts +17 -6
  748. package/transpiled/Mapping.js +50 -24
  749. package/transpiled/Mapping.js.map +1 -1
  750. package/transpiled/Query.d.ts +39 -6
  751. package/transpiled/Query.js +144 -48
  752. package/transpiled/Query.js.map +1 -1
  753. package/transpiled/RPC/Context.d.ts +11 -0
  754. package/transpiled/RPC/Context.js +56 -0
  755. package/transpiled/RPC/Context.js.map +1 -0
  756. package/transpiled/RPC/Dispatcher.d.ts +19 -0
  757. package/transpiled/RPC/Dispatcher.js +103 -0
  758. package/transpiled/RPC/Dispatcher.js.map +1 -0
  759. package/transpiled/RPC/errors.d.ts +18 -0
  760. package/transpiled/RPC/errors.js +67 -0
  761. package/transpiled/RPC/errors.js.map +1 -0
  762. package/transpiled/RPC/index.d.ts +1 -0
  763. package/transpiled/RPC/index.js +2 -0
  764. package/transpiled/RPC/index.js.map +1 -0
  765. package/transpiled/RPC/names.d.ts +31 -0
  766. package/transpiled/RPC/names.js +121 -0
  767. package/transpiled/RPC/names.js.map +1 -0
  768. package/transpiled/RPC/types.d.ts +27 -0
  769. package/transpiled/RPC/types.js +8 -0
  770. package/transpiled/RPC/types.js.map +1 -0
  771. package/transpiled/RTD/Context.d.ts +6 -4
  772. package/transpiled/RTD/Context.js +1 -2
  773. package/transpiled/RTD/Directives.d.ts +72 -7
  774. package/transpiled/RTD/Directives.js +1 -2
  775. package/transpiled/RTD/Endpoint.d.ts +12 -4
  776. package/transpiled/RTD/Endpoint.js +1 -2
  777. package/transpiled/RTD/Match.d.ts +1 -1
  778. package/transpiled/RTD/Match.js +1 -2
  779. package/transpiled/RTD/Method.d.ts +11 -2
  780. package/transpiled/RTD/Method.js +12 -5
  781. package/transpiled/RTD/Method.js.map +1 -1
  782. package/transpiled/RTD/Node.d.ts +43 -5
  783. package/transpiled/RTD/Node.js +75 -21
  784. package/transpiled/RTD/Node.js.map +1 -1
  785. package/transpiled/RTD/Route.d.ts +8 -6
  786. package/transpiled/RTD/Route.js +40 -10
  787. package/transpiled/RTD/Route.js.map +1 -1
  788. package/transpiled/RTD/Tree.d.ts +14 -5
  789. package/transpiled/RTD/Tree.js +70 -12
  790. package/transpiled/RTD/Tree.js.map +1 -1
  791. package/transpiled/RTD/factory.d.ts +4 -3
  792. package/transpiled/RTD/factory.js +57 -15
  793. package/transpiled/RTD/factory.js.map +1 -1
  794. package/transpiled/RTD/index.d.ts +8 -8
  795. package/transpiled/RTD/index.js +8 -37
  796. package/transpiled/RTD/index.js.map +1 -1
  797. package/transpiled/RTD/segment.d.ts +8 -0
  798. package/transpiled/RTD/segment.js +21 -7
  799. package/transpiled/RTD/segment.js.map +1 -1
  800. package/transpiled/RTD/syntax/index.d.ts +2 -2
  801. package/transpiled/RTD/syntax/index.js +2 -18
  802. package/transpiled/RTD/syntax/index.js.map +1 -1
  803. package/transpiled/RTD/syntax/parse.d.ts +1 -1
  804. package/transpiled/RTD/syntax/parse.js +38 -54
  805. package/transpiled/RTD/syntax/parse.js.map +1 -1
  806. package/transpiled/RTD/syntax/types.d.ts +14 -3
  807. package/transpiled/RTD/syntax/types.js +10 -4
  808. package/transpiled/RTD/syntax/types.js.map +1 -1
  809. package/transpiled/Remotes.d.ts +7 -7
  810. package/transpiled/Remotes.js +15 -16
  811. package/transpiled/Remotes.js.map +1 -1
  812. package/transpiled/Tenant.d.ts +15 -4
  813. package/transpiled/Tenant.js +39 -14
  814. package/transpiled/Tenant.js.map +1 -1
  815. package/transpiled/const.d.ts +36 -0
  816. package/transpiled/const.js +37 -0
  817. package/transpiled/const.js.map +1 -0
  818. package/transpiled/deployment.d.ts +4 -1
  819. package/transpiled/deployment.js +51 -54
  820. package/transpiled/deployment.js.map +1 -1
  821. package/transpiled/directives/auth/Anonymous.d.ts +17 -2
  822. package/transpiled/directives/auth/Anonymous.js +23 -9
  823. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  824. package/transpiled/directives/auth/Anyone.d.ts +10 -0
  825. package/transpiled/directives/auth/Anyone.js +17 -0
  826. package/transpiled/directives/auth/Anyone.js.map +1 -0
  827. package/transpiled/directives/auth/Assert.d.ts +9 -0
  828. package/transpiled/directives/auth/Assert.js +33 -0
  829. package/transpiled/directives/auth/Assert.js.map +1 -0
  830. package/transpiled/directives/auth/Authorization.d.ts +44 -8
  831. package/transpiled/directives/auth/Authorization.js +223 -85
  832. package/transpiled/directives/auth/Authorization.js.map +1 -1
  833. package/transpiled/directives/auth/Delegate.d.ts +13 -4
  834. package/transpiled/directives/auth/Delegate.js +23 -10
  835. package/transpiled/directives/auth/Delegate.js.map +1 -1
  836. package/transpiled/directives/auth/Echo.d.ts +6 -4
  837. package/transpiled/directives/auth/Echo.js +14 -9
  838. package/transpiled/directives/auth/Echo.js.map +1 -1
  839. package/transpiled/directives/auth/Federation.d.ts +21 -0
  840. package/transpiled/directives/auth/Federation.js +54 -0
  841. package/transpiled/directives/auth/Federation.js.map +1 -0
  842. package/transpiled/directives/auth/Id.d.ts +12 -3
  843. package/transpiled/directives/auth/Id.js +13 -5
  844. package/transpiled/directives/auth/Id.js.map +1 -1
  845. package/transpiled/directives/auth/Incept.d.ts +11 -6
  846. package/transpiled/directives/auth/Incept.js +67 -50
  847. package/transpiled/directives/auth/Incept.js.map +1 -1
  848. package/transpiled/directives/auth/Input.d.ts +15 -0
  849. package/transpiled/directives/auth/Input.js +49 -0
  850. package/transpiled/directives/auth/Input.js.map +1 -0
  851. package/transpiled/directives/auth/Role.d.ts +12 -3
  852. package/transpiled/directives/auth/Role.js +28 -16
  853. package/transpiled/directives/auth/Role.js.map +1 -1
  854. package/transpiled/directives/auth/Rule.d.ts +8 -5
  855. package/transpiled/directives/auth/Rule.js +23 -7
  856. package/transpiled/directives/auth/Rule.js.map +1 -1
  857. package/transpiled/directives/auth/Scheme.d.ts +4 -2
  858. package/transpiled/directives/auth/Scheme.js +11 -35
  859. package/transpiled/directives/auth/Scheme.js.map +1 -1
  860. package/transpiled/directives/auth/create.d.ts +2 -0
  861. package/transpiled/directives/auth/create.js +10 -0
  862. package/transpiled/directives/auth/create.js.map +1 -0
  863. package/transpiled/directives/auth/index.d.ts +1 -1
  864. package/transpiled/directives/auth/index.js +2 -5
  865. package/transpiled/directives/auth/index.js.map +1 -1
  866. package/transpiled/directives/auth/schemes.d.ts +26 -3
  867. package/transpiled/directives/auth/schemes.js +32 -8
  868. package/transpiled/directives/auth/schemes.js.map +1 -1
  869. package/transpiled/directives/auth/split.d.ts +1 -1
  870. package/transpiled/directives/auth/split.js +3 -30
  871. package/transpiled/directives/auth/split.js.map +1 -1
  872. package/transpiled/directives/auth/types.d.ts +37 -12
  873. package/transpiled/directives/auth/types.js +1 -2
  874. package/transpiled/directives/cache/Cache.d.ts +6 -6
  875. package/transpiled/directives/cache/Cache.js +54 -14
  876. package/transpiled/directives/cache/Cache.js.map +1 -1
  877. package/transpiled/directives/cache/Control.d.ts +3 -3
  878. package/transpiled/directives/cache/Control.js +16 -22
  879. package/transpiled/directives/cache/Control.js.map +1 -1
  880. package/transpiled/directives/cache/Exact.d.ts +1 -1
  881. package/transpiled/directives/cache/Exact.js +2 -6
  882. package/transpiled/directives/cache/Exact.js.map +1 -1
  883. package/transpiled/directives/cache/etag.d.ts +10 -0
  884. package/transpiled/directives/cache/etag.js +30 -0
  885. package/transpiled/directives/cache/etag.js.map +1 -0
  886. package/transpiled/directives/cache/index.d.ts +1 -1
  887. package/transpiled/directives/cache/index.js +2 -5
  888. package/transpiled/directives/cache/index.js.map +1 -1
  889. package/transpiled/directives/cache/types.d.ts +1 -1
  890. package/transpiled/directives/cache/types.js +1 -2
  891. package/transpiled/directives/cors/CORS.d.ts +10 -3
  892. package/transpiled/directives/cors/CORS.js +38 -21
  893. package/transpiled/directives/cors/CORS.js.map +1 -1
  894. package/transpiled/directives/cors/index.d.ts +1 -1
  895. package/transpiled/directives/cors/index.js +2 -5
  896. package/transpiled/directives/cors/index.js.map +1 -1
  897. package/transpiled/directives/dev/Development.d.ts +4 -4
  898. package/transpiled/directives/dev/Development.js +19 -15
  899. package/transpiled/directives/dev/Development.js.map +1 -1
  900. package/transpiled/directives/dev/Faulty.d.ts +8 -0
  901. package/transpiled/directives/dev/Faulty.js +19 -0
  902. package/transpiled/directives/dev/Faulty.js.map +1 -0
  903. package/transpiled/directives/dev/Sleep.d.ts +9 -0
  904. package/transpiled/directives/dev/Sleep.js +41 -0
  905. package/transpiled/directives/dev/Sleep.js.map +1 -0
  906. package/transpiled/directives/dev/Stub.d.ts +2 -2
  907. package/transpiled/directives/dev/Stub.js +1 -5
  908. package/transpiled/directives/dev/Stub.js.map +1 -1
  909. package/transpiled/directives/dev/Throw.d.ts +2 -2
  910. package/transpiled/directives/dev/Throw.js +1 -5
  911. package/transpiled/directives/dev/Throw.js.map +1 -1
  912. package/transpiled/directives/dev/index.d.ts +1 -1
  913. package/transpiled/directives/dev/index.js +2 -5
  914. package/transpiled/directives/dev/index.js.map +1 -1
  915. package/transpiled/directives/dev/types.d.ts +2 -2
  916. package/transpiled/directives/dev/types.js +1 -2
  917. package/transpiled/directives/flow/Compose.d.ts +9 -0
  918. package/transpiled/directives/flow/Compose.js +71 -0
  919. package/transpiled/directives/flow/Compose.js.map +1 -0
  920. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  921. package/transpiled/directives/flow/Fetch.js +51 -0
  922. package/transpiled/directives/flow/Fetch.js.map +1 -0
  923. package/transpiled/directives/flow/Flow.d.ts +10 -0
  924. package/transpiled/directives/flow/Flow.js +29 -0
  925. package/transpiled/directives/flow/Flow.js.map +1 -0
  926. package/transpiled/directives/flow/index.d.ts +2 -0
  927. package/transpiled/directives/flow/index.js +3 -0
  928. package/transpiled/directives/flow/index.js.map +1 -0
  929. package/transpiled/directives/flow/types.d.ts +6 -0
  930. package/transpiled/directives/flow/types.js +2 -0
  931. package/transpiled/directives/flow/types.js.map +1 -0
  932. package/transpiled/directives/help/Family.d.ts +28 -0
  933. package/transpiled/directives/help/Family.js +83 -0
  934. package/transpiled/directives/help/Family.js.map +1 -0
  935. package/transpiled/directives/help/Help.d.ts +22 -0
  936. package/transpiled/directives/help/Help.js +36 -0
  937. package/transpiled/directives/help/Help.js.map +1 -0
  938. package/transpiled/directives/help/Parameters.d.ts +18 -0
  939. package/transpiled/directives/help/Parameters.js +34 -0
  940. package/transpiled/directives/help/Parameters.js.map +1 -0
  941. package/transpiled/directives/help/described.d.ts +16 -0
  942. package/transpiled/directives/help/described.js +23 -0
  943. package/transpiled/directives/help/described.js.map +1 -0
  944. package/transpiled/directives/help/index.d.ts +22 -0
  945. package/transpiled/directives/help/index.js +34 -0
  946. package/transpiled/directives/help/index.js.map +1 -0
  947. package/transpiled/directives/index.d.ts +6 -2
  948. package/transpiled/directives/index.js +30 -13
  949. package/transpiled/directives/index.js.map +1 -1
  950. package/transpiled/directives/io/Directive.d.ts +8 -3
  951. package/transpiled/directives/io/Directive.js +1 -2
  952. package/transpiled/directives/io/IO.d.ts +24 -5
  953. package/transpiled/directives/io/IO.js +60 -17
  954. package/transpiled/directives/io/IO.js.map +1 -1
  955. package/transpiled/directives/io/Input.d.ts +5 -4
  956. package/transpiled/directives/io/Input.js +18 -38
  957. package/transpiled/directives/io/Input.js.map +1 -1
  958. package/transpiled/directives/io/Message.js +1 -2
  959. package/transpiled/directives/io/Output.d.ts +8 -4
  960. package/transpiled/directives/io/Output.js +24 -40
  961. package/transpiled/directives/io/Output.js.map +1 -1
  962. package/transpiled/directives/io/Status.d.ts +19 -0
  963. package/transpiled/directives/io/Status.js +34 -0
  964. package/transpiled/directives/io/Status.js.map +1 -0
  965. package/transpiled/directives/io/Throttle.d.ts +11 -0
  966. package/transpiled/directives/io/Throttle.js +22 -0
  967. package/transpiled/directives/io/Throttle.js.map +1 -0
  968. package/transpiled/directives/io/index.d.ts +1 -1
  969. package/transpiled/directives/io/index.js +2 -5
  970. package/transpiled/directives/io/index.js.map +1 -1
  971. package/transpiled/directives/io/lib/throttle/Configuration.d.ts +26 -0
  972. package/transpiled/directives/io/lib/throttle/Configuration.js +31 -0
  973. package/transpiled/directives/io/lib/throttle/Configuration.js.map +1 -0
  974. package/transpiled/directives/io/lib/throttle/Keys.d.ts +14 -0
  975. package/transpiled/directives/io/lib/throttle/Keys.js +32 -0
  976. package/transpiled/directives/io/lib/throttle/Keys.js.map +1 -0
  977. package/transpiled/directives/io/lib/throttle/Quotas.d.ts +70 -0
  978. package/transpiled/directives/io/lib/throttle/Quotas.js +142 -0
  979. package/transpiled/directives/io/lib/throttle/Quotas.js.map +1 -0
  980. package/transpiled/directives/io/lib/throttle/Sync.d.ts +29 -0
  981. package/transpiled/directives/io/lib/throttle/Sync.js +70 -0
  982. package/transpiled/directives/io/lib/throttle/Sync.js.map +1 -0
  983. package/transpiled/directives/io/lib/throttle/Warning.d.ts +11 -0
  984. package/transpiled/directives/io/lib/throttle/Warning.js +24 -0
  985. package/transpiled/directives/io/lib/throttle/Warning.js.map +1 -0
  986. package/transpiled/directives/io/lib/throttle/components/Component.d.ts +6 -0
  987. package/transpiled/directives/io/lib/throttle/components/Component.js +2 -0
  988. package/transpiled/directives/io/lib/throttle/components/Component.js.map +1 -0
  989. package/transpiled/directives/io/lib/throttle/components/IP.d.ts +14 -0
  990. package/transpiled/directives/io/lib/throttle/components/IP.js +24 -0
  991. package/transpiled/directives/io/lib/throttle/components/IP.js.map +1 -0
  992. package/transpiled/directives/io/lib/throttle/components/Identity.d.ts +11 -0
  993. package/transpiled/directives/io/lib/throttle/components/Identity.js +12 -0
  994. package/transpiled/directives/io/lib/throttle/components/Identity.js.map +1 -0
  995. package/transpiled/directives/io/lib/throttle/components/Path.d.ts +5 -0
  996. package/transpiled/directives/io/lib/throttle/components/Path.js +6 -0
  997. package/transpiled/directives/io/lib/throttle/components/Path.js.map +1 -0
  998. package/transpiled/directives/io/lib/throttle/components/Route.d.ts +12 -0
  999. package/transpiled/directives/io/lib/throttle/components/Route.js +16 -0
  1000. package/transpiled/directives/io/lib/throttle/components/Route.js.map +1 -0
  1001. package/transpiled/directives/io/lib/throttle/components/Segment.d.ts +9 -0
  1002. package/transpiled/directives/io/lib/throttle/components/Segment.js +13 -0
  1003. package/transpiled/directives/io/lib/throttle/components/Segment.js.map +1 -0
  1004. package/transpiled/directives/io/lib/throttle/components/index.d.ts +5 -0
  1005. package/transpiled/directives/io/lib/throttle/components/index.js +13 -0
  1006. package/transpiled/directives/io/lib/throttle/components/index.js.map +1 -0
  1007. package/transpiled/directives/io/lib/throttle/conditions/Condition.d.ts +4 -0
  1008. package/transpiled/directives/io/lib/throttle/conditions/Condition.js +2 -0
  1009. package/transpiled/directives/io/lib/throttle/conditions/Condition.js.map +1 -0
  1010. package/transpiled/directives/io/lib/throttle/conditions/Status.d.ts +7 -0
  1011. package/transpiled/directives/io/lib/throttle/conditions/Status.js +12 -0
  1012. package/transpiled/directives/io/lib/throttle/conditions/Status.js.map +1 -0
  1013. package/transpiled/directives/io/lib/throttle/conditions/index.d.ts +5 -0
  1014. package/transpiled/directives/io/lib/throttle/conditions/index.js +5 -0
  1015. package/transpiled/directives/io/lib/throttle/conditions/index.js.map +1 -0
  1016. package/transpiled/directives/io/lib/throttle/index.d.ts +4 -0
  1017. package/transpiled/directives/io/lib/throttle/index.js +5 -0
  1018. package/transpiled/directives/io/lib/throttle/index.js.map +1 -0
  1019. package/transpiled/directives/io/schemas.d.ts +6 -4
  1020. package/transpiled/directives/io/schemas.js +8 -13
  1021. package/transpiled/directives/io/schemas.js.map +1 -1
  1022. package/transpiled/directives/map/Authority.d.ts +6 -0
  1023. package/transpiled/directives/map/Authority.js +12 -0
  1024. package/transpiled/directives/map/Authority.js.map +1 -0
  1025. package/transpiled/directives/map/Buffer.d.ts +6 -0
  1026. package/transpiled/directives/map/Buffer.js +12 -0
  1027. package/transpiled/directives/map/Buffer.js.map +1 -0
  1028. package/transpiled/directives/map/Claims.d.ts +10 -0
  1029. package/transpiled/directives/map/Claims.js +37 -0
  1030. package/transpiled/directives/map/Claims.js.map +1 -0
  1031. package/transpiled/directives/map/Directive.d.ts +3 -0
  1032. package/transpiled/directives/map/Directive.js +2 -0
  1033. package/transpiled/directives/map/Directive.js.map +1 -0
  1034. package/transpiled/directives/map/Headers.d.ts +14 -0
  1035. package/transpiled/directives/map/Headers.js +43 -0
  1036. package/transpiled/directives/map/Headers.js.map +1 -0
  1037. package/transpiled/directives/map/Language.d.ts +10 -0
  1038. package/transpiled/directives/map/Language.js +31 -0
  1039. package/transpiled/directives/map/Language.js.map +1 -0
  1040. package/transpiled/directives/map/Languages.d.ts +4 -0
  1041. package/transpiled/directives/map/Languages.js +10 -0
  1042. package/transpiled/directives/map/Languages.js.map +1 -0
  1043. package/transpiled/directives/map/Map.d.ts +15 -0
  1044. package/transpiled/directives/map/Map.js +50 -0
  1045. package/transpiled/directives/map/Map.js.map +1 -0
  1046. package/transpiled/directives/map/Mapping.d.ts +26 -0
  1047. package/transpiled/directives/map/Mapping.js +29 -0
  1048. package/transpiled/directives/map/Mapping.js.map +1 -0
  1049. package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
  1050. package/transpiled/directives/map/Properties.js +10 -0
  1051. package/transpiled/directives/map/Properties.js.map +1 -0
  1052. package/transpiled/directives/map/Segments.d.ts +9 -0
  1053. package/transpiled/directives/map/Segments.js +32 -0
  1054. package/transpiled/directives/map/Segments.js.map +1 -0
  1055. package/transpiled/directives/map/index.d.ts +2 -0
  1056. package/transpiled/directives/map/index.js +3 -0
  1057. package/transpiled/directives/map/index.js.map +1 -0
  1058. package/transpiled/directives/mcp/MCP.d.ts +18 -0
  1059. package/transpiled/directives/mcp/MCP.js +25 -0
  1060. package/transpiled/directives/mcp/MCP.js.map +1 -0
  1061. package/transpiled/directives/mcp/Tool.d.ts +12 -0
  1062. package/transpiled/directives/mcp/Tool.js +23 -0
  1063. package/transpiled/directives/mcp/Tool.js.map +1 -0
  1064. package/transpiled/directives/mcp/index.d.ts +4 -0
  1065. package/transpiled/directives/mcp/index.js +4 -0
  1066. package/transpiled/directives/mcp/index.js.map +1 -0
  1067. package/transpiled/directives/oauth/Discovery.d.ts +23 -0
  1068. package/transpiled/directives/oauth/Discovery.js +55 -0
  1069. package/transpiled/directives/oauth/Discovery.js.map +1 -0
  1070. package/transpiled/directives/oauth/documents.d.ts +9 -0
  1071. package/transpiled/directives/oauth/documents.js +82 -0
  1072. package/transpiled/directives/oauth/documents.js.map +1 -0
  1073. package/transpiled/directives/oauth/index.d.ts +2 -0
  1074. package/transpiled/directives/oauth/index.js +3 -0
  1075. package/transpiled/directives/oauth/index.js.map +1 -0
  1076. package/transpiled/directives/octets/Context.d.ts +2 -2
  1077. package/transpiled/directives/octets/Context.js +4 -31
  1078. package/transpiled/directives/octets/Context.js.map +1 -1
  1079. package/transpiled/directives/octets/Delete.d.ts +6 -6
  1080. package/transpiled/directives/octets/Delete.js +23 -47
  1081. package/transpiled/directives/octets/Delete.js.map +1 -1
  1082. package/transpiled/directives/octets/Directive.d.ts +9 -3
  1083. package/transpiled/directives/octets/Directive.js +1 -5
  1084. package/transpiled/directives/octets/Directive.js.map +1 -1
  1085. package/transpiled/directives/octets/Get.d.ts +17 -0
  1086. package/transpiled/directives/octets/Get.js +69 -0
  1087. package/transpiled/directives/octets/Get.js.map +1 -0
  1088. package/transpiled/directives/octets/Octets.d.ts +9 -6
  1089. package/transpiled/directives/octets/Octets.js +27 -26
  1090. package/transpiled/directives/octets/Octets.js.map +1 -1
  1091. package/transpiled/directives/octets/Put.d.ts +33 -0
  1092. package/transpiled/directives/octets/Put.js +82 -0
  1093. package/transpiled/directives/octets/Put.js.map +1 -0
  1094. package/transpiled/directives/octets/Workflow.d.ts +6 -6
  1095. package/transpiled/directives/octets/Workflow.js +14 -36
  1096. package/transpiled/directives/octets/Workflow.js.map +1 -1
  1097. package/transpiled/directives/octets/bytes.d.ts +1 -0
  1098. package/transpiled/directives/octets/bytes.js +14 -0
  1099. package/transpiled/directives/octets/bytes.js.map +1 -0
  1100. package/transpiled/directives/octets/index.d.ts +1 -1
  1101. package/transpiled/directives/octets/index.js +2 -5
  1102. package/transpiled/directives/octets/index.js.map +1 -1
  1103. package/transpiled/directives/octets/schemas.d.ts +6 -10
  1104. package/transpiled/directives/octets/schemas.js +8 -17
  1105. package/transpiled/directives/octets/schemas.js.map +1 -1
  1106. package/transpiled/directives/octets/types.d.ts +3 -1
  1107. package/transpiled/directives/octets/types.js +1 -2
  1108. package/transpiled/directives/octets/workflows/Execution.d.ts +9 -4
  1109. package/transpiled/directives/octets/workflows/Execution.js +47 -15
  1110. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  1111. package/transpiled/directives/octets/workflows/Workflow.d.ts +10 -5
  1112. package/transpiled/directives/octets/workflows/Workflow.js +16 -14
  1113. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  1114. package/transpiled/directives/octets/workflows/index.d.ts +1 -1
  1115. package/transpiled/directives/octets/workflows/index.js +1 -5
  1116. package/transpiled/directives/octets/workflows/index.js.map +1 -1
  1117. package/transpiled/directives/require/Directive.d.ts +2 -2
  1118. package/transpiled/directives/require/Directive.js +1 -2
  1119. package/transpiled/directives/require/Headers.d.ts +3 -3
  1120. package/transpiled/directives/require/Headers.js +4 -8
  1121. package/transpiled/directives/require/Headers.js.map +1 -1
  1122. package/transpiled/directives/require/Require.d.ts +4 -4
  1123. package/transpiled/directives/require/Require.js +8 -15
  1124. package/transpiled/directives/require/Require.js.map +1 -1
  1125. package/transpiled/directives/require/index.d.ts +1 -1
  1126. package/transpiled/directives/require/index.js +2 -5
  1127. package/transpiled/directives/require/index.js.map +1 -1
  1128. package/transpiled/discovery.js +1 -2
  1129. package/transpiled/exceptions.d.ts +1 -1
  1130. package/transpiled/exceptions.js +16 -34
  1131. package/transpiled/exceptions.js.map +1 -1
  1132. package/transpiled/index.d.ts +7 -5
  1133. package/transpiled/index.js +4 -11
  1134. package/transpiled/index.js.map +1 -1
  1135. package/transpiled/io.d.ts +1 -1
  1136. package/transpiled/io.js +1 -2
  1137. package/transpiled/manifest.d.ts +1 -1
  1138. package/transpiled/manifest.js +22 -49
  1139. package/transpiled/manifest.js.map +1 -1
  1140. package/transpiled/root.d.ts +1 -1
  1141. package/transpiled/root.js +22 -11
  1142. package/transpiled/root.js.map +1 -1
  1143. package/transpiled/schemas.d.ts +5 -3
  1144. package/transpiled/schemas.js +8 -13
  1145. package/transpiled/schemas.js.map +1 -1
  1146. package/transpiled/service.d.ts +7 -0
  1147. package/transpiled/service.js +74 -0
  1148. package/transpiled/service.js.map +1 -0
  1149. package/transpiled/shortcuts.d.ts +3 -0
  1150. package/transpiled/shortcuts.js +13 -0
  1151. package/transpiled/shortcuts.js.map +1 -0
  1152. package/transpiled/userland.d.ts +39 -0
  1153. package/transpiled/userland.js +7 -0
  1154. package/transpiled/userland.js.map +1 -0
  1155. package/tsconfig.json +2 -1
  1156. package/tsconfig.tsbuildinfo +1 -0
  1157. package/ui/dist/_app/env.js +1 -0
  1158. package/ui/dist/_app/immutable/assets/0.Bl7vLmIK.css +2 -0
  1159. package/ui/dist/_app/immutable/assets/2.BC0-Jhqu.css +1 -0
  1160. package/ui/dist/_app/immutable/assets/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2 +0 -0
  1161. package/ui/dist/_app/immutable/assets/inter-cyrillic-wght-normal.DqGufNeO.woff2 +0 -0
  1162. package/ui/dist/_app/immutable/assets/inter-greek-ext-wght-normal.DlzME5K_.woff2 +0 -0
  1163. package/ui/dist/_app/immutable/assets/inter-greek-wght-normal.CkhJZR-_.woff2 +0 -0
  1164. package/ui/dist/_app/immutable/assets/inter-latin-ext-wght-normal.DO1Apj_S.woff2 +0 -0
  1165. package/ui/dist/_app/immutable/assets/inter-latin-wght-normal.Dx4kXJAl.woff2 +0 -0
  1166. package/ui/dist/_app/immutable/assets/inter-vietnamese-wght-normal.CBcvBZtf.woff2 +0 -0
  1167. package/ui/dist/_app/immutable/chunks/B_pK3U1C.js +6 -0
  1168. package/ui/dist/_app/immutable/chunks/Bjy-W4x2.js +81 -0
  1169. package/ui/dist/_app/immutable/chunks/CiKbPLyY.js +1 -0
  1170. package/ui/dist/_app/immutable/chunks/D9tE1yyO.js +1 -0
  1171. package/ui/dist/_app/immutable/chunks/DjIYL2zC.js +3 -0
  1172. package/ui/dist/_app/immutable/chunks/xihTtKlq.js +1 -0
  1173. package/ui/dist/_app/immutable/entry/app.DMqmL4NY.js +2 -0
  1174. package/ui/dist/_app/immutable/entry/start.CRe7HWBI.js +1 -0
  1175. package/ui/dist/_app/immutable/nodes/0.D9m-6cbM.js +1 -0
  1176. package/ui/dist/_app/immutable/nodes/1.Cgi_RcSO.js +1 -0
  1177. package/ui/dist/_app/immutable/nodes/2.D_Cbxgz4.js +14 -0
  1178. package/ui/dist/_app/version.json +1 -0
  1179. package/ui/dist/apple-touch-icon.png +0 -0
  1180. package/ui/dist/favicon-96x96.png +0 -0
  1181. package/ui/dist/favicon.ico +0 -0
  1182. package/ui/dist/index.html +66 -0
  1183. package/components/identity.bans/operations/transit.d.ts +0 -14
  1184. package/components/identity.bans/operations/transit.js.map +0 -1
  1185. package/components/identity.bans/operations/tsconfig.tsbuildinfo +0 -1
  1186. package/components/identity.basic/operations/authenticate.d.ts +0 -13
  1187. package/components/identity.basic/operations/authenticate.js.map +0 -1
  1188. package/components/identity.basic/operations/incept.d.ts +0 -12
  1189. package/components/identity.basic/operations/incept.js.map +0 -1
  1190. package/components/identity.basic/operations/transit.d.ts +0 -12
  1191. package/components/identity.basic/operations/transit.js.map +0 -1
  1192. package/components/identity.basic/operations/tsconfig.tsbuildinfo +0 -1
  1193. package/components/identity.basic/operations/types.d.ts +0 -40
  1194. package/components/identity.basic/operations/types.js +0 -3
  1195. package/components/identity.basic/operations/types.js.map +0 -1
  1196. package/components/identity.basic/source/types.ts +0 -44
  1197. package/components/identity.federation/operations/authenticate.d.ts +0 -3
  1198. package/components/identity.federation/operations/authenticate.js.map +0 -1
  1199. package/components/identity.federation/operations/incept.d.ts +0 -11
  1200. package/components/identity.federation/operations/incept.js.map +0 -1
  1201. package/components/identity.federation/operations/lib/assertions-as-values.d.ts +0 -4
  1202. package/components/identity.federation/operations/lib/assertions-as-values.js +0 -45
  1203. package/components/identity.federation/operations/lib/assertions-as-values.js.map +0 -1
  1204. package/components/identity.federation/operations/lib/jwt.d.ts +0 -19
  1205. package/components/identity.federation/operations/lib/jwt.js +0 -136
  1206. package/components/identity.federation/operations/lib/jwt.js.map +0 -1
  1207. package/components/identity.federation/operations/tsconfig.tsbuildinfo +0 -1
  1208. package/components/identity.federation/operations/types/configuration.d.ts +0 -15
  1209. package/components/identity.federation/operations/types/configuration.js.map +0 -1
  1210. package/components/identity.federation/operations/types/context.d.ts +0 -56
  1211. package/components/identity.federation/operations/types/context.js.map +0 -1
  1212. package/components/identity.federation/operations/types/entity.d.ts +0 -6
  1213. package/components/identity.federation/operations/types/entity.js.map +0 -1
  1214. package/components/identity.federation/operations/types/index.d.ts +0 -3
  1215. package/components/identity.federation/operations/types/index.js.map +0 -1
  1216. package/components/identity.federation/source/lib/assertions-as-values.ts +0 -19
  1217. package/components/identity.federation/source/lib/jwt.test.ts +0 -56
  1218. package/components/identity.federation/source/lib/jwt.ts +0 -170
  1219. package/components/identity.roles/operations/grant.d.ts +0 -10
  1220. package/components/identity.roles/operations/grant.js.map +0 -1
  1221. package/components/identity.roles/operations/lib/Entity.d.ts +0 -5
  1222. package/components/identity.roles/operations/lib/Entity.js.map +0 -1
  1223. package/components/identity.roles/operations/list.d.ts +0 -2
  1224. package/components/identity.roles/operations/list.js.map +0 -1
  1225. package/components/identity.roles/operations/principal.d.ts +0 -13
  1226. package/components/identity.roles/operations/principal.js.map +0 -1
  1227. package/components/identity.roles/operations/tsconfig.tsbuildinfo +0 -1
  1228. package/components/identity.tokens/operations/authenticate.d.ts +0 -9
  1229. package/components/identity.tokens/operations/authenticate.js.map +0 -1
  1230. package/components/identity.tokens/operations/decrypt.d.ts +0 -3
  1231. package/components/identity.tokens/operations/decrypt.js.map +0 -1
  1232. package/components/identity.tokens/operations/encrypt.d.ts +0 -8
  1233. package/components/identity.tokens/operations/encrypt.js.map +0 -1
  1234. package/components/identity.tokens/operations/revoke.d.ts +0 -2
  1235. package/components/identity.tokens/operations/revoke.js.map +0 -1
  1236. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +0 -1
  1237. package/components/identity.tokens/operations/types.d.ts +0 -46
  1238. package/components/identity.tokens/operations/types.js +0 -3
  1239. package/components/identity.tokens/operations/types.js.map +0 -1
  1240. package/components/identity.tokens/source/types.ts +0 -55
  1241. package/components/octets.storage/manifest.toa.yaml +0 -21
  1242. package/components/octets.storage/operations/delete.js +0 -7
  1243. package/components/octets.storage/operations/fetch.js +0 -46
  1244. package/components/octets.storage/operations/get.js +0 -7
  1245. package/components/octets.storage/operations/list.js +0 -7
  1246. package/components/octets.storage/operations/store.js +0 -11
  1247. package/cucumber.js +0 -7
  1248. package/documentation/vary.md +0 -69
  1249. package/entity.json +0 -0
  1250. package/features/steps/IdP.ts +0 -154
  1251. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  1252. package/features/vary.feature +0 -252
  1253. package/schemas/octets/context.cos.yaml +0 -1
  1254. package/schemas/octets/fetch.cos.yaml +0 -3
  1255. package/schemas/octets/list.cos.yaml +0 -2
  1256. package/schemas/octets/permute.cos.yaml +0 -1
  1257. package/schemas/octets/store.cos.yaml +0 -3
  1258. package/source/directives/octets/Fetch.ts +0 -100
  1259. package/source/directives/octets/List.ts +0 -72
  1260. package/source/directives/octets/Store.ts +0 -126
  1261. package/source/directives/vary/Directive.ts +0 -7
  1262. package/source/directives/vary/Embed.ts +0 -68
  1263. package/source/directives/vary/Vary.ts +0 -50
  1264. package/source/directives/vary/embeddings/Authority.ts +0 -8
  1265. package/source/directives/vary/embeddings/Embedding.ts +0 -7
  1266. package/source/directives/vary/embeddings/Header.ts +0 -32
  1267. package/source/directives/vary/embeddings/Language.ts +0 -31
  1268. package/source/directives/vary/embeddings/Parameter.ts +0 -14
  1269. package/source/directives/vary/embeddings/index.ts +0 -13
  1270. package/source/directives/vary/index.ts +0 -3
  1271. package/source/index.test.ts +0 -9
  1272. package/transpiled/directives/octets/Fetch.d.ts +0 -18
  1273. package/transpiled/directives/octets/Fetch.js +0 -92
  1274. package/transpiled/directives/octets/Fetch.js.map +0 -1
  1275. package/transpiled/directives/octets/List.d.ts +0 -16
  1276. package/transpiled/directives/octets/List.js +0 -74
  1277. package/transpiled/directives/octets/List.js.map +0 -1
  1278. package/transpiled/directives/octets/Store.d.ts +0 -24
  1279. package/transpiled/directives/octets/Store.js +0 -95
  1280. package/transpiled/directives/octets/Store.js.map +0 -1
  1281. package/transpiled/directives/vary/Directive.d.ts +0 -6
  1282. package/transpiled/directives/vary/Directive.js +0 -3
  1283. package/transpiled/directives/vary/Directive.js.map +0 -1
  1284. package/transpiled/directives/vary/Embed.d.ts +0 -11
  1285. package/transpiled/directives/vary/Embed.js +0 -51
  1286. package/transpiled/directives/vary/Embed.js.map +0 -1
  1287. package/transpiled/directives/vary/Properties.js +0 -16
  1288. package/transpiled/directives/vary/Properties.js.map +0 -1
  1289. package/transpiled/directives/vary/Vary.d.ts +0 -10
  1290. package/transpiled/directives/vary/Vary.js +0 -36
  1291. package/transpiled/directives/vary/Vary.js.map +0 -1
  1292. package/transpiled/directives/vary/embeddings/Authority.d.ts +0 -5
  1293. package/transpiled/directives/vary/embeddings/Authority.js +0 -10
  1294. package/transpiled/directives/vary/embeddings/Authority.js.map +0 -1
  1295. package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -6
  1296. package/transpiled/directives/vary/embeddings/Embedding.js +0 -3
  1297. package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
  1298. package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
  1299. package/transpiled/directives/vary/embeddings/Header.js +0 -28
  1300. package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
  1301. package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
  1302. package/transpiled/directives/vary/embeddings/Language.js +0 -28
  1303. package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
  1304. package/transpiled/directives/vary/embeddings/Parameter.d.ts +0 -7
  1305. package/transpiled/directives/vary/embeddings/Parameter.js +0 -14
  1306. package/transpiled/directives/vary/embeddings/Parameter.js.map +0 -1
  1307. package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
  1308. package/transpiled/directives/vary/embeddings/index.js +0 -14
  1309. package/transpiled/directives/vary/embeddings/index.js.map +0 -1
  1310. package/transpiled/directives/vary/index.d.ts +0 -2
  1311. package/transpiled/directives/vary/index.js +0 -6
  1312. package/transpiled/directives/vary/index.js.map +0 -1
  1313. package/transpiled/tsconfig.tsbuildinfo +0 -1
@@ -30,6 +30,7 @@ exposition:
30
30
  query:
31
31
  criteria: state==hot
32
32
  sort: rank:desc
33
+ text: true
33
34
  limit: 10
34
35
  /latest:
35
36
  GET:
@@ -47,9 +48,13 @@ Undefined `query` denies any query arguments in requests.
47
48
 
48
49
  Search criteria in [RSQL](https://github.com/jirutka/rsql-parser) format.
49
50
 
50
- The `criteria` property is considered as *open* when it ends with a `;`, allowing the combination of
51
+ A value is read as what the property it selects on holds, and one that cannot be read as that is
52
+ refused with `400 Bad Request` — `volume>abc` where `volume` is a number, or `booked==yes` where
53
+ `booked` is a boolean. A string property takes whatever is written.
54
+
55
+ The `criteria` property is considered as _open_ when it ends with a `;`, allowing the combination of
51
56
  request query criteria using `and` logic.
52
- Otherwise, criteria property is *closed*, that is, doesn't allow `criteria` in a request query.
57
+ Otherwise, criteria property is _closed_, that is, doesn't allow `criteria` in a request query.
53
58
 
54
59
  ```yaml
55
60
  # manifest.toa.yaml
@@ -148,6 +153,29 @@ rank: 5
148
153
 
149
154
  > In case of conflict, path variables override input properties.
150
155
 
156
+ ## Text search
157
+
158
+ For entities with `text` indexes — declared in a
159
+ [migration](/documentation/component/declaration.md#migrations) — search queries can be enabled
160
+ using the `search` property.
161
+
162
+ ```yaml
163
+ # manifest.toa.yaml
164
+
165
+ name: dummies
166
+
167
+ exposition:
168
+ /:type:
169
+ GET:
170
+ endpoint: observe
171
+ query:
172
+ search: true
173
+ ```
174
+
175
+ ```yaml
176
+ GET /dummies/?search=some+text+query
177
+ ```
178
+
151
179
  ## Omit, limit
152
180
 
153
181
  `omit` and `limit` properties can declare their default values and allowed boundaries:
@@ -177,6 +205,10 @@ Constant values can be declared using the shortcut:
177
205
  limit: 10
178
206
  ```
179
207
 
208
+ ```http
209
+ GET /dummies/?omit=100&limit=10
210
+ ```
211
+
180
212
  ## Sort
181
213
 
182
214
  The `sort` query property defines the result order of Observations within an `objects` scope
@@ -197,7 +229,7 @@ sort: rank:asc
197
229
  sort: rank:desc;timestamp:asc
198
230
  ```
199
231
 
200
- If `sort` value ends with a semicolon `;` then the sorting is considered *open*
232
+ If `sort` value ends with a semicolon `;` then the sorting is considered _open_
201
233
  and can be extended using request query `sort` argument.
202
234
 
203
235
  ```yaml
@@ -213,6 +245,8 @@ GET /dummies/?sort=timestamp:asc
213
245
 
214
246
  ## Selectors
215
247
 
248
+ ![Not implemented](https://img.shields.io/badge/Not_implemented-red)
249
+
216
250
  The `selectors` query property contains a list of Entity properties allowed for a client to use in
217
251
  the `criteria` and `sort` query parameters.
218
252
  If no value is provided, then no selectors are allowed.
@@ -229,12 +263,27 @@ A list of Entity properties to be included in the Observation result.
229
263
  projection: [id, title, timestamp]
230
264
  ```
231
265
 
266
+ ## Parameters
267
+
268
+ By default, the only query parameters allowed are described above. Arbitrary query parameters
269
+ can be allowed by specifying them in the `parameters` property.
270
+
271
+ ```yaml
272
+ parameters: [foo, bar]
273
+ ```
274
+
275
+ These parameters are embedded in the operation call input, which must be an object.
276
+
277
+ ```http
278
+ GET /dummies/?foo=0&bar=baz
279
+ ```
280
+
232
281
  ## Optimistic concurrency control
233
282
 
234
- If an operation returns an object with `_version` property,
235
- then its value is passed as the value of
236
- the [`etag` header](https://datatracker.ietf.org/doc/html/rfc7232#section-2.3) in the response
237
- (and removed from the object).
283
+ If an operation answers a safe request (`GET`, `HEAD`) with an object that has a `VERSION`
284
+ property, its value is passed as the value of
285
+ the [`etag` header](https://datatracker.ietf.org/doc/html/rfc7232#section-2.3) in the response,
286
+ see [validators](cache.md#validators).
238
287
 
239
288
  Client can use the `if-match` request header to perform an operation only if the corresponding
240
289
  object has not been modified since the last retrieval.
@@ -0,0 +1,154 @@
1
+ # JSON-RPC
2
+
3
+ An application annotates it, and every resource it exposes answers as a procedure as well.
4
+
5
+ ```yaml
6
+ exposition:
7
+ rpc:
8
+ batch: 32
9
+ ```
10
+
11
+ Without it `/.rpc` is a path like any other, and nothing answers there. The path is fixed:
12
+ one an application could choose is one it could collide with a route of its own.
13
+
14
+ ## The name
15
+
16
+ A procedure is an RTD method — a node and a verb — and its name is the route template with a
17
+ variable marked by a leading `_` and the verb as the last segment, joined by `.`.
18
+
19
+ The separator is `.` and not `/` because a name is a tool's name too, and
20
+ [MCP](mcp.md) names the characters one may hold: letters, digits, `_`, `-` and `.`. A client that
21
+ receives one outside that set may refuse the tool, and one that accepts it rewrites what it shows
22
+ a model — so what is published has to be spellable as it stands.
23
+
24
+ | route | verb | method |
25
+ | ---------------------------- | ------ | -------------------------------- |
26
+ | `/pots` | `GET` | `pots.GET` |
27
+ | `/pots` | `POST` | `pots.POST` |
28
+ | `/pots/:id` | `GET` | `pots._id.GET` |
29
+ | `/identity/tokens/:identity` | `POST` | `identity.tokens._identity.POST` |
30
+ | `/files/**` | `GET` | `files.__.GET` |
31
+ | `/` | `GET` | `GET` |
32
+
33
+ The verb is always the last segment, so `/pots/GET` answering `POST` is `pots.GET.POST` and
34
+ `/pots` answering `GET` is `pots.GET`. Nothing is declared to make a name: a re-mounted route is
35
+ a renamed procedure, because the name is the address.
36
+
37
+ ## What has a name
38
+
39
+ A segment is addressed where it holds only `A-Z`, `a-z`, `0-9` and `-`. `_` is the name's own,
40
+ marking a variable, and `__` the rest of a path; `.` is what divides one segment from the next.
41
+
42
+ A route with a segment holding anything else — a `.`, a `_`, a `*`, a variable that is not one
43
+ word — has no name. It is served over HTTP as it always was; what it loses is the address, so
44
+ `/.rpc` cannot call it. Each is said once at startup, naming the route and the segment.
45
+
46
+ ```
47
+ Route cannot be addressed as a procedure route=/pots/v1.0 segment=v1.0
48
+ ```
49
+
50
+ ## The parameters
51
+
52
+ `params` is by name, and carries what a request carries.
53
+
54
+ A key the template names is a route variable, and is taken by the path. `query` is the
55
+ querystring. Whatever is left is the body.
56
+
57
+ ```json
58
+ { "jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": { "id": "a1b2" } }
59
+ ```
60
+
61
+ ```json
62
+ {
63
+ "jsonrpc": "2.0",
64
+ "id": 2,
65
+ "method": "pots.POST",
66
+ "params": { "title": "Kettle", "volume": 1.7 }
67
+ }
68
+ ```
69
+
70
+ ```json
71
+ {
72
+ "jsonrpc": "2.0",
73
+ "id": 3,
74
+ "method": "pots.GET",
75
+ "params": { "query": { "criteria": "volume=gt=1", "limit": 10 } }
76
+ }
77
+ ```
78
+
79
+ The querystring has a name of its own because an operation's input is free to have an `id` or
80
+ a `limit`, and the two would otherwise be one object. An operation whose input has a property
81
+ named `query` cannot be called with one.
82
+
83
+ A variable stands for a single segment, so its value may not contain `/`, `?` or `#`. `__`
84
+ stands for the rest of the path and may contain `/`; its value is read under the name `**`,
85
+ which is what the RTD calls it wherever else it is read.
86
+
87
+ ## What answers
88
+
89
+ The reply is the operation's, restricted by the same [`io:output`](io.md) as the resource's,
90
+ and encoded as the request's `accept` asks. A call that returned nothing answers `result: null`
91
+ — JSON-RPC has no 404, and nothing went wrong.
92
+
93
+ A call with no `id` is a notification: it runs and answers nothing, and a request carrying only
94
+ notifications answers `204`.
95
+
96
+ ## Several at once
97
+
98
+ A request may carry an array of calls instead of one, and answers an array of what they
99
+ answered — shorter than what it was given, where some were notifications.
100
+
101
+ ```json
102
+ [
103
+ { "jsonrpc": "2.0", "id": 1, "method": "pots._id.GET", "params": { "id": "a1b2" } },
104
+ { "jsonrpc": "2.0", "method": "pots._id.DELETE", "params": { "id": "c3d4" } }
105
+ ]
106
+ ```
107
+
108
+ They run one after another, in the order given. `batch` is how many one request may carry, 32
109
+ where the annotation does not say: a request is one authentication and one reply however many
110
+ calls it makes, so what a caller may ask for at once is bounded.
111
+
112
+ ## What refuses
113
+
114
+ The whole request is refused, with a status, when it is not a request this endpoint serves: a
115
+ verb other than `POST` is `405`, an unreadable body is `400`, and an array that is empty or
116
+ longer than `batch` is `400`.
117
+
118
+ A call that is not one — a version it does not state, a method it does not name — is answered
119
+ to nobody: `id` is `null`, because nothing about it is trustworthy enough to answer to.
120
+
121
+ A credential is the request's, so a call cannot be refused for one: a request that presents
122
+ none where the procedure requires one is `401`, and carries the challenge that says where to
123
+ authenticate.
124
+
125
+ Everything else a call runs into is a value, at `200`, because the request itself succeeded.
126
+
127
+ | | |
128
+ | -------- | -------------------------------------------------- |
129
+ | `-32601` | no route of that name, or no such verb on it |
130
+ | `-32602` | a variable is missing, or a query is not one |
131
+ | `-32000` | the identity is not authorized to make this call |
132
+ | `-32001` | the operation refused, its own code in `data.code` |
133
+ | `-32603` | anything the gateway did not mean to answer |
134
+ | `-32002` | the request carries more calls than `batch` |
135
+
136
+ The first five codes JSON-RPC states mean the same to every client. `-32000` and `-32001` are
137
+ this gateway's, from the block the specification reserves and leaves empty, so
138
+ `-32001` says only that an operation refused — `data.code` is the code that operation declares
139
+ in its manifest, and is what a caller reads.
140
+
141
+ ## Authorization
142
+
143
+ A procedure is authorized as the resource is, against the path and the verb its name states.
144
+ A token restricted to `/pots/:id/` for `GET` authorizes `pots._id.GET` and nothing else,
145
+ whichever way the call arrives.
146
+
147
+ [`anonymous`](access.md#anonymous) is the one directive that reads a call differently from a
148
+ request: it admits one whatever the request presented, because what refuses a credentialed request
149
+ is that the reply would not be cacheable, and what a call answers is not a reply.
150
+
151
+ ## What has no procedure
152
+
153
+ `map:buffer` reads the request, and a call is not the request. A resource that declares it
154
+ answers over HTTP alone.
@@ -0,0 +1,70 @@
1
+ # Tracing
2
+
3
+ Each incoming request is processed within a [trace](../../telemetry/readme.md#tracing) —
4
+ a server span is created, and its trace context is propagated to component invocations and
5
+ emitted events, so all log entries and spans across the application caused by the request
6
+ share the same `trace_id`.
7
+
8
+ ## The `ray` response header
9
+
10
+ Each response contains a `ray` header with the trace ID of the request.
11
+ It can be used to find related log entries, or be attached to a support ticket.
12
+
13
+ Log entries are stamped with the trace ID regardless of the sampling decision,
14
+ while the trace itself is only recorded if the trace is sampled (see [Sampling](#sampling)).
15
+
16
+ ```
17
+ HTTP/1.1 201 Created
18
+ ray: 0af7651916cd43dd8448eb211c80319c
19
+ ```
20
+
21
+ ## Continuing a trace
22
+
23
+ By default, the trace starts at the gateway. If the request carries a trace context in one of the
24
+ following headers, the trace is continued, that is, the incoming trace ID is used.
25
+
26
+ ### `traceparent`
27
+
28
+ The [W3C Trace Context](https://www.w3.org/TR/trace-context/#traceparent-header) header, sent by
29
+ clients instrumented with OpenTelemetry-compatible tooling, or by upstream proxies.
30
+
31
+ ```
32
+ traceparent: 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01
33
+ ```
34
+
35
+ In addition to the trace ID, it carries the ID of the client span, which becomes the _parent_ of
36
+ the gateway's server span, linking client-side and server-side spans into a single trace tree.
37
+
38
+ ### `ray`
39
+
40
+ A bare trace ID (32 lowercase hex digits), for clients without tracing instrumentation willing to
41
+ correlate their requests with server-side traces.
42
+
43
+ ```
44
+ ray: 4bf92f3577b34da6a3ce929d0e0e4736
45
+ ```
46
+
47
+ Unlike `traceparent`, it carries no parent span, so the gateway's server span becomes the root of
48
+ the trace.
49
+
50
+ If both headers are present, `traceparent` takes precedence as it carries more information.
51
+ Headers with invalid values are ignored, and a new trace is started.
52
+
53
+ ## Sampling
54
+
55
+ The trace _context_ (trace ID) is always created and propagated, so the `ray` header and
56
+ `trace_id` in log entries are always present. The sampling decision only determines whether
57
+ the _spans_ of the trace are recorded.
58
+
59
+ The decision is made once, by the process that starts the trace, and is propagated along with
60
+ the trace context (the flags byte of `traceparent`), so a trace is either recorded as a whole
61
+ or not at all. Sampling is configured with the
62
+ [`telemetry.traces` annotation](../../telemetry/readme.md#sampling).
63
+
64
+ Sending a trace context does not bypass sampling: an incoming `ray` header adopts the trace ID,
65
+ while the recording decision is still made by the gateway. The `sampled` flag of an incoming
66
+ `traceparent` is respected, as the decision belongs to the trace root.
67
+
68
+ ## See also
69
+
70
+ - [Telemetry extension](../../telemetry/readme.md) — spans, structured logs, `context.span`
@@ -56,8 +56,24 @@ as it provides a more specific match compared to the generic `/users/:id` route.
56
56
 
57
57
  The priority of Routes with the same specificity is determined by the order of declaration.
58
58
 
59
+ ## Route forwarding
60
+
61
+ A Route can be forwarded to another Route by specifying the destination Route as the value of the
62
+ Route.
63
+
64
+ ```yaml
65
+ /destination/:var: ...
66
+ /static: /destination/hello
67
+ /variables/:bar: /destination/:bar
68
+ ```
69
+
70
+ Forwarding Route variables are mapped to the forwarded Route variables if they have the same name.
71
+
59
72
  ## Methods
60
73
 
74
+ Every Method is also addressable as a procedure, where the context annotates
75
+ [JSON-RPC](rpc.md).
76
+
61
77
  Methods are mappings of the HTTP methods to the corresponding operations.
62
78
 
63
79
  A Method is a key named after the corresponding HTTP method, with a value following the schema
@@ -96,7 +112,7 @@ key.
96
112
  HTTP methods can only be mapped to operations of the corresponding types.
97
113
 
98
114
  | HTTP method | Operation type |
99
- |-------------|-----------------------------------------------|
115
+ | ----------- | --------------------------------------------- |
100
116
  | `POST` | **Transition** (without Query)<br/>**Effect** |
101
117
  | `PUT` | **Transition** (with Query)<br/>**Effect** |
102
118
  | `GET` | **Observation**<br/>**Computation** |
@@ -52,6 +52,56 @@ Feature: Access authorization
52
52
  access: granted!
53
53
  """
54
54
 
55
+ Scenario: Allow access to anyone
56
+ Given the annotation:
57
+ """yaml
58
+ /:
59
+ io:output: true
60
+ auth:anyone: true
61
+ GET:
62
+ dev:stub:
63
+ access: granted!
64
+ """
65
+ When the following request is received:
66
+ """
67
+ GET / HTTP/1.1
68
+ host: nex.toa.io
69
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
70
+ accept: application/yaml
71
+ """
72
+ Then the following reply is sent:
73
+ """
74
+ 200 OK
75
+ content-type: application/yaml
76
+
77
+ access: granted!
78
+ """
79
+
80
+ # request without credentials
81
+ When the following request is received:
82
+ """
83
+ GET / HTTP/1.1
84
+ host: nex.toa.io
85
+ accept: application/yaml
86
+ """
87
+ Then the following reply is sent:
88
+ """
89
+ 401 Unauthorized
90
+ """
91
+
92
+ # request with invalid credentials
93
+ When the following request is received:
94
+ """
95
+ GET / HTTP/1.1
96
+ host: nex.toa.io
97
+ authorization: Basic bm9uOmV4aXN0ZW50
98
+ accept: application/yaml
99
+ """
100
+ Then the following reply is sent:
101
+ """
102
+ 401 Unauthorized
103
+ """
104
+
55
105
  Scenario: Deny access with credentials to a resource with anonymous access
56
106
  Given the annotation:
57
107
  """yaml
@@ -364,8 +414,8 @@ Feature: Access authorization
364
414
  Then the following reply is sent:
365
415
  """
366
416
  200 OK
367
- content-type: application/yaml
368
417
  authorization: Token ${{ token }}
418
+ content-type: application/yaml
369
419
 
370
420
  access: granted!
371
421
  """
@@ -421,12 +471,12 @@ Feature: Access authorization
421
471
  """
422
472
  403 Forbidden
423
473
 
424
- Basic authentication scheme is required to access this resource.
474
+ Basic authentication scheme is required to access this resource
425
475
  """
426
476
 
427
477
  Scenario: Adding a role without required permissions
428
478
 
429
- Trunk directives should not be applied to the Identity management resources.
479
+ Trunk directives should not be applied to the Identity management resources
430
480
 
431
481
  Given the annotation:
432
482
  """yaml
@@ -468,9 +518,79 @@ Feature: Access authorization
468
518
  Then the following reply is sent:
469
519
  """
470
520
  200 OK
521
+ authorization: Token ${{ token }}
471
522
 
472
523
  identity:
473
524
  id: efe3a65ebbee47ed95a73edd911ea328
474
525
  roles:
475
526
  - developer
476
527
  """
528
+ When the following request is received:
529
+ """
530
+ GET /echo/ HTTP/1.1
531
+ host: nex.toa.io
532
+ authorization: Token ${{ token }}
533
+ """
534
+ Then the following reply is sent:
535
+ """
536
+ 200 OK
537
+ """
538
+ And the reply does not contain:
539
+ """
540
+ authorization: Token
541
+ """
542
+
543
+ Scenario: Delegation does not violate input restrictions
544
+ Given the `identity.roles` database contains:
545
+ | _id | identity | role |
546
+ | 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer |
547
+ # `auth:` is declared before `io:`, and the identity it embeds is the server's
548
+ # own addition — what `io:input` restricts is the body the client sent
549
+ And the `echo` is running with the following manifest:
550
+ """yaml
551
+ exposition:
552
+ /:
553
+ POST:
554
+ auth:rule:
555
+ role: developer
556
+ delegate: identity
557
+ io:input: [foo]
558
+ io:output: true
559
+ endpoint: echo
560
+ """
561
+ When the following request is received:
562
+ """
563
+ POST /echo/ HTTP/1.1
564
+ host: nex.toa.io
565
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
566
+ accept: application/yaml
567
+ content-type: application/yaml
568
+
569
+ foo: bar
570
+ """
571
+ Then the following reply is sent:
572
+ """
573
+ 201 Created
574
+
575
+ foo: bar
576
+ identity:
577
+ id: efe3a65ebbee47ed95a73edd911ea328
578
+ """
579
+ # and a property the client is not allowed to send is still refused
580
+ When the following request is received:
581
+ """
582
+ POST /echo/ HTTP/1.1
583
+ host: nex.toa.io
584
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
585
+ accept: application/yaml
586
+ content-type: application/yaml
587
+
588
+ foo: bar
589
+ baz: qux
590
+ """
591
+ Then the following reply is sent:
592
+ """
593
+ 400 Bad Request
594
+
595
+ 'Unexpected input: baz'
596
+ """
@@ -0,0 +1,55 @@
1
+ Feature: Identity assertion
2
+
3
+ Scenario: Assert Identity
4
+ Given the `identity.basic` database contains:
5
+ | _id | authority | username | password | VERSION |
6
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O | 1 |
7
+ And the `echo` is running with the following manifest:
8
+ """yaml
9
+ exposition:
10
+ /:
11
+ GET:
12
+ auth:assert: true
13
+ anyone: true
14
+ io:output: true
15
+ endpoint: ping
16
+ """
17
+
18
+ # existent identity
19
+ When the following request is received:
20
+ """
21
+ GET /echo/ HTTP/1.1
22
+ host: nex.toa.io
23
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
24
+ """
25
+ Then the following reply is sent:
26
+ """
27
+ 200 OK
28
+ authorization: Token ${{ developer.token }}
29
+ """
30
+
31
+ # new identity
32
+ When the following request is received:
33
+ """
34
+ GET /echo/ HTTP/1.1
35
+ host: nex.toa.io
36
+ authorization: Basic dXNlcjpwYSQkdzByZCE=
37
+ """
38
+ Then the following reply is sent:
39
+ """
40
+ 201 Created
41
+ authorization: Token ${{ user.token }}
42
+ """
43
+
44
+ # wrong password for the credentials just created
45
+ When the following request is received:
46
+ """
47
+ GET /echo/ HTTP/1.1
48
+ host: nex.toa.io
49
+ authorization: Basic dXNlcjpwYXNz
50
+ accept: application/yaml
51
+ """
52
+ Then the following reply is sent:
53
+ """
54
+ 401 Unauthorized
55
+ """