@toa.io/extensions.exposition 1.0.0-alpha.12 → 1.0.0-alpha.121

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 (623) hide show
  1. package/components/context.toa.yaml +2 -2
  2. package/components/identity.bans/manifest.toa.yaml +14 -6
  3. package/components/identity.bans/operations/transit.d.ts +14 -0
  4. package/components/identity.bans/operations/transit.js +11 -0
  5. package/components/identity.bans/operations/transit.js.map +1 -0
  6. package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -0
  7. package/components/identity.bans/source/transit.ts +21 -0
  8. package/components/identity.bans/tsconfig.json +9 -0
  9. package/components/identity.basic/manifest.toa.yaml +28 -10
  10. package/components/identity.basic/operations/authenticate.d.ts +5 -1
  11. package/components/identity.basic/operations/authenticate.js +7 -4
  12. package/components/identity.basic/operations/authenticate.js.map +1 -1
  13. package/components/identity.basic/operations/incept.d.ts +12 -0
  14. package/components/identity.basic/operations/incept.js +26 -0
  15. package/components/identity.basic/operations/incept.js.map +1 -0
  16. package/components/identity.basic/operations/transit.d.ts +4 -4
  17. package/components/identity.basic/operations/transit.js +8 -6
  18. package/components/identity.basic/operations/transit.js.map +1 -1
  19. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  20. package/components/identity.basic/operations/types.d.ts +8 -4
  21. package/components/identity.basic/source/authenticate.ts +18 -7
  22. package/components/identity.basic/source/incept.ts +38 -0
  23. package/components/identity.basic/source/transit.ts +11 -9
  24. package/components/identity.basic/source/types.ts +8 -4
  25. package/components/identity.federation/manifest.toa.yaml +61 -19
  26. package/components/identity.federation/operations/authenticate.d.ts +13 -2
  27. package/components/identity.federation/operations/authenticate.js +10 -11
  28. package/components/identity.federation/operations/authenticate.js.map +1 -1
  29. package/components/identity.federation/operations/decode.d.ts +2 -0
  30. package/{transpiled/directives/octets/Permute.js → components/identity.federation/operations/decode.js} +7 -32
  31. package/components/identity.federation/operations/decode.js.map +1 -0
  32. package/components/identity.federation/operations/incept.d.ts +11 -0
  33. package/components/identity.federation/operations/incept.js +14 -0
  34. package/components/identity.federation/operations/incept.js.map +1 -0
  35. package/components/identity.federation/operations/lib/assertions-as-values.js +4 -2
  36. package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
  37. package/components/identity.federation/operations/lib/get.d.ts +1 -0
  38. package/components/identity.federation/operations/lib/get.js +64 -0
  39. package/components/identity.federation/operations/lib/get.js.map +1 -0
  40. package/components/identity.federation/operations/lib/jwt.d.ts +4 -5
  41. package/components/identity.federation/operations/lib/jwt.js +20 -16
  42. package/components/identity.federation/operations/lib/jwt.js.map +1 -1
  43. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  44. package/components/identity.federation/operations/types/configuration.d.ts +15 -0
  45. package/components/identity.federation/operations/types/configuration.js +3 -0
  46. package/components/identity.federation/operations/types/configuration.js.map +1 -0
  47. package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +11 -12
  48. package/{transpiled/directives/vary/embeddings/Embedding.js → components/identity.federation/operations/types/context.js} +1 -1
  49. package/components/identity.federation/operations/types/context.js.map +1 -0
  50. package/components/identity.federation/operations/types/entity.d.ts +6 -0
  51. package/components/identity.federation/operations/types/entity.js +3 -0
  52. package/components/identity.federation/operations/types/entity.js.map +1 -0
  53. package/components/identity.federation/operations/types/index.d.ts +3 -0
  54. package/components/identity.federation/operations/types/index.js +20 -0
  55. package/components/identity.federation/operations/types/index.js.map +1 -0
  56. package/components/identity.federation/source/authenticate.ts +24 -17
  57. package/components/identity.federation/source/decode.ts +9 -0
  58. package/components/identity.federation/source/incept.ts +26 -0
  59. package/components/identity.federation/source/lib/assertions-as-values.ts +5 -2
  60. package/components/identity.federation/source/lib/get.ts +82 -0
  61. package/components/identity.federation/source/lib/jwt.test.ts +127 -4
  62. package/components/identity.federation/source/lib/jwt.ts +26 -19
  63. package/components/identity.federation/source/types/configuration.ts +16 -0
  64. package/components/identity.federation/source/{types.ts → types/context.ts} +12 -12
  65. package/components/identity.federation/source/types/entity.ts +6 -0
  66. package/components/identity.federation/source/types/index.ts +3 -0
  67. package/components/identity.federation/tsconfig.json +5 -4
  68. package/components/identity.keys/manifest.toa.yaml +54 -0
  69. package/components/identity.keys/operations/create.d.ts +22 -0
  70. package/components/identity.keys/operations/create.js +16 -0
  71. package/components/identity.keys/operations/create.js.map +1 -0
  72. package/components/identity.keys/operations/tsconfig.tsbuildinfo +1 -0
  73. package/components/identity.keys/source/create.ts +35 -0
  74. package/components/identity.keys/tsconfig.json +9 -0
  75. package/components/identity.roles/manifest.toa.yaml +7 -5
  76. package/components/identity.roles/operations/grant.d.ts +1 -1
  77. package/components/identity.roles/operations/grant.js +8 -7
  78. package/components/identity.roles/operations/grant.js.map +1 -1
  79. package/components/identity.roles/operations/lib/Entity.d.ts +1 -1
  80. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  81. package/components/identity.roles/source/grant.ts +9 -8
  82. package/components/identity.roles/source/lib/Entity.ts +1 -1
  83. package/components/identity.tokens/manifest.toa.yaml +103 -9
  84. package/components/identity.tokens/operations/authenticate.d.ts +3 -3
  85. package/components/identity.tokens/operations/authenticate.js +20 -13
  86. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  87. package/components/identity.tokens/operations/decrypt.d.ts +12 -3
  88. package/components/identity.tokens/operations/decrypt.js +62 -17
  89. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  90. package/components/identity.tokens/operations/encrypt.d.ts +3 -3
  91. package/components/identity.tokens/operations/encrypt.js +26 -6
  92. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  93. package/components/identity.tokens/operations/issue.d.ts +24 -0
  94. package/components/identity.tokens/operations/issue.js +58 -0
  95. package/components/identity.tokens/operations/issue.js.map +1 -0
  96. package/components/identity.tokens/operations/lib/index.d.ts +2 -0
  97. package/components/identity.tokens/operations/lib/index.js +19 -0
  98. package/components/identity.tokens/operations/lib/index.js.map +1 -0
  99. package/components/identity.tokens/operations/lib/pad.d.ts +1 -0
  100. package/components/identity.tokens/operations/lib/pad.js +5 -0
  101. package/components/identity.tokens/operations/lib/pad.js.map +1 -0
  102. package/components/identity.tokens/operations/lib/types.d.ts +74 -0
  103. package/components/identity.tokens/operations/lib/types.js.map +1 -0
  104. package/components/identity.tokens/operations/revoke.d.ts +2 -2
  105. package/components/identity.tokens/operations/revoke.js.map +1 -1
  106. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  107. package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
  108. package/components/identity.tokens/source/authenticate.test.ts +22 -9
  109. package/components/identity.tokens/source/authenticate.ts +23 -15
  110. package/components/identity.tokens/source/decrypt.test.ts +33 -18
  111. package/components/identity.tokens/source/decrypt.ts +91 -20
  112. package/components/identity.tokens/source/encrypt.test.ts +67 -12
  113. package/components/identity.tokens/source/encrypt.ts +37 -9
  114. package/components/identity.tokens/source/issue.ts +80 -0
  115. package/components/identity.tokens/source/lib/index.ts +2 -0
  116. package/components/identity.tokens/source/lib/pad.ts +1 -0
  117. package/components/identity.tokens/source/lib/paseto.test.ts +16 -0
  118. package/components/identity.tokens/source/lib/types.ts +85 -0
  119. package/components/identity.tokens/source/revoke.ts +2 -2
  120. package/components/octets.storage/manifest.toa.yaml +11 -11
  121. package/components/octets.storage/operations/get.js +3 -3
  122. package/components/octets.storage/operations/head.js +7 -0
  123. package/components/octets.storage/operations/put.js +135 -0
  124. package/documentation/access.md +91 -29
  125. package/documentation/authorities.md +48 -0
  126. package/documentation/cache.md +8 -1
  127. package/documentation/components.md +125 -54
  128. package/documentation/dev.md +30 -0
  129. package/documentation/flow.md +44 -0
  130. package/documentation/identity.md +29 -22
  131. package/documentation/introspection.md +82 -0
  132. package/documentation/map.md +73 -0
  133. package/documentation/octets.md +122 -69
  134. package/documentation/protocol.md +11 -4
  135. package/documentation/query.md +29 -4
  136. package/documentation/require.md +15 -0
  137. package/documentation/tree.md +13 -0
  138. package/features/access.feature +129 -48
  139. package/features/annotation.feature +1 -0
  140. package/features/auth.claims.feature +171 -0
  141. package/features/auth.incept.feature +89 -0
  142. package/features/auth.input.feature +59 -0
  143. package/features/authorities.basic.feature +141 -0
  144. package/features/authorities.feature +32 -0
  145. package/features/authorities.federation.feature +100 -0
  146. package/features/authorities.tokens.feature +117 -0
  147. package/features/body.feature +2 -0
  148. package/features/cache.feature +109 -5
  149. package/features/cors.feature +8 -2
  150. package/features/debug.feature +34 -0
  151. package/features/dev.feature +56 -0
  152. package/features/directives.feature +3 -0
  153. package/features/dynamic.feature +48 -0
  154. package/features/errors.feature +32 -7
  155. package/features/etag.feature +109 -1
  156. package/features/flow.feature +148 -0
  157. package/features/identity.bans.feature +137 -0
  158. package/features/identity.basic.feature +85 -28
  159. package/features/identity.feature +18 -6
  160. package/features/identity.federation.feature +89 -18
  161. package/features/identity.roles.feature +112 -19
  162. package/features/identity.tokens.feature +13 -4
  163. package/features/identtiy.tokens.custom.feature +247 -0
  164. package/features/interruptions.feature +19 -0
  165. package/features/introspection.feature +153 -0
  166. package/features/io.feature +38 -1
  167. package/features/map.feature +305 -0
  168. package/features/methods.feature +47 -0
  169. package/features/octets.cloudinary.feature +71 -0
  170. package/features/octets.download.feature +189 -0
  171. package/features/octets.entries.feature +13 -55
  172. package/features/octets.feature +90 -114
  173. package/features/octets.head.feature +40 -0
  174. package/features/octets.location.feature +83 -0
  175. package/features/octets.meta.feature +65 -15
  176. package/features/octets.workflows.feature +339 -66
  177. package/features/probes.feature +14 -0
  178. package/features/{queries.feature → query.feature} +77 -2
  179. package/features/realtime.feature +34 -0
  180. package/features/require.feature +67 -0
  181. package/features/response.feature +38 -3
  182. package/features/routes.feature +93 -2
  183. package/features/server.feature +21 -0
  184. package/features/steps/.env.example +3 -0
  185. package/features/steps/Common.ts +4 -0
  186. package/features/steps/Database.ts +16 -9
  187. package/features/steps/Gateway.ts +26 -7
  188. package/features/steps/HTTP.ts +25 -2
  189. package/features/steps/IdP.ts +63 -25
  190. package/features/steps/Identity.ts +51 -0
  191. package/features/steps/Parameters.ts +44 -1
  192. package/features/steps/Realtime.ts +151 -0
  193. package/features/steps/components/echo/manifest.toa.yaml +14 -1
  194. package/features/steps/components/echo/operations/identity.js +7 -0
  195. package/features/steps/components/echo/operations/parameters.js +7 -0
  196. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  197. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  198. package/features/steps/components/greeter/manifest.toa.yaml +0 -1
  199. package/features/steps/components/octets.tester/manifest.toa.yaml +25 -3
  200. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  201. package/features/steps/components/octets.tester/operations/bar.js +0 -1
  202. package/features/steps/components/octets.tester/operations/baz.js +0 -2
  203. package/features/steps/components/octets.tester/operations/echo.js +1 -1
  204. package/features/steps/components/octets.tester/operations/foo.js +1 -2
  205. package/features/steps/components/octets.tester/operations/id.js +7 -0
  206. package/features/steps/components/octets.tester/operations/identity.js +7 -0
  207. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  208. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  209. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  210. package/features/steps/components/pots/manifest.toa.yaml +12 -4
  211. package/features/steps/components/sequences/manifest.toa.yaml +0 -1
  212. package/features/steps/components/users/manifest.toa.yaml +4 -3
  213. package/features/steps/components/users/operations/create.js +15 -0
  214. package/features/steps/components/users.properties/manifest.toa.yaml +1 -2
  215. package/features/streams.feature +5 -0
  216. package/features/timestamps.feature +41 -0
  217. package/features/timing.feature +4 -1
  218. package/package.json +25 -13
  219. package/readme.md +19 -14
  220. package/schemas/annotation.cos.yaml +1 -1
  221. package/schemas/method.cos.yaml +1 -1
  222. package/schemas/node.cos.yaml +2 -0
  223. package/schemas/octets/put.cos.yaml +28 -0
  224. package/schemas/query.cos.yaml +4 -10
  225. package/source/Annotation.ts +3 -3
  226. package/source/Branch.ts +1 -0
  227. package/source/Composition.ts +0 -6
  228. package/source/Context.ts +1 -0
  229. package/source/Directive.test.ts +1 -1
  230. package/source/Directive.ts +16 -8
  231. package/source/Endpoint.ts +69 -17
  232. package/source/Factory.ts +22 -13
  233. package/source/Gateway.ts +73 -19
  234. package/source/HTTP/Context.ts +31 -7
  235. package/source/HTTP/Server.ts +116 -48
  236. package/source/HTTP/exceptions.ts +13 -1
  237. package/source/HTTP/formats/index.ts +3 -3
  238. package/source/HTTP/messages.test.ts +45 -2
  239. package/source/HTTP/messages.ts +39 -8
  240. package/source/Introspection.ts +11 -0
  241. package/source/Mapping.ts +68 -21
  242. package/source/Query.test.ts +3 -3
  243. package/source/Query.ts +123 -33
  244. package/source/RTD/Context.ts +1 -1
  245. package/source/RTD/Endpoint.ts +3 -0
  246. package/source/RTD/Method.ts +16 -0
  247. package/source/RTD/Node.ts +29 -13
  248. package/source/RTD/Route.ts +5 -4
  249. package/source/RTD/Tree.ts +2 -2
  250. package/source/RTD/factory.ts +5 -2
  251. package/source/RTD/syntax/parse.test.ts +1 -1
  252. package/source/RTD/syntax/parse.ts +37 -24
  253. package/source/RTD/syntax/types.ts +6 -4
  254. package/source/Remotes.ts +7 -6
  255. package/source/Tenant.ts +6 -20
  256. package/source/deployment.ts +33 -23
  257. package/source/directives/auth/Anonymous.ts +3 -3
  258. package/source/directives/auth/Anyone.ts +13 -0
  259. package/source/directives/auth/Authorization.ts +65 -25
  260. package/source/directives/auth/Delegate.ts +13 -6
  261. package/source/directives/auth/Echo.ts +16 -6
  262. package/source/directives/auth/Federation.ts +84 -0
  263. package/source/directives/auth/Id.ts +1 -1
  264. package/source/directives/auth/Incept.ts +27 -12
  265. package/source/directives/auth/Input.ts +72 -0
  266. package/source/directives/auth/Role.test.ts +53 -6
  267. package/source/directives/auth/Role.ts +23 -19
  268. package/source/directives/auth/Rule.ts +3 -5
  269. package/source/directives/auth/Scheme.ts +5 -5
  270. package/source/directives/auth/create.ts +10 -0
  271. package/source/directives/auth/split.ts +1 -1
  272. package/source/directives/auth/types.ts +11 -6
  273. package/source/directives/cache/Cache.ts +13 -6
  274. package/source/directives/cache/Control.ts +42 -16
  275. package/source/directives/cors/CORS.ts +3 -2
  276. package/source/directives/dev/Development.ts +12 -7
  277. package/source/directives/dev/Sleep.ts +40 -0
  278. package/source/directives/dev/types.ts +1 -1
  279. package/source/directives/flow/Compose.ts +92 -0
  280. package/source/directives/flow/Fetch.ts +86 -0
  281. package/source/directives/flow/Flow.ts +42 -0
  282. package/source/directives/flow/index.ts +3 -0
  283. package/source/directives/flow/types.ts +7 -0
  284. package/source/directives/index.ts +4 -2
  285. package/source/directives/io/IO.ts +1 -1
  286. package/source/directives/io/Input.ts +8 -5
  287. package/source/directives/io/Output.ts +5 -4
  288. package/source/directives/map/Authority.ts +15 -0
  289. package/source/directives/map/Claims.ts +58 -0
  290. package/source/directives/map/Directive.ts +4 -0
  291. package/source/directives/map/Headers.ts +38 -0
  292. package/source/directives/map/Language.ts +42 -0
  293. package/source/directives/map/Languages.ts +11 -0
  294. package/source/directives/map/Map.ts +61 -0
  295. package/source/directives/map/Mapping.ts +19 -0
  296. package/source/directives/{vary → map}/Properties.ts +2 -4
  297. package/source/directives/map/Segments.ts +26 -0
  298. package/source/directives/map/index.ts +3 -0
  299. package/source/directives/octets/Context.ts +3 -2
  300. package/source/directives/octets/Delete.ts +21 -17
  301. package/source/directives/octets/Get.ts +86 -0
  302. package/source/directives/octets/Octets.ts +9 -12
  303. package/source/directives/octets/{Store.ts → Put.ts} +52 -38
  304. package/source/directives/octets/Workflow.ts +9 -3
  305. package/source/directives/octets/bytes.test.ts +30 -0
  306. package/source/directives/octets/bytes.ts +18 -0
  307. package/source/directives/octets/schemas.ts +4 -8
  308. package/source/directives/octets/types.ts +2 -0
  309. package/source/directives/octets/workflows/Execution.ts +61 -8
  310. package/source/directives/octets/workflows/Workflow.ts +17 -7
  311. package/source/directives/octets/workflows/index.ts +1 -1
  312. package/source/directives/require/Directive.ts +5 -0
  313. package/source/directives/require/Headers.ts +20 -0
  314. package/source/directives/require/Require.ts +28 -0
  315. package/source/directives/require/index.ts +3 -0
  316. package/source/exceptions.ts +14 -6
  317. package/source/manifest.ts +10 -11
  318. package/source/root.ts +16 -1
  319. package/source/schemas.ts +1 -1
  320. package/transpiled/Annotation.d.ts +3 -3
  321. package/transpiled/Branch.d.ts +1 -0
  322. package/transpiled/Composition.d.ts +0 -1
  323. package/transpiled/Composition.js +0 -4
  324. package/transpiled/Composition.js.map +1 -1
  325. package/transpiled/Context.d.ts +1 -0
  326. package/transpiled/Directive.js +15 -8
  327. package/transpiled/Directive.js.map +1 -1
  328. package/transpiled/Endpoint.d.ts +6 -4
  329. package/transpiled/Endpoint.js +47 -9
  330. package/transpiled/Endpoint.js.map +1 -1
  331. package/transpiled/Factory.d.ts +3 -2
  332. package/transpiled/Factory.js +18 -10
  333. package/transpiled/Factory.js.map +1 -1
  334. package/transpiled/Gateway.d.ts +3 -0
  335. package/transpiled/Gateway.js +55 -12
  336. package/transpiled/Gateway.js.map +1 -1
  337. package/transpiled/HTTP/Context.d.ts +9 -2
  338. package/transpiled/HTTP/Context.js +20 -6
  339. package/transpiled/HTTP/Context.js.map +1 -1
  340. package/transpiled/HTTP/Server.d.ts +15 -4
  341. package/transpiled/HTTP/Server.js +83 -41
  342. package/transpiled/HTTP/Server.js.map +1 -1
  343. package/transpiled/HTTP/exceptions.d.ts +7 -1
  344. package/transpiled/HTTP/exceptions.js +13 -1
  345. package/transpiled/HTTP/exceptions.js.map +1 -1
  346. package/transpiled/HTTP/formats/index.js +3 -3
  347. package/transpiled/HTTP/formats/index.js.map +1 -1
  348. package/transpiled/HTTP/messages.d.ts +2 -1
  349. package/transpiled/HTTP/messages.js +36 -7
  350. package/transpiled/HTTP/messages.js.map +1 -1
  351. package/transpiled/Introspection.d.ts +9 -0
  352. package/transpiled/Introspection.js +3 -0
  353. package/transpiled/Introspection.js.map +1 -0
  354. package/transpiled/Mapping.d.ts +11 -2
  355. package/transpiled/Mapping.js +50 -19
  356. package/transpiled/Mapping.js.map +1 -1
  357. package/transpiled/Query.d.ts +10 -1
  358. package/transpiled/Query.js +87 -30
  359. package/transpiled/Query.js.map +1 -1
  360. package/transpiled/RTD/Context.d.ts +1 -1
  361. package/transpiled/RTD/Endpoint.d.ts +1 -0
  362. package/transpiled/RTD/Method.d.ts +4 -0
  363. package/transpiled/RTD/Method.js +11 -0
  364. package/transpiled/RTD/Method.js.map +1 -1
  365. package/transpiled/RTD/Node.d.ts +4 -1
  366. package/transpiled/RTD/Node.js +23 -12
  367. package/transpiled/RTD/Node.js.map +1 -1
  368. package/transpiled/RTD/Route.d.ts +1 -1
  369. package/transpiled/RTD/Route.js +0 -1
  370. package/transpiled/RTD/Route.js.map +1 -1
  371. package/transpiled/RTD/Tree.d.ts +1 -1
  372. package/transpiled/RTD/Tree.js.map +1 -1
  373. package/transpiled/RTD/factory.js +5 -2
  374. package/transpiled/RTD/factory.js.map +1 -1
  375. package/transpiled/RTD/syntax/parse.js +34 -22
  376. package/transpiled/RTD/syntax/parse.js.map +1 -1
  377. package/transpiled/RTD/syntax/types.d.ts +5 -3
  378. package/transpiled/RTD/syntax/types.js +1 -1
  379. package/transpiled/RTD/syntax/types.js.map +1 -1
  380. package/transpiled/Remotes.d.ts +4 -4
  381. package/transpiled/Remotes.js +6 -5
  382. package/transpiled/Remotes.js.map +1 -1
  383. package/transpiled/Tenant.d.ts +5 -5
  384. package/transpiled/Tenant.js +2 -13
  385. package/transpiled/Tenant.js.map +1 -1
  386. package/transpiled/deployment.d.ts +1 -1
  387. package/transpiled/deployment.js +28 -20
  388. package/transpiled/deployment.js.map +1 -1
  389. package/transpiled/directives/auth/Anonymous.d.ts +2 -2
  390. package/transpiled/directives/auth/Anonymous.js +2 -2
  391. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  392. package/transpiled/directives/auth/Anyone.d.ts +6 -0
  393. package/transpiled/directives/auth/Anyone.js +14 -0
  394. package/transpiled/directives/auth/Anyone.js.map +1 -0
  395. package/transpiled/directives/auth/Authorization.d.ts +4 -3
  396. package/transpiled/directives/auth/Authorization.js +49 -22
  397. package/transpiled/directives/auth/Authorization.js.map +1 -1
  398. package/transpiled/directives/auth/Delegate.d.ts +5 -4
  399. package/transpiled/directives/auth/Delegate.js +10 -4
  400. package/transpiled/directives/auth/Delegate.js.map +1 -1
  401. package/transpiled/directives/auth/Echo.d.ts +4 -4
  402. package/transpiled/directives/auth/Echo.js +11 -4
  403. package/transpiled/directives/auth/Echo.js.map +1 -1
  404. package/transpiled/directives/auth/Federation.d.ts +16 -0
  405. package/transpiled/directives/auth/Federation.js +57 -0
  406. package/transpiled/directives/auth/Federation.js.map +1 -0
  407. package/transpiled/directives/auth/Id.d.ts +1 -1
  408. package/transpiled/directives/auth/Id.js.map +1 -1
  409. package/transpiled/directives/auth/Incept.d.ts +4 -3
  410. package/transpiled/directives/auth/Incept.js +23 -10
  411. package/transpiled/directives/auth/Incept.js.map +1 -1
  412. package/transpiled/directives/auth/Input.d.ts +13 -0
  413. package/transpiled/directives/auth/Input.js +49 -0
  414. package/transpiled/directives/auth/Input.js.map +1 -0
  415. package/transpiled/directives/auth/Role.d.ts +5 -2
  416. package/transpiled/directives/auth/Role.js +22 -18
  417. package/transpiled/directives/auth/Role.js.map +1 -1
  418. package/transpiled/directives/auth/Rule.d.ts +2 -4
  419. package/transpiled/directives/auth/Rule.js +2 -2
  420. package/transpiled/directives/auth/Rule.js.map +1 -1
  421. package/transpiled/directives/auth/Scheme.d.ts +2 -2
  422. package/transpiled/directives/auth/Scheme.js +4 -4
  423. package/transpiled/directives/auth/Scheme.js.map +1 -1
  424. package/transpiled/directives/auth/create.d.ts +2 -0
  425. package/transpiled/directives/auth/create.js +12 -0
  426. package/transpiled/directives/auth/create.js.map +1 -0
  427. package/transpiled/directives/auth/split.js +1 -1
  428. package/transpiled/directives/auth/split.js.map +1 -1
  429. package/transpiled/directives/auth/types.d.ts +8 -5
  430. package/transpiled/directives/cache/Cache.d.ts +3 -3
  431. package/transpiled/directives/cache/Cache.js +10 -4
  432. package/transpiled/directives/cache/Cache.js.map +1 -1
  433. package/transpiled/directives/cache/Control.d.ts +2 -1
  434. package/transpiled/directives/cache/Control.js +29 -12
  435. package/transpiled/directives/cache/Control.js.map +1 -1
  436. package/transpiled/directives/cors/CORS.js +3 -2
  437. package/transpiled/directives/cors/CORS.js.map +1 -1
  438. package/transpiled/directives/dev/Development.d.ts +1 -1
  439. package/transpiled/directives/dev/Development.js +13 -7
  440. package/transpiled/directives/dev/Development.js.map +1 -1
  441. package/transpiled/directives/dev/Sleep.d.ts +8 -0
  442. package/transpiled/directives/dev/Sleep.js +36 -0
  443. package/transpiled/directives/dev/Sleep.js.map +1 -0
  444. package/transpiled/directives/dev/types.d.ts +1 -1
  445. package/transpiled/directives/flow/Compose.d.ts +9 -0
  446. package/transpiled/directives/flow/Compose.js +94 -0
  447. package/transpiled/directives/flow/Compose.js.map +1 -0
  448. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  449. package/transpiled/directives/flow/Fetch.js +58 -0
  450. package/transpiled/directives/flow/Fetch.js.map +1 -0
  451. package/transpiled/directives/flow/Flow.d.ts +10 -0
  452. package/transpiled/directives/flow/Flow.js +33 -0
  453. package/transpiled/directives/flow/Flow.js.map +1 -0
  454. package/transpiled/directives/flow/index.d.ts +2 -0
  455. package/transpiled/directives/flow/index.js +6 -0
  456. package/transpiled/directives/flow/index.js.map +1 -0
  457. package/transpiled/directives/flow/types.d.ts +6 -0
  458. package/transpiled/directives/flow/types.js.map +1 -0
  459. package/transpiled/directives/index.js +4 -2
  460. package/transpiled/directives/index.js.map +1 -1
  461. package/transpiled/directives/io/IO.js +1 -1
  462. package/transpiled/directives/io/IO.js.map +1 -1
  463. package/transpiled/directives/io/Input.js +4 -2
  464. package/transpiled/directives/io/Input.js.map +1 -1
  465. package/transpiled/directives/io/Output.js +2 -2
  466. package/transpiled/directives/io/Output.js.map +1 -1
  467. package/transpiled/directives/map/Authority.d.ts +6 -0
  468. package/transpiled/directives/map/Authority.js +19 -0
  469. package/transpiled/directives/map/Authority.js.map +1 -0
  470. package/transpiled/directives/map/Claims.d.ts +10 -0
  471. package/transpiled/directives/map/Claims.js +44 -0
  472. package/transpiled/directives/map/Claims.js.map +1 -0
  473. package/transpiled/directives/map/Directive.d.ts +3 -0
  474. package/transpiled/directives/map/Directive.js.map +1 -0
  475. package/transpiled/directives/map/Headers.d.ts +7 -0
  476. package/transpiled/directives/map/Headers.js +34 -0
  477. package/transpiled/directives/map/Headers.js.map +1 -0
  478. package/transpiled/directives/map/Language.d.ts +10 -0
  479. package/transpiled/directives/map/Language.js +38 -0
  480. package/transpiled/directives/map/Language.js.map +1 -0
  481. package/transpiled/directives/map/Languages.d.ts +4 -0
  482. package/transpiled/directives/map/Languages.js +17 -0
  483. package/transpiled/directives/map/Languages.js.map +1 -0
  484. package/transpiled/directives/map/Map.d.ts +13 -0
  485. package/transpiled/directives/map/Map.js +46 -0
  486. package/transpiled/directives/map/Map.js.map +1 -0
  487. package/transpiled/directives/map/Mapping.d.ts +13 -0
  488. package/transpiled/directives/map/Mapping.js +13 -0
  489. package/transpiled/directives/map/Mapping.js.map +1 -0
  490. package/transpiled/directives/{vary → map}/Properties.d.ts +2 -2
  491. package/transpiled/directives/{vary → map}/Properties.js +1 -3
  492. package/transpiled/directives/map/Properties.js.map +1 -0
  493. package/transpiled/directives/map/Segments.d.ts +6 -0
  494. package/transpiled/directives/map/Segments.js +25 -0
  495. package/transpiled/directives/map/Segments.js.map +1 -0
  496. package/transpiled/directives/map/index.d.ts +2 -0
  497. package/transpiled/directives/map/index.js +6 -0
  498. package/transpiled/directives/map/index.js.map +1 -0
  499. package/transpiled/directives/octets/Context.js +4 -24
  500. package/transpiled/directives/octets/Context.js.map +1 -1
  501. package/transpiled/directives/octets/Delete.js +15 -12
  502. package/transpiled/directives/octets/Delete.js.map +1 -1
  503. package/transpiled/directives/octets/{Fetch.d.ts → Get.d.ts} +5 -6
  504. package/transpiled/directives/octets/{Fetch.js → Get.js} +25 -29
  505. package/transpiled/directives/octets/Get.js.map +1 -0
  506. package/transpiled/directives/octets/Octets.js +9 -12
  507. package/transpiled/directives/octets/Octets.js.map +1 -1
  508. package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +8 -2
  509. package/transpiled/directives/octets/{Store.js → Put.js} +33 -27
  510. package/transpiled/directives/octets/Put.js.map +1 -0
  511. package/transpiled/directives/octets/Workflow.js +7 -2
  512. package/transpiled/directives/octets/Workflow.js.map +1 -1
  513. package/transpiled/directives/octets/bytes.d.ts +1 -0
  514. package/transpiled/directives/octets/bytes.js +21 -0
  515. package/transpiled/directives/octets/bytes.js.map +1 -0
  516. package/transpiled/directives/octets/schemas.d.ts +4 -8
  517. package/transpiled/directives/octets/schemas.js +3 -6
  518. package/transpiled/directives/octets/schemas.js.map +1 -1
  519. package/transpiled/directives/octets/types.d.ts +2 -0
  520. package/transpiled/directives/octets/workflows/Execution.d.ts +6 -1
  521. package/transpiled/directives/octets/workflows/Execution.js +44 -9
  522. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  523. package/transpiled/directives/octets/workflows/Workflow.d.ts +8 -3
  524. package/transpiled/directives/octets/workflows/Workflow.js +9 -4
  525. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  526. package/transpiled/directives/octets/workflows/index.d.ts +1 -1
  527. package/transpiled/directives/octets/workflows/index.js.map +1 -1
  528. package/transpiled/directives/require/Directive.d.ts +4 -0
  529. package/transpiled/directives/require/Directive.js +3 -0
  530. package/transpiled/directives/require/Directive.js.map +1 -0
  531. package/transpiled/directives/require/Headers.d.ts +7 -0
  532. package/transpiled/directives/require/Headers.js +19 -0
  533. package/transpiled/directives/require/Headers.js.map +1 -0
  534. package/transpiled/directives/require/Require.d.ts +9 -0
  535. package/transpiled/directives/require/Require.js +27 -0
  536. package/transpiled/directives/require/Require.js.map +1 -0
  537. package/transpiled/directives/require/index.d.ts +2 -0
  538. package/transpiled/directives/require/index.js +6 -0
  539. package/transpiled/directives/require/index.js.map +1 -0
  540. package/transpiled/exceptions.d.ts +3 -2
  541. package/transpiled/exceptions.js +8 -1
  542. package/transpiled/exceptions.js.map +1 -1
  543. package/transpiled/manifest.js +10 -11
  544. package/transpiled/manifest.js.map +1 -1
  545. package/transpiled/root.js +16 -1
  546. package/transpiled/root.js.map +1 -1
  547. package/transpiled/schemas.d.ts +1 -1
  548. package/transpiled/schemas.js +2 -2
  549. package/transpiled/schemas.js.map +1 -1
  550. package/transpiled/tsconfig.tsbuildinfo +1 -1
  551. package/components/identity.basic/operations/create.d.ts +0 -10
  552. package/components/identity.basic/operations/create.js +0 -10
  553. package/components/identity.basic/operations/create.js.map +0 -1
  554. package/components/identity.basic/source/create.ts +0 -18
  555. package/components/identity.federation/operations/create.d.ts +0 -10
  556. package/components/identity.federation/operations/create.js +0 -15
  557. package/components/identity.federation/operations/create.js.map +0 -1
  558. package/components/identity.federation/operations/schemas.d.ts +0 -59
  559. package/components/identity.federation/operations/schemas.js +0 -9
  560. package/components/identity.federation/operations/schemas.js.map +0 -1
  561. package/components/identity.federation/operations/types.js.map +0 -1
  562. package/components/identity.federation/source/create.ts +0 -26
  563. package/components/identity.federation/source/schemas.ts +0 -61
  564. package/components/identity.tokens/operations/types.d.ts +0 -40
  565. package/components/identity.tokens/operations/types.js.map +0 -1
  566. package/components/identity.tokens/source/types.ts +0 -48
  567. package/components/octets.storage/operations/fetch.js +0 -46
  568. package/components/octets.storage/operations/list.js +0 -7
  569. package/components/octets.storage/operations/permute.js +0 -7
  570. package/components/octets.storage/operations/store.js +0 -11
  571. package/documentation/vary.md +0 -69
  572. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  573. package/features/vary.feature +0 -180
  574. package/schemas/octets/context.cos.yaml +0 -1
  575. package/schemas/octets/fetch.cos.yaml +0 -3
  576. package/schemas/octets/permute.cos.yaml +0 -1
  577. package/schemas/octets/store.cos.yaml +0 -3
  578. package/source/HTTP/Server.test.ts +0 -126
  579. package/source/directives/octets/Fetch.ts +0 -100
  580. package/source/directives/octets/List.ts +0 -72
  581. package/source/directives/octets/Permute.ts +0 -44
  582. package/source/directives/vary/Directive.ts +0 -6
  583. package/source/directives/vary/Embed.ts +0 -62
  584. package/source/directives/vary/Vary.ts +0 -48
  585. package/source/directives/vary/embeddings/Embedding.ts +0 -6
  586. package/source/directives/vary/embeddings/Header.ts +0 -32
  587. package/source/directives/vary/embeddings/Language.ts +0 -31
  588. package/source/directives/vary/embeddings/index.ts +0 -11
  589. package/source/directives/vary/index.ts +0 -3
  590. package/transpiled/directives/octets/Fetch.js.map +0 -1
  591. package/transpiled/directives/octets/List.d.ts +0 -16
  592. package/transpiled/directives/octets/List.js +0 -74
  593. package/transpiled/directives/octets/List.js.map +0 -1
  594. package/transpiled/directives/octets/Permute.d.ts +0 -11
  595. package/transpiled/directives/octets/Permute.js.map +0 -1
  596. package/transpiled/directives/octets/Store.js.map +0 -1
  597. package/transpiled/directives/vary/Directive.d.ts +0 -5
  598. package/transpiled/directives/vary/Directive.js.map +0 -1
  599. package/transpiled/directives/vary/Embed.d.ts +0 -10
  600. package/transpiled/directives/vary/Embed.js +0 -49
  601. package/transpiled/directives/vary/Embed.js.map +0 -1
  602. package/transpiled/directives/vary/Properties.js.map +0 -1
  603. package/transpiled/directives/vary/Vary.d.ts +0 -10
  604. package/transpiled/directives/vary/Vary.js +0 -36
  605. package/transpiled/directives/vary/Vary.js.map +0 -1
  606. package/transpiled/directives/vary/embeddings/Embedding.d.ts +0 -5
  607. package/transpiled/directives/vary/embeddings/Embedding.js.map +0 -1
  608. package/transpiled/directives/vary/embeddings/Header.d.ts +0 -7
  609. package/transpiled/directives/vary/embeddings/Header.js +0 -28
  610. package/transpiled/directives/vary/embeddings/Header.js.map +0 -1
  611. package/transpiled/directives/vary/embeddings/Language.d.ts +0 -7
  612. package/transpiled/directives/vary/embeddings/Language.js +0 -28
  613. package/transpiled/directives/vary/embeddings/Language.js.map +0 -1
  614. package/transpiled/directives/vary/embeddings/index.d.ts +0 -5
  615. package/transpiled/directives/vary/embeddings/index.js +0 -10
  616. package/transpiled/directives/vary/embeddings/index.js.map +0 -1
  617. package/transpiled/directives/vary/index.d.ts +0 -2
  618. package/transpiled/directives/vary/index.js +0 -6
  619. package/transpiled/directives/vary/index.js.map +0 -1
  620. /package/components/{identity.federation/operations → identity.tokens/operations/lib}/types.js +0 -0
  621. /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
  622. /package/{components/identity.tokens/operations → transpiled/directives/flow}/types.js +0 -0
  623. /package/transpiled/directives/{vary → map}/Directive.js +0 -0
