@toa.io/extensions.exposition 1.0.0-alpha.15 → 1.0.0-alpha.151

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 (739) hide show
  1. package/components/context.toa.yaml +2 -2
  2. package/components/identity.bans/manifest.toa.yaml +1 -1
  3. package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -1
  4. package/components/identity.basic/manifest.toa.yaml +47 -10
  5. package/components/identity.basic/operations/authenticate.d.ts +5 -1
  6. package/components/identity.basic/operations/authenticate.js +7 -4
  7. package/components/identity.basic/operations/authenticate.js.map +1 -1
  8. package/components/identity.basic/operations/check.d.ts +7 -0
  9. package/components/identity.basic/operations/check.js +15 -0
  10. package/components/identity.basic/operations/check.js.map +1 -0
  11. package/components/identity.basic/operations/incept.d.ts +12 -0
  12. package/components/identity.basic/operations/incept.js +26 -0
  13. package/components/identity.basic/operations/incept.js.map +1 -0
  14. package/components/identity.basic/operations/transit.d.ts +4 -4
  15. package/components/identity.basic/operations/transit.js +8 -6
  16. package/components/identity.basic/operations/transit.js.map +1 -1
  17. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  18. package/components/identity.basic/operations/types.d.ts +8 -4
  19. package/components/identity.basic/source/authenticate.ts +18 -7
  20. package/components/identity.basic/source/check.ts +20 -0
  21. package/components/identity.basic/source/incept.ts +38 -0
  22. package/components/identity.basic/source/transit.ts +11 -9
  23. package/components/identity.basic/source/types.ts +8 -4
  24. package/components/identity.federation/manifest.toa.yaml +80 -38
  25. package/components/identity.federation/operations/authenticate.d.ts +16 -3
  26. package/components/identity.federation/operations/authenticate.js +25 -15
  27. package/components/identity.federation/operations/authenticate.js.map +1 -1
  28. package/components/identity.federation/operations/decode.d.ts +3 -0
  29. package/components/identity.federation/operations/decode.js +12 -0
  30. package/components/identity.federation/operations/decode.js.map +1 -0
  31. package/components/identity.federation/operations/incept.d.ts +11 -0
  32. package/components/identity.federation/operations/incept.js +23 -0
  33. package/components/identity.federation/operations/incept.js.map +1 -0
  34. package/components/identity.federation/operations/lib/Configuration.d.ts +39 -0
  35. package/components/identity.federation/operations/lib/Configuration.js +3 -0
  36. package/components/identity.federation/operations/lib/Configuration.js.map +1 -0
  37. package/components/identity.federation/operations/lib/Ctx.d.ts +6 -0
  38. package/{transpiled/directives/vary/embeddings/Embedding.js → components/identity.federation/operations/lib/Ctx.js} +1 -1
  39. package/components/identity.federation/operations/lib/Ctx.js.map +1 -0
  40. package/components/identity.federation/operations/lib/Payload.d.ts +5 -0
  41. package/components/identity.federation/operations/lib/Payload.js +3 -0
  42. package/components/identity.federation/operations/lib/Payload.js.map +1 -0
  43. package/components/identity.federation/operations/lib/decode.d.ts +3 -0
  44. package/components/identity.federation/operations/lib/{assertions-as-values.js → decode.js} +19 -19
  45. package/components/identity.federation/operations/lib/decode.js.map +1 -0
  46. package/components/identity.federation/operations/lib/discovery.d.ts +4 -0
  47. package/{transpiled/directives/octets/Permute.js → components/identity.federation/operations/lib/discovery.js} +22 -31
  48. package/components/identity.federation/operations/lib/discovery.js.map +1 -0
  49. package/components/identity.federation/operations/lib/errors.d.ts +11 -0
  50. package/components/identity.federation/operations/lib/errors.js +15 -0
  51. package/components/identity.federation/operations/lib/errors.js.map +1 -0
  52. package/components/identity.federation/operations/lib/exchange.d.ts +3 -0
  53. package/components/identity.federation/operations/lib/exchange.js +107 -0
  54. package/components/identity.federation/operations/lib/exchange.js.map +1 -0
  55. package/components/identity.federation/operations/lib/index.d.ts +3 -0
  56. package/components/identity.federation/operations/lib/index.js +8 -0
  57. package/components/identity.federation/operations/lib/index.js.map +1 -0
  58. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  59. package/components/identity.federation/operations/types/Scheme.d.ts +1 -0
  60. package/components/identity.federation/operations/types/Scheme.js +3 -0
  61. package/components/identity.federation/operations/types/Scheme.js.map +1 -0
  62. package/components/identity.federation/operations/types/configuration.d.ts +20 -0
  63. package/components/identity.federation/operations/types/configuration.js +3 -0
  64. package/components/identity.federation/operations/types/configuration.js.map +1 -0
  65. package/components/identity.federation/operations/types/context.d.ts +36 -0
  66. package/components/identity.federation/operations/types/context.js +3 -0
  67. package/components/identity.federation/operations/types/context.js.map +1 -0
  68. package/components/identity.federation/operations/types/entity.d.ts +6 -0
  69. package/components/identity.federation/operations/types/entity.js +3 -0
  70. package/components/identity.federation/operations/types/entity.js.map +1 -0
  71. package/components/identity.federation/operations/types/index.d.ts +4 -0
  72. package/components/identity.federation/operations/types/index.js +21 -0
  73. package/components/identity.federation/operations/types/index.js.map +1 -0
  74. package/components/identity.federation/source/authenticate.ts +44 -19
  75. package/components/identity.federation/source/decode.ts +10 -0
  76. package/components/identity.federation/source/incept.ts +37 -0
  77. package/components/identity.federation/source/lib/Configuration.ts +39 -0
  78. package/components/identity.federation/source/lib/Ctx.ts +7 -0
  79. package/components/identity.federation/source/lib/Payload.ts +6 -0
  80. package/components/identity.federation/source/lib/decode.ts +28 -0
  81. package/components/identity.federation/source/lib/discovery.ts +30 -0
  82. package/components/identity.federation/source/lib/errors.ts +12 -0
  83. package/components/identity.federation/source/lib/exchange.ts +116 -0
  84. package/components/identity.federation/source/lib/index.ts +3 -0
  85. package/components/identity.federation/source/types/Scheme.ts +1 -0
  86. package/components/identity.federation/source/types/configuration.ts +21 -0
  87. package/components/identity.federation/source/types/context.ts +40 -0
  88. package/components/identity.federation/source/types/entity.ts +6 -0
  89. package/components/identity.federation/source/types/index.ts +4 -0
  90. package/components/identity.federation/tsconfig.json +5 -4
  91. package/components/identity.keys/manifest.toa.yaml +57 -0
  92. package/components/identity.keys/operations/create.d.ts +22 -0
  93. package/components/identity.keys/operations/create.js +16 -0
  94. package/components/identity.keys/operations/create.js.map +1 -0
  95. package/components/identity.keys/operations/tsconfig.tsbuildinfo +1 -0
  96. package/components/identity.keys/source/create.ts +35 -0
  97. package/components/identity.keys/tsconfig.json +9 -0
  98. package/components/identity.otp/manifest.toa.yaml +39 -0
  99. package/components/identity.otp/operations/authenticate.d.ts +12 -0
  100. package/components/identity.otp/operations/authenticate.js +30 -0
  101. package/components/identity.otp/operations/authenticate.js.map +1 -0
  102. package/components/identity.otp/operations/issue.d.ts +10 -0
  103. package/components/identity.otp/operations/issue.js +13 -0
  104. package/components/identity.otp/operations/issue.js.map +1 -0
  105. package/components/identity.otp/operations/lib/Context.d.ts +13 -0
  106. package/components/identity.otp/operations/lib/Context.js +3 -0
  107. package/components/identity.otp/operations/lib/Context.js.map +1 -0
  108. package/components/identity.otp/operations/lib/Entity.d.ts +5 -0
  109. package/components/identity.otp/operations/lib/Entity.js +3 -0
  110. package/components/identity.otp/operations/lib/Entity.js.map +1 -0
  111. package/components/identity.otp/operations/lib/index.d.ts +1 -0
  112. package/components/identity.otp/operations/lib/index.js +3 -0
  113. package/components/identity.otp/operations/lib/index.js.map +1 -0
  114. package/components/identity.otp/operations/tsconfig.tsbuildinfo +1 -0
  115. package/components/identity.otp/source/authenticate.ts +46 -0
  116. package/components/identity.otp/source/issue.ts +22 -0
  117. package/components/identity.otp/source/lib/Context.ts +14 -0
  118. package/components/identity.otp/source/lib/Entity.ts +5 -0
  119. package/components/identity.otp/source/lib/index.ts +1 -0
  120. package/components/identity.otp/tsconfig.json +9 -0
  121. package/components/identity.passkeys/manifest.toa.yaml +268 -0
  122. package/components/identity.passkeys/operations/authenticate.d.ts +16 -0
  123. package/components/identity.passkeys/operations/authenticate.js +34 -0
  124. package/components/identity.passkeys/operations/authenticate.js.map +1 -0
  125. package/components/identity.passkeys/operations/challenge.d.ts +35 -0
  126. package/components/identity.passkeys/operations/challenge.js +73 -0
  127. package/components/identity.passkeys/operations/challenge.js.map +1 -0
  128. package/components/identity.passkeys/operations/create.d.ts +19 -0
  129. package/components/identity.passkeys/operations/create.js +58 -0
  130. package/components/identity.passkeys/operations/create.js.map +1 -0
  131. package/components/identity.passkeys/operations/delete.d.ts +8 -0
  132. package/components/identity.passkeys/operations/delete.js +12 -0
  133. package/components/identity.passkeys/operations/delete.js.map +1 -0
  134. package/components/identity.passkeys/operations/lib/const.d.ts +1 -0
  135. package/components/identity.passkeys/operations/lib/const.js +5 -0
  136. package/components/identity.passkeys/operations/lib/const.js.map +1 -0
  137. package/components/identity.passkeys/operations/list.d.ts +7 -0
  138. package/components/identity.passkeys/operations/list.js +15 -0
  139. package/components/identity.passkeys/operations/list.js.map +1 -0
  140. package/components/identity.passkeys/operations/tsconfig.tsbuildinfo +1 -0
  141. package/components/identity.passkeys/operations/types/Configuration.d.ts +6 -0
  142. package/components/identity.passkeys/operations/types/Configuration.js +3 -0
  143. package/components/identity.passkeys/operations/types/Configuration.js.map +1 -0
  144. package/components/identity.passkeys/operations/types/Context.d.ts +15 -0
  145. package/components/identity.passkeys/operations/types/Context.js +3 -0
  146. package/components/identity.passkeys/operations/types/Context.js.map +1 -0
  147. package/components/identity.passkeys/operations/types/Passkey.d.ts +13 -0
  148. package/components/identity.passkeys/operations/types/Passkey.js +3 -0
  149. package/components/identity.passkeys/operations/types/Passkey.js.map +1 -0
  150. package/components/identity.passkeys/operations/types/index.d.ts +2 -0
  151. package/components/identity.passkeys/operations/types/index.js +3 -0
  152. package/components/identity.passkeys/operations/types/index.js.map +1 -0
  153. package/components/identity.passkeys/operations/use.d.ts +16 -0
  154. package/components/identity.passkeys/operations/use.js +57 -0
  155. package/components/identity.passkeys/operations/use.js.map +1 -0
  156. package/components/identity.passkeys/source/authenticate.ts +48 -0
  157. package/components/identity.passkeys/source/challenge.ts +115 -0
  158. package/components/identity.passkeys/source/create.ts +77 -0
  159. package/components/identity.passkeys/source/delete.ts +15 -0
  160. package/components/identity.passkeys/source/lib/const.ts +1 -0
  161. package/components/identity.passkeys/source/list.ts +17 -0
  162. package/components/identity.passkeys/source/types/Configuration.ts +6 -0
  163. package/components/identity.passkeys/source/types/Context.ts +16 -0
  164. package/components/identity.passkeys/source/types/Passkey.ts +14 -0
  165. package/components/identity.passkeys/source/types/index.ts +2 -0
  166. package/components/identity.passkeys/source/use.ts +75 -0
  167. package/components/identity.passkeys/tsconfig.json +9 -0
  168. package/components/identity.roles/manifest.toa.yaml +3 -1
  169. package/components/identity.roles/operations/grant.js +2 -2
  170. package/components/identity.roles/operations/grant.js.map +1 -1
  171. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  172. package/components/identity.roles/source/grant.ts +2 -2
  173. package/components/identity.tokens/manifest.toa.yaml +97 -13
  174. package/components/identity.tokens/operations/authenticate.d.ts +3 -3
  175. package/components/identity.tokens/operations/authenticate.js +15 -11
  176. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  177. package/components/identity.tokens/operations/decrypt.d.ts +12 -3
  178. package/components/identity.tokens/operations/decrypt.js +62 -17
  179. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  180. package/components/identity.tokens/operations/encrypt.d.ts +3 -3
  181. package/components/identity.tokens/operations/encrypt.js +24 -7
  182. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  183. package/components/identity.tokens/operations/issue.d.ts +24 -0
  184. package/components/identity.tokens/operations/issue.js +59 -0
  185. package/components/identity.tokens/operations/issue.js.map +1 -0
  186. package/components/identity.tokens/operations/lib/index.d.ts +2 -0
  187. package/components/identity.tokens/operations/lib/index.js +19 -0
  188. package/components/identity.tokens/operations/lib/index.js.map +1 -0
  189. package/components/identity.tokens/operations/lib/pad.d.ts +1 -0
  190. package/components/identity.tokens/operations/lib/pad.js +5 -0
  191. package/components/identity.tokens/operations/lib/pad.js.map +1 -0
  192. package/components/identity.tokens/operations/lib/types.d.ts +74 -0
  193. package/components/identity.tokens/operations/lib/types.js.map +1 -0
  194. package/components/identity.tokens/operations/revoke.d.ts +2 -2
  195. package/components/identity.tokens/operations/revoke.js.map +1 -1
  196. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  197. package/components/identity.tokens/source/authenticate.test.ts +22 -9
  198. package/components/identity.tokens/source/authenticate.ts +18 -13
  199. package/components/identity.tokens/source/decrypt.test.ts +33 -18
  200. package/components/identity.tokens/source/decrypt.ts +91 -20
  201. package/components/identity.tokens/source/encrypt.test.ts +47 -13
  202. package/components/identity.tokens/source/encrypt.ts +36 -11
  203. package/components/identity.tokens/source/issue.ts +82 -0
  204. package/components/identity.tokens/source/lib/index.ts +2 -0
  205. package/components/identity.tokens/source/lib/pad.ts +1 -0
  206. package/components/identity.tokens/source/lib/paseto.test.ts +16 -0
  207. package/components/identity.tokens/source/lib/types.ts +85 -0
  208. package/components/identity.tokens/source/revoke.ts +2 -2
  209. package/components/octets.storage/manifest.toa.yaml +11 -11
  210. package/components/octets.storage/operations/get.js +3 -3
  211. package/components/octets.storage/operations/head.js +7 -0
  212. package/components/octets.storage/operations/put.js +135 -0
  213. package/documentation/access.md +83 -31
  214. package/documentation/authorities.md +48 -0
  215. package/documentation/cache.md +8 -1
  216. package/documentation/components.md +123 -51
  217. package/documentation/dev.md +30 -0
  218. package/documentation/flow.md +44 -0
  219. package/documentation/identity.md +129 -24
  220. package/documentation/introspection.md +82 -0
  221. package/documentation/map.md +86 -0
  222. package/documentation/octets.md +122 -69
  223. package/documentation/passkeys.md +4 -0
  224. package/documentation/protocol.md +11 -4
  225. package/documentation/query.md +29 -4
  226. package/documentation/require.md +15 -0
  227. package/documentation/tree.md +13 -0
  228. package/features/access.feature +122 -9
  229. package/features/annotation.feature +1 -0
  230. package/features/auth.assert.feature +57 -0
  231. package/features/auth.claims.feature +170 -0
  232. package/features/auth.incept.feature +120 -0
  233. package/features/auth.input.feature +59 -0
  234. package/features/auth.issue.feature +32 -0
  235. package/features/authorities.basic.feature +141 -0
  236. package/features/authorities.feature +32 -0
  237. package/features/authorities.federation.feature +99 -0
  238. package/features/authorities.tokens.feature +117 -0
  239. package/features/body.feature +2 -0
  240. package/features/cache.feature +164 -5
  241. package/features/cors.feature +8 -2
  242. package/features/debug.feature +34 -0
  243. package/features/dev.feature +56 -0
  244. package/features/directives.feature +3 -0
  245. package/features/dynamic.feature +48 -0
  246. package/features/errors.feature +29 -6
  247. package/features/etag.feature +109 -1
  248. package/features/flow.feature +148 -0
  249. package/features/identity.bans.feature +12 -3
  250. package/features/identity.basic.feature +104 -21
  251. package/features/identity.feature +18 -6
  252. package/features/identity.federation.feature +134 -44
  253. package/features/identity.otp.feature +71 -0
  254. package/features/identity.roles.feature +60 -20
  255. package/features/identity.tokens.feature +12 -44
  256. package/features/identtiy.tokens.custom.feature +247 -0
  257. package/features/interruptions.feature +19 -0
  258. package/features/introspection.feature +153 -0
  259. package/features/io.feature +9 -1
  260. package/features/map.feature +304 -0
  261. package/features/methods.feature +47 -0
  262. package/features/octets.cloudinary.feature +71 -0
  263. package/features/octets.download.feature +189 -0
  264. package/features/octets.entries.feature +13 -55
  265. package/features/octets.feature +90 -114
  266. package/features/octets.head.feature +40 -0
  267. package/features/octets.location.feature +83 -0
  268. package/features/octets.meta.feature +65 -15
  269. package/features/octets.workflows.feature +339 -66
  270. package/features/passkeys.feature +66 -0
  271. package/features/probes.feature +14 -0
  272. package/features/{queries.feature → query.feature} +77 -2
  273. package/features/realtime.feature +34 -0
  274. package/features/require.feature +67 -0
  275. package/features/response.feature +34 -2
  276. package/features/routes.feature +93 -2
  277. package/features/server.feature +21 -0
  278. package/features/steps/.env.example +3 -0
  279. package/features/steps/Common.ts +4 -0
  280. package/features/steps/Gateway.ts +26 -7
  281. package/features/steps/HTTP.ts +25 -2
  282. package/features/steps/IDP.ts +334 -0
  283. package/features/steps/Identity.ts +51 -0
  284. package/features/steps/OTP.ts +39 -0
  285. package/features/steps/Parameters.ts +45 -2
  286. package/features/steps/Realtime.ts +151 -0
  287. package/features/steps/components/echo/manifest.toa.yaml +12 -0
  288. package/features/steps/components/echo/operations/echo.js +7 -0
  289. package/features/steps/components/echo/operations/parameters.js +7 -0
  290. package/features/steps/components/echo/operations/ping.js +7 -0
  291. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  292. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  293. package/features/steps/components/greeter/manifest.toa.yaml +0 -1
  294. package/features/steps/components/octets.tester/manifest.toa.yaml +25 -3
  295. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  296. package/features/steps/components/octets.tester/operations/bar.js +0 -1
  297. package/features/steps/components/octets.tester/operations/baz.js +0 -2
  298. package/features/steps/components/octets.tester/operations/echo.js +1 -1
  299. package/features/steps/components/octets.tester/operations/foo.js +1 -2
  300. package/features/steps/components/octets.tester/operations/id.js +7 -0
  301. package/features/steps/components/octets.tester/operations/identity.js +7 -0
  302. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  303. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  304. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  305. package/features/steps/components/pots/manifest.toa.yaml +12 -4
  306. package/features/steps/components/sequences/manifest.toa.yaml +0 -1
  307. package/features/steps/components/users/manifest.toa.yaml +4 -2
  308. package/features/steps/components/users/operations/create.js +15 -0
  309. package/features/steps/components/users.properties/manifest.toa.yaml +1 -2
  310. package/features/streams.feature +5 -0
  311. package/features/timestamps.feature +41 -0
  312. package/features/timing.feature +4 -1
  313. package/package.json +28 -17
  314. package/readme.md +19 -14
  315. package/schemas/annotation.cos.yaml +1 -1
  316. package/schemas/method.cos.yaml +2 -1
  317. package/schemas/node.cos.yaml +2 -0
  318. package/schemas/octets/put.cos.yaml +28 -0
  319. package/schemas/query.cos.yaml +4 -10
  320. package/source/Annotation.ts +3 -3
  321. package/source/Branch.ts +1 -0
  322. package/source/Composition.ts +0 -6
  323. package/source/Context.ts +1 -0
  324. package/source/Directive.test.ts +1 -1
  325. package/source/Directive.ts +14 -8
  326. package/source/Endpoint.ts +70 -17
  327. package/source/Factory.ts +22 -13
  328. package/source/Gateway.ts +73 -19
  329. package/source/HTTP/Context.ts +29 -7
  330. package/source/HTTP/Server.ts +120 -49
  331. package/source/HTTP/exceptions.ts +12 -0
  332. package/source/HTTP/formats/index.ts +3 -3
  333. package/source/HTTP/messages.test.ts +46 -2
  334. package/source/HTTP/messages.ts +44 -9
  335. package/source/Introspection.ts +11 -0
  336. package/source/Mapping.ts +68 -21
  337. package/source/Query.test.ts +3 -3
  338. package/source/Query.ts +123 -33
  339. package/source/RTD/Context.ts +1 -1
  340. package/source/RTD/Endpoint.ts +3 -0
  341. package/source/RTD/Method.ts +16 -0
  342. package/source/RTD/Node.ts +29 -13
  343. package/source/RTD/Route.ts +5 -4
  344. package/source/RTD/Tree.ts +2 -2
  345. package/source/RTD/factory.ts +4 -1
  346. package/source/RTD/syntax/parse.test.ts +1 -1
  347. package/source/RTD/syntax/parse.ts +37 -24
  348. package/source/RTD/syntax/types.ts +6 -4
  349. package/source/Remotes.ts +7 -6
  350. package/source/Tenant.ts +6 -12
  351. package/source/deployment.ts +33 -23
  352. package/source/directives/auth/Anonymous.ts +3 -3
  353. package/source/directives/auth/Anyone.ts +13 -0
  354. package/source/directives/auth/Assert.ts +35 -0
  355. package/source/directives/auth/Authorization.ts +70 -27
  356. package/source/directives/auth/Delegate.ts +9 -5
  357. package/source/directives/auth/Echo.ts +16 -6
  358. package/source/directives/auth/Federation.ts +84 -0
  359. package/source/directives/auth/Id.ts +1 -1
  360. package/source/directives/auth/Incept.ts +63 -24
  361. package/source/directives/auth/Input.ts +72 -0
  362. package/source/directives/auth/Role.ts +5 -9
  363. package/source/directives/auth/Rule.ts +3 -5
  364. package/source/directives/auth/Scheme.ts +5 -5
  365. package/source/directives/auth/create.ts +11 -0
  366. package/source/directives/auth/schemes.ts +5 -2
  367. package/source/directives/auth/split.ts +1 -1
  368. package/source/directives/auth/types.ts +12 -7
  369. package/source/directives/cache/Cache.ts +15 -6
  370. package/source/directives/cache/Control.ts +45 -19
  371. package/source/directives/cors/CORS.ts +3 -2
  372. package/source/directives/dev/Development.ts +12 -7
  373. package/source/directives/dev/Sleep.ts +40 -0
  374. package/source/directives/dev/types.ts +1 -1
  375. package/source/directives/flow/Compose.ts +92 -0
  376. package/source/directives/flow/Fetch.ts +86 -0
  377. package/source/directives/flow/Flow.ts +42 -0
  378. package/source/directives/flow/index.ts +3 -0
  379. package/source/directives/flow/types.ts +7 -0
  380. package/source/directives/index.ts +4 -2
  381. package/source/directives/io/IO.ts +1 -1
  382. package/source/directives/io/Input.ts +8 -5
  383. package/source/directives/io/Output.ts +5 -4
  384. package/source/directives/map/Authority.ts +15 -0
  385. package/source/directives/map/Claims.ts +58 -0
  386. package/source/directives/map/Directive.ts +4 -0
  387. package/source/directives/map/Headers.ts +38 -0
  388. package/source/directives/map/Language.ts +42 -0
  389. package/source/directives/map/Languages.ts +11 -0
  390. package/source/directives/map/Map.ts +61 -0
  391. package/source/directives/map/Mapping.ts +19 -0
  392. package/source/directives/{vary → map}/Properties.ts +2 -4
  393. package/source/directives/map/Segments.ts +33 -0
  394. package/source/directives/map/index.ts +3 -0
  395. package/source/directives/octets/Context.ts +3 -2
  396. package/source/directives/octets/Delete.ts +21 -17
  397. package/source/directives/octets/Get.ts +86 -0
  398. package/source/directives/octets/Octets.ts +9 -12
  399. package/source/directives/octets/{Store.ts → Put.ts} +52 -38
  400. package/source/directives/octets/Workflow.ts +9 -3
  401. package/source/directives/octets/bytes.test.ts +30 -0
  402. package/source/directives/octets/bytes.ts +18 -0
  403. package/source/directives/octets/schemas.ts +4 -8
  404. package/source/directives/octets/types.ts +2 -0
  405. package/source/directives/octets/workflows/Execution.ts +61 -8
  406. package/source/directives/octets/workflows/Workflow.ts +17 -7
  407. package/source/directives/octets/workflows/index.ts +1 -1
  408. package/source/directives/require/Directive.ts +5 -0
  409. package/source/directives/require/Headers.ts +20 -0
  410. package/source/directives/require/Require.ts +28 -0
  411. package/source/directives/require/index.ts +3 -0
  412. package/source/exceptions.ts +2 -1
  413. package/source/manifest.ts +10 -11
  414. package/source/root.ts +16 -1
  415. package/source/schemas.ts +1 -1
  416. package/transpiled/Annotation.d.ts +3 -3
  417. package/transpiled/Branch.d.ts +1 -0
  418. package/transpiled/Composition.d.ts +0 -1
  419. package/transpiled/Composition.js +0 -4
  420. package/transpiled/Composition.js.map +1 -1
  421. package/transpiled/Context.d.ts +1 -0
  422. package/transpiled/Directive.js +13 -8
  423. package/transpiled/Directive.js.map +1 -1
  424. package/transpiled/Endpoint.d.ts +6 -4
  425. package/transpiled/Endpoint.js +46 -9
  426. package/transpiled/Endpoint.js.map +1 -1
  427. package/transpiled/Factory.d.ts +3 -2
  428. package/transpiled/Factory.js +18 -10
  429. package/transpiled/Factory.js.map +1 -1
  430. package/transpiled/Gateway.d.ts +3 -0
  431. package/transpiled/Gateway.js +55 -12
  432. package/transpiled/Gateway.js.map +1 -1
  433. package/transpiled/HTTP/Context.d.ts +9 -2
  434. package/transpiled/HTTP/Context.js +19 -6
  435. package/transpiled/HTTP/Context.js.map +1 -1
  436. package/transpiled/HTTP/Server.d.ts +15 -4
  437. package/transpiled/HTTP/Server.js +87 -42
  438. package/transpiled/HTTP/Server.js.map +1 -1
  439. package/transpiled/HTTP/exceptions.d.ts +6 -0
  440. package/transpiled/HTTP/exceptions.js +13 -1
  441. package/transpiled/HTTP/exceptions.js.map +1 -1
  442. package/transpiled/HTTP/formats/index.js +3 -3
  443. package/transpiled/HTTP/formats/index.js.map +1 -1
  444. package/transpiled/HTTP/messages.d.ts +2 -1
  445. package/transpiled/HTTP/messages.js +40 -8
  446. package/transpiled/HTTP/messages.js.map +1 -1
  447. package/transpiled/Introspection.d.ts +9 -0
  448. package/transpiled/Introspection.js +3 -0
  449. package/transpiled/Introspection.js.map +1 -0
  450. package/transpiled/Mapping.d.ts +11 -2
  451. package/transpiled/Mapping.js +50 -19
  452. package/transpiled/Mapping.js.map +1 -1
  453. package/transpiled/Query.d.ts +10 -1
  454. package/transpiled/Query.js +87 -30
  455. package/transpiled/Query.js.map +1 -1
  456. package/transpiled/RTD/Context.d.ts +1 -1
  457. package/transpiled/RTD/Endpoint.d.ts +1 -0
  458. package/transpiled/RTD/Method.d.ts +4 -0
  459. package/transpiled/RTD/Method.js +11 -0
  460. package/transpiled/RTD/Method.js.map +1 -1
  461. package/transpiled/RTD/Node.d.ts +4 -1
  462. package/transpiled/RTD/Node.js +23 -12
  463. package/transpiled/RTD/Node.js.map +1 -1
  464. package/transpiled/RTD/Route.d.ts +1 -1
  465. package/transpiled/RTD/Route.js +0 -1
  466. package/transpiled/RTD/Route.js.map +1 -1
  467. package/transpiled/RTD/Tree.d.ts +1 -1
  468. package/transpiled/RTD/Tree.js.map +1 -1
  469. package/transpiled/RTD/factory.js +4 -1
  470. package/transpiled/RTD/factory.js.map +1 -1
  471. package/transpiled/RTD/syntax/parse.js +34 -22
  472. package/transpiled/RTD/syntax/parse.js.map +1 -1
  473. package/transpiled/RTD/syntax/types.d.ts +5 -3
  474. package/transpiled/RTD/syntax/types.js +1 -1
  475. package/transpiled/RTD/syntax/types.js.map +1 -1
  476. package/transpiled/Remotes.d.ts +4 -4
  477. package/transpiled/Remotes.js +6 -5
  478. package/transpiled/Remotes.js.map +1 -1
  479. package/transpiled/Tenant.d.ts +5 -4
  480. package/transpiled/Tenant.js +2 -7
  481. package/transpiled/Tenant.js.map +1 -1
  482. package/transpiled/deployment.d.ts +1 -1
  483. package/transpiled/deployment.js +28 -20
  484. package/transpiled/deployment.js.map +1 -1
  485. package/transpiled/directives/auth/Anonymous.d.ts +2 -2
  486. package/transpiled/directives/auth/Anonymous.js +2 -2
  487. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  488. package/transpiled/directives/auth/Anyone.d.ts +6 -0
  489. package/transpiled/directives/auth/Anyone.js +14 -0
  490. package/transpiled/directives/auth/Anyone.js.map +1 -0
  491. package/transpiled/directives/auth/Assert.d.ts +7 -0
  492. package/transpiled/directives/auth/Assert.js +57 -0
  493. package/transpiled/directives/auth/Assert.js.map +1 -0
  494. package/transpiled/directives/auth/Authorization.d.ts +4 -3
  495. package/transpiled/directives/auth/Authorization.js +54 -24
  496. package/transpiled/directives/auth/Authorization.js.map +1 -1
  497. package/transpiled/directives/auth/Delegate.d.ts +5 -4
  498. package/transpiled/directives/auth/Delegate.js +7 -3
  499. package/transpiled/directives/auth/Delegate.js.map +1 -1
  500. package/transpiled/directives/auth/Echo.d.ts +4 -4
  501. package/transpiled/directives/auth/Echo.js +11 -4
  502. package/transpiled/directives/auth/Echo.js.map +1 -1
  503. package/transpiled/directives/auth/Federation.d.ts +16 -0
  504. package/transpiled/directives/auth/Federation.js +57 -0
  505. package/transpiled/directives/auth/Federation.js.map +1 -0
  506. package/transpiled/directives/auth/Id.d.ts +1 -1
  507. package/transpiled/directives/auth/Id.js.map +1 -1
  508. package/transpiled/directives/auth/Incept.d.ts +7 -5
  509. package/transpiled/directives/auth/Incept.js +48 -18
  510. package/transpiled/directives/auth/Incept.js.map +1 -1
  511. package/transpiled/directives/auth/Input.d.ts +13 -0
  512. package/transpiled/directives/auth/Input.js +49 -0
  513. package/transpiled/directives/auth/Input.js.map +1 -0
  514. package/transpiled/directives/auth/Role.d.ts +1 -1
  515. package/transpiled/directives/auth/Role.js +4 -6
  516. package/transpiled/directives/auth/Role.js.map +1 -1
  517. package/transpiled/directives/auth/Rule.d.ts +2 -4
  518. package/transpiled/directives/auth/Rule.js +2 -2
  519. package/transpiled/directives/auth/Rule.js.map +1 -1
  520. package/transpiled/directives/auth/Scheme.d.ts +2 -2
  521. package/transpiled/directives/auth/Scheme.js +4 -4
  522. package/transpiled/directives/auth/Scheme.js.map +1 -1
  523. package/transpiled/directives/auth/create.d.ts +2 -0
  524. package/transpiled/directives/auth/create.js +14 -0
  525. package/transpiled/directives/auth/create.js.map +1 -0
  526. package/transpiled/directives/auth/schemes.d.ts +2 -1
  527. package/transpiled/directives/auth/schemes.js +5 -2
  528. package/transpiled/directives/auth/schemes.js.map +1 -1
  529. package/transpiled/directives/auth/split.js +1 -1
  530. package/transpiled/directives/auth/split.js.map +1 -1
  531. package/transpiled/directives/auth/types.d.ts +10 -7
  532. package/transpiled/directives/cache/Cache.d.ts +3 -3
  533. package/transpiled/directives/cache/Cache.js +12 -4
  534. package/transpiled/directives/cache/Cache.js.map +1 -1
  535. package/transpiled/directives/cache/Control.d.ts +3 -2
  536. package/transpiled/directives/cache/Control.js +32 -15
  537. package/transpiled/directives/cache/Control.js.map +1 -1
  538. package/transpiled/directives/cors/CORS.js +3 -2
  539. package/transpiled/directives/cors/CORS.js.map +1 -1
  540. package/transpiled/directives/dev/Development.d.ts +1 -1
  541. package/transpiled/directives/dev/Development.js +13 -7
  542. package/transpiled/directives/dev/Development.js.map +1 -1
  543. package/transpiled/directives/dev/Sleep.d.ts +8 -0
  544. package/transpiled/directives/dev/Sleep.js +36 -0
  545. package/transpiled/directives/dev/Sleep.js.map +1 -0
  546. package/transpiled/directives/dev/types.d.ts +1 -1
  547. package/transpiled/directives/flow/Compose.d.ts +9 -0
  548. package/transpiled/directives/flow/Compose.js +94 -0
  549. package/transpiled/directives/flow/Compose.js.map +1 -0
  550. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  551. package/transpiled/directives/flow/Fetch.js +58 -0
  552. package/transpiled/directives/flow/Fetch.js.map +1 -0
  553. package/transpiled/directives/flow/Flow.d.ts +10 -0
  554. package/transpiled/directives/flow/Flow.js +33 -0
  555. package/transpiled/directives/flow/Flow.js.map +1 -0
  556. package/transpiled/directives/flow/index.d.ts +2 -0
  557. package/transpiled/directives/flow/index.js +6 -0
  558. package/transpiled/directives/flow/index.js.map +1 -0
  559. package/transpiled/directives/flow/types.d.ts +6 -0
  560. package/transpiled/directives/flow/types.js.map +1 -0
  561. package/transpiled/directives/index.js +4 -2
  562. package/transpiled/directives/index.js.map +1 -1
  563. package/transpiled/directives/io/IO.js +1 -1
  564. package/transpiled/directives/io/IO.js.map +1 -1
  565. package/transpiled/directives/io/Input.js +4 -2
  566. package/transpiled/directives/io/Input.js.map +1 -1
  567. package/transpiled/directives/io/Output.js +2 -2
  568. package/transpiled/directives/io/Output.js.map +1 -1
  569. package/transpiled/directives/map/Authority.d.ts +6 -0
  570. package/transpiled/directives/map/Authority.js +19 -0
  571. package/transpiled/directives/map/Authority.js.map +1 -0
  572. package/transpiled/directives/map/Claims.d.ts +10 -0
  573. package/transpiled/directives/map/Claims.js +44 -0
  574. package/transpiled/directives/map/Claims.js.map +1 -0
  575. package/transpiled/directives/map/Directive.d.ts +3 -0
  576. package/transpiled/directives/map/Directive.js.map +1 -0
  577. package/transpiled/directives/map/Headers.d.ts +7 -0
  578. package/transpiled/directives/map/Headers.js +34 -0
  579. package/transpiled/directives/map/Headers.js.map +1 -0
  580. package/transpiled/directives/map/Language.d.ts +10 -0
  581. package/transpiled/directives/map/Language.js +38 -0
  582. package/transpiled/directives/map/Language.js.map +1 -0
  583. package/transpiled/directives/map/Languages.d.ts +4 -0
  584. package/transpiled/directives/map/Languages.js +17 -0
  585. package/transpiled/directives/map/Languages.js.map +1 -0
  586. package/transpiled/directives/map/Map.d.ts +13 -0
  587. package/transpiled/directives/map/Map.js +46 -0
  588. package/transpiled/directives/map/Map.js.map +1 -0
  589. package/transpiled/directives/map/Mapping.d.ts +13 -0
  590. package/transpiled/directives/map/Mapping.js +13 -0
  591. package/transpiled/directives/map/Mapping.js.map +1 -0
  592. package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
  593. package/transpiled/directives/{vary → map}/Properties.js +1 -3
  594. package/transpiled/directives/map/Properties.js.map +1 -0
  595. package/transpiled/directives/map/Segments.d.ts +6 -0
  596. package/transpiled/directives/map/Segments.js +30 -0
  597. package/transpiled/directives/map/Segments.js.map +1 -0
  598. package/transpiled/directives/map/index.d.ts +2 -0
  599. package/transpiled/directives/map/index.js +6 -0
  600. package/transpiled/directives/map/index.js.map +1 -0
  601. package/transpiled/directives/octets/Context.js +4 -24
  602. package/transpiled/directives/octets/Context.js.map +1 -1
  603. package/transpiled/directives/octets/Delete.js +15 -12
  604. package/transpiled/directives/octets/Delete.js.map +1 -1
  605. package/transpiled/directives/octets/{Fetch.d.ts → Get.d.ts} +5 -6
  606. package/transpiled/directives/octets/{Fetch.js → Get.js} +25 -29
  607. package/transpiled/directives/octets/Get.js.map +1 -0
  608. package/transpiled/directives/octets/Octets.js +9 -12
  609. package/transpiled/directives/octets/Octets.js.map +1 -1
  610. package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +8 -2
  611. package/transpiled/directives/octets/{Store.js → Put.js} +33 -27
  612. package/transpiled/directives/octets/Put.js.map +1 -0
  613. package/transpiled/directives/octets/Workflow.js +7 -2
  614. package/transpiled/directives/octets/Workflow.js.map +1 -1
  615. package/transpiled/directives/octets/bytes.d.ts +1 -0
  616. package/transpiled/directives/octets/bytes.js +21 -0
  617. package/transpiled/directives/octets/bytes.js.map +1 -0
  618. package/transpiled/directives/octets/schemas.d.ts +4 -8
  619. package/transpiled/directives/octets/schemas.js +3 -6
  620. package/transpiled/directives/octets/schemas.js.map +1 -1
  621. package/transpiled/directives/octets/types.d.ts +2 -0
  622. package/transpiled/directives/octets/workflows/Execution.d.ts +6 -1
  623. package/transpiled/directives/octets/workflows/Execution.js +44 -9
  624. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  625. package/transpiled/directives/octets/workflows/Workflow.d.ts +8 -3
  626. package/transpiled/directives/octets/workflows/Workflow.js +9 -4
  627. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  628. package/transpiled/directives/octets/workflows/index.d.ts +1 -1
  629. package/transpiled/directives/octets/workflows/index.js.map +1 -1
  630. package/transpiled/directives/require/Directive.d.ts +4 -0
  631. package/transpiled/directives/require/Directive.js +3 -0
  632. package/transpiled/directives/require/Directive.js.map +1 -0
  633. package/transpiled/directives/require/Headers.d.ts +7 -0
  634. package/transpiled/directives/require/Headers.js +19 -0
  635. package/transpiled/directives/require/Headers.js.map +1 -0
  636. package/transpiled/directives/require/Require.d.ts +9 -0
  637. package/transpiled/directives/require/Require.js +27 -0
  638. package/transpiled/directives/require/Require.js.map +1 -0
  639. package/transpiled/directives/require/index.d.ts +2 -0
  640. package/transpiled/directives/require/index.js +6 -0
  641. package/transpiled/directives/require/index.js.map +1 -0
  642. package/transpiled/exceptions.js +2 -1
  643. package/transpiled/exceptions.js.map +1 -1
  644. package/transpiled/manifest.js +10 -11
  645. package/transpiled/manifest.js.map +1 -1
  646. package/transpiled/root.js +16 -1
  647. package/transpiled/root.js.map +1 -1
  648. package/transpiled/schemas.d.ts +1 -1
  649. package/transpiled/schemas.js +2 -2
  650. package/transpiled/schemas.js.map +1 -1
  651. package/transpiled/tsconfig.tsbuildinfo +1 -1
  652. package/components/identity.basic/operations/create.d.ts +0 -10
  653. package/components/identity.basic/operations/create.js +0 -10
  654. package/components/identity.basic/operations/create.js.map +0 -1
  655. package/components/identity.basic/source/create.ts +0 -18
  656. package/components/identity.federation/operations/create.d.ts +0 -10
  657. package/components/identity.federation/operations/create.js +0 -15
  658. package/components/identity.federation/operations/create.js.map +0 -1
  659. package/components/identity.federation/operations/lib/assertions-as-values.d.ts +0 -4
  660. package/components/identity.federation/operations/lib/assertions-as-values.js.map +0 -1
  661. package/components/identity.federation/operations/lib/jwt.d.ts +0 -20
  662. package/components/identity.federation/operations/lib/jwt.js +0 -136
  663. package/components/identity.federation/operations/lib/jwt.js.map +0 -1
  664. package/components/identity.federation/operations/schemas.d.ts +0 -59
  665. package/components/identity.federation/operations/schemas.js +0 -9
  666. package/components/identity.federation/operations/schemas.js.map +0 -1
  667. package/components/identity.federation/operations/types.d.ts +0 -51
  668. package/components/identity.federation/operations/types.js.map +0 -1
  669. package/components/identity.federation/source/create.ts +0 -26
  670. package/components/identity.federation/source/lib/assertions-as-values.ts +0 -19
  671. package/components/identity.federation/source/lib/jwt.test.ts +0 -56
  672. package/components/identity.federation/source/lib/jwt.ts +0 -171
  673. package/components/identity.federation/source/schemas.ts +0 -61
  674. package/components/identity.federation/source/types.ts +0 -56
  675. package/components/identity.tokens/operations/types.d.ts +0 -39
  676. package/components/identity.tokens/operations/types.js.map +0 -1
  677. package/components/identity.tokens/source/types.ts +0 -47
  678. package/components/octets.storage/operations/fetch.js +0 -46
  679. package/components/octets.storage/operations/list.js +0 -7
  680. package/components/octets.storage/operations/permute.js +0 -7
  681. package/components/octets.storage/operations/store.js +0 -11
  682. package/documentation/vary.md +0 -75
  683. package/features/steps/IdP.ts +0 -154
  684. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  685. package/features/vary.feature +0 -203
  686. package/schemas/octets/context.cos.yaml +0 -1
  687. package/schemas/octets/fetch.cos.yaml +0 -3
  688. package/schemas/octets/permute.cos.yaml +0 -1
  689. package/schemas/octets/store.cos.yaml +0 -3
  690. package/source/HTTP/Server.test.ts +0 -126
  691. package/source/directives/octets/Fetch.ts +0 -100
  692. package/source/directives/octets/List.ts +0 -72
  693. package/source/directives/octets/Permute.ts +0 -44
  694. package/source/directives/vary/Directive.ts +0 -7
  695. package/source/directives/vary/Embed.ts +0 -68
  696. package/source/directives/vary/Vary.ts +0 -50
  697. package/source/directives/vary/embeddings/Embedding.ts +0 -7
  698. package/source/directives/vary/embeddings/Header.ts +0 -32
  699. package/source/directives/vary/embeddings/Language.ts +0 -31
  700. package/source/directives/vary/embeddings/Parameter.ts +0 -14
  701. package/source/directives/vary/embeddings/index.ts +0 -11
  702. package/source/directives/vary/index.ts +0 -3
  703. package/transpiled/directives/octets/Fetch.js.map +0 -1
  704. package/transpiled/directives/octets/List.d.ts +0 -16
  705. package/transpiled/directives/octets/List.js +0 -74
  706. package/transpiled/directives/octets/List.js.map +0 -1
  707. package/transpiled/directives/octets/Permute.d.ts +0 -11
  708. package/transpiled/directives/octets/Permute.js.map +0 -1
  709. package/transpiled/directives/octets/Store.js.map +0 -1
  710. package/transpiled/directives/vary/Directive.d.ts +0 -6
  711. package/transpiled/directives/vary/Directive.js.map +0 -1
  712. package/transpiled/directives/vary/Embed.d.ts +0 -11
  713. package/transpiled/directives/vary/Embed.js +0 -51
  714. package/transpiled/directives/vary/Embed.js.map +0 -1
  715. package/transpiled/directives/vary/Properties.js.map +0 -1
  716. package/transpiled/directives/vary/Vary.d.ts +0 -10
  717. package/transpiled/directives/vary/Vary.js +0 -36
  718. package/transpiled/directives/vary/Vary.js.map +0 -1
  719. package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -6
  720. package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
  721. package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
  722. package/transpiled/directives/vary/embeddings/Header.js +0 -28
  723. package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
  724. package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
  725. package/transpiled/directives/vary/embeddings/Language.js +0 -28
  726. package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
  727. package/transpiled/directives/vary/embeddings/Parameter.d.ts +0 -7
  728. package/transpiled/directives/vary/embeddings/Parameter.js +0 -14
  729. package/transpiled/directives/vary/embeddings/Parameter.js.map +0 -1
  730. package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
  731. package/transpiled/directives/vary/embeddings/index.js +0 -12
  732. package/transpiled/directives/vary/embeddings/index.js.map +0 -1
  733. package/transpiled/directives/vary/index.d.ts +0 -2
  734. package/transpiled/directives/vary/index.js +0 -6
  735. package/transpiled/directives/vary/index.js.map +0 -1
  736. /package/components/{identity.federation/operations → identity.tokens/operations/lib}/types.js +0 -0
  737. /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
  738. /package/{components/identity.tokens/operations → transpiled/directives/flow}/types.js +0 -0
  739. /package/transpiled/directives/{vary → map}/Directive.js +0 -0
