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

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 (449) hide show
  1. package/components/context.toa.yaml +12 -0
  2. package/components/identity.bans/manifest.toa.yaml +1 -1
  3. package/components/identity.basic/manifest.toa.yaml +2 -2
  4. package/components/identity.basic/operations/authenticate.d.ts +9 -0
  5. package/components/identity.basic/operations/authenticate.js +24 -0
  6. package/components/identity.basic/operations/authenticate.js.map +1 -0
  7. package/components/identity.basic/operations/create.d.ts +10 -0
  8. package/components/identity.basic/operations/create.js +10 -0
  9. package/components/identity.basic/operations/create.js.map +1 -0
  10. package/components/identity.basic/operations/transit.d.ts +12 -0
  11. package/components/identity.basic/operations/transit.js +53 -0
  12. package/components/identity.basic/operations/transit.js.map +1 -0
  13. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -0
  14. package/components/identity.basic/operations/types.d.ts +38 -0
  15. package/components/identity.basic/operations/types.js +3 -0
  16. package/components/identity.basic/operations/types.js.map +1 -0
  17. package/components/identity.basic/source/authenticate.ts +0 -1
  18. package/components/identity.federation/events/principal.js +22 -0
  19. package/components/identity.federation/manifest.toa.yaml +100 -0
  20. package/components/identity.federation/operations/authenticate.d.ts +3 -0
  21. package/components/identity.federation/operations/authenticate.js +20 -0
  22. package/components/identity.federation/operations/authenticate.js.map +1 -0
  23. package/components/identity.federation/operations/create.d.ts +10 -0
  24. package/components/identity.federation/operations/create.js +15 -0
  25. package/components/identity.federation/operations/create.js.map +1 -0
  26. package/components/identity.federation/operations/lib/assertions-as-values.d.ts +4 -0
  27. package/components/identity.federation/operations/lib/assertions-as-values.js +45 -0
  28. package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -0
  29. package/components/identity.federation/operations/lib/jwt.d.ts +20 -0
  30. package/components/identity.federation/operations/lib/jwt.js +136 -0
  31. package/components/identity.federation/operations/lib/jwt.js.map +1 -0
  32. package/components/identity.federation/operations/schemas.d.ts +59 -0
  33. package/components/identity.federation/operations/schemas.js +9 -0
  34. package/components/identity.federation/operations/schemas.js.map +1 -0
  35. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -0
  36. package/components/identity.federation/operations/types.d.ts +51 -0
  37. package/components/identity.federation/operations/types.js +3 -0
  38. package/components/identity.federation/operations/types.js.map +1 -0
  39. package/components/identity.federation/source/authenticate.ts +28 -0
  40. package/components/identity.federation/source/create.ts +26 -0
  41. package/components/identity.federation/source/lib/assertions-as-values.ts +19 -0
  42. package/components/identity.federation/source/lib/jwt.test.ts +56 -0
  43. package/components/identity.federation/source/lib/jwt.ts +171 -0
  44. package/components/identity.federation/source/schemas.ts +61 -0
  45. package/components/identity.federation/source/types.ts +56 -0
  46. package/components/identity.federation/tsconfig.json +9 -0
  47. package/components/identity.roles/operations/list.d.ts +5 -0
  48. package/components/identity.roles/operations/list.js +8 -0
  49. package/components/identity.roles/operations/list.js.map +1 -0
  50. package/components/identity.roles/operations/principal.d.ts +15 -0
  51. package/components/identity.roles/operations/principal.js +8 -0
  52. package/components/identity.roles/operations/principal.js.map +1 -0
  53. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -0
  54. package/components/identity.tokens/manifest.toa.yaml +1 -1
  55. package/components/identity.tokens/operations/authenticate.d.ts +9 -0
  56. package/components/identity.tokens/operations/authenticate.js +32 -0
  57. package/components/identity.tokens/operations/authenticate.js.map +1 -0
  58. package/components/identity.tokens/operations/decrypt.d.ts +3 -0
  59. package/components/identity.tokens/operations/decrypt.js +32 -0
  60. package/components/identity.tokens/operations/decrypt.js.map +1 -0
  61. package/components/identity.tokens/operations/encrypt.d.ts +8 -0
  62. package/components/identity.tokens/operations/encrypt.js +22 -0
  63. package/components/identity.tokens/operations/encrypt.js.map +1 -0
  64. package/components/identity.tokens/operations/revoke.d.ts +2 -0
  65. package/components/identity.tokens/operations/revoke.js +8 -0
  66. package/components/identity.tokens/operations/revoke.js.map +1 -0
  67. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -0
  68. package/components/identity.tokens/operations/types.d.ts +40 -0
  69. package/components/identity.tokens/operations/types.js +3 -0
  70. package/components/identity.tokens/operations/types.js.map +1 -0
  71. package/components/octets.storage/manifest.toa.yaml +1 -0
  72. package/components/octets.storage/operations/store.js +2 -2
  73. package/cucumber.js +0 -1
  74. package/documentation/components.md +32 -2
  75. package/documentation/identity.md +14 -7
  76. package/documentation/octets.md +105 -40
  77. package/documentation/protocol.md +21 -1
  78. package/documentation/query.md +1 -1
  79. package/documentation/vary.md +69 -0
  80. package/features/cors.feature +72 -0
  81. package/features/identity.feature +19 -3
  82. package/features/identity.federation.feature +155 -0
  83. package/features/octets.entries.feature +121 -0
  84. package/features/octets.feature +2 -28
  85. package/features/octets.meta.feature +65 -0
  86. package/features/octets.workflows.feature +176 -4
  87. package/features/response.feature +65 -0
  88. package/features/routes.feature +37 -0
  89. package/features/steps/Captures.ts +6 -0
  90. package/features/steps/Components.ts +18 -6
  91. package/features/steps/Gateway.ts +1 -2
  92. package/features/steps/HTTP.ts +40 -87
  93. package/features/steps/IdP.ts +149 -0
  94. package/features/steps/Parameters.ts +8 -2
  95. package/features/steps/Workspace.ts +5 -7
  96. package/features/steps/components/echo/operations/error.js +11 -0
  97. package/features/steps/components/octets.tester/manifest.toa.yaml +3 -0
  98. package/features/steps/components/octets.tester/operations/concat.js +7 -0
  99. package/features/steps/components/octets.tester/operations/echo.js +7 -0
  100. package/features/steps/components/users/manifest.toa.yaml +3 -0
  101. package/features/steps/components/users.properties/manifest.toa.yaml +13 -0
  102. package/features/steps/tsconfig.json +1 -1
  103. package/features/vary.feature +150 -0
  104. package/package.json +17 -18
  105. package/schemas/octets/delete.cos.yaml +2 -1
  106. package/schemas/octets/list.cos.yaml +2 -1
  107. package/schemas/octets/workflow.cos.yaml +12 -0
  108. package/source/Directive.test.ts +8 -2
  109. package/source/Directive.ts +19 -16
  110. package/source/Factory.ts +8 -7
  111. package/source/Gateway.ts +22 -8
  112. package/source/HTTP/Server.fixtures.ts +0 -1
  113. package/source/HTTP/Server.test.ts +61 -134
  114. package/source/HTTP/Server.ts +91 -47
  115. package/source/HTTP/formats/msgpack.ts +9 -6
  116. package/source/HTTP/formats/text.ts +1 -1
  117. package/source/HTTP/formats/yaml.ts +1 -1
  118. package/source/HTTP/messages.ts +15 -3
  119. package/source/Interception.ts +24 -0
  120. package/source/RTD/Directives.ts +2 -2
  121. package/source/RTD/Tree.ts +3 -0
  122. package/source/RTD/syntax/parse.ts +6 -6
  123. package/source/RTD/syntax/types.ts +1 -1
  124. package/source/deployment.ts +1 -2
  125. package/source/directives/auth/{Family.ts → Authorization.ts} +29 -33
  126. package/source/directives/auth/Incept.ts +1 -1
  127. package/source/directives/auth/Rule.ts +2 -2
  128. package/source/directives/auth/index.ts +2 -2
  129. package/source/directives/auth/schemes.ts +2 -1
  130. package/source/directives/auth/types.ts +9 -6
  131. package/source/directives/cache/{Family.ts → Cache.ts} +4 -5
  132. package/source/directives/cache/index.ts +2 -2
  133. package/source/directives/cache/types.ts +1 -1
  134. package/source/directives/cors/CORS.ts +54 -0
  135. package/source/directives/cors/index.ts +3 -0
  136. package/source/directives/dev/{Family.ts → Development.ts} +3 -4
  137. package/source/directives/dev/Stub.ts +4 -4
  138. package/source/directives/dev/Throw.ts +4 -4
  139. package/source/directives/dev/index.ts +2 -2
  140. package/source/directives/dev/types.ts +1 -1
  141. package/source/directives/index.ts +10 -6
  142. package/source/directives/octets/Context.ts +1 -1
  143. package/source/directives/octets/Delete.ts +50 -9
  144. package/source/directives/octets/Fetch.ts +18 -19
  145. package/source/directives/octets/List.ts +37 -7
  146. package/source/directives/octets/{Family.ts → Octets.ts} +10 -7
  147. package/source/directives/octets/Permute.ts +3 -3
  148. package/source/directives/octets/Store.ts +57 -99
  149. package/source/directives/octets/Workflow.ts +41 -0
  150. package/source/directives/octets/index.ts +2 -2
  151. package/source/directives/octets/schemas.test.ts +21 -0
  152. package/source/directives/octets/schemas.ts +13 -6
  153. package/source/directives/octets/types.ts +4 -3
  154. package/source/directives/octets/workflows/Execution.ts +76 -0
  155. package/source/directives/octets/workflows/Workflow.ts +37 -0
  156. package/source/directives/octets/workflows/index.ts +1 -0
  157. package/source/directives/vary/Directive.ts +6 -0
  158. package/source/directives/vary/Embed.ts +62 -0
  159. package/source/directives/vary/Properties.ts +17 -0
  160. package/source/directives/vary/Vary.ts +48 -0
  161. package/source/directives/vary/embeddings/Embedding.ts +6 -0
  162. package/source/directives/vary/embeddings/Header.ts +30 -0
  163. package/source/directives/vary/embeddings/Language.ts +31 -0
  164. package/source/directives/vary/embeddings/index.ts +11 -0
  165. package/source/directives/vary/index.ts +3 -0
  166. package/source/io.ts +4 -0
  167. package/source/manifest.test.ts +6 -14
  168. package/source/manifest.ts +9 -6
  169. package/source/schemas.ts +7 -3
  170. package/transpiled/Annotation.d.ts +7 -0
  171. package/transpiled/Annotation.js +3 -0
  172. package/transpiled/Annotation.js.map +1 -0
  173. package/transpiled/Branch.d.ts +7 -0
  174. package/transpiled/Branch.js +3 -0
  175. package/transpiled/Branch.js.map +1 -0
  176. package/transpiled/Composition.d.ts +14 -0
  177. package/transpiled/Composition.js +43 -0
  178. package/transpiled/Composition.js.map +1 -0
  179. package/transpiled/Context.d.ts +5 -0
  180. package/transpiled/Context.js +3 -0
  181. package/transpiled/Context.js.map +1 -0
  182. package/transpiled/Directive.d.ts +31 -0
  183. package/transpiled/Directive.js +78 -0
  184. package/transpiled/Directive.js.map +1 -0
  185. package/transpiled/Endpoint.d.ts +20 -0
  186. package/transpiled/Endpoint.js +45 -0
  187. package/transpiled/Endpoint.js.map +1 -0
  188. package/transpiled/Factory.d.ts +9 -0
  189. package/transpiled/Factory.js +67 -0
  190. package/transpiled/Factory.js.map +1 -0
  191. package/transpiled/Gateway.d.ts +22 -0
  192. package/transpiled/Gateway.js +102 -0
  193. package/transpiled/Gateway.js.map +1 -0
  194. package/transpiled/HTTP/Server.d.ts +24 -0
  195. package/transpiled/HTTP/Server.fixtures.d.ts +10 -0
  196. package/transpiled/HTTP/Server.fixtures.js +31 -0
  197. package/transpiled/HTTP/Server.fixtures.js.map +1 -0
  198. package/transpiled/HTTP/Server.js +149 -0
  199. package/transpiled/HTTP/Server.js.map +1 -0
  200. package/transpiled/HTTP/exceptions.d.ts +34 -0
  201. package/transpiled/HTTP/exceptions.js +71 -0
  202. package/transpiled/HTTP/exceptions.js.map +1 -0
  203. package/transpiled/HTTP/formats/index.d.ts +10 -0
  204. package/transpiled/HTTP/formats/index.js +38 -0
  205. package/transpiled/HTTP/formats/index.js.map +1 -0
  206. package/transpiled/HTTP/formats/json.d.ts +6 -0
  207. package/transpiled/HTTP/formats/json.js +17 -0
  208. package/transpiled/HTTP/formats/json.js.map +1 -0
  209. package/transpiled/HTTP/formats/msgpack.d.ts +6 -0
  210. package/transpiled/HTTP/formats/msgpack.js +17 -0
  211. package/transpiled/HTTP/formats/msgpack.js.map +1 -0
  212. package/transpiled/HTTP/formats/text.d.ts +8 -0
  213. package/transpiled/HTTP/formats/text.js +15 -0
  214. package/transpiled/HTTP/formats/text.js.map +1 -0
  215. package/transpiled/HTTP/formats/yaml.d.ts +6 -0
  216. package/transpiled/HTTP/formats/yaml.js +41 -0
  217. package/transpiled/HTTP/formats/yaml.js.map +1 -0
  218. package/transpiled/HTTP/index.d.ts +3 -0
  219. package/transpiled/HTTP/index.js +20 -0
  220. package/transpiled/HTTP/index.js.map +1 -0
  221. package/transpiled/HTTP/messages.d.ts +33 -0
  222. package/transpiled/HTTP/messages.js +75 -0
  223. package/transpiled/HTTP/messages.js.map +1 -0
  224. package/transpiled/Interception.d.ts +9 -0
  225. package/transpiled/Interception.js +19 -0
  226. package/transpiled/Interception.js.map +1 -0
  227. package/transpiled/Mapping.d.ts +8 -0
  228. package/transpiled/Mapping.js +38 -0
  229. package/transpiled/Mapping.js.map +1 -0
  230. package/transpiled/Query.d.ts +13 -0
  231. package/transpiled/Query.js +107 -0
  232. package/transpiled/Query.js.map +1 -0
  233. package/transpiled/RTD/Context.d.ts +11 -0
  234. package/transpiled/RTD/Context.js +3 -0
  235. package/transpiled/RTD/Context.js.map +1 -0
  236. package/transpiled/RTD/Directives.d.ts +7 -0
  237. package/transpiled/RTD/Directives.js +3 -0
  238. package/transpiled/RTD/Directives.js.map +1 -0
  239. package/transpiled/RTD/Endpoint.d.ts +9 -0
  240. package/transpiled/RTD/Endpoint.js +3 -0
  241. package/transpiled/RTD/Endpoint.js.map +1 -0
  242. package/transpiled/RTD/Match.d.ts +11 -0
  243. package/transpiled/RTD/Match.js +3 -0
  244. package/transpiled/RTD/Match.js.map +1 -0
  245. package/transpiled/RTD/Method.d.ts +9 -0
  246. package/transpiled/RTD/Method.js +16 -0
  247. package/transpiled/RTD/Method.js.map +1 -0
  248. package/transpiled/RTD/Node.d.ts +21 -0
  249. package/transpiled/RTD/Node.js +61 -0
  250. package/transpiled/RTD/Node.js.map +1 -0
  251. package/transpiled/RTD/Route.d.ts +14 -0
  252. package/transpiled/RTD/Route.js +49 -0
  253. package/transpiled/RTD/Route.js.map +1 -0
  254. package/transpiled/RTD/Tree.d.ts +14 -0
  255. package/transpiled/RTD/Tree.js +42 -0
  256. package/transpiled/RTD/Tree.js.map +1 -0
  257. package/transpiled/RTD/factory.d.ts +6 -0
  258. package/transpiled/RTD/factory.js +36 -0
  259. package/transpiled/RTD/factory.js.map +1 -0
  260. package/transpiled/RTD/index.d.ts +8 -0
  261. package/transpiled/RTD/index.js +38 -0
  262. package/transpiled/RTD/index.js.map +1 -0
  263. package/transpiled/RTD/segment.d.ts +8 -0
  264. package/transpiled/RTD/segment.js +25 -0
  265. package/transpiled/RTD/segment.js.map +1 -0
  266. package/transpiled/RTD/syntax/index.d.ts +2 -0
  267. package/transpiled/RTD/syntax/index.js +19 -0
  268. package/transpiled/RTD/syntax/index.js.map +1 -0
  269. package/transpiled/RTD/syntax/parse.d.ts +4 -0
  270. package/transpiled/RTD/syntax/parse.js +128 -0
  271. package/transpiled/RTD/syntax/parse.js.map +1 -0
  272. package/transpiled/RTD/syntax/types.d.ts +41 -0
  273. package/transpiled/RTD/syntax/types.js +5 -0
  274. package/transpiled/RTD/syntax/types.js.map +1 -0
  275. package/transpiled/Remotes.d.ts +9 -0
  276. package/transpiled/Remotes.js +25 -0
  277. package/transpiled/Remotes.js.map +1 -0
  278. package/transpiled/Tenant.d.ts +13 -0
  279. package/transpiled/Tenant.js +34 -0
  280. package/transpiled/Tenant.js.map +1 -0
  281. package/transpiled/deployment.d.ts +3 -0
  282. package/transpiled/deployment.js +66 -0
  283. package/transpiled/deployment.js.map +1 -0
  284. package/transpiled/directives/auth/Anonymous.d.ts +6 -0
  285. package/transpiled/directives/auth/Anonymous.js +17 -0
  286. package/transpiled/directives/auth/Anonymous.js.map +1 -0
  287. package/transpiled/directives/auth/Authorization.d.ts +20 -0
  288. package/transpiled/directives/auth/Authorization.js +125 -0
  289. package/transpiled/directives/auth/Authorization.js.map +1 -0
  290. package/transpiled/directives/auth/Echo.d.ts +6 -0
  291. package/transpiled/directives/auth/Echo.js +13 -0
  292. package/transpiled/directives/auth/Echo.js.map +1 -0
  293. package/transpiled/directives/auth/Id.d.ts +7 -0
  294. package/transpiled/directives/auth/Id.js +17 -0
  295. package/transpiled/directives/auth/Id.js.map +1 -0
  296. package/transpiled/directives/auth/Incept.d.ts +10 -0
  297. package/transpiled/directives/auth/Incept.js +58 -0
  298. package/transpiled/directives/auth/Incept.js.map +1 -0
  299. package/transpiled/directives/auth/Role.d.ts +11 -0
  300. package/transpiled/directives/auth/Role.js +44 -0
  301. package/transpiled/directives/auth/Role.js.map +1 -0
  302. package/transpiled/directives/auth/Rule.d.ts +9 -0
  303. package/transpiled/directives/auth/Rule.js +22 -0
  304. package/transpiled/directives/auth/Rule.js.map +1 -0
  305. package/transpiled/directives/auth/Scheme.d.ts +7 -0
  306. package/transpiled/directives/auth/Scheme.js +47 -0
  307. package/transpiled/directives/auth/Scheme.js.map +1 -0
  308. package/transpiled/directives/auth/index.d.ts +2 -0
  309. package/transpiled/directives/auth/index.js +6 -0
  310. package/transpiled/directives/auth/index.js.map +1 -0
  311. package/transpiled/directives/auth/schemes.d.ts +3 -0
  312. package/transpiled/directives/auth/schemes.js +10 -0
  313. package/transpiled/directives/auth/schemes.js.map +1 -0
  314. package/transpiled/directives/auth/split.d.ts +2 -0
  315. package/transpiled/directives/auth/split.js +38 -0
  316. package/transpiled/directives/auth/split.js.map +1 -0
  317. package/transpiled/directives/auth/types.d.ts +31 -0
  318. package/transpiled/directives/auth/types.js +3 -0
  319. package/transpiled/directives/auth/types.js.map +1 -0
  320. package/transpiled/directives/cache/Cache.d.ts +11 -0
  321. package/transpiled/directives/cache/Cache.js +28 -0
  322. package/transpiled/directives/cache/Cache.js.map +1 -0
  323. package/transpiled/directives/cache/Control.d.ts +9 -0
  324. package/transpiled/directives/cache/Control.js +42 -0
  325. package/transpiled/directives/cache/Control.js.map +1 -0
  326. package/transpiled/directives/cache/Exact.d.ts +4 -0
  327. package/transpiled/directives/cache/Exact.js +11 -0
  328. package/transpiled/directives/cache/Exact.js.map +1 -0
  329. package/transpiled/directives/cache/index.d.ts +2 -0
  330. package/transpiled/directives/cache/index.js +6 -0
  331. package/transpiled/directives/cache/index.js.map +1 -0
  332. package/transpiled/directives/cache/types.d.ts +7 -0
  333. package/transpiled/directives/cache/types.js +3 -0
  334. package/transpiled/directives/cache/types.js.map +1 -0
  335. package/transpiled/directives/cors/CORS.d.ts +11 -0
  336. package/transpiled/directives/cors/CORS.js +44 -0
  337. package/transpiled/directives/cors/CORS.js.map +1 -0
  338. package/transpiled/directives/cors/index.d.ts +2 -0
  339. package/transpiled/directives/cors/index.js +6 -0
  340. package/transpiled/directives/cors/index.js.map +1 -0
  341. package/transpiled/directives/dev/Development.d.ts +9 -0
  342. package/transpiled/directives/dev/Development.js +29 -0
  343. package/transpiled/directives/dev/Development.js.map +1 -0
  344. package/transpiled/directives/dev/Stub.d.ts +7 -0
  345. package/transpiled/directives/dev/Stub.js +14 -0
  346. package/transpiled/directives/dev/Stub.js.map +1 -0
  347. package/transpiled/directives/dev/Throw.d.ts +7 -0
  348. package/transpiled/directives/dev/Throw.js +14 -0
  349. package/transpiled/directives/dev/Throw.js.map +1 -0
  350. package/transpiled/directives/dev/index.d.ts +2 -0
  351. package/transpiled/directives/dev/index.js +6 -0
  352. package/transpiled/directives/dev/index.js.map +1 -0
  353. package/transpiled/directives/dev/types.d.ts +4 -0
  354. package/transpiled/directives/dev/types.js +3 -0
  355. package/transpiled/directives/dev/types.js.map +1 -0
  356. package/transpiled/directives/index.d.ts +4 -0
  357. package/transpiled/directives/index.js +12 -0
  358. package/transpiled/directives/index.js.map +1 -0
  359. package/transpiled/directives/octets/Context.d.ts +8 -0
  360. package/transpiled/directives/octets/Context.js +40 -0
  361. package/transpiled/directives/octets/Context.js.map +1 -0
  362. package/transpiled/directives/octets/Delete.d.ts +19 -0
  363. package/transpiled/directives/octets/Delete.js +72 -0
  364. package/transpiled/directives/octets/Delete.js.map +1 -0
  365. package/transpiled/directives/octets/Fetch.d.ts +17 -0
  366. package/transpiled/directives/octets/Fetch.js +76 -0
  367. package/transpiled/directives/octets/Fetch.js.map +1 -0
  368. package/transpiled/directives/octets/List.d.ts +15 -0
  369. package/transpiled/directives/octets/List.js +65 -0
  370. package/transpiled/directives/octets/List.js.map +1 -0
  371. package/transpiled/directives/octets/Octets.d.ts +12 -0
  372. package/transpiled/directives/octets/Octets.js +53 -0
  373. package/transpiled/directives/octets/Octets.js.map +1 -0
  374. package/transpiled/directives/octets/Permute.d.ts +10 -0
  375. package/transpiled/directives/octets/Permute.js +51 -0
  376. package/transpiled/directives/octets/Permute.js.map +1 -0
  377. package/transpiled/directives/octets/Store.d.ts +23 -0
  378. package/transpiled/directives/octets/Store.js +88 -0
  379. package/transpiled/directives/octets/Store.js.map +1 -0
  380. package/transpiled/directives/octets/Workflow.d.ts +14 -0
  381. package/transpiled/directives/octets/Workflow.js +52 -0
  382. package/transpiled/directives/octets/Workflow.js.map +1 -0
  383. package/transpiled/directives/octets/index.d.ts +2 -0
  384. package/transpiled/directives/octets/index.js +6 -0
  385. package/transpiled/directives/octets/index.js.map +1 -0
  386. package/transpiled/directives/octets/schemas.d.ts +13 -0
  387. package/transpiled/directives/octets/schemas.js +18 -0
  388. package/transpiled/directives/octets/schemas.js.map +1 -0
  389. package/transpiled/directives/octets/types.d.ts +10 -0
  390. package/transpiled/directives/octets/types.js +3 -0
  391. package/transpiled/directives/octets/types.js.map +1 -0
  392. package/transpiled/directives/octets/workflows/Execution.d.ts +25 -0
  393. package/transpiled/directives/octets/workflows/Execution.js +54 -0
  394. package/transpiled/directives/octets/workflows/Execution.js.map +1 -0
  395. package/transpiled/directives/octets/workflows/Workflow.d.ts +12 -0
  396. package/transpiled/directives/octets/workflows/Workflow.js +25 -0
  397. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -0
  398. package/transpiled/directives/octets/workflows/index.d.ts +1 -0
  399. package/transpiled/directives/octets/workflows/index.js +6 -0
  400. package/transpiled/directives/octets/workflows/index.js.map +1 -0
  401. package/transpiled/directives/vary/Directive.d.ts +5 -0
  402. package/transpiled/directives/vary/Directive.js +3 -0
  403. package/transpiled/directives/vary/Directive.js.map +1 -0
  404. package/transpiled/directives/vary/Embed.d.ts +10 -0
  405. package/transpiled/directives/vary/Embed.js +49 -0
  406. package/transpiled/directives/vary/Embed.js.map +1 -0
  407. package/transpiled/directives/vary/Properties.d.ts +9 -0
  408. package/transpiled/directives/vary/Properties.js +16 -0
  409. package/transpiled/directives/vary/Properties.js.map +1 -0
  410. package/transpiled/directives/vary/Vary.d.ts +10 -0
  411. package/transpiled/directives/vary/Vary.js +36 -0
  412. package/transpiled/directives/vary/Vary.js.map +1 -0
  413. package/transpiled/directives/vary/embeddings/Embedding.d.ts +5 -0
  414. package/transpiled/directives/vary/embeddings/Embedding.js +3 -0
  415. package/transpiled/directives/vary/embeddings/Embedding.js.map +1 -0
  416. package/transpiled/directives/vary/embeddings/Header.d.ts +7 -0
  417. package/transpiled/directives/vary/embeddings/Header.js +26 -0
  418. package/transpiled/directives/vary/embeddings/Header.js.map +1 -0
  419. package/transpiled/directives/vary/embeddings/Language.d.ts +7 -0
  420. package/transpiled/directives/vary/embeddings/Language.js +28 -0
  421. package/transpiled/directives/vary/embeddings/Language.js.map +1 -0
  422. package/transpiled/directives/vary/embeddings/index.d.ts +5 -0
  423. package/transpiled/directives/vary/embeddings/index.js +10 -0
  424. package/transpiled/directives/vary/embeddings/index.js.map +1 -0
  425. package/transpiled/directives/vary/index.d.ts +2 -0
  426. package/transpiled/directives/vary/index.js +6 -0
  427. package/transpiled/directives/vary/index.js.map +1 -0
  428. package/transpiled/discovery.d.ts +1 -0
  429. package/transpiled/discovery.js +3 -0
  430. package/transpiled/discovery.js.map +1 -0
  431. package/transpiled/exceptions.d.ts +2 -0
  432. package/transpiled/exceptions.js +39 -0
  433. package/transpiled/exceptions.js.map +1 -0
  434. package/transpiled/index.d.ts +5 -0
  435. package/transpiled/index.js +12 -0
  436. package/transpiled/index.js.map +1 -0
  437. package/transpiled/io.d.ts +3 -0
  438. package/transpiled/io.js +3 -0
  439. package/transpiled/io.js.map +1 -0
  440. package/transpiled/manifest.d.ts +3 -0
  441. package/transpiled/manifest.js +66 -0
  442. package/transpiled/manifest.js.map +1 -0
  443. package/transpiled/root.d.ts +2 -0
  444. package/transpiled/root.js +39 -0
  445. package/transpiled/root.js.map +1 -0
  446. package/transpiled/schemas.d.ts +7 -0
  447. package/transpiled/schemas.js +14 -0
  448. package/transpiled/schemas.js.map +1 -0
  449. package/transpiled/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,72 @@