@@ -1,15 +1,50 @@
1
+ @security
1
2
  Feature: Caching
2
3
 
3
4
  Background:
4
5
  Given the `identity.basic` database contains:
5
6
  # developer:secret
6
7
  # user:12345
7
- | _id | username | password |
8
- | b70a7dbca6b14a2eaac8a9eb4b2ff4db | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
8
+ | _id | authority | username | password |
9
+ | b70a7dbca6b14a2eaac8a9eb4b2ff4db | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
9
10
  Given the `identity.roles` database contains:
10
11
  | _id | identity | role |
11
12
  | 775a648d054e4ce1a65f8f17e5b51803 | b70a7dbca6b14a2eaac8a9eb4b2ff4db | developer |
12
13
 
14
+ Scenario: Default caching
15
+ Given the annotation:
16
+ """yaml
17
+ /:
18
+ anonymous: true
19
+ GET:
20
+ dev:stub: foo
21
+ /private:
22
+ auth:role: developer
23
+ GET:
24
+ dev:stub: bar
25
+ """
26
+ When the following request is received:
27
+ """
28
+ GET / HTTP/1.1
29
+ host: nex.toa.io
30
+ """
31
+ Then the reply does not contain:
32
+ """
33
+ cache-control:
34
+ """
35
+ When the following request is received:
36
+ """
37
+ GET /private/ HTTP/1.1
38
+ host: nex.toa.io
39
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
40
+ """
41
+ Then the following reply is sent:
42
+ """
43
+ 200 OK
44
+
45
+ cache-control: no-store
46
+ """
47
+
13
48
  Scenario: Caching successful response
