@toa.io/extensions.exposition 1.0.0-alpha.0 → 1.0.0-alpha.100

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 (700) hide show
  1. package/components/context.toa.yaml +12 -0
  2. package/components/identity.bans/manifest.toa.yaml +15 -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 +21 -8
  10. package/components/identity.basic/operations/authenticate.d.ts +13 -0
  11. package/components/identity.basic/operations/authenticate.js +27 -0
  12. package/components/identity.basic/operations/authenticate.js.map +1 -0
  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 +12 -0
  17. package/components/identity.basic/operations/transit.js +55 -0
  18. package/components/identity.basic/operations/transit.js.map +1 -0
  19. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -0
  20. package/components/identity.basic/operations/types.d.ts +42 -0
  21. package/components/identity.basic/operations/types.js +3 -0
  22. package/components/identity.basic/operations/types.js.map +1 -0
  23. package/components/identity.basic/source/authenticate.ts +16 -6
  24. package/components/identity.basic/source/incept.ts +38 -0
  25. package/components/identity.basic/source/transit.ts +11 -9
  26. package/components/identity.basic/source/types.ts +8 -4
  27. package/components/identity.federation/events/principal.js +22 -0
  28. package/components/identity.federation/manifest.toa.yaml +119 -0
  29. package/components/identity.federation/operations/authenticate.d.ts +14 -0
  30. package/components/identity.federation/operations/authenticate.js +20 -0
  31. package/components/identity.federation/operations/authenticate.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.d.ts +4 -0
  36. package/components/identity.federation/operations/lib/assertions-as-values.js +47 -0
  37. package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -0
  38. package/components/identity.federation/operations/lib/get.d.ts +1 -0
  39. package/components/identity.federation/operations/lib/get.js +64 -0
  40. package/components/identity.federation/operations/lib/get.js.map +1 -0
  41. package/components/identity.federation/operations/lib/jwt.d.ts +19 -0
  42. package/components/identity.federation/operations/lib/jwt.js +140 -0
  43. package/components/identity.federation/operations/lib/jwt.js.map +1 -0
  44. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -0
  45. package/components/identity.federation/operations/types/configuration.d.ts +15 -0
  46. package/components/identity.federation/operations/types/configuration.js +3 -0
  47. package/components/identity.federation/operations/types/configuration.js.map +1 -0
  48. package/components/identity.federation/operations/types/context.d.ts +49 -0
  49. package/components/identity.federation/operations/types/context.js +3 -0
  50. package/components/identity.federation/operations/types/context.js.map +1 -0
  51. package/components/identity.federation/operations/types/entity.d.ts +6 -0
  52. package/components/identity.federation/operations/types/entity.js +3 -0
  53. package/components/identity.federation/operations/types/entity.js.map +1 -0
  54. package/components/identity.federation/operations/types/index.d.ts +3 -0
  55. package/components/identity.federation/operations/types/index.js +20 -0
  56. package/components/identity.federation/operations/types/index.js.map +1 -0
  57. package/components/identity.federation/source/authenticate.ts +36 -0
  58. package/components/identity.federation/source/incept.ts +26 -0
  59. package/components/identity.federation/source/lib/assertions-as-values.ts +22 -0
  60. package/components/identity.federation/source/lib/get.ts +82 -0
  61. package/components/identity.federation/source/lib/jwt.test.ts +179 -0
  62. package/components/identity.federation/source/lib/jwt.ts +178 -0
  63. package/components/identity.federation/source/types/configuration.ts +16 -0
  64. package/components/identity.federation/source/types/context.ts +55 -0
  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 +10 -0
  68. package/components/identity.roles/manifest.toa.yaml +18 -5
  69. package/components/identity.roles/operations/grant.d.ts +10 -0
  70. package/components/identity.roles/operations/grant.js +21 -0
  71. package/components/identity.roles/operations/grant.js.map +1 -0
  72. package/components/identity.roles/operations/lib/Entity.d.ts +5 -0
  73. package/components/identity.roles/operations/lib/Entity.js +3 -0
  74. package/components/identity.roles/operations/lib/Entity.js.map +1 -0
  75. package/components/identity.roles/operations/list.d.ts +2 -0
  76. package/components/identity.roles/operations/list.js +8 -0
  77. package/components/identity.roles/operations/list.js.map +1 -0
  78. package/components/identity.roles/operations/principal.d.ts +13 -0
  79. package/components/identity.roles/operations/principal.js +13 -0
  80. package/components/identity.roles/operations/principal.js.map +1 -0
  81. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -0
  82. package/components/identity.roles/source/grant.ts +32 -0
  83. package/components/identity.roles/source/lib/Entity.ts +5 -0
  84. package/components/identity.roles/source/list.ts +2 -4
  85. package/components/identity.roles/source/principal.ts +10 -8
  86. package/components/identity.tokens/manifest.toa.yaml +18 -4
  87. package/components/identity.tokens/operations/authenticate.d.ts +9 -0
  88. package/components/identity.tokens/operations/authenticate.js +39 -0
  89. package/components/identity.tokens/operations/authenticate.js.map +1 -0
  90. package/components/identity.tokens/operations/decrypt.d.ts +3 -0
  91. package/components/identity.tokens/operations/decrypt.js +33 -0
  92. package/components/identity.tokens/operations/decrypt.js.map +1 -0
  93. package/components/identity.tokens/operations/encrypt.d.ts +8 -0
  94. package/components/identity.tokens/operations/encrypt.js +26 -0
  95. package/components/identity.tokens/operations/encrypt.js.map +1 -0
  96. package/components/identity.tokens/operations/revoke.d.ts +2 -0
  97. package/components/identity.tokens/operations/revoke.js +8 -0
  98. package/components/identity.tokens/operations/revoke.js.map +1 -0
  99. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -0
  100. package/components/identity.tokens/operations/types.d.ts +46 -0
  101. package/components/identity.tokens/operations/types.js +3 -0
  102. package/components/identity.tokens/operations/types.js.map +1 -0
  103. package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
  104. package/components/identity.tokens/source/authenticate.test.ts +11 -4
  105. package/components/identity.tokens/source/authenticate.ts +14 -6
  106. package/components/identity.tokens/source/decrypt.test.ts +5 -3
  107. package/components/identity.tokens/source/decrypt.ts +9 -8
  108. package/components/identity.tokens/source/encrypt.test.ts +26 -2
  109. package/components/identity.tokens/source/encrypt.ts +5 -1
  110. package/components/identity.tokens/source/types.ts +9 -2
  111. package/components/octets.storage/manifest.toa.yaml +10 -10
  112. package/components/octets.storage/operations/get.js +3 -3
  113. package/components/octets.storage/operations/head.js +7 -0
  114. package/components/octets.storage/operations/put.js +132 -0
  115. package/cucumber.js +0 -1
  116. package/documentation/access.md +80 -38
  117. package/documentation/authorities.md +48 -0
  118. package/documentation/cache.md +8 -1
  119. package/documentation/components.md +93 -24
  120. package/documentation/flow.md +44 -0
  121. package/documentation/identity.md +34 -23
  122. package/documentation/introspection.md +82 -0
  123. package/documentation/io.md +56 -0
  124. package/documentation/map.md +73 -0
  125. package/documentation/octets.md +162 -65
  126. package/documentation/protocol.md +34 -4
  127. package/documentation/query.md +79 -9
  128. package/documentation/require.md +15 -0
  129. package/documentation/tree.md +35 -4
  130. package/features/access.feature +141 -49
  131. package/features/annotation.feature +2 -0
  132. package/features/auth.claims.feature +170 -0
  133. package/features/authorities.basic.feature +141 -0
  134. package/features/authorities.feature +32 -0
  135. package/features/authorities.federation.feature +100 -0
  136. package/features/authorities.tokens.feature +117 -0
  137. package/features/body.feature +5 -1
  138. package/features/cache.feature +112 -5
  139. package/features/cors.feature +78 -0
  140. package/features/debug.feature +34 -0
  141. package/features/directives.feature +5 -0
  142. package/features/dynamic.feature +62 -7
  143. package/features/errors.feature +36 -10
  144. package/features/etag.feature +205 -0
  145. package/features/flow.feature +96 -0
  146. package/features/identity.bans.feature +137 -0
  147. package/features/identity.basic.feature +146 -21
  148. package/features/identity.feature +37 -9
  149. package/features/identity.federation.feature +268 -0
  150. package/features/identity.roles.feature +251 -7
  151. package/features/identity.tokens.feature +57 -4
  152. package/features/introspection.feature +153 -0
  153. package/features/io.feature +204 -0
  154. package/features/map.feature +241 -0
  155. package/features/methods.feature +47 -0
  156. package/features/octets.cloudinary.feature +68 -0
  157. package/features/octets.download.feature +189 -0
  158. package/features/octets.entries.feature +81 -0
  159. package/features/octets.feature +85 -133
  160. package/features/octets.head.feature +40 -0
  161. package/features/octets.meta.feature +116 -0
  162. package/features/octets.workflows.feature +391 -34
  163. package/features/probes.feature +14 -0
  164. package/features/{queries.feature → query.feature} +86 -3
  165. package/features/realtime.feature +34 -0
  166. package/features/require.feature +67 -0
  167. package/features/response.feature +103 -0
  168. package/features/routes.feature +145 -10
  169. package/features/server.feature +21 -0
  170. package/features/steps/.env.example +3 -0
  171. package/features/steps/Captures.ts +6 -0
  172. package/features/steps/Components.ts +18 -6
  173. package/features/steps/Database.ts +17 -10
  174. package/features/steps/Gateway.ts +25 -6
  175. package/features/steps/HTTP.ts +40 -87
  176. package/features/steps/IdP.ts +155 -0
  177. package/features/steps/Parameters.ts +51 -2
  178. package/features/steps/Realtime.ts +151 -0
  179. package/features/steps/Workspace.ts +5 -7
  180. package/features/steps/components/echo/manifest.toa.yaml +14 -0
  181. package/features/steps/components/echo/operations/error.js +11 -0
  182. package/features/steps/components/echo/operations/identity.js +7 -0
  183. package/features/steps/components/echo/operations/parameters.js +7 -0
  184. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  185. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  186. package/features/steps/components/greeter/manifest.toa.yaml +1 -0
  187. package/features/steps/components/octets.tester/manifest.toa.yaml +26 -2
  188. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  189. package/features/steps/components/octets.tester/operations/bar.js +0 -1
  190. package/features/steps/components/octets.tester/operations/baz.js +0 -2
  191. package/features/steps/components/octets.tester/operations/concat.js +7 -0
  192. package/features/steps/components/octets.tester/operations/echo.js +7 -0
  193. package/features/steps/components/octets.tester/operations/foo.js +1 -2
  194. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  195. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  196. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  197. package/features/steps/components/pots/manifest.toa.yaml +26 -6
  198. package/features/steps/components/sequences/manifest.toa.yaml +1 -0
  199. package/features/steps/components/users/manifest.toa.yaml +3 -0
  200. package/features/steps/components/users.properties/manifest.toa.yaml +14 -0
  201. package/features/steps/tsconfig.json +1 -1
  202. package/features/streams.feature +5 -0
  203. package/features/timing.feature +69 -0
  204. package/package.json +25 -20
  205. package/readme.md +19 -13
  206. package/schemas/annotation.cos.yaml +2 -1
  207. package/schemas/io/input.cos.yaml +3 -0
  208. package/schemas/io/message.cos.yaml +5 -0
  209. package/schemas/io/output.cos.yaml +5 -0
  210. package/schemas/method.cos.yaml +1 -1
  211. package/schemas/node.cos.yaml +2 -0
  212. package/schemas/octets/delete.cos.yaml +2 -1
  213. package/schemas/octets/{fetch.cos.yaml → get.cos.yaml} +0 -1
  214. package/schemas/octets/put.cos.yaml +25 -0
  215. package/schemas/octets/workflow.cos.yaml +12 -0
  216. package/schemas/query.cos.yaml +4 -10
  217. package/schemas/querystring.cos.yaml +1 -0
  218. package/source/Annotation.ts +3 -2
  219. package/source/Branch.ts +1 -0
  220. package/source/Composition.ts +0 -6
  221. package/source/Context.ts +7 -4
  222. package/source/Directive.test.ts +14 -8
  223. package/source/Directive.ts +30 -52
  224. package/source/Endpoint.ts +105 -16
  225. package/source/Factory.ts +37 -17
  226. package/source/Gateway.ts +94 -42
  227. package/source/HTTP/Context.ts +90 -0
  228. package/source/HTTP/Server.ts +115 -92
  229. package/source/HTTP/Timing.ts +40 -0
  230. package/source/HTTP/exceptions.ts +13 -1
  231. package/source/HTTP/formats/index.ts +3 -3
  232. package/source/HTTP/formats/msgpack.ts +9 -6
  233. package/source/HTTP/formats/text.ts +1 -1
  234. package/source/HTTP/formats/yaml.ts +1 -1
  235. package/source/HTTP/index.ts +1 -0
  236. package/source/HTTP/messages.test.ts +71 -9
  237. package/source/HTTP/messages.ts +66 -46
  238. package/source/Interception.ts +24 -0
  239. package/source/Introspection.ts +11 -0
  240. package/source/Mapping.ts +69 -23
  241. package/source/Query.test.ts +3 -3
  242. package/source/Query.ts +123 -33
  243. package/source/RTD/Context.ts +8 -11
  244. package/source/RTD/Directives.ts +28 -4
  245. package/source/RTD/Endpoint.ts +9 -4
  246. package/source/RTD/Match.ts +2 -7
  247. package/source/RTD/Method.ts +23 -13
  248. package/source/RTD/Node.ts +37 -22
  249. package/source/RTD/Route.ts +5 -4
  250. package/source/RTD/Tree.ts +20 -16
  251. package/source/RTD/factory.ts +7 -7
  252. package/source/RTD/syntax/parse.test.ts +1 -1
  253. package/source/RTD/syntax/parse.ts +41 -28
  254. package/source/RTD/syntax/types.ts +6 -4
  255. package/source/Remotes.ts +7 -6
  256. package/source/Tenant.ts +6 -20
  257. package/source/deployment.ts +35 -20
  258. package/source/directives/auth/Anonymous.ts +3 -2
  259. package/source/directives/auth/Anyone.ts +13 -0
  260. package/source/directives/auth/Authorization.ts +170 -0
  261. package/source/directives/auth/Delegate.ts +42 -0
  262. package/source/directives/auth/Echo.ts +19 -5
  263. package/source/directives/auth/Federation.ts +84 -0
  264. package/source/directives/auth/Incept.ts +14 -8
  265. package/source/directives/auth/Role.test.ts +53 -6
  266. package/source/directives/auth/Role.ts +27 -17
  267. package/source/directives/auth/Rule.ts +2 -2
  268. package/source/directives/auth/Scheme.ts +3 -3
  269. package/source/directives/auth/index.ts +2 -2
  270. package/source/directives/auth/schemes.ts +2 -1
  271. package/source/directives/auth/split.ts +1 -1
  272. package/source/directives/auth/types.ts +10 -7
  273. package/source/directives/cache/Cache.ts +42 -0
  274. package/source/directives/cache/Control.ts +47 -21
  275. package/source/directives/cache/index.ts +2 -2
  276. package/source/directives/cache/types.ts +2 -2
  277. package/source/directives/cors/CORS.ts +63 -0
  278. package/source/directives/cors/index.ts +3 -0
  279. package/source/directives/dev/{Family.ts → Development.ts} +5 -6
  280. package/source/directives/dev/Stub.ts +4 -4
  281. package/source/directives/dev/Throw.ts +4 -4
  282. package/source/directives/dev/index.ts +2 -2
  283. package/source/directives/dev/types.ts +1 -1
  284. package/source/directives/flow/Compose.ts +68 -0
  285. package/source/directives/flow/Fetch.ts +86 -0
  286. package/source/directives/flow/Flow.ts +42 -0
  287. package/source/directives/flow/index.ts +3 -0
  288. package/source/directives/flow/types.ts +7 -0
  289. package/source/directives/index.ts +13 -6
  290. package/source/directives/io/Directive.ts +11 -0
  291. package/source/directives/io/IO.ts +43 -0
  292. package/source/directives/io/Input.ts +50 -0
  293. package/source/directives/io/Message.ts +1 -0
  294. package/source/directives/io/Output.ts +70 -0
  295. package/source/directives/io/index.ts +3 -0
  296. package/source/directives/io/schemas.ts +12 -0
  297. package/source/directives/map/Authority.ts +15 -0
  298. package/source/directives/map/Claims.ts +37 -0
  299. package/source/directives/map/Directive.ts +4 -0
  300. package/source/directives/map/Headers.ts +38 -0
  301. package/source/directives/map/Language.ts +42 -0
  302. package/source/directives/map/Languages.ts +11 -0
  303. package/source/directives/map/Map.ts +56 -0
  304. package/source/directives/map/Mapping.ts +13 -0
  305. package/source/directives/map/Properties.ts +15 -0
  306. package/source/directives/map/Segments.ts +26 -0
  307. package/source/directives/map/index.ts +3 -0
  308. package/source/directives/octets/Context.ts +9 -7
  309. package/source/directives/octets/Delete.ts +65 -12
  310. package/source/directives/octets/Directive.ts +10 -0
  311. package/source/directives/octets/Get.ts +86 -0
  312. package/source/directives/octets/{Family.ts → Octets.ts} +22 -20
  313. package/source/directives/octets/Put.ts +142 -0
  314. package/source/directives/octets/Workflow.ts +48 -0
  315. package/source/directives/octets/bytes.test.ts +30 -0
  316. package/source/directives/octets/bytes.ts +18 -0
  317. package/source/directives/octets/index.ts +2 -2
  318. package/source/directives/octets/schemas.test.ts +21 -0
  319. package/source/directives/octets/schemas.ts +9 -6
  320. package/source/directives/octets/types.ts +2 -8
  321. package/source/directives/octets/workflows/Execution.ts +128 -0
  322. package/source/directives/octets/workflows/Workflow.ts +37 -0
  323. package/source/directives/octets/workflows/index.ts +1 -0
  324. package/source/directives/require/Directive.ts +5 -0
  325. package/source/directives/require/Headers.ts +20 -0
  326. package/source/directives/require/Require.ts +28 -0
  327. package/source/directives/require/index.ts +3 -0
  328. package/source/exceptions.ts +23 -11
  329. package/source/io.ts +4 -0
  330. package/source/manifest.test.ts +6 -14
  331. package/source/manifest.ts +18 -16
  332. package/source/root.ts +5 -0
  333. package/source/schemas.ts +7 -3
  334. package/transpiled/Annotation.d.ts +8 -0
  335. package/transpiled/Annotation.js +3 -0
  336. package/transpiled/Annotation.js.map +1 -0
  337. package/transpiled/Branch.d.ts +8 -0
  338. package/transpiled/Branch.js +3 -0
  339. package/transpiled/Branch.js.map +1 -0
  340. package/transpiled/Composition.d.ts +13 -0
  341. package/transpiled/Composition.js +39 -0
  342. package/transpiled/Composition.js.map +1 -0
  343. package/transpiled/Context.d.ts +8 -0
  344. package/transpiled/Context.js +3 -0
  345. package/transpiled/Context.js.map +1 -0
  346. package/transpiled/Directive.d.ts +18 -0
  347. package/transpiled/Directive.js +77 -0
  348. package/transpiled/Directive.js.map +1 -0
  349. package/transpiled/Endpoint.d.ts +24 -0
  350. package/transpiled/Endpoint.js +131 -0
  351. package/transpiled/Endpoint.js.map +1 -0
  352. package/transpiled/Factory.d.ts +10 -0
  353. package/transpiled/Factory.js +81 -0
  354. package/transpiled/Factory.js.map +1 -0
  355. package/transpiled/Gateway.d.ts +21 -0
  356. package/transpiled/Gateway.js +132 -0
  357. package/transpiled/Gateway.js.map +1 -0
  358. package/transpiled/HTTP/Context.d.ts +31 -0
  359. package/transpiled/HTTP/Context.js +61 -0
  360. package/transpiled/HTTP/Context.js.map +1 -0
  361. package/transpiled/HTTP/Server.d.ts +36 -0
  362. package/transpiled/HTTP/Server.js +148 -0
  363. package/transpiled/HTTP/Server.js.map +1 -0
  364. package/transpiled/HTTP/Timing.d.ts +10 -0
  365. package/transpiled/HTTP/Timing.js +29 -0
  366. package/transpiled/HTTP/Timing.js.map +1 -0
  367. package/transpiled/HTTP/exceptions.d.ts +40 -0
  368. package/transpiled/HTTP/exceptions.js +83 -0
  369. package/transpiled/HTTP/exceptions.js.map +1 -0
  370. package/transpiled/HTTP/formats/index.d.ts +10 -0
  371. package/transpiled/HTTP/formats/index.js +38 -0
  372. package/transpiled/HTTP/formats/index.js.map +1 -0
  373. package/transpiled/HTTP/formats/json.d.ts +6 -0
  374. package/transpiled/HTTP/formats/json.js +17 -0
  375. package/transpiled/HTTP/formats/json.js.map +1 -0
  376. package/transpiled/HTTP/formats/msgpack.d.ts +6 -0
  377. package/transpiled/HTTP/formats/msgpack.js +17 -0
  378. package/transpiled/HTTP/formats/msgpack.js.map +1 -0
  379. package/transpiled/HTTP/formats/text.d.ts +8 -0
  380. package/transpiled/HTTP/formats/text.js +15 -0
  381. package/transpiled/HTTP/formats/text.js.map +1 -0
  382. package/transpiled/HTTP/formats/yaml.d.ts +6 -0
  383. package/transpiled/HTTP/formats/yaml.js +41 -0
  384. package/transpiled/HTTP/formats/yaml.js.map +1 -0
  385. package/transpiled/HTTP/index.d.ts +4 -0
  386. package/transpiled/HTTP/index.js +21 -0
  387. package/transpiled/HTTP/index.js.map +1 -0
  388. package/transpiled/HTTP/messages.d.ts +20 -0
  389. package/transpiled/HTTP/messages.js +96 -0
  390. package/transpiled/HTTP/messages.js.map +1 -0
  391. package/transpiled/Interception.d.ts +9 -0
  392. package/transpiled/Interception.js +19 -0
  393. package/transpiled/Interception.js.map +1 -0
  394. package/transpiled/Introspection.d.ts +9 -0
  395. package/transpiled/Introspection.js +3 -0
  396. package/transpiled/Introspection.js.map +1 -0
  397. package/transpiled/Mapping.d.ts +17 -0
  398. package/transpiled/Mapping.js +69 -0
  399. package/transpiled/Mapping.js.map +1 -0
  400. package/transpiled/Query.d.ts +22 -0
  401. package/transpiled/Query.js +164 -0
  402. package/transpiled/Query.js.map +1 -0
  403. package/transpiled/RTD/Context.d.ts +12 -0
  404. package/transpiled/RTD/Context.js +3 -0
  405. package/transpiled/RTD/Context.js.map +1 -0
  406. package/transpiled/RTD/Directives.d.ts +22 -0
  407. package/transpiled/RTD/Directives.js +3 -0
  408. package/transpiled/RTD/Directives.js.map +1 -0
  409. package/transpiled/RTD/Endpoint.d.ts +12 -0
  410. package/transpiled/RTD/Endpoint.js +3 -0
  411. package/transpiled/RTD/Endpoint.js.map +1 -0
  412. package/transpiled/RTD/Match.d.ts +9 -0
  413. package/transpiled/RTD/Match.js +3 -0
  414. package/transpiled/RTD/Match.js.map +1 -0
  415. package/transpiled/RTD/Method.d.ts +13 -0
  416. package/transpiled/RTD/Method.js +27 -0
  417. package/transpiled/RTD/Method.js.map +1 -0
  418. package/transpiled/RTD/Node.d.ts +22 -0
  419. package/transpiled/RTD/Node.js +73 -0
  420. package/transpiled/RTD/Node.js.map +1 -0
  421. package/transpiled/RTD/Route.d.ts +14 -0
  422. package/transpiled/RTD/Route.js +48 -0
  423. package/transpiled/RTD/Route.js.map +1 -0
  424. package/transpiled/RTD/Tree.d.ts +14 -0
  425. package/transpiled/RTD/Tree.js +45 -0
  426. package/transpiled/RTD/Tree.js.map +1 -0
  427. package/transpiled/RTD/factory.d.ts +4 -0
  428. package/transpiled/RTD/factory.js +39 -0
  429. package/transpiled/RTD/factory.js.map +1 -0
  430. package/transpiled/RTD/index.d.ts +8 -0
  431. package/transpiled/RTD/index.js +38 -0
  432. package/transpiled/RTD/index.js.map +1 -0
  433. package/transpiled/RTD/segment.d.ts +8 -0
  434. package/transpiled/RTD/segment.js +25 -0
  435. package/transpiled/RTD/segment.js.map +1 -0
  436. package/transpiled/RTD/syntax/index.d.ts +2 -0
  437. package/transpiled/RTD/syntax/index.js +19 -0
  438. package/transpiled/RTD/syntax/index.js.map +1 -0
  439. package/transpiled/RTD/syntax/parse.d.ts +4 -0
  440. package/transpiled/RTD/syntax/parse.js +140 -0
  441. package/transpiled/RTD/syntax/parse.js.map +1 -0
  442. package/transpiled/RTD/syntax/types.d.ts +43 -0
  443. package/transpiled/RTD/syntax/types.js +5 -0
  444. package/transpiled/RTD/syntax/types.js.map +1 -0
  445. package/transpiled/Remotes.d.ts +9 -0
  446. package/transpiled/Remotes.js +26 -0
  447. package/transpiled/Remotes.js.map +1 -0
  448. package/transpiled/Tenant.d.ts +13 -0
  449. package/transpiled/Tenant.js +23 -0
  450. package/transpiled/Tenant.js.map +1 -0
  451. package/transpiled/deployment.d.ts +3 -0
  452. package/transpiled/deployment.js +79 -0
  453. package/transpiled/deployment.js.map +1 -0
  454. package/transpiled/directives/auth/Anonymous.d.ts +6 -0
  455. package/transpiled/directives/auth/Anonymous.js +16 -0
  456. package/transpiled/directives/auth/Anonymous.js.map +1 -0
  457. package/transpiled/directives/auth/Anyone.d.ts +6 -0
  458. package/transpiled/directives/auth/Anyone.js +14 -0
  459. package/transpiled/directives/auth/Anyone.js.map +1 -0
  460. package/transpiled/directives/auth/Authorization.d.ts +19 -0
  461. package/transpiled/directives/auth/Authorization.js +141 -0
  462. package/transpiled/directives/auth/Authorization.js.map +1 -0
  463. package/transpiled/directives/auth/Delegate.d.ts +10 -0
  464. package/transpiled/directives/auth/Delegate.js +34 -0
  465. package/transpiled/directives/auth/Delegate.js.map +1 -0
  466. package/transpiled/directives/auth/Echo.d.ts +7 -0
  467. package/transpiled/directives/auth/Echo.js +23 -0
  468. package/transpiled/directives/auth/Echo.js.map +1 -0
  469. package/transpiled/directives/auth/Federation.d.ts +16 -0
  470. package/transpiled/directives/auth/Federation.js +57 -0
  471. package/transpiled/directives/auth/Federation.js.map +1 -0
  472. package/transpiled/directives/auth/Id.d.ts +7 -0
  473. package/transpiled/directives/auth/Id.js +17 -0
  474. package/transpiled/directives/auth/Id.js.map +1 -0
  475. package/transpiled/directives/auth/Incept.d.ts +10 -0
  476. package/transpiled/directives/auth/Incept.js +64 -0
  477. package/transpiled/directives/auth/Incept.js.map +1 -0
  478. package/transpiled/directives/auth/Role.d.ts +14 -0
  479. package/transpiled/directives/auth/Role.js +52 -0
  480. package/transpiled/directives/auth/Role.js.map +1 -0
  481. package/transpiled/directives/auth/Rule.d.ts +9 -0
  482. package/transpiled/directives/auth/Rule.js +22 -0
  483. package/transpiled/directives/auth/Rule.js.map +1 -0
  484. package/transpiled/directives/auth/Scheme.d.ts +7 -0
  485. package/transpiled/directives/auth/Scheme.js +47 -0
  486. package/transpiled/directives/auth/Scheme.js.map +1 -0
  487. package/transpiled/directives/auth/index.d.ts +2 -0
  488. package/transpiled/directives/auth/index.js +6 -0
  489. package/transpiled/directives/auth/index.js.map +1 -0
  490. package/transpiled/directives/auth/schemes.d.ts +3 -0
  491. package/transpiled/directives/auth/schemes.js +10 -0
  492. package/transpiled/directives/auth/schemes.js.map +1 -0
  493. package/transpiled/directives/auth/split.d.ts +2 -0
  494. package/transpiled/directives/auth/split.js +38 -0
  495. package/transpiled/directives/auth/split.js.map +1 -0
  496. package/transpiled/directives/auth/types.d.ts +31 -0
  497. package/transpiled/directives/auth/types.js +3 -0
  498. package/transpiled/directives/auth/types.js.map +1 -0
  499. package/transpiled/directives/cache/Cache.d.ts +11 -0
  500. package/transpiled/directives/cache/Cache.js +34 -0
  501. package/transpiled/directives/cache/Cache.js.map +1 -0
  502. package/transpiled/directives/cache/Control.d.ts +10 -0
  503. package/transpiled/directives/cache/Control.js +59 -0
  504. package/transpiled/directives/cache/Control.js.map +1 -0
  505. package/transpiled/directives/cache/Exact.d.ts +4 -0
  506. package/transpiled/directives/cache/Exact.js +11 -0
  507. package/transpiled/directives/cache/Exact.js.map +1 -0
  508. package/transpiled/directives/cache/index.d.ts +2 -0
  509. package/transpiled/directives/cache/index.js +6 -0
  510. package/transpiled/directives/cache/index.js.map +1 -0
  511. package/transpiled/directives/cache/types.d.ts +7 -0
  512. package/transpiled/directives/cache/types.js +3 -0
  513. package/transpiled/directives/cache/types.js.map +1 -0
  514. package/transpiled/directives/cors/CORS.d.ts +10 -0
  515. package/transpiled/directives/cors/CORS.js +52 -0
  516. package/transpiled/directives/cors/CORS.js.map +1 -0
  517. package/transpiled/directives/cors/index.d.ts +2 -0
  518. package/transpiled/directives/cors/index.js +6 -0
  519. package/transpiled/directives/cors/index.js.map +1 -0
  520. package/transpiled/directives/dev/Development.d.ts +9 -0
  521. package/transpiled/directives/dev/Development.js +29 -0
  522. package/transpiled/directives/dev/Development.js.map +1 -0
  523. package/transpiled/directives/dev/Stub.d.ts +7 -0
  524. package/transpiled/directives/dev/Stub.js +14 -0
  525. package/transpiled/directives/dev/Stub.js.map +1 -0
  526. package/transpiled/directives/dev/Throw.d.ts +7 -0
  527. package/transpiled/directives/dev/Throw.js +14 -0
  528. package/transpiled/directives/dev/Throw.js.map +1 -0
  529. package/transpiled/directives/dev/index.d.ts +2 -0
  530. package/transpiled/directives/dev/index.js +6 -0
  531. package/transpiled/directives/dev/index.js.map +1 -0
  532. package/transpiled/directives/dev/types.d.ts +4 -0
  533. package/transpiled/directives/dev/types.js +3 -0
  534. package/transpiled/directives/dev/types.js.map +1 -0
  535. package/transpiled/directives/flow/Compose.d.ts +8 -0
  536. package/transpiled/directives/flow/Compose.js +74 -0
  537. package/transpiled/directives/flow/Compose.js.map +1 -0
  538. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  539. package/transpiled/directives/flow/Fetch.js +58 -0
  540. package/transpiled/directives/flow/Fetch.js.map +1 -0
  541. package/transpiled/directives/flow/Flow.d.ts +10 -0
  542. package/transpiled/directives/flow/Flow.js +33 -0
  543. package/transpiled/directives/flow/Flow.js.map +1 -0
  544. package/transpiled/directives/flow/index.d.ts +2 -0
  545. package/transpiled/directives/flow/index.js +6 -0
  546. package/transpiled/directives/flow/index.js.map +1 -0
  547. package/transpiled/directives/flow/types.d.ts +6 -0
  548. package/transpiled/directives/flow/types.js +3 -0
  549. package/transpiled/directives/flow/types.js.map +1 -0
  550. package/transpiled/directives/index.d.ts +4 -0
  551. package/transpiled/directives/index.js +15 -0
  552. package/transpiled/directives/index.js.map +1 -0
  553. package/transpiled/directives/io/Directive.d.ts +8 -0
  554. package/transpiled/directives/io/Directive.js +3 -0
  555. package/transpiled/directives/io/Directive.js.map +1 -0
  556. package/transpiled/directives/io/IO.d.ts +9 -0
  557. package/transpiled/directives/io/IO.js +33 -0
  558. package/transpiled/directives/io/IO.js.map +1 -0
  559. package/transpiled/directives/io/Input.d.ts +11 -0
  560. package/transpiled/directives/io/Input.js +63 -0
  561. package/transpiled/directives/io/Input.js.map +1 -0
  562. package/transpiled/directives/io/Message.d.ts +1 -0
  563. package/transpiled/directives/io/Message.js +3 -0
  564. package/transpiled/directives/io/Message.js.map +1 -0
  565. package/transpiled/directives/io/Output.d.ts +13 -0
  566. package/transpiled/directives/io/Output.js +76 -0
  567. package/transpiled/directives/io/Output.js.map +1 -0
  568. package/transpiled/directives/io/index.d.ts +2 -0
  569. package/transpiled/directives/io/index.js +6 -0
  570. package/transpiled/directives/io/index.js.map +1 -0
  571. package/transpiled/directives/io/schemas.d.ts +7 -0
  572. package/transpiled/directives/io/schemas.js +14 -0
  573. package/transpiled/directives/io/schemas.js.map +1 -0
  574. package/transpiled/directives/map/Authority.d.ts +6 -0
  575. package/transpiled/directives/map/Authority.js +19 -0
  576. package/transpiled/directives/map/Authority.js.map +1 -0
  577. package/transpiled/directives/map/Claims.d.ts +6 -0
  578. package/transpiled/directives/map/Claims.js +29 -0
  579. package/transpiled/directives/map/Claims.js.map +1 -0
  580. package/transpiled/directives/map/Directive.d.ts +3 -0
  581. package/transpiled/directives/map/Directive.js +3 -0
  582. package/transpiled/directives/map/Directive.js.map +1 -0
  583. package/transpiled/directives/map/Headers.d.ts +7 -0
  584. package/transpiled/directives/map/Headers.js +34 -0
  585. package/transpiled/directives/map/Headers.js.map +1 -0
  586. package/transpiled/directives/map/Language.d.ts +10 -0
  587. package/transpiled/directives/map/Language.js +38 -0
  588. package/transpiled/directives/map/Language.js.map +1 -0
  589. package/transpiled/directives/map/Languages.d.ts +4 -0
  590. package/transpiled/directives/map/Languages.js +17 -0
  591. package/transpiled/directives/map/Languages.js.map +1 -0
  592. package/transpiled/directives/map/Map.d.ts +11 -0
  593. package/transpiled/directives/map/Map.js +44 -0
  594. package/transpiled/directives/map/Map.js.map +1 -0
  595. package/transpiled/directives/map/Mapping.d.ts +8 -0
  596. package/transpiled/directives/map/Mapping.js +11 -0
  597. package/transpiled/directives/map/Mapping.js.map +1 -0
  598. package/transpiled/directives/map/Properties.d.ts +9 -0
  599. package/transpiled/directives/map/Properties.js +14 -0
  600. package/transpiled/directives/map/Properties.js.map +1 -0
  601. package/transpiled/directives/map/Segments.d.ts +6 -0
  602. package/transpiled/directives/map/Segments.js +25 -0
  603. package/transpiled/directives/map/Segments.js.map +1 -0
  604. package/transpiled/directives/map/index.d.ts +2 -0
  605. package/transpiled/directives/map/index.js +6 -0
  606. package/transpiled/directives/map/index.js.map +1 -0
  607. package/transpiled/directives/octets/Context.d.ts +8 -0
  608. package/transpiled/directives/octets/Context.js +22 -0
  609. package/transpiled/directives/octets/Context.js.map +1 -0
  610. package/transpiled/directives/octets/Delete.d.ts +20 -0
  611. package/transpiled/directives/octets/Delete.js +84 -0
  612. package/transpiled/directives/octets/Delete.js.map +1 -0
  613. package/transpiled/directives/octets/Directive.d.ts +8 -0
  614. package/transpiled/directives/octets/Directive.js +8 -0
  615. package/transpiled/directives/octets/Directive.js.map +1 -0
  616. package/transpiled/directives/octets/Get.d.ts +17 -0
  617. package/transpiled/directives/octets/Get.js +88 -0
  618. package/transpiled/directives/octets/Get.js.map +1 -0
  619. package/transpiled/directives/octets/Octets.d.ts +12 -0
  620. package/transpiled/directives/octets/Octets.js +52 -0
  621. package/transpiled/directives/octets/Octets.js.map +1 -0
  622. package/transpiled/directives/octets/Put.d.ts +29 -0
  623. package/transpiled/directives/octets/Put.js +102 -0
  624. package/transpiled/directives/octets/Put.js.map +1 -0
  625. package/transpiled/directives/octets/Workflow.d.ts +15 -0
  626. package/transpiled/directives/octets/Workflow.js +59 -0
  627. package/transpiled/directives/octets/Workflow.js.map +1 -0
  628. package/transpiled/directives/octets/bytes.d.ts +1 -0
  629. package/transpiled/directives/octets/bytes.js +21 -0
  630. package/transpiled/directives/octets/bytes.js.map +1 -0
  631. package/transpiled/directives/octets/index.d.ts +2 -0
  632. package/transpiled/directives/octets/index.js +6 -0
  633. package/transpiled/directives/octets/index.js.map +1 -0
  634. package/transpiled/directives/octets/schemas.d.ts +9 -0
  635. package/transpiled/directives/octets/schemas.js +15 -0
  636. package/transpiled/directives/octets/schemas.js.map +1 -0
  637. package/transpiled/directives/octets/types.d.ts +5 -0
  638. package/transpiled/directives/octets/types.js +3 -0
  639. package/transpiled/directives/octets/types.js.map +1 -0
  640. package/transpiled/directives/octets/workflows/Execution.d.ts +29 -0
  641. package/transpiled/directives/octets/workflows/Execution.js +89 -0
  642. package/transpiled/directives/octets/workflows/Execution.js.map +1 -0
  643. package/transpiled/directives/octets/workflows/Workflow.d.ts +12 -0
  644. package/transpiled/directives/octets/workflows/Workflow.js +26 -0
  645. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -0
  646. package/transpiled/directives/octets/workflows/index.d.ts +1 -0
  647. package/transpiled/directives/octets/workflows/index.js +6 -0
  648. package/transpiled/directives/octets/workflows/index.js.map +1 -0
  649. package/transpiled/directives/require/Directive.d.ts +4 -0
  650. package/transpiled/directives/require/Directive.js +3 -0
  651. package/transpiled/directives/require/Directive.js.map +1 -0
  652. package/transpiled/directives/require/Headers.d.ts +7 -0
  653. package/transpiled/directives/require/Headers.js +19 -0
  654. package/transpiled/directives/require/Headers.js.map +1 -0
  655. package/transpiled/directives/require/Require.d.ts +9 -0
  656. package/transpiled/directives/require/Require.js +27 -0
  657. package/transpiled/directives/require/Require.js.map +1 -0
  658. package/transpiled/directives/require/index.d.ts +2 -0
  659. package/transpiled/directives/require/index.js +6 -0
  660. package/transpiled/directives/require/index.js.map +1 -0
  661. package/transpiled/discovery.d.ts +1 -0
  662. package/transpiled/discovery.js +3 -0
  663. package/transpiled/discovery.js.map +1 -0
  664. package/transpiled/exceptions.d.ts +3 -0
  665. package/transpiled/exceptions.js +46 -0
  666. package/transpiled/exceptions.js.map +1 -0
  667. package/transpiled/index.d.ts +5 -0
  668. package/transpiled/index.js +12 -0
  669. package/transpiled/index.js.map +1 -0
  670. package/transpiled/io.d.ts +3 -0
  671. package/transpiled/io.js +3 -0
  672. package/transpiled/io.js.map +1 -0
  673. package/transpiled/manifest.d.ts +3 -0
  674. package/transpiled/manifest.js +65 -0
  675. package/transpiled/manifest.js.map +1 -0
  676. package/transpiled/root.d.ts +2 -0
  677. package/transpiled/root.js +44 -0
  678. package/transpiled/root.js.map +1 -0
  679. package/transpiled/schemas.d.ts +7 -0
  680. package/transpiled/schemas.js +14 -0
  681. package/transpiled/schemas.js.map +1 -0
  682. package/transpiled/tsconfig.tsbuildinfo +1 -0
  683. package/components/identity.basic/source/create.ts +0 -18
  684. package/components/octets.storage/operations/fetch.js +0 -46
  685. package/components/octets.storage/operations/list.js +0 -7
  686. package/components/octets.storage/operations/permute.js +0 -7
  687. package/components/octets.storage/operations/store.js +0 -11
  688. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  689. package/schemas/octets/context.cos.yaml +0 -1
  690. package/schemas/octets/list.cos.yaml +0 -1
  691. package/schemas/octets/permute.cos.yaml +0 -1
  692. package/schemas/octets/store.cos.yaml +0 -3
  693. package/source/HTTP/Server.fixtures.ts +0 -41
  694. package/source/HTTP/Server.test.ts +0 -199
  695. package/source/directives/auth/Family.ts +0 -148
  696. package/source/directives/cache/Family.ts +0 -36
  697. package/source/directives/octets/Fetch.ts +0 -85
  698. package/source/directives/octets/List.ts +0 -32
  699. package/source/directives/octets/Permute.ts +0 -37
  700. package/source/directives/octets/Store.ts +0 -158
