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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/components/context.toa.yaml +2 -2
  2. package/components/identity.bans/manifest.toa.yaml +15 -7
  3. package/components/identity.bans/operations/transit.d.ts +14 -0
  4. package/components/identity.bans/operations/transit.js +11 -0
  5. package/components/identity.bans/operations/transit.js.map +1 -0
  6. package/components/identity.bans/operations/tsconfig.tsbuildinfo +1 -0
  7. package/components/identity.bans/source/transit.ts +21 -0
  8. package/components/identity.bans/tsconfig.json +9 -0
  9. package/components/identity.basic/manifest.toa.yaml +21 -10
  10. package/components/identity.basic/operations/authenticate.d.ts +5 -1
  11. package/components/identity.basic/operations/authenticate.js +5 -2
  12. package/components/identity.basic/operations/authenticate.js.map +1 -1
  13. package/components/identity.basic/operations/incept.d.ts +12 -0
  14. package/components/identity.basic/operations/incept.js +26 -0
  15. package/components/identity.basic/operations/incept.js.map +1 -0
  16. package/components/identity.basic/operations/transit.d.ts +4 -4
  17. package/components/identity.basic/operations/transit.js +5 -3
  18. package/components/identity.basic/operations/transit.js.map +1 -1
  19. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  20. package/components/identity.basic/operations/types.d.ts +8 -4
  21. package/components/identity.basic/source/authenticate.ts +16 -5
  22. package/components/identity.basic/source/incept.ts +38 -0
  23. package/components/identity.basic/source/transit.ts +8 -6
  24. package/components/identity.basic/source/types.ts +8 -4
  25. package/components/identity.federation/manifest.toa.yaml +32 -16
  26. package/components/identity.federation/operations/authenticate.d.ts +2 -2
  27. package/components/identity.federation/operations/authenticate.js +4 -11
  28. package/components/identity.federation/operations/authenticate.js.map +1 -1
  29. package/components/identity.federation/operations/incept.d.ts +11 -0
  30. package/components/identity.federation/operations/{create.js → incept.js} +6 -7
  31. package/components/identity.federation/operations/incept.js.map +1 -0
  32. package/components/identity.federation/operations/lib/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 +6 -7
  93. package/components/octets.storage/operations/get.js +2 -2
  94. package/components/octets.storage/operations/store.js +113 -3
  95. package/documentation/access.md +75 -38
  96. package/documentation/authorities.md +49 -0
  97. package/documentation/cache.md +8 -1
  98. package/documentation/components.md +47 -22
  99. package/documentation/flow.md +31 -0
  100. package/documentation/identity.md +17 -22
  101. package/documentation/introspection.md +82 -0
  102. package/documentation/octets.md +81 -23
  103. package/documentation/protocol.md +3 -0
  104. package/documentation/query.md +29 -4
  105. package/documentation/require.md +15 -0
  106. package/documentation/tree.md +13 -0
  107. package/documentation/vary.md +14 -14
  108. package/features/access.feature +78 -46
  109. package/features/annotation.feature +1 -0
  110. package/features/auth.claim.feature +170 -0
  111. package/features/authorities.basic.feature +141 -0
  112. package/features/authorities.feature +32 -0
  113. package/features/authorities.federation.feature +100 -0
  114. package/features/authorities.tokens.feature +117 -0
  115. package/features/body.feature +3 -0
  116. package/features/cache.feature +109 -5
  117. package/features/cors.feature +6 -1
  118. package/features/debug.feature +34 -0
  119. package/features/directives.feature +3 -0
  120. package/features/dynamic.feature +4 -0
  121. package/features/errors.feature +20 -7
  122. package/features/etag.feature +31 -0
  123. package/features/flow.feature +45 -0
  124. package/features/identity.bans.feature +137 -0
  125. package/features/identity.basic.feature +125 -23
  126. package/features/identity.feature +7 -2
  127. package/features/identity.federation.feature +66 -11
  128. package/features/identity.roles.feature +250 -7
  129. package/features/identity.tokens.feature +54 -4
  130. package/features/introspection.feature +153 -0
  131. package/features/io.feature +38 -1
  132. package/features/methods.feature +47 -0
  133. package/features/octets.download.feature +189 -0
  134. package/features/octets.entries.feature +8 -1
  135. package/features/octets.feature +82 -54
  136. package/features/octets.meta.feature +3 -0
  137. package/features/octets.workflows.feature +239 -19
  138. package/features/probes.feature +14 -0
  139. package/features/{queries.feature → query.feature} +65 -2
  140. package/features/require.feature +67 -0
  141. package/features/response.feature +38 -3
  142. package/features/routes.feature +93 -2
  143. package/features/steps/Database.ts +17 -10
  144. package/features/steps/Gateway.ts +23 -6
  145. package/features/steps/IdP.ts +30 -25
  146. package/features/steps/Parameters.ts +1 -1
  147. package/features/steps/components/echo/manifest.toa.yaml +14 -1
  148. package/features/steps/components/echo/operations/identity.js +7 -0
  149. package/features/steps/components/echo/operations/parameters.js +7 -0
  150. package/features/steps/components/echo.beacon/manifest.toa.yaml +2 -0
  151. package/features/steps/components/echo.beacon/operations/hello.js +5 -0
  152. package/features/steps/components/octets.tester/manifest.toa.yaml +22 -1
  153. package/features/steps/components/octets.tester/operations/authority.js +7 -0
  154. package/features/steps/components/octets.tester/operations/baz.js +1 -2
  155. package/features/steps/components/octets.tester/operations/diversify.js +3 -1
  156. package/features/steps/components/octets.tester/operations/foo.js +2 -2
  157. package/features/steps/components/octets.tester/operations/redirect.js +12 -0
  158. package/features/steps/components/octets.tester/operations/yex.js +16 -0
  159. package/features/steps/components/octets.tester/operations/yield.js +13 -0
  160. package/features/steps/components/pots/manifest.toa.yaml +14 -3
  161. package/features/steps/components/users/manifest.toa.yaml +0 -1
  162. package/features/steps/components/users.properties/manifest.toa.yaml +1 -1
  163. package/features/streams.feature +1 -0
  164. package/features/timing.feature +27 -1
  165. package/features/vary.feature +71 -0
  166. package/package.json +22 -14
  167. package/readme.md +19 -14
  168. package/schemas/annotation.cos.yaml +1 -1
  169. package/schemas/method.cos.yaml +1 -1
  170. package/schemas/node.cos.yaml +1 -0
  171. package/schemas/octets/store.cos.yaml +25 -3
  172. package/schemas/query.cos.yaml +4 -10
  173. package/source/Annotation.ts +3 -3
  174. package/source/Composition.ts +2 -2
  175. package/source/Directive.ts +4 -5
  176. package/source/Endpoint.ts +48 -12
  177. package/source/Factory.ts +10 -11
  178. package/source/Gateway.ts +49 -20
  179. package/source/HTTP/Context.ts +24 -2
  180. package/source/HTTP/Server.ts +51 -44
  181. package/source/HTTP/exceptions.ts +13 -1
  182. package/source/HTTP/formats/index.ts +3 -3
  183. package/source/HTTP/messages.test.ts +39 -2
  184. package/source/HTTP/messages.ts +7 -3
  185. package/source/Introspection.ts +11 -0
  186. package/source/Mapping.ts +63 -21
  187. package/source/Query.test.ts +3 -3
  188. package/source/Query.ts +117 -33
  189. package/source/RTD/Endpoint.ts +3 -0
  190. package/source/RTD/Method.ts +16 -0
  191. package/source/RTD/Node.ts +29 -13
  192. package/source/RTD/Route.ts +5 -4
  193. package/source/RTD/factory.ts +5 -2
  194. package/source/RTD/syntax/parse.ts +37 -24
  195. package/source/RTD/syntax/types.ts +6 -4
  196. package/source/Remotes.ts +2 -9
  197. package/source/Tenant.ts +0 -8
  198. package/source/deployment.ts +32 -22
  199. package/source/directives/auth/Authorization.ts +37 -14
  200. package/source/directives/auth/Delegate.ts +42 -0
  201. package/source/directives/auth/Federation.ts +84 -0
  202. package/source/directives/auth/Incept.ts +4 -3
  203. package/source/directives/auth/Role.test.ts +53 -6
  204. package/source/directives/auth/Role.ts +22 -14
  205. package/source/directives/auth/split.ts +1 -1
  206. package/source/directives/auth/types.ts +1 -1
  207. package/source/directives/cache/Cache.ts +13 -6
  208. package/source/directives/cache/Control.ts +42 -16
  209. package/source/directives/cors/CORS.ts +1 -1
  210. package/source/directives/dev/Development.ts +1 -1
  211. package/source/directives/flow/Fetch.ts +88 -0
  212. package/source/directives/flow/Flow.ts +34 -0
  213. package/source/directives/flow/index.ts +3 -0
  214. package/source/directives/flow/types.ts +6 -0
  215. package/source/directives/index.ts +3 -1
  216. package/source/directives/io/Input.ts +4 -4
  217. package/source/directives/io/Output.ts +1 -1
  218. package/source/directives/octets/Context.ts +7 -5
  219. package/source/directives/octets/Delete.ts +4 -2
  220. package/source/directives/octets/Directive.ts +10 -0
  221. package/source/directives/octets/Fetch.ts +15 -13
  222. package/source/directives/octets/List.ts +9 -7
  223. package/source/directives/octets/Octets.ts +4 -5
  224. package/source/directives/octets/Store.ts +34 -12
  225. package/source/directives/octets/Workflow.ts +10 -3
  226. package/source/directives/octets/bytes.test.ts +30 -0
  227. package/source/directives/octets/bytes.ts +18 -0
  228. package/source/directives/octets/schemas.ts +4 -6
  229. package/source/directives/octets/types.ts +0 -7
  230. package/source/directives/octets/workflows/Execution.ts +59 -8
  231. package/source/directives/octets/workflows/Workflow.ts +2 -1
  232. package/source/directives/require/Directive.ts +5 -0
  233. package/source/directives/require/Headers.ts +20 -0
  234. package/source/directives/require/Require.ts +28 -0
  235. package/source/directives/require/index.ts +3 -0
  236. package/source/directives/vary/Directive.ts +2 -1
  237. package/source/directives/vary/Embed.ts +14 -8
  238. package/source/directives/vary/Vary.ts +6 -4
  239. package/source/directives/vary/embeddings/Authority.ts +8 -0
  240. package/source/directives/vary/embeddings/Embedding.ts +2 -1
  241. package/source/directives/vary/embeddings/Parameter.ts +14 -0
  242. package/source/directives/vary/embeddings/index.ts +6 -4
  243. package/source/exceptions.ts +22 -11
  244. package/source/manifest.ts +10 -11
  245. package/source/schemas.ts +1 -1
  246. package/transpiled/Annotation.d.ts +3 -3
  247. package/transpiled/Composition.js +2 -2
  248. package/transpiled/Composition.js.map +1 -1
  249. package/transpiled/Directive.js +4 -4
  250. package/transpiled/Directive.js.map +1 -1
  251. package/transpiled/Endpoint.d.ts +6 -4
  252. package/transpiled/Endpoint.js +28 -4
  253. package/transpiled/Endpoint.js.map +1 -1
  254. package/transpiled/Factory.d.ts +1 -1
  255. package/transpiled/Factory.js +9 -8
  256. package/transpiled/Factory.js.map +1 -1
  257. package/transpiled/Gateway.d.ts +2 -0
  258. package/transpiled/Gateway.js +36 -12
  259. package/transpiled/Gateway.js.map +1 -1
  260. package/transpiled/HTTP/Context.d.ts +8 -1
  261. package/transpiled/HTTP/Context.js +15 -2
  262. package/transpiled/HTTP/Context.js.map +1 -1
  263. package/transpiled/HTTP/Server.d.ts +13 -2
  264. package/transpiled/HTTP/Server.js +38 -36
  265. package/transpiled/HTTP/Server.js.map +1 -1
  266. package/transpiled/HTTP/exceptions.d.ts +7 -1
  267. package/transpiled/HTTP/exceptions.js +13 -1
  268. package/transpiled/HTTP/exceptions.js.map +1 -1
  269. package/transpiled/HTTP/formats/index.js +3 -3
  270. package/transpiled/HTTP/formats/index.js.map +1 -1
  271. package/transpiled/HTTP/messages.d.ts +1 -0
  272. package/transpiled/HTTP/messages.js +9 -3
  273. package/transpiled/HTTP/messages.js.map +1 -1
  274. package/transpiled/Introspection.d.ts +9 -0
  275. package/transpiled/Introspection.js +3 -0
  276. package/transpiled/Introspection.js.map +1 -0
  277. package/transpiled/Mapping.d.ts +10 -2
  278. package/transpiled/Mapping.js +48 -19
  279. package/transpiled/Mapping.js.map +1 -1
  280. package/transpiled/Query.d.ts +10 -1
  281. package/transpiled/Query.js +83 -30
  282. package/transpiled/Query.js.map +1 -1
  283. package/transpiled/RTD/Endpoint.d.ts +1 -0
  284. package/transpiled/RTD/Method.d.ts +4 -0
  285. package/transpiled/RTD/Method.js +11 -0
  286. package/transpiled/RTD/Method.js.map +1 -1
  287. package/transpiled/RTD/Node.d.ts +4 -1
  288. package/transpiled/RTD/Node.js +23 -12
  289. package/transpiled/RTD/Node.js.map +1 -1
  290. package/transpiled/RTD/Route.d.ts +1 -1
  291. package/transpiled/RTD/Route.js +0 -1
  292. package/transpiled/RTD/Route.js.map +1 -1
  293. package/transpiled/RTD/factory.js +5 -2
  294. package/transpiled/RTD/factory.js.map +1 -1
  295. package/transpiled/RTD/syntax/parse.js +34 -22
  296. package/transpiled/RTD/syntax/parse.js.map +1 -1
  297. package/transpiled/RTD/syntax/types.d.ts +5 -3
  298. package/transpiled/RTD/syntax/types.js +1 -1
  299. package/transpiled/RTD/syntax/types.js.map +1 -1
  300. package/transpiled/Remotes.d.ts +2 -4
  301. package/transpiled/Remotes.js +0 -5
  302. package/transpiled/Remotes.js.map +1 -1
  303. package/transpiled/Tenant.d.ts +0 -1
  304. package/transpiled/Tenant.js +0 -6
  305. package/transpiled/Tenant.js.map +1 -1
  306. package/transpiled/deployment.d.ts +1 -1
  307. package/transpiled/deployment.js +28 -20
  308. package/transpiled/deployment.js.map +1 -1
  309. package/transpiled/directives/auth/Authorization.js +26 -10
  310. package/transpiled/directives/auth/Authorization.js.map +1 -1
  311. package/transpiled/directives/auth/Delegate.d.ts +10 -0
  312. package/transpiled/directives/auth/Delegate.js +34 -0
  313. package/transpiled/directives/auth/Delegate.js.map +1 -0
  314. package/transpiled/directives/auth/Federation.d.ts +16 -0
  315. package/transpiled/directives/auth/Federation.js +57 -0
  316. package/transpiled/directives/auth/Federation.js.map +1 -0
  317. package/transpiled/directives/auth/Incept.js +4 -3
  318. package/transpiled/directives/auth/Incept.js.map +1 -1
  319. package/transpiled/directives/auth/Role.d.ts +4 -1
  320. package/transpiled/directives/auth/Role.js +20 -14
  321. package/transpiled/directives/auth/Role.js.map +1 -1
  322. package/transpiled/directives/auth/split.js +1 -1
  323. package/transpiled/directives/auth/split.js.map +1 -1
  324. package/transpiled/directives/cache/Cache.d.ts +3 -3
  325. package/transpiled/directives/cache/Cache.js +10 -4
  326. package/transpiled/directives/cache/Cache.js.map +1 -1
  327. package/transpiled/directives/cache/Control.d.ts +2 -1
  328. package/transpiled/directives/cache/Control.js +29 -12
  329. package/transpiled/directives/cache/Control.js.map +1 -1
  330. package/transpiled/directives/cors/CORS.js +1 -1
  331. package/transpiled/directives/cors/CORS.js.map +1 -1
  332. package/transpiled/directives/dev/Development.js +1 -1
  333. package/transpiled/directives/dev/Development.js.map +1 -1
  334. package/transpiled/directives/flow/Fetch.d.ts +13 -0
  335. package/transpiled/directives/flow/Fetch.js +59 -0
  336. package/transpiled/directives/flow/Fetch.js.map +1 -0
  337. package/transpiled/directives/flow/Flow.d.ts +10 -0
  338. package/transpiled/directives/flow/Flow.js +27 -0
  339. package/transpiled/directives/flow/Flow.js.map +1 -0
  340. package/transpiled/directives/flow/index.d.ts +2 -0
  341. package/transpiled/directives/flow/index.js +6 -0
  342. package/transpiled/directives/flow/index.js.map +1 -0
  343. package/transpiled/directives/flow/types.d.ts +5 -0
  344. package/transpiled/directives/flow/types.js.map +1 -0
  345. package/transpiled/directives/index.js +3 -1
  346. package/transpiled/directives/index.js.map +1 -1
  347. package/transpiled/directives/io/Input.js +2 -2
  348. package/transpiled/directives/io/Input.js.map +1 -1
  349. package/transpiled/directives/io/Output.js.map +1 -1
  350. package/transpiled/directives/octets/Context.d.ts +3 -3
  351. package/transpiled/directives/octets/Context.js +8 -26
  352. package/transpiled/directives/octets/Context.js.map +1 -1
  353. package/transpiled/directives/octets/Delete.d.ts +3 -2
  354. package/transpiled/directives/octets/Delete.js +3 -1
  355. package/transpiled/directives/octets/Delete.js.map +1 -1
  356. package/transpiled/directives/octets/Directive.d.ts +8 -0
  357. package/transpiled/directives/octets/Directive.js +8 -0
  358. package/transpiled/directives/octets/Directive.js.map +1 -0
  359. package/transpiled/directives/octets/Fetch.d.ts +6 -5
  360. package/transpiled/directives/octets/Fetch.js +11 -9
  361. package/transpiled/directives/octets/Fetch.js.map +1 -1
  362. package/transpiled/directives/octets/List.d.ts +6 -5
  363. package/transpiled/directives/octets/List.js +6 -4
  364. package/transpiled/directives/octets/List.js.map +1 -1
  365. package/transpiled/directives/octets/Octets.d.ts +2 -1
  366. package/transpiled/directives/octets/Octets.js +2 -4
  367. package/transpiled/directives/octets/Octets.js.map +1 -1
  368. package/transpiled/directives/octets/Store.d.ts +9 -3
  369. package/transpiled/directives/octets/Store.js +20 -8
  370. package/transpiled/directives/octets/Store.js.map +1 -1
  371. package/transpiled/directives/octets/Workflow.d.ts +3 -2
  372. package/transpiled/directives/octets/Workflow.js +9 -2
  373. package/transpiled/directives/octets/Workflow.js.map +1 -1
  374. package/transpiled/directives/octets/bytes.d.ts +1 -0
  375. package/transpiled/directives/octets/bytes.js +21 -0
  376. package/transpiled/directives/octets/bytes.js.map +1 -0
  377. package/transpiled/directives/octets/schemas.d.ts +4 -6
  378. package/transpiled/directives/octets/schemas.js +1 -3
  379. package/transpiled/directives/octets/schemas.js.map +1 -1
  380. package/transpiled/directives/octets/types.d.ts +0 -5
  381. package/transpiled/directives/octets/workflows/Execution.d.ts +5 -1
  382. package/transpiled/directives/octets/workflows/Execution.js +43 -9
  383. package/transpiled/directives/octets/workflows/Execution.js.map +1 -1
  384. package/transpiled/directives/octets/workflows/Workflow.js +2 -1
  385. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -1
  386. package/transpiled/directives/require/Directive.d.ts +4 -0
  387. package/transpiled/directives/require/Directive.js +3 -0
  388. package/transpiled/directives/require/Directive.js.map +1 -0
  389. package/transpiled/directives/require/Headers.d.ts +7 -0
  390. package/transpiled/directives/require/Headers.js +19 -0
  391. package/transpiled/directives/require/Headers.js.map +1 -0
  392. package/transpiled/directives/require/Require.d.ts +9 -0
  393. package/transpiled/directives/require/Require.js +27 -0
  394. package/transpiled/directives/require/Require.js.map +1 -0
  395. package/transpiled/directives/require/index.d.ts +2 -0
  396. package/transpiled/directives/require/index.js +6 -0
  397. package/transpiled/directives/require/index.js.map +1 -0
  398. package/transpiled/directives/vary/Directive.d.ts +2 -1
  399. package/transpiled/directives/vary/Embed.d.ts +2 -1
  400. package/transpiled/directives/vary/Embed.js +8 -6
  401. package/transpiled/directives/vary/Embed.js.map +1 -1
  402. package/transpiled/directives/vary/Vary.d.ts +2 -2
  403. package/transpiled/directives/vary/Vary.js +3 -3
  404. package/transpiled/directives/vary/Vary.js.map +1 -1
  405. package/transpiled/directives/vary/embeddings/Authority.d.ts +5 -0
  406. package/transpiled/directives/vary/embeddings/Authority.js +10 -0
  407. package/transpiled/directives/vary/embeddings/Authority.js.map +1 -0
  408. package/transpiled/directives/vary/embeddings/Embedding.d.ts +2 -1
  409. package/transpiled/directives/vary/embeddings/Parameter.d.ts +7 -0
  410. package/transpiled/directives/vary/embeddings/Parameter.js +14 -0
  411. package/transpiled/directives/vary/embeddings/Parameter.js.map +1 -0
  412. package/transpiled/directives/vary/embeddings/index.d.ts +2 -2
  413. package/transpiled/directives/vary/embeddings/index.js +8 -4
  414. package/transpiled/directives/vary/embeddings/index.js.map +1 -1
  415. package/transpiled/exceptions.d.ts +3 -2
  416. package/transpiled/exceptions.js +13 -7
  417. package/transpiled/exceptions.js.map +1 -1
  418. package/transpiled/manifest.js +10 -11
  419. package/transpiled/manifest.js.map +1 -1
  420. package/transpiled/schemas.d.ts +1 -1
  421. package/transpiled/schemas.js +2 -2
  422. package/transpiled/schemas.js.map +1 -1
  423. package/transpiled/tsconfig.tsbuildinfo +1 -1
  424. package/tsconfig.json +9 -7
  425. package/components/identity.basic/operations/create.d.ts +0 -10
  426. package/components/identity.basic/operations/create.js +0 -10
  427. package/components/identity.basic/operations/create.js.map +0 -1
  428. package/components/identity.basic/source/create.ts +0 -18
  429. package/components/identity.federation/operations/create.d.ts +0 -10
  430. package/components/identity.federation/operations/create.js.map +0 -1
  431. package/components/identity.federation/operations/schemas.d.ts +0 -59
  432. package/components/identity.federation/operations/schemas.js +0 -9
  433. package/components/identity.federation/operations/schemas.js.map +0 -1
  434. package/components/identity.federation/operations/types.js.map +0 -1
  435. package/components/identity.federation/source/schemas.ts +0 -61
  436. package/components/octets.storage/operations/permute.js +0 -7
  437. package/schemas/octets/context.cos.yaml +0 -1
  438. package/source/HTTP/Server.test.ts +0 -126
  439. package/source/directives/octets/Permute.ts +0 -43
  440. package/transpiled/directives/octets/Permute.d.ts +0 -10
  441. package/transpiled/directives/octets/Permute.js +0 -56
  442. package/transpiled/directives/octets/Permute.js.map +0 -1
  443. /package/{components/identity.federation/operations → transpiled/directives/flow}/types.js +0 -0
