@toa.io/extensions.exposition 1.0.0-alpha.7 → 1.0.0-alpha.73

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 (443) hide show
  1. package/components/context.toa.yaml +2 -2
  2. package/components/identity.bans/manifest.toa.yaml +15 -7
  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 -10
  10. package/components/identity.basic/operations/authenticate.d.ts +5 -1
  11. package/components/identity.basic/operations/authenticate.js +5 -2
  12. package/components/identity.basic/operations/authenticate.js.map +1 -1
  13. package/components/identity.basic/operations/incept.d.ts +12 -0
  14. package/components/identity.basic/operations/incept.js +26 -0
  15. package/components/identity.basic/operations/incept.js.map +1 -0
  16. package/components/identity.basic/operations/transit.d.ts +4 -4
  17. package/components/identity.basic/operations/transit.js +5 -3
  18. package/components/identity.basic/operations/transit.js.map +1 -1
  19. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  20. package/components/identity.basic/operations/types.d.ts +8 -4
  21. package/components/identity.basic/source/authenticate.ts +16 -5
  22. package/components/identity.basic/source/incept.ts +38 -0
  23. package/components/identity.basic/source/transit.ts +8 -6
  24. package/components/identity.basic/source/types.ts +8 -4
  25. package/components/identity.federation/manifest.toa.yaml +32 -16
  26. package/components/identity.federation/operations/authenticate.d.ts +2 -2
  27. package/components/identity.federation/operations/authenticate.js +4 -11
  28. package/components/identity.federation/operations/authenticate.js.map +1 -1
  29. package/components/identity.federation/operations/incept.d.ts +11 -0
  30. package/components/identity.federation/operations/{create.js → incept.js} +6 -7
  31. package/components/identity.federation/operations/incept.js.map +1 -0
  32. package/components/identity.federation/operations/lib/assertions-as-values.js +2 -1
  33. package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -1
  34. package/components/identity.federation/operations/lib/jwt.d.ts +5 -5
  35. package/components/identity.federation/operations/lib/jwt.js +25 -12
  36. package/components/identity.federation/operations/lib/jwt.js.map +1 -1
  37. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  38. package/components/identity.federation/operations/types/configuration.d.ts +14 -0
  39. package/components/identity.federation/operations/types/configuration.js +3 -0
  40. package/components/identity.federation/operations/types/configuration.js.map +1 -0
  41. package/components/identity.federation/operations/{types.d.ts → types/context.d.ts} +15 -7
  42. package/components/identity.federation/operations/types/context.js +3 -0
  43. package/components/identity.federation/operations/types/context.js.map +1 -0
  44. package/components/identity.federation/operations/types/entity.d.ts +6 -0
  45. package/components/identity.federation/operations/types/entity.js +3 -0
  46. package/components/identity.federation/operations/types/entity.js.map +1 -0
  47. package/components/identity.federation/operations/types/index.d.ts +3 -0
  48. package/components/identity.federation/operations/types/index.js +20 -0
  49. package/components/identity.federation/operations/types/index.js.map +1 -0
  50. package/components/identity.federation/source/authenticate.ts +6 -19
  51. package/components/identity.federation/source/{create.ts → incept.ts} +10 -9
  52. package/components/identity.federation/source/lib/assertions-as-values.ts +4 -2
  53. package/components/identity.federation/source/lib/jwt.test.ts +123 -4
  54. package/components/identity.federation/source/lib/jwt.ts +36 -16
  55. package/components/identity.federation/source/types/configuration.ts +15 -0
  56. package/components/identity.federation/source/{types.ts → types/context.ts} +17 -6
  57. package/components/identity.federation/source/types/entity.ts +6 -0
  58. package/components/identity.federation/source/types/index.ts +3 -0
  59. package/components/identity.federation/tsconfig.json +5 -4
  60. package/components/identity.roles/manifest.toa.yaml +18 -7
  61. package/components/identity.roles/operations/grant.d.ts +10 -0
  62. package/components/identity.roles/operations/grant.js +21 -0
  63. package/components/identity.roles/operations/grant.js.map +1 -0
  64. package/components/identity.roles/operations/lib/Entity.d.ts +5 -0
  65. package/components/identity.roles/operations/lib/Entity.js +3 -0
  66. package/components/identity.roles/operations/lib/Entity.js.map +1 -0
  67. package/components/identity.roles/operations/list.d.ts +1 -4
  68. package/components/identity.roles/operations/list.js.map +1 -1
  69. package/components/identity.roles/operations/principal.d.ts +4 -6
  70. package/components/identity.roles/operations/principal.js +6 -1
  71. package/components/identity.roles/operations/principal.js.map +1 -1
  72. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  73. package/components/identity.roles/source/grant.ts +32 -0
  74. package/components/identity.roles/source/lib/Entity.ts +5 -0
  75. package/components/identity.roles/source/list.ts +2 -4
  76. package/components/identity.roles/source/principal.ts +10 -8
  77. package/components/identity.tokens/manifest.toa.yaml +19 -5
  78. package/components/identity.tokens/operations/authenticate.d.ts +2 -2
  79. package/components/identity.tokens/operations/authenticate.js +12 -5
  80. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  81. package/components/identity.tokens/operations/decrypt.js +1 -0
  82. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  83. package/components/identity.tokens/operations/encrypt.js +5 -1
  84. package/components/identity.tokens/operations/encrypt.js.map +1 -1
  85. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  86. package/components/identity.tokens/operations/types.d.ts +8 -2
  87. package/components/identity.tokens/receivers/identity.bans.created.js +3 -0
  88. package/components/identity.tokens/source/authenticate.test.ts +11 -4
  89. package/components/identity.tokens/source/authenticate.ts +14 -6
  90. package/components/identity.tokens/source/decrypt.test.ts +5 -3
  91. package/components/identity.tokens/source/decrypt.ts +9 -8
  92. package/components/identity.tokens/source/encrypt.test.ts +26 -2
  93. package/components/identity.tokens/source/encrypt.ts +5 -1
  94. package/components/identity.tokens/source/types.ts +9 -2
  95. package/components/octets.storage/manifest.toa.yaml +6 -7
  96. package/components/octets.storage/operations/get.js +2 -2
  97. package/components/octets.storage/operations/store.js +113 -3
  98. package/documentation/access.md +75 -38
  99. package/documentation/authorities.md +49 -0
  100. package/documentation/cache.md +8 -1
  101. package/documentation/components.md +47 -22
  102. package/documentation/flow.md +31 -0
  103. package/documentation/identity.md +17 -22
  104. package/documentation/introspection.md +82 -0
  105. package/documentation/octets.md +81 -23
  106. package/documentation/protocol.md +13 -3
  107. package/documentation/query.md +29 -4
  108. package/documentation/require.md +15 -0
  109. package/documentation/tree.md +13 -0
  110. package/documentation/vary.md +14 -14
  111. package/features/access.feature +78 -46
  112. package/features/annotation.feature +1 -0
  113. package/features/auth.claim.feature +170 -0
  114. package/features/authorities.basic.feature +141 -0
  115. package/features/authorities.feature +32 -0
  116. package/features/authorities.federation.feature +100 -0
  117. package/features/authorities.tokens.feature +117 -0
  118. package/features/body.feature +3 -0
  119. package/features/cache.feature +109 -5
  120. package/features/cors.feature +6 -1
  121. package/features/debug.feature +34 -0
  122. package/features/directives.feature +3 -0
  123. package/features/dynamic.feature +48 -0
  124. package/features/errors.feature +20 -7
  125. package/features/etag.feature +31 -0
  126. package/features/flow.feature +45 -0
  127. package/features/identity.bans.feature +137 -0
  128. package/features/identity.basic.feature +125 -23
  129. package/features/identity.feature +7 -2
  130. package/features/identity.federation.feature +66 -11
  131. package/features/identity.roles.feature +250 -7
  132. package/features/identity.tokens.feature +54 -4
  133. package/features/introspection.feature +153 -0
  134. package/features/io.feature +38 -1
  135. package/features/methods.feature +47 -0
  136. package/features/octets.download.feature +189 -0
  137. package/features/octets.entries.feature +8 -1
  138. package/features/octets.feature +82 -54
  139. package/features/octets.meta.feature +3 -0
  140. package/features/octets.workflows.feature +239 -19
  141. package/features/probes.feature +14 -0
  142. package/features/{queries.feature → query.feature} +65 -2
  143. package/features/realtime.feature +34 -0
  144. package/features/require.feature +67 -0
  145. package/features/response.feature +38 -3
  146. package/features/routes.feature +93 -2
  147. package/features/steps/Database.ts +17 -10
  148. package/features/steps/Gateway.ts +23 -6
  149. package/features/steps/IdP.ts +30 -25
  150. package/features/steps/Parameters.ts +4 -1
  151. package/features/steps/Realtime.ts +151 -0
  152. package/features/steps/components/echo/manifest.toa.yaml +14 -1
  153. package/features/steps/components/echo/operations/identity.js +7 -0
  154. package/features/steps/components/echo/operations/parameters.js +7 -0
  155. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  156. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  157. package/features/steps/components/octets.tester/manifest.toa.yaml +22 -1
  158. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  159. package/features/steps/components/octets.tester/operations/baz.js +1 -2
  160. package/features/steps/components/octets.tester/operations/diversify.js +3 -1
  161. package/features/steps/components/octets.tester/operations/foo.js +2 -2
  162. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  163. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  164. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  165. package/features/steps/components/pots/manifest.toa.yaml +14 -3
  166. package/features/steps/components/users/manifest.toa.yaml +0 -1
  167. package/features/steps/components/users.properties/manifest.toa.yaml +1 -1
  168. package/features/streams.feature +5 -0
  169. package/features/timing.feature +4 -1
  170. package/features/vary.feature +71 -0
  171. package/package.json +23 -14
  172. package/readme.md +19 -14
  173. package/schemas/annotation.cos.yaml +1 -1
  174. package/schemas/method.cos.yaml +1 -1
  175. package/schemas/node.cos.yaml +2 -0
  176. package/schemas/octets/store.cos.yaml +25 -3
  177. package/schemas/query.cos.yaml +4 -10
  178. package/source/Annotation.ts +3 -3
  179. package/source/Branch.ts +1 -0
  180. package/source/Composition.ts +0 -6
  181. package/source/Context.ts +1 -0
  182. package/source/Directive.ts +4 -5
  183. package/source/Endpoint.ts +55 -15
  184. package/source/Factory.ts +22 -13
  185. package/source/Gateway.ts +67 -19
  186. package/source/HTTP/Context.ts +25 -2
  187. package/source/HTTP/Server.ts +52 -44
  188. package/source/HTTP/exceptions.ts +13 -1
  189. package/source/HTTP/formats/index.ts +3 -3
  190. package/source/HTTP/messages.test.ts +45 -2
  191. package/source/HTTP/messages.ts +23 -5
  192. package/source/Introspection.ts +11 -0
  193. package/source/Mapping.ts +63 -21
  194. package/source/Query.test.ts +3 -3
  195. package/source/Query.ts +117 -33
  196. package/source/RTD/Context.ts +1 -1
  197. package/source/RTD/Endpoint.ts +3 -0
  198. package/source/RTD/Method.ts +16 -0
  199. package/source/RTD/Node.ts +29 -13
  200. package/source/RTD/Route.ts +5 -4
  201. package/source/RTD/Tree.ts +2 -2
  202. package/source/RTD/factory.ts +5 -2
  203. package/source/RTD/syntax/parse.ts +37 -24
  204. package/source/RTD/syntax/types.ts +6 -4
  205. package/source/Remotes.ts +7 -6
  206. package/source/Tenant.ts +6 -20
  207. package/source/deployment.ts +33 -23
  208. package/source/directives/auth/Authorization.ts +37 -14
  209. package/source/directives/auth/Delegate.ts +42 -0
  210. package/source/directives/auth/Federation.ts +84 -0
  211. package/source/directives/auth/Incept.ts +4 -3
  212. package/source/directives/auth/Role.test.ts +53 -6
  213. package/source/directives/auth/Role.ts +22 -14
  214. package/source/directives/auth/split.ts +1 -1
  215. package/source/directives/auth/types.ts +1 -1
  216. package/source/directives/cache/Cache.ts +13 -6
  217. package/source/directives/cache/Control.ts +42 -16
  218. package/source/directives/cors/CORS.ts +1 -1
  219. package/source/directives/dev/Development.ts +1 -1
  220. package/source/directives/flow/Fetch.ts +88 -0
  221. package/source/directives/flow/Flow.ts +34 -0
  222. package/source/directives/flow/index.ts +3 -0
  223. package/source/directives/flow/types.ts +6 -0
  224. package/source/directives/index.ts +3 -1
  225. package/source/directives/io/Input.ts +4 -4
  226. package/source/directives/io/Output.ts +4 -3
  227. package/source/directives/octets/Context.ts +3 -2
  228. package/source/directives/octets/Fetch.ts +11 -10
  229. package/source/directives/octets/List.ts +5 -5
  230. package/source/directives/octets/Octets.ts +1 -3
  231. package/source/directives/octets/Store.ts +30 -10
  232. package/source/directives/octets/bytes.test.ts +30 -0
  233. package/source/directives/octets/bytes.ts +18 -0
  234. package/source/directives/octets/schemas.ts +4 -6
  235. package/source/directives/octets/workflows/Execution.ts +60 -8
  236. package/source/directives/octets/workflows/Workflow.ts +2 -1
  237. package/source/directives/require/Directive.ts +5 -0
  238. package/source/directives/require/Headers.ts +20 -0
  239. package/source/directives/require/Require.ts +28 -0
  240. package/source/directives/require/index.ts +3 -0
  241. package/source/directives/vary/Directive.ts +2 -1
  242. package/source/directives/vary/Embed.ts +14 -8
  243. package/source/directives/vary/Vary.ts +6 -4
  244. package/source/directives/vary/embeddings/Authority.ts +8 -0
  245. package/source/directives/vary/embeddings/Embedding.ts +2 -1
  246. package/source/directives/vary/embeddings/Parameter.ts +14 -0
  247. package/source/directives/vary/embeddings/index.ts +6 -4
  248. package/source/exceptions.ts +23 -11
  249. package/source/manifest.ts +10 -11
  250. package/source/schemas.ts +1 -1
  251. package/transpiled/Annotation.d.ts +3 -3
  252. package/transpiled/Branch.d.ts +1 -0
  253. package/transpiled/Composition.d.ts +0 -1
  254. package/transpiled/Composition.js +0 -4
  255. package/transpiled/Composition.js.map +1 -1
  256. package/transpiled/Context.d.ts +1 -0
  257. package/transpiled/Directive.js +4 -4
  258. package/transpiled/Directive.js.map +1 -1
  259. package/transpiled/Endpoint.d.ts +6 -4
  260. package/transpiled/Endpoint.js +35 -7
  261. package/transpiled/Endpoint.js.map +1 -1
  262. package/transpiled/Factory.d.ts +3 -2
  263. package/transpiled/Factory.js +18 -10
  264. package/transpiled/Factory.js.map +1 -1
  265. package/transpiled/Gateway.d.ts +3 -0
  266. package/transpiled/Gateway.js +51 -12
  267. package/transpiled/Gateway.js.map +1 -1
  268. package/transpiled/HTTP/Context.d.ts +8 -1
  269. package/transpiled/HTTP/Context.js +16 -2
  270. package/transpiled/HTTP/Context.js.map +1 -1
  271. package/transpiled/HTTP/Server.d.ts +13 -2
  272. package/transpiled/HTTP/Server.js +39 -36
  273. package/transpiled/HTTP/Server.js.map +1 -1
  274. package/transpiled/HTTP/exceptions.d.ts +7 -1
  275. package/transpiled/HTTP/exceptions.js +13 -1
  276. package/transpiled/HTTP/exceptions.js.map +1 -1
  277. package/transpiled/HTTP/formats/index.js +3 -3
  278. package/transpiled/HTTP/formats/index.js.map +1 -1
  279. package/transpiled/HTTP/messages.d.ts +1 -0
  280. package/transpiled/HTTP/messages.js +24 -5
  281. package/transpiled/HTTP/messages.js.map +1 -1
  282. package/transpiled/Introspection.d.ts +9 -0
  283. package/transpiled/Introspection.js +3 -0
  284. package/transpiled/Introspection.js.map +1 -0
  285. package/transpiled/Mapping.d.ts +10 -2
  286. package/transpiled/Mapping.js +48 -19
  287. package/transpiled/Mapping.js.map +1 -1
  288. package/transpiled/Query.d.ts +10 -1
  289. package/transpiled/Query.js +83 -30
  290. package/transpiled/Query.js.map +1 -1
  291. package/transpiled/RTD/Context.d.ts +1 -1
  292. package/transpiled/RTD/Endpoint.d.ts +1 -0
  293. package/transpiled/RTD/Method.d.ts +4 -0
  294. package/transpiled/RTD/Method.js +11 -0
  295. package/transpiled/RTD/Method.js.map +1 -1
  296. package/transpiled/RTD/Node.d.ts +4 -1
  297. package/transpiled/RTD/Node.js +23 -12
  298. package/transpiled/RTD/Node.js.map +1 -1
  299. package/transpiled/RTD/Route.d.ts +1 -1
  300. package/transpiled/RTD/Route.js +0 -1
  301. package/transpiled/RTD/Route.js.map +1 -1
  302. package/transpiled/RTD/Tree.d.ts +1 -1
  303. package/transpiled/RTD/Tree.js.map +1 -1
  304. package/transpiled/RTD/factory.js +5 -2
  305. package/transpiled/RTD/factory.js.map +1 -1
  306. package/transpiled/RTD/syntax/parse.js +34 -22
  307. package/transpiled/RTD/syntax/parse.js.map +1 -1
  308. package/transpiled/RTD/syntax/types.d.ts +5 -3
  309. package/transpiled/RTD/syntax/types.js +1 -1
  310. package/transpiled/RTD/syntax/types.js.map +1 -1
  311. package/transpiled/Remotes.d.ts +4 -4
  312. package/transpiled/Remotes.js +6 -5
  313. package/transpiled/Remotes.js.map +1 -1
  314. package/transpiled/Tenant.d.ts +5 -5
  315. package/transpiled/Tenant.js +2 -13
  316. package/transpiled/Tenant.js.map +1 -1
  317. package/transpiled/deployment.d.ts +1 -1
  318. package/transpiled/deployment.js +28 -20
  319. package/transpiled/deployment.js.map +1 -1
  320. package/transpiled/directives/auth/Authorization.js +26 -10
  321. package/transpiled/directives/auth/Authorization.js.map +1 -1
  322. package/transpiled/directives/auth/Delegate.d.ts +10 -0
  323. package/transpiled/directives/auth/Delegate.js +34 -0
  324. package/transpiled/directives/auth/Delegate.js.map +1 -0
  325. package/transpiled/directives/auth/Federation.d.ts +16 -0
  326. package/transpiled/directives/auth/Federation.js +57 -0
  327. package/transpiled/directives/auth/Federation.js.map +1 -0
  328. package/transpiled/directives/auth/Incept.js +4 -3
  329. package/transpiled/directives/auth/Incept.js.map +1 -1
  330. package/transpiled/directives/auth/Role.d.ts +4 -1
  331. package/transpiled/directives/auth/Role.js +20 -14
  332. package/transpiled/directives/auth/Role.js.map +1 -1
  333. package/transpiled/directives/auth/split.js +1 -1
  334. package/transpiled/directives/auth/split.js.map +1 -1
  335. package/transpiled/directives/cache/Cache.d.ts +3 -3
  336. package/transpiled/directives/cache/Cache.js +10 -4
  337. package/transpiled/directives/cache/Cache.js.map +1 -1
  338. package/transpiled/directives/cache/Control.d.ts +2 -1
  339. package/transpiled/directives/cache/Control.js +29 -12
  340. package/transpiled/directives/cache/Control.js.map +1 -1
  341. package/transpiled/directives/cors/CORS.js +1 -1
  342. package/transpiled/directives/cors/CORS.js.map +1 -1
  343. package/transpiled/directives/dev/Development.js +1 -1
  344. package/transpiled/directives/dev/Development.js.map +1 -1
  345. package/transpiled/directives/flow/Fetch.d.ts +13 -0
  346. package/transpiled/directives/flow/Fetch.js +59 -0
  347. package/transpiled/directives/flow/Fetch.js.map +1 -0
  348. package/transpiled/directives/flow/Flow.d.ts +10 -0
  349. package/transpiled/directives/flow/Flow.js +27 -0
  350. package/transpiled/directives/flow/Flow.js.map +1 -0
  351. package/transpiled/directives/flow/index.d.ts +2 -0
  352. package/transpiled/directives/flow/index.js +6 -0
  353. package/transpiled/directives/flow/index.js.map +1 -0
  354. package/transpiled/directives/flow/types.d.ts +5 -0
  355. package/transpiled/directives/flow/types.js.map +1 -0
  356. package/transpiled/directives/index.js +3 -1
  357. package/transpiled/directives/index.js.map +1 -1
  358. package/transpiled/directives/io/Input.js +2 -2
  359. package/transpiled/directives/io/Input.js.map +1 -1
  360. package/transpiled/directives/io/Output.js +2 -2
  361. package/transpiled/directives/io/Output.js.map +1 -1
  362. package/transpiled/directives/octets/Context.js +4 -24
  363. package/transpiled/directives/octets/Context.js.map +1 -1
  364. package/transpiled/directives/octets/Fetch.d.ts +3 -3
  365. package/transpiled/directives/octets/Fetch.js +8 -8
  366. package/transpiled/directives/octets/Fetch.js.map +1 -1
  367. package/transpiled/directives/octets/List.d.ts +3 -3
  368. package/transpiled/directives/octets/List.js +3 -3
  369. package/transpiled/directives/octets/List.js.map +1 -1
  370. package/transpiled/directives/octets/Octets.js +1 -3
  371. package/transpiled/directives/octets/Octets.js.map +1 -1
  372. package/transpiled/directives/octets/Store.d.ts +6 -1
  373. package/transpiled/directives/octets/Store.js +17 -7
  374. package/transpiled/directives/octets/Store.js.map +1 -1
  375. package/transpiled/directives/octets/bytes.d.ts +1 -0
  376. package/transpiled/directives/octets/bytes.js +21 -0
  377. package/transpiled/directives/octets/bytes.js.map +1 -0
  378. package/transpiled/directives/octets/schemas.d.ts +4 -6
  379. package/transpiled/directives/octets/schemas.js +1 -3
  380. package/transpiled/directives/octets/schemas.js.map +1 -1
  381. package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
  382. package/transpiled/directives/octets/workflows/Execution.js +44 -9
  383. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  384. package/transpiled/directives/octets/workflows/Workflow.js +2 -1
  385. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  386. package/transpiled/directives/require/Directive.d.ts +4 -0
  387. package/transpiled/directives/require/Directive.js +3 -0
  388. package/transpiled/directives/require/Directive.js.map +1 -0
  389. package/transpiled/directives/require/Headers.d.ts +7 -0
  390. package/transpiled/directives/require/Headers.js +19 -0
  391. package/transpiled/directives/require/Headers.js.map +1 -0
  392. package/transpiled/directives/require/Require.d.ts +9 -0
  393. package/transpiled/directives/require/Require.js +27 -0
  394. package/transpiled/directives/require/Require.js.map +1 -0
  395. package/transpiled/directives/require/index.d.ts +2 -0
  396. package/transpiled/directives/require/index.js +6 -0
  397. package/transpiled/directives/require/index.js.map +1 -0
  398. package/transpiled/directives/vary/Directive.d.ts +2 -1
  399. package/transpiled/directives/vary/Embed.d.ts +2 -1
  400. package/transpiled/directives/vary/Embed.js +8 -6
  401. package/transpiled/directives/vary/Embed.js.map +1 -1
  402. package/transpiled/directives/vary/Vary.d.ts +2 -2
  403. package/transpiled/directives/vary/Vary.js +3 -3
  404. package/transpiled/directives/vary/Vary.js.map +1 -1
  405. package/transpiled/directives/vary/embeddings/Authority.d.ts +5 -0
  406. package/transpiled/directives/vary/embeddings/Authority.js +10 -0
  407. package/transpiled/directives/vary/embeddings/Authority.js.map +1 -0
  408. package/transpiled/directives/vary/embeddings/Embedding.d.ts +2 -1
  409. package/transpiled/directives/vary/embeddings/Parameter.d.ts +7 -0
  410. package/transpiled/directives/vary/embeddings/Parameter.js +14 -0
  411. package/transpiled/directives/vary/embeddings/Parameter.js.map +1 -0
  412. package/transpiled/directives/vary/embeddings/index.d.ts +2 -2
  413. package/transpiled/directives/vary/embeddings/index.js +8 -4
  414. package/transpiled/directives/vary/embeddings/index.js.map +1 -1
  415. package/transpiled/exceptions.d.ts +3 -2
  416. package/transpiled/exceptions.js +14 -7
  417. package/transpiled/exceptions.js.map +1 -1
  418. package/transpiled/manifest.js +10 -11
  419. package/transpiled/manifest.js.map +1 -1
  420. package/transpiled/schemas.d.ts +1 -1
  421. package/transpiled/schemas.js +2 -2
  422. package/transpiled/schemas.js.map +1 -1
  423. package/transpiled/tsconfig.tsbuildinfo +1 -1
  424. package/tsconfig.json +9 -7
  425. package/components/identity.basic/operations/create.d.ts +0 -10
  426. package/components/identity.basic/operations/create.js +0 -10
  427. package/components/identity.basic/operations/create.js.map +0 -1
  428. package/components/identity.basic/source/create.ts +0 -18
  429. package/components/identity.federation/operations/create.d.ts +0 -10
  430. package/components/identity.federation/operations/create.js.map +0 -1
  431. package/components/identity.federation/operations/schemas.d.ts +0 -59
  432. package/components/identity.federation/operations/schemas.js +0 -9
  433. package/components/identity.federation/operations/schemas.js.map +0 -1
  434. package/components/identity.federation/operations/types.js.map +0 -1
  435. package/components/identity.federation/source/schemas.ts +0 -61
  436. package/components/octets.storage/operations/permute.js +0 -7
  437. package/schemas/octets/context.cos.yaml +0 -1
  438. package/source/HTTP/Server.test.ts +0 -126
  439. package/source/directives/octets/Permute.ts +0 -44
  440. package/transpiled/directives/octets/Permute.d.ts +0 -11
  441. package/transpiled/directives/octets/Permute.js +0 -58
  442. package/transpiled/directives/octets/Permute.js.map +0 -1
  443. /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