@@ -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
+ """
@@ -4,6 +4,7 @@ Feature: Directives
4
4
  Given the annotation:
5
5
  """yaml
6
6
  /:
7
+ io:output: true
7
8
  anonymous: true
8
9
  GET:
9
10
  dev:stub:
@@ -12,6 +13,7 @@ Feature: Directives
12
13
  When the following request is received:
13
14
  """
14
15
  GET / HTTP/1.1
16
+ host: nex.toa.io
15
17
  accept: application/json
16
18
  """
17
19
  Then the following reply is sent:
@@ -26,6 +28,7 @@ Feature: Directives
26
28
  Given the annotation:
27
29
  """yaml
28
30
  /:
31
+ io:output: true
29
32
  anonymous: true
30
33
  dev:stub:
31
34
  hello: again
@@ -36,6 +39,7 @@ Feature: Directives
36
39
  When the following request is received:
37
40
  """
38
41
  GET /pots/ HTTP/1.1
42
+ host: nex.toa.io
39
43
  accept: application/yaml
40
44
  """
41
45
  Then the following reply is sent:
@@ -48,6 +52,7 @@ Feature: Directives
48
52
  When the following request is received:
49
53
  """
50
54
  GET /pots/non-existent/ HTTP/1.1
55
+ host: nex.toa.io
51
56
  accept: application/yaml
