@toa.io/extensions.exposition 1.0.0-alpha.2 → 1.0.0-alpha.4

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 (195) hide show
  1. package/components/identity.bans/manifest.toa.yaml +1 -0
  2. package/components/identity.basic/manifest.toa.yaml +1 -0
  3. package/components/identity.basic/operations/tsconfig.tsbuildinfo +1 -1
  4. package/components/identity.federation/manifest.toa.yaml +13 -0
  5. package/components/identity.federation/operations/authenticate.js +4 -4
  6. package/components/identity.federation/operations/authenticate.js.map +1 -1
  7. package/components/identity.federation/operations/create.js +4 -4
  8. package/components/identity.federation/operations/create.js.map +1 -1
  9. package/components/identity.federation/operations/{assertions-as-values.cjs → lib/assertions-as-values.js} +1 -1
  10. package/components/identity.federation/operations/lib/assertions-as-values.js.map +1 -0
  11. package/components/identity.federation/operations/{jwt.d.cts → lib/jwt.d.ts} +5 -4
  12. package/components/identity.federation/operations/{jwt.cjs → lib/jwt.js} +35 -11
  13. package/components/identity.federation/operations/lib/jwt.js.map +1 -0
  14. package/components/identity.federation/operations/schemas.d.ts +16 -0
  15. package/components/identity.federation/operations/tsconfig.tsbuildinfo +1 -1
  16. package/components/identity.federation/operations/types.d.ts +1 -1
  17. package/components/identity.federation/source/authenticate.ts +2 -2
  18. package/components/identity.federation/source/create.ts +2 -2
  19. package/components/identity.federation/source/{assertions-as-values.cts → lib/assertions-as-values.ts} +1 -2
  20. package/components/identity.federation/source/lib/jwt.test.ts +56 -0
  21. package/components/identity.federation/source/{jwt.cts → lib/jwt.ts} +57 -29
  22. package/components/identity.federation/source/schemas.ts +16 -0
  23. package/components/identity.federation/source/types.ts +1 -1
  24. package/components/identity.roles/manifest.toa.yaml +1 -0
  25. package/components/identity.roles/operations/tsconfig.tsbuildinfo +1 -1
  26. package/components/identity.tokens/manifest.toa.yaml +1 -0
  27. package/components/identity.tokens/operations/tsconfig.tsbuildinfo +1 -1
  28. package/components/octets.storage/manifest.toa.yaml +1 -0
  29. package/components/octets.storage/operations/store.js +1 -1
  30. package/documentation/components.md +12 -5
  31. package/documentation/identity.md +7 -0
  32. package/documentation/octets.md +12 -0
  33. package/documentation/query.md +45 -2
  34. package/features/body.feature +1 -1
  35. package/features/errors.feature +1 -1
  36. package/features/etag.feature +86 -0
  37. package/features/identity.federation.feature +31 -1
  38. package/features/octets.entries.feature +1 -1
  39. package/features/octets.workflows.feature +38 -0
  40. package/features/steps/Gateway.ts +3 -0
  41. package/features/steps/IdP.ts +29 -0
  42. package/features/steps/components/echo/manifest.toa.yaml +1 -0
  43. package/features/steps/components/greeter/manifest.toa.yaml +1 -0
  44. package/features/steps/components/octets.tester/manifest.toa.yaml +1 -0
  45. package/features/steps/components/pots/manifest.toa.yaml +10 -3
  46. package/features/steps/components/sequences/manifest.toa.yaml +1 -0
  47. package/features/timing.feature +43 -0
  48. package/package.json +7 -10
  49. package/readme.md +7 -6
  50. package/schemas/annotation.cos.yaml +1 -0
  51. package/schemas/octets/workflow.cos.yaml +12 -0
  52. package/schemas/querystring.cos.yaml +1 -0
  53. package/source/Annotation.ts +1 -0
  54. package/source/Directive.test.ts +3 -3
  55. package/source/Directive.ts +11 -11
  56. package/source/Endpoint.ts +18 -4
  57. package/source/Factory.ts +8 -4
  58. package/source/Gateway.ts +55 -42
  59. package/source/HTTP/Context.ts +67 -0
  60. package/source/HTTP/Server.test.ts +1 -1
  61. package/source/HTTP/Server.ts +60 -95
  62. package/source/HTTP/Timing.ts +40 -0
  63. package/source/HTTP/index.ts +1 -0
  64. package/source/HTTP/messages.test.ts +27 -8
  65. package/source/HTTP/messages.ts +32 -48
  66. package/source/Mapping.ts +7 -8
  67. package/source/deployment.ts +6 -0
  68. package/source/directives/auth/Anonymous.ts +3 -2
  69. package/source/directives/auth/Authorization.ts +5 -3
  70. package/source/directives/auth/Incept.ts +11 -6
  71. package/source/directives/auth/Role.ts +5 -3
  72. package/source/directives/auth/Scheme.ts +2 -2
  73. package/source/directives/cache/Cache.ts +2 -2
  74. package/source/directives/cache/Control.ts +5 -5
  75. package/source/directives/cache/types.ts +1 -1
  76. package/source/directives/cors/CORS.ts +5 -3
  77. package/source/directives/octets/Context.ts +1 -1
  78. package/source/directives/octets/Delete.ts +21 -11
  79. package/source/directives/octets/Fetch.ts +29 -14
  80. package/source/directives/octets/List.ts +14 -6
  81. package/source/directives/octets/Octets.ts +7 -3
  82. package/source/directives/octets/Permute.ts +12 -6
  83. package/source/directives/octets/Store.ts +32 -16
  84. package/source/directives/octets/Workflow.ts +41 -0
  85. package/source/directives/octets/schemas.test.ts +21 -0
  86. package/source/directives/octets/schemas.ts +2 -0
  87. package/source/directives/octets/{workflow → workflows}/Execution.ts +0 -2
  88. package/source/directives/octets/{workflow → workflows}/Workflow.ts +2 -2
  89. package/source/directives/vary/Vary.ts +1 -1
  90. package/source/directives/vary/embeddings/Header.ts +1 -1
  91. package/source/directives/vary/embeddings/Language.ts +1 -1
  92. package/source/io.ts +2 -2
  93. package/transpiled/Annotation.d.ts +1 -0
  94. package/transpiled/Directive.d.ts +6 -6
  95. package/transpiled/Directive.js +8 -8
  96. package/transpiled/Directive.js.map +1 -1
  97. package/transpiled/Endpoint.d.ts +3 -3
  98. package/transpiled/Endpoint.js +34 -1
  99. package/transpiled/Endpoint.js.map +1 -1
  100. package/transpiled/Factory.js +4 -2
  101. package/transpiled/Factory.js.map +1 -1
  102. package/transpiled/Gateway.d.ts +5 -6
  103. package/transpiled/Gateway.js +38 -32
  104. package/transpiled/Gateway.js.map +1 -1
  105. package/transpiled/HTTP/Context.d.ts +24 -0
  106. package/transpiled/HTTP/Context.js +47 -0
  107. package/transpiled/HTTP/Context.js.map +1 -0
  108. package/transpiled/HTTP/Server.d.ts +8 -7
  109. package/transpiled/HTTP/Server.js +68 -76
  110. package/transpiled/HTTP/Server.js.map +1 -1
  111. package/transpiled/HTTP/Timing.d.ts +10 -0
  112. package/transpiled/HTTP/Timing.js +29 -0
  113. package/transpiled/HTTP/Timing.js.map +1 -0
  114. package/transpiled/HTTP/index.d.ts +1 -0
  115. package/transpiled/HTTP/index.js +1 -0
  116. package/transpiled/HTTP/index.js.map +1 -1
  117. package/transpiled/HTTP/messages.d.ts +7 -21
  118. package/transpiled/HTTP/messages.js +24 -26
  119. package/transpiled/HTTP/messages.js.map +1 -1
  120. package/transpiled/Mapping.js +7 -7
  121. package/transpiled/Mapping.js.map +1 -1
  122. package/transpiled/deployment.js +5 -0
  123. package/transpiled/deployment.js.map +1 -1
  124. package/transpiled/directives/auth/Anonymous.js +3 -4
  125. package/transpiled/directives/auth/Anonymous.js.map +1 -1
  126. package/transpiled/directives/auth/Authorization.js +1 -1
  127. package/transpiled/directives/auth/Authorization.js.map +1 -1
  128. package/transpiled/directives/auth/Incept.d.ts +1 -1
  129. package/transpiled/directives/auth/Incept.js +11 -6
  130. package/transpiled/directives/auth/Incept.js.map +1 -1
  131. package/transpiled/directives/auth/Role.js +5 -3
  132. package/transpiled/directives/auth/Role.js.map +1 -1
  133. package/transpiled/directives/auth/Scheme.js +2 -2
  134. package/transpiled/directives/auth/Scheme.js.map +1 -1
  135. package/transpiled/directives/cache/Cache.d.ts +1 -1
  136. package/transpiled/directives/cache/Cache.js +2 -2
  137. package/transpiled/directives/cache/Cache.js.map +1 -1
  138. package/transpiled/directives/cache/Control.d.ts +3 -3
  139. package/transpiled/directives/cache/Control.js +3 -3
  140. package/transpiled/directives/cache/Control.js.map +1 -1
  141. package/transpiled/directives/cache/types.d.ts +1 -1
  142. package/transpiled/directives/cors/CORS.js +4 -3
  143. package/transpiled/directives/cors/CORS.js.map +1 -1
  144. package/transpiled/directives/octets/Context.d.ts +1 -1
  145. package/transpiled/directives/octets/Context.js.map +1 -1
  146. package/transpiled/directives/octets/Delete.d.ts +2 -2
  147. package/transpiled/directives/octets/Delete.js +21 -11
  148. package/transpiled/directives/octets/Delete.js.map +1 -1
  149. package/transpiled/directives/octets/Fetch.d.ts +1 -1
  150. package/transpiled/directives/octets/Fetch.js +28 -14
  151. package/transpiled/directives/octets/Fetch.js.map +1 -1
  152. package/transpiled/directives/octets/List.d.ts +1 -1
  153. package/transpiled/directives/octets/List.js +13 -6
  154. package/transpiled/directives/octets/List.js.map +1 -1
  155. package/transpiled/directives/octets/Octets.js +7 -3
  156. package/transpiled/directives/octets/Octets.js.map +1 -1
  157. package/transpiled/directives/octets/Permute.d.ts +1 -1
  158. package/transpiled/directives/octets/Permute.js +11 -6
  159. package/transpiled/directives/octets/Permute.js.map +1 -1
  160. package/transpiled/directives/octets/Store.d.ts +3 -2
  161. package/transpiled/directives/octets/Store.js +19 -11
  162. package/transpiled/directives/octets/Store.js.map +1 -1
  163. package/transpiled/directives/octets/Workflow.d.ts +14 -0
  164. package/transpiled/directives/octets/Workflow.js +52 -0
  165. package/transpiled/directives/octets/Workflow.js.map +1 -0
  166. package/transpiled/directives/octets/schemas.d.ts +2 -0
  167. package/transpiled/directives/octets/schemas.js +2 -1
  168. package/transpiled/directives/octets/schemas.js.map +1 -1
  169. package/transpiled/directives/octets/{workflow → workflows}/Execution.js +0 -1
  170. package/transpiled/directives/octets/workflows/Execution.js.map +1 -0
  171. package/transpiled/directives/octets/{workflow → workflows}/Workflow.d.ts +1 -1
  172. package/transpiled/directives/octets/{workflow → workflows}/Workflow.js +2 -2
  173. package/transpiled/directives/octets/workflows/Workflow.js.map +1 -0
  174. package/transpiled/directives/octets/workflows/index.js.map +1 -0
  175. package/transpiled/directives/vary/Vary.js +1 -1
  176. package/transpiled/directives/vary/embeddings/Header.js +1 -1
  177. package/transpiled/directives/vary/embeddings/Header.js.map +1 -1
  178. package/transpiled/directives/vary/embeddings/Language.js +1 -1
  179. package/transpiled/directives/vary/embeddings/Language.js.map +1 -1
  180. package/transpiled/io.d.ts +2 -2
  181. package/transpiled/tsconfig.tsbuildinfo +1 -1
  182. package/components/identity.federation/operations/assertions-as-values.cjs.map +0 -1
  183. package/components/identity.federation/operations/jwt.cjs.map +0 -1
  184. package/source/HTTP/Server.fixtures.ts +0 -40
  185. package/transpiled/HTTP/Server.fixtures.d.ts +0 -10
  186. package/transpiled/HTTP/Server.fixtures.js +0 -31
  187. package/transpiled/HTTP/Server.fixtures.js.map +0 -1
  188. package/transpiled/directives/octets/workflow/Execution.js.map +0 -1
  189. package/transpiled/directives/octets/workflow/Workflow.js.map +0 -1
  190. package/transpiled/directives/octets/workflow/index.js.map +0 -1
  191. /package/components/identity.federation/operations/{assertions-as-values.d.cts → lib/assertions-as-values.d.ts} +0 -0
  192. /package/source/directives/octets/{workflow → workflows}/index.ts +0 -0
  193. /package/transpiled/directives/octets/{workflow → workflows}/Execution.d.ts +0 -0
  194. /package/transpiled/directives/octets/{workflow → workflows}/index.d.ts +0 -0
  195. /package/transpiled/directives/octets/{workflow → workflows}/index.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Incept.js","sourceRoot":"","sources":["../../../source/directives/auth/Incept.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAkC;AAElC,mCAA+B;AAC/B,uCAAqC;AAErC,MAAa,MAAM;IACA,QAAQ,CAAQ;IAChB,SAAS,CAAW;IACpB,OAAO,GAAY,EAAwB,CAAA;IAE5D,YAAoB,QAAgB,EAAE,SAAoB;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,SAAS,CAAE,QAAyB,EAAE,KAAY;QACvD,OAAO,QAAQ,KAAK,IAAI,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAA;IAC9D,CAAC;IAEM,KAAK,CAAC,MAAM,CAAE,OAAc,EAAE,QAA8B;QACjE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEzC,IAAI,EAAE,KAAK,SAAS;YAClB,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,qDAAqD;gBAC3E,0BAA0B,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAA;QAEzD,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAA,aAAK,EAAC,OAAO,CAAC,OAAO,CAAC,aAAc,CAAC,CAAA;QACnE,MAAM,QAAQ,GAAG,mBAAS,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;aACxC,MAAM,CAAkB,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;QAEpE,IAAI,QAAQ,YAAY,KAAK;YAC3B,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEnC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;IAClC,CAAC;CACF;AAnCD,wBAmCC"}