@@ -1,8 +1,9 @@
1
1
  import { NotFound } from '../../HTTP'
2
2
  import * as schemas from './schemas'
3
3
  import { Workflow } from './workflows'
4
+ import { Directive } from './Directive'
4
5
  import type { Unit } from './workflows'
5
- import type { Directive, Input } from './types'
6
+ import type { Input } from './types'
6
7
  import type { Component } from '@toa.io/core'
7
8
  import type { Output } from '../../io'
8
9
  import type { Remotes } from '../../Remotes'
@@ -10,7 +11,7 @@ import type { Maybe } from '@toa.io/types'
10
11
  import type { Entry } from '@toa.io/extensions.storages'
11
12
  import type { Parameter } from '../../RTD'
12
13
 
13
- export class WorkflowDirective implements Directive {
14
+ export class WorkflowDirective extends Directive {
14
15
  public readonly targeted = true
15
16
 
16
17
  private readonly workflow: Workflow
@@ -18,6 +19,7 @@ export class WorkflowDirective implements Directive {
18
19
  private storage: Component | null = null
19
20
 
20
21
  public constructor (units: Unit[] | Unit, discovery: Promise<Component>, remotes: Remotes) {
22
+ super()
21
23
  schemas.workflow.validate(units)
22
24
 
23
25
  this.workflow = new Workflow(units, remotes)
@@ -28,7 +30,12 @@ export class WorkflowDirective implements Directive {
28
30
  this.storage ??= await this.discovery
29
31
 
30
32
  const entry = await this.storage.invoke<Maybe<Entry>>('get',
31
- { input: { storage, path: input.request.url } })
33
+ {
34
+ input: {
35
+ storage,
36
+ path: input.request.url
37
+ }
38
+ })
32
39
 
33
40
  if (entry instanceof Error)
34
41
  throw new NotFound()
@@ -0,0 +1,30 @@
1
+ import { toBytes } from './bytes'
2
+
3
+ it('should parse bytes', async () => {
4
+ expect(toBytes('10')).toBe(10)
5
+ expect(toBytes('10B')).toBe(10)
6
+ })
7
+
8
+ it('should parse binary prefix', async () => {
9
+ expect(toBytes('10KiB')).toBe(10240)
10
+ expect(toBytes('10MiB')).toBe(10485760)
11
+ expect(toBytes('10GiB')).toBe(10737418240)
12
+ expect(toBytes('10TiB')).toBe(10995116277760)
13
+ })
14
+
15
+ it('should parse decimal prefix', async () => {
16
+ expect(toBytes('10kB')).toBe(10000)
17
+ expect(toBytes('10MB')).toBe(10000000)
18
+ expect(toBytes('10GB')).toBe(10000000000)
19
+ expect(toBytes('10TB')).toBe(10000000000000)
20
+ })
21
+
22
+ it('should parse incorrect value as binary', async () => {
23
+ expect(toBytes('10b')).toBe(10)
24
+ expect(toBytes('10kb')).toBe(10240)
25
+ expect(toBytes('10kib')).toBe(10240)
26
+ expect(toBytes('10mb')).toBe(10485760)
27
+ expect(toBytes('10gb')).toBe(10737418240)
28
+ expect(toBytes('10tib')).toBe(10995116277760)
29
+ expect(toBytes('10Mb')).toBe(10485760)
30
+ })
@@ -0,0 +1,18 @@
1
+ import assert from 'node:assert'
2
+
3
+ export function toBytes (input: string): number {
4
+ const match = RX.exec(input)
5
+
6
+ assert.ok(match !== null, `Invalid bytes format: ${input}`)
7
+
8
+ const value = parseFloat(match.groups!.value)
9
+ const prefix = match.groups!.prefix?.[0].toLowerCase() ?? ''
10
+ const binary = match.groups!.binary !== undefined || match.groups!.unit === 'b'
11
+ const base = binary ? 1024 : 1000
12
+ const power = POWERS.indexOf(prefix)
13
+
14
+ return value * Math.pow(base, power)
15
+ }
16
+
17
+ const POWERS = ['', 'k', 'm', 'g', 't']
18
+ const RX = /^(?<value>(\d+)(\.\d+)?)(?<prefix>[kmgt](?<binary>i)?)?(?<unit>b)?$/i
@@ -1,7 +1,7 @@
1
1
  import { resolve } from 'node:path'
2
2
  import schemas from '@toa.io/schemas'
3
- import type { Permissions as FetchPermissions } from './Fetch'
4
- import type { Permissions as ListPermissions } from './List'
3
+ import type { Options as FetchOptions } from './Fetch'
4
+ import type { Options as ListOptions } from './List'
5
5
  import type { Options as StoreOptions } from './Store'
6
6
  import type { Options as DeleteOptions } from './Delete'
7
7
  import type { Schema } from '@toa.io/schemas'
@@ -10,10 +10,8 @@ import type { Unit } from './workflows'
10
10
  const path = resolve(__dirname, '../../../schemas/octets')
11
11
  const namespace = schemas.namespace(path)
12
12
 
13
- export const context: Schema<string> = namespace.schema('context')
14
13
  export const store: Schema<StoreOptions | null> = namespace.schema('store')
15
- export const fetch: Schema<FetchPermissions | null> = namespace.schema('fetch')
14
+ export const fetch: Schema<FetchOptions | null> = namespace.schema('fetch')
16
15
  export const remove: Schema<DeleteOptions | null> = namespace.schema('delete')
17
- export const list: Schema<ListPermissions | null> = namespace.schema('list')
18
- export const permute: Schema<null> = namespace.schema('permute')
16
+ export const list: Schema<ListOptions | null> = namespace.schema('list')
19
17
  export const workflow: Schema<Unit[] | Unit> = namespace.schema('workflow')
@@ -1,12 +1,5 @@
1
- import type { Parameter } from '../../RTD'
2
1
  import type * as io from '../../io'
3
2
 
4
- export interface Directive {
5
- readonly targeted: boolean
6
-
7
- apply: (storage: string, input: Input, parameters: Parameter[]) => io.Output | Promise<io.Output>
8
- }
9
-
10
3
  export interface Extension {
11
4
  octets?: string
12
5
  }
@@ -1,4 +1,4 @@
1
- import { Readable } from 'stream'
1
+ import { Readable } from 'node:stream'
2
2
  import type { Unit } from './Workflow'
3
3
  import type { Remotes } from '../../../Remotes'
4
4
  import type { Component } from '@toa.io/core'
@@ -39,25 +39,68 @@ export class Execution extends Readable {
39
39
 
40
40
  private async execute (unit: Unit): Promise<void> {
41
41
  const promises = Object.entries(unit).map(async ([step, endpoint]) => {
42
- const result = await this.call(endpoint).catch((error: Error) => console.error(error))
42
+ try {
43
+ const result = await this.call(endpoint)
43
44
 
44
- if (result instanceof Error) {
45
- this.push({ error: { step, ...result } })
46
- this.interrupted = true
47
- } else
48
- this.push({ [step]: result ?? null })
45
+ if (result instanceof Readable)
46
+ return await this.stream(step, result)
47
+
48
+ this.report(step, result)
49
+ } catch (e: unknown) {
50
+ this.exception(step, e)
51
+ }
49
52
  })
50
53
 
51
54
  await Promise.all(promises)
52
55
  }
53
56
 
57
+ private async stream (step: string, stream: Readable): Promise<void> {
58
+ try {
59
+ for await (const result of stream)
60
+ this.report(step, result, false)
61
+
62
+ this.report(step, undefined, true)
63
+ } catch (e: unknown) {
64
+ this.exception(step, e)
65
+ }
66
+ }
67
+
68
+ private report (step: string, result?: Maybe<unknown>, completed = true): void {
69
+ const report: Report = { step }
70
+
71
+ if (completed)
72
+ report.status = 'completed'
73
+
74
+ if (result instanceof Error) {
75
+ report.error = result
76
+ this.interrupted = true
77
+ } else if (result !== undefined)
78
+ report.output = result
79
+
80
+ this.push(report)
81
+ }
82
+
83
+ private exception (step: string, error: unknown): void {
84
+ this.push({ step, status: 'exception' } satisfies Report)
85
+ this.interrupted = true
86
+
87
+ console.error(error)
88
+ }
89
+
54
90
  private async call (endpoint: string): Promise<Maybe<unknown>> {
91
+ let task = false
92
+
93
+ if (endpoint.startsWith('task:')) {
94
+ endpoint = endpoint.slice(5)
95
+ task = true
96
+ }
97
+
55
98
  const [operation, component, namespace = 'default'] = endpoint.split('.').reverse()
56
99
  const key = `${namespace}.${component}`
57
100
 
58
101
  this.components[key] ??= await this.discover(key, namespace, component)
59
102
 
60
- return await this.components[key].invoke(operation, { input: this.context })
103
+ return this.components[key].invoke(operation, { input: this.context, task })
61
104
  }
62
105
 
63
106
  private async discover (key: string, namespace: string, component: string): Promise<Component> {
@@ -69,8 +112,16 @@ export class Execution extends Readable {
69
112
  }
70
113
 
71
114
  export interface Context {
115
+ authority: string
72
116
  storage: string
73
117
  path: string
74
118
  entry: Entry
75
119
  parameters: Record<string, string>
76
120
  }
121
+
122
+ interface Report {
123
+ step: string
124
+ status?: 'completed' | 'exception'
125
+ output?: unknown
126
+ error?: Error
127
+ }
@@ -23,12 +23,13 @@ export class Workflow {
23
23
  public execute
24
24
  (input: Input, storage: string, entry: Entry, params: Parameter[]): Execution {
25
25
  const path = posix.join(input.request.url, entry.id)
26
+ const authority = input.authority
26
27
  const parameters: Record<string, string> = {}
27
28
 
28
29
  for (const { name, value } of params)
29
30
  parameters[name] = value
30
31
 
31
- const context: Context = { storage, path, entry, parameters }
32
+ const context: Context = { authority, storage, path, entry, parameters }
32
33
 
33
34
  return new Execution(context, this.units, this.remotes)
34
35
  }
@@ -0,0 +1,5 @@
1
+ import type { Input } from '../../io'
2
+
3
+ export interface Directive {
4
+ preflight: (context: Input) => void
5
+ }
@@ -0,0 +1,20 @@
1
+ import { BadRequest } from '../../HTTP'
2
+ import type { Input } from '../../io'
3
+ import type { Directive } from './Directive'
4
+
5
+ export class Headers implements Directive {
6
+ private readonly headers: string[]
7
+
8
+ public constructor (headers: string[]) {
9
+ if (!Array.isArray(headers))
10
+ headers = [headers]
11
+
12
+ this.headers = headers
13
+ }
14
+
15
+ public preflight (context: Input): void {
16
+ for (const header of this.headers)
17
+ if (context.request.headers[header] === undefined)
18
+ throw new BadRequest(`Header required: ${header}`)
19
+ }
20
+ }
@@ -0,0 +1,28 @@
1
+ import assert from 'node:assert'
2
+ import { Headers } from './Headers'
3
+ import type { Input } from '../../io'
4
+ import type { Directive } from './Directive'
5
+ import type { DirectiveFamily } from '../../RTD'
6
+
7
+ export class Require implements DirectiveFamily {
8
+ public readonly name = 'require'
9
+ public readonly mandatory = false
10
+
11
+ public create (name: string, value: unknown): Directive {
12
+ assert.ok(name in directives, `Unknown directive: require:${name}`)
13
+
14
+ return new directives[name](value)
15
+ }
16
+
17
+ public preflight (instances: Directive[], context: Input): null {
18
+ for (const instance of instances)
19
+ instance.preflight(context)
20
+
21
+ return null
22
+ }
23
+ }
24
+
25
+ const directives: Record<string, new (value: any) => Directive> = {
26
+ header: Headers,
27
+ headers: Headers
28
+ }
@@ -0,0 +1,3 @@
1
+ import { Require } from './Require'
2
+
3
+ export const req = new Require()
@@ -1,6 +1,7 @@
1
1
  import type { Properties } from './Properties'
2
2
  import type { Input } from '../../io'
3
+ import type { Parameter } from '../../RTD'
3
4
 
4
5
  export interface Directive {
5
- preflight: (request: Input, properties: Properties) => void
6
+ preflight: (context: Input, properties: Properties, parameters: Parameter[]) => void
6
7
  }
@@ -1,9 +1,10 @@
1
1
  import assert from 'node:assert'
2
- import { Header, embeddings } from './embeddings'
2
+ import { Header, embeddings, Parameter } from './embeddings'
3
3
  import type { Embedding } from './embeddings'
4
4
  import type { Input } from '../../io'
5
5
  import type { Directive } from './Directive'
6
6
  import type { Properties } from './Properties'
7
+ import type * as RTD from '../../RTD'
7
8
 
8
9
  export class Embed implements Directive {
9
10
  private readonly embeddings: Array<[string, Embedding[]]> = []
@@ -16,6 +17,9 @@ export class Embed implements Directive {
16
17
  if (name[0] === ':')
17
18
  return new Header(name.slice(1))
18
19
 
20
+ if (name.slice(0, 2) === '/:')
21
+ return new Parameter(name.slice(2))
22
+
19
23
  assert.ok(name in embeddings, `Unknown embedding: ${name}`)
20
24
 
21
25
  return new embeddings[name]()
@@ -25,27 +29,29 @@ export class Embed implements Directive {
25
29
  }
26
30
  }
27
31
 
28
- public preflight (input: Input, properties: Properties): void {
32
+ public preflight (context: Input, properties: Properties, parameters: RTD.Parameter[]): void {
29
33
  const values: Record<string, unknown> = {}
30
34
 
31
35
  for (const [key, instances] of this.embeddings)
32
- values[key] = this.resolve(instances, input, properties)
36
+ values[key] = this.resolve(instances, context, properties, parameters)
33
37
 
34
- input.pipelines.body.push(this.embedding(values))
38
+ context.pipelines.body.push(this.embedding(values))
35
39
  }
36
40
 
37
- private resolve (instances: Embedding[], input: Input, properties: Properties): unknown {
41
+ // eslint-disable-next-line max-params
42
+ private resolve (instances: Embedding[],
43
+ input: Input,
44
+ properties: Properties,
45
+ parameters: RTD.Parameter[]): unknown {
38
46
  let value
39
47
 
40
48
  for (const instance of instances) {
41
- value = instance.resolve(input, properties)
49
+ value = instance.resolve(input, properties, parameters)
42
50
 
43
51
  if (value !== undefined)
44
52
  break
45
53
  }
46
54
 
47
- assert.ok(value !== undefined, 'Neither embedding resolved a value.')
48
-
49
55
  return value
50
56
  }
51
57
 
@@ -3,7 +3,7 @@ import { properties, Property } from './Properties'
3
3
  import { Embed } from './Embed'
4
4
  import type { Properties } from './Properties'
5
5
  import type { Directive } from './Directive'
6
- import type { DirectiveFamily } from '../../RTD'
6
+ import type { DirectiveFamily, Parameter } from '../../RTD'
7
7
  import type { Input, Output } from '../../io'
8
8
 
9
9
  export class Vary implements DirectiveFamily {
@@ -15,11 +15,13 @@ export class Vary implements DirectiveFamily {
15
15
  () => name in properties, (name: PN) => new Property(name, value as PV),
16
16
  () => name in directives, (name: keyof typeof directives) => new directives[name](value),
17
17
  () => {
18
- throw new Error(`Unknown directive 'vary:${name}'`)
18
+ throw new Error(`Directive 'vary:${name}' is not implemented.`)
19
19
  })
20
20
  }
21
21
 
22
- public preflight (instances: Array<Directive | Property>, request: Input): Output {
22
+ public preflight (instances: Array<Directive | Property>,
23
+ context: Input,
24
+ parameters: Parameter[]): Output {
23
25
  /*
24
26
  To stop constructing `properties` object on each request, Directive Families must be refactored
25
27
  from singleton factories to per-Node instances on the Tree.
@@ -34,7 +36,7 @@ export class Vary implements DirectiveFamily {
34
36
  directives.push(instance)
35
37
 
36
38
  for (const directive of directives)
37
- directive.preflight(request, properties)
39
+ directive.preflight(context, properties, parameters)
38
40
 
39
41
  return null
40
42
  }
@@ -0,0 +1,8 @@
1
+ import type { Embedding } from './Embedding'
2
+ import type { Input } from '../../../io'
3
+
4
+ export class Authority implements Embedding {
5
+ public resolve (context: Input): string {
6
+ return context.authority
7
+ }
8
+ }
@@ -1,6 +1,7 @@
1
1
  import type { Properties } from '../Properties'
2
2
  import type { Input } from '../../../io'
3
+ import type { Parameter } from '../../../RTD'
3
4
 
4
5
  export interface Embedding {
5
- resolve: (input: Input, properties: Properties) => string | undefined
6
+ resolve: (input: Input, properties: Properties, parameters: Parameter[]) => string | undefined
6
7
  }
@@ -0,0 +1,14 @@
1
+ import type { Embedding } from './Embedding'
2
+ import type * as RTD from '../../../RTD'
3
+
4
+ export class Parameter implements Embedding {
5
+ private readonly name: string
6
+
7
+ public constructor (name: string) {
8
+ this.name = name
9
+ }
10
+
11
+ public resolve (_: unknown, __: unknown, parameters: RTD.Parameter[]): string | undefined {
12
+ return parameters.find((parameter) => parameter.name === this.name)?.value
13
+ }
14
+ }
@@ -1,11 +1,13 @@
1
1
  import { Language } from './Language'
2
- import { Header } from './Header'
3
-
2
+ import { Authority } from './Authority'
4
3
  import type { Embedding } from './Embedding'
5
4
 
6
5
  export const embeddings: Record<string, new () => Embedding> = {
7
- language: Language
6
+ language: Language,
7
+ authority: Authority
8
8
  }
9
9
 
10
- export { Header }
11
10
  export type { Embedding }
11
+
12
+ export { Header } from './Header'
13
+ export { Parameter } from './Parameter'
@@ -1,17 +1,28 @@
1
- import { type Exception } from '@toa.io/core'
1
+ import { match } from 'matchacho'
2
2
  import * as http from './HTTP'
3
+ import { Exception as HTTPException } from './HTTP'
4
+ import type { Exception } from '@toa.io/core'
3
5
 
4
- export function rethrow (exception: Exception): void {
5
- // see /runtime/core/src/exceptions.js
6
-
7
- if ((exception.code >= 200 && exception.code < 210) || exception.code === 221)
8
- throw new http.BadRequest(exception.message)
6
+ export function rethrow (exception: Exception | HTTPException): void {
7
+ if (exception instanceof HTTPException)
8
+ throw exception
9
9
 
10
- if (exception.code === 302)
11
- throw new http.NotFound()
10
+ // see /runtime/core/src/exceptions.js
11
+ throw match(exception.code,
12
+ badRequest, () => new http.BadRequest(exception.message),
13
+ 302, NOT_FOUND,
14
+ 303, PRECONDITION_FAILED,
15
+ 306, () => new http.Conflict(),
16
+ () => {
17
+ console.error(exception)
12
18
 
13
- if (exception.code === 303)
14
- throw new http.PreconditionFailed()
19
+ return exception
20
+ })
21
+ }
15
22
 
16
- throw exception as unknown as Error
23
+ function badRequest (code: number): boolean {
24
+ return (code >= 200 && code < 210) || code === 221
17
25
  }
26
+
27
+ const NOT_FOUND = new http.NotFound()
28
+ const PRECONDITION_FAILED = new http.PreconditionFailed()
@@ -12,7 +12,7 @@ export function manifest (declaration: object, manifest: Manifest): Node {
12
12
 
13
13
  const node = parse(declaration, shortcuts)
14
14
 
15
- concretize(node, manifest)
15
+ specify(node, manifest)
16
16
  schemas.node.validate(node)
17
17
 
18
18
  return node
@@ -22,29 +22,28 @@ function wrap (declaration: object, namespace: string, name: string): object {
22
22
  const path = (namespace === undefined || namespace === 'default' ? '' : '/' + namespace) +
23
23
  '/' + name
24
24
 
25
- return { [path]: { protected: true, ...declaration } }
25
+ return { [path]: declaration }
26
26
  }
27
27
 
28
- function concretize (node: Node, manifest: Manifest): void {
28
+ function specify (node: Node, manifest: Manifest): void {
29
29
  for (const route of node.routes) {
30
30
  for (const method of route.node.methods)
31
- concretizeMethod(method, manifest)
31
+ specifyMethod(method, manifest)
32
32
 
33
- concretize(route.node, manifest)
33
+ specify(route.node, manifest)
34
34
  }
35
35
  }
36
36
 
37
- function concretizeMethod (method: Method, manifest: Manifest): void {
38
- if (method.mapping === undefined)
37
+ function specifyMethod (method: Method, manifest: Manifest): void {
38
+ if (method.mapping?.endpoint === undefined)
39
39
  return
40
40
 
41
41
  const operation = manifest.operations[method.mapping.endpoint]
42
42
 
43
- if (operation === undefined)
44
- throw new Error(`Operation '${method.mapping.endpoint}' not found`)
43
+ assert.ok(operation !== undefined, `Operation '${method.mapping.endpoint}' not found`)
45
44
 
46
- if (method.mapping.query === undefined && operation.query !== false)
47
- method.mapping.query = {} as unknown as Query // schema will substitute default values
45
+ if (method.mapping.query === undefined)
46
+ method.mapping.query = operation.query === false ? null : {} as unknown as Query
48
47
 
49
48
  method.mapping.namespace = manifest.namespace
50
49
  method.mapping.component = manifest.name
package/source/schemas.ts CHANGED
@@ -9,5 +9,5 @@ const path = resolve(__dirname, '../schemas')
9
9
  const namespace = schemas.namespace(path)
10
10
 
11
11
  export const querystring: Schema<Query> = namespace.schema('querystring')
12
- export const annotaion: Schema<Annotation> = namespace.schema('annotation')
12
+ export const annotation: Schema<Annotation> = namespace.schema('annotation')
13
13
  export const node: Schema<Node> = namespace.schema('node')
@@ -1,8 +1,8 @@
1
1
  export interface Annotation {
2
- host?: string;
2
+ authorities: Record<string, string>;
3
3
  class?: string;
4
4
  annotations?: Record<string, string>;
5
- debug: boolean;
6
- trace: boolean;
5
+ debug?: boolean;
6
+ trace?: boolean;
7
7
  '/'?: object;
8
8
  }
@@ -15,10 +15,10 @@ class Composition extends core_1.Connector {
15
15
  const composition = await this.boot.composition(paths);
16
16
  await composition.connect();
17
17
  this.depends(composition);
18
- console.info('Composition complete.');
18
+ console.info('Composition complete');
19
19
  }
20
20
  dispose() {
21
- console.info('Composition shutdown complete.');
21
+ console.info('Composition shutdown complete');
22
22
  }
23
23
  }
24
24
  exports.Composition = Composition;
@@ -1 +1 @@
1
- {"version":3,"file":"Composition.js","sourceRoot":"","sources":["../source/Composition.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAClD,yCAAmC;AACnC,uCAAwC;AAGxC,MAAa,WAAY,SAAQ,gBAAS;IACvB,IAAI,CAAY;IAEjC,YAAoB,IAAgB;QAClC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEkB,KAAK,CAAC,IAAI;QAC3B,MAAM,KAAK,GAAG,IAAI,EAAE,CAAA;QACpB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAEtD,MAAM,WAAW,CAAC,OAAO,EAAE,CAAA;QAE3B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAEzB,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;IACvC,CAAC;IAEkB,OAAO;QACxB,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAA;IAChD,CAAC;CACF;AAtBD,kCAsBC;AAED,SAAS,IAAI;IACX,OAAO,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mBAAO,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,OAAO;IACd,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAE1D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACzC,KAAK,CAAC,IAAI,CAAC,IAAA,mBAAO,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAC1B,CAAC;AAVD,gCAUC;AAOD,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA"}
1
+ {"version":3,"file":"Composition.js","sourceRoot":"","sources":["../source/Composition.ts"],"names":[],"mappings":";;;AAAA,qCAAkD;AAClD,yCAAmC;AACnC,uCAAwC;AAGxC,MAAa,WAAY,SAAQ,gBAAS;IACvB,IAAI,CAAY;IAEjC,YAAoB,IAAgB;QAClC,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAClB,CAAC;IAEkB,KAAK,CAAC,IAAI;QAC3B,MAAM,KAAK,GAAG,IAAI,EAAE,CAAA;QACpB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAEtD,MAAM,WAAW,CAAC,OAAO,EAAE,CAAA;QAE3B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAEzB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IACtC,CAAC;IAEkB,OAAO;QACxB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAC/C,CAAC;CACF;AAtBD,kCAsBC;AAED,SAAS,IAAI;IACX,OAAO,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mBAAO,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,OAAO;IACd,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IAE1D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,SAAgB,UAAU;IACxB,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACzC,KAAK,CAAC,IAAI,CAAC,IAAA,mBAAO,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACvC,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAC1B,CAAC;AAVD,gCAUC;AAOD,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAA"}
@@ -11,10 +11,8 @@ class Directives {
11
11
  if (set.family.preflight === undefined)
12
12
  continue;
13
13
  const output = await set.family.preflight(set.directives, context, parameters);
14
- if (output !== null) {
15
- await this.settle(context, output);
14
+ if (output !== null)
16
15
  return output;
17
- }
18
16
  }
19
17
  return null;
20
18
  }
@@ -70,6 +68,8 @@ exports.shortcuts = new Map([
70
68
  ['id', 'auth:id'],
71
69
  ['role', 'auth:role'],
72
70
  ['rule', 'auth:rule'],
73
- ['incept', 'auth:incept']
71
+ ['incept', 'auth:incept'],
72
+ ['input', 'io:input'],
73
+ ['output', 'io:output']
74
74
  ]);
75
75
  //# sourceMappingURL=Directive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Directive.js","sourceRoot":"","sources":["../source/Directive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Directive.js","sourceRoot":"","sources":["../source/Directive.ts"],"names":[],"mappings":"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"}