52
57
  """
53
58
  Then the following reply is sent:
@@ -9,14 +9,17 @@ 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
  /:
15
+ io:output: true
14
16
  isolated: true
15
17
  GET: enumerate
16
18
  """
17
19
  When the following request is received:
18
20
  """
19
21
  GET /pots/ HTTP/1.1
22
+ host: nex.toa.io
20
23
  """
21
24
  Then the following reply is sent:
22
25
  """
@@ -25,13 +28,54 @@ Feature: Dynamic tree updates
25
28
  Then the `pots` is stopped
26
29
  Then the `pots` is running with the following manifest:
27
30
  """yaml
31
+ version: 2
28
32
  exposition:
29
33
  /:
34
+ io:output: true
30
35
  GET: enumerate
31
36
  """
32
37
  When the following request is received:
33
38
  """
34
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
35
79
  accept: application/yaml
36
80
  """
37
81
  Then the following reply is sent:
@@ -42,25 +86,31 @@ Feature: Dynamic tree updates
42
86
  Scenario: Updating routes with conflict
43
87
  And the `pots` is running with the following manifest:
44
88
  """yaml
89
+ version: 1.0.0
45
90
  exposition:
46
91
  /:id:
92
+ io:output: true
47
93
  GET: observe
48
94
  """
49
95
  Then the `pots` is stopped
50
96
  Then the `pots` is running with the following manifest:
51
97
  """yaml