@@ -0,0 +1,47 @@
1
+ Feature: Supported methods
2
+
3
+ Scenario Outline: <method> is supported
4
+ Given the annotation:
5
+ """yaml
6
+ /:
7
+ <method>:
8
+ dev:stub:
9
+ hello: world
10
+ """
11
+ And the `greeter` is running with the following manifest:
12
+ """yaml
13
+ exposition:
14
+ /:
15
+ <method>:
16
+ dev:stub:
17
+ hello: world
18
+ """
19
+ Examples:
20
+ | method |
21
+ | GET |
22
+ | POST |
23
+ | PUT |
24
+ | DELETE |
25
+ | PATCH |
26
+ | LOCK |
27
+ | UNLOCK |
28
+
29
+ Scenario: CORS allowed methods
30
+ Given the annotation:
31
+ """yaml
32
+ /:
33
+ GET:
34
+ dev:stub:
35
+ hello: world
36
+ """
37
+ When the following request is received:
38
+ """
39
+ OPTIONS / HTTP/1.1
40
+ host: nex.toa.io
41
+ origin: https://hello.world
42
+ """
43
+ Then the following reply is sent:
44
+ """
45
+ 204 No Content
46
+ access-control-allow-methods: GET, POST, PUT, PATCH, DELETE, LOCK, UNLOCK
47
+ """
@@ -0,0 +1,189 @@
1
+ Feature: Download and store
2
+
3
+ Scenario Outline: Download from trusted location defined as <type>
4
+ Given the annotation:
5
+ """yaml
6
+ /:
7
+ io:output: true
8
+ auth:anonymous: true
9
+ octets:context: octets
10
+ POST:
11
+ octets:store:
12
+ trust:
13
+ - <location> # <type>
14
+ - https://github.com
15
+ /*:
16
+ GET:
17
+ octets:fetch:
18
+ meta: true
19
+ """
20
+
21
+ When the following request is received:
22
+ """
23
+ POST / HTTP/1.1
24
+ host: nex.toa.io
25
+ content-location: https://avatars.githubusercontent.com/u/92763022?s=48&v=4
26
+ content-length: 0
27
+ accept: application/yaml
28
+ """
29
+ Then the following reply is sent:
30
+ """
31
+ 201 Created
32
+
33
+ id: ${{ id }}
34
+ type: image/png
35
+ """
36
+
37
+ When the following request is received:
38
+ """
39
+ GET /${{ id }} HTTP/1.1
40
+ host: nex.toa.io
41
+ """
42
+ Then the following reply is sent:
43
+ """
44
+ 200 OK
45
+ content-type: image/png
46
+ content-length: 1288
47
+ etag: "${{ id }}"
48
+ """
49
+
50
+ # origin is stored in the entry
51
+ When the following request is received:
52
+ """
53
+ GET /${{ id }} HTTP/1.1
54
+ host: nex.toa.io
55
+ accept: application/vnd.toa.octets.entry+yaml
56
+ """
57
+ Then the following reply is sent:
58
+ """
59
+ 200 OK
60
+ content-type: application/yaml
61
+
62
+ id: ${{ id }}
63
+ type: image/png
64
+ origin: https://avatars.githubusercontent.com/u/92763022?s=48&v=4
65
+ """
66
+
67
+ # untrusted location
68
+ When the following request is received:
69
+ """
70
+ POST / HTTP/1.1
71
+ host: nex.toa.io
72
+ content-location: https://github.githubassets.com/assets/yolo-default-be0bbff04951.png
73
+ content-length: 0
74
+ accept: application/yaml
75
+ """
76
+ Then the following reply is sent:
77
+ """
78
+ 403 Forbidden
79
+
80
+ Location is not trusted
81
+ """
82
+
83
+ # content-length must be 0
84
+ When the following request is received:
85
+ """
86
+ POST / HTTP/1.1
87
+ host: nex.toa.io
88
+ content-location: https://avatars.githubusercontent.com/u/92763022?s=48&v=4
89
+ content-length: 1
90
+ accept: application/yaml
91
+
92
+ 1
93
+ """
94
+ Then the following reply is sent:
95
+ """
96
+ 400 Bad Request
97
+
98
+ Content-Length must be 0 when Content-Location is used
99
+ """
100
+
101
+ # invalid content-location
102
+ When the following request is received:
103
+ """
104
+ POST / HTTP/1.1
105
+ host: nex.toa.io
106
+ content-location: Hello there!
107
+ content-length: 0
108
+ accept: application/yaml
109
+ """
110
+ Then the following reply is sent:
111
+ """
112
+ 403 Forbidden
113
+
114
+ Location is not trusted
115
+ """
116
+
117
+ # unavailable location
118
+ When the following request is received:
119
+ """
120
+ POST / HTTP/1.1
121
+ host: nex.toa.io
122
+ content-location: https://github.com/toa-io/no
123
+ content-length: 0
124
+ accept: application/yaml
125
+ """
126
+ Then the following reply is sent:
127
+ """
128
+ 404 Not Found
129
+
130
+ Location is not available
131
+ """
132
+
133
+ Examples:
134
+ | type | location |
135
+ | origin | https://avatars.githubusercontent.com |
136
+ | expression | /^https://avatars\.githubusercontent\.com/ |
137
+
138
+ Scenario: Download size limit
139
+ Given the annotation:
140
+ """yaml
141
+ /:
142
+ io:output: true
143
+ auth:anonymous: true
144
+ octets:context: octets
145
+ POST:
146
+ octets:store:
147
+ limit: 1kb
148
+ trust:
149
+ - https://avatars.githubusercontent.com
150
+ """
151
+ When the following request is received:
152
+ """
153
+ POST / HTTP/1.1
154
+ host: nex.toa.io
155
+ content-location: https://avatars.githubusercontent.com/u/92763022?s=48&v=4
156
+ content-length: 0
157
+ accept: text/plain
158
+ """
159
+ Then the following reply is sent:
160
+ """
161
+ 413 Request Entity Too Large
162
+
163
+ Size limit is 1kb
164
+ """
165
+
166
+ Scenario: Allow `content-location` request header
167
+ Given the annotation:
168
+ """yaml
169
+ /:
170
+ io:output: true
171
+ auth:anonymous: true
172
+ octets:context: octets
173
+ POST:
174
+ octets:store:
175
+ limit: 1kb
176
+ trust:
177
+ - https://avatars.githubusercontent.com
178
+ """
179
+ When the following request is received:
180
+ """
181
+ OPTIONS / HTTP/1.1
182
+ host: nex.toa.io
183
+ origin: https://hello.world
184
+ """
185
+ Then the following reply is sent:
186
+ """
187
+ 204 No Content
188
+ access-control-allow-headers: accept, authorization, content-type, etag, if-match, if-none-match, content-meta, content-location
189
+ """
@@ -18,6 +18,7 @@ Feature: Accessing entries
18
18
  When the stream of `lenna.ascii` is received with the following headers:
