@toa.io/extensions.exposition 1.0.0-alpha.9 → 1.0.0-alpha.91

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 (489) hide show
  1. package/components/context.toa.yaml +2 -2
  2. package/components/identity.bans/manifest.toa.yaml +14 -6
  3. package/components/identity.bans/operations/transit.d.ts +14 -0
  4. package/components/identity.bans/operations/transit.js +11 -0
  5. package/components/identity.bans/operations/transit.js.map +1 -0
  6. package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -0
  7. package/components/identity.bans/source/transit.ts +21 -0
  8. package/components/identity.bans/tsconfig.json +9 -0
  9. package/components/identity.basic/manifest.toa.yaml +20 -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 +8 -6
  18. package/components/identity.basic/operations/transit.js.map +1 -1
  19. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  20. package/components/identity.basic/operations/types.d.ts +8 -4
  21. package/components/identity.basic/source/authenticate.ts +16 -5
  22. package/components/identity.basic/source/incept.ts +38 -0
  23. package/components/identity.basic/source/transit.ts +11 -9
  24. package/components/identity.basic/source/types.ts +8 -4
  25. package/components/identity.federation/manifest.toa.yaml +32 -15
  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 +4 -2
  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 +5 -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 +16 -6
  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 -4
  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 +9 -11
  96. package/components/octets.storage/operations/get.js +3 -3
  97. package/components/octets.storage/operations/head.js +7 -0
  98. package/components/octets.storage/operations/put.js +121 -0
  99. package/documentation/access.md +75 -38
  100. package/documentation/authorities.md +49 -0
  101. package/documentation/cache.md +8 -1
  102. package/documentation/components.md +61 -22
  103. package/documentation/flow.md +44 -0
  104. package/documentation/identity.md +17 -22
  105. package/documentation/introspection.md +82 -0
  106. package/documentation/octets.md +95 -67
  107. package/documentation/protocol.md +13 -3
  108. package/documentation/query.md +29 -4
  109. package/documentation/require.md +15 -0
  110. package/documentation/tree.md +13 -0
  111. package/documentation/vary.md +14 -14
  112. package/features/access.feature +77 -46
  113. package/features/annotation.feature +1 -0
  114. package/features/auth.claim.feature +170 -0
  115. package/features/authorities.basic.feature +141 -0
  116. package/features/authorities.feature +32 -0
  117. package/features/authorities.federation.feature +100 -0
  118. package/features/authorities.tokens.feature +117 -0
  119. package/features/body.feature +2 -0
  120. package/features/cache.feature +109 -5
  121. package/features/cors.feature +6 -1
  122. package/features/debug.feature +34 -0
  123. package/features/directives.feature +3 -0
  124. package/features/dynamic.feature +48 -0
  125. package/features/errors.feature +32 -7
  126. package/features/etag.feature +108 -0
  127. package/features/flow.feature +96 -0
  128. package/features/identity.bans.feature +137 -0
  129. package/features/identity.basic.feature +97 -26
  130. package/features/identity.feature +18 -6
  131. package/features/identity.federation.feature +66 -11
  132. package/features/identity.roles.feature +250 -7
  133. package/features/identity.tokens.feature +54 -4
  134. package/features/introspection.feature +153 -0
  135. package/features/io.feature +38 -1
  136. package/features/methods.feature +47 -0
  137. package/features/{octets.meta.feature → octets.attributes.feature} +16 -12
  138. package/features/octets.cloudinary.feature +68 -0
  139. package/features/octets.download.feature +189 -0
  140. package/features/octets.entries.feature +13 -55
  141. package/features/octets.feature +83 -107
  142. package/features/octets.workflows.feature +242 -58
  143. package/features/probes.feature +14 -0
  144. package/features/{queries.feature → query.feature} +77 -2
  145. package/features/realtime.feature +34 -0
  146. package/features/require.feature +67 -0
  147. package/features/response.feature +38 -3
  148. package/features/routes.feature +93 -2
  149. package/features/server.feature +21 -0
  150. package/features/steps/.env.example +3 -0
  151. package/features/steps/Database.ts +16 -9
  152. package/features/steps/Gateway.ts +23 -6
  153. package/features/steps/IdP.ts +30 -25
  154. package/features/steps/Parameters.ts +44 -1
  155. package/features/steps/Realtime.ts +151 -0
  156. package/features/steps/components/echo/manifest.toa.yaml +14 -1
  157. package/features/steps/components/echo/operations/identity.js +7 -0
  158. package/features/steps/components/echo/operations/parameters.js +7 -0
  159. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  160. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  161. package/features/steps/components/octets.tester/manifest.toa.yaml +22 -2
  162. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  163. package/features/steps/components/octets.tester/operations/bar.js +0 -1
  164. package/features/steps/components/octets.tester/operations/baz.js +0 -2
  165. package/features/steps/components/octets.tester/operations/foo.js +1 -2
  166. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  167. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  168. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  169. package/features/steps/components/pots/manifest.toa.yaml +14 -3
  170. package/features/steps/components/users/manifest.toa.yaml +0 -1
  171. package/features/steps/components/users.properties/manifest.toa.yaml +1 -1
  172. package/features/streams.feature +5 -0
  173. package/features/timing.feature +4 -1
  174. package/features/vary.feature +71 -0
  175. package/package.json +23 -14
  176. package/readme.md +19 -14
  177. package/schemas/annotation.cos.yaml +1 -1
  178. package/schemas/method.cos.yaml +1 -1
  179. package/schemas/node.cos.yaml +2 -0
  180. package/schemas/octets/put.cos.yaml +25 -0
  181. package/schemas/query.cos.yaml +4 -10
  182. package/source/Annotation.ts +3 -3
  183. package/source/Branch.ts +1 -0
  184. package/source/Composition.ts +0 -6
  185. package/source/Context.ts +1 -0
  186. package/source/Directive.test.ts +1 -1
  187. package/source/Directive.ts +5 -6
  188. package/source/Endpoint.ts +59 -17
  189. package/source/Factory.ts +22 -13
  190. package/source/Gateway.ts +65 -18
  191. package/source/HTTP/Context.ts +26 -3
  192. package/source/HTTP/Server.ts +60 -46
  193. package/source/HTTP/exceptions.ts +13 -1
  194. package/source/HTTP/formats/index.ts +3 -3
  195. package/source/HTTP/messages.test.ts +45 -2
  196. package/source/HTTP/messages.ts +32 -8
  197. package/source/Introspection.ts +11 -0
  198. package/source/Mapping.ts +68 -21
  199. package/source/Query.test.ts +3 -3
  200. package/source/Query.ts +123 -33
  201. package/source/RTD/Context.ts +1 -1
  202. package/source/RTD/Endpoint.ts +3 -0
  203. package/source/RTD/Method.ts +16 -0
  204. package/source/RTD/Node.ts +29 -13
  205. package/source/RTD/Route.ts +5 -4
  206. package/source/RTD/Tree.ts +2 -2
  207. package/source/RTD/factory.ts +5 -2
  208. package/source/RTD/syntax/parse.test.ts +1 -1
  209. package/source/RTD/syntax/parse.ts +37 -24
  210. package/source/RTD/syntax/types.ts +6 -4
  211. package/source/Remotes.ts +7 -6
  212. package/source/Tenant.ts +6 -20
  213. package/source/deployment.ts +33 -23
  214. package/source/directives/auth/Authorization.ts +45 -22
  215. package/source/directives/auth/Delegate.ts +42 -0
  216. package/source/directives/auth/Echo.ts +19 -5
  217. package/source/directives/auth/Federation.ts +84 -0
  218. package/source/directives/auth/Incept.ts +4 -3
  219. package/source/directives/auth/Role.test.ts +53 -6
  220. package/source/directives/auth/Role.ts +22 -14
  221. package/source/directives/auth/Scheme.ts +1 -1
  222. package/source/directives/auth/split.ts +1 -1
  223. package/source/directives/auth/types.ts +2 -2
  224. package/source/directives/cache/Cache.ts +13 -6
  225. package/source/directives/cache/Control.ts +42 -16
  226. package/source/directives/cors/CORS.ts +1 -1
  227. package/source/directives/dev/Development.ts +1 -1
  228. package/source/directives/flow/Compose.ts +68 -0
  229. package/source/directives/flow/Fetch.ts +86 -0
  230. package/source/directives/flow/Flow.ts +42 -0
  231. package/source/directives/flow/index.ts +3 -0
  232. package/source/directives/flow/types.ts +7 -0
  233. package/source/directives/index.ts +3 -1
  234. package/source/directives/io/IO.ts +1 -1
  235. package/source/directives/io/Input.ts +4 -4
  236. package/source/directives/io/Output.ts +5 -4
  237. package/source/directives/octets/Context.ts +3 -2
  238. package/source/directives/octets/Delete.ts +11 -11
  239. package/source/directives/octets/Get.ts +84 -0
  240. package/source/directives/octets/Octets.ts +8 -12
  241. package/source/directives/octets/{Store.ts → Put.ts} +36 -21
  242. package/source/directives/octets/Workflow.ts +1 -1
  243. package/source/directives/octets/bytes.test.ts +30 -0
  244. package/source/directives/octets/bytes.ts +18 -0
  245. package/source/directives/octets/schemas.ts +4 -8
  246. package/source/directives/octets/workflows/Execution.ts +60 -8
  247. package/source/directives/octets/workflows/Workflow.ts +4 -4
  248. package/source/directives/require/Directive.ts +5 -0
  249. package/source/directives/require/Headers.ts +20 -0
  250. package/source/directives/require/Require.ts +28 -0
  251. package/source/directives/require/index.ts +3 -0
  252. package/source/directives/vary/Directive.ts +2 -1
  253. package/source/directives/vary/Embed.ts +14 -8
  254. package/source/directives/vary/Vary.ts +6 -4
  255. package/source/directives/vary/embeddings/Authority.ts +8 -0
  256. package/source/directives/vary/embeddings/Embedding.ts +2 -1
  257. package/source/directives/vary/embeddings/Language.ts +2 -2
  258. package/source/directives/vary/embeddings/Parameter.ts +14 -0
  259. package/source/directives/vary/embeddings/index.ts +6 -4
  260. package/source/exceptions.ts +17 -11
  261. package/source/manifest.ts +10 -11
  262. package/source/root.ts +5 -5
  263. package/source/schemas.ts +1 -1
  264. package/transpiled/Annotation.d.ts +3 -3
  265. package/transpiled/Branch.d.ts +1 -0
  266. package/transpiled/Composition.d.ts +0 -1
  267. package/transpiled/Composition.js +0 -4
  268. package/transpiled/Composition.js.map +1 -1
  269. package/transpiled/Context.d.ts +1 -0
  270. package/transpiled/Directive.js +5 -5
  271. package/transpiled/Directive.js.map +1 -1
  272. package/transpiled/Endpoint.d.ts +6 -4
  273. package/transpiled/Endpoint.js +39 -9
  274. package/transpiled/Endpoint.js.map +1 -1
  275. package/transpiled/Factory.d.ts +3 -2
  276. package/transpiled/Factory.js +18 -10
  277. package/transpiled/Factory.js.map +1 -1
  278. package/transpiled/Gateway.d.ts +3 -0
  279. package/transpiled/Gateway.js +49 -10
  280. package/transpiled/Gateway.js.map +1 -1
  281. package/transpiled/HTTP/Context.d.ts +9 -2
  282. package/transpiled/HTTP/Context.js +16 -2
  283. package/transpiled/HTTP/Context.js.map +1 -1
  284. package/transpiled/HTTP/Server.d.ts +13 -2
  285. package/transpiled/HTTP/Server.js +46 -39
  286. package/transpiled/HTTP/Server.js.map +1 -1
  287. package/transpiled/HTTP/exceptions.d.ts +7 -1
  288. package/transpiled/HTTP/exceptions.js +13 -1
  289. package/transpiled/HTTP/exceptions.js.map +1 -1
  290. package/transpiled/HTTP/formats/index.js +3 -3
  291. package/transpiled/HTTP/formats/index.js.map +1 -1
  292. package/transpiled/HTTP/messages.d.ts +2 -1
  293. package/transpiled/HTTP/messages.js +30 -7
  294. package/transpiled/HTTP/messages.js.map +1 -1
  295. package/transpiled/Introspection.d.ts +9 -0
  296. package/transpiled/Introspection.js +3 -0
  297. package/transpiled/Introspection.js.map +1 -0
  298. package/transpiled/Mapping.d.ts +11 -2
  299. package/transpiled/Mapping.js +50 -19
  300. package/transpiled/Mapping.js.map +1 -1
  301. package/transpiled/Query.d.ts +10 -1
  302. package/transpiled/Query.js +87 -30
  303. package/transpiled/Query.js.map +1 -1
  304. package/transpiled/RTD/Context.d.ts +1 -1
  305. package/transpiled/RTD/Endpoint.d.ts +1 -0
  306. package/transpiled/RTD/Method.d.ts +4 -0
  307. package/transpiled/RTD/Method.js +11 -0
  308. package/transpiled/RTD/Method.js.map +1 -1
  309. package/transpiled/RTD/Node.d.ts +4 -1
  310. package/transpiled/RTD/Node.js +23 -12
  311. package/transpiled/RTD/Node.js.map +1 -1
  312. package/transpiled/RTD/Route.d.ts +1 -1
  313. package/transpiled/RTD/Route.js +0 -1
  314. package/transpiled/RTD/Route.js.map +1 -1
  315. package/transpiled/RTD/Tree.d.ts +1 -1
  316. package/transpiled/RTD/Tree.js.map +1 -1
  317. package/transpiled/RTD/factory.js +5 -2
  318. package/transpiled/RTD/factory.js.map +1 -1
  319. package/transpiled/RTD/syntax/parse.js +34 -22
  320. package/transpiled/RTD/syntax/parse.js.map +1 -1
  321. package/transpiled/RTD/syntax/types.d.ts +5 -3
  322. package/transpiled/RTD/syntax/types.js +1 -1
  323. package/transpiled/RTD/syntax/types.js.map +1 -1
  324. package/transpiled/Remotes.d.ts +4 -4
  325. package/transpiled/Remotes.js +6 -5
  326. package/transpiled/Remotes.js.map +1 -1
  327. package/transpiled/Tenant.d.ts +5 -5
  328. package/transpiled/Tenant.js +2 -13
  329. package/transpiled/Tenant.js.map +1 -1
  330. package/transpiled/deployment.d.ts +1 -1
  331. package/transpiled/deployment.js +28 -20
  332. package/transpiled/deployment.js.map +1 -1
  333. package/transpiled/directives/auth/Authorization.d.ts +1 -1
  334. package/transpiled/directives/auth/Authorization.js +33 -19
  335. package/transpiled/directives/auth/Authorization.js.map +1 -1
  336. package/transpiled/directives/auth/Delegate.d.ts +10 -0
  337. package/transpiled/directives/auth/Delegate.js +34 -0
  338. package/transpiled/directives/auth/Delegate.js.map +1 -0
  339. package/transpiled/directives/auth/Echo.d.ts +4 -3
  340. package/transpiled/directives/auth/Echo.js +13 -3
  341. package/transpiled/directives/auth/Echo.js.map +1 -1
  342. package/transpiled/directives/auth/Federation.d.ts +16 -0
  343. package/transpiled/directives/auth/Federation.js +57 -0
  344. package/transpiled/directives/auth/Federation.js.map +1 -0
  345. package/transpiled/directives/auth/Incept.js +4 -3
  346. package/transpiled/directives/auth/Incept.js.map +1 -1
  347. package/transpiled/directives/auth/Role.d.ts +4 -1
  348. package/transpiled/directives/auth/Role.js +20 -14
  349. package/transpiled/directives/auth/Role.js.map +1 -1
  350. package/transpiled/directives/auth/Scheme.js +1 -1
  351. package/transpiled/directives/auth/Scheme.js.map +1 -1
  352. package/transpiled/directives/auth/split.js +1 -1
  353. package/transpiled/directives/auth/split.js.map +1 -1
  354. package/transpiled/directives/auth/types.d.ts +1 -1
  355. package/transpiled/directives/cache/Cache.d.ts +3 -3
  356. package/transpiled/directives/cache/Cache.js +10 -4
  357. package/transpiled/directives/cache/Cache.js.map +1 -1
  358. package/transpiled/directives/cache/Control.d.ts +2 -1
  359. package/transpiled/directives/cache/Control.js +29 -12
  360. package/transpiled/directives/cache/Control.js.map +1 -1
  361. package/transpiled/directives/cors/CORS.js +1 -1
  362. package/transpiled/directives/cors/CORS.js.map +1 -1
  363. package/transpiled/directives/dev/Development.js +1 -1
  364. package/transpiled/directives/dev/Development.js.map +1 -1
  365. package/transpiled/directives/flow/Compose.d.ts +8 -0
  366. package/transpiled/directives/flow/Compose.js +74 -0
  367. package/transpiled/directives/flow/Compose.js.map +1 -0
  368. package/transpiled/directives/flow/Fetch.d.ts +12 -0
  369. package/transpiled/directives/flow/Fetch.js +58 -0
  370. package/transpiled/directives/flow/Fetch.js.map +1 -0
  371. package/transpiled/directives/flow/Flow.d.ts +10 -0
  372. package/transpiled/directives/flow/Flow.js +33 -0
  373. package/transpiled/directives/flow/Flow.js.map +1 -0
  374. package/transpiled/directives/flow/index.d.ts +2 -0
  375. package/transpiled/directives/flow/index.js +6 -0
  376. package/transpiled/directives/flow/index.js.map +1 -0
  377. package/transpiled/directives/flow/types.d.ts +6 -0
  378. package/transpiled/directives/flow/types.js.map +1 -0
  379. package/transpiled/directives/index.js +3 -1
  380. package/transpiled/directives/index.js.map +1 -1
  381. package/transpiled/directives/io/IO.js +1 -1
  382. package/transpiled/directives/io/IO.js.map +1 -1
  383. package/transpiled/directives/io/Input.js +2 -2
  384. package/transpiled/directives/io/Input.js.map +1 -1
  385. package/transpiled/directives/io/Output.js +2 -2
  386. package/transpiled/directives/io/Output.js.map +1 -1
  387. package/transpiled/directives/octets/Context.js +4 -24
  388. package/transpiled/directives/octets/Context.js.map +1 -1
  389. package/transpiled/directives/octets/Delete.js +8 -8
  390. package/transpiled/directives/octets/Delete.js.map +1 -1
  391. package/transpiled/directives/octets/{Fetch.d.ts → Get.d.ts} +5 -6
  392. package/transpiled/directives/octets/{Fetch.js → Get.js} +24 -29
  393. package/transpiled/directives/octets/Get.js.map +1 -0
  394. package/transpiled/directives/octets/Octets.js +8 -12
  395. package/transpiled/directives/octets/Octets.js.map +1 -1
  396. package/transpiled/directives/octets/{Store.d.ts → Put.d.ts} +7 -2
  397. package/transpiled/directives/octets/{Store.js → Put.js} +26 -19
  398. package/transpiled/directives/octets/Put.js.map +1 -0
  399. package/transpiled/directives/octets/Workflow.js +1 -1
  400. package/transpiled/directives/octets/Workflow.js.map +1 -1
  401. package/transpiled/directives/octets/bytes.d.ts +1 -0
  402. package/transpiled/directives/octets/bytes.js +21 -0
  403. package/transpiled/directives/octets/bytes.js.map +1 -0
  404. package/transpiled/directives/octets/schemas.d.ts +4 -8
  405. package/transpiled/directives/octets/schemas.js +3 -6
  406. package/transpiled/directives/octets/schemas.js.map +1 -1
  407. package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
  408. package/transpiled/directives/octets/workflows/Execution.js +44 -9
  409. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  410. package/transpiled/directives/octets/workflows/Workflow.d.ts +1 -1
  411. package/transpiled/directives/octets/workflows/Workflow.js +2 -1
  412. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  413. package/transpiled/directives/require/Directive.d.ts +4 -0
  414. package/transpiled/directives/require/Directive.js +3 -0
  415. package/transpiled/directives/require/Directive.js.map +1 -0
  416. package/transpiled/directives/require/Headers.d.ts +7 -0
  417. package/transpiled/directives/require/Headers.js +19 -0
  418. package/transpiled/directives/require/Headers.js.map +1 -0
  419. package/transpiled/directives/require/Require.d.ts +9 -0
  420. package/transpiled/directives/require/Require.js +27 -0
  421. package/transpiled/directives/require/Require.js.map +1 -0
  422. package/transpiled/directives/require/index.d.ts +2 -0
  423. package/transpiled/directives/require/index.js +6 -0
  424. package/transpiled/directives/require/index.js.map +1 -0
  425. package/transpiled/directives/vary/Directive.d.ts +2 -1
  426. package/transpiled/directives/vary/Embed.d.ts +2 -1
  427. package/transpiled/directives/vary/Embed.js +8 -6
  428. package/transpiled/directives/vary/Embed.js.map +1 -1
  429. package/transpiled/directives/vary/Vary.d.ts +2 -2
  430. package/transpiled/directives/vary/Vary.js +3 -3
  431. package/transpiled/directives/vary/Vary.js.map +1 -1
  432. package/transpiled/directives/vary/embeddings/Authority.d.ts +5 -0
  433. package/transpiled/directives/vary/embeddings/Authority.js +10 -0
  434. package/transpiled/directives/vary/embeddings/Authority.js.map +1 -0
  435. package/transpiled/directives/vary/embeddings/Embedding.d.ts +2 -1
  436. package/transpiled/directives/vary/embeddings/Language.js +2 -2
  437. package/transpiled/directives/vary/embeddings/Language.js.map +1 -1
  438. package/transpiled/directives/vary/embeddings/Parameter.d.ts +7 -0
  439. package/transpiled/directives/vary/embeddings/Parameter.js +14 -0
  440. package/transpiled/directives/vary/embeddings/Parameter.js.map +1 -0
  441. package/transpiled/directives/vary/embeddings/index.d.ts +2 -2
  442. package/transpiled/directives/vary/embeddings/index.js +8 -4
  443. package/transpiled/directives/vary/embeddings/index.js.map +1 -1
  444. package/transpiled/exceptions.d.ts +3 -2
  445. package/transpiled/exceptions.js +10 -5
  446. package/transpiled/exceptions.js.map +1 -1
  447. package/transpiled/manifest.js +10 -11
  448. package/transpiled/manifest.js.map +1 -1
  449. package/transpiled/root.js +5 -5
  450. package/transpiled/root.js.map +1 -1
  451. package/transpiled/schemas.d.ts +1 -1
  452. package/transpiled/schemas.js +2 -2
  453. package/transpiled/schemas.js.map +1 -1
  454. package/transpiled/tsconfig.tsbuildinfo +1 -1
  455. package/tsconfig.json +8 -2
  456. package/components/identity.basic/operations/create.d.ts +0 -10
  457. package/components/identity.basic/operations/create.js +0 -10
  458. package/components/identity.basic/operations/create.js.map +0 -1
  459. package/components/identity.basic/source/create.ts +0 -18
  460. package/components/identity.federation/operations/create.d.ts +0 -10
  461. package/components/identity.federation/operations/create.js.map +0 -1
  462. package/components/identity.federation/operations/schemas.d.ts +0 -59
  463. package/components/identity.federation/operations/schemas.js +0 -9
  464. package/components/identity.federation/operations/schemas.js.map +0 -1
  465. package/components/identity.federation/operations/types.js.map +0 -1
  466. package/components/identity.federation/source/schemas.ts +0 -61
  467. package/components/octets.storage/operations/fetch.js +0 -46
  468. package/components/octets.storage/operations/list.js +0 -7
  469. package/components/octets.storage/operations/permute.js +0 -7
  470. package/components/octets.storage/operations/store.js +0 -11
  471. package/features/steps/components/octets.tester/operations/diversify.js +0 -14
  472. package/schemas/octets/context.cos.yaml +0 -1
  473. package/schemas/octets/fetch.cos.yaml +0 -3
  474. package/schemas/octets/permute.cos.yaml +0 -1
  475. package/schemas/octets/store.cos.yaml +0 -3
  476. package/source/HTTP/Server.test.ts +0 -126
  477. package/source/directives/octets/Fetch.ts +0 -100
  478. package/source/directives/octets/List.ts +0 -72
  479. package/source/directives/octets/Permute.ts +0 -44
  480. package/transpiled/directives/octets/Fetch.js.map +0 -1
  481. package/transpiled/directives/octets/List.d.ts +0 -16
  482. package/transpiled/directives/octets/List.js +0 -74
  483. package/transpiled/directives/octets/List.js.map +0 -1
  484. package/transpiled/directives/octets/Permute.d.ts +0 -11
  485. package/transpiled/directives/octets/Permute.js +0 -58
  486. package/transpiled/directives/octets/Permute.js.map +0 -1
  487. package/transpiled/directives/octets/Store.js.map +0 -1
  488. /package/schemas/octets/{list.cos.yaml → get.cos.yaml} +0 -0
  489. /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