98
+ version: 1.1.0
52
99
  exposition:
53
- /:id:
54
- GET: observe
55
- /big:
56
- GET:
57
- endpoint: enumerate
58
- query:
59
- criteria: volume>200
100
+ /:
101
+ io:output: true
102
+ /:id:
103
+ GET: observe
104
+ /big:
105
+ GET:
106
+ endpoint: enumerate
107
+ query:
108
+ criteria: volume>200
60
109
  """
61
110
  When the following request is received:
62
111
  """
63
112
  GET /pots/big/ HTTP/1.1
113
+ host: nex.toa.io
64
114
  accept: application/yaml
65
115
  """
66
116
  Then the following reply is sent:
@@ -71,8 +121,10 @@ Feature: Dynamic tree updates
71
121
  Scenario: Updating method mapping
72
122
  Given the `pots` is running with the following manifest:
73
123
  """yaml
124
+ version: a
74
125
  exposition:
75
126
  /big:
127
+ io:output: true
76
128
  GET:
77
129
  endpoint: enumerate
78
130
  query:
@@ -81,8 +133,10 @@ Feature: Dynamic tree updates
81
133
  Then the `pots` is stopped
82
134
  Then the `pots` is running with the following manifest:
83
135
  """yaml
136
+ version: b
84
137
  exposition:
85
138
  /big:
139
+ io:output: true
86
140
  GET:
87
141
  endpoint: enumerate
88
142
  query:
@@ -91,6 +145,7 @@ Feature: Dynamic tree updates
91
145
  When the following request is received:
92
146
  """
