@toa.io/extensions.exposition 1.0.0-alpha.6 → 1.0.0-alpha.60

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