1
+ Feature: CORS Support
2
+
3
+ Scenario: Using CORS
4
+ Given the annotation:
5
+ """yaml
6
+ /:
7
+ anonymous: true
8
+ /foo:
9
+ GET:
10
+ dev:stub: Hello
11
+ """
12
+ When the following request is received:
13
+ """
14
+ OPTIONS / HTTP/1.1
15
+ origin: https://hello.world
16
+ """
17
+ Then the following reply is sent:
18
+ """
19
+ 204 No Content
20
+ access-control-allow-origin: https://hello.world
21
+ access-control-allow-methods: GET, POST, PUT, PATCH, DELETE
22
+ access-control-allow-headers: accept, authorization, content-type
23
+ access-control-allow-credentials: true
24
+ access-control-max-age: 3600
25
+ cache-control: public, max-age=3600
26
+ vary: origin
27
+ """
28
+ When the following request is received:
29
+ """
30
+ GET /foo/ HTTP/1.1
31
+ origin: https://hello.world
32
+ """
33
+ Then the following reply is sent:
34
+ """
35
+ 200 OK
36
+ access-control-allow-origin: https://hello.world
37
+ access-control-expose-headers: authorization, content-type, content-length, etag
38
+ vary: origin
39
+ """
40
+
41
+ Scenario: Errors contain CORS headers
42
+ Given the annotation:
43
+ """yaml
44
+ /:
45
+ /foo:
46
+ GET:
47
+ dev:stub: Hello
48
+ """
49
+ When the following request is received:
50
+ """
51
+ GET /bar/ HTTP/1.1
52
+ origin: https://hello.world
53
+ """
54
+ Then the following reply is sent:
55
+ """
56
+ 404 Not Found
57
+ access-control-allow-origin: https://hello.world
58
+ access-control-expose-headers: authorization, content-type, content-length, etag
59
+ vary: origin
60
+ """
61
+ When the following request is received:
62
+ """
63
+ GET /foo/ HTTP/1.1
64
+ origin: https://hello.world
65
+ """
66
+ Then the following reply is sent:
67
+ """
68
+ 401 Unauthorized
69
+ access-control-allow-origin: https://hello.world
70
+ access-control-expose-headers: authorization, content-type, content-length, etag
71
+ vary: origin
72
+ """
@@ -17,7 +17,7 @@ Feature: Identity resource
17
17
  Then the following reply is sent:
18
18
  """
19
19
  200 OK
20
- authorization: Token ${{ token }}
20
+ authorization: Token ${{ User.token }}
21
21
 
22
22
  id: efe3a65ebbee47ed95a73edd911ea328
23
23
  roles:
@@ -27,14 +27,30 @@ Feature: Identity resource
27
27
  When the following request is received:
28
28
  """
29
29
  GET /identity/ HTTP/1.1
30
- authorization: Token ${{ token }}
30
+ authorization: Token ${{ User.token }}
31
31
  accept: application/yaml
32
32
  """
33
33
  Then the following reply is sent:
34
34
  """
35
35
  200 OK
36
36
 
37
- id: efe3a65ebbee47ed95a73edd911ea328
37
+ id: ${{ User.id }}
38
+ roles:
39
+ - developer
40
+ - system:identity
41
+ """
42
+ # checking that it returns the same id for given token
43
+ When the following request is received:
44
+ """
45
+ GET /identity/ HTTP/1.1
46
+ authorization: Token ${{ User.token }}
47
+ accept: application/yaml
48
+ """
49
+ Then the following reply is sent:
50
+ """
51
+ 200 OK
52
+
53
+ id: ${{ User.id }}
38
54
  roles:
39
55
  - developer
40
56
  - system:identity
