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

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 (444) hide show
  1. package/components/context.toa.yaml +12 -0
  2. package/components/identity.bans/manifest.toa.yaml +2 -1
  3. package/components/identity.basic/manifest.toa.yaml +5 -1
  4. package/components/identity.basic/operations/authenticate.js +1 -2
  5. package/components/identity.basic/operations/authenticate.js.map +1 -1
  6. package/components/identity.basic/operations/transit.js.map +1 -1
  7. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  8. package/components/identity.basic/source/authenticate.ts +0 -1
  9. package/components/identity.federation/events/principal.js +22 -0
  10. package/components/identity.federation/manifest.toa.yaml +94 -0
  11. package/components/identity.federation/operations/authenticate.d.ts +3 -0
  12. package/components/identity.federation/operations/authenticate.js +20 -0
  13. package/components/identity.federation/operations/authenticate.js.map +1 -0
  14. package/components/identity.federation/operations/create.d.ts +10 -0
  15. package/components/identity.federation/operations/create.js +15 -0
  16. package/components/identity.federation/operations/create.js.map +1 -0
  17. package/components/identity.federation/operations/lib/assertions-as-values.d.ts +4 -0
  18. package/components/identity.federation/operations/lib/assertions-as-values.js +45 -0
  19. package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -0
  20. package/components/identity.federation/operations/lib/jwt.d.ts +20 -0
  21. package/components/identity.federation/operations/lib/jwt.js +136 -0
  22. package/components/identity.federation/operations/lib/jwt.js.map +1 -0
  23. package/components/identity.federation/operations/schemas.d.ts +59 -0
  24. package/components/identity.federation/operations/schemas.js +9 -0
  25. package/components/identity.federation/operations/schemas.js.map +1 -0
  26. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -0
  27. package/components/identity.federation/operations/types.d.ts +51 -0
  28. package/components/identity.federation/operations/types.js +3 -0
  29. package/components/identity.federation/operations/types.js.map +1 -0
  30. package/components/identity.federation/source/authenticate.ts +28 -0
  31. package/components/identity.federation/source/create.ts +26 -0
  32. package/components/identity.federation/source/lib/assertions-as-values.ts +19 -0
  33. package/components/identity.federation/source/lib/jwt.test.ts +56 -0
  34. package/components/identity.federation/source/lib/jwt.ts +171 -0
  35. package/components/identity.federation/source/schemas.ts +61 -0
  36. package/components/identity.federation/source/types.ts +56 -0
  37. package/components/identity.federation/tsconfig.json +9 -0
  38. package/components/identity.roles/manifest.toa.yaml +17 -5
  39. package/components/identity.roles/operations/grant.d.ts +10 -0
  40. package/components/identity.roles/operations/grant.js +20 -0
  41. package/components/identity.roles/operations/grant.js.map +1 -0
  42. package/components/identity.roles/operations/lib/Entity.d.ts +5 -0
  43. package/components/identity.roles/operations/lib/Entity.js +3 -0
  44. package/components/identity.roles/operations/lib/Entity.js.map +1 -0
  45. package/components/identity.roles/operations/list.d.ts +1 -4
  46. package/components/identity.roles/operations/list.js.map +1 -1
  47. package/components/identity.roles/operations/principal.d.ts +4 -6
  48. package/components/identity.roles/operations/principal.js +6 -1
  49. package/components/identity.roles/operations/principal.js.map +1 -1
  50. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  51. package/components/identity.roles/source/grant.ts +31 -0
  52. package/components/identity.roles/source/lib/Entity.ts +5 -0
  53. package/components/identity.roles/source/list.ts +2 -4
  54. package/components/identity.roles/source/principal.ts +10 -8
  55. package/components/identity.tokens/manifest.toa.yaml +1 -1
  56. package/components/identity.tokens/operations/authenticate.js.map +1 -1
  57. package/components/identity.tokens/operations/decrypt.js.map +1 -1
  58. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  59. package/components/octets.storage/manifest.toa.yaml +1 -0
  60. package/components/octets.storage/operations/store.js +3 -3
  61. package/cucumber.js +0 -1
  62. package/documentation/access.md +11 -11
  63. package/documentation/components.md +48 -12
  64. package/documentation/identity.md +14 -7
  65. package/documentation/io.md +56 -0
  66. package/documentation/octets.md +102 -37
  67. package/documentation/protocol.md +21 -1
  68. package/documentation/query.md +51 -6
  69. package/documentation/tree.md +22 -4
  70. package/documentation/vary.md +69 -0
  71. package/features/access.feature +13 -2
  72. package/features/annotation.feature +1 -0
  73. package/features/body.feature +3 -1
  74. package/features/cache.feature +3 -0
  75. package/features/cors.feature +72 -0
  76. package/features/directives.feature +2 -0
  77. package/features/dynamic.feature +14 -7
  78. package/features/errors.feature +4 -3
  79. package/features/etag.feature +97 -0
  80. package/features/identity.basic.feature +68 -0
  81. package/features/identity.feature +19 -3
  82. package/features/identity.federation.feature +153 -0
  83. package/features/identity.roles.feature +151 -0
  84. package/features/identity.tokens.feature +3 -0
  85. package/features/io.feature +167 -0
  86. package/features/octets.entries.feature +123 -0
  87. package/features/octets.feature +4 -28
  88. package/features/octets.meta.feature +66 -0
  89. package/features/octets.workflows.feature +177 -4
  90. package/features/queries.feature +9 -1
  91. package/features/response.feature +68 -0
  92. package/features/routes.feature +54 -10
  93. package/features/steps/Captures.ts +6 -0
  94. package/features/steps/Components.ts +18 -6
  95. package/features/steps/Database.ts +1 -1
  96. package/features/steps/Gateway.ts +4 -2
  97. package/features/steps/HTTP.ts +34 -6
  98. package/features/steps/IdP.ts +149 -0
  99. package/features/steps/Parameters.ts +8 -2
  100. package/features/steps/Workspace.ts +5 -7
  101. package/features/steps/components/echo/manifest.toa.yaml +1 -0
  102. package/features/steps/components/echo/operations/error.js +11 -0
  103. package/features/steps/components/greeter/manifest.toa.yaml +1 -0
  104. package/features/steps/components/octets.tester/manifest.toa.yaml +4 -0
  105. package/features/steps/components/octets.tester/operations/concat.js +7 -0
  106. package/features/steps/components/octets.tester/operations/echo.js +7 -0
  107. package/features/steps/components/pots/manifest.toa.yaml +12 -3
  108. package/features/steps/components/sequences/manifest.toa.yaml +1 -0
  109. package/features/steps/components/users/manifest.toa.yaml +4 -0
  110. package/features/steps/components/users.properties/manifest.toa.yaml +14 -0
  111. package/features/steps/tsconfig.json +1 -1
  112. package/features/timing.feature +66 -0
  113. package/features/vary.feature +180 -0
  114. package/package.json +16 -20
  115. package/readme.md +7 -6
  116. package/schemas/annotation.cos.yaml +1 -0
  117. package/schemas/io/input.cos.yaml +3 -0
  118. package/schemas/io/message.cos.yaml +5 -0
  119. package/schemas/io/output.cos.yaml +5 -0
  120. package/schemas/octets/delete.cos.yaml +2 -1
  121. package/schemas/octets/list.cos.yaml +2 -1
  122. package/schemas/octets/workflow.cos.yaml +12 -0
  123. package/schemas/querystring.cos.yaml +1 -0
  124. package/source/Annotation.ts +1 -0
  125. package/source/Context.ts +6 -4
  126. package/source/Directive.test.ts +14 -8
  127. package/source/Directive.ts +26 -49
  128. package/source/Endpoint.ts +53 -6
  129. package/source/Factory.ts +23 -12
  130. package/source/Gateway.ts +45 -42
  131. package/source/HTTP/Context.ts +67 -0
  132. package/source/HTTP/Server.test.ts +61 -134
  133. package/source/HTTP/Server.ts +83 -87
  134. package/source/HTTP/Timing.ts +40 -0
  135. package/source/HTTP/formats/msgpack.ts +9 -6
  136. package/source/HTTP/formats/text.ts +1 -1
  137. package/source/HTTP/formats/yaml.ts +1 -1
  138. package/source/HTTP/index.ts +1 -0
  139. package/source/HTTP/messages.test.ts +27 -8
  140. package/source/HTTP/messages.ts +38 -42
  141. package/source/Interception.ts +24 -0
  142. package/source/Mapping.ts +7 -8
  143. package/source/RTD/Context.ts +7 -10
  144. package/source/RTD/Directives.ts +28 -4
  145. package/source/RTD/Endpoint.ts +6 -4
  146. package/source/RTD/Match.ts +2 -7
  147. package/source/RTD/Method.ts +7 -13
  148. package/source/RTD/Node.ts +13 -14
  149. package/source/RTD/Tree.ts +19 -15
  150. package/source/RTD/factory.ts +2 -5
  151. package/source/RTD/syntax/parse.ts +6 -6
  152. package/source/RTD/syntax/types.ts +1 -1
  153. package/source/deployment.ts +7 -2
  154. package/source/directives/auth/Anonymous.ts +3 -2
  155. package/source/directives/auth/{Family.ts → Authorization.ts} +39 -40
  156. package/source/directives/auth/Delegate.ts +32 -0
  157. package/source/directives/auth/Incept.ts +11 -6
  158. package/source/directives/auth/Role.ts +5 -3
  159. package/source/directives/auth/Rule.ts +2 -2
  160. package/source/directives/auth/Scheme.ts +2 -2
  161. package/source/directives/auth/index.ts +2 -2
  162. package/source/directives/auth/schemes.ts +2 -1
  163. package/source/directives/auth/types.ts +9 -6
  164. package/source/directives/cache/{Family.ts → Cache.ts} +6 -7
  165. package/source/directives/cache/Control.ts +5 -5
  166. package/source/directives/cache/index.ts +2 -2
  167. package/source/directives/cache/types.ts +2 -2
  168. package/source/directives/cors/CORS.ts +62 -0
  169. package/source/directives/cors/index.ts +3 -0
  170. package/source/directives/dev/{Family.ts → Development.ts} +4 -5
  171. package/source/directives/dev/Stub.ts +4 -4
  172. package/source/directives/dev/Throw.ts +4 -4
  173. package/source/directives/dev/index.ts +2 -2
  174. package/source/directives/dev/types.ts +1 -1
  175. package/source/directives/index.ts +11 -6
  176. package/source/directives/io/Directive.ts +11 -0
  177. package/source/directives/io/IO.ts +43 -0
  178. package/source/directives/io/Input.ts +50 -0
  179. package/source/directives/io/Message.ts +1 -0
  180. package/source/directives/io/Output.ts +69 -0
  181. package/source/directives/io/index.ts +3 -0
  182. package/source/directives/io/schemas.ts +12 -0
  183. package/source/directives/octets/Context.ts +6 -5
  184. package/source/directives/octets/Delete.ts +64 -11
  185. package/source/directives/octets/Directive.ts +10 -0
  186. package/source/directives/octets/Fetch.ts +44 -29
  187. package/source/directives/octets/List.ts +50 -10
  188. package/source/directives/octets/{Family.ts → Octets.ts} +14 -9
  189. package/source/directives/octets/Permute.ts +18 -11
  190. package/source/directives/octets/Store.ts +70 -102
  191. package/source/directives/octets/Workflow.ts +48 -0
  192. package/source/directives/octets/index.ts +2 -2
  193. package/source/directives/octets/schemas.test.ts +21 -0
  194. package/source/directives/octets/schemas.ts +13 -6
  195. package/source/directives/octets/types.ts +2 -8
  196. package/source/directives/octets/workflows/Execution.ts +76 -0
  197. package/source/directives/octets/workflows/Workflow.ts +37 -0
  198. package/source/directives/octets/workflows/index.ts +1 -0
  199. package/source/directives/vary/Directive.ts +6 -0
  200. package/source/directives/vary/Embed.ts +62 -0
  201. package/source/directives/vary/Properties.ts +17 -0
  202. package/source/directives/vary/Vary.ts +48 -0
  203. package/source/directives/vary/embeddings/Embedding.ts +6 -0
  204. package/source/directives/vary/embeddings/Header.ts +32 -0
  205. package/source/directives/vary/embeddings/Language.ts +31 -0
  206. package/source/directives/vary/embeddings/index.ts +11 -0
  207. package/source/directives/vary/index.ts +3 -0
  208. package/source/exceptions.ts +13 -9
  209. package/source/io.ts +4 -0
  210. package/source/manifest.test.ts +6 -14
  211. package/source/manifest.ts +9 -6
  212. package/source/root.ts +5 -0
  213. package/source/schemas.ts +7 -3
  214. package/transpiled/Annotation.d.ts +1 -0
  215. package/transpiled/Composition.js.map +1 -1
  216. package/transpiled/Context.d.ts +6 -4
  217. package/transpiled/Directive.d.ts +11 -25
  218. package/transpiled/Directive.js +17 -18
  219. package/transpiled/Directive.js.map +1 -1
  220. package/transpiled/Endpoint.d.ts +7 -5
  221. package/transpiled/Endpoint.js +58 -2
  222. package/transpiled/Endpoint.js.map +1 -1
  223. package/transpiled/Factory.d.ts +0 -1
  224. package/transpiled/Factory.js +14 -7
  225. package/transpiled/Factory.js.map +1 -1
  226. package/transpiled/Gateway.d.ts +7 -8
  227. package/transpiled/Gateway.js +25 -25
  228. package/transpiled/Gateway.js.map +1 -1
  229. package/transpiled/HTTP/Context.d.ts +24 -0
  230. package/transpiled/HTTP/Context.js +47 -0
  231. package/transpiled/HTTP/Context.js.map +1 -0
  232. package/transpiled/HTTP/Server.d.ts +10 -7
  233. package/transpiled/HTTP/Server.js +80 -70
  234. package/transpiled/HTTP/Server.js.map +1 -1
  235. package/transpiled/HTTP/Timing.d.ts +10 -0
  236. package/transpiled/HTTP/Timing.js +29 -0
  237. package/transpiled/HTTP/Timing.js.map +1 -0
  238. package/transpiled/HTTP/formats/msgpack.d.ts +2 -2
  239. package/transpiled/HTTP/formats/msgpack.js +8 -29
  240. package/transpiled/HTTP/formats/msgpack.js.map +1 -1
  241. package/transpiled/HTTP/formats/text.d.ts +3 -1
  242. package/transpiled/HTTP/formats/text.js.map +1 -1
  243. package/transpiled/HTTP/formats/yaml.js +1 -1
  244. package/transpiled/HTTP/formats/yaml.js.map +1 -1
  245. package/transpiled/HTTP/index.d.ts +1 -0
  246. package/transpiled/HTTP/index.js +1 -0
  247. package/transpiled/HTTP/index.js.map +1 -1
  248. package/transpiled/HTTP/messages.d.ts +7 -16
  249. package/transpiled/HTTP/messages.js +28 -25
  250. package/transpiled/HTTP/messages.js.map +1 -1
  251. package/transpiled/Interception.d.ts +9 -0
  252. package/transpiled/Interception.js +19 -0
  253. package/transpiled/Interception.js.map +1 -0
  254. package/transpiled/Mapping.js +7 -7
  255. package/transpiled/Mapping.js.map +1 -1
  256. package/transpiled/Query.js.map +1 -1
  257. package/transpiled/RTD/Context.d.ts +7 -6
  258. package/transpiled/RTD/Directives.d.ts +19 -4
  259. package/transpiled/RTD/Endpoint.d.ts +6 -4
  260. package/transpiled/RTD/Match.d.ts +2 -4
  261. package/transpiled/RTD/Method.d.ts +7 -7
  262. package/transpiled/RTD/Method.js.map +1 -1
  263. package/transpiled/RTD/Node.d.ts +4 -6
  264. package/transpiled/RTD/Node.js +2 -1
  265. package/transpiled/RTD/Node.js.map +1 -1
  266. package/transpiled/RTD/Route.js.map +1 -1
  267. package/transpiled/RTD/Tree.d.ts +6 -6
  268. package/transpiled/RTD/Tree.js +5 -0
  269. package/transpiled/RTD/Tree.js.map +1 -1
  270. package/transpiled/RTD/factory.d.ts +2 -4
  271. package/transpiled/RTD/factory.js.map +1 -1
  272. package/transpiled/RTD/syntax/parse.js +1 -1
  273. package/transpiled/RTD/syntax/parse.js.map +1 -1
  274. package/transpiled/RTD/syntax/types.js +1 -1
  275. package/transpiled/RTD/syntax/types.js.map +1 -1
  276. package/transpiled/deployment.js +6 -2
  277. package/transpiled/deployment.js.map +1 -1
  278. package/transpiled/directives/auth/Anonymous.js +3 -4
  279. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  280. package/transpiled/directives/auth/{Family.d.ts → Authorization.d.ts} +4 -5
  281. package/transpiled/directives/auth/{Family.js → Authorization.js} +22 -13
  282. package/transpiled/directives/auth/Authorization.js.map +1 -0
  283. package/transpiled/directives/auth/Delegate.d.ts +8 -0
  284. package/transpiled/directives/auth/Delegate.js +27 -0
  285. package/transpiled/directives/auth/Delegate.js.map +1 -0
  286. package/transpiled/directives/auth/Incept.d.ts +1 -1
  287. package/transpiled/directives/auth/Incept.js +11 -6
  288. package/transpiled/directives/auth/Incept.js.map +1 -1
  289. package/transpiled/directives/auth/Role.js +5 -3
  290. package/transpiled/directives/auth/Role.js.map +1 -1
  291. package/transpiled/directives/auth/Rule.d.ts +2 -2
  292. package/transpiled/directives/auth/Rule.js.map +1 -1
  293. package/transpiled/directives/auth/Scheme.js +2 -2
  294. package/transpiled/directives/auth/Scheme.js.map +1 -1
  295. package/transpiled/directives/auth/index.d.ts +2 -2
  296. package/transpiled/directives/auth/index.js +4 -5
  297. package/transpiled/directives/auth/index.js.map +1 -1
  298. package/transpiled/directives/auth/schemes.js +2 -1
  299. package/transpiled/directives/auth/schemes.js.map +1 -1
  300. package/transpiled/directives/auth/types.d.ts +4 -4
  301. package/transpiled/directives/cache/Cache.d.ts +11 -0
  302. package/transpiled/directives/cache/{Family.js → Cache.js} +6 -4
  303. package/transpiled/directives/cache/Cache.js.map +1 -0
  304. package/transpiled/directives/cache/Control.d.ts +3 -3
  305. package/transpiled/directives/cache/Control.js +3 -3
  306. package/transpiled/directives/cache/Control.js.map +1 -1
  307. package/transpiled/directives/cache/index.d.ts +2 -2
  308. package/transpiled/directives/cache/index.js +4 -5
  309. package/transpiled/directives/cache/index.js.map +1 -1
  310. package/transpiled/directives/cache/types.d.ts +2 -2
  311. package/transpiled/directives/cors/CORS.d.ts +10 -0
  312. package/transpiled/directives/cors/CORS.js +51 -0
  313. package/transpiled/directives/cors/CORS.js.map +1 -0
  314. package/transpiled/directives/cors/index.d.ts +2 -0
  315. package/transpiled/directives/cors/index.js +6 -0
  316. package/transpiled/directives/cors/index.js.map +1 -0
  317. package/transpiled/directives/dev/Development.d.ts +9 -0
  318. package/transpiled/directives/dev/{Family.js → Development.js} +4 -2
  319. package/transpiled/directives/dev/Development.js.map +1 -0
  320. package/transpiled/directives/dev/Stub.d.ts +3 -3
  321. package/transpiled/directives/dev/Stub.js.map +1 -1
  322. package/transpiled/directives/dev/Throw.d.ts +3 -3
  323. package/transpiled/directives/dev/Throw.js.map +1 -1
  324. package/transpiled/directives/dev/index.d.ts +2 -2
  325. package/transpiled/directives/dev/index.js +4 -5
  326. package/transpiled/directives/dev/index.js.map +1 -1
  327. package/transpiled/directives/dev/types.d.ts +1 -1
  328. package/transpiled/directives/index.d.ts +4 -2
  329. package/transpiled/directives/index.js +10 -9
  330. package/transpiled/directives/index.js.map +1 -1
  331. package/transpiled/directives/io/Directive.d.ts +8 -0
  332. package/transpiled/directives/io/Directive.js +3 -0
  333. package/transpiled/directives/io/Directive.js.map +1 -0
  334. package/transpiled/directives/io/IO.d.ts +9 -0
  335. package/transpiled/directives/io/IO.js +33 -0
  336. package/transpiled/directives/io/IO.js.map +1 -0
  337. package/transpiled/directives/io/Input.d.ts +11 -0
  338. package/transpiled/directives/io/Input.js +63 -0
  339. package/transpiled/directives/io/Input.js.map +1 -0
  340. package/transpiled/directives/io/Message.d.ts +1 -0
  341. package/transpiled/directives/io/Message.js +3 -0
  342. package/transpiled/directives/io/Message.js.map +1 -0
  343. package/transpiled/directives/io/Output.d.ts +13 -0
  344. package/transpiled/directives/io/Output.js +76 -0
  345. package/transpiled/directives/io/Output.js.map +1 -0
  346. package/transpiled/directives/io/index.d.ts +2 -0
  347. package/transpiled/directives/io/index.js +6 -0
  348. package/transpiled/directives/io/index.js.map +1 -0
  349. package/transpiled/directives/io/schemas.d.ts +7 -0
  350. package/transpiled/directives/io/schemas.js +14 -0
  351. package/transpiled/directives/io/schemas.js.map +1 -0
  352. package/transpiled/directives/octets/Context.d.ts +5 -5
  353. package/transpiled/directives/octets/Context.js +4 -2
  354. package/transpiled/directives/octets/Context.js.map +1 -1
  355. package/transpiled/directives/octets/Delete.d.ts +15 -5
  356. package/transpiled/directives/octets/Delete.js +45 -8
  357. package/transpiled/directives/octets/Delete.js.map +1 -1
  358. package/transpiled/directives/octets/Directive.d.ts +8 -0
  359. package/transpiled/directives/octets/Directive.js +8 -0
  360. package/transpiled/directives/octets/Directive.js.map +1 -0
  361. package/transpiled/directives/octets/Fetch.d.ts +9 -9
  362. package/transpiled/directives/octets/Fetch.js +36 -21
  363. package/transpiled/directives/octets/Fetch.js.map +1 -1
  364. package/transpiled/directives/octets/List.d.ts +11 -5
  365. package/transpiled/directives/octets/List.js +34 -7
  366. package/transpiled/directives/octets/List.js.map +1 -1
  367. package/transpiled/directives/octets/Octets.d.ts +12 -0
  368. package/transpiled/directives/octets/{Family.js → Octets.js} +12 -6
  369. package/transpiled/directives/octets/Octets.js.map +1 -0
  370. package/transpiled/directives/octets/Permute.d.ts +5 -4
  371. package/transpiled/directives/octets/Permute.js +15 -8
  372. package/transpiled/directives/octets/Permute.js.map +1 -1
  373. package/transpiled/directives/octets/Store.d.ts +14 -23
  374. package/transpiled/directives/octets/Store.js +41 -70
  375. package/transpiled/directives/octets/Store.js.map +1 -1
  376. package/transpiled/directives/octets/Workflow.d.ts +15 -0
  377. package/transpiled/directives/octets/Workflow.js +59 -0
  378. package/transpiled/directives/octets/Workflow.js.map +1 -0
  379. package/transpiled/directives/octets/index.d.ts +2 -2
  380. package/transpiled/directives/octets/index.js +4 -5
  381. package/transpiled/directives/octets/index.js.map +1 -1
  382. package/transpiled/directives/octets/schemas.d.ts +13 -6
  383. package/transpiled/directives/octets/schemas.js +2 -1
  384. package/transpiled/directives/octets/schemas.js.map +1 -1
  385. package/transpiled/directives/octets/types.d.ts +2 -6
  386. package/transpiled/directives/octets/workflows/Execution.d.ts +25 -0
  387. package/transpiled/directives/octets/workflows/Execution.js +54 -0
  388. package/transpiled/directives/octets/workflows/Execution.js.map +1 -0
  389. package/transpiled/directives/octets/workflows/Workflow.d.ts +12 -0
  390. package/transpiled/directives/octets/workflows/Workflow.js +25 -0
  391. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -0
  392. package/transpiled/directives/octets/workflows/index.d.ts +1 -0
  393. package/transpiled/directives/octets/workflows/index.js +6 -0
  394. package/transpiled/directives/octets/workflows/index.js.map +1 -0
  395. package/transpiled/directives/vary/Directive.d.ts +5 -0
  396. package/transpiled/directives/vary/Directive.js +3 -0
  397. package/transpiled/directives/vary/Directive.js.map +1 -0
  398. package/transpiled/directives/vary/Embed.d.ts +10 -0
  399. package/transpiled/directives/vary/Embed.js +49 -0
  400. package/transpiled/directives/vary/Embed.js.map +1 -0
  401. package/transpiled/directives/vary/Properties.d.ts +9 -0
  402. package/transpiled/directives/vary/Properties.js +16 -0
  403. package/transpiled/directives/vary/Properties.js.map +1 -0
  404. package/transpiled/directives/vary/Vary.d.ts +10 -0
  405. package/transpiled/directives/vary/Vary.js +36 -0
  406. package/transpiled/directives/vary/Vary.js.map +1 -0
  407. package/transpiled/directives/vary/embeddings/Embedding.d.ts +5 -0
  408. package/transpiled/directives/vary/embeddings/Embedding.js +3 -0
  409. package/transpiled/directives/vary/embeddings/Embedding.js.map +1 -0
  410. package/transpiled/directives/vary/embeddings/Header.d.ts +7 -0
  411. package/transpiled/directives/vary/embeddings/Header.js +28 -0
  412. package/transpiled/directives/vary/embeddings/Header.js.map +1 -0
  413. package/transpiled/directives/vary/embeddings/Language.d.ts +7 -0
  414. package/transpiled/directives/vary/embeddings/Language.js +28 -0
  415. package/transpiled/directives/vary/embeddings/Language.js.map +1 -0
  416. package/transpiled/directives/vary/embeddings/index.d.ts +5 -0
  417. package/transpiled/directives/vary/embeddings/index.js +10 -0
  418. package/transpiled/directives/vary/embeddings/index.js.map +1 -0
  419. package/transpiled/directives/vary/index.d.ts +2 -0
  420. package/transpiled/directives/vary/index.js +6 -0
  421. package/transpiled/directives/vary/index.js.map +1 -0
  422. package/transpiled/exceptions.js +7 -7
  423. package/transpiled/exceptions.js.map +1 -1
  424. package/transpiled/io.d.ts +3 -0
  425. package/transpiled/io.js +3 -0
  426. package/transpiled/io.js.map +1 -0
  427. package/transpiled/manifest.js +10 -5
  428. package/transpiled/manifest.js.map +1 -1
  429. package/transpiled/root.js +5 -0
  430. package/transpiled/root.js.map +1 -1
  431. package/transpiled/schemas.d.ts +7 -3
  432. package/transpiled/schemas.js.map +1 -1
  433. package/transpiled/tsconfig.tsbuildinfo +1 -1
  434. package/source/HTTP/Server.fixtures.ts +0 -41
  435. package/transpiled/HTTP/Server.fixtures.d.ts +0 -11
  436. package/transpiled/HTTP/Server.fixtures.js +0 -32
  437. package/transpiled/HTTP/Server.fixtures.js.map +0 -1
  438. package/transpiled/directives/auth/Family.js.map +0 -1
  439. package/transpiled/directives/cache/Family.d.ts +0 -12
  440. package/transpiled/directives/cache/Family.js.map +0 -1
  441. package/transpiled/directives/dev/Family.d.ts +0 -10
  442. package/transpiled/directives/dev/Family.js.map +0 -1
  443. package/transpiled/directives/octets/Family.d.ts +0 -12
  444. package/transpiled/directives/octets/Family.js.map +0 -1
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- const Family_1 = __importDefault(require("./Family"));
6
- module.exports = Family_1.default;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cache = void 0;
4
+ const Cache_1 = require("./Cache");
5
+ exports.cache = new Cache_1.Cache();
7
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/directives/cache/index.ts"],"names":[],"mappings":";;;;AAAA,sDAA6B;AAE7B,iBAAS,gBAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/directives/cache/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAElB,QAAA,KAAK,GAAG,IAAI,aAAK,EAAE,CAAA"}
@@ -1,7 +1,7 @@
1
- import { type Input } from '../../Directive';
1
+ import type { Input } from '../../io';
2
2
  export interface Directive {
3
3
  set: (input: Input, headers: Headers) => void;
4
4
  }