14
49
  Given the annotation:
15
50
  """yaml
@@ -23,6 +58,7 @@ Feature: Caching
23
58
  When the following request is received:
24
59
  """
25
60
  GET / HTTP/1.1
61
+ host: nex.toa.io
26
62
  accept: text/plain
27
63
  """
28
64
  Then the following reply is sent:
@@ -53,9 +89,22 @@ Feature: Caching
53
89
  GET:
54
90
  dev:stub: hello
55
91
  """
92
+ When the following request is received:
93
+ """
94
+ GET /identity/ HTTP/1.1
95
+ host: nex.toa.io
96
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
97
+ """
98
+ Then the following reply is sent:
99
+ """
100
+ 200 OK
101
+ authorization: Token ${{ token }}
102
+ cache-control: no-store
103
+ """
56
104
  When the following request is received:
57
105
  """
58
106
  GET / HTTP/1.1
107
+ host: nex.toa.io
59
108
  accept: text/plain
60
109
  """
61
110
  Then the following reply is sent:
@@ -69,8 +118,9 @@ Feature: Caching
69
118
  When the following request is received:
70
119
  """
71
120
  GET /foo/ HTTP/1.1
121
+ host: nex.toa.io
72
122
  accept: text/plain
73
- authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
123
+ authorization: Token ${{ token }}
74
124
  """