@@ -0,0 +1,155 @@
1
+ Feature: Identity Federation
2
+
3
+ Background:
4
+ Given the `identity.federation` database is empty
5
+ Given local IDP is running
6
+
7
+
8
+ Scenario: Getting identity for a new user
9
+ Given the `identity.federation` configuration:
10
+ """yaml
11
+ explicit_identity_creation: false
12
+ trust:
13
+ - issuer: http://localhost:44444
14
+ """
15
+ And the IDP token for User is issued
16
+ When the following request is received:
17
+ """
18
+ GET /identity/ HTTP/1.1
19
+ authorization: Bearer ${{ User.id_token }}
20
+ accept: application/yaml
21
+ content-type: application/yaml
22
+ """
23
+ Then the following reply is sent:
24
+ """
25
+ 200 OK
26
+ authorization: Token ${{ User.token }}
27
+
28
+ id: ${{ User.id }}
29
+ roles: []
30
+ scheme: bearer
31
+ """
32
+ # validate token
33
+ When the following request is received:
34
+ """
35
+ GET /identity/ HTTP/1.1
36
+ accept: application/yaml
37
+ authorization: Token ${{ User.token }}
38
+ """
39
+ Then the following reply is sent:
40
+ """
41
+ 200 OK
42
+ id: ${{ User.id }}
43
+ """
44
+ # ensuring identity idemptotency
45
+ When the following request is received:
46
+ """
47
+ GET /identity/ HTTP/1.1
48
+ authorization: Bearer ${{ User.id_token }}
49
+ accept: application/yaml
50
+ """
51
+ Then the following reply is sent:
52
+ """
53
+ 200 OK
54
+ id: ${{ User.id }}
55
+ """
56
+
57
+ Scenario: Getting identity for a user with symmetric tokens
58
+ Given the `identity.federation` configuration:
59
+ """yaml
60
+ explicit_identity_creation: false
61
+ trust:
62
+ - issuer: http://localhost:44444
63
+ secrets:
64
+ HS384:
65
+ k1: the-secret
66
+ """
67
+ And the IDP HS384 token for GoodUser is issued with following secret:
68
+ """
69
+ the-secret
70
+ """
71
+ When the following request is received:
72
+ """
73
+ GET /identity/ HTTP/1.1
74
+ authorization: Bearer ${{ GoodUser.id_token }}
75
+ accept: application/yaml
76
+ content-type: application/yaml
77
+ """
78
+ Then the following reply is sent:
79
+ """
80
+ 200 OK
81
+ authorization: Token ${{ GoodUser.token }}
82
+
83
+ id: ${{ GoodUser.id }}
84
+ scheme: bearer
85
+ """
86
+
87
+ Scenario: Creating an Identity using inception with existing credentials
88
+ Given the `identity.federation` configuration:
89
+ """yaml
90
+ trust:
91
+ - issuer: http://localhost:44444
92
+ """
93
+ Given the `users` is running with the following manifest:
94
+ """yaml
95
+ exposition:
96
+ /:
97
+ anonymous: true
98
+ POST:
99
+ incept: id
100
+ endpoint: create
101
+ """
102
+ And the IDP token for Bill is issued
103
+ When the following request is received:
104
+ # identity inception
105
+ """
106
+ POST /users/ HTTP/1.1
107
+ authorization: Bearer ${{ Bill.id_token }}
108
+ accept: application/yaml
109
+ content-type: application/yaml
110
+
111
+ name: Bill Smith
112
+ """
113
+ Then the following reply is sent:
114
+ """
115
+ 201 Created
116
+ authorization: Token ${{ Bill.token }}
117
+
118
+ id: ${{ Bill.id }}
119
+ """
120
+ # check that both tokens corresponds to the same id
121
+ When the following request is received:
122
+ """
123
+ GET /identity/ HTTP/1.1
124
+ authorization: Token ${{ Bill.token }}
125
+ accept: application/yaml
126
+ """
127
+ Then the following reply is sent:
128
+ """
129
+ 200 OK
130
+ id: ${{ Bill.id }}
131
+ """
132
+ When the following request is received:
133
+ """
134
+ GET /identity/ HTTP/1.1
135
+ authorization: Bearer ${{ Bill.id_token }}
136
+ accept: application/yaml
137
+ """
138
+ Then the following reply is sent:
139
+ """
140
+ 200 OK
141
+ id: ${{ Bill.id }}
142
+ """
143
+ And the following request is received:
144
+ # same credentials
145
+ """
146
+ POST /users/ HTTP/1.1
147
+ authorization: Bearer ${{ Bill.id_token }}
148
+ content-type: text/plain
149
+
150
+ name: Mary Louis
151
+ """
152
+ Then the following reply is sent:
153
+ """
154
+ 403 Forbidden
155
+ """
@@ -0,0 +1,121 @@
1
+ Feature: Accessing entires
2
+
3
+ Scenario: Entries are not accessible by default
4
+ Given the annotation:
5
+ """yaml
6
+ /:
7
+ auth:anonymous: true
8
+ octets:context: octets
9
+ POST:
10
+ octets:store: ~
11
+ GET:
12
+ octets:list: ~
13
+ /*:
14
+ GET:
15
+ octets:fetch: ~
16
+ """
17
+ When the stream of `lenna.ascii` is received with the following headers:
18
+ """
19
+ POST / HTTP/1.1
20
+ content-type: application/octet-stream
21
+ """
22
+ Then the following reply is sent:
23
+ """
24
+ 201 Created
25
+ """
26
+ When the following request is received:
27
+ """
28
+ GET / HTTP/1.1
29
+ accept: application/vnd.toa.octets.entries+yaml
30
+ """
31
+ Then the following reply is sent:
32
+ """
33
+ 403 Forbidden
34
+
35
+ Metadata is not accessible.
36
+ """
37
+ When the following request is received:
38
+ """
39
+ GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
40
+ accept: text/vnd.toa.octets.entry+plain
41
+ """
42
+ Then the following reply is sent:
43
+ """
44
+ 403 Forbidden
45
+
46
+ Metadata is not accessible.
47
+ """
48
+
49
+ Scenario: Accessing entries
50
+ Given the annotation:
51
+ """yaml
52
+ /:
53
+ auth:anonymous: true
54
+ octets:context: octets
55
+ POST:
56
+ octets:store: ~
57
+ GET:
58
+ octets:list:
59
+ meta: true
60
+ /*:
61
+ GET:
62
+ octets:fetch:
63
+ meta: true
64
+ """
65
+ When the stream of `lenna.ascii` is received with the following headers:
66
+ """
67
+ POST / HTTP/1.1
68
+ accept: application/yaml
69
+ content-type: application/octet-stream
70
+ """
71
+ And the stream of `lenna.png` is received with the following headers:
72
+ """
73
+ POST / HTTP/1.1
74
+ accept: application/yaml
75
+ content-type: application/octet-stream
76
+ """
77
+ When the following request is received:
78
+ """
79
+ GET / HTTP/1.1
80
+ accept: application/yaml
81
+ """
82
+ Then the following reply is sent:
83
+ """
84
+ 200 OK
85
+ content-type: application/yaml
86
+
87
+ - 10cf16b458f759e0d617f2f3d83599ff
88
+ - 814a0034f5549e957ee61360d87457e5
89
+ """
90
+ When the following request is received:
91
+ """
92
+ GET / HTTP/1.1
93
+ accept: application/vnd.toa.octets.entries+yaml
94
+ """
95
+ Then the following reply is sent:
96
+ """
97
+ 200 OK
98
+ content-type: application/yaml
99
+
100
+ - id: 10cf16b458f759e0d617f2f3d83599ff
101
+ size: 8169
102
+ type: application/octet-stream
103
+ - id: 814a0034f5549e957ee61360d87457e5
104
+ size: 473831
105
+ type: image/png
106
+ """
107
+ When the following request is received:
108
+ """
109
+ GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
110
+ accept: application/vnd.toa.octets.entry+yaml
111
+ """
112
+ Then the following reply is sent:
113
+ """
114
+ 200 OK
115
+ content-type: application/yaml
116
+ content-length: 124
117
+
118
+ id: 10cf16b458f759e0d617f2f3d83599ff
119
+ type: application/octet-stream
120
+ size: 8169
121
+ """
@@ -70,17 +70,6 @@ Feature: Octets directive family
70
70
  """
71
71
  304 Not Modified
72
72
  """