19
19
  """
20
20
  POST / HTTP/1.1
21
+ host: nex.toa.io
21
22
  content-type: application/octet-stream
22
23
  """
23
24
  Then the following reply is sent:
@@ -27,6 +28,7 @@ Feature: Accessing entries
27
28
  When the following request is received:
28
29
  """
29
30
  GET / HTTP/1.1
31
+ host: nex.toa.io
30
32
  accept: application/vnd.toa.octets.entries+yaml
31
33
  """
32
34
  Then the following reply is sent:
@@ -38,6 +40,7 @@ Feature: Accessing entries
38
40
  When the following request is received:
39
41
  """
40
42
  GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
43
+ host: nex.toa.io
41
44
  accept: text/vnd.toa.octets.entry+plain
42
45
  """
43
46
  Then the following reply is sent:
@@ -67,18 +70,21 @@ Feature: Accessing entries
67
70
  When the stream of `lenna.ascii` is received with the following headers:
68
71
  """
69
72
  POST / HTTP/1.1
73
+ host: nex.toa.io
70
74
  accept: application/yaml
71
75
  content-type: application/octet-stream
72
76
  """
73
77
  And the stream of `lenna.png` is received with the following headers:
74
78
  """
75
79
  POST / HTTP/1.1
80
+ host: nex.toa.io
76
81
  accept: application/yaml
77
82
  content-type: application/octet-stream
78
83
  """