75
125
  Then the following reply is sent:
76
126
  """
@@ -83,8 +133,9 @@ Feature: Caching
83
133
  When the following request is received:
84
134
  """
85
135
  GET /bar/ HTTP/1.1
136
+ host: nex.toa.io
86
137
  accept: text/plain
87
- authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
138
+ authorization: Token ${{ token }}
88
139
  """
89
140
  Then the following reply is sent:
90
141
  """
@@ -111,6 +162,7 @@ Feature: Caching
111
162
  When the following request is received:
112
163
  """
113
164
  POST / HTTP/1.1
165
+ host: nex.toa.io
114
166
  accept: application/yaml
115
167
  """
116
168
  Then the reply does not contain:
@@ -130,8 +182,21 @@ Feature: Caching
130
182
  """
131
183
  When the following request is received:
132
184
  """
133
- GET / HTTP/1.1
185
+ GET /identity/ HTTP/1.1
186
+ host: nex.toa.io
134
187
  authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
188
+ """
189
+ Then the following reply is sent:
190
+ """
191
+ 200 OK
192
+ authorization: Token ${{ token }}
193
+ cache-control: no-store
194
+ """
195
+ When the following request is received:
196
+ """
197
+ GET / HTTP/1.1
198
+ host: nex.toa.io
199
+ authorization: Token ${{ token }}
135
200
  accept: text/plain