1
+ {"version":3,"file":"Incept.js","sourceRoot":"","sources":["../../../source/directives/auth/Incept.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,iDAAkC;AAElC,mCAA+B;AAC/B,uCAAqC;AAErC,MAAa,MAAM;IACA,QAAQ,CAAQ;IAChB,SAAS,CAAW;IACpB,OAAO,GAAY,EAAwB,CAAA;IAE5D,YAAoB,QAAgB,EAAE,SAAoB;QACxD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,SAAS,CAAE,QAAyB,EAAE,KAAY;QACvD,OAAO,QAAQ,KAAK,IAAI,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAA;IACtE,CAAC;IAEM,KAAK,CAAC,MAAM,CAAE,KAAY,EAAE,QAA8B;QAC/D,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEzC,IAAI,EAAE,KAAK,SAAS;YAClB,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,qDAAqD;gBAC3E,0BAA0B,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAA;QAEzD,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAA,aAAK,EAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAc,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,mBAAS,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;aACxC,MAAM,CAAkB,QAAQ,EAAE;YACnC,KAAK,EAAE;gBACL,EAAE;gBACF,WAAW;aACZ;SACF,CAAC,CAAA;QAEF,IAAI,QAAQ,YAAY,KAAK;YAC3B,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEnC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACzB,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;IAChC,CAAC;CACF;AAxCD,wBAwCC"}
@@ -11,9 +11,11 @@ class Role {
11
11
  }
12
12
  static async set(identity, discovery) {
13
13
  this.remote ??= await discovery;
14
- const query = { criteria: `identity==${identity.id}`, limit: 1024 };
15
- const roles = await this.remote.invoke('list', { query });
16
- identity.roles = roles;
14
+ const query = {
15
+ criteria: `identity==${identity.id}`,
16
+ limit: 1024
17
+ };
18
+ identity.roles = await this.remote.invoke('list', { query });
17
19
  }
18
20
  async authorize(identity) {
19
21
  if (identity === null)
@@ -1 +1 @@
1
- {"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../source/directives/auth/Role.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACR,MAAM,CAAC,MAAM,GAAqB,IAAI,CAAA;IAC5B,KAAK,CAAU;IACf,SAAS,CAAoB;IAE9C,YAAoB,KAAwB,EAAE,SAA6B;QACzE,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,QAAkB,EAAE,SAA6B;QACxE,IAAI,CAAC,MAAM,KAAK,MAAM,SAAS,CAAA;QAE/B,MAAM,KAAK,GAAU,EAAE,QAAQ,EAAE,aAAa,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;QAC1E,MAAM,KAAK,GAAa,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAEnE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAE,QAAyB;QAC/C,IAAI,QAAQ,KAAK,IAAI;YACnB,OAAO,KAAK,CAAA;QAEd,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAExC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAC9B,OAAO,KAAK,CAAA;QAEd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAEO,KAAK,CAAE,KAAe;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;YAEzE,IAAI,KAAK,KAAK,CAAC,CAAC;gBACd,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;;AAxCH,oBAyCC;AAED,SAAS,OAAO,CAAE,QAAgB,EAAE,MAAc;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QACjC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACnB,OAAO,KAAK,CAAA;IAEhB,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"Role.js","sourceRoot":"","sources":["../../../source/directives/auth/Role.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACR,MAAM,CAAC,MAAM,GAAqB,IAAI,CAAA;IAC5B,KAAK,CAAU;IACf,SAAS,CAAoB;IAE9C,YAAoB,KAAwB,EAAE,SAA6B;QACzE,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACxD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAE,QAAkB,EAAE,SAA6B;QACxE,IAAI,CAAC,MAAM,KAAK,MAAM,SAAS,CAAA;QAE/B,MAAM,KAAK,GAAU;YACnB,QAAQ,EAAE,aAAa,QAAQ,CAAC,EAAE,EAAE;YACpC,KAAK,EAAE,IAAI;SACZ,CAAA;QAED,QAAQ,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9D,CAAC;IAEM,KAAK,CAAC,SAAS,CAAE,QAAyB;QAC/C,IAAI,QAAQ,KAAK,IAAI;YACnB,OAAO,KAAK,CAAA;QAEd,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAExC,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAC9B,OAAO,KAAK,CAAA;QAEd,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC;IAEO,KAAK,CAAE,KAAe;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;YAEzE,IAAI,KAAK,KAAK,CAAC,CAAC;gBACd,OAAO,IAAI,CAAA;QACf,CAAC;QAED,OAAO,KAAK,CAAA;IACd,CAAC;;AA1CH,oBA2CC;AAED,SAAS,OAAO,CAAE,QAAgB,EAAE,MAAc;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QACjC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACnB,OAAO,KAAK,CAAA;IAEhB,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -34,9 +34,9 @@ class Scheme {
34
34
  this.Scheme = scheme[0].toUpperCase() + scheme.substring(1);
35
35
  }
36
36
  authorize(_, input) {
37
- if (input.headers.authorization === undefined)
37
+ if (input.request.headers.authorization === undefined)
38
38
  return false;
39
- const [scheme] = (0, split_1.split)(input.headers.authorization);
39
+ const [scheme] = (0, split_1.split)(input.request.headers.authorization);
40
40
  if (scheme !== this.scheme)
41
41
  throw new http.Forbidden(this.Scheme +
42
42
  ' authentication scheme is required to access this resource.');
@@ -1 +1 @@
1
- {"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../source/directives/auth/Scheme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAElC,mCAA+B;AAE/B,MAAa,MAAM;IACA,MAAM,CAAQ;IACd,MAAM,CAAQ;IAE/B,YAAoB,MAAc;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;IAEM,SAAS,CAAE,CAAkB,EAAE,KAAY;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;YAC3C,OAAO,KAAK,CAAA;QAEd,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAEnD,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;YACxB,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM;gBAClC,6DAA6D,CAAC,CAAA;QAElE,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AArBD,wBAqBC"}
1
+ {"version":3,"file":"Scheme.js","sourceRoot":"","sources":["../../../source/directives/auth/Scheme.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAkC;AAElC,mCAA+B;AAE/B,MAAa,MAAM;IACA,MAAM,CAAQ;IACd,MAAM,CAAQ;IAE/B,YAAoB,MAAc;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAC7D,CAAC;IAEM,SAAS,CAAE,CAAkB,EAAE,KAAY;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS;YACnD,OAAO,KAAK,CAAA;QAEd,MAAM,CAAC,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAE3D,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM;YACxB,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM;gBAClC,6DAA6D,CAAC,CAAA;QAElE,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AArBD,wBAqBC"}
@@ -7,5 +7,5 @@ export declare class Cache implements Family<Directive> {
7
7
  readonly mandatory: boolean;
8
8
  create(name: string, value: any): Directive;
9
9
  preflight(): Output;
10
- settle(directives: Directive[], request: Input, response: http.OutgoingMessage): Promise<void>;
10
+ settle(directives: Directive[], input: Input, response: http.OutgoingMessage): Promise<void>;
11
11
  }
@@ -15,9 +15,9 @@ class Cache {
15
15
  preflight() {
16
16
  return null;
17
17
  }
18
- async settle(directives, request, response) {
18
+ async settle(directives, input, response) {
19
19
  response.headers ??= new Headers();
20
- directives[0]?.set(request, response.headers);
20
+ directives[0]?.set(input, response.headers);
21
21
  }
22
22
  }
23
23
  exports.Cache = Cache;
@@ -1 +1 @@
1
- {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../source/directives/cache/Cache.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AACnC,mCAA+B;AAM/B,MAAa,KAAK;IACA,IAAI,GAAW,OAAO,CAAA;IACtB,SAAS,GAAY,KAAK,CAAA;IAEnC,MAAM,CAAE,IAAY,EAAE,KAAU;QACrC,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;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,MAAM,CAClB,UAAuB,EAAE,OAAc,EAAE,QAA8B;QACtE,QAAQ,CAAC,OAAO,KAAK,IAAI,OAAO,EAAE,CAAA;QAClC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;CACF;AAtBD,sBAsBC;AAED,MAAM,YAAY,GAAkD;IAClE,OAAO,EAAE,iBAAO;IAChB,KAAK,EAAE,aAAK;CACb,CAAA"}
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../source/directives/cache/Cache.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AACnC,mCAA+B;AAM/B,MAAa,KAAK;IACA,IAAI,GAAW,OAAO,CAAA;IACtB,SAAS,GAAY,KAAK,CAAA;IAEnC,MAAM,CAAE,IAAY,EAAE,KAAU;QACrC,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;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,KAAK,CAAC,MAAM,CAClB,UAAuB,EAAE,KAAY,EAAE,QAA8B;QACpE,QAAQ,CAAC,OAAO,KAAK,IAAI,OAAO,EAAE,CAAA;QAClC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;CACF;AAtBD,sBAsBC;AAED,MAAM,YAAY,GAAkD;IAClE,OAAO,EAAE,iBAAO;IAChB,KAAK,EAAE,aAAK;CACb,CAAA"}
@@ -1,9 +1,9 @@
1
- import type { AuthenticatedRequest, Directive } from './types';
1
+ import type { AuthenticatedContext, Directive } from './types';
2
2
  export declare class Control implements Directive {
3
3
  protected readonly value: string;
4
4
  private cache;
5
5
  constructor(value: string);
6
- set(request: AuthenticatedRequest, headers: Headers): void;
7
- protected resolve(request: AuthenticatedRequest): string;
6
+ set(context: AuthenticatedContext, headers: Headers): void;
7
+ protected resolve(request: AuthenticatedContext): string;
8
8
  private mask;
9
9
  }
@@ -8,10 +8,10 @@ class Control {
8
8
  constructor(value) {
9
9
  this.value = value;
10
10
  }
11
- set(request, headers) {
12
- if (!['GET', 'HEAD', 'OPTIONS'].includes(request.method))
11
+ set(context, headers) {
12
+ if (!['GET', 'HEAD', 'OPTIONS'].includes(context.request.method))
13
13
  return;
14
- this.cache ??= this.resolve(request);
14
+ this.cache ??= this.resolve(context);
15
15
  headers.set('cache-control', this.cache);
16
16
  }
17
17
  resolve(request) {
@@ -1 +1 @@
1
- {"version":3,"file":"Control.js","sourceRoot":"","sources":["../../../source/directives/cache/Control.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAGjC,MAAa,OAAO;IACC,KAAK,CAAQ;IACxB,KAAK,GAAkB,IAAI,CAAA;IAEnC,YAAoB,KAAa;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,GAAG,CAAE,OAA6B,EAAE,OAAgB;QACzD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;YACtD,OAAM;QAER,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEpC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAES,OAAO,CAAE,OAA6B;QAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAA;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAE9B,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,KAAK,MAAM;YAC/C,OAAO,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;QAElC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC;YACzC,OAAO,WAAW,GAAG,IAAI,CAAC,KAAK,CAAA;QAEjC,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAEO,IAAI;QACV,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAElD,IAAI,UAAU,KAAK,IAAI;YACrB,OAAO,CAAC,CAAA;QAEV,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,KAAK,MAAM,SAAS,IAAI,UAAU;YAChC,IAAI,IAAI,IAAA,iBAAK,EAAS,SAAS,EAC7B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,QAAQ,EACpB,CAAC,CAAC,CAAA;QAEN,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAjDD,0BAiDC;AAED,MAAM,aAAa,GAAG,iCAAiC,CAAA;AAEvD,MAAM,MAAM,GAAG,CAAC,CAAA;AAChB,MAAM,OAAO,GAAG,CAAC,CAAA;AACjB,MAAM,QAAQ,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"Control.js","sourceRoot":"","sources":["../../../source/directives/cache/Control.ts"],"names":[],"mappings":";;;AAAA,yCAAiC;AAGjC,MAAa,OAAO;IACC,KAAK,CAAQ;IACxB,KAAK,GAAkB,IAAI,CAAA;IAEnC,YAAoB,KAAa;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,GAAG,CAAE,OAA6B,EAAE,OAAgB;QACzD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9D,OAAM;QAER,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEpC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAES,OAAO,CAAE,OAA6B;QAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAA;QAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAE9B,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,KAAK,MAAM;YAC/C,OAAO,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;QAElC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC;YACzC,OAAO,WAAW,GAAG,IAAI,CAAC,KAAK,CAAA;QAEjC,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAEO,IAAI;QACV,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;QAElD,IAAI,UAAU,KAAK,IAAI;YACrB,OAAO,CAAC,CAAA;QAEV,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,KAAK,MAAM,SAAS,IAAI,UAAU;YAChC,IAAI,IAAI,IAAA,iBAAK,EAAS,SAAS,EAC7B,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,QAAQ,EACpB,CAAC,CAAC,CAAA;QAEN,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAjDD,0BAiDC;AAED,MAAM,aAAa,GAAG,iCAAiC,CAAA;AAEvD,MAAM,MAAM,GAAG,CAAC,CAAA;AAChB,MAAM,OAAO,GAAG,CAAC,CAAA;AACjB,MAAM,QAAQ,GAAG,CAAC,CAAA"}
@@ -2,6 +2,6 @@ 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
  }
@@ -14,16 +14,17 @@ class CORS {
14
14
  vary: 'origin'
15
15
  });
16
16
  intercept(input) {
17
- const origin = input.headers.origin;
17
+ const origin = input.request.headers.origin;
18
18
  if (origin === undefined)
19
19
  return null;
20
- if (input.method === 'OPTIONS')
20
+ if (input.request.method === 'OPTIONS')
21
21
  return this.preflightResponse(origin);
22
22
  input.pipelines.response.push((output) => {
23
23
  output.headers ??= new Headers();
24
24
  output.headers.set('access-control-allow-origin', origin);
25
25
  output.headers.set('access-control-expose-headers', 'authorization, content-type, content-length, etag');
26
- if (input.method === 'GET' || input.method === 'HEAD' || input.method === 'OPTIONS')
26
+ const method = input.request.method;
27
+ if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS')
27
28
  output.headers.append('vary', 'origin');
28
29
  });
29
30
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"CORS.js","sourceRoot":"","sources":["../../../source/directives/cors/CORS.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACC,IAAI,GAAG,MAAM,CAAA;IACb,SAAS,GAAG,IAAI,CAAA;IAEf,cAAc,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAA;IAE7E,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,sBAAsB;QACvC,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;IAEK,SAAS,CAAE,KAAY;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;QAEnC,IAAI,MAAM,KAAK,SAAS;YACtB,OAAO,IAAI,CAAA;QAEb,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;YAC5B,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,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBACjF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC3C,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAEM,WAAW,CAAE,MAAc;QAChC,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;AAlDD,oBAkDC"}
1
+ {"version":3,"file":"CORS.js","sourceRoot":"","sources":["../../../source/directives/cors/CORS.ts"],"names":[],"mappings":";;;AAGA,MAAa,IAAI;IACC,IAAI,GAAG,MAAM,CAAA;IACb,SAAS,GAAG,IAAI,CAAA;IAEf,cAAc,GAAG,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAA;IAE7E,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,sBAAsB;QACvC,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,WAAW,CAAE,MAAc;QAChC,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;AApDD,oBAoDC"}
@@ -3,6 +3,6 @@ import type { Directive } from './types';
3
3
  export declare class Context implements Directive {
4
4
  readonly targeted = false;
5
5
  readonly storage: string;
6
- constructor(value: any);
6
+ constructor(value: unknown);
7
7
  apply(): Output;
8
8
  }
@@ -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;AAIpC,MAAa,OAAO;IACF,QAAQ,GAAG,KAAK,CAAA;IAChB,OAAO,CAAQ;IAE/B,YAAoB,KAAc;QAChC,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,5 +1,5 @@
1
1
  import type { Parameter } from '../../RTD';
2
- import type { Unit } from './workflow';
2
+ import type { Unit } from './workflows';
3
3
  import type { Component } from '@toa.io/core';
4
4
  import type { Output } from '../../io';
5
5
  import type { Directive, Input } from './types';
@@ -10,7 +10,7 @@ export declare class Delete implements Directive {
10
10
  private readonly discovery;
11
11
  private storage;
12
12
  constructor(options: Options | null, discovery: Promise<Component>, remotes: Remotes);
13
- apply(storage: string, request: Input, parameters: Parameter[]): Promise<Output>;
13
+ apply(storage: string, input: Input, parameters: Parameter[]): Promise<Output>;
14
14
  private delete;
15
15
  private execute;
16
16
  }
@@ -27,7 +27,7 @@ exports.Delete = void 0;
27
27
  const stream_1 = require("stream");
28
28
  const HTTP_1 = require("../../HTTP");
29
29
  const schemas = __importStar(require("./schemas"));
30
- const workflow_1 = require("./workflow");
30
+ const workflows_1 = require("./workflows");
31
31
  class Delete {
32
32
  targeted = true;
33
33
  workflow;
@@ -36,36 +36,46 @@ class Delete {
36
36
  constructor(options, discovery, remotes) {
37
37
  schemas.remove.validate(options);
38
38
  if (options?.workflow !== undefined)
39
- this.workflow = new workflow_1.Workflow(options.workflow, remotes);
39
+ this.workflow = new workflows_1.Workflow(options.workflow, remotes);
40
40
  this.discovery = discovery;
41
41
  }
42
- async apply(storage, request, parameters) {
42
+ async apply(storage, input, parameters) {
43
43
  this.storage ??= await this.discovery;
44
- const entry = await this.storage.invoke('get', { input: { storage, path: request.url } });
44
+ const entry = await this.storage.invoke('get', {
45
+ input: {
46
+ storage,
47
+ path: input.request.url
48
+ }
49
+ });
45
50
  if (entry instanceof Error)
46
51
  throw new HTTP_1.NotFound();
47
52
  const output = {};
48
53
  if (this.workflow !== undefined) {
49
54
  output.status = 202;
50
- output.body = stream_1.Readable.from(this.execute(request, storage, entry, parameters));
55
+ output.body = stream_1.Readable.from(this.execute(input, storage, entry, parameters));
51
56
  }
52
57
  else
53
- await this.delete(storage, request);
58
+ await this.delete(storage, input);
54
59
  return output;
55
60
  }
56
- async delete(storage, request) {
61
+ async delete(storage, input) {
57
62
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
58
- await this.storage.invoke('delete', { input: { storage, path: request.url } });
63
+ await this.storage.invoke('delete', {
64
+ input: {
65
+ storage,
66
+ path: input.request.url
67
+ }
68
+ });
59
69
  }
60
70
  // eslint-disable-next-line max-params
61
- async *execute(request, storage, entry, parameters) {
71
+ async *execute(input, storage, entry, parameters) {
62
72
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
63
- for await (const chunk of this.workflow.execute(request, storage, entry, parameters)) {
73
+ for await (const chunk of this.workflow.execute(input, storage, entry, parameters)) {
64
74
  yield chunk;
65
75
  if (typeof chunk === 'object' && chunk !== null && 'error' in chunk)
66
76
  return;
67
77
  }
68
- await this.delete(storage, request);
78
+ await this.delete(storage, input);
69
79
  }
70
80
  }
71
81
  exports.Delete = Delete;
@@ -1 +1 @@
1
- {"version":3,"file":"Delete.js","sourceRoot":"","sources":["../../../source/directives/octets/Delete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAiC;AACjC,qCAAqC;AACrC,mDAAoC;AACpC,yCAAqC;AAUrC,MAAa,MAAM;IACD,QAAQ,GAAG,IAAI,CAAA;IAEd,QAAQ,CAAW;IACnB,SAAS,CAAoB;IACtC,OAAO,GAAqB,IAAI,CAAA;IAExC,YAAoB,OAAuB,EAAE,SAA6B,EAAE,OAAgB;QAC1F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEhC,IAAI,OAAO,EAAE,QAAQ,KAAK,SAAS;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAEzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,OAAc,EAAE,UAAuB;QAC1E,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAe,KAAK,EACzD,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAE5C,IAAI,KAAK,YAAY,KAAK;YACxB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,MAAM,MAAM,GAAW,EAAE,CAAA;QAEzB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA;YACnB,MAAM,CAAC,IAAI,GAAG,iBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;QAChF,CAAC;;YACC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAErC,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,MAAM,CAAE,OAAe,EAAE,OAAc;QACnD,oEAAoE;QACpE,MAAM,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,QAAQ,EACjC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,sCAAsC;IAC9B,KAAK,CAAC,CAAE,OAAO,CACtB,OAAc,EAAE,OAAe,EAAE,KAAY,EAAE,UAAuB;QACrE,oEAAoE;QACpE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,QAAS,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YACtF,MAAM,KAAK,CAAA;YAEX,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK;gBACjE,OAAM;QACV,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;CACF;AAvDD,wBAuDC"}
1
+ {"version":3,"file":"Delete.js","sourceRoot":"","sources":["../../../source/directives/octets/Delete.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAiC;AACjC,qCAAqC;AACrC,mDAAoC;AACpC,2CAAsC;AAUtC,MAAa,MAAM;IACD,QAAQ,GAAG,IAAI,CAAA;IAEd,QAAQ,CAAW;IACnB,SAAS,CAAoB;IACtC,OAAO,GAAqB,IAAI,CAAA;IAExC,YAAoB,OAAuB,EAAE,SAA6B,EAAE,OAAgB;QAC1F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEhC,IAAI,OAAO,EAAE,QAAQ,KAAK,SAAS;YACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAEzD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,KAAY,EAAE,UAAuB;QACxE,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAe,KAAK,EACzD;YACE,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;aACxB;SACF,CAAC,CAAA;QAEJ,IAAI,KAAK,YAAY,KAAK;YACxB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,MAAM,MAAM,GAAW,EAAE,CAAA;QAEzB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAA;YACnB,MAAM,CAAC,IAAI,GAAG,iBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;QAC9E,CAAC;;YACC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAEnC,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,MAAM,CAAE,OAAe,EAAE,KAAY;QACjD,oEAAoE;QACpE,MAAM,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAC,QAAQ,EACjC;YACE,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;aACxB;SACF,CAAC,CAAA;IACN,CAAC;IAED,sCAAsC;IAC9B,KAAK,CAAC,CAAE,OAAO,CACtB,KAAY,EAAE,OAAe,EAAE,KAAY,EAAE,UAAuB;QACnE,oEAAoE;QACpE,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,QAAS,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;YACpF,MAAM,KAAK,CAAA;YAEX,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK;gBACjE,OAAM;QACV,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;CACF;AAjED,wBAiEC"}
@@ -7,7 +7,7 @@ export declare class Fetch implements Directive {
7
7
  private readonly discovery;
8
8
  private storage;
9
9
  constructor(permissions: Permissions | null, discovery: Promise<Component>);
10
- apply(storage: string, request: Input): Promise<Output>;
10
+ apply(storage: string, input: Input): Promise<Output>;
11
11
  private fetch;
12
12
  private get;
13
13
  }
@@ -29,7 +29,10 @@ const HTTP_1 = require("../../HTTP");
29
29
  const schemas = __importStar(require("./schemas"));
30
30
  class Fetch {
31
31
  targeted = true;
32
- permissions = { blob: true, meta: false };
32
+ permissions = {
33
+ blob: true,
34
+ meta: false
35
+ };
33
36
  discovery;
34
37
  storage = null;
35
38
  constructor(permissions, discovery) {
@@ -37,24 +40,28 @@ class Fetch {
37
40
  Object.assign(this.permissions, permissions);
38
41
  this.discovery = discovery;
39
42
  }
40
- async apply(storage, request) {
43
+ async apply(storage, input) {
41
44
  this.storage ??= await this.discovery;
42
- const variant = node_path_1.posix.basename(request.url).includes('.');
43
- const metadata = request.subtype === 'octets.entry';
45
+ const variant = node_path_1.posix.basename(input.request.url).includes('.');
46
+ const metadata = input.subtype === 'octets.entry';
44
47
  if (!variant && metadata)
45
48
  if (this.permissions.meta)
46
- return this.get(storage, request);
49
+ return this.get(storage, input);
47
50
  else
48
51
  throw new HTTP_1.Forbidden('Metadata is not accessible.');
49
52
  if (!variant && !this.permissions.blob)
50
53
  throw new HTTP_1.Forbidden('BLOB variant must be specified.');
51
- return await this.fetch(storage, request);
54
+ return await this.fetch(storage, input);
52
55
  }
53
- async fetch(storage, request) {
54
- if ('if-none-match' in request.headers)
56
+ async fetch(storage, input) {
57
+ if ('if-none-match' in input.request.headers)
55
58
  return { status: 304 };
56
- const input = { storage, path: request.url };
57
- const result = await this.storage.invoke('fetch', { input });
59
+ const result = await this.storage.invoke('fetch', {
60
+ input: {
61
+ storage,
62
+ path: input.request.url
63
+ }
64
+ });
58
65
  if (result instanceof Error)
59
66
  throw new HTTP_1.NotFound();
60
67
  const headers = new Headers({
@@ -62,11 +69,18 @@ class Fetch {
62
69
  'content-length': result.size.toString(),
63
70
  etag: result.checksum
64
71
  });
65
- return { headers, body: result.stream };
72
+ return {
73
+ headers,
74
+ body: result.stream
75
+ };
66
76
  }
67
- async get(storage, request) {
68
- const input = { storage, path: request.url };
69
- const entry = await this.storage.invoke('get', { input });
77
+ async get(storage, input) {
78
+ const entry = await this.storage.invoke('get', {
79
+ input: {
80
+ storage,
81
+ path: input.request.url
82
+ }
83
+ });
70
84
  if (entry instanceof Error)
71
85
  throw new HTTP_1.NotFound();
72
86
  return { body: entry };
@@ -1 +1 @@
1
- {"version":3,"file":"Fetch.js","sourceRoot":"","sources":["../../../source/directives/octets/Fetch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAiC;AACjC,qCAAgD;AAChD,mDAAoC;AASpC,MAAa,KAAK;IACA,QAAQ,GAAG,IAAI,CAAA;IAEd,WAAW,GAA0B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IAChE,SAAS,CAAoB;IACtC,OAAO,GAAc,IAA4B,CAAA;IAEzD,YAAoB,WAA+B,EAAE,SAA6B;QAChF,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAEnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,OAAc;QACjD,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,MAAM,OAAO,GAAG,iBAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,KAAK,cAAc,CAAA;QAEnD,IAAI,CAAC,OAAO,IAAI,QAAQ;YACtB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI;gBACvB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;;gBAEjC,MAAM,IAAI,gBAAS,CAAC,6BAA6B,CAAC,CAAA;QAEtD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;YACpC,MAAM,IAAI,gBAAS,CAAC,iCAAiC,CAAC,CAAA;QAExD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC3C,CAAC;IAEO,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,OAAc;QAClD,IAAI,eAAe,IAAI,OAAO,CAAC,OAAO;YACpC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAExB,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAA;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAqB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAEhF,IAAI,MAAM,YAAY,KAAK;YACzB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,cAAc,EAAE,MAAM,CAAC,IAAI;YAC3B,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxC,IAAI,EAAE,MAAM,CAAC,QAAQ;SACtB,CAAC,CAAA;QAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;IACzC,CAAC;IAEO,KAAK,CAAC,GAAG,CAAE,OAAe,EAAE,OAAc;QAChD,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAA;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAe,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAEvE,IAAI,KAAK,YAAY,KAAK;YACxB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;CACF;AA5DD,sBA4DC"}
1
+ {"version":3,"file":"Fetch.js","sourceRoot":"","sources":["../../../source/directives/octets/Fetch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAiC;AACjC,qCAAgD;AAChD,mDAAoC;AASpC,MAAa,KAAK;IACA,QAAQ,GAAG,IAAI,CAAA;IAEd,WAAW,GAA0B;QACpD,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,KAAK;KACZ,CAAA;IAEgB,SAAS,CAAoB;IACtC,OAAO,GAAc,IAA4B,CAAA;IAEzD,YAAoB,WAA+B,EAAE,SAA6B;QAChF,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAEnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,KAAY;QAC/C,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,MAAM,OAAO,GAAG,iBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,KAAK,cAAc,CAAA;QAEjD,IAAI,CAAC,OAAO,IAAI,QAAQ;YACtB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI;gBACvB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;;gBAE/B,MAAM,IAAI,gBAAS,CAAC,6BAA6B,CAAC,CAAA;QAEtD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;YACpC,MAAM,IAAI,gBAAS,CAAC,iCAAiC,CAAC,CAAA;QAExD,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IACzC,CAAC;IAEO,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,KAAY;QAChD,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO;YAC1C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAqB,OAAO,EAAE;YACpE,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;aACxB;SACF,CAAC,CAAA;QAEF,IAAI,MAAM,YAAY,KAAK;YACzB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,cAAc,EAAE,MAAM,CAAC,IAAI;YAC3B,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxC,IAAI,EAAE,MAAM,CAAC,QAAQ;SACtB,CAAC,CAAA;QAEF,OAAO;YACL,OAAO;YACP,IAAI,EAAE,MAAM,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,GAAG,CAAE,OAAe,EAAE,KAAY;QAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAe,KAAK,EAAE;YAC3D,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;aACxB;SACF,CAAC,CAAA;QAEF,IAAI,KAAK,YAAY,KAAK;YACxB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACxB,CAAC;CACF;AA3ED,sBA2EC"}
@@ -7,7 +7,7 @@ export declare class List implements Directive {
7
7
  private readonly discovery;
8
8
  private storage;
9
9
  constructor(permissions: Permissions | null, discovery: Promise<Component>);
10
- apply(storage: string, request: Input): Promise<Output>;
10
+ apply(storage: string, input: Input): Promise<Output>;
11
11
  private expand;
12
12
  }
13
13
  export interface Permissions {
@@ -37,24 +37,31 @@ class List {
37
37
  Object.assign(this.permissions, permissions);
38
38
  this.discovery = discovery;
39
39
  }
40
- async apply(storage, request) {
40
+ async apply(storage, input) {
41
41
  this.storage ??= await this.discovery;
42
- const metadata = request.subtype === 'octets.entries';
42
+ const metadata = input.subtype === 'octets.entries';
43
43
  if (metadata && !this.permissions.meta)
44
44
  throw new HTTP_1.Forbidden('Metadata is not accessible.');
45
- const input = { storage, path: request.url };
46
- const list = await this.storage.invoke('list', { input });
45
+ const list = await this.storage.invoke('list', {
46
+ input: {
47
+ storage,
48
+ path: input.request.url
49
+ }
50
+ });
47
51
  if (list instanceof Error)
48
52
  throw new HTTP_1.NotFound();
49
53
  const body = metadata
50
- ? await this.expand(storage, request.url, list)
54
+ ? await this.expand(storage, input.request.url, list)
51
55
  : list;
52
56
  return { body };
53
57
  }
54
58
  async expand(storage, prefix, list) {
55
59
  const promises = list.map(async (id) => {
56
60
  const path = node_path_1.posix.join(prefix, id);
57
- const input = { storage, path };
61
+ const input = {
62
+ storage,
63
+ path
64
+ };
58
65
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- ensured in `apply`
59
66
  return this.storage.invoke('get', { input });
60
67
  });
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../source/directives/octets/List.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAiC;AACjC,qCAAgD;AAChD,mDAAoC;AAQpC,MAAa,IAAI;IACC,QAAQ,GAAG,KAAK,CAAA;IAEf,WAAW,GAA0B,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACpD,SAAS,CAAoB;IACtC,OAAO,GAAqB,IAAI,CAAA;IAExC,YAAoB,WAA+B,EAAE,SAA6B;QAChF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAElC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,OAAc;QACjD,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,KAAK,gBAAgB,CAAA;QAErD,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;YACpC,MAAM,IAAI,gBAAS,CAAC,6BAA6B,CAAC,CAAA;QAEpD,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAA;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAkB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAE1E,IAAI,IAAI,YAAY,KAAK;YACvB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;YAC/C,CAAC,CAAC,IAAI,CAAA;QAER,OAAO,EAAE,IAAI,EAAE,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,MAAM,CAAE,OAAe,EAAE,MAAc,EAAE,IAAc;QAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,iBAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YACnC,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;YAE/B,0FAA0F;YAC1F,OAAO,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAe,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;CACF;AA/CD,oBA+CC"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../source/directives/octets/List.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAiC;AACjC,qCAAgD;AAChD,mDAAoC;AAQpC,MAAa,IAAI;IACC,QAAQ,GAAG,KAAK,CAAA;IAEf,WAAW,GAA0B,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IACpD,SAAS,CAAoB;IACtC,OAAO,GAAqB,IAAI,CAAA;IAExC,YAAoB,WAA+B,EAAE,SAA6B;QAChF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAElC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,KAAY;QAC/C,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,KAAK,gBAAgB,CAAA;QAEnD,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI;YACpC,MAAM,IAAI,gBAAS,CAAC,6BAA6B,CAAC,CAAA;QAEpD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAkB,MAAM,EAAE;YAC9D,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;aACxB;SACF,CAAC,CAAA;QAEF,IAAI,IAAI,YAAY,KAAK;YACvB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;YACrD,CAAC,CAAC,IAAI,CAAA;QAER,OAAO,EAAE,IAAI,EAAE,CAAA;IACjB,CAAC;IAEO,KAAK,CAAC,MAAM,CAAE,OAAe,EAAE,MAAc,EAAE,IAAc;QAEnE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,iBAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YAEnC,MAAM,KAAK,GAAG;gBACZ,OAAO;gBACP,IAAI;aACL,CAAA;YAED,0FAA0F;YAC1F,OAAO,IAAI,CAAC,OAAQ,CAAC,MAAM,CAAe,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;CACF;AAvDD,oBAuDC"}
@@ -8,6 +8,7 @@ const Fetch_1 = require("./Fetch");
8
8
  const List_1 = require("./List");
9
9
  const Delete_1 = require("./Delete");
10
10
  const Permute_1 = require("./Permute");
11
+ const Workflow_1 = require("./Workflow");
11
12
  class Octets {
12
13
  name = 'octets';
13
14
  mandatory = false;
@@ -31,12 +32,14 @@ class Octets {
31
32
  throw new Error('Octets action is umbiguous.');
32
33
  if (action === null)
33
34
  return null;
35
+ // noinspection PointlessBooleanExpressionJS
34
36
  if (context === null)
35
37
  throw new Error('Octets context is not defined.');
36
- const targeted = input.path[input.path.length - 1] !== '/';
38
+ const targeted = input.request.url[input.request.url.length - 1] !== '/';
37
39
  if (targeted !== action.targeted)
38
40
  throw new HTTP_1.NotFound(`Trailing slash is ${action.targeted ? 'redundant' : 'required'}.`);
39
- return await action.apply(context.storage, input, parameters);
41
+ // noinspection JSObjectNullOrUndefined
42
+ return action.apply(context.storage, input, parameters);
40
43
  }
41
44
  }
42
45
  exports.Octets = Octets;
@@ -46,6 +49,7 @@ const DIRECTIVES = {
46
49
  fetch: Fetch_1.Fetch,
47
50
  list: List_1.List,
48
51
  delete: Delete_1.Delete,
49
- permute: Permute_1.Permute
52
+ permute: Permute_1.Permute,
53
+ workflow: Workflow_1.WorkflowDirective
50
54
  };
51
55
  //# sourceMappingURL=Octets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Octets.js","sourceRoot":"","sources":["../../../source/directives/octets/Octets.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,uCAAmC;AACnC,mCAA+B;AAC/B,mCAA+B;AAC/B,iCAA6B;AAC7B,qCAAiC;AACjC,uCAAmC;AAQnC,MAAa,MAAM;IACD,IAAI,GAAW,QAAQ,CAAA;IACvB,SAAS,GAAY,KAAK,CAAA;IAElC,SAAS,GAAG,IAAqC,CAAA;IAElD,MAAM,CAAE,IAAY,EAAE,KAAU,EAAE,OAAgB;QACvD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAE9B,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,6BAA6B,IAAI,CAAC,IAAI,WAAW,CAAC,CAAA;QAEtF,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAExD,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,SAAS,CACrB,UAAuB,EAAE,KAAY,EAAE,UAAuB;QAC7D,IAAI,OAAO,GAAmB,IAAI,CAAA;QAClC,IAAI,MAAM,GAAqB,IAAI,CAAA;QAEnC,KAAK,MAAM,SAAS,IAAI,UAAU;YAChC,IAAI,SAAS,YAAY,iBAAO;gBAC9B,OAAO,KAAK,SAAS,CAAA;iBAClB,IAAI,MAAM,KAAK,IAAI;gBACtB,MAAM,GAAG,SAAS,CAAA;;gBAElB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAElD,IAAI,MAAM,KAAK,IAAI;YACjB,OAAO,IAAI,CAAA;QAEb,IAAI,OAAO,KAAK,IAAI;YAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAEnD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAA;QAE1D,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ;YAC9B,MAAM,IAAI,eAAQ,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAA;QAExF,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;IAC/D,CAAC;CACF;AA3CD,wBA2CC;AAED,MAAM,UAAU,GAAgC;IAC9C,OAAO,EAAE,iBAAO;IAChB,KAAK,EAAE,aAAK;IACZ,KAAK,EAAE,aAAK;IACZ,IAAI,EAAE,WAAI;IACV,MAAM,EAAE,eAAM;IACd,OAAO,EAAE,iBAAO;CACjB,CAAA"}
1
+ {"version":3,"file":"Octets.js","sourceRoot":"","sources":["../../../source/directives/octets/Octets.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,uCAAmC;AACnC,mCAA+B;AAC/B,mCAA+B;AAC/B,iCAA6B;AAC7B,qCAAiC;AACjC,uCAAmC;AACnC,yCAA8C;AAQ9C,MAAa,MAAM;IACD,IAAI,GAAW,QAAQ,CAAA;IACvB,SAAS,GAAY,KAAK,CAAA;IAElC,SAAS,GAAG,IAAqC,CAAA;IAElD,MAAM,CAAE,IAAY,EAAE,KAAU,EAAE,OAAgB;QACvD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAE9B,IAAI,KAAK,KAAK,SAAS;YACrB,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,6BAA6B,IAAI,CAAC,IAAI,WAAW,CAAC,CAAA;QAEtF,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAExD,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,SAAS,CACrB,UAAuB,EAAE,KAAY,EAAE,UAAuB;QAC7D,IAAI,OAAO,GAAmB,IAAI,CAAA;QAClC,IAAI,MAAM,GAAqB,IAAI,CAAA;QAEnC,KAAK,MAAM,SAAS,IAAI,UAAU;YAChC,IAAI,SAAS,YAAY,iBAAO;gBAC9B,OAAO,KAAK,SAAS,CAAA;iBAClB,IAAI,MAAM,KAAK,IAAI;gBACtB,MAAM,GAAG,SAAS,CAAA;;gBAElB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAElD,IAAI,MAAM,KAAK,IAAI;YACjB,OAAO,IAAI,CAAA;QAEb,4CAA4C;QAC5C,IAAI,OAAO,KAAK,IAAI;YAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAEnD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAA;QAExE,IAAI,QAAQ,KAAK,MAAM,CAAC,QAAQ;YAC9B,MAAM,IAAI,eAAQ,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAA;QAExF,uCAAuC;QACvC,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;IACzD,CAAC;CACF;AA7CD,wBA6CC;AAED,MAAM,UAAU,GAAgC;IAC9C,OAAO,EAAE,iBAAO;IAChB,KAAK,EAAE,aAAK;IACZ,KAAK,EAAE,aAAK;IACZ,IAAI,EAAE,WAAI;IACV,MAAM,EAAE,eAAM;IACd,OAAO,EAAE,iBAAO;IAChB,QAAQ,EAAE,4BAAiB;CAC5B,CAAA"}
@@ -6,5 +6,5 @@ export declare class Permute implements Directive {
6
6
  private readonly discovery;
7
7
  private storage;
8
8
  constructor(value: null, discovery: Promise<Component>);
9
- apply(storage: string, request: Input): Promise<Output>;
9
+ apply(storage: string, input: Input): Promise<Output>;
10
10
  }
@@ -34,14 +34,19 @@ class Permute {
34
34
  schemas.permute.validate(value);
35
35
  this.discovery = discovery;
36
36
  }
37
- async apply(storage, request) {
37
+ async apply(storage, input) {
38
38
  this.storage ??= await this.discovery;
39
- if (request.encoder === null)
39
+ if (input.encoder === null)
40
40
  throw new HTTP_1.NotAcceptable();
41
- const path = request.url;
42
- const list = await request.parse();
43
- const input = { storage, path, list };
44
- const error = await this.storage.invoke('permute', { input });
41
+ const path = input.request.url;
42
+ const list = await input.body();
43
+ const error = await this.storage.invoke('permute', {
44
+ input: {
45
+ storage,
46
+ path,
47
+ list
48
+ }
49
+ });
45
50
  if (error instanceof Error)
46
51
  throw new HTTP_1.NotFound();
47
52
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"Permute.js","sourceRoot":"","sources":["../../../source/directives/octets/Permute.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoD;AACpD,mDAAoC;AAOpC,MAAa,OAAO;IACF,QAAQ,GAAG,KAAK,CAAA;IAEf,SAAS,CAAoB;IACtC,OAAO,GAAqB,IAAI,CAAA;IAExC,YAAoB,KAAW,EAAE,SAA6B;QAC5D,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,OAAc;QACjD,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI;YAC1B,MAAM,IAAI,oBAAa,EAAE,CAAA;QAE3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAA;QACxB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;QAClC,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAiB,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAE7E,IAAI,KAAK,YAAY,KAAK;YACxB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,OAAO,EAAE,CAAA;IACX,CAAC;CACF;AA5BD,0BA4BC"}
1
+ {"version":3,"file":"Permute.js","sourceRoot":"","sources":["../../../source/directives/octets/Permute.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoD;AACpD,mDAAoC;AAOpC,MAAa,OAAO;IACF,QAAQ,GAAG,KAAK,CAAA;IAEf,SAAS,CAAoB;IACtC,OAAO,GAAqB,IAAI,CAAA;IAExC,YAAoB,KAAW,EAAE,SAA6B;QAC5D,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,KAAK,CAAE,OAAe,EAAE,KAAY;QAC/C,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,SAAS,CAAA;QAErC,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;YACxB,MAAM,IAAI,oBAAa,EAAE,CAAA;QAE3B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAA;QAC9B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;QAE/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAiB,SAAS,EAAE;YACjE,KAAK,EAAE;gBACL,OAAO;gBACP,IAAI;gBACJ,IAAI;aACL;SACF,CAAC,CAAA;QAEF,IAAI,KAAK,YAAY,KAAK;YACxB,MAAM,IAAI,eAAQ,EAAE,CAAA;QAEtB,OAAO,EAAE,CAAA;IACX,CAAC;CACF;AAlCD,0BAkCC"}
@@ -1,5 +1,5 @@
1
1
  import type { Parameter } from '../../RTD';
2
- import type { Unit } from './workflow';
2
+ import type { Unit } from './workflows';
3
3
  import type { Remotes } from '../../Remotes';
4
4
  import type { Component } from '@toa.io/core';
5
5
  import type { Output } from '../../io';
@@ -11,8 +11,9 @@ export declare class Store implements Directive {
11
11
  private readonly discovery;
12
12
  private storage;
13
13
  constructor(options: Options | null, discovery: Promise<Component>, remotes: Remotes);
14
- apply(storage: string, request: Input, parameters: Parameter[]): Promise<Output>;
14
+ apply(storage: string, input: Input, parameters: Parameter[]): Promise<Output>;
15
15
  private reply;
16
+ private execute;
16
17
  private throw;
17
18
  private parseMeta;
18
19
  }
@@ -24,11 +24,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Store = void 0;
27
+ const node_stream_1 = require("node:stream");
27
28
  const matchacho_1 = require("matchacho");
28
29
  const HTTP_1 = require("../../HTTP");
29
30
  const cors_1 = require("../cors");
30
31
  const schemas = __importStar(require("./schemas"));
31
- const workflow_1 = require("./workflow");
32
+ const workflows_1 = require("./workflows");
32
33
  class Store {
33
34
  targeted = false;
34
35
  accept;
@@ -39,28 +40,35 @@ class Store {
39
40
  schemas.store.validate(options);
40
41
  this.accept = (0, matchacho_1.match)(options?.accept, String, (value) => value, Array, (types) => types.join(','), undefined);
41
42
  if (options?.workflow !== undefined)
42
- this.workflow = new workflow_1.Workflow(options.workflow, remotes);
43
+ this.workflow = new workflows_1.Workflow(options.workflow, remotes);
43
44
  this.discovery.storage = discovery;
44
45
  cors_1.cors.allowHeader('content-meta');
45
46
  }
46
- async apply(storage, request, parameters) {
47
+ async apply(storage, input, parameters) {
47
48
  this.storage ??= await this.discovery.storage;
48
- const input = { storage, request };
49
- const meta = request.headers['content-meta'];
49
+ const request = { input: { storage, request: input.request } };
50
+ const meta = input.request.headers['content-meta'];
50
51
  if (this.accept !== undefined)
51
- input.accept = this.accept;
52
+ request.input.accept = this.accept;
52
53
  if (meta !== undefined)
53
- input.meta = this.parseMeta(meta);
54
- const entry = await this.storage.invoke('store', { input });
55
- return (0, matchacho_1.match)(entry, Error, (error) => this.throw(error), () => this.reply(request, storage, entry, parameters));
54
+ request.input.meta = this.parseMeta(meta);
55
+ const entry = await this.storage.invoke('store', request);
56
+ return (0, matchacho_1.match)(entry, Error, (error) => this.throw(error), () => this.reply(input, storage, entry, parameters));
56
57
  }
57
58
  // eslint-disable-next-line max-params
58
- reply(request, storage, entry, parameters) {
59
+ reply(input, storage, entry, parameters) {
59
60
  const body = this.workflow === undefined
60
61
  ? entry
61
- : this.workflow.execute(request, storage, entry, parameters);
62
+ : this.execute(input, storage, entry, parameters);
62
63
  return { body };
63
64
  }
65
+ // eslint-disable-next-line max-params
66
+ execute(input, storage, entry, parameters) {
67
+ const stream = new node_stream_1.PassThrough({ objectMode: true });
68
+ stream.push(entry);
69
+ this.workflow.execute(input, storage, entry, parameters).pipe(stream);
70
+ return stream;
71
+ }
64
72
  throw(error) {
65
73
  throw (0, matchacho_1.match)(error.code, 'NOT_ACCEPTABLE', () => new HTTP_1.UnsupportedMediaType(), 'TYPE_MISMATCH', () => new HTTP_1.BadRequest(), error);
66
74
  }