79
84
  When the following request is received:
80
85
  """
81
86
  GET / HTTP/1.1
87
+ host: nex.toa.io
82
88
  accept: application/yaml
83
89
  """
84
90
  Then the following reply is sent:
@@ -92,6 +98,7 @@ Feature: Accessing entries
92
98
  When the following request is received:
93
99
  """
94
100
  GET / HTTP/1.1
101
+ host: nex.toa.io
95
102
  accept: application/vnd.toa.octets.entries+yaml
96
103
  """
97
104
  Then the following reply is sent:
@@ -109,13 +116,13 @@ Feature: Accessing entries
109
116
  When the following request is received:
110
117
  """
111
118
  GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
119
+ host: nex.toa.io
112
120
  accept: application/vnd.toa.octets.entry+yaml
113
121
  """
114
122
  Then the following reply is sent:
115
123
  """
116
124
  200 OK
117
125
  content-type: application/yaml
118
- content-length: 124
119
126
 
120
127
  id: 10cf16b458f759e0d617f2f3d83599ff
121
128
  type: application/octet-stream
@@ -11,8 +11,6 @@ Feature: Octets directive family
11
11
  octets:store: ~
12
12
  GET:
13
13
  octets:list: ~
14
- PUT:
15
- octets:permute: ~
16
14
  /*:
17
15
  GET:
18
16
  octets:fetch: ~
@@ -33,12 +31,24 @@ Feature: Octets directive family
33
31
  POST:
34
32
  octets:store:
35
33
  accept: image/*
34
+ /*:
35
+ GET:
36
+ octets:fetch: ~
37
+ /limit-1kb:
38
+ POST:
39
+ octets:store:
40
+ limit: 1kb
41
+ /limit-100kb:
42
+ POST:
43
+ octets:store:
44
+ limit: 100kb
36
45
  """