136
201
 
137
202
  """
@@ -155,9 +220,48 @@ Feature: Caching
155
220
  When the following request is received:
156
221
  """
157
222
  GET / HTTP/1.1
223
+ host: nex.toa.io
158
224
  accept: text/plain
159
225
  """
160
226
  Then the reply does not contain:
161
227
  """
162
228
  cache-control:
163
229
  """
230
+
231
+ Scenario: Private responses are sent with `vary: authorization`
232
+ Given the `identity.basic` database contains:
233
+ | _id | authority | username | password |
234
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
235
+ And the annotation:
236
+ """yaml
237
+ /:
238
+ /:id:
239
+ auth:id: id
240
+ cache:control: max-age=10000
241
+ GET:
242
+ dev:stub: Keep it
243
+ """
244
+ When the following request is received:
245
+ """
246
+ GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
247
+ host: nex.toa.io
248
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
249
+ """
250
+ Then the following reply is sent:
251
+ """
252
+ 200 OK
253
+ authorization: Token ${{ token }}
254
+ cache-control: no-store
255
+ """
256
+ When the following request is received:
257
+ """
258
+ GET /efe3a65ebbee47ed95a73edd911ea328/ HTTP/1.1
259
+ host: nex.toa.io
260
+ authorization: Token ${{ token }}
261
+ """
262
+ Then the following reply is sent:
263
+ """
264
+ 200 OK
265
+ cache-control: private, max-age=10000
266
+ vary: authorization
267
+ """
@@ -1,3 +1,4 @@
1
+ @security
1
2
  Feature: CORS Support
2
3
 
3
4
  Scenario: Using CORS
@@ -12,13 +13,14 @@ Feature: CORS Support
12
13
  When the following request is received:
13
14
  """