93
147
  GET /pots/big/?criteria=temperature>50 HTTP/1.1
148
+ host: nex.toa.io
94
149
  accept: application/yaml
95
150
  """
96
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,10 +47,11 @@ 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:
49
- """http
54
+ """
50
55
  405 Method Not Allowed
51
56
  """
52
57
 
@@ -54,10 +59,11 @@ 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:
60
- """http
66
+ """
61
67
  501 Not Implemented
62
68
  """
63
69
 
@@ -66,11 +72,12 @@ Feature: Errors
66
72
  """yaml
67
73
  exposition:
68
74
  /:
69
- POST: transit
75
+ POST: create
70
76
  """
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:
@@ -197,15 +209,29 @@ Feature: Errors
197
209
  """yaml
198
210
  /:
199
211
  GET:
212
+ io:output: true
200
213
  anonymous: true
201
214
  dev:stub: hello
202
215
  """
203
216
  When the following request is received:
204
217
  """
205
218
  GET / HTTP/1.1
219
+ host: nex.toa.io
206
220
  accept: image/jpeg
207
221
  """
208
222
  Then the following reply is sent:
209
223
  """
210
224
  406 Not Acceptable
211
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
+ """
@@ -0,0 +1,205 @@
1
+ Feature: Optimistic concurrency control
2
+
3
+ Scenario: Using `etag`
4
+ Given the `pots` is running with the following manifest:
5
+ """yaml
6
+ exposition:
7
+ /:
8
+ io:output: true
9
+ POST: create
10
+ /:id:
11
+ GET: observe
12
+ PUT: transit
13
+ """
14
+ When the following request is received:
15
+ """
16
+ POST /pots/ HTTP/1.1
17
+ host: nex.toa.io
18
+ accept: application/yaml
19
+ content-type: application/yaml
20
+
21
+ title: Hello
22
+ volume: 1.5
23
+ """
24
+ Then the following reply is sent:
25
+ """
26
+ 201 Created
27
+ etag: "1"
28
+
29
+ id: ${{ id }}
30
+ """
31
+ When the following request is received:
32
+ """
33
+ GET /pots/${{ id }}/ HTTP/1.1
34
+ host: nex.toa.io
35
+ """
36
+ Then the following reply is sent:
37
+ """
38
+ 200 OK
39
+ etag: "1"
40
+ """
41
+ When the following request is received:
42
+ """
43
+ GET /pots/${{ id }}/ HTTP/1.1
44
+ host: nex.toa.io
45
+ if-none-match: "1"
46
+ """
47
+ Then the following reply is sent:
48
+ """
49
+ 304 Not Modified
50
+ etag: "1"
51
+ """
52
+ When the following request is received:
53
+ """
54
+ PUT /pots/${{ id }}/ HTTP/1.1
55
+ host: nex.toa.io
56
+ content-type: application/yaml
57
+ if-match: "38"
58
+
59
+ volume: 2.5
60
+ """
61
+ Then the following reply is sent:
62
+ """
63
+ 412 Precondition Failed
64
+ """
65
+ When the following request is received:
66
+ """
67
+ PUT /pots/${{ id }}/ HTTP/1.1
68
+ host: nex.toa.io
69
+ content-type: application/yaml
70
+ if-match: "1"
71
+
72
+ volume: 2.5
73
+ """
74
+ Then the following reply is sent:
75
+ """
76
+ 200 OK
77
+ etag: "2"
78
+ """
79
+
80
+ Scenario: Weak `etag`
81
+ Given the `pots` is running with the following manifest:
82
+ """yaml
83
+ exposition:
84
+ /:
85
+ io:output: true
86
+ POST: create
87
+ /:id:
88
+ GET: observe
89
+ PUT: transit
90
+ """
91
+ When the following request is received:
92
+ """
93
+ POST /pots/ HTTP/1.1
94
+ host: nex.toa.io
95
+ accept: application/yaml
96
+ content-type: application/yaml
97
+
98
+ title: Hello
99
+ volume: 1.5
100
+ """
101
+ Then the following reply is sent:
102
+ """
103
+ 201 Created
104
+ etag: "1"
105
+
106
+ id: ${{ id }}
107
+ """
108
+ When the following request is received:
109
+ """
110
+ GET /pots/${{ id }}/ HTTP/1.1
111
+ host: nex.toa.io
112
+ """
113
+ Then the following reply is sent:
114
+ """
115
+ 200 OK
116
+ etag: "1"
117
+ """
118
+ When the following request is received:
119
+ """
120
+ GET /pots/${{ id }}/ HTTP/1.1
121
+ host: nex.toa.io
122
+ if-none-match: W/"1"
123
+ """
124
+ Then the following reply is sent:
125
+ """
126
+ 304 Not Modified
127
+ etag: W/"1"
128
+ """
129
+ When the following request is received:
130
+ """
131
+ PUT /pots/${{ id }}/ HTTP/1.1
132
+ host: nex.toa.io
133
+ content-type: application/yaml
134
+ if-match: W/"38"
135
+
136
+ volume: 2.5
137
+ """
138
+ Then the following reply is sent:
139
+ """
140
+ 412 Precondition Failed
141
+ """
142
+ When the following request is received:
143
+ """
144
+ PUT /pots/${{ id }}/ HTTP/1.1
145
+ host: nex.toa.io
146
+ content-type: application/yaml
147
+ if-match: W/"1"
148
+
149
+ volume: 2.5
150
+ """
151
+ Then the following reply is sent:
152
+ """
153
+ 200 OK
154
+ etag: "2"
155
+ """
156
+
157
+ Scenario: Unexpected `if-match` format
158
+ Given the `pots` is running with the following manifest:
159
+ """yaml
160
+ exposition:
161
+ /:
162
+ /:id:
163
+ PUT: transit
164
+ """
165
+ When the following request is received:
166
+ """
167
+ PUT /pots/fa177da8393544139915795816ad6b97/ HTTP/1.1
168
+ host: nex.toa.io
169
+ accept: text/plain
170
+ content-type: application/yaml
171
+ if-match: "oopsie"
172
+
173
+ volume: 2.5
174
+ """
175
+ Then the following reply is sent:
176
+ """
177
+ 400 Bad Request
178
+
179
+ Invalid ETag
180
+ """
181
+
182
+ Scenario: Etag with non-queryable operation
183
+ Given the `echo` is running with the following manifest:
184
+ """yaml
185
+ exposition:
186
+ /:foo/:id:
187
+ GET:
188
+ io:output: true
189
+ map:headers:
190
+ name: if-match
191
+ endpoint: affect
192
+ """
193
+ When the following request is received:
194
+ """
195
+ GET /echo/foo/Bob/ HTTP/1.1
196
+ host: nex.toa.io
197
+ accept: text/plain
198
+ if-match: "1"
199
+ """
200
+ Then the following reply is sent:
201
+ """
202
+ 200 OK
203
+
204
+ Hello "1"
205
+ """
@@ -0,0 +1,96 @@
1
+ Feature: Request flow
2
+
3
+ Scenario: Fetching URL
4
+ Given the `octets.tester` is running
5
+ And the annotation:
6
+ """yaml
7
+ /:
8
+ octets:context: octets
9
+ /:type:
10
+ GET:
11
+ anonymous: true
12
+ io:output: true
13
+ flow:fetch: octets.tester.redirect
14
+ """
15
+ When the following request is received:
16
+ """
17
+ GET /rfc HTTP/1.1
18
+ host: nex.toa.io
19
+ """
20
+ Then the following reply is sent:
21
+ """
22
+ 200 OK
23
+ content-type: text/plain
24
+
25
+ Faster Than Light Speed Protocol (FLIP)
26
+ """
27
+ When the following request is received:
28
+ """
29
+ GET /img HTTP/1.1
30
+ host: nex.toa.io
31
+ """
32
+ Then the following reply is sent:
33
+ """
34
+ 200 OK
35
+ content-type: image/svg+xml
36
+ """
37
+ When the following request is received:
38
+ """
39
+ GET /err HTTP/1.1
40
+ host: nex.toa.io
41
+ """
42
+ Then the following reply is sent:
43
+ """
44
+ 404 Not Found
45
+ """
46
+
47
+ Scenario: Composing a stream
48
+ Given the `sequences` is running with the following manifest:
49
+ """yaml
50
+ exposition:
51
+ /:
52
+ flow:compose:
53
+ a: $[0]
54
+ b: $[1]
55
+ c: $[2]
56
+ sum: $[0] + $[1] + $[2]
57
+ str: \hello
58
+ num: 1
59
+ arr:
60
+ - $[0]
61
+ - $[1]
62
+ - $[2]
63
+ - $[0] + $[1] + $[2]
64
+ copy: $
65
+ POST: numbers
66
+ """
67
+ When the following request is received:
68
+ """
69
+ POST /sequences/ HTTP/1.1
70
+ host: nex.toa.io
71
+ content-type: text/plain
72
+ accept: application/yaml
73
+
74
+ 3
75
+ """
76
+ Then the following reply is sent:
77
+ """
78
+ 201 Created
79
+ content-type: application/yaml
80
+
81
+ a: 0
82
+ b: 1
83
+ c: 2
84
+ sum: 3
85
+ str: hello
86
+ num: 1
87
+ arr:
88
+ - 0
89
+ - 1
90
+ - 2
91
+ - 3
92
+ copy:
93
+ - 0
94
+ - 1
95
+ - 2
96
+ """