37
46
 
38
47
  Scenario: Basic storage operations
39
48
  When the stream of `lenna.ascii` is received with the following headers:
40
49
  """
41
50
  POST / HTTP/1.1
51
+ host: nex.toa.io
42
52
  accept: application/yaml
43
53
  content-type: application/octet-stream
44
54
  """
@@ -54,6 +64,7 @@ Feature: Octets directive family
54
64
  When the following request is received:
55
65
  """
56
66
  GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
67
+ host: nex.toa.io
57
68
  """
58
69
  Then the stream equals to `lenna.ascii` is sent with the following headers:
59
70
  """
@@ -65,6 +76,7 @@ Feature: Octets directive family
65
76
  When the following request is received:
66
77
  """
67
78
  GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
79
+ host: nex.toa.io
68
80
  if-none-match: ${{ ETAG }}
69
81
  """
70
82
  Then the following reply is sent:
@@ -74,6 +86,7 @@ Feature: Octets directive family
74
86
  When the following request is received:
75
87
  """
76
88
  GET / HTTP/1.1
89
+ host: nex.toa.io
77
90
  accept: application/yaml
78
91
  """
79
92
  Then the following reply is sent:
@@ -86,6 +99,7 @@ Feature: Octets directive family
86
99
  When the following request is received:
87
100
  """