14
15
  OPTIONS / HTTP/1.1
16
+ host: nex.toa.io
15
17
  origin: https://hello.world
16
18
  """
17
19
  Then the following reply is sent:
18
20
  """
19
21
  204 No Content
20
22
  access-control-allow-origin: https://hello.world
21
- access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
23
+ access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, LOCK, UNLOCK
22
24
  access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match
23
25
  access-control-allow-credentials: true
24
26
  access-control-max-age: 3600
@@ -28,13 +30,15 @@ Feature: CORS Support
28
30
  When the following request is received:
29
31
  """
30
32
  GET /foo/ HTTP/1.1
33
+ host: nex.toa.io
31
34
  origin: https://hello.world
32
35
  """
33
36
  Then the following reply is sent:
34
37
  """
35
38
  200 OK
36
39
  access-control-allow-origin: https://hello.world
37
- access-control-expose-headers: authorization, content-type, content-length, etag
40
+ access-control-allow-credentials: true
41
+ access-control-expose-headers: authorization, content-type, content-length, etag, last-modified
38
42
  vary: origin
39
43
  """
40
44
 
@@ -49,6 +53,7 @@ Feature: CORS Support
49
53
  When the following request is received:
50
54
  """
51
55
  GET /bar/ HTTP/1.1
56
+ host: nex.toa.io
52
57
  origin: https://hello.world
53
58
  """
54
59
  Then the following reply is sent:
@@ -61,6 +66,7 @@ Feature: CORS Support
61
66
  When the following request is received:
62
67
  """
63
68
  GET /foo/ HTTP/1.1
69
+ host: nex.toa.io
64
70
  origin: https://hello.world
65
71
  """
66
72
  Then the following reply is sent:
@@ -0,0 +1,34 @@
1
+ Feature: Debugging
2
+
3
+ Scenario: Operation call
4
+ Given the `identity.basic` database contains:
5
+ | _id | authority | username | password |
6
+ | efe3a65ebbee47ed95a73edd911ea328 | nex | developer | $2b$10$ZRSKkgZoGnrcTNA5w5eCcu3pxDzdTduhteVYXcp56AaNcilNkwJ.O |
7
+ And the `identity.roles` database contains:
8
+ | _id | identity | role |
9
+ | 775a648d054e4ce1a65f8f17e5b51803 | efe3a65ebbee47ed95a73edd911ea328 | developer |
10
+ And the annotation:
11
+ """yaml
12
+ debug: true
13
+ """
14
+ And the `greeter` is running with the following manifest:
15
+ """yaml
16
+ exposition:
17
+ /:
18
+ auth:role: developer
19
+ io:output: true
20
+ GET: greet
21
+ """
22
+ When the following request is received:
23
+ """
24
+ GET /greeter/ HTTP/1.1
25
+ host: nex.toa.io
26
+ authorization: Basic ZGV2ZWxvcGVyOnNlY3JldA==
27
+ accept: text/plain
28
+ """
29
+ Then the following reply is sent:
30
+ """
31
+ 200 OK
32
+
33
+ Hello
34
+ """
@@ -0,0 +1,56 @@
1
+ Feature: Dev
2
+
3
+ Scenario: Delays
4
+ Given the annotation:
5
+ """yaml
6
+ /:
7
+ io:output: true
8
+ anonymous: true
9
+ dev:sleep: 3000
10
+ GET:
11
+ dev:stub: hello
12
+ /nested:
13
+ GET:
14
+ dev:stub: world
15
+ """
16
+ # CORS permission
17
+ When the following request is received:
18
+ """
19
+ OPTIONS / HTTP/1.1
20
+ origin: http://example.com
21
+ """
22
+ Then the following reply is sent:
23
+ """
24
+ 204 No Content
25
+ access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match, sleep
26
+ """
27
+ When the following request is received:
28
+ """
29
+ GET / HTTP/1.1
30
+ sleep: 2500
31
+ """
32
+ # check the response time
33
+ Then the following reply is sent:
34
+ """
35
+ 200 OK
36
+ """
37
+ When the following request is received:
38
+ """
39
+ GET /nested/ HTTP/1.1
40
+ sleep: 500
41
+ """
42
+ Then the following reply is sent:
43
+ """
44
+ 200 OK
45
+ """
46
+ When the following request is received:
47
+ """
48
+ GET / HTTP/1.1
49
+ sleep: 3500
50
+ """
51
+ Then the following reply is sent:
52
+ """
53
+ 400 Bad Request
54
+
55
+ "Invalid sleep duration"
56
+ """
@@ -13,6 +13,7 @@ Feature: Directives
13
13
  When the following request is received:
14
14
  """
15
15
  GET / HTTP/1.1
16
+ host: nex.toa.io
16
17
  accept: application/json
17
18
  """
18
19
  Then the following reply is sent:
@@ -38,6 +39,7 @@ Feature: Directives
38
39
  When the following request is received:
39
40
  """
40
41
  GET /pots/ HTTP/1.1
42
+ host: nex.toa.io
41
43
  accept: application/yaml
42
44
  """
43
45
  Then the following reply is sent:
@@ -50,6 +52,7 @@ Feature: Directives
50
52
  When the following request is received:
51
53
  """
52
54
  GET /pots/non-existent/ HTTP/1.1
55
+ host: nex.toa.io
53
56
  accept: application/yaml
54
57
  """
55
58
  Then the following reply is sent:
@@ -9,6 +9,7 @@ Feature: Dynamic tree updates
9
9
  Given the Gateway is running
10
10
  And the `pots` is running with the following manifest:
11
11
  """yaml
12
+ version: 1
12
13
  exposition:
13
14
  /:
14
15
  io:output: true
@@ -18,6 +19,7 @@ Feature: Dynamic tree updates
18
19
  When the following request is received:
19
20
  """
20
21
  GET /pots/ HTTP/1.1
22
+ host: nex.toa.io
21
23
  """
22
24
  Then the following reply is sent:
23
25
  """
@@ -26,6 +28,7 @@ Feature: Dynamic tree updates
26
28
  Then the `pots` is stopped
27
29
  Then the `pots` is running with the following manifest:
28
30
  """yaml
31
+ version: 2
29
32
  exposition:
30
33
  /:
31
34
  io:output: true
@@ -34,6 +37,45 @@ Feature: Dynamic tree updates
34
37
  When the following request is received:
35
38
  """
36
39
  GET /pots/ HTTP/1.1
40
+ host: nex.toa.io
41
+ accept: application/yaml
42
+ """
43
+ Then the following reply is sent:
44
+ """
45
+ 200 OK
46
+ """
47
+
48
+ Scenario: Repeat routes
49
+ Given the Gateway is running
50
+ And the `pots` is running with the following manifest:
51
+ """yaml
52
+ exposition:
53
+ /:
54
+ io:output: true
55
+ GET: enumerate
56
+ """
57
+ When the following request is received:
58
+ """
59
+ GET /pots/ HTTP/1.1
60
+ host: nex.toa.io
61
+ accept: application/yaml
62
+ """
63
+ Then the following reply is sent:
64
+ """
65
+ 200 OK
66
+ """
67
+ Then the `pots` is stopped
68
+ And the `pots` is running with the following manifest:
69
+ """yaml
70
+ exposition:
71
+ /:
72
+ io:output: true
73
+ GET: enumerate
74
+ """
75
+ When the following request is received:
76
+ """
77
+ GET /pots/ HTTP/1.1
78
+ host: nex.toa.io
37
79
  accept: application/yaml
38
80
  """
39
81
  Then the following reply is sent:
@@ -44,6 +86,7 @@ Feature: Dynamic tree updates
44
86
  Scenario: Updating routes with conflict
45
87
  And the `pots` is running with the following manifest:
46
88
  """yaml
89
+ version: 1.0.0
47
90
  exposition:
48
91
  /:id:
49
92
  io:output: true
@@ -52,6 +95,7 @@ Feature: Dynamic tree updates
52
95
  Then the `pots` is stopped
53
96
  Then the `pots` is running with the following manifest:
54
97
  """yaml
98
+ version: 1.1.0
55
99
  exposition:
56
100
  /:
57
101
  io:output: true
@@ -66,6 +110,7 @@ Feature: Dynamic tree updates
66
110
  When the following request is received:
67
111
  """
68
112
  GET /pots/big/ HTTP/1.1
113
+ host: nex.toa.io
69
114
  accept: application/yaml
70
115
  """
71
116
  Then the following reply is sent:
@@ -76,6 +121,7 @@ Feature: Dynamic tree updates
76
121
  Scenario: Updating method mapping
77
122
  Given the `pots` is running with the following manifest:
78
123
  """yaml
124
+ version: a
79
125
  exposition:
80
126
  /big:
81
127
  io:output: true
@@ -87,6 +133,7 @@ Feature: Dynamic tree updates
87
133
  Then the `pots` is stopped
88
134
  Then the `pots` is running with the following manifest:
89
135
  """yaml
136
+ version: b
90
137
  exposition:
91
138
  /big:
92
139
  io:output: true
@@ -98,6 +145,7 @@ Feature: Dynamic tree updates
98
145
  When the following request is received:
99
146
  """
100
147
  GET /pots/big/?criteria=temperature>50 HTTP/1.1
148
+ host: nex.toa.io
101
149
  accept: application/yaml
102
150
  """
103
151
  Then the following reply is sent:
@@ -8,11 +8,14 @@ Feature: Errors
8
8
  When the following request is received:
9
9
  """
10
10
  GET <path> HTTP/1.1
11
- accept: application/yaml
11
+ host: nex.toa.io
12
+ accept: text/plain
12
13
  """
13
14
  Then the following reply is sent:
14
15
  """
15
16
  404 Not Found
17
+
18
+ Route not found
16
19
  """
17
20
  Examples:
18
21
  | path |
@@ -28,6 +31,7 @@ Feature: Errors
28
31
  When the following request is received:
29
32
  """
30
33
  GET /basic/greeter HTTP/1.1
34
+ host: nex.toa.io
31
35
  accept: application/json
32
36
  """
33
37
  Then the following reply is sent:
@@ -35,7 +39,7 @@ Feature: Errors
35
39
  404 Not Found
36
40
  content-type: application/json
37
41
 
38
- "Trailing slash is required."
42
+ "Trailing slash is required"
39
43
  """
40
44
 
41
45
  Scenario: Missing method
@@ -43,6 +47,7 @@ Feature: Errors
43
47
  When the following request is received:
44
48
  """
45
49
  PATCH /greeter/ HTTP/1.1
50
+ host: nex.toa.io
46
51
  accept: application/yaml
47
52
  """
48
53
  Then the following reply is sent:
@@ -54,6 +59,7 @@ Feature: Errors
54
59
  When the following request is received:
55
60
  """
56
61
  COPY /basic/greeter/ HTTP/1.1
62
+ host: nex.toa.io
57
63
  accept: application/yaml
58
64
  """
59
65
  Then the following reply is sent:
@@ -71,6 +77,7 @@ Feature: Errors
71
77
  When the following request is received:
72
78
  """
73
79
  POST /pots/ HTTP/1.1
80
+ host: nex.toa.io
74
81
  accept: application/yaml
75
82
  content-type: application/yaml
76
83
 
@@ -95,6 +102,7 @@ Feature: Errors
95
102
  When the following request is received:
96
103
  """
97
104
  GET /pots/?limit=1001 HTTP/1.1
105
+ host: nex.toa.io
98
106
  accept: text/plain
99
107
  """
100
108
  Then the following reply is sent:
@@ -102,7 +110,7 @@ Feature: Errors
102
110
  400 Bad Request
103
111
  content-type: text/plain
104
112
 
105
- Query limit must be between 1 and 1000 inclusive.
113
+ Query limit must be between 1 and 100 inclusive
106
114
  """
107
115
 
108
116
  Scenario: Closed query criteria
@@ -113,11 +121,12 @@ Feature: Errors
113
121
  GET:
114
122
  endpoint: enumerate
115
123
  query:
116
- criteria: temerature>60
124
+ criteria: temperature>60
117
125
  """
118
126
  When the following request is received:
119
127
  """
120
128
  GET /pots/hot/?criteria=volume>500 HTTP/1.1
129
+ host: nex.toa.io
121
130
  accept: text/plain
122
131
  """
123
132
  Then the following reply is sent:
@@ -125,7 +134,7 @@ Feature: Errors
125
134
  400 Bad Request
126
135
  content-type: text/plain
127
136
 
128
- Query criteria is closed.
137
+ Query criteria is closed
129
138
  """
130
139
 
131
140
  Scenario: Additional query parameters
@@ -139,6 +148,7 @@ Feature: Errors
139
148
  When the following request is received:
140
149
  """
141
150
  GET /pots/?foo=bar HTTP/1.1
151
+ host: nex.toa.io
142
152
  accept: text/plain
143
153
  """
144
154
  Then the following reply is sent:
@@ -146,7 +156,7 @@ Feature: Errors
146
156
  400 Bad Request
147
157
  content-type: text/plain
148
158
 
149
- Query must NOT have additional properties
159
+ Query Property foo is not expected to be here
150
160
  """
151
161
 
152
162
  Scenario: Malformed authorization header
@@ -158,6 +168,7 @@ Feature: Errors
158
168
  When the following request is received:
159
169
  """
160
170
  GET / HTTP/1.1
171
+ host: nex.toa.io
161
172
  authorization: Basic
162
173
  accept: text/plain
163
174
  """
@@ -165,7 +176,7 @@ Feature: Errors
165
176
  """
166
177
  401 Unauthorized
167
178
 
168
- Malformed authorization header.
179
+ Malformed authorization header
169
180
  """
170
181
 
171
182
  Scenario Outline: Exception is thrown (debug: <debug>)
@@ -180,6 +191,7 @@ Feature: Errors
180
191
  When the following request is received:
181
192
  """
182
193
  GET / HTTP/1.1
194
+ host: nex.toa.io
183
195
  accept: text/plain
184
196
  """
185
197
  Then the following reply is sent:
@@ -204,9 +216,22 @@ Feature: Errors
204
216
  When the following request is received:
205
217
  """
206
218
  GET / HTTP/1.1
219
+ host: nex.toa.io
207
220
  accept: image/jpeg
208
221
  """
209
222
  Then the following reply is sent:
210
223
  """
211
224
  406 Not Acceptable
212
225
  """
226
+
227
+ Scenario: Not acceptable request with error
228
+ When the following request is received:
229
+ """
230
+ GET /robots.txt HTTP/1.1
231
+ host: nex.toa.io
232
+ accept: text/html
233
+ """
234
+ Then the following reply is sent:
235
+ """
236
+ 404 Not Found
237
+ """