73
- When the following request is received:
74
- """
75
- GET /10cf16b458f759e0d617f2f3d83599ff:meta HTTP/1.1
76
- accept: text/plain
77
- """
78
- Then the following reply is sent:
79
- """
80
- 403 Forbidden
81
-
82
- Metadata is not accessible.
83
- """
84
73
  When the following request is received:
85
74
  """
86
75
  GET / HTTP/1.1
@@ -245,10 +234,9 @@ Feature: Octets directive family
245
234
  Trailing slash is redundant.
246
235
  """
247
236
 
248
- Scenario: Accessing an Entry and the original BLOLB
237
+ Scenario: Original BLOLB is not accessible
249
238
  Given the annotation:
250
239
  """yaml
251
- debug: true
252
240
  /:
253
241
  auth:anonymous: true
254
242
  octets:context: octets
@@ -268,24 +256,10 @@ Feature: Octets directive family
268
256
  """
269
257
  201 Created
270
258
  """
271
- When the following request is received:
272
- """
273
- GET /10cf16b458f759e0d617f2f3d83599ff:meta HTTP/1.1
274
- accept: application/yaml
275
- """
276
- Then the following reply is sent:
277
- """
278
- 200 OK
279
- content-type: application/yaml
280
- content-length: 124
281
-
282
- id: 10cf16b458f759e0d617f2f3d83599ff
283
- type: application/octet-stream
284
- size: 8169
285
- """
286
259
  When the following request is received:
287
260
  """
288
261
  GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
262
+ accept: text/plain
289
263
  """
290
264
  Then the following reply is sent:
291
265
  """
@@ -0,0 +1,65 @@
1
+ Feature: Octets `content-meta` header
2
+
3
+ Scenario: Sending `content-meta` header
4
+ Given the `octets.tester` is running
5
+ And the annotation:
6
+ """yaml
7
+ /:
8
+ auth:anonymous: true
9
+ octets:context: octets
10
+ /*:
11
+ POST:
12
+ octets:store: ~
13
+ /*:
14
+ GET:
15
+ octets:fetch:
16
+ meta: true
17
+ """
18
+ When the stream of `lenna.ascii` is received with the following headers:
19
+ """
20
+ POST /meta-header/ HTTP/1.1
21
+ content-type: application/octet-stream
22
+ content-meta: foo, bar=baz=1
23
+ content-meta: baz=1
24
+ """
25
+ Then the following reply is sent:
26
+ """
27
+ 201 Created
28
+ """
29
+ When the following request is received:
30
+ """
31
+ GET /meta-header/10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
32
+ accept: application/vnd.toa.octets.entry+yaml
33
+ """
34
+ Then the following reply is sent:
35
+ """
36
+ 200 OK
37
+
38
+ id: 10cf16b458f759e0d617f2f3d83599ff
39
+ type: application/octet-stream
40
+ size: 8169
41
+ meta:
42
+ foo: 'true'
43
+ bar: baz=1
44
+ baz: '1'
45
+ """
46
+
47
+ Scenario: CORS allows `content-meta` header
48
+ Given the annotation:
49
+ """yaml
50
+ /:
51
+ octets:context: octets
52
+ POST:
53
+ octets:store: ~
54
+ """
55
+ When the following request is received:
56
+ """
57
+ OPTIONS / HTTP/1.1
58
+ origin: http://example.com
59
+ """
60
+ Then the following reply is sent:
61
+ """
62
+ 204 No Content
63
+ access-control-allow-origin: http://example.com
64
+ access-control-allow-headers: accept, authorization, content-type, content-meta
65
+ """