88
101
  GET /10cf16b458f759e0d617f2f3d83599ff?foo=bar HTTP/1.1
102
+ host: nex.toa.io
89
103
  """
90
104
  Then the following reply is sent:
91
105
  """
@@ -94,6 +108,7 @@ Feature: Octets directive family
94
108
  When the following request is received:
95
109
  """
96
110
  DELETE /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
111
+ host: nex.toa.io
97
112
  """
98
113
  Then the following reply is sent:
99
114
  """
@@ -102,113 +117,122 @@ Feature: Octets directive family
102
117
  When the following request is received:
103
118
  """
104
119
  GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
120
+ host: nex.toa.io
105
121
  """
106
122
  Then the following reply is sent:
107
123
  """
108
124
  404 Not Found
109
125
  """
110
126
 
111
- Scenario: Entries permutation
112
- When the stream of `lenna.ascii` is received with the following headers:
127
+ Scenario: Media type control
128
+ When the stream of `lenna.png` is received with the following headers:
113
129
  """
114
- POST / HTTP/1.1
115
- accept: application/yaml
116
- content-type: application/octet-stream
130
+ POST /media/jpeg-or-png/ HTTP/1.1
131
+ host: nex.toa.io
132
+ content-type: image/jpeg
117
133
  """
118
- And the stream of `lenna.png` is received with the following headers:
134
+ Then the following reply is sent:
119
135
  """