@@ -1,10 +0,0 @@
1
- import type { Context } from './types';
2
- interface CreateInput {
3
- id: string;
4
- credentials: string;
5
- }
6
- interface CreateOutput {
7
- id: string;
8
- }
9
- export declare const effect: (input: CreateInput, context: Context) => Promise<Error | Promise<CreateOutput>>;
10
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../source/create.ts"],"names":[],"mappings":";;;AAAA,2EAAkE;AAClE,mCAA2C;AAI3C,KAAK,UAAU,MAAM,CAAE,KAAkB,EAAE,OAAgB;IACzD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,IAAA,qBAAe,EAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAE1F,MAAM,OAAO,GAAY;QACvB,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAA+B;QAChD,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;KACxB,CAAA;IAED,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAC7C,CAAC;AAWY,QAAA,MAAM,GAAG,IAAA,4CAAkB,EAAC,MAAM,CAAC,CAAA"}
@@ -1,59 +0,0 @@
1
- /**
2
- * This file was automatically generated by json-schema-to-typescript.
3
- * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
- * and run json-schema-to-typescript to regenerate this file.
5
- */
6
- export interface Schemas {
7
- configuration?: {
8
- trust?: TrustConfiguration[];
9
- /**
10
- * Force identities to be explicitly created or incept before being used in authentication
11
- */
12
- explicit_identity_creation?: boolean;
13
- /**
14
- * The value of `sub` of an identity token that will be assigned the `system` Role
15
- */
16
- principal?: {
17
- iss: string;
18
- sub: string;
19
- };
20
- };
21
- entity?: {
22
- /**
23
- * The issuer, or signer, of the token, URI like `https://accounts.google.com`
24
- */
25
- iss: string;
26
- /**
27
- * the ID that represents the principal making the request
28
- */
29
- sub: string;
30
- };
31
- }
32
- export interface TrustConfiguration {
33
- /**
34
- * Allowed origins for a token `iss` field
35
- */
36
- issuer: string;
37
- /**
38
- * Acceptable `aud` value(s)
39
- *
40
- * @minItems 1
41
- */
42
- audience?: [string, ...string[]];
43
- /**
44
- * Symmetric encryption secrets
45
- */
46
- secrets?: {
47
- /**
48
- * This interface was referenced by `undefined`'s JSON-Schema definition
49
- * via the `patternProperty` "^HS\d{3}$".
50
- */
51
- [k: string]: {
52
- /**
53
- * This interface was referenced by `undefined`'s JSON-Schema definition
54
- * via the `patternProperty` "^\w+$".
55
- */
56
- [k: string]: string;
57
- };
58
- };
59
- }
@@ -1,9 +0,0 @@
1
- "use strict";
2
- /* eslint-disable */
3
- /**
4
- * This file was automatically generated by json-schema-to-typescript.
5
- * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
6
- * and run json-schema-to-typescript to regenerate this file.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- //# sourceMappingURL=schemas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../source/schemas.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB;;;;GAIG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../source/types.ts"],"names":[],"mappings":""}
@@ -1,61 +0,0 @@
1
- /* eslint-disable */
2
- /**
3
- * This file was automatically generated by json-schema-to-typescript.
4
- * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
- * and run json-schema-to-typescript to regenerate this file.
6
- */
7
-
8
- export interface Schemas {
9
- configuration?: {
10
- trust?: TrustConfiguration[];
11
- /**
12
- * Force identities to be explicitly created or incept before being used in authentication
13
- */
14
- explicit_identity_creation?: boolean;
15
- /**
16
- * The value of `sub` of an identity token that will be assigned the `system` Role
17
- */
18
- principal?: {
19
- iss: string;
20
- sub: string;
21
- };
22
- };
23
- entity?: {
24
- /**
25
- * The issuer, or signer, of the token, URI like `https://accounts.google.com`
26
- */
27
- iss: string;
28
- /**
29
- * the ID that represents the principal making the request
30
- */
31
- sub: string;
32
- };
33
- }
34
- export interface TrustConfiguration {
35
- /**
36
- * Allowed origins for a token `iss` field
37
- */
38
- issuer: string;
39
- /**
40
- * Acceptable `aud` value(s)
41
- *
42
- * @minItems 1
43
- */
44
- audience?: [string, ...string[]];
45
- /**
46
- * Symmetric encryption secrets
47
- */
48
- secrets?: {
49
- /**
50
- * This interface was referenced by `undefined`'s JSON-Schema definition
51
- * via the `patternProperty` "^HS\d{3}$".
52
- */
53
- [k: string]: {
54
- /**
55
- * This interface was referenced by `undefined`'s JSON-Schema definition
56
- * via the `patternProperty` "^\w+$".
57
- */
58
- [k: string]: string;
59
- };
60
- };
61
- }
@@ -1,46 +0,0 @@
1
- 'use strict'
2
-
3
- const { posix } = require('node:path')
4
- const { Err } = require('error-value')
5
-
6
- async function fetch (input, context) {
7
- const storage = context.storages[input.storage]
8
- const basename = posix.basename(input.path)
9
- const path = posix.dirname(input.path)
10
- const [id, suffix] = split(basename)
11
- const entry = await storage.get(posix.join(path, id))
12
-
13
- if (entry instanceof Error)
14
- return entry
15
-
16
- let variant
17
-
18
- if (suffix !== undefined) {
19
- variant = entry.variants.find((variant) => variant.name === suffix)
20
-
21
- if (variant === undefined)
22
- return NOT_FOUND
23
- }
24
-
25
- const stream = await storage.fetch(input.path)
26
-
27
- if (stream instanceof Error)
28
- return stream
29
-
30
- const { type, size } = variant ?? entry
31
-
32
- return { stream, checksum: entry.id, type, size }
33
- }
34
-
35
- function split (basename) {
36
- const dot = basename.indexOf('.')
37
-
38
- if (dot === -1)
39
- return [basename, undefined]
40
- else
41
- return [basename.slice(0, dot), basename.slice(dot + 1)]
42
- }
43
-
44
- const NOT_FOUND = Err('NOT_FOUND')
45
-
46
- exports.effect = fetch
@@ -1,7 +0,0 @@
1
- 'use strict'
2
-
3
- function list (input, context) {
4
- return context.storages[input.storage].list(input.path)
5
- }
6
-
7
- exports.effect = list
@@ -1,7 +0,0 @@
1
- 'use strict'
2
-
3
- function permute (input, context) {
4
- return context.storages[input.storage].permute(input.path, input.list)
5
- }
6
-
7
- exports.effect = permute
@@ -1,11 +0,0 @@
1
- 'use strict'
2
-
3
- function store (input, context) {
4
- const { storage, request, accept, meta } = input
5
- const path = request.url
6
- const claim = request.headers['content-type']
7
-
8
- return context.storages[storage].put(path, request, { claim, accept, meta })
9
- }
10
-
11
- exports.effect = store
@@ -1,14 +0,0 @@
1
- 'use strict'
2
-
3
- const { join } = require('node:path')
4
- const { createReadStream } = require('node:fs')
5
-
6
- const lenna = join(__dirname, 'lenna.png')
7
-
8
- async function diversify (input, context) {
9
- const stream = createReadStream(lenna)
10
-
11
- return context.storages[input.storage].diversify(input.path, 'hello.png', stream)
12
- }
13
-
14
- exports.effect = diversify
@@ -1 +0,0 @@
1
- string
@@ -1,3 +0,0 @@
1
- blob: boolean
2
- meta: boolean
3
- _: true
@@ -1 +0,0 @@
1
- ~
@@ -1,3 +0,0 @@
1
- accept+: string
2
- workflow+: <string>
3
- _: true
@@ -1,126 +0,0 @@
1
- import { randomUUID } from 'node:crypto'
2
- import { Connector } from '@toa.io/core'
3
- import { type Processing, Server } from './Server'
4
- import { type OutgoingMessage } from './messages'
5
- import { BadRequest } from './exceptions'
6
-
7
- let server: Server
8
-
9
- beforeAll(() => {
10
- server = Server.create({ port: 0 })
11
- })
12
-
13
- it('should instance of connector', async () => {
14
- expect(server).toBeInstanceOf(Connector)
15
- })
16
-
17
- it('should start HTTP server', async () => {
18
- await server.connect()
19
-
20
- expect(server.connected).toBeTruthy()
21
- expect(server.port).toBeGreaterThan(0)
22
- })
23
-
24
- it('should register request handler', async () => {
25
- const process: Processing = jest.fn().mockResolvedValue(undefined)
26
-
27
- server.attach(process)
28
-
29
- const res = await fetch(`http://localhost:${server.port}`)
30
-
31
- await res.text()
32
-
33
- expect(process).toHaveBeenCalledTimes(1)
34
- })
35
-
36
- it('should send 501 on unknown method', async () => {
37
- const head = await fetch(`http://localhost:${server.port}/`, { method: 'COPY' })
38
-
39
- await head.text()
40
- expect(head.status).toBe(501)
41
- })
42
-
43
- it('should stop HTTP server', async () => {
44
- await server.connect()
45
- await server.disconnect()
46
- expect(server.connected).toBeFalsy()
47
- })
48
-
49
- describe('result', () => {
50
- beforeEach(async () => {
51
- server = Server.create({ port: 0 })
52
- await server.connect()
53
- })
54
-
55
- afterEach(async () => {
56
- await server.disconnect()
57
- })
58
-
59
- it('should send status code 200 if the result has a value', async () => {
60
- server.attach(async (): Promise<OutgoingMessage> => ({
61
- headers: new Headers(), body: randomUUID()
62
- }))
63
-
64
- const res = await fetch(`http://localhost:${server.port}/`)
65
-
66
- await res.text()
67
- expect(res.status).toBe(200)
68
- })
69
-
70
- it('should send status code 204 if the result has no value', async () => {
71
- server.attach(async (): Promise<OutgoingMessage> => ({ headers: new Headers() }))
72
-
73
- const res = await fetch(`http://localhost:${server.port}/`)
74
-
75
- await res.text()
76
- expect(res.status).toBe(204)
77
- })
78
-
79
- it('should send result', async () => {
80
- const body = { [randomUUID()]: randomUUID() }
81
-
82
- server.attach(async (): Promise<OutgoingMessage> =>
83
- ({ headers: new Headers(), body }))
84
-
85
- const res = await fetch(`http://localhost:${server.port}/`,
86
- { headers: { accept: 'application/json' } })
87
-
88
- const result = await res.json()
89
-
90
- expect(result).toEqual(body)
91
- })
92
-
93
- it('should return 500 on exception', async () => {
94
- server.attach(jest.fn().mockRejectedValue(new Error('Bad')))
95
-
96
- const res = await fetch(`http://localhost:${server.port}/`)
97
-
98
- await res.text()
99
- expect(res.status).toBe(500)
100
- })
101
-
102
- it('should send client error', async () => {
103
- const message = randomUUID()
104
-
105
- server.attach(jest.fn().mockRejectedValueOnce(new BadRequest(message)))
106
-
107
- const res = await fetch(`http://localhost:${server.port}/`)
108
- const text = await res.text()
109
-
110
- expect(res.status).toBe(400)
111
- expect(text).toContain(message)
112
- })
113
- })
114
-
115
- describe('options', () => {
116
- it('should send 501 on unspecified method', async () => {
117
- server = Server.create({ methods: new Set(['COPY']), port: 0 })
118
- await server.connect()
119
-
120
- const res = await fetch(`http://localhost:${server.port}/`)
121
-
122
- await res.text()
123
- await server.disconnect()
124
- expect(res.status).toBe(501)
125
- })
126
- })
@@ -1,100 +0,0 @@
1
- import { posix } from 'node:path'
2
- import { Forbidden, NotFound } from '../../HTTP'
3
- import * as schemas from './schemas'
4
- import { Directive } from './Directive'
5
- import type { Maybe } from '@toa.io/types'
6
- import type { Entry } from '@toa.io/extensions.storages'
7
- import type { Readable } from 'node:stream'
8
- import type { Component } from '@toa.io/core'
9
- import type { Output } from '../../io'
10
- import type { Input } from './types'
11
-
12
- export class Fetch extends Directive {
13
- public readonly targeted = true
14
-
15
- private readonly permissions: Required<Permissions> = {
16
- blob: true,
17
- meta: false
18
- }
19
-
20
- private readonly discovery: Promise<Component>
21
- private storage: Component = null as unknown as Component
22
-
23
- public constructor (permissions: Permissions | null, discovery: Promise<Component>) {
24
- super()
25
- schemas.fetch.validate(permissions)
26
-
27
- Object.assign(this.permissions, permissions)
28
- this.discovery = discovery
29
- }
30
-
31
- public async apply (storage: string, input: Input): Promise<Output> {
32
- this.storage ??= await this.discovery
33
-
34
- const variant = posix.basename(input.request.url).includes('.')
35
- const metadata = input.subtype === 'octets.entry'
36
-
37
- if (!variant && metadata)
38
- if (this.permissions.meta)
39
- return this.get(storage, input)
40
- else
41
- throw new Forbidden('Metadata is not accessible.')
42
-
43
- if (!variant && !this.permissions.blob)
44
- throw new Forbidden('BLOB variant must be specified.')
45
-
46
- return await this.fetch(storage, input)
47
- }
48
-
49
- private async fetch (storage: string, input: Input): Promise<Output> {
50
- if ('if-none-match' in input.request.headers)
51
- return { status: 304 }
52
-
53
- const result = await this.storage.invoke<Maybe<FetchResult>>('fetch', {
54
- input: {
55
- storage,
56
- path: input.request.url
57
- }
58
- })
59
-
60
- if (result instanceof Error)
61
- throw new NotFound()
62
-
63
- const headers = new Headers({
64
- 'content-type': result.type,
65
- 'content-length': result.size.toString(),
66
- etag: result.checksum
67
- })
68
-
69
- return {
70
- headers,
71
- body: result.stream
72
- }
73
- }
74
-
75
- private async get (storage: string, input: Input): Promise<Output> {
76
- const entry = await this.storage.invoke<Maybe<Entry>>('get', {
77
- input: {
78
- storage,
79
- path: input.request.url
80
- }
81
- })
82
-
83
- if (entry instanceof Error)
84
- throw new NotFound()
85
-
86
- return { body: entry }
87
- }
88
- }
89
-
90
- export interface Permissions {
91
- blob?: boolean
92
- meta?: boolean
93
- }
94
-
95
- interface FetchResult {
96
- stream: Readable
97
- checksum: string
98
- size: number
99
- type: string
100
- }
@@ -1,72 +0,0 @@
1
- import { posix } from 'node:path'
2
- import { Forbidden, NotFound } from '../../HTTP'
3
- import * as schemas from './schemas'
4
- import { Directive } from './Directive'
5
- import type { Entry } from '@toa.io/extensions.storages'
6
- import type { Maybe } from '@toa.io/types'
7
- import type { Component } from '@toa.io/core'
8
- import type { Output } from '../../io'
9
-
10
- import type { Input } from './types'
11
-
12
- export class List extends Directive {
13
- public readonly targeted = false
14
-
15
- private readonly permissions: Required<Permissions> = { meta: false }
16
- private readonly discovery: Promise<Component>
17
- private storage: Component | null = null
18
-
19
- public constructor (permissions: Permissions | null, discovery: Promise<Component>) {
20
- super()
21
- schemas.list.validate(permissions)
22
-
23
- Object.assign(this.permissions, permissions)
24
- this.discovery = discovery
25
- }
26
-
27
- public async apply (storage: string, input: Input): Promise<Output> {
28
- this.storage ??= await this.discovery
29
-
30
- const metadata = input.subtype === 'octets.entries'
31
-
32
- if (metadata && !this.permissions.meta)
33
- throw new Forbidden('Metadata is not accessible.')
34
-
35
- const list = await this.storage.invoke<Maybe<string[]>>('list', {
36
- input: {
37
- storage,
38
- path: input.request.url
39
- }
40
- })
41
-
42
- if (list instanceof Error)
43
- throw new NotFound()
44
-
45
- const body = metadata
46
- ? await this.expand(storage, input.request.url, list)
47
- : list
48
-
49
- return { body }
50
- }
51
-
52
- private async expand (storage: string, prefix: string, list: string[]):
53
- Promise<Array<Maybe<Entry>>> {
54
- const promises = list.map(async (id) => {
55
- const path = posix.join(prefix, id)
56
-
57
- const input = {
58
- storage,
59
- path
60
- }
61
-
62
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- ensured in `apply`
63
- return this.storage!.invoke<Maybe<Entry>>('get', { input })
64
- })
65
-
66
- return await Promise.all(promises)
67
- }
68
- }
69
-
70
- export interface Permissions {
71
- meta?: boolean
72
- }
@@ -1,44 +0,0 @@
1
- import { NotAcceptable, NotFound } from '../../HTTP'
2
- import * as schemas from './schemas'
3
- import { Directive } from './Directive'
4
- import type { Maybe } from '@toa.io/types'
5
- import type { Component } from '@toa.io/core'
6
- import type { Output } from '../../io'
7
- import type { Input } from './types'
8
-
9
- export class Permute extends Directive {
10
- public readonly targeted = false
11
-
12
- private readonly discovery: Promise<Component>
13
- private storage: Component | null = null
14
-
15
- public constructor (value: null, discovery: Promise<Component>) {
16
- super()
17
- schemas.permute.validate(value)
18
-
19
- this.discovery = discovery
20
- }
21
-
22
- public async apply (storage: string, input: Input): Promise<Output> {
23
- this.storage ??= await this.discovery
24
-
25
- if (input.encoder === null)
26
- throw new NotAcceptable()
27
-
28
- const path = input.request.url
29
- const list = await input.body()
30
-
31
- const error = await this.storage.invoke<Maybe<unknown>>('permute', {
32
- input: {
33
- storage,
34
- path,
35
- list
36
- }
37
- })
38
-
39
- if (error instanceof Error)
40
- throw new NotFound()
41
-
42
- return {}
43
- }
44
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Fetch.js","sourceRoot":"","sources":["../../../source/directives/octets/Fetch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAiC;AACjC,qCAAgD;AAChD,mDAAoC;AACpC,2CAAuC;AAQvC,MAAa,KAAM,SAAQ,qBAAS;IAClB,QAAQ,GAAG,IAAI,CAAA;IAEd,WAAW,GAA0B;QACpD,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,KAAK;KACZ,CAAA;IAEgB,SAAS,CAAoB;IACtC,OAAO,GAAc,IAA4B,CAAA;IAEzD,YAAoB,WAA+B,EAAE,SAA6B;QAChF,KAAK,EAAE,CAAA;QACP,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAEnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,KAAY;QAC/C,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,MAAM,OAAO,GAAG,iBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,KAAK,cAAc,CAAA;QAEjD,IAAI,CAAC,OAAO,IAAI,QAAQ;YACtB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI;gBACvB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;;gBAE/B,MAAM,IAAI,gBAAS,CAAC,6BAA6B,CAAC,CAAA;QAEtD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;YACpC,MAAM,IAAI,gBAAS,CAAC,iCAAiC,CAAC,CAAA;QAExD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACzC,CAAC;IAEO,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,KAAY;QAChD,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO;YAC1C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAqB,OAAO,EAAE;YACpE,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;aACxB;SACF,CAAC,CAAA;QAEF,IAAI,MAAM,YAAY,KAAK;YACzB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,cAAc,EAAE,MAAM,CAAC,IAAI;YAC3B,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxC,IAAI,EAAE,MAAM,CAAC,QAAQ;SACtB,CAAC,CAAA;QAEF,OAAO;YACL,OAAO;YACP,IAAI,EAAE,MAAM,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,GAAG,CAAE,OAAe,EAAE,KAAY;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAe,KAAK,EAAE;YAC3D,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;aACxB;SACF,CAAC,CAAA;QAEF,IAAI,KAAK,YAAY,KAAK;YACxB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;CACF;AA5ED,sBA4EC"}
@@ -1,16 +0,0 @@
1
- import { Directive } from './Directive';
2
- import type { Component } from '@toa.io/core';
3
- import type { Output } from '../../io';
4
- import type { Input } from './types';
5
- export declare class List extends Directive {
6
- readonly targeted = false;
7
- private readonly permissions;
8
- private readonly discovery;
9
- private storage;
10
- constructor(permissions: Permissions | null, discovery: Promise<Component>);
11
- apply(storage: string, input: Input): Promise<Output>;
12
- private expand;
13
- }
14
- export interface Permissions {
15
- meta?: boolean;
16
- }