@effect/platform 0.68.5 → 0.69.0

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 (229) hide show
  1. package/HttpApiMiddleware/package.json +6 -0
  2. package/README.md +306 -233
  3. package/dist/cjs/Headers.js +7 -2
  4. package/dist/cjs/Headers.js.map +1 -1
  5. package/dist/cjs/HttpApi.js +90 -78
  6. package/dist/cjs/HttpApi.js.map +1 -1
  7. package/dist/cjs/HttpApiBuilder.js +243 -255
  8. package/dist/cjs/HttpApiBuilder.js.map +1 -1
  9. package/dist/cjs/HttpApiClient.js +64 -59
  10. package/dist/cjs/HttpApiClient.js.map +1 -1
  11. package/dist/cjs/HttpApiEndpoint.js +74 -109
  12. package/dist/cjs/HttpApiEndpoint.js.map +1 -1
  13. package/dist/cjs/HttpApiError.js +3 -4
  14. package/dist/cjs/HttpApiError.js.map +1 -1
  15. package/dist/cjs/HttpApiGroup.js +103 -100
  16. package/dist/cjs/HttpApiGroup.js.map +1 -1
  17. package/dist/cjs/HttpApiMiddleware.js +67 -0
  18. package/dist/cjs/HttpApiMiddleware.js.map +1 -0
  19. package/dist/cjs/HttpApiSchema.js +33 -7
  20. package/dist/cjs/HttpApiSchema.js.map +1 -1
  21. package/dist/cjs/HttpApiSecurity.js +2 -2
  22. package/dist/cjs/HttpApiSecurity.js.map +1 -1
  23. package/dist/cjs/HttpApiSwagger.js +3 -1
  24. package/dist/cjs/HttpApiSwagger.js.map +1 -1
  25. package/dist/cjs/HttpBody.js.map +1 -1
  26. package/dist/cjs/HttpIncomingMessage.js +5 -1
  27. package/dist/cjs/HttpIncomingMessage.js.map +1 -1
  28. package/dist/cjs/HttpServer.js +12 -1
  29. package/dist/cjs/HttpServer.js.map +1 -1
  30. package/dist/cjs/HttpServerRespondable.js +1 -1
  31. package/dist/cjs/HttpServerRespondable.js.map +1 -1
  32. package/dist/cjs/OpenApi.js +102 -63
  33. package/dist/cjs/OpenApi.js.map +1 -1
  34. package/dist/cjs/OpenApiJsonSchema.js +58 -47
  35. package/dist/cjs/OpenApiJsonSchema.js.map +1 -1
  36. package/dist/cjs/Transferable.js +2 -2
  37. package/dist/cjs/Transferable.js.map +1 -1
  38. package/dist/cjs/UrlParams.js +5 -1
  39. package/dist/cjs/UrlParams.js.map +1 -1
  40. package/dist/cjs/Worker.js.map +1 -1
  41. package/dist/cjs/WorkerError.js +1 -5
  42. package/dist/cjs/WorkerError.js.map +1 -1
  43. package/dist/cjs/WorkerRunner.js.map +1 -1
  44. package/dist/cjs/index.js +3 -1
  45. package/dist/cjs/internal/httpBody.js +1 -1
  46. package/dist/cjs/internal/httpBody.js.map +1 -1
  47. package/dist/cjs/internal/httpClientRequest.js.map +1 -1
  48. package/dist/cjs/internal/httpClientResponse.js +1 -1
  49. package/dist/cjs/internal/httpClientResponse.js.map +1 -1
  50. package/dist/cjs/internal/httpRouter.js +1 -1
  51. package/dist/cjs/internal/httpRouter.js.map +1 -1
  52. package/dist/cjs/internal/httpServer.js +7 -1
  53. package/dist/cjs/internal/httpServer.js.map +1 -1
  54. package/dist/cjs/internal/httpServerRequest.js +1 -1
  55. package/dist/cjs/internal/httpServerRequest.js.map +1 -1
  56. package/dist/cjs/internal/httpServerResponse.js.map +1 -1
  57. package/dist/cjs/internal/keyValueStore.js +1 -1
  58. package/dist/cjs/internal/keyValueStore.js.map +1 -1
  59. package/dist/cjs/internal/multipart.js +1 -1
  60. package/dist/cjs/internal/multipart.js.map +1 -1
  61. package/dist/cjs/internal/worker.js +6 -7
  62. package/dist/cjs/internal/worker.js.map +1 -1
  63. package/dist/cjs/internal/workerRunner.js +3 -4
  64. package/dist/cjs/internal/workerRunner.js.map +1 -1
  65. package/dist/dts/Headers.d.ts +4 -6
  66. package/dist/dts/Headers.d.ts.map +1 -1
  67. package/dist/dts/HttpApi.d.ts +64 -140
  68. package/dist/dts/HttpApi.d.ts.map +1 -1
  69. package/dist/dts/HttpApiBuilder.d.ts +84 -167
  70. package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
  71. package/dist/dts/HttpApiClient.d.ts +34 -11
  72. package/dist/dts/HttpApiClient.d.ts.map +1 -1
  73. package/dist/dts/HttpApiEndpoint.d.ts +119 -273
  74. package/dist/dts/HttpApiEndpoint.d.ts.map +1 -1
  75. package/dist/dts/HttpApiError.d.ts +5 -2
  76. package/dist/dts/HttpApiError.d.ts.map +1 -1
  77. package/dist/dts/HttpApiGroup.d.ts +96 -194
  78. package/dist/dts/HttpApiGroup.d.ts.map +1 -1
  79. package/dist/dts/HttpApiMiddleware.d.ts +231 -0
  80. package/dist/dts/HttpApiMiddleware.d.ts.map +1 -0
  81. package/dist/dts/HttpApiSchema.d.ts +6 -2
  82. package/dist/dts/HttpApiSchema.d.ts.map +1 -1
  83. package/dist/dts/HttpApiSecurity.d.ts +1 -1
  84. package/dist/dts/HttpApiSecurity.d.ts.map +1 -1
  85. package/dist/dts/HttpApiSwagger.d.ts +2 -2
  86. package/dist/dts/HttpApiSwagger.d.ts.map +1 -1
  87. package/dist/dts/HttpBody.d.ts +2 -2
  88. package/dist/dts/HttpBody.d.ts.map +1 -1
  89. package/dist/dts/HttpClientRequest.d.ts +2 -2
  90. package/dist/dts/HttpClientRequest.d.ts.map +1 -1
  91. package/dist/dts/HttpClientResponse.d.ts +3 -3
  92. package/dist/dts/HttpClientResponse.d.ts.map +1 -1
  93. package/dist/dts/HttpIncomingMessage.d.ts +3 -3
  94. package/dist/dts/HttpIncomingMessage.d.ts.map +1 -1
  95. package/dist/dts/HttpRouter.d.ts +3 -3
  96. package/dist/dts/HttpRouter.d.ts.map +1 -1
  97. package/dist/dts/HttpServer.d.ts +15 -0
  98. package/dist/dts/HttpServer.d.ts.map +1 -1
  99. package/dist/dts/HttpServerRequest.d.ts +3 -3
  100. package/dist/dts/HttpServerRequest.d.ts.map +1 -1
  101. package/dist/dts/HttpServerRespondable.d.ts.map +1 -1
  102. package/dist/dts/HttpServerResponse.d.ts +2 -2
  103. package/dist/dts/HttpServerResponse.d.ts.map +1 -1
  104. package/dist/dts/KeyValueStore.d.ts +2 -2
  105. package/dist/dts/KeyValueStore.d.ts.map +1 -1
  106. package/dist/dts/Multipart.d.ts +3 -3
  107. package/dist/dts/Multipart.d.ts.map +1 -1
  108. package/dist/dts/OpenApi.d.ts +17 -39
  109. package/dist/dts/OpenApi.d.ts.map +1 -1
  110. package/dist/dts/OpenApiJsonSchema.d.ts +10 -5
  111. package/dist/dts/OpenApiJsonSchema.d.ts.map +1 -1
  112. package/dist/dts/Transferable.d.ts +4 -1
  113. package/dist/dts/Transferable.d.ts.map +1 -1
  114. package/dist/dts/UrlParams.d.ts +3 -6
  115. package/dist/dts/UrlParams.d.ts.map +1 -1
  116. package/dist/dts/Worker.d.ts +7 -8
  117. package/dist/dts/Worker.d.ts.map +1 -1
  118. package/dist/dts/WorkerError.d.ts +1 -1
  119. package/dist/dts/WorkerError.d.ts.map +1 -1
  120. package/dist/dts/WorkerRunner.d.ts +2 -3
  121. package/dist/dts/WorkerRunner.d.ts.map +1 -1
  122. package/dist/dts/index.d.ts +4 -0
  123. package/dist/dts/index.d.ts.map +1 -1
  124. package/dist/dts/internal/httpRouter.d.ts.map +1 -1
  125. package/dist/esm/Headers.js +7 -2
  126. package/dist/esm/Headers.js.map +1 -1
  127. package/dist/esm/HttpApi.js +88 -77
  128. package/dist/esm/HttpApi.js.map +1 -1
  129. package/dist/esm/HttpApiBuilder.js +236 -244
  130. package/dist/esm/HttpApiBuilder.js.map +1 -1
  131. package/dist/esm/HttpApiClient.js +64 -59
  132. package/dist/esm/HttpApiClient.js.map +1 -1
  133. package/dist/esm/HttpApiEndpoint.js +73 -106
  134. package/dist/esm/HttpApiEndpoint.js.map +1 -1
  135. package/dist/esm/HttpApiError.js +3 -4
  136. package/dist/esm/HttpApiError.js.map +1 -1
  137. package/dist/esm/HttpApiGroup.js +102 -99
  138. package/dist/esm/HttpApiGroup.js.map +1 -1
  139. package/dist/esm/HttpApiMiddleware.js +56 -0
  140. package/dist/esm/HttpApiMiddleware.js.map +1 -0
  141. package/dist/esm/HttpApiSchema.js +31 -5
  142. package/dist/esm/HttpApiSchema.js.map +1 -1
  143. package/dist/esm/HttpApiSecurity.js +1 -1
  144. package/dist/esm/HttpApiSecurity.js.map +1 -1
  145. package/dist/esm/HttpApiSwagger.js +4 -2
  146. package/dist/esm/HttpApiSwagger.js.map +1 -1
  147. package/dist/esm/HttpBody.js.map +1 -1
  148. package/dist/esm/HttpIncomingMessage.js +4 -1
  149. package/dist/esm/HttpIncomingMessage.js.map +1 -1
  150. package/dist/esm/HttpServer.js +11 -0
  151. package/dist/esm/HttpServer.js.map +1 -1
  152. package/dist/esm/HttpServerRespondable.js +1 -1
  153. package/dist/esm/HttpServerRespondable.js.map +1 -1
  154. package/dist/esm/OpenApi.js +97 -59
  155. package/dist/esm/OpenApi.js.map +1 -1
  156. package/dist/esm/OpenApiJsonSchema.js +56 -46
  157. package/dist/esm/OpenApiJsonSchema.js.map +1 -1
  158. package/dist/esm/Transferable.js +2 -2
  159. package/dist/esm/Transferable.js.map +1 -1
  160. package/dist/esm/UrlParams.js +4 -1
  161. package/dist/esm/UrlParams.js.map +1 -1
  162. package/dist/esm/Worker.js.map +1 -1
  163. package/dist/esm/WorkerError.js +1 -4
  164. package/dist/esm/WorkerError.js.map +1 -1
  165. package/dist/esm/WorkerRunner.js.map +1 -1
  166. package/dist/esm/index.js +4 -0
  167. package/dist/esm/index.js.map +1 -1
  168. package/dist/esm/internal/httpBody.js +1 -1
  169. package/dist/esm/internal/httpBody.js.map +1 -1
  170. package/dist/esm/internal/httpClientRequest.js.map +1 -1
  171. package/dist/esm/internal/httpClientResponse.js +1 -1
  172. package/dist/esm/internal/httpClientResponse.js.map +1 -1
  173. package/dist/esm/internal/httpRouter.js +1 -1
  174. package/dist/esm/internal/httpRouter.js.map +1 -1
  175. package/dist/esm/internal/httpServer.js +6 -0
  176. package/dist/esm/internal/httpServer.js.map +1 -1
  177. package/dist/esm/internal/httpServerRequest.js +1 -1
  178. package/dist/esm/internal/httpServerRequest.js.map +1 -1
  179. package/dist/esm/internal/httpServerResponse.js.map +1 -1
  180. package/dist/esm/internal/keyValueStore.js +1 -1
  181. package/dist/esm/internal/keyValueStore.js.map +1 -1
  182. package/dist/esm/internal/multipart.js +1 -1
  183. package/dist/esm/internal/multipart.js.map +1 -1
  184. package/dist/esm/internal/worker.js +6 -7
  185. package/dist/esm/internal/worker.js.map +1 -1
  186. package/dist/esm/internal/workerRunner.js +3 -4
  187. package/dist/esm/internal/workerRunner.js.map +1 -1
  188. package/package.json +10 -3
  189. package/src/Headers.ts +12 -4
  190. package/src/HttpApi.ts +183 -258
  191. package/src/HttpApiBuilder.ts +532 -481
  192. package/src/HttpApiClient.ts +163 -112
  193. package/src/HttpApiEndpoint.ts +443 -564
  194. package/src/HttpApiError.ts +4 -6
  195. package/src/HttpApiGroup.ts +277 -325
  196. package/src/HttpApiMiddleware.ts +318 -0
  197. package/src/HttpApiSchema.ts +39 -2
  198. package/src/HttpApiSecurity.ts +1 -1
  199. package/src/HttpApiSwagger.ts +3 -3
  200. package/src/HttpBody.ts +2 -2
  201. package/src/HttpClientRequest.ts +2 -2
  202. package/src/HttpClientResponse.ts +3 -3
  203. package/src/HttpIncomingMessage.ts +3 -3
  204. package/src/HttpRouter.ts +3 -3
  205. package/src/HttpServer.ts +21 -0
  206. package/src/HttpServerRequest.ts +3 -3
  207. package/src/HttpServerRespondable.ts +1 -1
  208. package/src/HttpServerResponse.ts +2 -2
  209. package/src/KeyValueStore.ts +2 -2
  210. package/src/Multipart.ts +3 -3
  211. package/src/OpenApi.ts +113 -104
  212. package/src/OpenApiJsonSchema.ts +67 -53
  213. package/src/Transferable.ts +2 -2
  214. package/src/UrlParams.ts +3 -3
  215. package/src/Worker.ts +7 -8
  216. package/src/WorkerError.ts +1 -1
  217. package/src/WorkerRunner.ts +2 -3
  218. package/src/index.ts +5 -0
  219. package/src/internal/httpBody.ts +2 -2
  220. package/src/internal/httpClientRequest.ts +2 -2
  221. package/src/internal/httpClientResponse.ts +3 -3
  222. package/src/internal/httpRouter.ts +2 -2
  223. package/src/internal/httpServer.ts +13 -0
  224. package/src/internal/httpServerRequest.ts +3 -3
  225. package/src/internal/httpServerResponse.ts +2 -2
  226. package/src/internal/keyValueStore.ts +1 -1
  227. package/src/internal/multipart.ts +3 -3
  228. package/src/internal/worker.ts +6 -7
  229. package/src/internal/workerRunner.ts +3 -4
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import * as Schema from "@effect/schema/Schema";
4
+ import { FiberRefs } from "effect";
5
5
  import * as FiberRef from "effect/FiberRef";
6
6
  import { dual, identity } from "effect/Function";
7
7
  import { globalValue } from "effect/GlobalValue";
8
+ import { symbolRedactable } from "effect/Inspectable";
8
9
  import * as Predicate from "effect/Predicate";
9
10
  import * as Record from "effect/Record";
10
11
  import * as Redacted from "effect/Redacted";
12
+ import * as Schema from "effect/Schema";
11
13
  import * as String from "effect/String";
12
14
  /**
13
15
  * @since 1.0.0
@@ -20,7 +22,10 @@ export const HeadersTypeId = /*#__PURE__*/Symbol.for("@effect/platform/Headers")
20
22
  */
21
23
  export const isHeaders = u => Predicate.hasProperty(u, HeadersTypeId);
22
24
  const Proto = /*#__PURE__*/Object.assign( /*#__PURE__*/Object.create(null), {
23
- [HeadersTypeId]: HeadersTypeId
25
+ [HeadersTypeId]: HeadersTypeId,
26
+ [symbolRedactable](fiberRefs) {
27
+ return redact(this, FiberRefs.getOrDefault(fiberRefs, currentRedactedNames));
28
+ }
24
29
  });
25
30
  const make = input => Object.assign(Object.create(Proto), input);
26
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Headers.js","names":["Schema","FiberRef","dual","identity","globalValue","Predicate","Record","Redacted","String","HeadersTypeId","Symbol","for","isHeaders","u","hasProperty","Proto","Object","assign","create","make","input","schemaFromSelf","declare","identifier","equivalence","getEquivalence","Equivalence","schema","transform","key","value","Union","Array","strict","decode","record","fromInput","encode","empty","undefined","iterator","out","k","v","toLowerCase","entries","isArray","join","unsafeFromRecord","setPrototypeOf","has","self","get","set","setAll","headers","merge","remove","redact","modify","name","test","i","length","currentRedactedNames","unsafeMake"],"sources":["../../src/Headers.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Headers.js","names":["FiberRefs","FiberRef","dual","identity","globalValue","symbolRedactable","Predicate","Record","Redacted","Schema","String","HeadersTypeId","Symbol","for","isHeaders","u","hasProperty","Proto","Object","assign","create","fiberRefs","redact","getOrDefault","currentRedactedNames","make","input","schemaFromSelf","declare","identifier","equivalence","getEquivalence","Equivalence","schema","transform","key","value","Union","Array","strict","decode","record","fromInput","encode","empty","undefined","iterator","out","k","v","toLowerCase","entries","isArray","join","unsafeFromRecord","setPrototypeOf","has","self","get","set","setAll","headers","merge","remove","modify","name","test","i","length","unsafeMake"],"sources":["../../src/Headers.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,SAAS,QAAQ,QAAQ;AAClC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,SAASC,IAAI,EAAEC,QAAQ,QAAQ,iBAAiB;AAChD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAA0BC,gBAAgB,QAAQ,oBAAoB;AAEtE,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAGvC;;;;AAIA,OAAO,MAAMC,aAAa,gBAAkBC,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAQlF;;;;AAIA,OAAO,MAAMC,SAAS,GAAIC,CAAU,IAAmBT,SAAS,CAACU,WAAW,CAACD,CAAC,EAAEJ,aAAa,CAAC;AAW9F,MAAMM,KAAK,gBAAGC,MAAM,CAACC,MAAM,eAACD,MAAM,CAACE,MAAM,CAAC,IAAI,CAAC,EAAE;EAC/C,CAACT,aAAa,GAAGA,aAAa;EAC9B,CAACN,gBAAgB,EAEfgB,SAA8B;IAE9B,OAAOC,MAAM,CAAC,IAAI,EAAEtB,SAAS,CAACuB,YAAY,CAACF,SAAS,EAAEG,oBAAoB,CAAC,CAAC;EAC9E;CACD,CAAC;AAEF,MAAMC,IAAI,GAAIC,KAA4C,IACxDR,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAACH,KAAK,CAAC,EAAES,KAAK,CAAY;AAEvD;;;;AAIA,OAAO,MAAMC,cAAc,gBAA2BlB,MAAM,CAACmB,OAAO,CAACd,SAAS,EAAE;EAC9Ee,UAAU,EAAE,SAAS;EACrBC,WAAW,EAAEA,CAAA,KAAMvB,MAAM,CAACwB,cAAc,CAACrB,MAAM,CAACsB,WAAW;CAC5D,CAAC;AAEF;;;;AAIA,OAAO,MAAMC,MAAM,gBAA0FxB,MAAM,CAChHyB,SAAS,eACRzB,MAAM,CAACF,MAAM,CAAC;EAAE4B,GAAG,EAAE1B,MAAM,CAACC,MAAM;EAAE0B,KAAK,eAAE3B,MAAM,CAAC4B,KAAK,CAAC5B,MAAM,CAACC,MAAM,eAAED,MAAM,CAAC6B,KAAK,CAAC7B,MAAM,CAACC,MAAM,CAAC;AAAC,CAAE,CAAC,EACtGiB,cAAc,EACd;EAAEY,MAAM,EAAE,IAAI;EAAEC,MAAM,EAAGC,MAAM,IAAKC,SAAS,CAACD,MAAM,CAAC;EAAEE,MAAM,EAAExC;AAAQ,CAAE,CAC1E;AAUH;;;;AAIA,OAAO,MAAMyC,KAAK,gBAAY1B,MAAM,CAACE,MAAM,CAACH,KAAK,CAAC;AAElD;;;;AAIA,OAAO,MAAMyB,SAAS,GAAgChB,KAAK,IAAI;EAC7D,IAAIA,KAAK,KAAKmB,SAAS,EAAE;IACvB,OAAOD,KAAK;EACd,CAAC,MAAM,IAAIhC,MAAM,CAACkC,QAAQ,IAAIpB,KAAK,EAAE;IACnC,MAAMqB,GAAG,GAA2B7B,MAAM,CAACE,MAAM,CAACH,KAAK,CAAC;IACxD,KAAK,MAAM,CAAC+B,CAAC,EAAEC,CAAC,CAAC,IAAIvB,KAAK,EAAE;MAC1BqB,GAAG,CAACC,CAAC,CAACE,WAAW,EAAE,CAAC,GAAGD,CAAC;IAC1B;IACA,OAAOF,GAAc;EACvB;EACA,MAAMA,GAAG,GAA2B7B,MAAM,CAACE,MAAM,CAACH,KAAK,CAAC;EACxD,KAAK,MAAM,CAAC+B,CAAC,EAAEC,CAAC,CAAC,IAAI/B,MAAM,CAACiC,OAAO,CAACzB,KAAK,CAAC,EAAE;IAC1C,IAAIY,KAAK,CAACc,OAAO,CAACH,CAAC,CAAC,EAAE;MACpBF,GAAG,CAACC,CAAC,CAACE,WAAW,EAAE,CAAC,GAAGD,CAAC,CAACI,IAAI,CAAC,IAAI,CAAC;IACrC,CAAC,MAAM,IAAIJ,CAAC,KAAKJ,SAAS,EAAE;MAC1BE,GAAG,CAACC,CAAC,CAACE,WAAW,EAAE,CAAC,GAAGD,CAAW;IACpC;EACF;EACA,OAAOF,GAAc;AACvB,CAAC;AAED;;;;AAIA,OAAO,MAAMO,gBAAgB,GAAI5B,KAA4C,IAC3ER,MAAM,CAACqC,cAAc,CAAC7B,KAAK,EAAET,KAAK,CAAY;AAEhD;;;;AAIA,OAAO,MAAMuC,GAAG,gBAWZtD,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEtB,GAAG,KAAKA,GAAG,CAACe,WAAW,EAAE,IAAIO,IAAI,CAAC;AAE9C;;;;AAIA,OAAO,MAAMC,GAAG,gBAWZxD,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEtB,GAAG,KAAK5B,MAAM,CAACmD,GAAG,CAACD,IAA8B,EAAEtB,GAAG,CAACe,WAAW,EAAE,CAAC,CAAC;AAElF;;;;AAIA,OAAO,MAAMS,GAAG,gBAWZzD,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEtB,GAAG,EAAEC,KAAK,KAAI;EACxB,MAAMW,GAAG,GAAGtB,IAAI,CAACgC,IAAI,CAAC;EACtBV,GAAG,CAACZ,GAAG,CAACe,WAAW,EAAE,CAAC,GAAGd,KAAK;EAC9B,OAAOW,GAAG;AACZ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMa,MAAM,gBAWf1D,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEI,OAAO,KACjBpC,IAAI,CAAC;EACH,GAAGgC,IAAI;EACP,GAAGf,SAAS,CAACmB,OAAO;CACrB,CAAC,CAAC;AAEL;;;;AAIA,OAAO,MAAMC,KAAK,gBAWd5D,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEI,OAAO,KAAI;EACrB,MAAMd,GAAG,GAAGtB,IAAI,CAACgC,IAAI,CAAC;EACtBvC,MAAM,CAACC,MAAM,CAAC4B,GAAG,EAAEc,OAAO,CAAC;EAC3B,OAAOd,GAAG;AACZ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMgB,MAAM,gBAWf7D,IAAI,CAWN,CAAC,EAAE,CAACuD,IAAI,EAAEtB,GAAG,KAAI;EACjB,MAAMY,GAAG,GAAGtB,IAAI,CAACgC,IAAI,CAAC;EACtB,OAAOV,GAAG,CAACZ,GAAG,CAACe,WAAW,EAAE,CAAC;EAC7B,OAAOH,GAAG;AACZ,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMzB,MAAM,gBAWfpB,IAAI,CACN,CAAC,EACD,CACEuD,IAAa,EACbtB,GAAqD,KACP;EAC9C,MAAMY,GAAG,GAA+C;IAAE,GAAGU;EAAI,CAAE;EACnE,MAAMO,MAAM,GAAI7B,GAAoB,IAAI;IACtC,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;MAC3B,MAAMa,CAAC,GAAGb,GAAG,CAACe,WAAW,EAAE;MAC3B,IAAIF,CAAC,IAAIS,IAAI,EAAE;QACbV,GAAG,CAACC,CAAC,CAAC,GAAGxC,QAAQ,CAACiB,IAAI,CAACgC,IAAI,CAACT,CAAC,CAAC,CAAC;MACjC;IACF,CAAC,MAAM;MACL,KAAK,MAAMiB,IAAI,IAAIR,IAAI,EAAE;QACvB,IAAItB,GAAG,CAAC+B,IAAI,CAACD,IAAI,CAAC,EAAE;UAClBlB,GAAG,CAACkB,IAAI,CAAC,GAAGzD,QAAQ,CAACiB,IAAI,CAACgC,IAAI,CAACQ,IAAI,CAAC,CAAC;QACvC;MACF;IACF;EACF,CAAC;EACD,IAAI3B,KAAK,CAACc,OAAO,CAACjB,GAAG,CAAC,EAAE;IACtB,KAAK,IAAIgC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhC,GAAG,CAACiC,MAAM,EAAED,CAAC,EAAE,EAAE;MACnCH,MAAM,CAAC7B,GAAG,CAACgC,CAAC,CAAC,CAAC;IAChB;EACF,CAAC,MAAM;IACLH,MAAM,CAAC7B,GAAsB,CAAC;EAChC;EACA,OAAOY,GAAG;AACZ,CAAC,CACF;AAED;;;;AAIA,OAAO,MAAMvB,oBAAoB,gBAAsDpB,WAAW,CAChG,+CAA+C,EAC/C,MACEH,QAAQ,CAACoE,UAAU,CAAiC,CAClD,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,WAAW,CACZ,CAAC,CACL","ignoreList":[]}
@@ -1,16 +1,14 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import * as AST from "@effect/schema/AST";
5
- import * as Chunk from "effect/Chunk";
6
4
  import * as Context from "effect/Context";
7
- import { dual } from "effect/Function";
5
+ import * as HashMap from "effect/HashMap";
6
+ import * as HashSet from "effect/HashSet";
8
7
  import * as Option from "effect/Option";
9
8
  import { pipeArguments } from "effect/Pipeable";
10
9
  import * as Predicate from "effect/Predicate";
11
- import * as HttpApiEndpoint from "./HttpApiEndpoint.js";
10
+ import * as AST from "effect/SchemaAST";
12
11
  import { HttpApiDecodeError } from "./HttpApiError.js";
13
- import * as HttpApiGroup from "./HttpApiGroup.js";
14
12
  import * as HttpApiSchema from "./HttpApiSchema.js";
15
13
  /**
16
14
  * @since 1.0.0
@@ -26,79 +24,89 @@ export const isHttpApi = u => Predicate.hasProperty(u, TypeId);
26
24
  * @since 1.0.0
27
25
  * @category tags
28
26
  */
29
- export const HttpApi = /*#__PURE__*/Context.GenericTag("@effect/platform/HttpApi");
27
+ export class Api extends /*#__PURE__*/Context.Tag("@effect/platform/HttpApi/Api")() {}
30
28
  const Proto = {
31
29
  [TypeId]: TypeId,
32
30
  pipe() {
33
31
  return pipeArguments(this, arguments);
32
+ },
33
+ add(group) {
34
+ return makeProto({
35
+ groups: HashMap.set(this.groups, group.identifier, group),
36
+ errorSchema: this.errorSchema,
37
+ annotations: this.annotations,
38
+ middlewares: this.middlewares
39
+ });
40
+ },
41
+ addError(schema, annotations) {
42
+ return makeProto({
43
+ groups: this.groups,
44
+ errorSchema: HttpApiSchema.UnionUnify(this.errorSchema, schema.annotations(HttpApiSchema.annotations({
45
+ status: annotations?.status ?? HttpApiSchema.getStatusError(schema)
46
+ }))),
47
+ annotations: this.annotations,
48
+ middlewares: this.middlewares
49
+ });
50
+ },
51
+ prefix(prefix) {
52
+ return makeProto({
53
+ groups: HashMap.map(this.groups, group => group.prefix(prefix)),
54
+ errorSchema: this.errorSchema,
55
+ annotations: this.annotations,
56
+ middlewares: this.middlewares
57
+ });
58
+ },
59
+ middleware(tag) {
60
+ return makeProto({
61
+ groups: this.groups,
62
+ errorSchema: HttpApiSchema.UnionUnify(this.errorSchema, tag.failure.annotations(HttpApiSchema.annotations({
63
+ status: HttpApiSchema.getStatusError(tag.failure)
64
+ }))),
65
+ annotations: this.annotations,
66
+ middlewares: HashSet.add(this.middlewares, tag)
67
+ });
68
+ },
69
+ annotate(tag, value) {
70
+ return makeProto({
71
+ groups: this.groups,
72
+ errorSchema: this.errorSchema,
73
+ annotations: Context.add(this.annotations, tag, value),
74
+ middlewares: this.middlewares
75
+ });
76
+ },
77
+ annotateContext(context) {
78
+ return makeProto({
79
+ groups: this.groups,
80
+ errorSchema: this.errorSchema,
81
+ annotations: Context.merge(this.annotations, context),
82
+ middlewares: this.middlewares
83
+ });
34
84
  }
35
85
  };
36
86
  const makeProto = options => {
37
87
  function HttpApi() {}
38
88
  Object.setPrototypeOf(HttpApi, Proto);
39
- return Object.assign(HttpApi, options);
89
+ HttpApi.groups = options.groups;
90
+ HttpApi.errorSchema = options.errorSchema;
91
+ HttpApi.annotations = options.annotations;
92
+ HttpApi.middlewares = options.middlewares;
93
+ return HttpApi;
40
94
  };
41
95
  /**
42
- * An empty `HttpApi`. You can use this to start building your `HttpApi`.
96
+ * An `HttpApi` is a collection of `HttpApiEndpoint`s. You can use an `HttpApi` to
97
+ * represent a portion of your domain.
43
98
  *
44
- * You can add groups to this `HttpApi` using the `addGroup` function.
99
+ * The endpoints can be implemented later using the `HttpApiBuilder.make` api.
45
100
  *
46
101
  * @since 1.0.0
47
102
  * @category constructors
48
103
  */
49
104
  export const empty = /*#__PURE__*/makeProto({
50
- groups: /*#__PURE__*/Chunk.empty(),
105
+ groups: /*#__PURE__*/HashMap.empty(),
51
106
  errorSchema: HttpApiDecodeError,
52
- annotations: /*#__PURE__*/Context.empty()
53
- });
54
- /**
55
- * Add a `HttpApiGroup` to an `HttpApi`.
56
- *
57
- * @since 1.0.0
58
- * @category constructors
59
- */
60
- export const addGroup = /*#__PURE__*/dual(args => isHttpApi(args[0]), (self, ...args) => {
61
- const group = args.length === 1 ? args[0] : HttpApiGroup.prefix(args[1], args[0]);
62
- return makeProto({
63
- errorSchema: self.errorSchema,
64
- annotations: self.annotations,
65
- groups: Chunk.append(self.groups, group)
66
- });
107
+ annotations: /*#__PURE__*/Context.empty(),
108
+ middlewares: /*#__PURE__*/HashSet.empty()
67
109
  });
68
- /**
69
- * Add an error schema to an `HttpApi`, which is shared by all endpoints in the
70
- * `HttpApi`.
71
- *
72
- * Useful for adding error types from middleware or other shared error types.
73
- *
74
- * @since 1.0.0
75
- * @category errors
76
- */
77
- export const addError = /*#__PURE__*/dual(args => isHttpApi(args[0]), (self, schema, annotations) => makeProto({
78
- groups: self.groups,
79
- annotations: self.annotations,
80
- errorSchema: HttpApiSchema.UnionUnify(self.errorSchema, schema.annotations(HttpApiSchema.annotations({
81
- status: annotations?.status ?? HttpApiSchema.getStatusError(schema)
82
- })))
83
- }));
84
- /**
85
- * @since 1.0.0
86
- * @category annotations
87
- */
88
- export const annotateMerge = /*#__PURE__*/dual(2, (self, context) => makeProto({
89
- groups: self.groups,
90
- errorSchema: self.errorSchema,
91
- annotations: Context.merge(self.annotations, context)
92
- }));
93
- /**
94
- * @since 1.0.0
95
- * @category annotations
96
- */
97
- export const annotate = /*#__PURE__*/dual(3, (self, tag, value) => makeProto({
98
- groups: self.groups,
99
- errorSchema: self.errorSchema,
100
- annotations: Context.add(self.annotations, tag, value)
101
- }));
102
110
  /**
103
111
  * Extract metadata from an `HttpApi`, which can be used to generate documentation
104
112
  * or other tooling.
@@ -109,49 +117,52 @@ export const annotate = /*#__PURE__*/dual(3, (self, tag, value) => makeProto({
109
117
  * @category reflection
110
118
  */
111
119
  export const reflect = (self, options) => {
112
- const apiErrors = extractErrors(self.errorSchema.ast, new Map());
120
+ const apiErrors = extractMembers(self.errorSchema.ast, new Map(), HttpApiSchema.getStatusErrorAST);
113
121
  const groups = self.groups;
114
- for (const group of groups) {
115
- const groupErrors = extractErrors(group.errorSchema.ast, apiErrors);
122
+ for (const [, group] of groups) {
123
+ const groupErrors = extractMembers(group.errorSchema.ast, apiErrors, HttpApiSchema.getStatusErrorAST);
116
124
  const groupAnnotations = Context.merge(self.annotations, group.annotations);
117
125
  options.onGroup({
118
126
  group,
119
127
  mergedAnnotations: groupAnnotations
120
128
  });
121
129
  const endpoints = group.endpoints;
122
- for (const endpoint of endpoints) {
130
+ for (const [, endpoint] of endpoints) {
131
+ const errors = extractMembers(endpoint.errorSchema.ast, groupErrors, HttpApiSchema.getStatusErrorAST);
123
132
  options.onEndpoint({
124
133
  group,
125
134
  endpoint,
135
+ middleware: HashSet.union(group.middlewares, endpoint.middlewares),
126
136
  mergedAnnotations: Context.merge(groupAnnotations, endpoint.annotations),
127
- successAST: HttpApiEndpoint.schemaSuccess(endpoint).pipe(Option.map(schema => schema.ast)),
128
- successStatus: HttpApiSchema.getStatusSuccess(endpoint.successSchema),
129
- successEncoding: HttpApiSchema.getEncoding(endpoint.successSchema.ast),
130
- errors: extractErrors(endpoint.errorSchema.ast, groupErrors)
137
+ successes: extractMembers(endpoint.successSchema.ast, new Map(), HttpApiSchema.getStatusSuccessAST),
138
+ errors
131
139
  });
132
140
  }
133
141
  }
134
142
  };
135
143
  // -------------------------------------------------------------------------------------
136
- const extractErrors = (ast, inherited) => {
137
- const topStatus = HttpApiSchema.getStatusErrorAST(ast);
138
- const errors = new Map(inherited);
144
+ const extractMembers = (topAst, inherited, getStatus) => {
145
+ const members = new Map(inherited);
139
146
  function process(ast) {
140
147
  if (ast._tag === "NeverKeyword") {
141
148
  return;
142
149
  }
143
- const status = HttpApiSchema.getStatus(ast, topStatus);
150
+ ast = AST.annotations(ast, {
151
+ ...topAst.annotations,
152
+ ...ast.annotations
153
+ });
154
+ const status = getStatus(ast);
144
155
  const emptyDecodeable = HttpApiSchema.getEmptyDecodeable(ast);
145
- const current = errors.get(status) ?? Option.none();
146
- errors.set(status, current.pipe(Option.map(current => AST.Union.make(current._tag === "Union" ? [...current.types, ast] : [current, ast])), Option.orElse(() => !emptyDecodeable && AST.encodedAST(ast)._tag === "VoidKeyword" ? Option.none() : Option.some(ast))));
156
+ const current = members.get(status) ?? Option.none();
157
+ members.set(status, current.pipe(Option.map(current => AST.Union.make(current._tag === "Union" ? [...current.types, ast] : [current, ast])), Option.orElse(() => !emptyDecodeable && AST.encodedAST(ast)._tag === "VoidKeyword" ? Option.none() : Option.some(ast))));
147
158
  }
148
- if (ast._tag === "Union") {
149
- for (const type of ast.types) {
159
+ if (topAst._tag === "Union") {
160
+ for (const type of topAst.types) {
150
161
  process(type);
151
162
  }
152
163
  } else {
153
- process(ast);
164
+ process(topAst);
154
165
  }
155
- return errors;
166
+ return members;
156
167
  };
157
168
  //# sourceMappingURL=HttpApi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpApi.js","names":["AST","Chunk","Context","dual","Option","pipeArguments","Predicate","HttpApiEndpoint","HttpApiDecodeError","HttpApiGroup","HttpApiSchema","TypeId","Symbol","for","isHttpApi","u","hasProperty","HttpApi","GenericTag","Proto","pipe","arguments","makeProto","options","Object","setPrototypeOf","assign","empty","groups","errorSchema","annotations","addGroup","args","self","group","length","prefix","append","addError","schema","UnionUnify","status","getStatusError","annotateMerge","context","merge","annotate","tag","value","add","reflect","apiErrors","extractErrors","ast","Map","groupErrors","groupAnnotations","onGroup","mergedAnnotations","endpoints","endpoint","onEndpoint","successAST","schemaSuccess","map","successStatus","getStatusSuccess","successSchema","successEncoding","getEncoding","errors","inherited","topStatus","getStatusErrorAST","process","_tag","getStatus","emptyDecodeable","getEmptyDecodeable","current","get","none","set","Union","make","types","orElse","encodedAST","some","type"],"sources":["../../src/HttpApi.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,GAAG,MAAM,oBAAoB;AAEzC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AACvD,SAASC,kBAAkB,QAAQ,mBAAmB;AACtD,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AACjD,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAInD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAQ3E;;;;AAIA,OAAO,MAAMC,SAAS,GAAIC,CAAU,IAA6BT,SAAS,CAACU,WAAW,CAACD,CAAC,EAAEJ,MAAM,CAAC;AAqBjG;;;;AAIA,OAAO,MAAMM,OAAO,gBAA8Cf,OAAO,CAACgB,UAAU,CAClF,0BAA0B,CAC3B;AAoCD,MAAMC,KAAK,GAAG;EACZ,CAACR,MAAM,GAAGA,MAAM;EAChBS,IAAIA,CAAA;IACF,OAAOf,aAAa,CAAC,IAAI,EAAEgB,SAAS,CAAC;EACvC;CACD;AAED,MAAMC,SAAS,GAAiEC,OAI/E,IAAoC;EACnC,SAASN,OAAOA,CAAA,GAAI;EACpBO,MAAM,CAACC,cAAc,CAACR,OAAO,EAAEE,KAAK,CAAC;EACrC,OAAOK,MAAM,CAACE,MAAM,CAACT,OAAO,EAAEM,OAAO,CAAQ;AAC/C,CAAC;AAED;;;;;;;;AAQA,OAAO,MAAMI,KAAK,gBAAYL,SAAS,CAAC;EACtCM,MAAM,eAAE3B,KAAK,CAAC0B,KAAK,EAAE;EACrBE,WAAW,EAAErB,kBAAyB;EACtCsB,WAAW,eAAE5B,OAAO,CAACyB,KAAK;CAC3B,CAAC;AAEF;;;;;;AAMA,OAAO,MAAMI,QAAQ,gBA6CjB5B,IAAI,CACL6B,IAAI,IAAKlB,SAAS,CAACkB,IAAI,CAAC,CAAC,CAAC,CAAC,EAC5B,CACEC,IAAiB,EACjB,GAAGD,IAAiH,KACrG;EACf,MAAME,KAAK,GAAGF,IAAI,CAACG,MAAM,KAAK,CAAC,GAAGH,IAAI,CAAC,CAAC,CAAC,GAAGvB,YAAY,CAAC2B,MAAM,CAACJ,IAAI,CAAC,CAAC,CAAQ,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC;EACxF,OAAOV,SAAS,CAAC;IACfO,WAAW,EAAEI,IAAI,CAACJ,WAAkB;IACpCC,WAAW,EAAEG,IAAI,CAACH,WAAW;IAC7BF,MAAM,EAAE3B,KAAK,CAACoC,MAAM,CAACJ,IAAI,CAACL,MAAM,EAAEM,KAAK;GACxC,CAAC;AACJ,CAAC,CACF;AACD;;;;;;;;;AASA,OAAO,MAAMI,QAAQ,gBAkCjBnC,IAAI,CACL6B,IAAI,IAAKlB,SAAS,CAACkB,IAAI,CAAC,CAAC,CAAC,CAAC,EAC5B,CACEC,IAAoC,EACpCM,MAA8B,EAC9BT,WAEC,KAEDR,SAAS,CAAC;EACRM,MAAM,EAAEK,IAAI,CAACL,MAAM;EACnBE,WAAW,EAAEG,IAAI,CAACH,WAAW;EAC7BD,WAAW,EAAEnB,aAAa,CAAC8B,UAAU,CACnCP,IAAI,CAACJ,WAAW,EAChBU,MAAM,CAACT,WAAW,CAACpB,aAAa,CAACoB,WAAW,CAAC;IAC3CW,MAAM,EAAEX,WAAW,EAAEW,MAAM,IAAI/B,aAAa,CAACgC,cAAc,CAACH,MAAM;GACnE,CAAC,CAAC;CAEN,CAAC,CACL;AAED;;;;AAIA,OAAO,MAAMI,aAAa,gBAWtBxC,IAAI,CACN,CAAC,EACD,CAA2B8B,IAAO,EAAEW,OAA2B,KAC7DtB,SAAS,CAAC;EACRM,MAAM,EAAEK,IAAI,CAACL,MAAM;EACnBC,WAAW,EAAEI,IAAI,CAACJ,WAAkB;EACpCC,WAAW,EAAE5B,OAAO,CAAC2C,KAAK,CAACZ,IAAI,CAACH,WAAW,EAAEc,OAAO;CACrD,CAAM,CACV;AAED;;;;AAIA,OAAO,MAAME,QAAQ,gBAWjB3C,IAAI,CACN,CAAC,EACD,CAA8B8B,IAAO,EAAEc,GAAsB,EAAEC,KAAQ,KACrE1B,SAAS,CAAC;EACRM,MAAM,EAAEK,IAAI,CAACL,MAAM;EACnBC,WAAW,EAAEI,IAAI,CAACJ,WAAkB;EACpCC,WAAW,EAAE5B,OAAO,CAAC+C,GAAG,CAAChB,IAAI,CAACH,WAAW,EAAEiB,GAAG,EAAEC,KAAK;CACtD,CAAM,CACV;AAED;;;;;;;;;AASA,OAAO,MAAME,OAAO,GAAGA,CACrBjB,IAAoC,EACpCV,OAcC,KACC;EACF,MAAM4B,SAAS,GAAGC,aAAa,CAACnB,IAAI,CAACJ,WAAW,CAACwB,GAAG,EAAE,IAAIC,GAAG,EAAE,CAAC;EAEhE,MAAM1B,MAAM,GAAGK,IAAI,CAACL,MAA0D;EAC9E,KAAK,MAAMM,KAAK,IAAIN,MAAM,EAAE;IAC1B,MAAM2B,WAAW,GAAGH,aAAa,CAAClB,KAAK,CAACL,WAAW,CAACwB,GAAG,EAAEF,SAAS,CAAC;IACnE,MAAMK,gBAAgB,GAAGtD,OAAO,CAAC2C,KAAK,CAACZ,IAAI,CAACH,WAAW,EAAEI,KAAK,CAACJ,WAAW,CAAC;IAC3EP,OAAO,CAACkC,OAAO,CAAC;MACdvB,KAAK;MACLwB,iBAAiB,EAAEF;KACpB,CAAC;IACF,MAAMG,SAAS,GAAGzB,KAAK,CAACyB,SAA0E;IAClG,KAAK,MAAMC,QAAQ,IAAID,SAAS,EAAE;MAChCpC,OAAO,CAACsC,UAAU,CAAC;QACjB3B,KAAK;QACL0B,QAAQ;QACRF,iBAAiB,EAAExD,OAAO,CAAC2C,KAAK,CAACW,gBAAgB,EAAEI,QAAQ,CAAC9B,WAAW,CAAC;QACxEgC,UAAU,EAAEvD,eAAe,CAACwD,aAAa,CAACH,QAAQ,CAAC,CAACxC,IAAI,CACtDhB,MAAM,CAAC4D,GAAG,CAAEzB,MAAM,IAAKA,MAAM,CAACc,GAAG,CAAC,CACnC;QACDY,aAAa,EAAEvD,aAAa,CAACwD,gBAAgB,CAACN,QAAQ,CAACO,aAAa,CAAC;QACrEC,eAAe,EAAE1D,aAAa,CAAC2D,WAAW,CAACT,QAAQ,CAACO,aAAa,CAACd,GAAG,CAAC;QACtEiB,MAAM,EAAElB,aAAa,CAACQ,QAAQ,CAAC/B,WAAW,CAACwB,GAAG,EAAEE,WAAW;OAC5D,CAAC;IACJ;EACF;AACF,CAAC;AAED;AAEA,MAAMH,aAAa,GAAGA,CACpBC,GAAY,EACZkB,SAAsD,KACP;EAC/C,MAAMC,SAAS,GAAG9D,aAAa,CAAC+D,iBAAiB,CAACpB,GAAG,CAAC;EACtD,MAAMiB,MAAM,GAAG,IAAIhB,GAAG,CAACiB,SAAS,CAAC;EACjC,SAASG,OAAOA,CAACrB,GAAY;IAC3B,IAAIA,GAAG,CAACsB,IAAI,KAAK,cAAc,EAAE;MAC/B;IACF;IACA,MAAMlC,MAAM,GAAG/B,aAAa,CAACkE,SAAS,CAACvB,GAAG,EAAEmB,SAAS,CAAC;IACtD,MAAMK,eAAe,GAAGnE,aAAa,CAACoE,kBAAkB,CAACzB,GAAG,CAAC;IAC7D,MAAM0B,OAAO,GAAGT,MAAM,CAACU,GAAG,CAACvC,MAAM,CAAC,IAAIrC,MAAM,CAAC6E,IAAI,EAAE;IACnDX,MAAM,CAACY,GAAG,CACRzC,MAAM,EACNsC,OAAO,CAAC3D,IAAI,CACVhB,MAAM,CAAC4D,GAAG,CAAEe,OAAO,IACjB/E,GAAG,CAACmF,KAAK,CAACC,IAAI,CACZL,OAAO,CAACJ,IAAI,KAAK,OAAO,GAAG,CAAC,GAAGI,OAAO,CAACM,KAAK,EAAEhC,GAAG,CAAC,GAAG,CAAC0B,OAAO,EAAE1B,GAAG,CAAC,CACpE,CACF,EACDjD,MAAM,CAACkF,MAAM,CAAC,MACZ,CAACT,eAAe,IAAI7E,GAAG,CAACuF,UAAU,CAAClC,GAAG,CAAC,CAACsB,IAAI,KAAK,aAAa,GAAGvE,MAAM,CAAC6E,IAAI,EAAE,GAAG7E,MAAM,CAACoF,IAAI,CAACnC,GAAG,CAAC,CAClG,CACF,CACF;EACH;EACA,IAAIA,GAAG,CAACsB,IAAI,KAAK,OAAO,EAAE;IACxB,KAAK,MAAMc,IAAI,IAAIpC,GAAG,CAACgC,KAAK,EAAE;MAC5BX,OAAO,CAACe,IAAI,CAAC;IACf;EACF,CAAC,MAAM;IACLf,OAAO,CAACrB,GAAG,CAAC;EACd;EACA,OAAOiB,MAAM;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"HttpApi.js","names":["Context","HashMap","HashSet","Option","pipeArguments","Predicate","AST","HttpApiDecodeError","HttpApiSchema","TypeId","Symbol","for","isHttpApi","u","hasProperty","Api","Tag","Proto","pipe","arguments","add","group","makeProto","groups","set","identifier","errorSchema","annotations","middlewares","addError","schema","UnionUnify","status","getStatusError","prefix","map","middleware","tag","failure","annotate","value","annotateContext","context","merge","options","HttpApi","Object","setPrototypeOf","empty","reflect","self","apiErrors","extractMembers","ast","Map","getStatusErrorAST","groupErrors","groupAnnotations","onGroup","mergedAnnotations","endpoints","endpoint","errors","onEndpoint","union","successes","successSchema","getStatusSuccessAST","topAst","inherited","getStatus","members","process","_tag","emptyDecodeable","getEmptyDecodeable","current","get","none","Union","make","types","orElse","encodedAST","some","type"],"sources":["../../src/HttpApi.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}