120
- POST / HTTP/1.1
121
- accept: application/yaml
122
- content-type: application/octet-stream
136
+ 400 Bad Request
123
137
  """
124
- When the following request is received:
138
+ When the stream of `lenna.png` is received with the following headers:
125
139
  """
126
- GET / HTTP/1.1
127
- accept: application/yaml
140
+ POST /media/jpeg/ HTTP/1.1
141
+ host: nex.toa.io
128
142
  """
129
143
  Then the following reply is sent:
130
144
  """
131
- 200 OK
132
- content-type: application/yaml
133
-
134
- - 10cf16b458f759e0d617f2f3d83599ff
135
- - 814a0034f5549e957ee61360d87457e5
145
+ 415 Unsupported Media Type
136
146
  """
137
- When the following request is received:
147
+ When the stream of `lenna.png` is received with the following headers:
138
148
  """
139
- PUT / HTTP/1.1
140
- content-type: application/yaml
141
-
142
- - 814a0034f5549e957ee61360d87457e5
143
- - 10cf16b458f759e0d617f2f3d83599ff
149
+ POST /media/jpeg-or-png/ HTTP/1.1
150
+ host: nex.toa.io
144
151
  """
145
152
  Then the following reply is sent:
146
153
  """
147
- 204 No Content
154
+ 201 Created
148
155
  """
149
- When the following request is received:
156
+
157
+ Scenario: Size limit
158
+ When the stream of `albert.jpg` is received with the following headers:
150
159
  """
151
- GET / HTTP/1.1
152
- accept: application/yaml
160
+ POST /limit-1kb/ HTTP/1.1
161
+ host: nex.toa.io
162
+ content-type: image/jpeg
163
+ accept: text/plain
153
164
  """
154
165
  Then the following reply is sent:
155
166
  """