5
- export interface AuthenticatedRequest extends Input {
5
+ export interface AuthenticatedContext extends Input {
6
6
  identity?: unknown | null;
7
7
  }
@@ -0,0 +1,10 @@
1
+ import type { Input, Output } from '../../io';
2
+ import type { Interceptor } from '../../Interception';
3
+ export declare class CORS implements Interceptor {
4
+ readonly name = "cors";
5
+ private readonly requestHeaders;
6
+ private readonly headers;
7
+ intercept(input: Input): Output;
8
+ allow(header: string): void;
9
+ private preflightResponse;
10
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CORS = void 0;
4
+ class CORS {
5
+ name = 'cors';
6
+ requestHeaders = new Set([
7
+ 'accept',
8
+ 'authorization',
9
+ 'content-type',
10
+ 'etag',
11
+ 'if-match',
12
+ 'if-none-match'
13
+ ]);
14
+ headers = new Headers({
15
+ 'access-control-allow-methods': 'GET, POST, PUT, PATCH, DELETE',
16
+ 'access-control-allow-credentials': 'true',
17
+ 'access-control-allow-headers': Array.from(this.requestHeaders).join(', '),
18
+ 'access-control-max-age': '3600',
19
+ 'cache-control': 'max-age=3600',
20
+ vary: 'origin'
21
+ });
22
+ intercept(input) {
23
+ const origin = input.request.headers.origin;
24
+ if (origin === undefined)
25
+ return null;
26
+ if (input.request.method === 'OPTIONS')
27
+ return this.preflightResponse(origin);
28
+ input.pipelines.response.push((output) => {
29
+ output.headers ??= new Headers();
30
+ output.headers.set('access-control-allow-origin', origin);
31
+ output.headers.set('access-control-expose-headers', 'authorization, content-type, content-length, etag');
32
+ const method = input.request.method;
33
+ if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS')
34
+ output.headers.append('vary', 'origin');
35
+ });
36
+ return null;
37
+ }
38
+ allow(header) {
39
+ this.requestHeaders.add(header.toLowerCase());
40
+ this.headers.set('access-control-allow-headers', Array.from(this.requestHeaders).join(', '));
41
+ }
42
+ preflightResponse(origin) {
43
+ this.headers.set('access-control-allow-origin', origin);
44
+ return {
45
+ status: 204,
46
+ headers: this.headers
47
+ };
48
+ }
49
+ }
50
+ exports.CORS = CORS;
51
+ //# sourceMappingURL=CORS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CORS.js","sourceRoot":"","sources":["../../../source/directives/cors/CORS.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACC,IAAI,GAAG,MAAM,CAAA;IAEZ,cAAc,GAAG,IAAI,GAAG,CAAS;QAChD,QAAQ;QACR,eAAe;QACf,cAAc;QACd,MAAM;QACN,UAAU;QACV,eAAe;KAChB,CAAC,CAAA;IAEe,OAAO,GAAG,IAAI,OAAO,CAAC;QACrC,8BAA8B,EAAE,+BAA+B;QAC/D,kCAAkC,EAAE,MAAM;QAC1C,8BAA8B,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1E,wBAAwB,EAAE,MAAM;QAChC,eAAe,EAAE,cAAc;QAC/B,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;IAEK,SAAS,CAAE,KAAY;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;QAE3C,IAAI,MAAM,KAAK,SAAS;YACtB,OAAO,IAAI,CAAA;QAEb,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS;YACpC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAEvC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACvC,MAAM,CAAC,OAAO,KAAK,IAAI,OAAO,EAAE,CAAA;YAChC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;YACzD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAChD,mDAAmD,CAAC,CAAA;YAEtD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;YAEnC,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,SAAS;gBAC/D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAE,MAAc;QAC1B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC9F,CAAC;IAEO,iBAAiB,CAAE,MAAc;QACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;QAEvD,OAAO;YACL,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAA;IACH,CAAC;CACF;AA1DD,oBA0DC"}
@@ -0,0 +1,2 @@
1
+ import { CORS } from './CORS';
2
+ export declare const cors: CORS;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cors = void 0;
4
+ const CORS_1 = require("./CORS");
5
+ exports.cors = new CORS_1.CORS();
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/directives/cors/index.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAEhB,QAAA,IAAI,GAAG,IAAI,WAAI,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { type Directive } from './types';
2
+ import type { Input, Output } from '../../io';
3
+ import type { DirectiveFamily } from '../../RTD';
4
+ export declare class Development implements DirectiveFamily<Directive> {
5
+ readonly name: string;
6
+ readonly mandatory: boolean;
7
+ create(name: string, value: unknown): Directive;
8
+ preflight(directives: Directive[], input: Input): Output;
9
+ }
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Development = void 0;
2
4
  const Stub_1 = require("./Stub");
3
5
  const Throw_1 = require("./Throw");
4
6
  class Development {
@@ -19,9 +21,9 @@ class Development {
19
21
  return null;
20
22
  }
21
23
  }
24
+ exports.Development = Development;
22
25
  const constructors = {
23
26
  stub: Stub_1.Stub,
24
27
  throw: Throw_1.Throw
25
28
  };
26
- module.exports = new Development();
27
- //# sourceMappingURL=Family.js.map
29
+ //# sourceMappingURL=Development.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Development.js","sourceRoot":"","sources":["../../../source/directives/dev/Development.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAC7B,mCAA+B;AAK/B,MAAa,WAAW;IACN,IAAI,GAAW,KAAK,CAAA;IACpB,SAAS,GAAY,KAAK,CAAA;IAEnC,MAAM,CAAE,IAAY,EAAE,KAAc;QACzC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAEhC,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,6BAA6B,IAAI,CAAC,IAAI,WAAW,CAAC,CAAA;QAEtF,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAEM,SAAS,CAAE,UAAuB,EAAE,KAAY;QACrD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAErC,IAAI,MAAM,KAAK,IAAI;gBACjB,OAAO,MAAM,CAAA;QACjB,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAvBD,kCAuBC;AAED,MAAM,YAAY,GAAkD;IAClE,IAAI,EAAE,WAAI;IACV,KAAK,EAAE,aAAK;CACb,CAAA"}
@@ -1,7 +1,7 @@
1
- import { type Output } from '../../Directive';
2
- import { type Directive } from './types';
1
+ import type { Output } from '../../io';
2
+ import type { Directive } from './types';
3
3
  export declare class Stub implements Directive {
4
4
  private readonly value;
5
- constructor(value: any);
5
+ constructor(value: unknown);
6
6
  apply(): Output;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Stub.js","sourceRoot":"","sources":["../../../source/directives/dev/Stub.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACE,KAAK,CAAK;IAE3B,YAAoB,KAAU;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,KAAK;QACV,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC;CACF;AAVD,oBAUC"}
1
+ {"version":3,"file":"Stub.js","sourceRoot":"","sources":["../../../source/directives/dev/Stub.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACE,KAAK,CAAS;IAE/B,YAAoB,KAAc;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,KAAK;QACV,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC;CACF;AAVD,oBAUC"}
@@ -1,7 +1,7 @@
1
- import { type Output } from '../../Directive';
2
- import { type Directive } from './types';
1
+ import type { Output } from '../../io';
2
+ import type { Directive } from './types';
3
3
  export declare class Throw implements Directive {
4
4
  private readonly message;
5
- constructor(message: any);
5
+ constructor(message: string);
6
6
  apply(): Output;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Throw.js","sourceRoot":"","sources":["../../../source/directives/dev/Throw.ts"],"names":[],"mappings":";;;AAGA,MAAa,KAAK;IACC,OAAO,CAAK;IAE7B,YAAoB,OAAY;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK;QACV,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;CACF;AAVD,sBAUC"}
1
+ {"version":3,"file":"Throw.js","sourceRoot":"","sources":["../../../source/directives/dev/Throw.ts"],"names":[],"mappings":";;;AAGA,MAAa,KAAK;IACC,OAAO,CAAQ;IAEhC,YAAoB,OAAe;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK;QACV,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;CACF;AAVD,sBAUC"}
@@ -1,2 +1,2 @@
1
- import Family from './Family';
2
- export = Family;
1
+ import { Development } from './Development';
2
+ export declare const dev: Development;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- const Family_1 = __importDefault(require("./Family"));
6
- module.exports = Family_1.default;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dev = void 0;
4
+ const Development_1 = require("./Development");
5
+ exports.dev = new Development_1.Development();
7
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/directives/dev/index.ts"],"names":[],"mappings":";;;;AAAA,sDAA6B;AAE7B,iBAAS,gBAAM,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/directives/dev/index.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE9B,QAAA,GAAG,GAAG,IAAI,yBAAW,EAAE,CAAA"}
@@ -1,4 +1,4 @@
1
- import { type Input, type Output } from '../../Directive';
1
+ import type { Input, Output } from '../../io';
2
2
  export interface Directive {
3
3
  apply: (input: Input) => Output;
4
4
  }
@@ -1,2 +1,4 @@
1
- import { type Family } from '../Directive';
2
- export declare const families: Family[];
1
+ import type { DirectiveFamily } from '../RTD';
2
+ import type { Interceptor } from '../Interception';
3
+ export declare const families: DirectiveFamily[];
4
+ export declare const interceptors: Interceptor[];
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.families = void 0;
7
- const dev_1 = __importDefault(require("./dev"));
8
- const auth_1 = __importDefault(require("./auth"));
9
- const cache_1 = __importDefault(require("./cache"));
10
- const octets_1 = __importDefault(require("./octets"));
11
- exports.families = [auth_1.default, octets_1.default, dev_1.default, cache_1.default];
3
+ exports.interceptors = exports.families = void 0;
4
+ const auth_1 = require("./auth");
5
+ const cache_1 = require("./cache");
6
+ const cors_1 = require("./cors");
7
+ const dev_1 = require("./dev");
8
+ const octets_1 = require("./octets");
9
+ const io_1 = require("./io");
10
+ const vary_1 = require("./vary");
11
+ exports.families = [auth_1.authorization, io_1.io, cache_1.cache, vary_1.vary, octets_1.octets, dev_1.dev];
12
+ exports.interceptors = [cors_1.cors];
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/directives/index.ts"],"names":[],"mappings":";;;;;;AACA,gDAAuB;AACvB,kDAAyB;AACzB,oDAA2B;AAC3B,sDAA6B;AAEhB,QAAA,QAAQ,GAAa,CAAC,cAAI,EAAE,gBAAM,EAAE,aAAG,EAAE,eAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/directives/index.ts"],"names":[],"mappings":";;;AAAA,iCAAsC;AACtC,mCAA+B;AAC/B,iCAA6B;AAC7B,+BAA2B;AAC3B,qCAAiC;AACjC,6BAAyB;AACzB,iCAA6B;AAIhB,QAAA,QAAQ,GAAsB,CAAC,oBAAa,EAAE,OAAE,EAAE,aAAK,EAAE,WAAI,EAAE,eAAM,EAAE,SAAG,CAAC,CAAA;AAC3E,QAAA,YAAY,GAAkB,CAAC,WAAI,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { Input } from '../../io';
2
+ export interface Directive {
3
+ attach: (context: Input) => void;
4
+ }
5
+ export interface Constructor {
6
+ validate: (value: unknown) => void;
7
+ new (value: any): Directive;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Directive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Directive.js","sourceRoot":"","sources":["../../../source/directives/io/Directive.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import type { Directive } from './Directive';
2
+ import type { Input as Context } from '../../io';
3
+ import type { DirectiveFamily } from '../../RTD';
4
+ export declare class IO implements DirectiveFamily<Directive> {
5
+ readonly name = "io";
6
+ readonly mandatory = true;
7
+ create(name: string, value: unknown): Directive;
8
+ preflight(directives: Directive[], context: Context): null;
9
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IO = void 0;
4
+ const Output_1 = require("./Output");
5
+ const Input_1 = require("./Input");
6
+ class IO {
7
+ name = 'io';
8
+ mandatory = true;
9
+ create(name, value) {
10
+ if (!(name in constructors))
11
+ throw new Error(`Directive 'io:${name}' is not implemented.`);
12
+ const Directive = constructors[name];
13
+ Directive.validate(value);
14
+ return new Directive(value);
15
+ }
16
+ preflight(directives, context) {
17
+ let restricted = false;
18
+ for (const directive of directives) {
19
+ restricted ||= directive instanceof Output_1.Output;
20
+ directive.attach(context);
21
+ }
22
+ if (!restricted)
23
+ DENIAL.attach(context);
24
+ return null;
25
+ }
26
+ }
27
+ exports.IO = IO;
28
+ const constructors = {
29
+ output: Output_1.Output,
30
+ input: Input_1.Input
31
+ };
32
+ const DENIAL = new Output_1.Output([]);
33
+ //# sourceMappingURL=IO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IO.js","sourceRoot":"","sources":["../../../source/directives/io/IO.ts"],"names":[],"mappings":";;;AAAA,qCAAiC;AACjC,mCAA+B;AAK/B,MAAa,EAAE;IACG,IAAI,GAAG,IAAI,CAAA;IACX,SAAS,GAAG,IAAI,CAAA;IAEzB,MAAM,CAAE,IAAY,EAAE,KAAc;QACzC,IAAI,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,uBAAuB,CAAC,CAAA;QAE/D,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAEpC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAEzB,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAEM,SAAS,CAAE,UAAuB,EAAE,OAAgB;QACzD,IAAI,UAAU,GAAG,KAAK,CAAA;QAEtB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,UAAU,KAAK,SAAS,YAAY,eAAM,CAAA;YAE1C,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3B,CAAC;QAED,IAAI,CAAC,UAAU;YACb,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAExB,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AA7BD,gBA6BC;AAED,MAAM,YAAY,GAAgC;IAChD,MAAM,EAAE,eAAM;IACd,KAAK,EAAE,aAAK;CACb,CAAA;AAED,MAAM,MAAM,GAAW,IAAI,eAAM,CAAC,EAAE,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { Directive } from './Directive';
2
+ import type { Input as Context } from '../../io';
3
+ export declare class Input implements Directive {
4
+ private readonly permissions;
5
+ constructor(permissions: Permissions);
6
+ static validate(permissions: unknown): asserts permissions is Permissions;
7
+ attach(context: Context): void;
8
+ private check;
9
+ private violation;
10
+ }
11
+ export type Permissions = string[];
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Input = void 0;
27
+ const HTTP_1 = require("../../HTTP");
28
+ const schemas = __importStar(require("./schemas"));
29
+ class Input {
30
+ permissions;
31
+ constructor(permissions) {
32
+ this.permissions = permissions;
33
+ }
34
+ static validate(permissions) {
35
+ schemas.input.validate(permissions, 'Incorrect \'io:input\' format');
36
+ }
37
+ attach(context) {
38
+ context.pipelines.body.push((body) => this.check(body));
39
+ }
40
+ check(body) {
41
+ try {
42
+ schemas.message.validate(body);
43
+ }
44
+ catch {
45
+ throw new HTTP_1.BadRequest('Invalid request body.');
46
+ }
47
+ const property = this.violation(body);
48
+ if (property !== undefined)
49
+ throw new HTTP_1.BadRequest(`Unexpected input: ${property}.`);
50
+ return body;
51
+ }
52
+ violation(value) {
53
+ if (!Array.isArray(value))
54
+ return Object.keys(value).find((key) => !this.permissions.includes(key));
55
+ for (const item of value) {
56
+ const property = this.violation(item);
57
+ if (property !== undefined)
58
+ return property;
59
+ }
60
+ }
61
+ }
62
+ exports.Input = Input;
63
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../source/directives/io/Input.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAuC;AACvC,mDAAoC;AAKpC,MAAa,KAAK;IACC,WAAW,CAAa;IAEzC,YAAoB,WAAwB;QAC1C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAE,WAAoB;QAC1C,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAA;IACtE,CAAC;IAEM,MAAM,CAAE,OAAgB;QAC7B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACzD,CAAC;IAEO,KAAK,CAAE,IAAa;QAC1B,IAAI,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,iBAAU,CAAC,uBAAuB,CAAC,CAAA;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAErC,IAAI,QAAQ,KAAK,SAAS;YACxB,MAAM,IAAI,iBAAU,CAAC,qBAAqB,QAAQ,GAAG,CAAC,CAAA;QAExD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,SAAS,CAAE,KAA0B;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACvB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAE1E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAErC,IAAI,QAAQ,KAAK,SAAS;gBACxB,OAAO,QAAQ,CAAA;QACnB,CAAC;IACH,CAAC;CACF;AAzCD,sBAyCC"}
@@ -0,0 +1 @@
1
+ export type Message = Record<string, unknown>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../../source/directives/io/Message.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { Directive } from './Directive';
2
+ import type { Input as Context } from '../../io';
3
+ export declare class Output implements Directive {
4
+ private readonly disabled;
5
+ private readonly omitted;
6
+ private readonly permissions;
7
+ constructor(permissions: Permissions);
8
+ static validate(permissions: unknown): asserts permissions is Permissions;
9
+ attach(context: Context): void;
10
+ private restriction;
11
+ private fit;
12
+ }
13
+ export type Permissions = string[] | boolean;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Output = void 0;
27
+ const node_stream_1 = require("node:stream");
28
+ const schemas = __importStar(require("./schemas"));
29
+ class Output {
30
+ disabled = false;
31
+ omitted = true;
32
+ permissions = [];
33
+ constructor(permissions) {
34
+ if (typeof permissions === 'boolean')
35
+ if (permissions)
36
+ this.disabled = true;
37
+ else
38
+ this.omitted = false;
39
+ else
40
+ this.permissions = permissions;
41
+ }
42
+ static validate(permissions) {
43
+ schemas.output.validate(permissions, 'Incorrect \'io:output\' format');
44
+ }
45
+ attach(context) {
46
+ context.pipelines.response.push(this.restriction(context));
47
+ }
48
+ restriction(context) {
49
+ return (message) => {
50
+ const error = message.status !== undefined && message.status >= 300;
51
+ const stream = message.body instanceof node_stream_1.Stream;
52
+ const none = message.body === undefined || message.body === null;
53
+ if (this.disabled || error || stream || none)
54
+ return;
55
+ if (typeof message.body !== 'object' || this.permissions.length === 0) {
56
+ if (this.omitted)
57
+ console.warn('Permissions for \'io:output\' are not specified properly ' +
58
+ `(${context.request.url}). Response omitted.`);
59
+ delete message.body;
60
+ return;
61
+ }
62
+ schemas.message.validate(message.body, '\'io:output\' expects response to be an object or array of objects');
63
+ if (Array.isArray(message.body))
64
+ message.body = message.body.map((entity) => this.fit(entity));
65
+ else
66
+ message.body = this.fit(message.body);
67
+ };
68
+ }
69
+ fit(message) {
70
+ const entries = Object.entries(message)
71
+ .filter(([key]) => this.permissions.includes(key));
72
+ return Object.fromEntries(entries);
73
+ }
74
+ }
75
+ exports.Output = Output;
76
+ //# sourceMappingURL=Output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Output.js","sourceRoot":"","sources":["../../../source/directives/io/Output.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAoC;AACpC,mDAAoC;AAMpC,MAAa,MAAM;IACA,QAAQ,GAAY,KAAK,CAAA;IACzB,OAAO,GAAY,IAAI,CAAA;IACvB,WAAW,GAAa,EAAE,CAAA;IAE3C,YAAoB,WAAwB;QAC1C,IAAI,OAAO,WAAW,KAAK,SAAS;YAClC,IAAI,WAAW;gBACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;;gBAEpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;;YAGtB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAClC,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAE,WAAoB;QAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAA;IACxE,CAAC;IAEM,MAAM,CAAE,OAAgB;QAC7B,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAA;IAC5D,CAAC;IAEO,WAAW,CAAE,OAAgB;QACnC,OAAO,CAAC,OAAwB,EAAQ,EAAE;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,CAAA;YACnE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,YAAY,oBAAM,CAAA;YAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAA;YAEhE,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,IAAI;gBAC1C,OAAM;YAER,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtE,IAAI,IAAI,CAAC,OAAO;oBACd,OAAO,CAAC,IAAI,CAAC,2DAA2D;wBACtE,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,sBAAsB,CAAC,CAAA;gBAElD,OAAO,OAAO,CAAC,IAAI,CAAA;gBAEnB,OAAM;YACR,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EACnC,oEAAoE,CAAC,CAAA;YAEvE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC7B,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;;gBAE7D,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC,CAAA;IACH,CAAC;IAEO,GAAG,CAAE,OAAgB;QAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACpC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAEpD,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;IACpC,CAAC;CACF;AA3DD,wBA2DC"}
@@ -0,0 +1,2 @@
1
+ import { IO } from './IO';
2
+ export declare const io: IO;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.io = void 0;
4
+ const IO_1 = require("./IO");
5
+ exports.io = new IO_1.IO();
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/directives/io/index.ts"],"names":[],"mappings":";;;AAAA,6BAAyB;AAEZ,QAAA,EAAE,GAAG,IAAI,OAAE,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { type Schema } from '@toa.io/schemas';
2
+ import type { Permissions as InputPermissions } from './Input';
3
+ import type { Permissions as OutputPermissions } from './Output';
4
+ import type { Message } from './Message';
5
+ export declare const message: Schema<Message | Message[]>;
6
+ export declare const input: Schema<InputPermissions>;
7
+ export declare const output: Schema<OutputPermissions>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.output = exports.input = exports.message = void 0;
7
+ const node_path_1 = require("node:path");
8
+ const schemas_1 = __importDefault(require("@toa.io/schemas"));
9
+ const path = (0, node_path_1.resolve)(__dirname, '../../../schemas/io');
10
+ const namespace = schemas_1.default.namespace(path);
11
+ exports.message = namespace.schema('message');
12
+ exports.input = namespace.schema('input');
13
+ exports.output = namespace.schema('output');
14
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../source/directives/io/schemas.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAmC;AACnC,8DAAsD;AAKtD,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,SAAS,EAAE,qBAAqB,CAAC,CAAA;AACtD,MAAM,SAAS,GAAG,iBAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAE5B,QAAA,OAAO,GAAgC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAClE,QAAA,KAAK,GAA6B,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC3D,QAAA,MAAM,GAA8B,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA"}
@@ -1,8 +1,8 @@
1
- import type { Output } from '../../Directive';
2
- import type { Directive } from './types';
3
- export declare class Context implements Directive {
1
+ import { Directive } from './Directive';
2
+ import type { Output } from '../../io';
3
+ export declare class Context extends Directive {
4
4
  readonly targeted = false;
5
5
  readonly storage: string;
6
- constructor(value: any);
7
- apply(): Output;
6
+ constructor(value: unknown);
7
+ apply(): Promise<Output>;
8
8
  }
@@ -25,14 +25,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Context = void 0;
27
27
  const schemas = __importStar(require("./schemas"));
28
- class Context {
28
+ const Directive_1 = require("./Directive");
29
+ class Context extends Directive_1.Directive {
29
30
  targeted = false;
30
31
  storage;
31
32
  constructor(value) {
33
+ super();
32
34
  schemas.context.validate(value);
33
35
  this.storage = value;
34
36
  }
35
- apply() {
37
+ async apply() {
36
38
  return null;
37
39
  }
38
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../source/directives/octets/Context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AAIpC,MAAa,OAAO;IACF,QAAQ,GAAG,KAAK,CAAA;IAChB,OAAO,CAAQ;IAE/B,YAAoB,KAAU;QAC5B,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAbD,0BAaC"}
1
+ {"version":3,"file":"Context.js","sourceRoot":"","sources":["../../../source/directives/octets/Context.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AACpC,2CAAuC;AAGvC,MAAa,OAAQ,SAAQ,qBAAS;IACpB,QAAQ,GAAG,KAAK,CAAA;IAChB,OAAO,CAAQ;IAE/B,YAAoB,KAAc;QAChC,KAAK,EAAE,CAAA;QACP,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAdD,0BAcC"}