@@ -0,0 +1,153 @@
1
+ Feature: Introspection
2
+
3
+ Scenario: Resource introspection
4
+ Given the `pots` is running with the following manifest:
5
+ """yaml
6
+ exposition:
7
+ /:
8
+ io:output: true
9
+ GET: enumerate
10
+ POST: create
11
+ """
12
+ When the following request is received:
13
+ """
14
+ OPTIONS /pots/ HTTP/1.1
15
+ host: nex.toa.io
16
+ accept: application/yaml
17
+ """
18
+ Then the following reply is sent:
19
+ """
20
+ 200 OK
21
+ Allow: GET, POST
22
+
23
+ GET:
24
+ type: array
25
+ items:
26
+ type: object
27
+ properties:
28
+ id:
29
+ type: string
30
+ pattern: ^[a-fA-F0-9]{32}$
31
+ title:
32
+ type: string
33
+ maxLength: 64
34
+ volume:
35
+ type: number
36
+ exclusiveMinimum: 0
37
+ maximum: 1000
38
+ temperature:
39
+ type: number
40
+ exclusiveMinimum: 0
41
+ maximum: 300
42
+ additionalProperties: false
43
+ required:
44
+ - id
45
+ - title
46
+ - volume
47
+ POST:
48
+ input:
49
+ type: object
50
+ properties:
51
+ title:
52
+ type: string
53
+ maxLength: 64
54
+ temperature:
55
+ type: number
56
+ exclusiveMinimum: 0
57
+ maximum: 300
58
+ volume:
59
+ type: number
60
+ exclusiveMinimum: 0
61
+ maximum: 1000
62
+ additionalProperties: false
63
+ required:
64
+ - title
65
+ - volume
66
+ output:
67
+ type: object
68
+ properties:
69
+ id:
70
+ type: string
71
+ pattern: ^[a-fA-F0-9]{32}$
72
+ additionalProperties: false
73
+ errors:
74
+ - NO_WAY
75
+ - WONT_CREATE
76
+ """
77
+
78
+ Scenario: Introspection with route parameters
79
+ Given the `echo` is running with the following manifest:
80
+ """yaml
81
+ exposition:
82
+ /:a:
83
+ io:output: true
84
+ PATCH: parameters
85
+ """
86
+ When the following request is received:
87
+ """
88
+ OPTIONS /echo/:a/ HTTP/1.1
89
+ host: nex.toa.io
90
+ accept: application/yaml
91
+ """
92
+ Then the following reply is sent:
93
+ """
94
+ 200 OK
95
+ Allow: PATCH
96
+
97
+ PATCH:
98
+ route:
99
+ a:
100
+ type: string
101
+ input:
102
+ type: object
103
+ properties:
104
+ b:
105
+ type: string
106
+ output:
107
+ type: object
108
+ properties:
109
+ a:
110
+ type: string
111
+ b:
112
+ type: string
113
+ """
114
+
115
+ Scenario: Introspection with query parameters
116
+ Given the `echo` is running with the following manifest:
117
+ """yaml
118
+ exposition:
119
+ /:
120
+ io:output: true
121
+ PATCH:
122
+ query:
123
+ parameters: [a]
124
+ endpoint: parameters
125
+ """
126
+ When the following request is received:
127
+ """
128
+ OPTIONS /echo/ HTTP/1.1
129
+ host: nex.toa.io
130
+ accept: application/yaml
131
+ """
132
+ Then the following reply is sent:
133
+ """
134
+ 200 OK
135
+ Allow: PATCH
136
+
137
+ PATCH:
138
+ query:
139
+ a:
140
+ type: string
141
+ input:
142
+ type: object
143
+ properties:
144
+ b:
145
+ type: string
146
+ output:
147
+ type: object
148
+ properties:
149
+ a:
150
+ type: string
151
+ b:
152
+ type: string
153
+ """
@@ -19,6 +19,7 @@ Feature: IO restrictions
19
19
  When the following request is received:
20
20
  """
21
21
  GET /pots/4c4759e6f9c74da989d64511df42d6f4/ HTTP/1.1
22
+ host: nex.toa.io
22
23
  """
23
24
  Then the following reply is sent:
24
25
  """
@@ -28,6 +29,7 @@ Feature: IO restrictions
28
29
  When the following request is received:
29
30
  """
30
31
  GET /pots/ HTTP/1.1
32
+ host: nex.toa.io
31
33
  accept: application/yaml
32
34
  """
33
35
  Then the following reply is sent:
@@ -47,7 +49,7 @@ Feature: IO restrictions
47
49
  When the following request is received:
48
50
  """
49
51
  GET /pots/4c4759e6f9c74da989d64511df42d6f4/ HTTP/1.1
50
- accept: application/yaml
52
+ host: nex.toa.io
51
53
  """
52
54
  Then the following reply is sent:
53
55
  """
@@ -68,6 +70,7 @@ Feature: IO restrictions
68
70
  When the following request is received:
69
71
  """
70
72
  GET /pots/4c4759e6f9c74da989d64511df42d6f4/ HTTP/1.1
73
+ host: nex.toa.io
71
74
  accept: application/yaml
72
75
  """
73
76
  Then the following reply is sent:
@@ -85,6 +88,7 @@ Feature: IO restrictions
85
88
  When the following request is received:
86
89
  """
87
90
  GET /pots/ HTTP/1.1
91
+ host: nex.toa.io
88
92
  accept: application/yaml
89
93
  """
90
94
  Then the following reply is sent:
@@ -114,6 +118,7 @@ Feature: IO restrictions
114
118
  When the following request is received:
115
119
  """
116
120
  POST /pots/ HTTP/1.1
121
+ host: nex.toa.io
117
122
  accept: application/yaml
118
123
  content-type: application/yaml
119
124
 
@@ -142,6 +147,7 @@ Feature: IO restrictions
142
147
  When the following request is received:
143
148
  """
144
149
  POST /pots/ HTTP/1.1
150
+ host: nex.toa.io
145
151
  accept: text/plain
146
152
  content-type: application/yaml
147
153
 
@@ -158,6 +164,7 @@ Feature: IO restrictions
158
164
  When the following request is received:
159
165
  """
160
166
  POST /pots/ HTTP/1.1
167
+ host: nex.toa.io
161
168
  content-type: application/yaml
162
169
 
163
170
  title: Hello
@@ -180,6 +187,7 @@ Feature: IO restrictions
180
187
  When the following request is received:
181
188
  """
182
189
  POST /pots/ HTTP/1.1
190
+ host: nex.toa.io
183
191
  accept: application/yaml
184
192
  content-type: application/yaml
185
193
 
@@ -0,0 +1,304 @@
1
+ Feature: HTTP context mapping
2
+
3
+ Scenario Outline: Mapping `<result>` language code
4
+ Given the `echo` is running with the following manifest:
5
+ """yaml
6
+ exposition:
7
+ /:
8
+ io:output: true
9
+ map:languages: [en, fr]
10
+ GET:
11
+ map:language: name # map resolved language code to the `name` property of the operation input
12
+ endpoint: compute
13
+ """
14
+ When the following request is received:
15
+ """
16
+ GET /echo/ HTTP/1.1
17
+ host: nex.toa.io
18
+ accept: application/yaml
19
+ accept-language: <accept>
20
+ """
21
+ Then the following reply is sent:
22
+ """
23
+ 200 OK
24
+ content-type: application/yaml
25
+ content-language: <result>
26
+ vary: accept-language, accept
27
+
28
+ Hello <result>
29
+ """
30
+ Examples:
31
+ | accept | result |
32
+ | en | en |
33
+ | en_US | en |
34
+ | fr | fr |
35
+ | sw | en |
36
+
37
+ Scenario: Listing languages on the root
38
+ Given the annotation:
39
+ """
40
+ /:
41
+ languages: [en, fr]
42
+ """
43
+ And the `echo` is running with the following manifest:
44
+ """yaml
45
+ exposition:
46
+ /:
47
+ io:output: true
48
+ GET:
49
+ anonymous: true
50
+ map:language: name
51
+ endpoint: compute
52
+ """
53
+ When the following request is received:
54
+ """
55
+ GET /echo/ HTTP/1.1
56
+ host: nex.toa.io
57
+ accept-language: fr
58
+ """
59
+ Then the following reply is sent:
60
+ """
61
+ 200 OK
62
+ content-language: fr
63
+ """
64
+
65
+ Scenario: Headers used by mappings are added to CORS permissions
66
+ Given the `echo` is running with the following manifest:
67
+ """yaml
68
+ exposition:
69
+ /:
70
+ io:output: true
71
+ map:languages: [en, fr]
72
+ GET:
73
+ map:language: name
74
+ map:headers:
75
+ name: foo
76
+ endpoint: compute
77
+ """
78
+ When the following request is received:
79
+ """
80
+ OPTIONS / HTTP/1.1
81
+ host: nex.toa.io
82
+ origin: https://example.com
83
+ """
84
+ Then the following reply is sent:
85
+ """
86
+ 204 No Content
87
+ access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match, accept-language, foo
88
+ """
89
+
90
+ Scenario: Mapping the value of an arbitrary header
91
+ Given the `echo` is running with the following manifest:
92
+ """yaml
93
+ exposition:
94
+ /:
95
+ io:output: true
96
+ GET:
97
+ map:headers:
98
+ name: foo
99
+ endpoint: compute
100
+ """
101
+ When the following request is received:
102
+ """
103
+ GET /echo/ HTTP/1.1
104
+ host: nex.toa.io
105
+ accept: application/yaml
106
+ foo: bar
107
+ """
108
+ Then the following reply is sent:
109
+ """
110
+ 200 OK
111
+ content-type: application/yaml
112
+ vary: foo, accept
113
+
114
+ Hello bar
115
+ """
116
+
117
+ Scenario: Mapping the `host` header value
118
+ Given the `echo` is running with the following manifest:
119
+ """yaml
120
+ exposition:
121
+ /:
122
+ io:output: true
123
+ GET:
124
+ map:headers:
125
+ name: host
126
+ endpoint: compute
127
+ """
128
+ When the following request is received:
129
+ """
130
+ GET /echo/ HTTP/1.1
131
+ host: nex.toa.io
132
+ accept: application/yaml
133
+ foo: bar
134
+ """
135
+ Then the following reply is sent:
136
+ """
137
+ 200 OK
138
+ content-type: application/yaml
139
+ vary: accept
140
+
141
+ Hello nex.toa.io
142
+ """
143
+
144
+ Scenario: Mapping a route parameter
145
+ Given the `echo` is running with the following manifest:
146
+ """yaml
147
+ exposition:
148
+ /:friend:
149
+ io:output: true
150
+ GET:
151
+ map:segments:
152
+ name: ~friend
153
+ endpoint: compute
154
+ """
155
+ When the following request is received:
156
+ """
157
+ GET /echo/Ken/ HTTP/1.1
158
+ host: nex.toa.io
159
+ accept: text/plain
160
+ """
161
+ Then the following reply is sent:
162
+ """
163
+ 200 OK
164
+
165
+ Hello Ken
166
+ """
167
+
168
+ Scenario: Mapping the authority
169
+ Given the annotation:
170
+ """yaml
171
+ authorities:
172
+ one: the.one.com
173
+ """
174
+ Given the `echo` is running with the following manifest:
175
+ """yaml
176
+ exposition:
177
+ /:
178
+ GET:
179
+ io:output: true
180
+ map:authority: name
181
+ endpoint: compute
182
+ """
183
+ When the following request is received:
184
+ """
185
+ GET /echo/ HTTP/1.1
186
+ host: the.one.com
187
+ accept: text/plain
188
+ """
189
+ Then the following reply is sent:
190
+ """
191
+ 200 OK
192
+
193
+ Hello one
194
+ """
195
+ When the following request is received:
196
+ """
197
+ GET /echo/ HTTP/1.1
198
+ host: the.two.com
199
+ accept: text/plain
200
+ """
201
+ Then the following reply is sent:
202
+ """
203
+ 200 OK
204
+
205
+ Hello the.two.com
206
+ """
207
+
208
+ Scenario: Mapping OIDC token claims
209
+ Given local IDP is running
210
+ And the `identity.federation` configuration:
211
+ """yaml
212
+ trust:
213
+ - iss: http://localhost:44444
214
+ """
215
+ And the `echo` is running with the following manifest:
216
+ """yaml
217
+ exposition:
218
+ /:
219
+ GET:
220
+ anyone: true
221
+ io:output: true
222
+ map:claims:
223
+ name: email
224
+ endpoint: compute
225
+ """
226
+ And the IDP token for Alice is issued
227
+
228
+ When the following request is received:
229
+ """
230
+ GET /echo/ HTTP/1.1
231
+ authorization: Bearer ${{ Alice.id_token }}
232
+ host: the.two.com
233
+ accept: text/plain
234
+ """
235
+ Then the following reply is sent:
236
+ """
237
+ 200 OK
238
+
239
+ Hello Alice@test.local
240
+ """
241
+
242
+ Scenario: Mapping Bearer token claims during inception
243
+ Given local IDP is running
244
+ And the `identity.federation` configuration:
245
+ """yaml
246
+ trust:
247
+ - iss: http://localhost:44444
248
+ """
249
+ And the `pots` is running with the following manifest:
250
+ """yaml
251
+ exposition:
252
+ /:
253
+ POST:
254
+ auth:incept: id
255
+ io:input: [title, volume]
256
+ io:output: [id, title, volume]
257
+ map:claims:
258
+ title: email
259
+ endpoint: create
260
+ """
261
+ And the IDP random token is issued
262
+
263
+ When the following request is received:
264
+ """
265
+ POST /pots/ HTTP/1.1
266
+ host: the.two.com
267
+ authorization: Bearer ${{ random.id_token }}
268
+ accept: application/yaml
269
+ content-type: application/yaml
270
+
271
+ volume: 1.5
272
+ """
273
+ Then the following reply is sent:
274
+ """
275
+ 201 Created
276
+
277
+ id: ${{ id }}
278
+ title: ${{ random.email }}
279
+ volume: 1.5
280
+ """
281
+
282
+ Scenario: Mapping non-exposed properties
283
+ Given the `echo` is running with the following manifest:
284
+ """yaml
285
+ exposition:
286
+ /:
287
+ GET:
288
+ io:output: true
289
+ io:input: [] # disallow input
290
+ map:authority: name
291
+ endpoint: compute
292
+ """
293
+ When the following request is received:
294
+ """
295
+ GET /echo/ HTTP/1.1
296
+ host: the.one.com
297
+ accept: text/plain
298
+ """
299
+ Then the following reply is sent:
300
+ """
301
+ 200 OK
302
+
303
+ Hello the.one.com
304
+ """
@@ -0,0 +1,47 @@
1
+ Feature: Supported methods
2
+
3
+ Scenario Outline: <method> is supported
4
+ Given the annotation:
5
+ """yaml
6
+ /:
7
+ <method>:
8
+ dev:stub:
9
+ hello: world
10
+ """
11
+ And the `greeter` is running with the following manifest:
12
+ """yaml
13
+ exposition:
14
+ /:
15
+ <method>:
16
+ dev:stub:
17
+ hello: world
18
+ """
19
+ Examples:
20
+ | method |
21
+ | GET |
22
+ | POST |
23
+ | PUT |
24
+ | DELETE |
25
+ | PATCH |
26
+ | LOCK |
27
+ | UNLOCK |
28
+
29
+ Scenario: CORS allowed methods
30
+ Given the annotation:
31
+ """yaml
32
+ /:
33
+ GET:
34
+ dev:stub:
35
+ hello: world
36
+ """
37
+ When the following request is received:
38
+ """
39
+ OPTIONS / HTTP/1.1
40
+ host: nex.toa.io
41
+ origin: https://hello.world
42
+ """
43
+ Then the following reply is sent:
44
+ """
45
+ 204 No Content
46
+ access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, LOCK, UNLOCK
47
+ """
@@ -0,0 +1,71 @@
1
+ Feature: Octets with Cloudinary storage
2
+
3
+ Background:
4
+ Given the annotation:
5
+ """yaml
6
+ /:
7
+ io:output: true
8
+ auth:anonymous: true
9
+ octets:context: cloudinary
10
+ POST:
11
+ octets:put: ~
12
+ /*:
13
+ GET:
14
+ octets:get: ~
15
+ DELETE:
16
+ octets:delete: ~
17
+ """
18
+
19
+ Scenario: Upload an image
20
+ When the stream of `lenna.png` is received with the following headers:
21
+ """
22
+ POST / HTTP/1.1
23
+ host: nex.toa.io
24
+ accept: application/yaml
25
+ content-type: application/octet-stream
26
+ """
27
+ Then the following reply is sent:
28
+ """
29
+ 201 Created
30
+ content-type: application/yaml
31
+
32
+ id: ${{ id }}
33
+ type: image/png
34
+ size: 473831
35
+ """
36
+ When the following request is received:
37
+ """
38
+ GET /${{ id }} HTTP/1.1
39
+ host: nex.toa.io
40
+ """
41
+ Then the stream equals to `lenna.png` is sent with the following headers:
42
+ """
43
+ 200 OK
44
+ content-type: image/png
45
+ content-length: 473831
46
+ """
47
+
48
+ Scenario: Image transformations
49
+ When the stream of `lenna.png` is received with the following headers:
50
+ """
51
+ POST / HTTP/1.1
52
+ host: nex.toa.io
53
+ content-type: image/png
54
+ accept: application/yaml
55
+ """
56
+ Then the following reply is sent:
57
+ """
58
+ 201 Created
59
+
60
+ id: ${{ id }}
61
+ """
62
+ When the following request is received:
63
+ """
64
+ GET /${{ id }}.48x48.jpeg HTTP/1.1
65
+ host: nex.toa.io
66
+ """
67
+ Then the stream equals to `lenna.48x48.jpeg` is sent with the following headers:
68
+ """
69
+ 200 OK
70
+ content-type: image/jpeg
71
+ """