156
- 200 OK
157
- content-type: application/yaml
167
+ 413 Request Entity Too Large
158
168
 
159
- - 814a0034f5549e957ee61360d87457e5
160
- - 10cf16b458f759e0d617f2f3d83599ff
169
+ Size limit is 1kb
161
170
  """
162
171
 
163
- Scenario: Media type control
164
- When the stream of `lenna.png` is received with the following headers:
172
+ When the stream of `albert.jpg` is received with the following headers:
165
173
  """
166
- POST /media/jpeg-or-png/ HTTP/1.1
174
+ POST /limit-100kb/ HTTP/1.1
175
+ host: nex.toa.io
167
176
  content-type: image/jpeg
168
177
  """
169
178
  Then the following reply is sent:
170
179
  """
171
- 400 Bad Request
180
+ 201 Created
172
181
  """
173
- When the stream of `lenna.png` is received with the following headers:
182
+
183
+ Scenario Outline: Detecting `<type>`
184
+ When the stream of `sample.<ext>` is received with the following headers:
174
185
  """
175
- POST /media/jpeg/ HTTP/1.1
186
+ POST /media/images/ HTTP/1.1
187
+ host: nex.toa.io
188
+ accept: application/yaml
176
189
  """
177
190
  Then the following reply is sent:
178
191
  """
179
- 415 Unsupported Media Type
192
+ 201 Created
193
+
194
+ type: <type>
180
195
  """
181
- When the stream of `lenna.png` is received with the following headers:
196
+ Examples:
197
+ | ext | type |
198
+ | jpeg | image/jpeg |
199
+ | jxl | image/jxl |
200
+ | gif | image/gif |
201
+ | heic | image/heic |
202
+ | avif | image/avif |
203
+ | webp | image/webp |
204
+
205
+ Scenario: Accepting `image/svg+xml`
206
+ When the stream of `sample.svg` is received with the following headers:
182
207
  """
183
- POST /media/jpeg-or-png/ HTTP/1.1
208
+ POST /media/images/ HTTP/1.1
209
+ host: nex.toa.io
210
+ content-type: image/svg+xml
211
+ accept: application/yaml
184
212
  """
185
213
  Then the following reply is sent:
186
214
  """
187
215
  201 Created
216
+
217
+ type: image/svg+xml
188
218
  """
189
219
 
190
- Scenario Outline: Receiving <format> images
191
- When the stream of `sample.<format>` is received with the following headers:
220
+ Scenario: Rejection video/avi
221
+ When the stream of `sample.avi` is received with the following headers:
192
222
  """
193
223
  POST /media/images/ HTTP/1.1
224
+ host: nex.toa.io
194
225
  """
195
226
  Then the following reply is sent:
196
227
  """
197
- 201 Created
228
+ 415 Unsupported Media Type
198
229
  """
199
- Examples:
200
- | format |
201
- | jpeg |
202
- | jxl |
203
- | gif |
204
- | heic |
205
- | avif |
206
- | webp |
207
230
 
208
231
  Scenario: Fetching non-existent BLOB
209
232
  When the following request is received:
210
233
  """
211
234
  GET /whatever HTTP/1.1
235
+ host: nex.toa.io
212
236
  """
213
237
  Then the following reply is sent:
214
238
  """
@@ -219,12 +243,14 @@ Feature: Octets directive family
219
243
  When the stream of `lenna.ascii` is received with the following headers:
220
244
  """
221
245
  POST / HTTP/1.1
246
+ host: nex.toa.io
222
247
  accept: application/yaml
223
248
  content-type: application/octet-stream
224
249
  """
225
250
  And the following request is received:
226
251
  """
227
252
  GET /10cf16b458f759e0d617f2f3d83599ff/ HTTP/1.1
253
+ host: nex.toa.io
228
254
  accept: text/plain
229
255
  """
230
256
  Then the following reply is sent:
@@ -235,7 +261,7 @@ Feature: Octets directive family
235
261
  Trailing slash is redundant.
236
262
  """
237
263
 
238
- Scenario: Original BLOLB is not accessible
264
+ Scenario: Original BLOB is not accessible
239
265
  Given the annotation:
240
266
  """yaml
241
267
  /:
@@ -253,6 +279,7 @@ Feature: Octets directive family
253
279
  When the stream of `lenna.ascii` is received with the following headers:
254
280
  """
255
281
  POST / HTTP/1.1
282
+ host: nex.toa.io
256
283
  """
257
284
  Then the following reply is sent:
258
285
  """
@@ -261,6 +288,7 @@ Feature: Octets directive family
261
288
  When the following request is received:
262
289
  """
263
290
  GET /10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
291
+ host: nex.toa.io
264
292
  accept: text/plain
265
293
  """
266
294
  Then the following reply is sent:
@@ -19,6 +19,7 @@ Feature: Octets `content-meta` header
19
19
  When the stream of `lenna.ascii` is received with the following headers:
20
20
  """
21
21
  POST /meta-header/ HTTP/1.1
22
+ host: nex.toa.io
22
23
  content-type: application/octet-stream
23
24
  content-meta: foo, bar=baz=1
24
25
  content-meta: baz=1
@@ -30,6 +31,7 @@ Feature: Octets `content-meta` header
30
31
  When the following request is received:
31
32
  """
32
33
  GET /meta-header/10cf16b458f759e0d617f2f3d83599ff HTTP/1.1
34
+ host: nex.toa.io
33
35
  accept: application/vnd.toa.octets.entry+yaml
34
36
  """
35
37
  Then the following reply is sent:
@@ -56,6 +58,7 @@ Feature: Octets `content-meta` header
56
58
  When the following request is received:
57
59
  """
58
60
  OPTIONS / HTTP/1.1
61
+ host: nex.toa.io
59
62
  origin: https://example.com
60
63
  """
61
64
  Then the following reply is sent: