@opencode-ai/cli-darwin-x64 0.0.0-beta-202606070621 → 0.0.0-beta-202606070725

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 (187) hide show
  1. package/bin/{chunk-jfkqg2y4.js.map → chunk-05nepysv.js.map} +1 -1
  2. package/bin/{chunk-xsdvcn6v.js.map → chunk-07m152g3.js.map} +1 -1
  3. package/bin/{chunk-1btww6bw.js.map → chunk-0h23a7y9.js.map} +1 -1
  4. package/bin/chunk-0hw6knq4.js.map +13 -0
  5. package/bin/{chunk-1yyxvqw9.js.map → chunk-0mrc2mg3.js.map} +1 -1
  6. package/bin/{chunk-31ab3ht9.js.map → chunk-0paaeft0.js.map} +1 -1
  7. package/bin/{chunk-h2dnda4d.js.map → chunk-0qga0hbv.js.map} +1 -1
  8. package/bin/{chunk-hra5nhs3.js.map → chunk-1a8qsjj9.js.map} +2 -2
  9. package/bin/{chunk-w2t59bwj.js.map → chunk-1n111v89.js.map} +1 -1
  10. package/bin/{chunk-pcsm2n5f.js.map → chunk-1pr4t7q1.js.map} +1 -1
  11. package/bin/{chunk-btpgrkq6.js.map → chunk-1xnbtmtm.js.map} +1 -1
  12. package/bin/{chunk-z93jensj.js.map → chunk-2nz63b6j.js.map} +2 -2
  13. package/bin/{chunk-sfc8xzmv.js.map → chunk-2pwf1mhm.js.map} +1 -1
  14. package/bin/{chunk-7j6m8b4q.js.map → chunk-2q8jpzfn.js.map} +1 -1
  15. package/bin/{chunk-5n6r19gh.js.map → chunk-2xhv7bwb.js.map} +1 -1
  16. package/bin/{chunk-kr8mp1wy.js.map → chunk-2z35fkzr.js.map} +1 -1
  17. package/bin/{chunk-bhnn1691.js.map → chunk-30yw80hh.js.map} +1 -1
  18. package/bin/{chunk-bjf29a8y.js.map → chunk-381b2j09.js.map} +2 -2
  19. package/bin/{chunk-ws5m6p05.js.map → chunk-3ft127pe.js.map} +1 -1
  20. package/bin/{chunk-xe2n32pr.js.map → chunk-3k30kbd9.js.map} +1 -1
  21. package/bin/{chunk-jf83720m.js.map → chunk-3kjpb3v3.js.map} +1 -1
  22. package/bin/{chunk-9b0ef92v.js.map → chunk-3p5p3nae.js.map} +1 -1
  23. package/bin/{chunk-akgvtcd9.js.map → chunk-44wnjjsc.js.map} +1 -1
  24. package/bin/{chunk-19b0m0ky.js.map → chunk-4n6c7ts6.js.map} +2 -2
  25. package/bin/{chunk-m1przeh1.js.map → chunk-4vsstw6x.js.map} +1 -1
  26. package/bin/{chunk-dwynxw8t.js.map → chunk-50q0tjz5.js.map} +1 -1
  27. package/bin/{chunk-acr6w36h.js.map → chunk-5cgzyybw.js.map} +2 -2
  28. package/bin/{chunk-g97p4qzs.js.map → chunk-5g0bwafa.js.map} +1 -1
  29. package/bin/chunk-5gw08dzg.js.map +22 -0
  30. package/bin/{chunk-3qhwcyq6.js.map → chunk-5seh0nhz.js.map} +1 -1
  31. package/bin/{chunk-c25fj37p.js.map → chunk-5xx71t8z.js.map} +1 -1
  32. package/bin/chunk-60etdgbd.js.map +12 -0
  33. package/bin/{chunk-qwdzfdj2.js.map → chunk-63knpfq1.js.map} +1 -1
  34. package/bin/{chunk-5a0snzf9.js.map → chunk-66byxq9k.js.map} +1 -1
  35. package/bin/{chunk-qrrqmb05.js.map → chunk-69v174p8.js.map} +1 -1
  36. package/bin/chunk-6cb62ch8.js.map +10 -0
  37. package/bin/{chunk-7vtzx4v9.js.map → chunk-6e4sw21w.js.map} +1 -1
  38. package/bin/{chunk-0dfz3rfx.js.map → chunk-6fqjh62z.js.map} +1 -1
  39. package/bin/{chunk-978h2k33.js.map → chunk-6ft5bhb2.js.map} +1 -1
  40. package/bin/{chunk-mphhgn7h.js.map → chunk-6ggvgnwh.js.map} +1 -1
  41. package/bin/chunk-6nvbh08w.js.map +9 -0
  42. package/bin/{chunk-43t6skjx.js.map → chunk-6qe8a762.js.map} +1 -1
  43. package/bin/{chunk-xc9mm9wr.js.map → chunk-71zm581w.js.map} +1 -1
  44. package/bin/{chunk-xfrb0zb6.js.map → chunk-7d6009yk.js.map} +1 -1
  45. package/bin/{chunk-14vmwrn4.js.map → chunk-7jjsnyew.js.map} +1 -1
  46. package/bin/{chunk-v2ptw5k6.js.map → chunk-81qbsn9g.js.map} +1 -1
  47. package/bin/{chunk-wt57cmjq.js.map → chunk-8arnfnw2.js.map} +1 -1
  48. package/bin/chunk-8ehrd2z2.js.map +43 -0
  49. package/bin/{chunk-twx6x0fz.js.map → chunk-8k7t56f3.js.map} +1 -1
  50. package/bin/{chunk-es43e5my.js.map → chunk-8mdnc8m4.js.map} +1 -1
  51. package/bin/chunk-8xcptstn.js.map +9 -0
  52. package/bin/{chunk-q61kxqbe.js.map → chunk-908ng9qg.js.map} +2 -2
  53. package/bin/chunk-90nfrm64.js.map +9 -0
  54. package/bin/{chunk-vk88dwxs.js.map → chunk-9adrvbn6.js.map} +1 -1
  55. package/bin/{chunk-4wpwdxpa.js.map → chunk-9ecqt2ks.js.map} +1 -1
  56. package/bin/{chunk-0z6t0v97.js.map → chunk-9g3q18wt.js.map} +1 -1
  57. package/bin/{chunk-d3pdw16m.js.map → chunk-9hcjy5f4.js.map} +1 -1
  58. package/bin/chunk-aj1e34xj.js.map +9 -0
  59. package/bin/{chunk-4917dwmd.js.map → chunk-at4f25tr.js.map} +1 -1
  60. package/bin/chunk-az7hwa3e.js.map +9 -0
  61. package/bin/{chunk-q00bcy0f.js.map → chunk-b6dc9586.js.map} +1 -1
  62. package/bin/{chunk-t2aa31rp.js.map → chunk-b8cf49k4.js.map} +1 -1
  63. package/bin/chunk-bh2e2q3h.js.map +14 -0
  64. package/bin/{chunk-48q3mrvq.js.map → chunk-bjxnd74r.js.map} +2 -2
  65. package/bin/chunk-bwxwd975.js.map +9 -0
  66. package/bin/{chunk-39gmh462.js.map → chunk-c07gab7c.js.map} +1 -1
  67. package/bin/{chunk-f7yan2vf.js.map → chunk-c9tn4tzh.js.map} +1 -1
  68. package/bin/{chunk-c99gahsy.js.map → chunk-d2t7aagn.js.map} +1 -1
  69. package/bin/{chunk-dtxtc2sy.js.map → chunk-d394zad5.js.map} +1 -1
  70. package/bin/{chunk-jgnjm6y5.js.map → chunk-d8brx98x.js.map} +1 -1
  71. package/bin/{chunk-153vk1m3.js.map → chunk-df3rw1ne.js.map} +2 -2
  72. package/bin/{chunk-k1m7r6tj.js.map → chunk-dgy9xw12.js.map} +1 -1
  73. package/bin/{chunk-v9973v8h.js.map → chunk-dj7zttan.js.map} +1 -1
  74. package/bin/{chunk-gqrkt3a7.js.map → chunk-dnkfwbwg.js.map} +1 -1
  75. package/bin/{chunk-kk1nq2f1.js.map → chunk-dryp63pb.js.map} +3 -3
  76. package/bin/{chunk-bm703r9f.js.map → chunk-dyvep3sh.js.map} +1 -1
  77. package/bin/chunk-dzt8fjgz.js.map +9 -0
  78. package/bin/{chunk-y5245ch7.js.map → chunk-e1z47jyw.js.map} +1 -1
  79. package/bin/{chunk-zvewfgek.js.map → chunk-f99xt0bc.js.map} +1 -1
  80. package/bin/{chunk-pr7kx9ej.js.map → chunk-ffggz7qw.js.map} +1 -1
  81. package/bin/chunk-fks82d7n.js.map +9 -0
  82. package/bin/{chunk-6rtxapab.js.map → chunk-fwn55d8w.js.map} +1 -1
  83. package/bin/{chunk-h6vq83c7.js.map → chunk-fxsm4kgh.js.map} +1 -1
  84. package/bin/{chunk-wcv8z956.js.map → chunk-gdp4wta8.js.map} +1 -1
  85. package/bin/{chunk-hw28zjp5.js.map → chunk-gvf7e487.js.map} +1 -1
  86. package/bin/{chunk-gr4gaegr.js.map → chunk-gxfwkqnv.js.map} +1 -1
  87. package/bin/{chunk-1t20hffk.js.map → chunk-gy5ads9p.js.map} +1 -1
  88. package/bin/{chunk-b4r31cma.js.map → chunk-gyarmpw7.js.map} +1 -1
  89. package/bin/{chunk-yk37gmmn.js.map → chunk-h6b32d43.js.map} +1 -1
  90. package/bin/{chunk-kedzcskc.js.map → chunk-hd5bn2mk.js.map} +2 -2
  91. package/bin/{chunk-qkm5mqf9.js.map → chunk-hm6pq177.js.map} +1 -1
  92. package/bin/{chunk-6avjg6e5.js.map → chunk-hq3d2kgt.js.map} +1 -1
  93. package/bin/{chunk-y157cxe2.js.map → chunk-hrznn6sn.js.map} +2 -2
  94. package/bin/{chunk-9wn3bjxq.js.map → chunk-hzhkheeb.js.map} +1 -1
  95. package/bin/{chunk-bsbg6n7z.js.map → chunk-jk3aqnc8.js.map} +1 -1
  96. package/bin/{chunk-mbg5gncf.js.map → chunk-jqc9qey3.js.map} +1 -1
  97. package/bin/{chunk-qnsg43hx.js.map → chunk-jvgv8ajb.js.map} +1 -1
  98. package/bin/{chunk-pgx96176.js.map → chunk-k4x9m2c5.js.map} +1 -1
  99. package/bin/{chunk-a1fpn07n.js.map → chunk-ka1eaag1.js.map} +7 -58
  100. package/bin/{chunk-cvjeb3xd.js.map → chunk-kgzwrrp5.js.map} +1 -1
  101. package/bin/chunk-m3rn1hsq.js.map +9 -0
  102. package/bin/{chunk-taj5bzcz.js.map → chunk-mjranvm8.js.map} +2 -2
  103. package/bin/{chunk-fmex48bv.js.map → chunk-n3hke128.js.map} +1 -1
  104. package/bin/{chunk-n64t4f4m.js.map → chunk-na2tnz0a.js.map} +2 -2
  105. package/bin/{chunk-qt51te01.js.map → chunk-ndqpbp32.js.map} +1 -1
  106. package/bin/{chunk-pf56x9mm.js.map → chunk-ne5eywh3.js.map} +1 -1
  107. package/bin/{chunk-0kj87vqs.js.map → chunk-nqadg33p.js.map} +1 -1
  108. package/bin/{chunk-v698jxr0.js.map → chunk-nv0t395g.js.map} +1 -1
  109. package/bin/{chunk-k66r62yv.js.map → chunk-p374savw.js.map} +47 -41
  110. package/bin/{chunk-bk9mhkh3.js.map → chunk-p3x9ne5r.js.map} +1 -1
  111. package/bin/chunk-p65bwz8s.js.map +12 -0
  112. package/bin/{chunk-gh9t7d7h.js.map → chunk-p7fa27wc.js.map} +1 -1
  113. package/bin/{chunk-vyacx963.js.map → chunk-pe5nrzx3.js.map} +1 -1
  114. package/bin/{chunk-tby159gz.js.map → chunk-pjmywr55.js.map} +1 -1
  115. package/bin/{chunk-nng8bf3c.js.map → chunk-pmxe1gmf.js.map} +1 -1
  116. package/bin/{chunk-f9tkgqft.js.map → chunk-qcxqmxwq.js.map} +1 -1
  117. package/bin/{chunk-cpf29q6y.js.map → chunk-qjs7zc19.js.map} +5 -14
  118. package/bin/chunk-qjw21x98.js.map +9 -0
  119. package/bin/{chunk-e8xahsbg.js.map → chunk-qnz1bxd8.js.map} +2 -2
  120. package/bin/chunk-qsee8ghh.js.map +9 -0
  121. package/bin/{chunk-d2b3wd2q.js.map → chunk-qt2h927m.js.map} +1 -1
  122. package/bin/{chunk-qfbth2hc.js.map → chunk-qv8tfqzb.js.map} +2 -2
  123. package/bin/{chunk-z8624k76.js.map → chunk-r8y45bpd.js.map} +1 -1
  124. package/bin/{chunk-bv6f8mp7.js.map → chunk-rdvn30xx.js.map} +1 -1
  125. package/bin/{chunk-55n12zjn.js.map → chunk-rem3r2ke.js.map} +2 -2
  126. package/bin/{chunk-8257tbzy.js.map → chunk-rjedvemj.js.map} +2 -2
  127. package/bin/{chunk-6xsfk6xf.js.map → chunk-rx93gb4n.js.map} +3 -6
  128. package/bin/{chunk-b0f9yxmd.js.map → chunk-rys9sxdh.js.map} +2 -2
  129. package/bin/{chunk-ez683gpw.js.map → chunk-s1nnhawg.js.map} +2 -2
  130. package/bin/{chunk-rb8g67rn.js.map → chunk-s5gvmfg3.js.map} +1 -1
  131. package/bin/{chunk-z4pfyvdt.js.map → chunk-sb1p4n26.js.map} +2 -2
  132. package/bin/{chunk-wwqbzm6a.js.map → chunk-stemmahm.js.map} +1 -1
  133. package/bin/{chunk-1v0wx4g7.js.map → chunk-swdswq2s.js.map} +2 -2
  134. package/bin/{chunk-h4a8ncwv.js.map → chunk-sz9sv23a.js.map} +1 -1
  135. package/bin/chunk-t0js2h0x.js.map +9 -0
  136. package/bin/{chunk-svc6b5zz.js.map → chunk-t61xv9gg.js.map} +1 -1
  137. package/bin/{chunk-n6ez4zwv.js.map → chunk-vwcy664j.js.map} +1 -1
  138. package/bin/chunk-w0g55qhh.js.map +9 -0
  139. package/bin/chunk-wfv63d0v.js.map +9 -0
  140. package/bin/{chunk-x1z9q0xt.js.map → chunk-wtbjzm53.js.map} +1 -1
  141. package/bin/{chunk-jb52qddd.js.map → chunk-wybrd18c.js.map} +2 -2
  142. package/bin/{chunk-se8x72p4.js.map → chunk-xcsndda4.js.map} +2 -2
  143. package/bin/{chunk-g8r1za5z.js.map → chunk-xdwr90k4.js.map} +1 -1
  144. package/bin/{chunk-pvs1at3w.js.map → chunk-xhsynmg0.js.map} +1 -1
  145. package/bin/{chunk-48c1x0jv.js.map → chunk-ychv7rak.js.map} +2 -2
  146. package/bin/{chunk-ck4qx8dc.js.map → chunk-yehw6nax.js.map} +1 -1
  147. package/bin/{chunk-dbg8jrjh.js.map → chunk-yghrdbys.js.map} +1 -1
  148. package/bin/{chunk-ak3539e9.js.map → chunk-yqt6henw.js.map} +1 -1
  149. package/bin/chunk-zbjb256b.js.map +9 -0
  150. package/bin/{chunk-2rpcbx8t.js.map → chunk-zgf7kdrj.js.map} +1 -1
  151. package/bin/chunk-zhvcqj0q.js.map +9 -0
  152. package/bin/chunk-zqc04gwf.js.map +60 -0
  153. package/bin/{chunk-2qyrzjxd.js.map → chunk-zvxbwcsb.js.map} +2 -2
  154. package/bin/index.js.map +2 -2
  155. package/bin/lildax +0 -0
  156. package/bin/parser.worker.js.map +1 -1
  157. package/package.json +1 -1
  158. package/bin/chunk-4rxmd0jf.js.map +0 -9
  159. package/bin/chunk-62gzrntd.js.map +0 -9
  160. package/bin/chunk-72k04pp5.js.map +0 -9
  161. package/bin/chunk-789rbqnv.js.map +0 -9
  162. package/bin/chunk-8zfk2s84.js.map +0 -9
  163. package/bin/chunk-cbagtvm0.js.map +0 -9
  164. package/bin/chunk-cn8h4k4c.js.map +0 -9
  165. package/bin/chunk-dbsaw841.js.map +0 -9
  166. package/bin/chunk-hy2fbqh5.js.map +0 -9
  167. package/bin/chunk-jk11w70c.js.map +0 -9
  168. package/bin/chunk-mjgpytxy.js.map +0 -9
  169. package/bin/chunk-s9987b4a.js.map +0 -9
  170. package/bin/chunk-snpj1wx0.js.map +0 -9
  171. package/bin/chunk-tc1dtvdt.js.map +0 -9
  172. package/bin/chunk-vt7s4zqh.js.map +0 -9
  173. package/bin/chunk-vw8t9c6q.js.map +0 -23
  174. /package/bin/{chunk-mmjnd00g.js.map → chunk-0j2z4c6m.js.map} +0 -0
  175. /package/bin/{chunk-hg33f0me.js.map → chunk-3mz1tnad.js.map} +0 -0
  176. /package/bin/{chunk-739rgk4j.js.map → chunk-4bn3kj1m.js.map} +0 -0
  177. /package/bin/{chunk-ceyh19m4.js.map → chunk-70c010v4.js.map} +0 -0
  178. /package/bin/{chunk-0y4mpb71.js.map → chunk-c7hn1ayf.js.map} +0 -0
  179. /package/bin/{chunk-dgbcsqv5.js.map → chunk-ecbk06fn.js.map} +0 -0
  180. /package/bin/{chunk-dfeq3x3s.js.map → chunk-eeqacqws.js.map} +0 -0
  181. /package/bin/{chunk-j0mdv0fg.js.map → chunk-fe5fh1j3.js.map} +0 -0
  182. /package/bin/{chunk-qk4a2yxz.js.map → chunk-kpw1tm9n.js.map} +0 -0
  183. /package/bin/{chunk-xr4xvjwq.js.map → chunk-p2a3txy0.js.map} +0 -0
  184. /package/bin/{chunk-pb2v8f5g.js.map → chunk-qf3xwqzr.js.map} +0 -0
  185. /package/bin/{chunk-08kwcnfp.js.map → chunk-vh7bfqmh.js.map} +0 -0
  186. /package/bin/{chunk-fbpdepn7.js.map → chunk-ypjzed98.js.map} +0 -0
  187. /package/bin/{chunk-rbp7r2yk.js.map → chunk-zrwgc9n7.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Etag.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Cookies.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Headers.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpClientError.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/UrlParams.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpBody.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpMethod.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpClientRequest.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpIncomingMessage.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpClientResponse.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpTraceContext.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpClient.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/ErrorReporter.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Template.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServerResponse.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpPlatform.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServer.js", "../../node_modules/.bun/find-my-way-ts@0.1.6/node_modules/find-my-way-ts/dist/esm/QueryString.js", "../../node_modules/.bun/find-my-way-ts@0.1.6/node_modules/find-my-way-ts/dist/esm/internal/router.js", "../../node_modules/.bun/find-my-way-ts@0.1.6/node_modules/find-my-way-ts/dist/esm/index.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServerRespondable.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServerError.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/socket/Socket.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/internal/contentType.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/internal/headers.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/internal/search.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/internal/multipart.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/index.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Multipart.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServerRequest.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/internal/preResponseHandler.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpMiddleware.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpEffect.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpRouter.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/FetchHttpClient.js", "../core/src/global.ts", "../../node_modules/.bun/xdg-basedir@5.1.0/node_modules/xdg-basedir/index.js", "../core/src/util/flock.ts", "../core/src/util/hash.ts", "../core/src/flag/flag.ts", "../core/src/installation/version.ts", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/Stdio.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/Terminal.js"],
3
+ "sources": ["../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Etag.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Cookies.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Headers.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpClientError.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/UrlParams.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpBody.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpMethod.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpClientRequest.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpIncomingMessage.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpClientResponse.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpTraceContext.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpClient.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/ErrorReporter.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Template.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServerResponse.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpPlatform.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServer.js", "../core/src/installation/version.ts", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/FetchHttpClient.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServerRespondable.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServerError.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/socket/Socket.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/internal/contentType.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/internal/headers.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/internal/search.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/internal/multipart.js", "../../node_modules/.bun/multipasta@0.2.7/node_modules/multipasta/dist/esm/index.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/Multipart.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpServerRequest.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/internal/preResponseHandler.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpMiddleware.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/unstable/http/HttpEffect.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/Stdio.js", "../../node_modules/.bun/effect@4.0.0-beta.74/node_modules/effect/dist/Terminal.js"],
4
4
  "sourcesContent": [
5
5
  "/**\n * HTTP entity tag values and metadata-based generator layers.\n *\n * ETags are validators for a specific representation of a resource. Servers put\n * them in `ETag` response headers so clients and intermediaries can revalidate\n * cached content with `If-None-Match`, or protect writes with preconditions such\n * as `If-Match`.\n *\n * **Mental model**\n *\n * A strong ETag represents byte-for-byte identity for the selected\n * representation. A weak ETag represents a validator that is useful for cache\n * revalidation but not for operations that require exact byte identity. The\n * `Weak` and `Strong` models store the raw tag value; `toString` adds the\n * required quotes and the `W/` prefix for weak tags.\n *\n * **Common tasks**\n *\n * - Format an `Etag` value for an HTTP header with `toString`.\n * - Provide a `Generator` service with `layer` for strong metadata-derived tags.\n * - Use `layerWeak` when size and modification time are good cache validators\n * but not a byte-for-byte guarantee.\n *\n * **Gotchas**\n *\n * The built-in generator derives tags only from file size and modification time.\n * Choose the strong layer only when that metadata changes for every byte-level\n * content change. This module formats ETags but does not parse incoming ETag\n * headers or implement conditional request logic.\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Layer from \"../../Layer.js\";\nimport * as Option from \"../../Option.js\";\n/**\n * Formats an `Etag` as an HTTP header value, including quotes and the `W/` prefix for weak tags.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toString = self => {\n switch (self._tag) {\n case \"Weak\":\n return `W/\"${self.value}\"`;\n case \"Strong\":\n return `\"${self.value}\"`;\n }\n};\n/**\n * Service for generating ETags from filesystem file information or Web `File`-like metadata.\n *\n * @category models\n * @since 4.0.0\n */\nexport class Generator extends /*#__PURE__*/Context.Service()(\"effect/http/Etag/Generator\") {}\nconst fromFileInfo = info => {\n const mtime = Option.match(info.mtime, {\n onNone: () => \"0\",\n onSome: mtime => mtime.getTime().toString(16)\n });\n return `${info.size.toString(16)}-${mtime}`;\n};\nconst fromFileWeb = file => {\n return `${file.size.toString(16)}-${file.lastModified.toString(16)}`;\n};\n/**\n * Layer that provides a `Generator` which produces strong ETags from file size\n * and modification time metadata.\n *\n * **When to use**\n *\n * Use when file size and modification time reliably change for every byte-level\n * change and the consuming HTTP code needs strong ETags from the `Generator`\n * service.\n *\n * **Gotchas**\n *\n * This layer marks metadata-derived tags as strong. If the underlying storage\n * can update file contents without changing the recorded size or modification\n * time, those tags can stop representing byte-for-byte identity.\n *\n * @see {@link layerWeak} for weak metadata-derived ETags when byte-for-byte identity is not required\n * @see {@link Generator} for the service provided by this layer\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layer = /*#__PURE__*/Layer.succeed(Generator)({\n fromFileInfo(info) {\n return Effect.sync(() => ({\n _tag: \"Strong\",\n value: fromFileInfo(info)\n }));\n },\n fromFileWeb(file) {\n return Effect.sync(() => ({\n _tag: \"Strong\",\n value: fromFileWeb(file)\n }));\n }\n});\n/**\n * Layer that provides a `Generator` which produces weak ETags from file size and modification time metadata.\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layerWeak = /*#__PURE__*/Layer.succeed(Generator)({\n fromFileInfo(info) {\n return Effect.sync(() => ({\n _tag: \"Weak\",\n value: fromFileInfo(info)\n }));\n },\n fromFileWeb(file) {\n return Effect.sync(() => ({\n _tag: \"Weak\",\n value: fromFileWeb(file)\n }));\n }\n});\n//# sourceMappingURL=Etag.js.map",
6
6
  "/**\n * Immutable HTTP cookie values and collections for request and response\n * workflows.\n *\n * The module models a validated {@link Cookie}, an immutable {@link Cookies}\n * collection keyed by cookie name, and the conversions needed around HTTP\n * headers. Use it to read request `Cookie` headers, build cookies with standard\n * attributes, merge or remove cookies immutably, expire cookies, and emit\n * response `Set-Cookie` headers.\n *\n * **Mental model**\n *\n * - A `Cookie` stores both the decoded `value` and the encoded `valueEncoded`\n * used in headers\n * - A `Cookies` collection contains at most one cookie per name; later writes,\n * merges, and iterable inputs replace earlier cookies with the same name\n * - `Cookie` request headers carry name/value pairs, while `Set-Cookie`\n * response headers carry one cookie plus optional attributes\n * - Safe constructors return `Result` failures for invalid names, values,\n * domains, paths, or infinite `Max-Age` values\n *\n * **Common tasks**\n *\n * - Create cookies: {@link makeCookie}, {@link makeCookieUnsafe}\n * - Build collections: {@link empty}, {@link fromIterable},\n * {@link fromSetCookie}, {@link fromReadonlyRecord}\n * - Read values: {@link get}, {@link getValue}, {@link toRecord},\n * {@link isEmpty}\n * - Update collections: {@link set}, {@link setUnsafe}, {@link setAll},\n * {@link setCookie}, {@link setAllCookie}, {@link remove}, {@link merge}\n * - Expire cookies: {@link expireCookie}, {@link expireCookieUnsafe}\n * - Encode and decode headers: {@link toCookieHeader},\n * {@link toSetCookieHeaders}, {@link serializeCookie}, {@link parseHeader}\n *\n * **Gotchas**\n *\n * - Use {@link toCookieHeader} for an outbound request `Cookie` header and\n * {@link toSetCookieHeaders} for response `Set-Cookie` headers.\n * - Parsing is intentionally tolerant: malformed `Set-Cookie` input can be\n * ignored, unsupported attributes are skipped, and percent-decoding falls\n * back to the original text.\n * - Security attributes such as `HttpOnly`, `Secure`, `SameSite`, and\n * `Partitioned` are serialized when present, but browser policy enforces\n * their final behavior.\n *\n * **Example** (Serializing a session cookie)\n *\n * ```ts\n * import { Cookies } from \"effect/unstable/http\"\n *\n * const cookies = Cookies.setUnsafe(Cookies.empty, \"session\", \"abc123\", {\n * httpOnly: true,\n * path: \"/\",\n * sameSite: \"lax\",\n * secure: true\n * })\n *\n * console.log(Cookies.toSetCookieHeaders(cookies))\n * // [\"session=abc123; Path=/; HttpOnly; Secure; SameSite=Lax\"]\n * ```\n *\n * @since 4.0.0\n */\nimport * as Data from \"../../Data.js\";\nimport * as Duration from \"../../Duration.js\";\nimport { dual } from \"../../Function.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Record from \"../../Record.js\";\nimport * as Result from \"../../Result.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as Transformation from \"../../SchemaTransformation.js\";\nconst TypeId = \"~effect/http/Cookies\";\n/**\n * Returns `true` when a value is a `Cookies` collection.\n *\n * @category refinements\n * @since 4.0.0\n */\nexport const isCookies = u => Predicate.hasProperty(u, TypeId);\n/**\n * Schema for `Cookies` collections.\n *\n * **Details**\n *\n * JSON encoding uses `Set-Cookie` header strings, while isomorphic encoding uses\n * a readonly record of cookie values.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const CookiesSchema = /*#__PURE__*/Schema.declare(isCookies, {\n typeConstructor: {\n _tag: \"effect/http/Cookies\"\n },\n generation: {\n runtime: `Cookies.CookiesSchema`,\n Type: `Cookies.Cookies`,\n Encoded: `typeof Cookies.CookiesSchema[\"Encoded\"]`,\n importDeclaration: `import * as Cookies from \"effect/unstable/http/Cookies\"`\n },\n expected: \"Cookies\",\n toCodecJson: () => Schema.link()(Schema.Array(Schema.String), Transformation.transform({\n decode: input => fromSetCookie(input),\n encode: cookies => toSetCookieHeaders(cookies)\n })),\n toCodecIso: () => Schema.link()(Schema.Record(Schema.String, CookieSchema), Transformation.transform({\n decode: input => fromReadonlyRecord(input),\n encode: cookies => cookies.cookies\n }))\n});\nconst CookieTypeId = \"~effect/http/Cookies/Cookie\";\n/**\n * Returns `true` when a value is a `Cookie`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isCookie = u => Predicate.hasProperty(u, CookieTypeId);\n/**\n * Schema for `Cookie` values.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const CookieSchema = /*#__PURE__*/Schema.declare(isCookie, {\n typeConstructor: {\n _tag: \"effect/http/Cookie\"\n },\n generation: {\n runtime: `Cookies.CookieSchema`,\n Type: `Cookies.Cookie`,\n importDeclaration: `import * as Cookie from \"effect/unstable/http/Cookies\"`\n },\n expected: \"Cookie\"\n});\nconst CookieErrorTypeId = \"~effect/http/Cookies/CookieError\";\n/**\n * Error reason describing why cookie construction failed, such as invalid name,\n * value, domain, path, or infinite max-age.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class CookiesErrorReason extends Data.Error {}\n/**\n * Error returned when a cookie name, value, domain, path, or max-age option is invalid.\n *\n * **Details**\n *\n * Inspect `reason` to determine the specific validation failure.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class CookiesError extends /*#__PURE__*/Data.TaggedError(\"CookieError\") {\n /**\n * Creates a cookie error from a reason tag and optional cause.\n *\n * @since 4.0.0\n */\n static fromReason(reason, cause) {\n return new CookiesError({\n reason: new CookiesErrorReason({\n _tag: reason,\n cause\n })\n });\n }\n /**\n * Marks this value as a cookie validation error for runtime guards.\n *\n * @since 4.0.0\n */\n [CookieErrorTypeId] = CookieErrorTypeId;\n /**\n * Uses the concrete cookie error reason as the public message.\n *\n * @since 4.0.0\n */\n get message() {\n return this.reason._tag;\n }\n}\nconst Proto = {\n [TypeId]: TypeId,\n ...Inspectable.BaseProto,\n toJSON() {\n return {\n _id: \"effect/Cookies\",\n cookies: Record.map(this.cookies, cookie => cookie.toJSON())\n };\n },\n pipe() {\n return pipeArguments(this, arguments);\n }\n};\n/**\n * Creates a `Cookies` collection from an existing readonly record of cookies keyed by cookie name.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fromReadonlyRecord = cookies => {\n const self = Object.create(Proto);\n self.cookies = cookies;\n return self;\n};\n/**\n * Create a Cookies object from an Iterable\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fromIterable = cookies => {\n const record = {};\n for (const cookie of cookies) {\n record[cookie.name] = cookie;\n }\n return fromReadonlyRecord(record);\n};\n/**\n * Create a Cookies object from a set of Set-Cookie headers\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fromSetCookie = headers => {\n const arrayHeaders = typeof headers === \"string\" ? [headers] : headers;\n const cookies = [];\n for (const header of arrayHeaders) {\n const cookie = parseSetCookie(header.trim());\n if (cookie) {\n cookies.push(cookie);\n }\n }\n return fromIterable(cookies);\n};\nfunction parseSetCookie(header) {\n const parts = header.split(\";\").map(_ => _.trim()).filter(_ => _ !== \"\");\n if (parts.length === 0) {\n return undefined;\n }\n const firstEqual = parts[0].indexOf(\"=\");\n if (firstEqual === -1) {\n return undefined;\n }\n const name = parts[0].slice(0, firstEqual);\n if (!fieldContentRegExp.test(name)) {\n return undefined;\n }\n const valueEncoded = parts[0].slice(firstEqual + 1);\n const value = tryDecodeURIComponent(valueEncoded);\n if (parts.length === 1) {\n return Object.assign(Object.create(CookieProto), {\n name,\n value,\n valueEncoded\n });\n }\n const options = {};\n for (let i = 1; i < parts.length; i++) {\n const part = parts[i];\n const equalIndex = part.indexOf(\"=\");\n const key = equalIndex === -1 ? part : part.slice(0, equalIndex).trim();\n const value = equalIndex === -1 ? undefined : part.slice(equalIndex + 1).trim();\n switch (key.toLowerCase()) {\n case \"domain\":\n {\n if (value === undefined) {\n break;\n }\n const domain = value.trim().replace(/^\\./, \"\");\n if (domain) {\n options.domain = domain;\n }\n break;\n }\n case \"expires\":\n {\n if (value === undefined) {\n break;\n }\n const date = new Date(value);\n if (!isNaN(date.getTime())) {\n options.expires = date;\n }\n break;\n }\n case \"max-age\":\n {\n if (value === undefined) {\n break;\n }\n const maxAge = parseInt(value, 10);\n if (!isNaN(maxAge)) {\n options.maxAge = Duration.seconds(maxAge);\n }\n break;\n }\n case \"path\":\n {\n if (value === undefined) {\n break;\n }\n if (value[0] === \"/\") {\n options.path = value;\n }\n break;\n }\n case \"priority\":\n {\n if (value === undefined) {\n break;\n }\n switch (value.toLowerCase()) {\n case \"low\":\n options.priority = \"low\";\n break;\n case \"medium\":\n options.priority = \"medium\";\n break;\n case \"high\":\n options.priority = \"high\";\n break;\n }\n break;\n }\n case \"httponly\":\n {\n options.httpOnly = true;\n break;\n }\n case \"secure\":\n {\n options.secure = true;\n break;\n }\n case \"partitioned\":\n {\n options.partitioned = true;\n break;\n }\n case \"samesite\":\n {\n if (value === undefined) {\n break;\n }\n switch (value.toLowerCase()) {\n case \"lax\":\n options.sameSite = \"lax\";\n break;\n case \"strict\":\n options.sameSite = \"strict\";\n break;\n case \"none\":\n options.sameSite = \"none\";\n break;\n }\n break;\n }\n }\n }\n return Object.assign(Object.create(CookieProto), {\n name,\n value,\n valueEncoded,\n options: Object.keys(options).length > 0 ? options : undefined\n });\n}\n/**\n * An empty Cookies object\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const empty = /*#__PURE__*/fromIterable([]);\n/**\n * Returns `true` when the `Cookies` collection contains no cookies.\n *\n * @category refinements\n * @since 4.0.0\n */\nexport const isEmpty = self => Record.isEmptyRecord(self.cookies);\n// oxlint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst CookieProto = {\n [CookieTypeId]: CookieTypeId,\n ...Inspectable.BaseProto,\n toJSON() {\n return {\n _id: \"effect/Cookies/Cookie\",\n name: this.name,\n value: this.value,\n options: this.options\n };\n }\n};\n/**\n * Creates a cookie, validating the name, encoded value, domain, path, and finite `maxAge`.\n *\n * **Details**\n *\n * Returns a `CookiesError` in the `Result` failure channel when validation fails.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport function makeCookie(name, value, options) {\n if (!fieldContentRegExp.test(name)) {\n return Result.fail(CookiesError.fromReason(\"InvalidCookieName\"));\n }\n const encodedValue = encodeURIComponent(value);\n if (encodedValue && !fieldContentRegExp.test(encodedValue)) {\n return Result.fail(CookiesError.fromReason(\"InvalidCookieValue\"));\n }\n if (options !== undefined) {\n if (options.domain !== undefined && !fieldContentRegExp.test(options.domain)) {\n return Result.fail(CookiesError.fromReason(\"InvalidCookieDomain\"));\n }\n if (options.path !== undefined && !fieldContentRegExp.test(options.path)) {\n return Result.fail(CookiesError.fromReason(\"InvalidCookiePath\"));\n }\n if (options.maxAge !== undefined && !Duration.isFinite(Duration.fromInputUnsafe(options.maxAge))) {\n return Result.fail(CookiesError.fromReason(\"CookieInfinityMaxAge\"));\n }\n }\n return Result.succeed(Object.assign(Object.create(CookieProto), {\n name,\n value,\n valueEncoded: encodedValue,\n options\n }));\n}\n/**\n * Create a new cookie, throwing an error if invalid\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const makeCookieUnsafe = (name, value, options) => Result.getOrThrow(makeCookie(name, value, options));\n/**\n * Adds a cookie to a Cookies object\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setCookie = /*#__PURE__*/dual(2, (self, cookie) => fromReadonlyRecord(Record.set(self.cookies, cookie.name, cookie)));\n/**\n * Adds multiple cookies to a Cookies object\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setAllCookie = /*#__PURE__*/dual(2, (self, cookies) => {\n const record = {\n ...self.cookies\n };\n for (const cookie of cookies) {\n record[cookie.name] = cookie;\n }\n return fromReadonlyRecord(record);\n});\n/**\n * Combines two Cookies objects, removing duplicates from the first\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const merge = /*#__PURE__*/dual(2, (self, that) => fromReadonlyRecord({\n ...self.cookies,\n ...that.cookies\n}));\n/**\n * Removes a cookie by name\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const remove = /*#__PURE__*/dual(2, (self, name) => fromReadonlyRecord(Record.remove(self.cookies, name)));\n/**\n * Gets a cookie from a Cookies object safely.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const get = /*#__PURE__*/dual(args => isCookies(args[0]), (self, name) => Option.fromUndefinedOr(self.cookies[name]));\n/**\n * Gets the decoded value of a cookie by name safely.\n *\n * **Details**\n *\n * Returns `Option.none()` when the cookie is not present.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const getValue = /*#__PURE__*/dual(args => isCookies(args[0]), (self, name) => Option.map(get(self, name), cookie => cookie.value));\n/**\n * Creates and adds a cookie safely by name and value.\n *\n * **Details**\n *\n * The cookie fields are validated first; invalid input returns a `CookiesError` in the `Result` failure channel.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const set = /*#__PURE__*/dual(args => isCookies(args[0]), (self, name, value, options) => Result.map(makeCookie(name, value, options), cookie => fromReadonlyRecord(Record.set(self.cookies, name, cookie))));\n/**\n * Creates and adds a cookie by name and value, throwing if the cookie fields are invalid.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setUnsafe = /*#__PURE__*/dual(args => isCookies(args[0]), (self, name, value, options) => fromReadonlyRecord(Record.set(self.cookies, name, makeCookieUnsafe(name, value, options))));\n/**\n * Adds an expired cookie safely with an empty value, `Max-Age=0`, and an epoch `Expires` value.\n *\n * **Details**\n *\n * Returns a `CookiesError` in the `Result` failure channel when the name or options are invalid.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const expireCookie = /*#__PURE__*/dual(args => isCookies(args[0]), (self, name, options) => set(self, name, \"\", {\n ...options,\n maxAge: 0,\n expires: new Date(0)\n}));\n/**\n * Adds an expired cookie to a Cookies object, throwing an error if invalid\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const expireCookieUnsafe = /*#__PURE__*/dual(args => isCookies(args[0]), (self, name, options) => setUnsafe(self, name, \"\", {\n ...options,\n maxAge: 0,\n expires: new Date(0)\n}));\n/**\n * Creates and adds multiple cookies safely from name/value/options tuples.\n *\n * **Details**\n *\n * If any tuple is invalid, returns the first `CookiesError` and leaves the original collection unchanged.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setAll = /*#__PURE__*/dual(2, (self, cookies) => {\n const record = {\n ...self.cookies\n };\n for (const [name, value, options] of cookies) {\n const result = makeCookie(name, value, options);\n if (Result.isFailure(result)) {\n return result;\n }\n record[name] = result.success;\n }\n return Result.succeed(fromReadonlyRecord(record));\n});\n/**\n * Adds multiple cookies to a Cookies object, throwing an error if invalid\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setAllUnsafe = /*#__PURE__*/dual(2, (self, cookies) => Result.getOrThrow(setAll(self, cookies)));\n/**\n * Serializes a cookie into a string.\n *\n * **Details**\n *\n * Adapted from https://github.com/fastify/fastify-cookie under MIT License\n *\n * @category encoding\n * @since 4.0.0\n */\nexport function serializeCookie(self) {\n let str = self.name + \"=\" + self.valueEncoded;\n if (self.options === undefined) {\n return str;\n }\n const options = self.options;\n if (options.maxAge !== undefined) {\n const maxAge = Duration.toSeconds(Duration.fromInputUnsafe(options.maxAge));\n str += \"; Max-Age=\" + Math.trunc(maxAge);\n }\n if (options.domain !== undefined) {\n str += \"; Domain=\" + options.domain;\n }\n if (options.path !== undefined) {\n str += \"; Path=\" + options.path;\n }\n if (options.priority !== undefined) {\n switch (options.priority) {\n case \"low\":\n str += \"; Priority=Low\";\n break;\n case \"medium\":\n str += \"; Priority=Medium\";\n break;\n case \"high\":\n str += \"; Priority=High\";\n break;\n }\n }\n if (options.expires !== undefined) {\n str += \"; Expires=\" + options.expires.toUTCString();\n }\n if (options.httpOnly) {\n str += \"; HttpOnly\";\n }\n if (options.secure) {\n str += \"; Secure\";\n }\n // Draft implementation to support Chrome from 2024-Q1 forward.\n // See https://datatracker.ietf.org/doc/html/draft-cutler-httpbis-partitioned-cookies#section-2.1\n if (options.partitioned) {\n str += \"; Partitioned\";\n }\n if (options.sameSite !== undefined) {\n switch (options.sameSite) {\n case \"lax\":\n str += \"; SameSite=Lax\";\n break;\n case \"strict\":\n str += \"; SameSite=Strict\";\n break;\n case \"none\":\n str += \"; SameSite=None\";\n break;\n }\n }\n return str;\n}\n/**\n * Serializes a `Cookies` object into a Cookie header.\n *\n * @category encoding\n * @since 4.0.0\n */\nexport const toCookieHeader = self => Object.values(self.cookies).map(cookie => `${cookie.name}=${cookie.valueEncoded}`).join(\"; \");\n/**\n * Converts a `Cookies` collection to a record of decoded cookie values keyed by cookie name.\n *\n * @category encoding\n * @since 4.0.0\n */\nexport const toRecord = self => {\n const record = {};\n const cookies = Object.values(self.cookies);\n for (let index = 0; index < cookies.length; index++) {\n const cookie = cookies[index];\n record[cookie.name] = cookie.value;\n }\n return record;\n};\n/**\n * Schema for transforming `Cookies` into records of decoded string values keyed\n * by cookie name.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaRecord = /*#__PURE__*/CookiesSchema.pipe(/*#__PURE__*/Schema.decodeTo(/*#__PURE__*/Schema.Record(Schema.String, Schema.String), /*#__PURE__*/Transformation.transform({\n decode: toRecord,\n encode: self => fromIterable(Object.entries(self).map(([name, value]) => makeCookieUnsafe(name, value)))\n})));\n/**\n * Serializes a `Cookies` collection into an array of `Set-Cookie` header values.\n *\n * @category encoding\n * @since 4.0.0\n */\nexport const toSetCookieHeaders = self => Object.values(self.cookies).map(serializeCookie);\n/**\n * Parses a cookie header into a record of key-value pairs\n *\n * **Details**\n *\n * Adapted from https://github.com/fastify/fastify-cookie under MIT License\n *\n * @category decoding\n * @since 4.0.0\n */\nexport function parseHeader(header) {\n const result = {};\n const strLen = header.length;\n let pos = 0;\n let terminatorPos = 0;\n while (true) {\n if (terminatorPos === strLen) break;\n terminatorPos = header.indexOf(\";\", pos);\n if (terminatorPos === -1) terminatorPos = strLen; // This is the last pair\n let eqIdx = header.indexOf(\"=\", pos);\n if (eqIdx === -1) break; // No key-value pairs left\n if (eqIdx > terminatorPos) {\n // Malformed key-value pair\n pos = terminatorPos + 1;\n continue;\n }\n const key = header.substring(pos, eqIdx++).trim();\n if (result[key] === undefined) {\n const val = header.charCodeAt(eqIdx) === 0x22 ? header.substring(eqIdx + 1, terminatorPos - 1).trim() : header.substring(eqIdx, terminatorPos).trim();\n result[key] = !(val.indexOf(\"%\") === -1) ? tryDecodeURIComponent(val) : val;\n }\n pos = terminatorPos + 1;\n }\n return result;\n}\nconst tryDecodeURIComponent = str => {\n try {\n return decodeURIComponent(str);\n // oxlint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (_) {\n return str;\n }\n};\n//# sourceMappingURL=Cookies.js.map",
@@ -19,9 +19,8 @@
19
19
  "/**\n * The `HttpServerResponse` module provides immutable response values for Effect\n * HTTP servers. Handlers return an {@link HttpServerResponse}, then the runtime\n * converts it to a platform response such as a Web `Response`.\n *\n * **Mental model**\n *\n * - A response is a status, optional status text, headers, cookies, and an HTTP\n * body.\n * - Constructors set practical defaults: {@link empty} uses `204`,\n * {@link redirect} uses `302`, and body constructors use `200`.\n * - Body metadata is reflected into headers when a response is created or when\n * the body is replaced.\n * - Cookies are stored separately from the normal header map and become\n * `Set-Cookie` headers during conversion.\n * - Constructors that encode data can return effects when encoding may fail.\n *\n * **Common tasks**\n *\n * - Create empty, redirect, text, HTML, JSON, or URL-encoded responses with\n * {@link empty}, {@link redirect}, {@link text}, {@link html}, {@link json},\n * {@link schemaJson}, or {@link urlParams}.\n * - Send binary, raw, form-data, stream, or file bodies with {@link uint8Array},\n * {@link raw}, {@link formData}, {@link stream}, {@link file}, or\n * {@link fileWeb}.\n * - Adjust status, headers, and bodies with {@link setStatus},\n * {@link setHeader}, {@link setHeaders}, and {@link setBody}.\n * - Manage cookies with {@link setCookie}, {@link expireCookie},\n * {@link removeCookie}, and their unsafe variants.\n * - Convert responses with {@link toWeb}, {@link fromWeb},\n * {@link toClientResponse}, and {@link fromClientResponse}.\n *\n * **Gotchas**\n *\n * - Body content type and content length override existing `content-type` and\n * `content-length` headers when body metadata is present.\n * - {@link json} and {@link schemaJson} capture encoding failures in the Effect\n * error channel; {@link jsonUnsafe} throws instead.\n * - {@link setCookie} and {@link expireCookie} validate cookie output in the\n * Effect error channel; unsafe cookie helpers throw on invalid cookies.\n * - `Set-Cookie` headers are produced from the response cookie collection, not\n * by manually editing the normal header map.\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as ErrorReporter from \"../../ErrorReporter.js\";\nimport { dual } from \"../../Function.js\";\nimport * as Inspectable from \"../../Inspectable.js\";\nimport { PipeInspectableProto } from \"../../internal/core.js\";\nimport * as Option from \"../../Option.js\";\nimport { pipeArguments } from \"../../Pipeable.js\";\nimport { hasProperty } from \"../../Predicate.js\";\nimport { redact } from \"../../Redactable.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as Cookies from \"./Cookies.js\";\nimport * as Headers from \"./Headers.js\";\nimport * as Body from \"./HttpBody.js\";\nimport * as HttpClientError from \"./HttpClientError.js\";\nimport * as HttpClientRequest from \"./HttpClientRequest.js\";\nimport * as HttpClientResponse from \"./HttpClientResponse.js\";\nimport * as HttpIncomingMessage from \"./HttpIncomingMessage.js\";\nimport * as Template from \"./Template.js\";\nimport * as UrlParams from \"./UrlParams.js\";\nconst TypeId = \"~effect/http/HttpServerResponse\";\n/**\n * Returns `true` when the supplied value is an `HttpServerResponse`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isHttpServerResponse = u => hasProperty(u, TypeId);\n/**\n * Creates an empty HTTP response.\n *\n * **Details**\n *\n * The default status is `204`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const empty = options => makeResponse({\n status: options?.status ?? 204,\n statusText: options?.statusText,\n headers: options?.headers ? Headers.fromInput(options.headers) : undefined,\n cookies: options?.cookies\n});\n/**\n * Creates a redirect response with a `Location` header.\n *\n * **Details**\n *\n * The default status is `302`; custom headers are merged with the generated\n * `Location` header.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const redirect = (location, options) => {\n const headers = Headers.fromRecordUnsafe({\n location: location.toString()\n });\n return makeResponse({\n status: options?.status ?? 302,\n statusText: options?.statusText,\n headers: options?.headers ? Headers.merge(headers, Headers.fromInput(options.headers)) : headers,\n cookies: options?.cookies ?? Cookies.empty\n });\n};\n/**\n * Creates an HTTP response whose body is a `Uint8Array`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const uint8Array = (body, options) => {\n const headers = options?.headers ? Headers.fromInput(options.headers) : Headers.empty;\n return makeResponse({\n status: options?.status ?? 200,\n statusText: options?.statusText,\n headers,\n cookies: options?.cookies ?? Cookies.empty,\n body: Body.uint8Array(body, getContentType(options, headers))\n });\n};\nconst getContentType = (options, headers) => {\n if (options?.contentType) {\n return options.contentType;\n } else if (options?.headers) {\n return headers[\"content-type\"];\n }\n};\n/**\n * Creates an HTTP response whose body is a string.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const text = (body, options) => {\n const headers = options?.headers ? Headers.fromInput(options.headers) : Headers.empty;\n return makeResponse({\n status: options?.status ?? 200,\n statusText: options?.statusText,\n headers,\n cookies: options?.cookies ?? Cookies.empty,\n body: Body.text(body, getContentType(options, headers))\n });\n};\n/**\n * Creates an HTML response with the `text/html` content type.\n *\n * **Details**\n *\n * Passing a string returns a response directly. Using it as a template tag returns\n * an effect so interpolated values can be rendered with their required services\n * and errors.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const html = (strings, ...args) => {\n if (typeof strings === \"string\") {\n return text(strings, {\n contentType: \"text/html\"\n });\n }\n return Effect.map(Template.make(strings, ...args), _ => text(_, {\n contentType: \"text/html\"\n }));\n};\n/**\n * Creates a streaming HTML response from a template.\n *\n * **Details**\n *\n * The template is encoded as a byte stream and can use streaming interpolated\n * values from the current context.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const htmlStream = (strings, ...args) => Effect.map(Effect.context(), context => stream(Stream.provideContext(Stream.encodeText(Template.stream(strings, ...args)), context), {\n contentType: \"text/html\"\n}));\n/**\n * Creates a JSON HTTP response.\n *\n * **Details**\n *\n * The body is serialized with `JSON.stringify`; serialization errors are captured\n * as `HttpBodyError` failures.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const json = (body, options) => {\n const headers = options?.headers ? Headers.fromInput(options.headers) : Headers.empty;\n return Effect.map(Body.json(body, getContentType(options, headers)), body => makeResponse({\n status: options?.status ?? 200,\n statusText: options?.statusText,\n headers,\n cookies: options?.cookies,\n body\n }));\n};\n/**\n * Creates a JSON response constructor backed by a schema encoder.\n *\n * **Details**\n *\n * The returned function encodes the value with the supplied schema before\n * serializing it as JSON, and can fail with `HttpBodyError` if schema encoding or\n * JSON serialization fails.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const schemaJson = (schema, options) => {\n const encode = Body.jsonSchema(schema, options);\n return (body, options) => {\n const headers = options?.headers ? Headers.fromInput(options.headers) : Headers.empty;\n return Effect.map(encode(body, getContentType(options, headers)), body => makeResponse({\n status: options?.status ?? 200,\n statusText: options?.statusText,\n headers,\n cookies: options?.cookies,\n body\n }));\n };\n};\n/**\n * Creates a JSON HTTP response synchronously.\n *\n * **Gotchas**\n *\n * Unlike `json`, serialization errors from `JSON.stringify` are not captured in\n * `Effect`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const jsonUnsafe = (body, options) => {\n const headers = options?.headers ? Headers.fromInput(options.headers) : Headers.empty;\n return makeResponse({\n status: options?.status ?? 200,\n statusText: options?.statusText,\n headers,\n cookies: options?.cookies,\n body: Body.jsonUnsafe(body, getContentType(options, headers))\n });\n};\n/**\n * Creates a response from URL parameters using the\n * `application/x-www-form-urlencoded` content type by default.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const urlParams = (body, options) => {\n const headers = options?.headers ? Headers.fromInput(options.headers) : Headers.empty;\n return makeResponse({\n status: options?.status ?? 200,\n statusText: options?.statusText,\n headers,\n cookies: options?.cookies,\n body: Body.text(UrlParams.toString(UrlParams.fromInput(body)), getContentType(options, headers) ?? \"application/x-www-form-urlencoded\")\n });\n};\n/**\n * Creates a response with a raw body value.\n *\n * **When to use**\n *\n * Use when the underlying runtime already understands the body value, such\n * as a Web `Response`, `Blob`, or `ReadableStream`; the body is passed through\n * for later platform conversion.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const raw = (body, options) => makeResponse({\n status: options?.status ?? 200,\n statusText: options?.statusText,\n headers: options?.headers && Headers.fromInput(options.headers),\n cookies: options?.cookies,\n body: Body.raw(body, {\n contentType: options?.contentType,\n contentLength: options?.contentLength\n })\n});\n/**\n * Creates a response whose body is a Web `FormData` value.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const formData = (body, options) => makeResponse({\n status: options?.status ?? 200,\n statusText: options?.statusText,\n headers: options?.headers && Headers.fromInput(options.headers),\n cookies: options?.cookies,\n body: Body.formData(body)\n});\n/**\n * Creates a streaming response from a stream of byte chunks.\n *\n * **Details**\n *\n * Optional response metadata can supply the status, headers, content type, and\n * content length.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const stream = (body, options) => {\n const headers = options?.headers ? Headers.fromInput(options.headers) : Headers.empty;\n return makeResponse({\n status: options?.status ?? 200,\n statusText: options?.statusText,\n headers,\n cookies: options?.cookies,\n body: Body.stream(body, getContentType(options, headers), options?.contentLength)\n });\n};\nconst HttpPlatformKey = /*#__PURE__*/Context.Service(\"effect/http/HttpPlatform\");\n/**\n * Creates a streamed file response for a file system path.\n *\n * **Details**\n *\n * The effect requires `HttpPlatform`, can fail with a platform error, and supports\n * options for status, headers, offset, and byte range.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const file = (path, options) => Effect.flatMap(HttpPlatformKey, platform => platform.fileResponse(path, options));\n/**\n * Creates a streamed file response for a Web `File`-like value.\n *\n * **Details**\n *\n * The effect requires `HttpPlatform` and supports options for status, headers,\n * offset, and byte range.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fileWeb = (file, options) => Effect.flatMap(HttpPlatformKey, platform => platform.fileWebResponse(file, options));\n/**\n * Returns a response with the specified header set to the supplied value.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setHeader = /*#__PURE__*/dual(3, (self, key, value) => makeResponse({\n ...self,\n headers: Headers.set(self.headers, key, value)\n}));\n/**\n * Returns a response with all supplied headers set on the existing header map.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setHeaders = /*#__PURE__*/dual(2, (self, input) => makeResponse({\n ...self,\n headers: Headers.setAll(self.headers, input)\n}));\n/**\n * Returns a response with the cookie of the specified name removed.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const removeCookie = /*#__PURE__*/dual(2, (self, name) => makeResponse({\n ...self,\n cookies: Cookies.remove(self.cookies, name)\n}));\n/**\n * Returns a response with its cookie collection replaced by the supplied cookies.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const replaceCookies = /*#__PURE__*/dual(2, (self, cookies) => makeResponse({\n ...self,\n cookies\n}));\n/**\n * Sets a cookie on the response.\n *\n * **Details**\n *\n * The effect fails with `CookiesError` if the cookie name, value, or options are\n * invalid.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setCookie = /*#__PURE__*/dual(args => isHttpServerResponse(args[0]), (self, name, value, options) => Effect.map(Effect.fromResult(Cookies.set(self.cookies, name, value, options)), cookies => makeResponse({\n ...self,\n cookies\n})));\n/**\n * Sets an expired cookie on an `HttpServerResponse`.\n *\n * **Details**\n *\n * Returns an effect because cookie encoding can fail. The original response is not\n * mutated; the effect succeeds with a response containing the updated cookie set.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const expireCookie = /*#__PURE__*/dual(args => isHttpServerResponse(args[0]), (self, name, options) => Effect.map(Effect.fromResult(Cookies.expireCookie(self.cookies, name, options)), cookies => makeResponse({\n ...self,\n cookies\n})));\n/**\n * Sets a cookie on an `HttpServerResponse`, throwing if the cookie cannot be\n * encoded.\n *\n * **When to use**\n *\n * Use when setting one trusted cookie and encoding failures should throw\n * instead of being represented as `CookiesError` failures.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setCookieUnsafe = /*#__PURE__*/dual(args => isHttpServerResponse(args[0]), (self, name, value, options) => makeResponse({\n ...self,\n cookies: Cookies.setUnsafe(self.cookies, name, value, options)\n}));\n/**\n * Sets an expired cookie on an `HttpServerResponse`, throwing if the expiration cookie\n * cannot be encoded.\n *\n * **When to use**\n *\n * Use when expiring one trusted cookie and encoding failures should throw\n * instead of being represented as `CookiesError` failures.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const expireCookieUnsafe = /*#__PURE__*/dual(args => isHttpServerResponse(args[0]), (self, name, options) => makeResponse({\n ...self,\n cookies: Cookies.expireCookieUnsafe(self.cookies, name, options)\n}));\n/**\n * Updates the cookies attached to an `HttpServerResponse` using the supplied\n * function.\n *\n * **Details**\n *\n * The original response is not mutated; a new response is returned with the\n * callback result as its cookie collection.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const updateCookies = /*#__PURE__*/dual(2, (self, f) => makeResponse({\n ...self,\n cookies: f(self.cookies)\n}));\n/**\n * Merges additional cookies into the cookies attached to an\n * `HttpServerResponse`.\n *\n * **Details**\n *\n * The original response is not mutated; a new response is returned with the merged\n * cookie collection.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const mergeCookies = /*#__PURE__*/dual(2, (self, cookies) => makeResponse({\n ...self,\n cookies: Cookies.merge(self.cookies, cookies)\n}));\n/**\n * Sets multiple cookies on an `HttpServerResponse`.\n *\n * **Details**\n *\n * Each input entry contains a cookie name, value, and optional cookie options. The\n * returned effect fails with `CookiesError` if any cookie cannot be encoded.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setCookies = /*#__PURE__*/dual(2, (self, cookies) => Effect.map(Effect.fromResult(Cookies.setAll(self.cookies, cookies)), cookies => makeResponse({\n ...self,\n cookies\n})));\n/**\n * Sets multiple cookies on an `HttpServerResponse`, throwing if any cookie cannot\n * be encoded.\n *\n * **When to use**\n *\n * Use when setting multiple trusted cookies and encoding failures should throw\n * instead of being represented as `CookiesError` failures.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setCookiesUnsafe = /*#__PURE__*/dual(2, (self, cookies) => makeResponse({\n ...self,\n cookies: Cookies.setAllUnsafe(self.cookies, cookies)\n}));\n/**\n * Replaces the body of an `HttpServerResponse`.\n *\n * **Details**\n *\n * When the body carries a content type or content length, the returned response\n * includes the corresponding headers.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setBody = /*#__PURE__*/dual(2, (self, body) => makeResponse({\n ...self,\n body\n}));\n/**\n * Sets the HTTP status code of an `HttpServerResponse`.\n *\n * **Details**\n *\n * When `statusText` is omitted, the existing status text is preserved.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const setStatus = /*#__PURE__*/dual(args => isHttpServerResponse(args[0]), (self, status, statusText) => makeResponse({\n ...self,\n status,\n statusText: statusText ?? self.statusText\n}));\n/**\n * Converts an `HttpServerResponse` to a Web `Response`.\n *\n * **Details**\n *\n * Cookies are appended as `Set-Cookie` headers. Stream bodies are converted using\n * the supplied context, and `withoutBody` can be used for responses such as HEAD\n * responses.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toWeb = (response, options) => {\n const headers = new globalThis.Headers(response.headers);\n if (!Cookies.isEmpty(response.cookies)) {\n const toAdd = Cookies.toSetCookieHeaders(response.cookies);\n for (const header of toAdd) {\n headers.append(\"set-cookie\", header);\n }\n }\n if (options?.withoutBody) {\n return new Response(undefined, {\n status: response.status,\n statusText: response.statusText,\n headers\n });\n }\n const body = response.body;\n switch (body._tag) {\n case \"Empty\":\n {\n return new Response(undefined, {\n status: response.status,\n statusText: response.statusText,\n headers\n });\n }\n case \"Uint8Array\":\n case \"Raw\":\n {\n if (body.body instanceof Response) {\n for (const [key, value] of headers) {\n body.body.headers.set(key, value);\n }\n return body.body;\n }\n return new Response(body.body, {\n status: response.status,\n statusText: response.statusText,\n headers\n });\n }\n case \"FormData\":\n {\n return new Response(body.formData, {\n status: response.status,\n statusText: response.statusText,\n headers\n });\n }\n case \"Stream\":\n {\n return new Response(Stream.toReadableStreamWith(body.stream, options?.context ?? Context.empty()), {\n status: response.status,\n statusText: response.statusText,\n headers\n });\n }\n }\n};\n/**\n * Wraps an `HttpServerResponse` as an `HttpClientResponse`.\n *\n * **Details**\n *\n * An optional request can be supplied for client-response metadata and decode\n * errors.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toClientResponse = (response, options) => new ServerHttpClientResponse(options?.request ?? HttpClientRequest.empty, response);\nclass ServerHttpClientResponse extends Inspectable.Class {\n [HttpIncomingMessage.TypeId];\n [HttpClientResponse.TypeId];\n request;\n response;\n constructor(request, response) {\n super();\n this.request = request;\n this.response = response;\n this[HttpIncomingMessage.TypeId] = HttpIncomingMessage.TypeId;\n this[HttpClientResponse.TypeId] = HttpClientResponse.TypeId;\n }\n toJSON() {\n return HttpIncomingMessage.inspect(this, {\n _id: \"HttpClientResponse\",\n request: this.request.toJSON(),\n status: this.status\n });\n }\n get status() {\n return this.response.status;\n }\n cachedHeaders;\n get headers() {\n return this.cachedHeaders ??= this.response.body._tag === \"FormData\" ? Headers.merge(this.response.headers, Headers.fromInput(this.getFormDataResponse().headers)) : this.response.headers;\n }\n get cookies() {\n return this.response.cookies;\n }\n get remoteAddress() {\n return Option.none();\n }\n get stream() {\n const body = this.response.body;\n switch (body._tag) {\n case \"Empty\":\n {\n return Stream.empty;\n }\n case \"Stream\":\n {\n return Stream.mapError(body.stream, cause => this.decodeError(cause));\n }\n case \"Uint8Array\":\n {\n return Stream.succeed(body.body);\n }\n case \"Raw\":\n {\n const rawBody = body.body;\n if (rawBody instanceof Response) {\n return rawBody.body ? Stream.fromReadableStream({\n evaluate: () => rawBody.body,\n onError: cause => this.decodeError(cause)\n }) : Stream.empty;\n }\n if (isReadableStream(rawBody)) {\n return Stream.fromReadableStream({\n evaluate: () => rawBody,\n onError: cause => this.decodeError(cause)\n });\n }\n if (rawBody instanceof Blob) {\n return Stream.fromReadableStream({\n evaluate: () => rawBody.stream(),\n onError: cause => this.decodeError(cause)\n });\n }\n return Stream.unwrap(Effect.map(this.bytes, Stream.succeed));\n }\n case \"FormData\":\n {\n const response = this.getFormDataResponse();\n return Stream.fromReadableStream({\n evaluate: () => response.body,\n onError: cause => this.decodeError(cause)\n });\n }\n }\n }\n get json() {\n return Effect.flatMap(this.text, text => Effect.try({\n try: () => text === \"\" ? null : JSON.parse(text),\n catch: cause => new HttpClientError.HttpClientError({\n reason: new HttpClientError.DecodeError({\n request: this.request,\n response: this,\n cause\n })\n })\n }));\n }\n get bytes() {\n const body = this.response.body;\n switch (body._tag) {\n case \"Empty\":\n {\n return Effect.succeed(new Uint8Array(0));\n }\n case \"Uint8Array\":\n {\n return Effect.succeed(body.body);\n }\n case \"Stream\":\n {\n return Stream.mkUint8Array(this.stream);\n }\n case \"Raw\":\n {\n const rawBody = body.body;\n if (rawBody instanceof Response) {\n return Effect.tryPromise({\n try: () => rawBody.arrayBuffer().then(buffer => new Uint8Array(buffer)),\n catch: cause => this.decodeError(cause)\n });\n }\n return Effect.tryPromise({\n try: () => new Response(rawBody).arrayBuffer().then(buffer => new Uint8Array(buffer)),\n catch: cause => this.decodeError(cause)\n });\n }\n case \"FormData\":\n {\n return Effect.tryPromise({\n try: () => new Response(body.formData).arrayBuffer().then(buffer => new Uint8Array(buffer)),\n catch: cause => this.decodeError(cause)\n });\n }\n }\n }\n get text() {\n return Effect.map(this.bytes, bytes => textDecoder.decode(bytes));\n }\n get urlParamsBody() {\n return Effect.flatMap(this.text, _ => Effect.try({\n try: () => UrlParams.fromInput(new URLSearchParams(_)),\n catch: cause => new HttpClientError.HttpClientError({\n reason: new HttpClientError.DecodeError({\n request: this.request,\n response: this,\n cause\n })\n })\n }));\n }\n get formData() {\n const body = this.response.body;\n if (body._tag === \"FormData\") {\n return Effect.succeed(body.formData);\n }\n return Effect.contextWith(context => {\n const readableStream = Stream.toReadableStreamWith(this.stream, context);\n return Effect.tryPromise({\n try: () => new Response(readableStream, {\n headers: this.headers\n }).formData(),\n catch: cause => this.decodeError(cause)\n });\n });\n }\n get arrayBuffer() {\n return Effect.map(this.bytes, bytes => bytes.slice().buffer);\n }\n decodeError(cause) {\n return new HttpClientError.HttpClientError({\n reason: new HttpClientError.DecodeError({\n request: this.request,\n response: this,\n cause\n })\n });\n }\n formDataResponse;\n getFormDataResponse() {\n return this.formDataResponse ??= new Response(this.response.body.formData);\n }\n pipe() {\n return pipeArguments(this, arguments);\n }\n}\nconst textDecoder = /*#__PURE__*/new TextDecoder();\n/**\n * Converts an `HttpClientResponse` to an `HttpServerResponse`.\n *\n * **Details**\n *\n * The response body is streamed from the client response. `Set-Cookie` headers are\n * removed from the header map and represented in the response cookie collection.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const fromClientResponse = response => {\n const headers = Headers.remove(response.headers, \"set-cookie\");\n return makeResponse({\n status: response.status,\n headers,\n cookies: response.cookies,\n body: Body.stream(Stream.catchIf(response.stream, isEmptyBodyError, () => Stream.empty), Option.getOrUndefined(Headers.get(headers, \"content-type\")), getContentLength(headers))\n });\n};\nconst isReadableStream = u => typeof ReadableStream !== \"undefined\" && u instanceof ReadableStream;\nconst isEmptyBodyError = error => HttpClientError.isHttpClientError(error) && error.reason._tag === \"EmptyBodyError\";\nconst getContentLength = headers => {\n const contentLength = Option.getOrUndefined(Headers.get(headers, \"content-length\"));\n if (contentLength === undefined) {\n return undefined;\n }\n const parsed = Number(contentLength);\n return Number.isFinite(parsed) && parsed >= 0 ? parsed : undefined;\n};\nconst Proto = {\n ...PipeInspectableProto,\n [TypeId]: TypeId,\n [ErrorReporter.ignore]: true,\n toJSON() {\n return {\n _id: \"HttpServerResponse\",\n status: this.status,\n statusText: this.statusText,\n headers: redact(this.headers),\n cookies: this.cookies.toJSON(),\n body: this.body.toJSON()\n };\n }\n};\nconst makeResponse = options => {\n const self = Object.create(Proto);\n self.status = options.status;\n self.statusText = options.statusText;\n self.cookies = options.cookies ?? Cookies.empty;\n self.body = options.body ?? Body.empty;\n if (self.body._tag !== \"Empty\" && (self.body.contentType || self.body.contentLength)) {\n const newHeaders = Headers.fromRecordUnsafe({\n ...options.headers\n });\n if (self.body.contentType) {\n newHeaders[\"content-type\"] = self.body.contentType;\n }\n if (self.body.contentLength) {\n newHeaders[\"content-length\"] = self.body.contentLength.toString();\n }\n self.headers = newHeaders;\n } else {\n self.headers = options.headers ?? Headers.empty;\n }\n return self;\n};\n/**\n * Converts a Web `Response` to an `HttpServerResponse`.\n *\n * **Details**\n *\n * `Set-Cookie` headers are parsed into the response cookie collection and removed\n * from the header map. A present Web body is exposed as a stream body.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const fromWeb = response => {\n const headers = new globalThis.Headers(response.headers);\n const setCookieHeaders = headers.getSetCookie();\n headers.delete(\"set-cookie\");\n let self = empty({\n status: response.status,\n statusText: response.statusText,\n headers: headers,\n cookies: Cookies.fromSetCookie(setCookieHeaders)\n });\n if (response.body) {\n const contentType = response.headers.get(\"content-type\");\n self = setBody(self, Body.stream(Stream.fromReadableStream({\n evaluate: () => response.body,\n onError: e => e\n }), contentType ?? undefined));\n }\n return self;\n};\n//# sourceMappingURL=HttpServerResponse.js.map",
20
20
  "/**\n * Platform-specific support for serving files as HTTP server responses.\n *\n * `HttpPlatform` is the boundary between the portable HTTP response model and\n * the runtime that knows how to stream bytes from the host platform. Server\n * code uses this service when it needs to return local files, static assets,\n * downloads, byte ranges, or Web `File`-like values without constructing the\n * response body by hand.\n *\n * The helpers in this module enrich those responses with file metadata such as\n * `etag`, `last-modified`, and content length where available. Path-based\n * responses require `FileSystem` and can fail with `PlatformError` while\n * inspecting or streaming the file; `File`-like responses use the Web\n * `ReadableStream` and `lastModified` metadata exposed by the value.\n *\n * Provide `layer` when the default streaming implementation is suitable, or\n * use `make` to plug in a runtime-specific response constructor. The default\n * layer supplies weak ETag generation itself, but the surrounding runtime still\n * needs to provide the `FileSystem` service and run the resulting\n * `HttpServerResponse` on an HTTP server adapter that understands Effect\n * streams.\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as FileSystem from \"../../FileSystem.js\";\nimport { identity } from \"../../Function.js\";\nimport * as Layer from \"../../Layer.js\";\nimport * as Option from \"../../Option.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as Etag from \"./Etag.js\";\nimport * as Headers from \"./Headers.js\";\nimport * as Response from \"./HttpServerResponse.js\";\n/**\n * Service for platform-specific HTTP response helpers, including file-backed server responses.\n *\n * @category services\n * @since 4.0.0\n */\nexport class HttpPlatform extends /*#__PURE__*/Context.Service()(\"effect/http/HttpPlatform\") {}\n/**\n * Creates an `HttpPlatform` service from platform-specific file response constructors, using `FileSystem` and `Etag.Generator`.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = /*#__PURE__*/Effect.fnUntraced(function* (impl) {\n const fs = yield* FileSystem.FileSystem;\n const etagGen = yield* Etag.Generator;\n return HttpPlatform.of({\n fileResponse: Effect.fnUntraced(function* (path, options) {\n const info = yield* fs.stat(path);\n const etag = yield* etagGen.fromFileInfo(info);\n const start = Number(options?.offset ?? 0);\n const end = options?.bytesToRead !== undefined ? start + Number(options.bytesToRead) : undefined;\n const headers = Headers.set(options?.headers ? Headers.fromInput(options.headers) : Headers.empty, \"etag\", Etag.toString(etag));\n if (Option.isSome(info.mtime)) {\n ;\n headers[\"last-modified\"] = info.mtime.value.toUTCString();\n }\n const contentLength = end !== undefined ? end - start : Number(info.size) - start;\n return impl.fileResponse(path, options?.status ?? 200, options?.statusText, headers, start, end, contentLength);\n }),\n fileWebResponse(file, options) {\n return Effect.map(etagGen.fromFileWeb(file), etag => {\n const headers = Headers.merge(options?.headers ? Headers.fromInput(options.headers) : Headers.empty, Headers.fromRecordUnsafe({\n etag: Etag.toString(etag),\n \"last-modified\": new Date(file.lastModified).toUTCString()\n }));\n return impl.fileWebResponse(file, options?.status ?? 200, options?.statusText, headers, options);\n });\n }\n });\n});\n/**\n * Provides the default `HttpPlatform` implementation for serving file paths and\n * `File`-like values as streamed HTTP responses.\n *\n * **Details**\n *\n * The layer uses the `FileSystem` and weak ETag services to add file metadata\n * headers such as `etag` and `last-modified`.\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layer = /*#__PURE__*/Layer.effect(HttpPlatform)(Effect.flatMap(FileSystem.FileSystem, fs => make({\n fileResponse(path, status, statusText, headers, start, end, contentLength) {\n return Response.stream(fs.stream(path, {\n offset: start,\n bytesToRead: end !== undefined ? end - start : undefined\n }), {\n contentLength,\n headers,\n status,\n statusText\n });\n },\n fileWebResponse(file, status, statusText, headers, _options) {\n return Response.stream(Stream.fromReadableStream({\n evaluate: () => file.stream(),\n onError: identity\n }), {\n headers,\n status,\n statusText\n });\n }\n}))).pipe(/*#__PURE__*/Layer.provide(Etag.layerWeak));\n//# sourceMappingURL=HttpPlatform.js.map",
21
21
  "/**\n * Runtime boundary for serving Effect HTTP responses on a concrete HTTP server.\n *\n * `HttpServer` is the service implemented by platform adapters and consumed by\n * routers, API layers, tests, and applications that start serving from a\n * `Layer`. It exposes the listening address and a `serve` operation that runs\n * an `HttpServerResponse` effect for each incoming request.\n *\n * **Mental model**\n *\n * The server owns the listener and supplies `HttpServerRequest` for every\n * request. The application effect only describes how to produce a response, so\n * request-scoped data comes from the server while the rest of the environment is\n * still provided by the surrounding layer graph. `serve` ties listener lifetime\n * to a layer scope, and `serveEffect` performs the same work inside an explicit\n * `Scope`.\n *\n * **Common tasks**\n *\n * - Build a server service from a platform adapter with `make`.\n * - Serve an HTTP app with `serve` or `serveEffect`.\n * - Format or log the listening address with `formatAddress`,\n * `addressFormattedWith`, `logAddress`, or `withLogAddress`.\n * - Create a test client that targets the running server with `makeTestClient`\n * or `layerTestClient`.\n *\n * **Gotchas**\n *\n * Middleware is applied at the server boundary, after the server has supplied\n * the request service. Test clients only support TCP addresses, and rewrite\n * `0.0.0.0` to `127.0.0.1` for local requests.\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as FileSystem from \"../../FileSystem.js\";\nimport { dual } from \"../../Function.js\";\nimport * as Layer from \"../../Layer.js\";\nimport * as Path from \"../../Path.js\";\nimport * as Etag from \"./Etag.js\";\nimport * as HttpClient from \"./HttpClient.js\";\nimport * as ClientRequest from \"./HttpClientRequest.js\";\nimport * as HttpPlatform from \"./HttpPlatform.js\";\n/**\n * Service tag for an HTTP server runtime.\n *\n * **Details**\n *\n * The service can serve an HTTP response effect and exposes the address where the\n * server is listening.\n *\n * @category models\n * @since 4.0.0\n */\nexport class HttpServer extends /*#__PURE__*/Context.Service()(\"effect/http/HttpServer\") {}\n/**\n * Constructs an `HttpServer` service from a serving implementation and listening\n * address.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = options => options;\n/**\n * Creates a layer that starts serving an HTTP response effect with the current\n * `HttpServer`.\n *\n * **Details**\n *\n * The request service is supplied by the server for each request; the returned\n * layer still requires the server, a scope, and any non-request dependencies of\n * the response effect or middleware.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const serve = /*#__PURE__*/dual(args => Effect.isEffect(args[0]), (effect, middleware) => Layer.effectDiscard(HttpServer.use(server => server.serve(effect, middleware))));\n/**\n * Effect that starts serving an HTTP response effect with the current\n * `HttpServer`.\n *\n * **Details**\n *\n * The request service is supplied by the server for each request; the effect\n * requires a scope and any non-request dependencies of the response effect or\n * middleware.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const serveEffect = /*#__PURE__*/dual(args => Effect.isEffect(args[0]), (effect, middleware) => HttpServer.use(server => server.serve(effect, middleware)));\n/**\n * Formats a server address as a display string.\n *\n * **Details**\n *\n * TCP addresses are formatted as `http://host:port`; Unix socket addresses are\n * formatted as `unix://path`.\n *\n * @category address\n * @since 4.0.0\n */\nexport const formatAddress = address => {\n switch (address._tag) {\n case \"UnixAddress\":\n return `unix://${address.path}`;\n case \"TcpAddress\":\n return `http://${address.hostname}:${address.port}`;\n }\n};\n/**\n * Reads the current server address, formats it with `formatAddress`, and passes\n * the formatted address to the supplied effectful function.\n *\n * @category address\n * @since 4.0.0\n */\nexport const addressFormattedWith = f => Effect.flatMap(HttpServer, server => f(formatAddress(server.address)));\n/**\n * Logs the formatted address of the current HTTP server.\n *\n * @category address\n * @since 4.0.0\n */\nexport const logAddress = /*#__PURE__*/addressFormattedWith(_ => Effect.log(`Listening on ${_}`));\n/**\n * Adds address logging to a layer that provides an `HttpServer`.\n *\n * @category address\n * @since 4.0.0\n */\nexport const withLogAddress = layer => Layer.effectDiscard(logAddress).pipe(Layer.provideMerge(layer));\n/**\n * Builds an `HttpClient` that sends requests to the current test HTTP server.\n *\n * **Details**\n *\n * For TCP servers, requests are prefixed with the server URL and `0.0.0.0` is\n * rewritten to `127.0.0.1`.\n *\n * **Gotchas**\n *\n * Unix socket addresses are not supported.\n *\n * @category testing\n * @since 4.0.0\n */\nexport const makeTestClient = /*#__PURE__*/Effect.gen(function* () {\n const server = yield* HttpServer;\n const client = yield* HttpClient.HttpClient;\n const address = server.address;\n if (address._tag === \"UnixAddress\") {\n return yield* Effect.die(new Error(\"HttpServer.layerTestClient: UnixAddress not supported\"));\n }\n const host = address.hostname === \"0.0.0.0\" ? \"127.0.0.1\" : address.hostname;\n const url = `http://${host}:${address.port}`;\n return HttpClient.mapRequest(client, ClientRequest.prependUrl(url));\n});\n/**\n * Layer that provides the test `HttpClient` created by `makeTestClient`.\n *\n * @category testing\n * @since 4.0.0\n */\nexport const layerTestClient = /*#__PURE__*/Layer.effect(HttpClient.HttpClient)(makeTestClient);\n/**\n * Layer that provides the platform services commonly needed by HTTP\n * server tests.\n *\n * **Details**\n *\n * It includes `HttpPlatform`, `Path`, a weak ETag generator, and a no-op\n * `FileSystem`.\n *\n * @category testing\n * @since 4.0.0\n */\nexport const layerServices = /*#__PURE__*/Layer.mergeAll(HttpPlatform.layer, Path.layer, Etag.layerWeak).pipe(/*#__PURE__*/Layer.provideMerge(/*#__PURE__*/FileSystem.layerNoop({})));\n//# sourceMappingURL=HttpServer.js.map",
22
- "/**\n * @since 1.0.0\n */\n// Taken from https://github.com/anonrig/fast-querystring under MIT License\nconst plusRegex = /\\+/g;\nconst Empty = function () {};\nEmpty.prototype = /*#__PURE__*/Object.create(null);\n/**\n * @category parsing\n * @since 1.0.0\n */\nexport function parse(input) {\n // Optimization: Use new Empty() instead of Object.create(null) for performance\n // v8 has a better optimization for initializing functions compared to Object\n const result = new Empty();\n if (typeof input !== \"string\") {\n return result;\n }\n const inputLength = input.length;\n let key = \"\";\n let value = \"\";\n let startingIndex = -1;\n let equalityIndex = -1;\n let shouldDecodeKey = false;\n let shouldDecodeValue = false;\n let keyHasPlus = false;\n let valueHasPlus = false;\n let hasBothKeyValuePair = false;\n let c = 0;\n // Have a boundary of input.length + 1 to access last pair inside the loop.\n for (let i = 0; i < inputLength + 1; i++) {\n c = i !== inputLength ? input.charCodeAt(i) : 38;\n // Handle '&' and end of line to pass the current values to result\n if (c === 38) {\n hasBothKeyValuePair = equalityIndex > startingIndex;\n // Optimization: Reuse equality index to store the end of key\n if (!hasBothKeyValuePair) {\n equalityIndex = i;\n }\n key = input.slice(startingIndex + 1, equalityIndex);\n // Add key/value pair only if the range size is greater than 1; a.k.a. contains at least \"=\"\n if (hasBothKeyValuePair || key.length > 0) {\n // Optimization: Replace '+' with space\n if (keyHasPlus) {\n key = key.replace(plusRegex, \" \");\n }\n // Optimization: Do not decode if it's not necessary.\n if (shouldDecodeKey) {\n try {\n key = decodeURIComponent(key) || key;\n } catch {}\n }\n if (hasBothKeyValuePair) {\n value = input.slice(equalityIndex + 1, i);\n if (valueHasPlus) {\n value = value.replace(plusRegex, \" \");\n }\n if (shouldDecodeValue) {\n try {\n value = decodeURIComponent(value) || value;\n } catch {}\n }\n }\n const currentValue = result[key];\n if (currentValue === undefined) {\n result[key] = value;\n } else {\n // Optimization: value.pop is faster than Array.isArray(value)\n if (currentValue.pop) {\n currentValue.push(value);\n } else {\n result[key] = [currentValue, value];\n }\n }\n }\n // Reset reading key value pairs\n value = \"\";\n startingIndex = i;\n equalityIndex = i;\n shouldDecodeKey = false;\n shouldDecodeValue = false;\n keyHasPlus = false;\n valueHasPlus = false;\n }\n // Check '='\n else if (c === 61) {\n if (equalityIndex <= startingIndex) {\n equalityIndex = i;\n }\n // If '=' character occurs again, we should decode the input.\n else {\n shouldDecodeValue = true;\n }\n }\n // Check '+', and remember to replace it with empty space.\n else if (c === 43) {\n if (equalityIndex > startingIndex) {\n valueHasPlus = true;\n } else {\n keyHasPlus = true;\n }\n }\n // Check '%' character for encoding\n else if (c === 37) {\n if (equalityIndex > startingIndex) {\n shouldDecodeValue = true;\n } else {\n shouldDecodeKey = true;\n }\n }\n }\n return result;\n}\nfunction getAsPrimitive(value) {\n const type = typeof value;\n if (type === \"string\") {\n // Length check is handled inside encodeString function\n return encodeString(value);\n } else if (type === \"bigint\" || type === \"boolean\") {\n return \"\" + value;\n } else if (type === \"number\" && Number.isFinite(value)) {\n return value < 1e21 ? \"\" + value : encodeString(\"\" + value);\n }\n return \"\";\n}\n/**\n * @category encoding\n * @since 1.0.0\n */\nexport function stringify(input) {\n let result = \"\";\n if (input === null || typeof input !== \"object\") {\n return result;\n }\n const separator = \"&\";\n const keys = Object.keys(input);\n const keyLength = keys.length;\n let valueLength = 0;\n for (let i = 0; i < keyLength; i++) {\n const key = keys[i];\n const value = input[key];\n const encodedKey = encodeString(key) + \"=\";\n if (i) {\n result += separator;\n }\n if (Array.isArray(value)) {\n valueLength = value.length;\n for (let j = 0; j < valueLength; j++) {\n if (j) {\n result += separator;\n }\n // Optimization: Dividing into multiple lines improves the performance.\n // Since v8 does not need to care about the '+' character if it was one-liner.\n result += encodedKey;\n result += getAsPrimitive(value[j]);\n }\n } else {\n result += encodedKey;\n result += getAsPrimitive(value);\n }\n }\n return result;\n}\n// -----------------------------------------------------------------------------\n// This has been taken from Node.js project.\n// Full implementation can be found from https://github.com/nodejs/node/blob/main/lib/internal/querystring.js\nconst hexTable = /*#__PURE__*/Array.from({\n length: 256\n}, (_, i) => \"%\" + ((i < 16 ? \"0\" : \"\") + i.toString(16)).toUpperCase());\n// These characters do not need escaping when generating query strings:\n// ! - . _ ~\n// ' ( ) *\n// digits\n// alpha (uppercase)\n// alpha (lowercase)\n// biome-ignore format: the array should not be formatted\nconst noEscape = /*#__PURE__*/new Int8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n// 0 - 15\n0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n// 16 - 31\n0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0,\n// 32 - 47\n1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n// 48 - 63\n0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n// 64 - 79\n1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,\n// 80 - 95\n0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n// 96 - 111\n1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0 // 112 - 127\n]);\nfunction encodeString(str) {\n const len = str.length;\n if (len === 0) return \"\";\n let out = \"\";\n let lastPos = 0;\n let i = 0;\n outer: for (; i < len; i++) {\n let c = str.charCodeAt(i);\n // ASCII\n while (c < 0x80) {\n if (noEscape[c] !== 1) {\n if (lastPos < i) out += str.slice(lastPos, i);\n lastPos = i + 1;\n out += hexTable[c];\n }\n if (++i === len) break outer;\n c = str.charCodeAt(i);\n }\n if (lastPos < i) out += str.slice(lastPos, i);\n // Multi-byte characters ...\n if (c < 0x800) {\n lastPos = i + 1;\n out += hexTable[0xc0 | c >> 6] + hexTable[0x80 | c & 0x3f];\n continue;\n }\n if (c < 0xd800 || c >= 0xe000) {\n lastPos = i + 1;\n out += hexTable[0xe0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3f] + hexTable[0x80 | c & 0x3f];\n continue;\n }\n // Surrogate pair\n ++i;\n // This branch should never happen because all URLSearchParams entries\n // should already be converted to USVString. But, included for\n // completion's sake anyway.\n if (i >= len) {\n throw new Error(\"URI malformed\");\n }\n const c2 = str.charCodeAt(i) & 0x3ff;\n lastPos = i + 1;\n c = 0x10000 + ((c & 0x3ff) << 10 | c2);\n out += hexTable[0xf0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3f] + hexTable[0x80 | c >> 6 & 0x3f] + hexTable[0x80 | c & 0x3f];\n }\n if (lastPos === 0) return str;\n if (lastPos < len) return out + str.slice(lastPos);\n return out;\n}\n//# sourceMappingURL=QueryString.js.map",
23
- "import * as QS from \"../QueryString.js\";\nconst FULL_PATH_REGEXP = /^https?:\\/\\/.*?\\//;\nconst OPTIONAL_PARAM_REGEXP = /(\\/:[^/()]*?)\\?(\\/?)/;\n/** @internal */\nexport const make = (options = {}) => new RouterImpl(options);\nclass RouterImpl {\n constructor(options = {}) {\n this.options = {\n ignoreTrailingSlash: true,\n ignoreDuplicateSlashes: true,\n caseSensitive: false,\n maxParamLength: 100,\n ...options\n };\n }\n options;\n routes = [];\n trees = {};\n on(method, path, handler) {\n const optionalParamMatch = path.match(OPTIONAL_PARAM_REGEXP);\n if (optionalParamMatch && optionalParamMatch.index !== undefined) {\n assert(path.length === optionalParamMatch.index + optionalParamMatch[0].length, \"Optional Parameter needs to be the last parameter of the path\");\n const pathFull = path.replace(OPTIONAL_PARAM_REGEXP, \"$1$2\");\n const pathOptional = path.replace(OPTIONAL_PARAM_REGEXP, \"$2\");\n this.on(method, pathFull, handler);\n this.on(method, pathOptional, handler);\n return;\n }\n if (this.options.ignoreDuplicateSlashes) {\n path = removeDuplicateSlashes(path);\n }\n if (this.options.ignoreTrailingSlash) {\n path = trimLastSlash(path);\n }\n const methods = typeof method === \"string\" ? [method] : method;\n for (const method of methods) {\n this._on(method, path, handler);\n }\n }\n all(path, handler) {\n this.on(httpMethods, path, handler);\n }\n _on(method, path, handler) {\n if (this.trees[method] === undefined) {\n this.trees[method] = new StaticNode(\"/\");\n }\n let pattern = path;\n if (pattern === \"*\" && this.trees[method].prefix.length !== 0) {\n const currentRoot = this.trees[method];\n this.trees[method] = new StaticNode(\"\");\n this.trees[method].staticChildren[\"/\"] = currentRoot;\n }\n let parentNodePathIndex = this.trees[method].prefix.length;\n let currentNode = this.trees[method];\n const params = [];\n for (let i = 0; i <= pattern.length; i++) {\n if (pattern.charCodeAt(i) === 58 && pattern.charCodeAt(i + 1) === 58) {\n // It's a double colon\n i++;\n continue;\n }\n const isParametricNode = pattern.charCodeAt(i) === 58 && pattern.charCodeAt(i + 1) !== 58;\n const isWildcardNode = pattern.charCodeAt(i) === 42;\n if (isParametricNode || isWildcardNode || i === pattern.length && i !== parentNodePathIndex) {\n let staticNodePath = pattern.slice(parentNodePathIndex, i);\n if (!this.options.caseSensitive) {\n staticNodePath = staticNodePath.toLowerCase();\n }\n staticNodePath = staticNodePath.split(\"::\").join(\":\");\n staticNodePath = staticNodePath.split(\"%\").join(\"%25\");\n // add the static part of the route to the tree\n currentNode = currentNode.createStaticChild(staticNodePath);\n }\n if (isParametricNode) {\n let isRegexNode = false;\n const regexps = [];\n let lastParamStartIndex = i + 1;\n for (let j = lastParamStartIndex;; j++) {\n const charCode = pattern.charCodeAt(j);\n const isRegexParam = charCode === 40;\n const isStaticPart = charCode === 45 || charCode === 46;\n const isEndOfNode = charCode === 47 || j === pattern.length;\n if (isRegexParam || isStaticPart || isEndOfNode) {\n const paramName = pattern.slice(lastParamStartIndex, j);\n params.push(paramName);\n isRegexNode = isRegexNode || isRegexParam || isStaticPart;\n if (isRegexParam) {\n const endOfRegexIndex = getClosingParenthensePosition(pattern, j);\n const regexString = pattern.slice(j, endOfRegexIndex + 1);\n regexps.push(trimRegExpStartAndEnd(regexString));\n j = endOfRegexIndex + 1;\n } else {\n regexps.push(\"(.*?)\");\n }\n const staticPartStartIndex = j;\n for (; j < pattern.length; j++) {\n const charCode = pattern.charCodeAt(j);\n if (charCode === 47) break;\n if (charCode === 58) {\n const nextCharCode = pattern.charCodeAt(j + 1);\n if (nextCharCode === 58) j++;else break;\n }\n }\n let staticPart = pattern.slice(staticPartStartIndex, j);\n if (staticPart) {\n staticPart = staticPart.split(\"::\").join(\":\");\n staticPart = staticPart.split(\"%\").join(\"%25\");\n regexps.push(escapeRegExp(staticPart));\n }\n lastParamStartIndex = j + 1;\n if (isEndOfNode || pattern.charCodeAt(j) === 47 || j === pattern.length) {\n const nodePattern = isRegexNode ? \"()\" + staticPart : staticPart;\n const nodePath = pattern.slice(i, j);\n pattern = pattern.slice(0, i + 1) + nodePattern + pattern.slice(j);\n i += nodePattern.length;\n const regex = isRegexNode ? new RegExp(\"^\" + regexps.join(\"\") + \"$\") : undefined;\n currentNode = currentNode.createParametricChild(regex, staticPart, nodePath);\n parentNodePathIndex = i + 1;\n break;\n }\n }\n }\n } else if (isWildcardNode) {\n // add the wildcard parameter\n params.push(\"*\");\n currentNode = currentNode.createWildcardChild();\n parentNodePathIndex = i + 1;\n if (i !== pattern.length - 1) {\n throw new Error(\"Wildcard must be the last character in the route\");\n }\n }\n }\n if (!this.options.caseSensitive) {\n pattern = pattern.toLowerCase();\n }\n if (pattern === \"*\") {\n pattern = \"/*\";\n }\n for (const existRoute of this.routes) {\n if (existRoute.method === method && existRoute.pattern === pattern) {\n throw new Error(`Method '${method}' already declared for route '${pattern}'`);\n }\n }\n const route = {\n method,\n path,\n pattern,\n params,\n handler\n };\n this.routes.push(route);\n currentNode.addRoute(route);\n }\n has(method, path) {\n const node = this.trees[method];\n if (node === undefined) {\n return false;\n }\n const staticNode = node.getStaticChild(path);\n if (staticNode === undefined) {\n return false;\n }\n return staticNode.isLeafNode;\n }\n find(method, path) {\n let currentNode = this.trees[method];\n if (currentNode === undefined) return undefined;\n if (path.charCodeAt(0) !== 47) {\n // 47 is '/'\n path = path.replace(FULL_PATH_REGEXP, \"/\");\n }\n // This must be run before sanitizeUrl as the resulting function\n // .sliceParameter must be constructed with same URL string used\n // throughout the rest of this function.\n if (this.options.ignoreDuplicateSlashes) {\n path = removeDuplicateSlashes(path);\n }\n let sanitizedUrl;\n let querystring;\n let shouldDecodeParam;\n try {\n sanitizedUrl = safeDecodeURI(path);\n path = sanitizedUrl.path;\n querystring = sanitizedUrl.querystring;\n shouldDecodeParam = sanitizedUrl.shouldDecodeParam;\n } catch (error) {\n return undefined;\n }\n if (this.options.ignoreTrailingSlash) {\n path = trimLastSlash(path);\n }\n const originPath = path;\n if (this.options.caseSensitive === false) {\n path = path.toLowerCase();\n }\n const maxParamLength = this.options.maxParamLength;\n let pathIndex = currentNode.prefix.length;\n const params = [];\n const pathLen = path.length;\n const brothersNodesStack = [];\n while (true) {\n if (pathIndex === pathLen && currentNode.isLeafNode) {\n const handle = currentNode.handlerStorage?.find();\n if (handle !== undefined) {\n return {\n handler: handle.handler,\n params: handle.createParams(params),\n searchParams: QS.parse(querystring)\n };\n }\n }\n let node = currentNode.getNextNode(path, pathIndex, brothersNodesStack, params.length);\n if (node === undefined) {\n if (brothersNodesStack.length === 0) {\n return undefined;\n }\n const brotherNodeState = brothersNodesStack.pop();\n pathIndex = brotherNodeState.brotherPathIndex;\n params.splice(brotherNodeState.paramsCount);\n node = brotherNodeState.brotherNode;\n }\n currentNode = node;\n // static route\n if (currentNode._tag === \"StaticNode\") {\n pathIndex += currentNode.prefix.length;\n continue;\n }\n if (currentNode._tag === \"WildcardNode\") {\n let param = originPath.slice(pathIndex);\n if (shouldDecodeParam) {\n param = safeDecodeURIComponent(param);\n }\n params.push(param);\n pathIndex = pathLen;\n continue;\n }\n if (currentNode._tag === \"ParametricNode\") {\n let paramEndIndex = originPath.indexOf(\"/\", pathIndex);\n if (paramEndIndex === -1) {\n paramEndIndex = pathLen;\n }\n let param = originPath.slice(pathIndex, paramEndIndex);\n if (shouldDecodeParam) {\n param = safeDecodeURIComponent(param);\n }\n if (currentNode.regex !== undefined) {\n const matchedParameters = currentNode.regex.exec(param);\n if (matchedParameters === null) continue;\n for (let i = 1; i < matchedParameters.length; i++) {\n const matchedParam = matchedParameters[i];\n if (matchedParam.length > maxParamLength) {\n return undefined;\n }\n params.push(matchedParam);\n }\n } else {\n if (param.length > maxParamLength) {\n return undefined;\n }\n params.push(param);\n }\n pathIndex = paramEndIndex;\n }\n }\n }\n}\nclass HandlerStorage {\n handlers = [];\n unconstrainedHandler;\n find() {\n return this.unconstrainedHandler;\n }\n add(route) {\n const handler = {\n params: route.params,\n handler: route.handler,\n createParams: compileCreateParams(route.params)\n };\n this.handlers.push(handler);\n this.unconstrainedHandler = this.handlers[0];\n }\n}\nclass NodeBase {\n isLeafNode = false;\n routes;\n handlerStorage;\n addRoute(route) {\n if (this.routes === undefined) {\n this.routes = [route];\n } else {\n this.routes.push(route);\n }\n if (this.handlerStorage === undefined) {\n this.handlerStorage = new HandlerStorage();\n }\n this.isLeafNode = true;\n this.handlerStorage.add(route);\n }\n}\nclass ParentNode extends NodeBase {\n staticChildren = {};\n findStaticMatchingChild(path, pathIndex) {\n const staticChild = this.staticChildren[path.charAt(pathIndex)];\n if (staticChild === undefined || !staticChild.matchPrefix(path, pathIndex)) {\n return undefined;\n }\n return staticChild;\n }\n getStaticChild(path, pathIndex = 0) {\n if (path.length === pathIndex) {\n return this;\n }\n const staticChild = this.findStaticMatchingChild(path, pathIndex);\n if (staticChild === undefined) {\n return undefined;\n }\n return staticChild.getStaticChild(path, pathIndex + staticChild.prefix.length);\n }\n createStaticChild(path) {\n if (path.length === 0) {\n return this;\n }\n let staticChild = this.staticChildren[path.charAt(0)];\n if (staticChild) {\n let i = 1;\n for (; i < staticChild.prefix.length; i++) {\n if (path.charCodeAt(i) !== staticChild.prefix.charCodeAt(i)) {\n staticChild = staticChild.split(this, i);\n break;\n }\n }\n return staticChild.createStaticChild(path.slice(i));\n }\n const label = path.charAt(0);\n this.staticChildren[label] = new StaticNode(path);\n return this.staticChildren[label];\n }\n}\nclass StaticNode extends ParentNode {\n _tag = \"StaticNode\";\n constructor(prefix) {\n super();\n this.setPrefix(prefix);\n }\n prefix;\n matchPrefix;\n parametricChildren = [];\n wildcardChild;\n setPrefix(prefix) {\n this.prefix = prefix;\n if (prefix.length === 1) {\n this.matchPrefix = (_path, _pathIndex) => true;\n } else {\n const len = prefix.length;\n this.matchPrefix = function (path, pathIndex) {\n for (let i = 1; i < len; i++) {\n if (path.charCodeAt(pathIndex + i) !== this.prefix.charCodeAt(i)) {\n return false;\n }\n }\n return true;\n };\n }\n }\n getParametricChild(regex) {\n if (regex === undefined) {\n return this.parametricChildren.find(child => child.isRegex === false);\n }\n const source = regex.source;\n return this.parametricChildren.find(child => {\n if (child.regex === undefined) {\n return false;\n }\n return child.regex.source === source;\n });\n }\n createParametricChild(regex, staticSuffix, nodePath) {\n let child = this.getParametricChild(regex);\n if (child !== undefined) {\n child.nodePaths.add(nodePath);\n return child;\n }\n child = new ParametricNode(regex, staticSuffix, nodePath);\n this.parametricChildren.push(child);\n this.parametricChildren.sort((child1, child2) => {\n if (!child1.isRegex) return 1;\n if (!child2.isRegex) return -1;\n if (child1.staticSuffix === undefined) return 1;\n if (child2.staticSuffix === undefined) return -1;\n if (child2.staticSuffix.endsWith(child1.staticSuffix)) return 1;\n if (child1.staticSuffix.endsWith(child2.staticSuffix)) return -1;\n return 0;\n });\n return child;\n }\n createWildcardChild() {\n if (this.wildcardChild === undefined) {\n this.wildcardChild = new WildcardNode();\n }\n return this.wildcardChild;\n }\n split(parentNode, length) {\n const parentPrefix = this.prefix.slice(0, length);\n const childPrefix = this.prefix.slice(length);\n this.setPrefix(childPrefix);\n const staticNode = new StaticNode(parentPrefix);\n staticNode.staticChildren[childPrefix.charAt(0)] = this;\n parentNode.staticChildren[parentPrefix.charAt(0)] = staticNode;\n return staticNode;\n }\n getNextNode(path, pathIndex, nodeStack, paramsCount) {\n let node = this.findStaticMatchingChild(path, pathIndex);\n let parametricBrotherNodeIndex = 0;\n if (node === undefined) {\n if (this.parametricChildren.length === 0) {\n return this.wildcardChild;\n }\n node = this.parametricChildren[0];\n parametricBrotherNodeIndex = 1;\n }\n if (this.wildcardChild !== undefined) {\n nodeStack.push({\n paramsCount,\n brotherPathIndex: pathIndex,\n brotherNode: this.wildcardChild\n });\n }\n for (let i = this.parametricChildren.length - 1; i >= parametricBrotherNodeIndex; i--) {\n nodeStack.push({\n paramsCount,\n brotherPathIndex: pathIndex,\n brotherNode: this.parametricChildren[i]\n });\n }\n return node;\n }\n}\nclass ParametricNode extends ParentNode {\n regex;\n staticSuffix;\n _tag = \"ParametricNode\";\n constructor(regex, staticSuffix, nodePath) {\n super();\n this.regex = regex;\n this.staticSuffix = staticSuffix;\n this.isRegex = !!regex;\n this.nodePaths = new Set([nodePath]);\n }\n isRegex;\n nodePaths;\n getNextNode(path, pathIndex) {\n return this.findStaticMatchingChild(path, pathIndex);\n }\n}\nclass WildcardNode extends NodeBase {\n _tag = \"WildcardNode\";\n getNextNode(_path, _pathIndex, _nodeStack, _paramsCount) {\n return undefined;\n }\n}\nconst assert = (condition, message) => {\n if (!condition) {\n throw new Error(message);\n }\n};\nfunction removeDuplicateSlashes(path) {\n return path.replace(/\\/\\/+/g, \"/\");\n}\nfunction trimLastSlash(path) {\n if (path.length > 1 && path.charCodeAt(path.length - 1) === 47) {\n return path.slice(0, -1);\n }\n return path;\n}\nfunction compileCreateParams(params) {\n const len = params.length;\n return function (paramsArray) {\n const paramsObject = {};\n for (let i = 0; i < len; i++) {\n paramsObject[params[i]] = paramsArray[i];\n }\n return paramsObject;\n };\n}\nfunction getClosingParenthensePosition(path, idx) {\n // `path.indexOf()` will always return the first position of the closing parenthese,\n // but it's inefficient for grouped or wrong regexp expressions.\n // see issues #62 and #63 for more info\n let parentheses = 1;\n while (idx < path.length) {\n idx++;\n // ignore skipped chars\n if (path[idx] === \"\\\\\") {\n idx++;\n continue;\n }\n if (path[idx] === \")\") {\n parentheses--;\n } else if (path[idx] === \"(\") {\n parentheses++;\n }\n if (!parentheses) return idx;\n }\n throw new TypeError('Invalid regexp expression in \"' + path + '\"');\n}\nfunction trimRegExpStartAndEnd(regexString) {\n // removes chars that marks start \"^\" and end \"$\" of regexp\n if (regexString.charCodeAt(1) === 94) {\n regexString = regexString.slice(0, 1) + regexString.slice(2);\n }\n if (regexString.charCodeAt(regexString.length - 2) === 36) {\n regexString = regexString.slice(0, regexString.length - 2) + regexString.slice(regexString.length - 1);\n }\n return regexString;\n}\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// It must spot all the chars where decodeURIComponent(x) !== decodeURI(x)\n// The chars are: # $ & + , / : ; = ? @\nfunction decodeComponentChar(highCharCode, lowCharCode) {\n if (highCharCode === 50) {\n if (lowCharCode === 53) return \"%\";\n if (lowCharCode === 51) return \"#\";\n if (lowCharCode === 52) return \"$\";\n if (lowCharCode === 54) return \"&\";\n if (lowCharCode === 66) return \"+\";\n if (lowCharCode === 98) return \"+\";\n if (lowCharCode === 67) return \",\";\n if (lowCharCode === 99) return \",\";\n if (lowCharCode === 70) return \"/\";\n if (lowCharCode === 102) return \"/\";\n return undefined;\n }\n if (highCharCode === 51) {\n if (lowCharCode === 65) return \":\";\n if (lowCharCode === 97) return \":\";\n if (lowCharCode === 66) return \";\";\n if (lowCharCode === 98) return \";\";\n if (lowCharCode === 68) return \"=\";\n if (lowCharCode === 100) return \"=\";\n if (lowCharCode === 70) return \"?\";\n if (lowCharCode === 102) return \"?\";\n return undefined;\n }\n if (highCharCode === 52 && lowCharCode === 48) {\n return \"@\";\n }\n return undefined;\n}\nfunction safeDecodeURI(path) {\n let shouldDecode = false;\n let shouldDecodeParam = false;\n let querystring = \"\";\n for (let i = 1; i < path.length; i++) {\n const charCode = path.charCodeAt(i);\n if (charCode === 37) {\n const highCharCode = path.charCodeAt(i + 1);\n const lowCharCode = path.charCodeAt(i + 2);\n if (decodeComponentChar(highCharCode, lowCharCode) === undefined) {\n shouldDecode = true;\n } else {\n shouldDecodeParam = true;\n // %25 - encoded % char. We need to encode one more time to prevent double decoding\n if (highCharCode === 50 && lowCharCode === 53) {\n shouldDecode = true;\n path = path.slice(0, i + 1) + \"25\" + path.slice(i + 1);\n i += 2;\n }\n i += 2;\n }\n // Some systems do not follow RFC and separate the path and query\n // string with a `;` character (code 59), e.g. `/foo;jsessionid=123456`.\n // Thus, we need to split on `;` as well as `?` and `#`.\n } else if (charCode === 63 || charCode === 59 || charCode === 35) {\n querystring = path.slice(i + 1);\n path = path.slice(0, i);\n break;\n }\n }\n const decodedPath = shouldDecode ? decodeURI(path) : path;\n return {\n path: decodedPath,\n querystring,\n shouldDecodeParam\n };\n}\nfunction safeDecodeURIComponent(uriComponent) {\n const startIndex = uriComponent.indexOf(\"%\");\n if (startIndex === -1) return uriComponent;\n let decoded = \"\";\n let lastIndex = startIndex;\n for (let i = startIndex; i < uriComponent.length; i++) {\n if (uriComponent.charCodeAt(i) === 37) {\n const highCharCode = uriComponent.charCodeAt(i + 1);\n const lowCharCode = uriComponent.charCodeAt(i + 2);\n const decodedChar = decodeComponentChar(highCharCode, lowCharCode);\n decoded += uriComponent.slice(lastIndex, i) + decodedChar;\n lastIndex = i + 3;\n }\n }\n return uriComponent.slice(0, startIndex) + decoded + uriComponent.slice(lastIndex);\n}\nconst httpMethods = [\"ACL\", \"BIND\", \"CHECKOUT\", \"CONNECT\", \"COPY\", \"DELETE\", \"GET\", \"HEAD\", \"LINK\", \"LOCK\", \"M-SEARCH\", \"MERGE\", \"MKACTIVITY\", \"MKCALENDAR\", \"MKCOL\", \"MOVE\", \"NOTIFY\", \"OPTIONS\", \"PATCH\", \"POST\", \"PROPFIND\", \"PROPPATCH\", \"PURGE\", \"PUT\", \"REBIND\", \"REPORT\", \"SEARCH\", \"SOURCE\", \"SUBSCRIBE\", \"TRACE\", \"UNBIND\", \"UNLINK\", \"UNLOCK\", \"UNSUBSCRIBE\"];\n//# sourceMappingURL=router.js.map",
24
- "/**\n * @since 1.0.0\n */\nimport * as internal from \"./internal/router.js\";\n/**\n * @since 1.0.0\n * @category constructors\n */\nexport const make = internal.make;\n//# sourceMappingURL=index.js.map",
22
+ "declare global {\n const OPENCODE_VERSION: string\n const OPENCODE_CHANNEL: string\n}\n\nexport const InstallationVersion = typeof OPENCODE_VERSION === \"string\" ? OPENCODE_VERSION : \"local\"\nexport const InstallationChannel = typeof OPENCODE_CHANNEL === \"string\" ? OPENCODE_CHANNEL : \"local\"\nexport const InstallationLocal = InstallationChannel === \"local\"\n",
23
+ "/**\n * Fetch-based implementation of the Effect HTTP client service.\n *\n * This module provides an `HttpClient` layer that executes requests through a\n * Web Fetch API implementation. It is the transport to use in browsers, edge\n * runtimes, and Node.js environments where `globalThis.fetch` is available, or\n * anywhere a compatible fetch function can be supplied.\n *\n * **Mental model**\n *\n * `layer` installs an `HttpClient` whose runtime boundary is a call to `fetch`.\n * The `Fetch` reference chooses the fetch function and defaults to\n * `globalThis.fetch`. The `RequestInit` service supplies default fetch options\n * such as credentials, redirects, cache behavior, or other platform-specific\n * settings. Request-specific method, headers, body, and abort signal are written\n * by the client for each call.\n *\n * **Common tasks**\n *\n * Provide `layer` when an Effect program should run outbound HTTP through the\n * current platform. Override `Fetch` in tests or custom runtimes to capture\n * requests or route them to a different implementation. Provide `RequestInit`\n * when all requests made by this client should share fetch defaults.\n *\n * **Gotchas**\n *\n * Fetch behavior is platform behavior: CORS, cookies, redirect handling, aborts,\n * and streaming support can differ across runtimes. Stream request bodies are\n * sent as Web streams with `duplex: \"half\"` for runtimes that require it, and\n * `content-length` is removed so fetch can manage body framing.\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as Headers from \"./Headers.js\";\nimport * as HttpClient from \"./HttpClient.js\";\nimport * as HttpClientError from \"./HttpClientError.js\";\nimport * as HttpClientResponse from \"./HttpClientResponse.js\";\n/**\n * Context reference for the `fetch` implementation used by the fetch-based HTTP client.\n *\n * **Details**\n *\n * Defaults to `globalThis.fetch`.\n *\n * @category services\n * @since 4.0.0\n */\nexport const Fetch = /*#__PURE__*/Context.Reference(\"effect/http/FetchHttpClient/Fetch\", {\n defaultValue: () => globalThis.fetch\n});\n/**\n * Service that contains default fetch options for the fetch-based HTTP client.\n *\n * **When to use**\n *\n * Use to provide default credentials, cache, redirect, integrity, or other\n * fetch options for outgoing HTTP requests.\n *\n * **Details**\n *\n * Request-specific method, headers, body, and abort signal are supplied by the client when a request is executed.\n *\n * @category services\n * @since 4.0.0\n */\nexport class RequestInit extends /*#__PURE__*/Context.Service()(\"effect/http/FetchHttpClient/RequestInit\") {}\nconst fetch = /*#__PURE__*/HttpClient.make((request, url, signal, fiber) => {\n const fetch = fiber.getRef(Fetch);\n const options = fiber.context.mapUnsafe.get(RequestInit.key) ?? {};\n let headers = options.headers ? Headers.merge(Headers.fromInput(options.headers), request.headers) : request.headers;\n if (headers[\"content-length\"]) {\n headers = Headers.remove(headers, \"content-length\");\n }\n const send = body => Effect.map(Effect.tryPromise({\n try: () => fetch(url, {\n ...options,\n method: request.method,\n headers,\n body,\n duplex: request.body._tag === \"Stream\" ? \"half\" : undefined,\n signal\n }),\n catch: cause => new HttpClientError.HttpClientError({\n reason: new HttpClientError.TransportError({\n request,\n cause\n })\n })\n }), response => HttpClientResponse.fromWeb(request, response));\n switch (request.body._tag) {\n case \"Raw\":\n case \"Uint8Array\":\n return send(request.body.body);\n case \"FormData\":\n return send(request.body.formData);\n case \"Stream\":\n return Effect.flatMap(Stream.toReadableStreamEffect(request.body.stream), send);\n }\n return send(undefined);\n});\n/**\n * Layer that provides an `HttpClient` implementation backed by the configured\n * `Fetch` function.\n *\n * **When to use**\n *\n * Use when an Effect program should execute `HttpClient` requests through the\n * platform `fetch` implementation, especially in browser, edge, or Node.js\n * runtimes with `globalThis.fetch`.\n *\n * **Details**\n *\n * The layer uses the current `Fetch` reference and optional `RequestInit`\n * service for each request. Request-specific method, headers, body, and abort\n * signal are supplied by the client and override matching `RequestInit` fields.\n *\n * **Gotchas**\n *\n * Fetch behavior comes from the runtime's implementation, so CORS, cookies,\n * redirects, abort handling, and streaming support can vary by platform. Stream\n * request bodies are sent as Web streams with `duplex: \"half\"`, and any\n * `content-length` header is removed before calling `fetch`.\n *\n * @see {@link Fetch} for supplying the fetch implementation used by this layer\n * @see {@link RequestInit} for default `RequestInit` options applied before request-specific fields\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layer = /*#__PURE__*/HttpClient.layerMergedContext(/*#__PURE__*/Effect.succeed(fetch));\n//# sourceMappingURL=FetchHttpClient.js.map",
25
24
  "/**\n * Protocol for values that can render themselves as HTTP server responses.\n *\n * This module lets server-side domain errors, HTTP API errors, and helper\n * values describe the response they should send to a client. Implement\n * `Respondable` when a value should choose its own status, headers, cookies, or\n * body during route error handling without forcing every call site to construct\n * an `HttpServerResponse` directly.\n *\n * **Mental model**\n *\n * A respondable value owns the last step from domain-level information to an\n * `HttpServerResponse`. Server error handling can ask the value for a response,\n * while unknown failures still go through a caller-provided fallback response.\n * Existing `HttpServerResponse` values are already respondable for conversion\n * purposes and are returned directly.\n *\n * **Common tasks**\n *\n * Use `toResponse` when the value is known to implement the protocol and\n * conversion failures should become defects. Use `toResponseOrElse` when\n * handling unknown failures from route effects and a fallback response should be\n * used when no conversion is available. Use `toResponseOrElseDefect` for defect\n * recovery, where only explicit response-like values receive special handling.\n *\n * **Gotchas**\n *\n * Fallback conversion is intentionally conservative. Schema errors become `400`\n * responses, no-such-element errors become `404` responses, and other values use\n * the supplied fallback. The fallback helpers also catch failures raised while\n * running a respondable conversion; `toResponse` does not.\n *\n * @since 4.0.0\n */\nimport * as Cause from \"../../Cause.js\";\nimport * as Effect from \"../../Effect.js\";\nimport { hasProperty } from \"../../Predicate.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as Response from \"./HttpServerResponse.js\";\n/**\n * Protocol key used by values that can render themselves as\n * `HttpServerResponse` values.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const symbol = \"~effect/http/HttpServerRespondable\";\n/**\n * Returns `true` when the supplied value implements the `Respondable` protocol.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isRespondable = u => hasProperty(u, symbol);\nconst badRequest = /*#__PURE__*/Response.empty({\n status: 400\n});\nconst notFound = /*#__PURE__*/Response.empty({\n status: 404\n});\n/**\n * Converts a `Respondable` value into an `HttpServerResponse`.\n *\n * **Details**\n *\n * If the value is already an HTTP server response it is returned directly; errors\n * from the response conversion are converted to defects.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const toResponse = self => {\n if (Response.isHttpServerResponse(self)) {\n return Effect.succeed(self);\n }\n return Effect.orDie(self[symbol]());\n};\n/**\n * Attempts to convert an unknown value into an `HttpServerResponse`, falling back\n * to the supplied response when no conversion is available.\n *\n * **Details**\n *\n * `HttpServerResponse` and `Respondable` values are used directly, schema errors\n * become `400` responses, and no-such-element errors become `404` responses.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const toResponseOrElse = (u, orElse) => {\n if (Response.isHttpServerResponse(u)) {\n return Effect.succeed(u);\n } else if (isRespondable(u)) {\n return Effect.catchCause(u[symbol](), () => Effect.succeed(orElse));\n // add support for some commmon types\n } else if (Schema.isSchemaError(u)) {\n return Effect.succeed(badRequest);\n } else if (Cause.isNoSuchElementError(u)) {\n return Effect.succeed(notFound);\n }\n return Effect.succeed(orElse);\n};\n/**\n * Attempts to convert an unknown defect into an `HttpServerResponse`, falling\n * back to the supplied response when no conversion is available.\n *\n * **Details**\n *\n * Only `HttpServerResponse` and `Respondable` values receive special handling.\n *\n * @category accessors\n * @since 4.0.0\n */\nexport const toResponseOrElseDefect = (u, orElse) => {\n if (Response.isHttpServerResponse(u)) {\n return Effect.succeed(u);\n } else if (isRespondable(u)) {\n return Effect.catchCause(u[symbol](), () => Effect.succeed(orElse));\n }\n return Effect.succeed(orElse);\n};\n//# sourceMappingURL=HttpServerRespondable.js.map",
26
25
  "/**\n * Error model used by the unstable HTTP server runtime.\n *\n * This module defines the tagged failures that can occur while a server accepts\n * a request, matches a route, runs a handler, or builds and sends a response.\n * Request-scoped failures keep the request that caused them, and response\n * failures keep the response that was being produced, so applications can log,\n * report, or translate failures without reconstructing HTTP context.\n *\n * **Mental model**\n *\n * {@link HttpServerError} wraps a concrete {@link HttpServerErrorReason}.\n * {@link RequestParseError}, {@link RouteNotFound}, and {@link InternalError}\n * describe failures before or during request handling, while\n * {@link ResponseError} describes a failure tied to a response that was already\n * being built or sent. {@link ServeError} represents lower-level server\n * implementation failures outside an individual handler response.\n *\n * **Common tasks**\n *\n * Use {@link isHttpServerError} to refine unknown failures, inspect `request`\n * and `response` when reporting failures, and use {@link causeResponse} or\n * {@link exitResponse} when a handler cause or exit must be translated into the\n * HTTP response sent to the client.\n *\n * **Gotchas**\n *\n * The default response mapping is intentionally small: request parse errors\n * become `400`, route misses become ignored `404` failures, internal and\n * response errors become `500`, client aborts marked with {@link ClientAbort}\n * become `499`, and server-side interrupts become `503`. A\n * {@link ResponseError} does not reuse the failed response when converted; it\n * produces an empty `500` because that response may be invalid or partly sent.\n *\n * @since 4.0.0\n */\nimport * as Cause from \"../../Cause.js\";\nimport * as Context from \"../../Context.js\";\nimport * as Data from \"../../Data.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as ErrorReporter from \"../../ErrorReporter.js\";\nimport { constUndefined } from \"../../Function.js\";\nimport * as Option from \"../../Option.js\";\nimport { hasProperty } from \"../../Predicate.js\";\nimport * as Respondable from \"./HttpServerRespondable.js\";\nimport * as Response from \"./HttpServerResponse.js\";\nconst TypeId = \"~effect/http/HttpServerError\";\n/**\n * Tagged error for failures that occur while handling an HTTP server request.\n *\n * **Details**\n *\n * It wraps a `HttpServerErrorReason`, exposes the associated request and optional\n * response, and can be converted to an HTTP response through the `Respondable`\n * protocol.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class HttpServerError extends /*#__PURE__*/Data.TaggedError(\"HttpServerError\") {\n constructor(props) {\n if (\"cause\" in props.reason) {\n super({\n ...props,\n cause: props.reason.cause\n });\n } else {\n super(props);\n }\n }\n [TypeId] = TypeId;\n stack = `${this.name}: ${this.message}`;\n get request() {\n return this.reason.request;\n }\n get response() {\n return \"response\" in this.reason ? this.reason.response : undefined;\n }\n [Respondable.symbol]() {\n return this.reason[Respondable.symbol]();\n }\n get [ErrorReporter.ignore]() {\n return this.reason[ErrorReporter.ignore] ?? false;\n }\n get message() {\n return this.reason.message;\n }\n}\n/**\n * Error describing a failure to parse or read an incoming request.\n *\n * **Details**\n *\n * When converted to a response it produces an empty `400` response.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class RequestParseError extends /*#__PURE__*/Data.TaggedError(\"RequestParseError\") {\n /**\n * Converts the request error into a `400 Bad Request` response.\n *\n * @since 4.0.0\n */\n [Respondable.symbol]() {\n return Effect.succeed(Response.empty({\n status: 400\n }));\n }\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n get message() {\n return formatRequestMessage(this._tag, this.description, this.methodAndUrl);\n }\n}\n/**\n * Error indicating that no route matched the incoming request.\n *\n * **Details**\n *\n * When converted to a response it produces an empty `404` response, and it is\n * ignored by the error reporter.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class RouteNotFound extends /*#__PURE__*/Data.TaggedError(\"RouteNotFound\") {\n [Respondable.symbol]() {\n return Effect.succeed(Response.empty({\n status: 404\n }));\n }\n [ErrorReporter.ignore] = true;\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n get message() {\n return formatRequestMessage(this._tag, this.description, this.methodAndUrl);\n }\n}\n/**\n * Error describing an unexpected server-side failure while handling a request.\n *\n * **Details**\n *\n * When converted to a response it produces an empty `500` response.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class InternalError extends /*#__PURE__*/Data.TaggedError(\"InternalError\") {\n /**\n * Converts the server error into a `500 Internal Server Error` response.\n *\n * @since 4.0.0\n */\n [Respondable.symbol]() {\n return Effect.succeed(Response.empty({\n status: 500\n }));\n }\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n get message() {\n return formatRequestMessage(this._tag, this.description, this.methodAndUrl);\n }\n}\n/**\n * Returns `true` when the supplied value is an `HttpServerError`.\n *\n * @category predicates\n * @since 4.0.0\n */\nexport const isHttpServerError = u => hasProperty(u, TypeId);\n/**\n * Error describing a failure related to an HTTP response.\n *\n * **Details**\n *\n * It carries the request and response involved in the failure. When converted to\n * a response it produces an empty `500` response.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class ResponseError extends /*#__PURE__*/Data.TaggedError(\"ResponseError\") {\n [Respondable.symbol]() {\n return Effect.succeed(Response.empty({\n status: 500\n }));\n }\n get methodAndUrl() {\n return `${this.request.method} ${this.request.url}`;\n }\n get message() {\n const info = `${this._tag} (${this.response.status} ${this.methodAndUrl})`;\n return this.description ? `${info}: ${this.description}` : info;\n }\n}\n/**\n * Error wrapping a low-level failure from the HTTP server implementation.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class ServeError extends /*#__PURE__*/Data.TaggedError(\"ServeError\") {}\n/**\n * Context annotation used to mark an interrupt as caused by the client aborting\n * the request.\n *\n * **Details**\n *\n * `causeResponse` uses this annotation to map a pure client abort to a `499`\n * response instead of a server abort response.\n *\n * @category annotations\n * @since 4.0.0\n */\nexport class ClientAbort extends /*#__PURE__*/Context.Service()(\"effect/http/HttpServerError/ClientAbort\") {\n static annotation = /*#__PURE__*/this.context(true).pipe(/*#__PURE__*/Context.add(Cause.StackTrace, {\n name: \"ClientAbort\",\n stack: constUndefined,\n parent: undefined\n }));\n}\nconst formatRequestMessage = (reason, description, info) => {\n const prefix = `${reason} (${info})`;\n return description ? `${prefix}: ${description}` : prefix;\n};\n/**\n * Converts a failed handler cause into the HTTP response that should be sent and\n * the cause that should be reported.\n *\n * **Details**\n *\n * Respondable failures and defects can choose their own response, defects that\n * are already `HttpServerResponse` values are used directly, and pure interrupts\n * produce either `499` for client aborts or `503` for server aborts.\n *\n * @category error handling\n * @since 4.0.0\n */\nexport const causeResponse = cause => {\n let response;\n let effect = succeedInternalServerError;\n const failures = [];\n let interrupts = [];\n let isClientInterrupt = false;\n for (let i = 0; i < cause.reasons.length; i++) {\n const reason = cause.reasons[i];\n switch (reason._tag) {\n case \"Fail\":\n {\n effect = Respondable.toResponseOrElse(reason.error, internalServerError);\n failures.push(reason);\n break;\n }\n case \"Die\":\n {\n if (Response.isHttpServerResponse(reason.defect)) {\n response = reason.defect;\n } else {\n effect = Respondable.toResponseOrElseDefect(reason.defect, internalServerError);\n failures.push(reason);\n }\n break;\n }\n case \"Interrupt\":\n {\n isClientInterrupt = reason.annotations.has(ClientAbort.key);\n if (failures.length > 0) break;\n interrupts.push(reason);\n break;\n }\n }\n }\n if (response) {\n return Effect.succeed([response, Cause.fromReasons(failures)]);\n } else if (interrupts.length > 0 && failures.length === 0) {\n failures.push(...interrupts);\n effect = isClientInterrupt ? clientAbortError : serverAbortError;\n }\n return Effect.mapEager(effect, response => {\n failures.push(Cause.makeDieReason(response));\n return [response, Cause.fromReasons(failures)];\n });\n};\n/**\n * Derives an HTTP response from a failed handler cause synchronously.\n *\n * **Details**\n *\n * If the cause contains a defect that is already an `HttpServerResponse`, that\n * response is used and removed from the remaining cause. Otherwise the response\n * defaults to `500`.\n *\n * @category error handling\n * @since 4.0.0\n */\nexport const causeResponseStripped = cause => {\n let response;\n const failures = cause.reasons.filter(f => {\n if (f._tag === \"Die\" && Response.isHttpServerResponse(f.defect)) {\n response = f.defect;\n return false;\n }\n return true;\n });\n return [response ?? internalServerError, failures.length > 0 ? Option.some(Cause.fromReasons(failures)) : Option.none()];\n};\nconst internalServerError = /*#__PURE__*/Response.empty({\n status: 500\n});\nconst succeedInternalServerError = /*#__PURE__*/Effect.succeed(internalServerError);\nconst clientAbortError = /*#__PURE__*/Effect.succeed(/*#__PURE__*/Response.empty({\n status: 499\n}));\nconst serverAbortError = /*#__PURE__*/Effect.succeed(/*#__PURE__*/Response.empty({\n status: 503\n}));\n/**\n * Extracts the response from a successful handler exit, or derives a response\n * from the failure cause.\n *\n * @category error handling\n * @since 4.0.0\n */\nexport const exitResponse = exit => {\n if (exit._tag === \"Success\") {\n return exit.value;\n }\n return causeResponseStripped(exit.cause)[0];\n};\n//# sourceMappingURL=HttpServerError.js.map",
27
26
  "import * as Channel from \"../../Channel.js\";\nimport * as Context from \"../../Context.js\";\nimport * as Deferred from \"../../Deferred.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Exit from \"../../Exit.js\";\nimport * as FiberSet from \"../../FiberSet.js\";\nimport { constVoid, dual, flow } from \"../../Function.js\";\nimport * as Latch from \"../../Latch.js\";\nimport * as Layer from \"../../Layer.js\";\nimport * as Predicate from \"../../Predicate.js\";\nimport * as Pull from \"../../Pull.js\";\nimport * as Queue from \"../../Queue.js\";\nimport * as Result from \"../../Result.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as Scope from \"../../Scope.js\";\n/**\n * Runtime type identifier attached to `Socket` services.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const TypeId = \"~effect/socket/Socket\";\n/**\n * Returns `true` when a value is a `Socket`.\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isSocket = u => Predicate.hasProperty(u, TypeId);\n/**\n * Service tag for bidirectional socket transports.\n *\n * **When to use**\n *\n * Use to access or provide the socket implementation used by programs that\n * read and write frames through the Effect environment.\n *\n * @category services\n * @since 4.0.0\n */\nexport const Socket = /*#__PURE__*/Context.Service(\"effect/socket/Socket\");\n/**\n * Constructs a `Socket` from a raw read loop and scoped writer, deriving binary\n * and string read loops when they are not provided.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = options => Socket.of({\n [TypeId]: TypeId,\n runRaw: options.runRaw,\n run: options.run ?? ((handler, opts) => options.runRaw(data => typeof data === \"string\" ? handler(encoder.encode(data)) : data instanceof Uint8Array ? handler(data) : handler(new Uint8Array(data)), opts)),\n runString: options.runString ?? (options.run ? (handler, opts) => options.run(data => handler(decoder.decode(data)), opts) : (handler, opts) => options.runRaw(data => typeof data === \"string\" ? handler(data) : data instanceof Uint8Array ? handler(decoder.decode(data)) : handler(decoder.decode(new Uint8Array(data))), opts)),\n writer: options.writer\n});\nconst encoder = /*#__PURE__*/new TextEncoder();\nconst decoder = /*#__PURE__*/new TextDecoder();\nconst CloseEventTypeId = \"~effect/socket/Socket/CloseEvent\";\n/**\n * Represents a socket close event value carrying a close code and optional\n * reason.\n *\n * @category models\n * @since 4.0.0\n */\nexport class CloseEvent {\n /**\n * Marks this value as a socket close event for runtime guards.\n *\n * @since 4.0.0\n */\n [CloseEventTypeId];\n code;\n reason;\n constructor(code = 1000, reason) {\n this[CloseEventTypeId] = CloseEventTypeId;\n this.code = code;\n this.reason = reason;\n }\n /**\n * Formats the close code and optional reason for display.\n *\n * @since 4.0.0\n */\n toString() {\n return this.reason ? `${this.code}: ${this.reason}` : `${this.code}`;\n }\n}\n/**\n * Returns `true` when a value is a `CloseEvent`.\n *\n * @category refinements\n * @since 4.0.0\n */\nexport const isCloseEvent = u => Predicate.hasProperty(u, CloseEventTypeId);\n/**\n * Runtime type identifier attached to `SocketError` values.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const SocketErrorTypeId = \"~effect/socket/Socket/SocketError\";\n/**\n * Returns `true` when a value is a `SocketError`.\n *\n * @category refinements\n * @since 4.0.0\n */\nexport const isSocketError = u => Predicate.hasProperty(u, SocketErrorTypeId);\n/**\n * Typed error for failures that occur while reading from a socket.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class SocketReadError extends /*#__PURE__*/Schema.ErrorClass(\"effect/socket/Socket/SocketReadError\")({\n _tag: /*#__PURE__*/Schema.tag(\"SocketReadError\"),\n cause: Schema.Defect\n}) {\n /**\n * Default message used for socket read failures.\n *\n * @since 4.0.0\n */\n message = `An error occurred during Read`;\n}\n/**\n * Typed error for failures that occur while writing to a socket.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class SocketWriteError extends /*#__PURE__*/Schema.ErrorClass(\"effect/socket/Socket/SocketWriteError\")({\n _tag: /*#__PURE__*/Schema.tag(\"SocketWriteError\"),\n cause: Schema.Defect\n}) {\n /**\n * Default message used for socket write failures.\n *\n * @since 4.0.0\n */\n message = `An error occurred during Write`;\n}\n/**\n * Typed error for failures that occur while opening a socket, including\n * unknown open failures and open timeouts.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class SocketOpenError extends /*#__PURE__*/Schema.ErrorClass(\"effect/socket/Socket/SocketOpenError\")({\n _tag: /*#__PURE__*/Schema.tag(\"SocketOpenError\"),\n kind: /*#__PURE__*/Schema.Literals([\"Unknown\", \"Timeout\"]),\n cause: Schema.Defect\n}) {\n /**\n * Formats timeout and unknown open failures for display.\n *\n * @since 4.0.0\n */\n get message() {\n return this.kind === \"Timeout\" ? `timeout waiting for \"open\"` : `An error occurred during Open`;\n }\n}\n/**\n * Typed error for a socket close event, carrying the close code and optional\n * close reason.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class SocketCloseError extends /*#__PURE__*/Schema.ErrorClass(\"effect/socket/Socket/SocketCloseError\")({\n _tag: /*#__PURE__*/Schema.tag(\"SocketCloseError\"),\n code: Schema.Number,\n closeReason: /*#__PURE__*/Schema.optional(Schema.String)\n}) {\n /**\n * Separates clean socket close errors from errors that should remain failures.\n *\n * @since 4.0.0\n */\n static filterClean(isClean) {\n return function (u) {\n return SocketError.is(u) && u.reason._tag === \"SocketCloseError\" && isClean(u.reason.code) ? Result.succeed(u.reason) : Result.fail(u);\n };\n }\n get message() {\n if (this.closeReason) {\n return `${this.code}: ${this.closeReason}`;\n }\n return `${this.code}`;\n }\n}\n/**\n * Schema for all socket-specific error reasons.\n *\n * @category errors\n * @since 4.0.0\n */\nexport const SocketErrorReason = /*#__PURE__*/Schema.Union([SocketReadError, SocketWriteError, SocketOpenError, SocketCloseError]);\n/**\n * Tagged error that wraps socket read, write, open, and close failures while\n * preserving the underlying reason.\n *\n * @category errors\n * @since 4.0.0\n */\nexport class SocketError extends /*#__PURE__*/Schema.TaggedErrorClass(SocketErrorTypeId)(\"SocketError\", {\n _tag: /*#__PURE__*/Schema.tag(\"SocketError\"),\n reason: SocketErrorReason\n}) {\n // @effect-diagnostics-next-line overriddenSchemaConstructor:off\n constructor(props) {\n if (\"cause\" in props.reason) {\n super({\n ...props,\n cause: props.reason.cause\n });\n } else {\n super(props);\n }\n }\n /**\n * Marks this value as a socket error wrapper for runtime guards.\n *\n * @since 4.0.0\n */\n [SocketErrorTypeId] = SocketErrorTypeId;\n /**\n * Returns `true` when the value is a `SocketError`.\n *\n * @since 4.0.0\n */\n static is(u) {\n return isSocketError(u);\n }\n message = this.reason.message;\n}\n/**\n * Converts a `Socket` into a bidirectional `Channel`, mapping incoming string\n * or binary frames and writing outgoing frame batches to the socket.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const toChannelMap = (self, f) => Channel.fromTransform(Effect.fnUntraced(function* (upstream, scope) {\n const queue = yield* Queue.make();\n const writeScope = yield* Scope.fork(scope);\n const write = yield* Scope.provide(self.writer, writeScope);\n let chunk;\n let index = 0;\n const writeChunk = Effect.whileLoop({\n while: () => index < chunk.length,\n body: () => write(chunk[index++]),\n step: constVoid\n });\n yield* upstream.pipe(Effect.flatMap(arr => {\n if (arr.length === 1) return write(arr[0]);\n chunk = arr;\n index = 0;\n return writeChunk;\n }), Effect.forever({\n disableYield: true\n }), Effect.catchCauseFilter(Pull.filterNoDone, cause => Queue.failCause(queue, cause)), Effect.ensuring(Scope.close(writeScope, Exit.void)), Effect.forkIn(scope));\n yield* self.runRaw(data => {\n Queue.offerUnsafe(queue, f(data));\n }).pipe(Queue.into(queue), Effect.forkIn(scope));\n // @effect-diagnostics-next-line returnEffectInGen:off\n return Queue.takeAll(queue);\n}));\n/**\n * Converts a `Socket` into a binary `Channel`, encoding incoming string frames\n * as UTF-8 bytes.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const toChannel = self => {\n const encoder = new TextEncoder();\n return toChannelMap(self, data => typeof data === \"string\" ? encoder.encode(data) : data);\n};\n/**\n * Converts a `Socket` into a string `Channel`, decoding binary frames with the\n * optional text encoding.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const toChannelString = /*#__PURE__*/dual(args => isSocket(args[0]), (self, encoding) => {\n const decoder = new TextDecoder(encoding);\n return toChannelMap(self, data => typeof data === \"string\" ? data : decoder.decode(data));\n});\n/**\n * Creates a `Socket` to binary `Channel` adapter with a fixed upstream error\n * type.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const toChannelWith = () => self => toChannel(self);\n/**\n * Creates a binary socket `Channel` from the `Socket` service in the\n * environment.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const makeChannel = () => Channel.unwrap(Effect.map(Socket, toChannelWith()));\n/**\n * Default close-code classifier that treats every socket close code as an\n * error.\n *\n * @category predicates\n * @since 4.0.0\n */\nexport const defaultCloseCodeIsError = _code => true;\n/**\n * Context service for the active `WebSocket` instance available while a\n * WebSocket-backed socket run is handling events.\n *\n * @category services\n * @since 4.0.0\n */\nexport class WebSocket extends /*#__PURE__*/Context.Service()(\"~effect/socket/Socket/WebSocket\") {}\n/**\n * Context service for constructing `WebSocket` instances from a URL and\n * optional protocols.\n *\n * @category services\n * @since 4.0.0\n */\nexport class WebSocketConstructor extends /*#__PURE__*/Context.Service()(\"@effect/platform/Socket/WebSocketConstructor\") {}\n/**\n * Layer that provides `WebSocketConstructor` using `globalThis.WebSocket`.\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layerWebSocketConstructorGlobal = /*#__PURE__*/Layer.succeed(WebSocketConstructor)((url, protocols) => new globalThis.WebSocket(url, protocols));\n/**\n * Creates a `Socket` backed by a `WebSocketConstructor`, acquiring the\n * WebSocket for each run and using the close-code classifier to decide which\n * closes fail the run.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const makeWebSocket = (url, options) => WebSocketConstructor.use(makeWs => fromWebSocket(Effect.acquireRelease((typeof url === \"string\" ? Effect.succeed(url) : url).pipe(Effect.map(url => makeWs(url, options?.protocols))), ws => Effect.sync(() => ws.close(1000))), options));\n/**\n * Builds a `Socket` from a scoped WebSocket acquisition effect, waiting for the\n * socket to open, dispatching message handlers in fibers, and translating\n * open, read, and close events into `SocketError` values.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fromWebSocket = (acquire, options) => Effect.withFiber(fiber => {\n let currentWS;\n const latch = Latch.makeUnsafe(false);\n const acquireContext = fiber.context;\n const closeCodeIsError = options?.closeCodeIsError ?? defaultCloseCodeIsError;\n const runRaw = (handler, opts) => Effect.scopedWith(Effect.fnUntraced(function* (scope) {\n const fiberSet = yield* FiberSet.make().pipe(Scope.provide(scope));\n const ws = yield* Scope.provide(acquire, scope);\n const run = yield* Effect.provideService(FiberSet.runtime(fiberSet)(), WebSocket, ws);\n let open = false;\n function onMessage(event) {\n if (event.data instanceof Blob) {\n const effect = Effect.flatMap(Effect.promise(() => event.data.arrayBuffer()), buffer => {\n const result = handler(new Uint8Array(buffer));\n return Effect.isEffect(result) ? result : Effect.void;\n });\n return run(effect);\n }\n const result = handler(event.data);\n if (Effect.isEffect(result)) {\n run(result);\n }\n }\n function onError(cause) {\n ws.removeEventListener(\"message\", onMessage);\n ws.removeEventListener(\"close\", onClose);\n Deferred.doneUnsafe(fiberSet.deferred, Effect.fail(new SocketError({\n reason: open ? new SocketReadError({\n cause\n }) : new SocketOpenError({\n kind: \"Unknown\",\n cause\n })\n })));\n }\n function onClose(event) {\n const code = typeof event.code === \"number\" ? event.code : 1001;\n ws.removeEventListener(\"message\", onMessage);\n ws.removeEventListener(\"error\", onError);\n Deferred.doneUnsafe(fiberSet.deferred, Effect.fail(new SocketError({\n reason: new SocketCloseError({\n code,\n closeReason: event.reason\n })\n })));\n }\n ws.addEventListener(\"close\", onClose, {\n once: true\n });\n ws.addEventListener(\"error\", onError, {\n once: true\n });\n ws.addEventListener(\"message\", onMessage);\n if (ws.readyState !== 1) {\n const openDeferred = Deferred.makeUnsafe();\n ws.addEventListener(\"open\", () => {\n open = true;\n Deferred.doneUnsafe(openDeferred, Effect.void);\n }, {\n once: true\n });\n yield* Deferred.await(openDeferred).pipe(Effect.timeoutOrElse({\n duration: options?.openTimeout ?? 10000,\n orElse: () => Effect.fail(new SocketError({\n reason: new SocketOpenError({\n kind: \"Timeout\",\n cause: new Error(\"timeout waiting for \\\"open\\\"\")\n })\n }))\n }), Effect.raceFirst(FiberSet.join(fiberSet)));\n }\n open = true;\n currentWS = ws;\n latch.openUnsafe();\n if (opts?.onOpen) yield* opts.onOpen;\n return yield* Effect.catchFilter(FiberSet.join(fiberSet), SocketCloseError.filterClean(_ => !closeCodeIsError(_)), () => Effect.void);\n })).pipe(Effect.updateContext(input => Context.merge(acquireContext, input)), Effect.ensuring(Effect.sync(() => {\n latch.closeUnsafe();\n currentWS = undefined;\n })));\n const write = chunk => latch.whenOpen(Effect.sync(() => {\n const ws = currentWS;\n if (isCloseEvent(chunk)) {\n ws.close(chunk.code, chunk.reason);\n } else {\n ws.send(chunk);\n }\n }));\n const writer = Effect.succeed(write);\n return Effect.succeed(make({\n runRaw,\n writer\n }));\n});\n/**\n * Creates a binary `Channel` backed by a WebSocket URL, requiring a\n * `WebSocketConstructor` service.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const makeWebSocketChannel = (url, options) => Channel.unwrap(Effect.map(makeWebSocket(url, options), toChannelWith()));\n/**\n * Layer that provides a `Socket` service backed by a WebSocket URL or URL\n * effect.\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layerWebSocket = /*#__PURE__*/flow(makeWebSocket, /*#__PURE__*/Layer.effect(Socket));\n/**\n * Context reference for socket send queue capacity, defaulting to `16`.\n *\n * @category fiber refs\n * @since 4.0.0\n */\nexport const SendQueueCapacity = /*#__PURE__*/Context.Reference(\"~effect/socket/Socket/SendQueueCapacity\", {\n defaultValue: () => 16\n});\n/**\n * Builds a `Socket` from a scoped `InputTransformStream`, reading incoming\n * chunks through socket handlers and writing outgoing chunks to the writable\n * stream, encoding strings as UTF-8 and using close-code classification for\n * `CloseEvent` values.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const fromTransformStream = (acquire, options) => Effect.withFiber(fiber => {\n const latch = Latch.makeUnsafe(false);\n let currentStream;\n const acquireServices = fiber.context;\n const closeCodeIsError = options?.closeCodeIsError ?? defaultCloseCodeIsError;\n const runRaw = (handler, opts) => Effect.scopedWith(Effect.fnUntraced(function* (scope) {\n const stream = yield* Scope.provide(acquire, scope);\n const reader = stream.readable.getReader();\n yield* Scope.addFinalizer(scope, Effect.promise(() => reader.cancel()));\n const fiberSet = yield* FiberSet.make().pipe(Scope.provide(scope));\n const runFork = yield* FiberSet.runtime(fiberSet)();\n yield* Effect.tryPromise({\n try: async () => {\n while (true) {\n const {\n done,\n value\n } = await reader.read();\n if (done) {\n throw new SocketError({\n reason: new SocketCloseError({\n code: 1000\n })\n });\n }\n const result = handler(value);\n if (Effect.isEffect(result)) {\n runFork(result);\n }\n }\n },\n catch: cause => isSocketError(cause) ? cause : new SocketError({\n reason: new SocketReadError({\n cause\n })\n })\n }).pipe(FiberSet.run(fiberSet));\n currentStream = {\n stream,\n fiberSet\n };\n yield* latch.open;\n if (opts?.onOpen) yield* opts.onOpen;\n return yield* Effect.catchFilter(FiberSet.join(fiberSet), SocketCloseError.filterClean(_ => !closeCodeIsError(_)), () => Effect.void);\n })).pipe(_ => _, Effect.updateContext(input => Context.merge(acquireServices, input)), Effect.ensuring(Effect.sync(() => {\n latch.closeUnsafe();\n currentStream = undefined;\n })));\n const writers = new WeakMap();\n const getWriter = stream => {\n let writer = writers.get(stream);\n if (!writer) {\n writer = stream.writable.getWriter();\n writers.set(stream, writer);\n }\n return writer;\n };\n const write = chunk => latch.whenOpen(Effect.suspend(() => {\n const {\n fiberSet,\n stream\n } = currentStream;\n if (isCloseEvent(chunk)) {\n return Deferred.fail(fiberSet.deferred, new SocketError({\n reason: new SocketCloseError({\n code: chunk.code,\n closeReason: chunk.reason\n })\n }));\n }\n return Effect.promise(() => getWriter(stream).write(typeof chunk === \"string\" ? encoder.encode(chunk) : chunk));\n }));\n const writer = Effect.acquireRelease(Effect.succeed(write), () => Effect.promise(async () => {\n if (!currentStream) return;\n await getWriter(currentStream.stream).close();\n }));\n return Effect.succeed(make({\n runRaw,\n writer\n }));\n});\n//# sourceMappingURL=Socket.js.map",
@@ -35,18 +34,10 @@
35
34
  "import * as Effect from \"../../../Effect.js\";\n/** @internal */\nexport const requestPreResponseHandlers = /*#__PURE__*/new WeakMap();\n/** @internal */\nexport const appendPreResponseHandlerUnsafe = (request, handler) => {\n const prev = requestPreResponseHandlers.get(request.source);\n const next = prev ? (request, response) => Effect.flatMap(prev(request, response), response => handler(request, response)) : handler;\n requestPreResponseHandlers.set(request.source, next);\n};\n//# sourceMappingURL=preResponseHandler.js.map",
36
35
  "/**\n * Server-side HTTP middleware for wrapping `HttpServerResponse` effects with\n * cross-cutting request and response behavior.\n *\n * A middleware is a function from one HTTP server app effect to another. The app\n * is evaluated with the current `HttpServerRequest` service in its context, so\n * middleware in this module can inspect or rewrite the request, provide\n * request-scoped services, attach pre-response hooks, or observe the app exit\n * while preserving normal Effect error and interruption semantics.\n *\n * Use this module for common server concerns such as access logging, trace span\n * creation, trusting forwarded proxy headers, parsing search parameters, and\n * adding CORS handling. Middleware can be applied directly when serving an\n * `HttpServer` / `HttpEffect` app or registered through `HttpRouter.middleware`\n * for route-scoped or global behavior.\n *\n * Middleware composition is order-sensitive, and each middleware may change the\n * wrapped effect's requirements or error channel. These functions expect a\n * per-request `HttpServerRequest` to be present; context-providing middleware\n * should wrap handlers before they access the provided service, and\n * error-handling middleware should be installed where its transformed error type\n * matches the surrounding app or router registration.\n *\n * @since 4.0.0\n */\nimport { Clock } from \"../../Clock.js\";\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport { constant, constFalse } from \"../../Function.js\";\nimport * as internalEffect from \"../../internal/effect.js\";\nimport * as Layer from \"../../Layer.js\";\nimport * as Option from \"../../Option.js\";\nimport { TracerEnabled } from \"../../References.js\";\nimport { ParentSpan } from \"../../Tracer.js\";\nimport * as Headers from \"./Headers.js\";\nimport { causeResponseStripped, exitResponse } from \"./HttpServerError.js\";\nimport { HttpServerRequest } from \"./HttpServerRequest.js\";\nimport * as Request from \"./HttpServerRequest.js\";\nimport * as Response from \"./HttpServerResponse.js\";\nimport * as TraceContext from \"./HttpTraceContext.js\";\nimport { appendPreResponseHandlerUnsafe } from \"./internal/preResponseHandler.js\";\n/**\n * Defines an `HttpMiddleware` while preserving its precise type.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = middleware => middleware;\nconst loggerDisabledRequests = /*#__PURE__*/new WeakSet();\nconst stripSearchAndHash = url => {\n const queryIndex = url.indexOf(\"?\");\n const hashIndex = url.indexOf(\"#\");\n if (queryIndex === -1) {\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n if (hashIndex === -1) {\n return url.slice(0, queryIndex);\n }\n return url.slice(0, Math.min(queryIndex, hashIndex));\n};\n/**\n * Runs an effect with HTTP response logging disabled for the current server request.\n *\n * @category Logger\n * @since 4.0.0\n */\nexport const withLoggerDisabled = self => Effect.withFiber(fiber => {\n const request = Context.getUnsafe(fiber.context, HttpServerRequest);\n loggerDisabledRequests.add(request.source);\n return self;\n});\n/**\n * Context reference for a predicate that disables server-side tracing for matching requests.\n *\n * @category Tracer\n * @since 4.0.0\n */\nexport const TracerDisabledWhen = /*#__PURE__*/Context.Reference(\"effect/http/HttpMiddleware/TracerDisabledWhen\", {\n defaultValue: () => constFalse\n});\n/**\n * Creates a layer that disables server-side tracing for requests whose URL exactly matches one of the supplied URLs.\n *\n * @category Tracer\n * @since 4.0.0\n */\nexport const layerTracerDisabledForUrls = urls => Layer.succeed(TracerDisabledWhen)(req => urls.includes(req.url));\n/**\n * Context reference for generating server span names from HTTP server requests.\n *\n * @category Tracer\n * @since 4.0.0\n */\nexport const SpanNameGenerator = /*#__PURE__*/Context.Reference(\"@effect/platform/HttpMiddleware/SpanNameGenerator\", {\n defaultValue: () => request => `http.server ${request.method}`\n});\n/**\n * Middleware that logs sent HTTP responses with request method, request URL, and response status annotations.\n *\n * @category Logger\n * @since 4.0.0\n */\nexport const logger = /*#__PURE__*/make(httpApp => Effect.withFiber(fiber => {\n const request = Context.getUnsafe(fiber.context, HttpServerRequest);\n const path = stripSearchAndHash(request.url);\n return Effect.withLogSpan(Effect.flatMap(Effect.exit(httpApp), exit => {\n if (loggerDisabledRequests.has(request.source)) {\n return exit;\n } else if (exit._tag === \"Failure\") {\n const [response, cause] = causeResponseStripped(exit.cause);\n return Effect.andThen(Effect.annotateLogs(Effect.log(Option.getOrElse(cause, () => \"Sent HTTP Response\")), {\n \"http.method\": request.method,\n \"http.url\": path,\n \"http.status\": response.status\n }), exit);\n }\n return Effect.andThen(Effect.annotateLogs(Effect.log(\"Sent HTTP response\"), {\n \"http.method\": request.method,\n \"http.url\": path,\n \"http.status\": exit.value.status\n }), exit);\n }), \"http.span\");\n}));\n/**\n * Middleware that creates a server trace span for each request and records request and response HTTP attributes.\n *\n * @category Tracer\n * @since 4.0.0\n */\nexport const tracer = /*#__PURE__*/make(httpApp => Effect.withFiber(fiber => {\n const request = Context.getUnsafe(fiber.context, HttpServerRequest);\n const disabled = !fiber.getRef(TracerEnabled) || fiber.getRef(TracerDisabledWhen)(request);\n if (disabled) {\n return httpApp;\n }\n const nameGenerator = fiber.getRef(SpanNameGenerator);\n const span = internalEffect.makeSpanUnsafe(fiber, nameGenerator(request), {\n parent: Option.getOrUndefined(TraceContext.fromHeaders(request.headers)),\n kind: \"server\"\n });\n const prevServices = fiber.context;\n fiber.setContext(Context.add(fiber.context, ParentSpan, span));\n return Effect.onExitPrimitive(httpApp, exit => {\n fiber.setContext(prevServices);\n const endTime = fiber.getRef(Clock).currentTimeNanosUnsafe();\n fiber.currentDispatcher.scheduleTask(() => {\n const url = Request.toURL(request);\n if (Option.isSome(url) && (url.value.username !== \"\" || url.value.password !== \"\")) {\n url.value.username = \"REDACTED\";\n url.value.password = \"REDACTED\";\n }\n const redactedHeaderNames = fiber.getRef(Headers.CurrentRedactedNames);\n const requestHeaders = Headers.redact(request.headers, redactedHeaderNames);\n span.attribute(\"http.request.method\", request.method);\n if (Option.isSome(url)) {\n span.attribute(\"url.full\", url.value.toString());\n span.attribute(\"url.path\", url.value.pathname);\n const query = url.value.search.slice(1);\n if (query !== \"\") {\n span.attribute(\"url.query\", url.value.search.slice(1));\n }\n span.attribute(\"url.scheme\", url.value.protocol.slice(0, -1));\n }\n if (request.headers[\"user-agent\"] !== undefined) {\n span.attribute(\"user_agent.original\", request.headers[\"user-agent\"]);\n }\n for (const name in requestHeaders) {\n span.attribute(`http.request.header.${name}`, String(requestHeaders[name]));\n }\n if (Option.isSome(request.remoteAddress)) {\n span.attribute(\"client.address\", request.remoteAddress.value);\n }\n const response = exitResponse(exit);\n span.attribute(\"http.response.status_code\", response.status);\n const responseHeaders = Headers.redact(response.headers, redactedHeaderNames);\n for (const name in responseHeaders) {\n span.attribute(`http.response.header.${name}`, String(responseHeaders[name]));\n }\n span.end(endTime, exit);\n }, 0);\n return undefined;\n }, true);\n}));\n/**\n * Middleware that trusts `X-Forwarded-Host` and `X-Forwarded-For`, updating the request host header and remote address.\n *\n * @category Proxying\n * @since 4.0.0\n */\nexport const xForwardedHeaders = /*#__PURE__*/make(httpApp => Effect.updateService(httpApp, HttpServerRequest, request => request.headers[\"x-forwarded-host\"] ? request.modify({\n headers: Headers.set(request.headers, \"host\", request.headers[\"x-forwarded-host\"]),\n remoteAddress: Option.fromNullishOr(request.headers[\"x-forwarded-for\"]?.split(\",\")[0].trim())\n}) : request));\n/**\n * Middleware that parses the current request URL's search parameters and provides them as `ParsedSearchParams`.\n *\n * @category search params\n * @since 4.0.0\n */\nexport const searchParamsParser = httpApp => Effect.withFiber(fiber => {\n const services = fiber.context;\n const request = Context.getUnsafe(services, HttpServerRequest);\n const params = Request.searchParamsFromURL(new URL(request.originalUrl));\n return Effect.provideService(httpApp, Request.ParsedSearchParams, params);\n});\n/**\n * Middleware that handles CORS preflight requests and adds configured CORS headers to HTTP responses.\n *\n * @category CORS\n * @since 4.0.0\n */\nexport const cors = options => {\n const opts = {\n allowedOrigins: options?.allowedOrigins ?? [],\n allowedMethods: options?.allowedMethods ?? [\"GET\", \"HEAD\", \"PUT\", \"PATCH\", \"POST\", \"DELETE\"],\n allowedHeaders: options?.allowedHeaders ?? [],\n exposedHeaders: options?.exposedHeaders ?? [],\n credentials: options?.credentials ?? false,\n maxAge: options?.maxAge\n };\n const isAllowedOrigin = typeof opts.allowedOrigins === \"function\" ? opts.allowedOrigins : origin => opts.allowedOrigins.includes(origin);\n const allowOrigin = typeof opts.allowedOrigins === \"function\" || opts.allowedOrigins.length > 1 ? originHeader => {\n if (!isAllowedOrigin(originHeader)) return undefined;\n return {\n \"access-control-allow-origin\": originHeader,\n vary: \"Origin\"\n };\n } : opts.allowedOrigins.length === 0 ? constant({\n \"access-control-allow-origin\": \"*\"\n }) : constant({\n \"access-control-allow-origin\": opts.allowedOrigins[0],\n vary: \"Origin\"\n });\n const allowMethods = opts.allowedMethods.length > 0 ? {\n \"access-control-allow-methods\": opts.allowedMethods.join(\", \")\n } : undefined;\n const allowCredentials = opts.credentials ? {\n \"access-control-allow-credentials\": \"true\"\n } : undefined;\n const allowHeaders = accessControlRequestHeaders => {\n if (opts.allowedHeaders.length === 0 && accessControlRequestHeaders) {\n return {\n vary: \"Access-Control-Request-Headers\",\n \"access-control-allow-headers\": accessControlRequestHeaders\n };\n }\n if (opts.allowedHeaders) {\n return {\n \"access-control-allow-headers\": opts.allowedHeaders.join(\",\")\n };\n }\n return undefined;\n };\n const exposeHeaders = opts.exposedHeaders.length > 0 ? {\n \"access-control-expose-headers\": opts.exposedHeaders.join(\",\")\n } : undefined;\n const maxAge = opts.maxAge ? {\n \"access-control-max-age\": opts.maxAge.toString()\n } : undefined;\n const headersFromRequest = request => {\n const origin = request.headers[\"origin\"];\n return Headers.fromRecordUnsafe({\n ...allowOrigin(origin),\n ...allowCredentials,\n ...exposeHeaders\n });\n };\n const headersFromRequestOptions = request => {\n const origin = request.headers[\"origin\"];\n const accessControlRequestHeaders = request.headers[\"access-control-request-headers\"];\n return Headers.fromRecordUnsafe({\n ...allowOrigin(origin),\n ...allowCredentials,\n ...exposeHeaders,\n ...allowMethods,\n ...allowHeaders(accessControlRequestHeaders),\n ...maxAge\n });\n };\n const preResponseHandler = (request, response) => Effect.succeed(Response.setHeaders(response, headersFromRequest(request)));\n return httpApp => Effect.withFiber(fiber => {\n const request = Context.getUnsafe(fiber.context, HttpServerRequest);\n if (request.method === \"OPTIONS\") {\n return Effect.succeed(Response.empty({\n status: 204,\n headers: headersFromRequestOptions(request)\n }));\n }\n appendPreResponseHandlerUnsafe(request, preResponseHandler);\n return httpApp;\n });\n};\n//# sourceMappingURL=HttpMiddleware.js.map",
37
36
  "import * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Exit from \"../../Exit.js\";\nimport * as Fiber from \"../../Fiber.js\";\nimport { dual } from \"../../Function.js\";\nimport { reportCauseUnsafe } from \"../../internal/effect.js\";\nimport * as Layer from \"../../Layer.js\";\nimport * as Scope from \"../../Scope.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as HttpBody from \"./HttpBody.js\";\nimport { tracer } from \"./HttpMiddleware.js\";\nimport { causeResponse, ClientAbort, HttpServerError, InternalError } from \"./HttpServerError.js\";\nimport { HttpServerRequest } from \"./HttpServerRequest.js\";\nimport * as Request from \"./HttpServerRequest.js\";\nimport * as Response from \"./HttpServerResponse.js\";\nimport { appendPreResponseHandlerUnsafe, requestPreResponseHandlers } from \"./internal/preResponseHandler.js\";\n/**\n * Runs an HTTP server effect, sends the produced response with the supplied handler, and converts failures into HTTP responses.\n *\n * @category combinators\n * @since 4.0.0\n */\nexport const toHandled = (self, handleResponse, middleware) => {\n const handleCause = cause => Effect.flatMapEager(causeResponse(cause), ([response, cause]) => {\n const fiber = Fiber.getCurrent();\n reportCauseUnsafe(fiber, cause);\n const request = Context.getUnsafe(fiber.context, HttpServerRequest);\n const handler = requestPreResponseHandlers.get(request.source);\n const cont = cause.reasons.length === 0 ? Effect.succeed(response) : Effect.failCause(cause);\n if (handler === undefined) {\n ;\n request[handledSymbol] = true;\n return Effect.flatMapEager(handleResponse(request, response), () => cont);\n }\n return Effect.flatMapEager(Effect.flatMapEager(handler(request, response), response => {\n ;\n request[handledSymbol] = true;\n return handleResponse(request, response);\n }), () => cont);\n });\n const responded = Effect.matchCauseEffect(self, {\n onSuccess: response => {\n const fiber = Fiber.getCurrent();\n const request = Context.getUnsafe(fiber.context, HttpServerRequest);\n const handler = requestPreResponseHandlers.get(request.source);\n if (handler === undefined) {\n ;\n request[handledSymbol] = true;\n return Effect.mapEager(handleResponse(request, response), () => response);\n }\n return Effect.flatMapEager(handler(request, response), sentResponse => {\n ;\n request[handledSymbol] = true;\n return Effect.mapEager(handleResponse(request, sentResponse), () => response);\n });\n },\n onFailure: handleCause\n });\n const withMiddleware = middleware === undefined ? tracer(responded) : Effect.matchCauseEffect(tracer(middleware(responded)), {\n onFailure(cause) {\n const fiber = Fiber.getCurrent();\n reportCauseUnsafe(fiber, cause);\n const request = Context.getUnsafe(fiber.context, HttpServerRequest);\n if (handledSymbol in request) return Effect.void;\n return Effect.matchCauseEffectEager(causeResponse(cause), {\n onFailure(_) {\n return handleResponse(request, Response.empty({\n status: 500\n }));\n },\n onSuccess([response]) {\n return handleResponse(request, response);\n }\n });\n },\n onSuccess(response) {\n const fiber = Fiber.getCurrent();\n const request = Context.getUnsafe(fiber.context, Request.HttpServerRequest);\n return handledSymbol in request ? Effect.void : handleResponse(request, response);\n }\n });\n return Effect.uninterruptible(scoped(withMiddleware));\n};\nconst handledSymbol = /*#__PURE__*/Symbol.for(\"effect/http/HttpEffect/handled\");\n/**\n * Disables automatic closing for an HTTP request scope.\n *\n * **Gotchas**\n *\n * Use only when another owner will close the scope; otherwise resources attached\n * to the request scope can leak.\n *\n * @category resource management\n * @since 4.0.0\n */\nexport const scopeDisableClose = scope => {\n ;\n scope[scopeEjected] = true;\n};\n/**\n * Returns a streaming server response that closes the request scope when the body stream exits.\n *\n * @category resource management\n * @since 4.0.0\n */\nexport const scopeTransferToStream = response => {\n if (response.body._tag !== \"Stream\") {\n return response;\n }\n const fiber = Fiber.getCurrent();\n const scope = Context.getUnsafe(fiber.context, Scope.Scope);\n scopeDisableClose(scope);\n return Response.setBody(response, HttpBody.stream(Stream.onExit(response.body.stream, exit => Scope.close(scope, exit)), response.body.contentType, response.body.contentLength));\n};\nconst scopeEjected = /*#__PURE__*/Symbol.for(\"effect/http/HttpEffect/scopeEjected\");\nconst scoped = effect => Effect.withFiber(fiber => {\n const scope = Scope.makeUnsafe();\n const prevServices = fiber.context;\n fiber.setContext(Context.add(fiber.context, Scope.Scope, scope));\n return Effect.onExitPrimitive(effect, exit => {\n fiber.setContext(prevServices);\n if (scopeEjected in scope) return undefined;\n return Scope.closeUnsafe(scope, exit);\n }, true);\n});\n/**\n * Registers an additional pre-response handler for the current HTTP server request.\n *\n * @category fiber refs\n * @since 4.0.0\n */\nexport const appendPreResponseHandler = handler => HttpServerRequest.use(request => {\n appendPreResponseHandlerUnsafe(request, handler);\n return Effect.void;\n});\nexport {\n/**\n * Registers a pre-response handler for the supplied HTTP server request.\n *\n * @category fiber refs\n * @since 4.0.0\n */\nappendPreResponseHandlerUnsafe };\n/**\n * Runs an effect after registering a pre-response handler for the current HTTP server request.\n *\n * @category fiber refs\n * @since 4.0.0\n */\nexport const withPreResponseHandler = /*#__PURE__*/dual(2, (self, handler) => HttpServerRequest.use(request => {\n appendPreResponseHandlerUnsafe(request, handler);\n return self;\n}));\n/**\n * Converts an HTTP server effect into a Web `Request` handler using the supplied base context and optional middleware.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toWebHandlerWith = context => (self, middleware) => {\n const resolveSymbol = Symbol.for(\"@effect/platform/HttpApp/resolve\");\n const httpApp = toHandled(self, (request, response) => {\n response = scopeTransferToStream(response);\n request[resolveSymbol](Response.toWeb(response, {\n withoutBody: request.method === \"HEAD\",\n context\n }));\n return Effect.void;\n }, middleware);\n return (request, reqContext) => new Promise(resolve => {\n const contextMap = new Map(context.mapUnsafe);\n if (Context.isContext(reqContext)) {\n for (const [key, value] of reqContext.mapUnsafe) {\n contextMap.set(key, value);\n }\n }\n const httpServerRequest = Request.fromWeb(request);\n contextMap.set(HttpServerRequest.key, httpServerRequest);\n httpServerRequest[resolveSymbol] = resolve;\n const fiber = Effect.runForkWith(Context.makeUnsafe(contextMap))(httpApp);\n request.signal?.addEventListener(\"abort\", () => {\n fiber.interruptUnsafe(undefined, ClientAbort.annotation);\n }, {\n once: true\n });\n });\n};\n/**\n * Converts an HTTP server effect into a Web `Request` handler using an empty base context.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toWebHandler = /*#__PURE__*/toWebHandlerWith(/*#__PURE__*/Context.empty());\n/**\n * Builds a Web `Request` handler from a layer and handler factory, returning the handler with a `dispose` function for the layer scope.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toWebHandlerLayerWith = (layer, options) => {\n const scope = Scope.makeUnsafe();\n const dispose = () => Effect.runPromise(Scope.close(scope, Exit.void));\n let handlerCache;\n let handlerPromise;\n function handler(request, context) {\n if (handlerCache) {\n return handlerCache(request, context);\n }\n handlerPromise ??= Effect.runPromise(Effect.gen(function* () {\n const context = yield* options.memoMap ? Layer.buildWithMemoMap(layer, options.memoMap, scope) : Layer.buildWithScope(layer, scope);\n return handlerCache = toWebHandlerWith(context)(yield* options.toHandler(context), options.middleware);\n }));\n return handlerPromise.then(f => f(request, context));\n }\n return {\n dispose,\n handler: handler\n };\n};\n/**\n * Builds a Web `Request` handler for an HTTP server effect using a layer to provide its services, returning the handler with a `dispose` function.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const toWebHandlerLayer = (self, layer, options) => toWebHandlerLayerWith(layer, {\n ...options,\n toHandler: () => Effect.succeed(self)\n});\n/**\n * Adapts a Web `Request` handler into an HTTP server effect for the current `HttpServerRequest`.\n *\n * @category converting\n * @since 4.0.0\n */\nexport const fromWebHandler = handler => Effect.callback((resume, signal) => {\n const fiber = Fiber.getCurrent();\n const request = Context.getUnsafe(fiber.context, HttpServerRequest);\n const requestResult = Request.toWebResult(request, {\n signal,\n context: fiber.context\n });\n if (requestResult._tag === \"Failure\") {\n return resume(Effect.fail(new HttpServerError({\n reason: requestResult.failure\n })));\n }\n handler(requestResult.success).then(response => resume(Effect.succeed(Response.fromWeb(response))), cause => resume(Effect.fail(new HttpServerError({\n reason: new InternalError({\n cause,\n request,\n description: \"HttpApp.fromWebHandler: Error in handler\"\n })\n }))));\n});\n//# sourceMappingURL=HttpEffect.js.map",
38
- "/**\n * Layer-based server-side routing for Effect HTTP applications.\n *\n * `HttpRouter` collects routes and router middleware while an application layer\n * is being built, then exposes the registered route table as an\n * `HttpServerResponse` effect for each incoming `HttpServerRequest`. Use it for\n * APIs, webhooks, and Fetch handlers that want request-scoped services, schema\n * decoding, and typed middleware to participate in the same `Layer` graph as\n * the rest of the application.\n *\n * **Mental model**\n *\n * Route layers do not handle requests immediately. They register `Route` values\n * into the current `HttpRouter`; `serve`, `toHttpEffect`, and `toWebHandler`\n * build the layer, read the completed router, and run the matching handler for\n * each request. During a request, the router provides `HttpServerRequest`,\n * `Scope`, parsed search parameters, and `RouteContext`, so handlers can decode\n * path, search, and body data or access services supplied by router middleware.\n *\n * **Common tasks**\n *\n * - Register individual routes with `add` or batches with `addAll`.\n * - Group routes under a prefix with `addAll(..., { prefix })` or\n * `router.prefixed`.\n * - Decode route, search, and JSON body data with `schemaPathParams`,\n * `schemaParams`, `schemaNoBody`, and `schemaJson`.\n * - Apply route-scoped middleware with `middleware(...).layer`, or install\n * global router middleware for all routes.\n * - Serve the layer with `serve` or create a Fetch-compatible handler with\n * `toWebHandler`.\n *\n * **Gotchas**\n *\n * Paths must be absolute `/` paths or the wildcard `*`. `HEAD` falls back to\n * `GET`, and wildcard paths ending in `/*` also match the prefix path itself.\n * For prefixed routes the matched prefix is removed from\n * `HttpServerRequest.url` before the handler sees it. Middleware passed to\n * `serve` wraps the wider server chain; use router middleware when you need to\n * provide request dependencies, handle configured route errors, or change the\n * response that will be sent.\n *\n * @since 4.0.0\n */\nimport * as Arr from \"../../Array.js\";\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport { compose, dual, identity } from \"../../Function.js\";\nimport * as Layer from \"../../Layer.js\";\nimport * as Option from \"../../Option.js\";\nimport * as Schema from \"../../Schema.js\";\nimport * as Scope from \"../../Scope.js\";\nimport * as Tracer from \"../../Tracer.js\";\nimport * as FindMyWay from \"./FindMyWay.js\";\nimport * as HttpEffect from \"./HttpEffect.js\";\nimport * as HttpMiddleware from \"./HttpMiddleware.js\";\nimport * as HttpServer from \"./HttpServer.js\";\nimport * as HttpServerError from \"./HttpServerError.js\";\nimport * as HttpServerRequest from \"./HttpServerRequest.js\";\nimport * as HttpServerResponse from \"./HttpServerResponse.js\";\nconst TypeId = \"~effect/http/HttpRouter\";\n/**\n * Service tag for the HTTP router used while constructing an HTTP application.\n * Route and middleware layers require this service to register themselves with\n * the router.\n *\n * @category HttpRouter\n * @since 4.0.0\n */\nexport const HttpRouter = /*#__PURE__*/Context.Service(\"effect/http/HttpRouter\");\n/**\n * Constructs an empty `HttpRouter` service.\n *\n * **Details**\n *\n * The returned router accepts route and middleware registrations and later routes\n * the current `HttpServerRequest` to the matching `HttpServerResponse`.\n *\n * @category HttpRouter\n * @since 4.0.0\n */\nexport const make = /*#__PURE__*/Effect.gen(function* () {\n const router = FindMyWay.make(yield* RouterConfig);\n const middleware = new Set();\n const addAll = routes => Effect.contextWith(context => {\n const middleware = getMiddleware(context);\n const applyMiddleware = effect => {\n for (let i = 0; i < middleware.length; i++) {\n effect = middleware[i](effect);\n }\n return effect;\n };\n for (let i = 0; i < routes.length; i++) {\n const route = middleware.length === 0 ? routes[i] : makeRoute({\n ...routes[i],\n handler: applyMiddleware(routes[i].handler)\n });\n if (route.method === \"*\") {\n if (route.path.endsWith(\"/*\")) {\n router.all(route.path, route);\n router.all(route.path.slice(0, -2), route);\n } else {\n router.all(route.path, route);\n }\n } else {\n if (route.path.endsWith(\"/*\")) {\n router.on(route.method, route.path, route);\n router.on(route.method, route.path.slice(0, -2), route);\n } else {\n router.on(route.method, route.path, route);\n }\n }\n }\n return Effect.void;\n });\n return HttpRouter.of({\n [TypeId]: TypeId,\n prefixed(prefix) {\n return HttpRouter.of({\n ...this,\n prefixed: newPrefix => this.prefixed(prefixPath(prefix, newPrefix)),\n addAll: routes => addAll(routes.map(prefixRoute(prefix))),\n add: (method, path, handler, options) => addAll([makeRoute({\n method,\n path: prefixPath(path, prefix),\n handler: HttpServerResponse.isHttpServerResponse(handler) ? Effect.succeed(handler) : Effect.isEffect(handler) ? handler : Effect.flatMap(HttpServerRequest.HttpServerRequest, handler),\n uninterruptible: options?.uninterruptible ?? false,\n prefix\n })])\n });\n },\n addAll,\n add: (method, path, handler, options) => addAll([route(method, path, handler, options)]),\n addGlobalMiddleware: middleware_ => Effect.sync(() => {\n middleware.add(middleware_);\n }),\n asHttpEffect() {\n let handler = Effect.withFiber(fiber => {\n const contextMap = new Map(fiber.context.mapUnsafe);\n const request = contextMap.get(HttpServerRequest.HttpServerRequest.key);\n let result = router.find(request.method, request.url);\n if (result === undefined && request.method === \"HEAD\") {\n result = router.find(\"GET\", request.url);\n }\n if (result === undefined) {\n return Effect.fail(new HttpServerError.HttpServerError({\n reason: new HttpServerError.RouteNotFound({\n request\n })\n }));\n }\n const route = result.handler;\n if (Option.isSome(route.prefix)) {\n contextMap.set(HttpServerRequest.HttpServerRequest.key, sliceRequestUrl(request, route.prefix.value));\n }\n contextMap.set(HttpServerRequest.ParsedSearchParams.key, result.searchParams);\n contextMap.set(RouteContext.key, {\n route,\n params: result.params\n });\n const span = contextMap.get(Tracer.ParentSpan.key);\n if (span && span._tag === \"Span\") {\n span.attribute(\"http.route\", route.path);\n }\n return Effect.provideContext(route.uninterruptible ? route.handler : Effect.interruptible(route.handler), Context.makeUnsafe(contextMap));\n });\n if (middleware.size === 0) return handler;\n for (const fn of Arr.reverse(middleware)) {\n handler = fn(handler);\n }\n return handler;\n }\n });\n});\nfunction sliceRequestUrl(request, prefix) {\n const prefexLen = prefix.length;\n return request.modify({\n url: request.url.length <= prefexLen ? \"/\" : request.url.slice(prefexLen)\n });\n}\n/**\n * Context reference for low-level router configuration.\n *\n * **Details**\n *\n * The value is passed to the route matcher when an `HttpRouter` is created and\n * defaults to an empty configuration.\n *\n * @category configuration\n * @since 4.0.0\n */\nexport const RouterConfig = /*#__PURE__*/Context.Reference(\"effect/http/HttpRouter/RouterConfig\", {\n defaultValue: () => ({})\n});\n/**\n * Service for the matched HTTP route in the current request.\n *\n * **When to use**\n *\n * Use to read captured path parameters and route metadata while handling a\n * request matched by the router.\n *\n * **Details**\n *\n * It provides the route definition and the path parameters captured by the route\n * matcher.\n *\n * @category services\n * @since 4.0.0\n */\nexport class RouteContext extends /*#__PURE__*/Context.Service()(\"effect/http/HttpRouter/RouteContext\") {}\n/**\n * Effect that returns the path parameters captured for the current matched route.\n *\n * @category getters\n * @since 4.0.0\n */\nexport const params = /*#__PURE__*/Effect.map(RouteContext, _ => _.params);\n/**\n * Decodes a schema from the current request and its JSON body.\n *\n * **Details**\n *\n * The input passed to the schema includes the request method, URL, headers,\n * cookies, path parameters, search parameters, and parsed JSON body. The effect\n * fails if the body cannot be parsed or the schema decode fails.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaJson = (schema, options) => {\n const parse = Schema.decodeUnknownEffect(schema);\n return Effect.contextWith(context => {\n const request = Context.get(context, HttpServerRequest.HttpServerRequest);\n const searchParams = Context.get(context, HttpServerRequest.ParsedSearchParams);\n const routeContext = Context.get(context, RouteContext);\n return Effect.flatMap(request.json, body => parse({\n method: request.method,\n url: request.url,\n headers: request.headers,\n cookies: request.cookies,\n pathParams: routeContext.params,\n searchParams,\n body\n }, options));\n });\n};\n/**\n * Decodes a schema from the current request without reading the request body.\n *\n * **Details**\n *\n * The input passed to the schema includes the request method, URL, headers,\n * cookies, path parameters, and search parameters.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaNoBody = (schema, options) => {\n const parse = Schema.decodeUnknownEffect(schema);\n return Effect.contextWith(context => {\n const request = Context.get(context, HttpServerRequest.HttpServerRequest);\n const searchParams = Context.get(context, HttpServerRequest.ParsedSearchParams);\n const routeContext = Context.get(context, RouteContext);\n return parse({\n method: request.method,\n url: request.url,\n headers: request.headers,\n cookies: request.cookies,\n pathParams: routeContext.params,\n searchParams\n }, options);\n });\n};\n/**\n * Decodes a schema from the current route path parameters and search parameters.\n *\n * **Details**\n *\n * When the same key appears in both sources, the path parameter value is used.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaParams = (schema, options) => {\n const parse = Schema.decodeUnknownEffect(schema);\n return Effect.contextWith(context => {\n const searchParams = Context.get(context, HttpServerRequest.ParsedSearchParams);\n const routeContext = Context.get(context, RouteContext);\n return parse({\n ...searchParams,\n ...routeContext.params\n }, options);\n });\n};\n/**\n * Decodes a schema from the path parameters captured for the current matched\n * route.\n *\n * @category schemas\n * @since 4.0.0\n */\nexport const schemaPathParams = (schema, options) => {\n const parse = Schema.decodeUnknownEffect(schema);\n return Effect.flatMap(params, _ => parse(_, options));\n};\n/**\n * Creates a layer that accesses the current `HttpRouter` service and runs the\n * supplied effect.\n *\n * **When to use**\n *\n * Use when you use it to register routes or middleware with the router during layer\n * construction.\n *\n * **Example** (Registering routes during layer construction)\n *\n * ```ts\n * import { Effect, Layer } from \"effect\"\n * import { HttpRouter } from \"effect/unstable/http\"\n *\n * const MyRoute = Layer.effectDiscard(Effect.gen(function*() {\n * const router = yield* HttpRouter.HttpRouter\n *\n * // then use `yield* router.add(...)` to add a route\n * }))\n * ```\n *\n * @category HttpRouter\n * @since 4.0.0\n */\nexport const use = f => Layer.effectDiscard(Effect.flatMap(HttpRouter, f));\n/**\n * Create a layer that adds a single route to the HTTP router.\n *\n * **Example** (Adding a GET route)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { HttpRouter, HttpServerResponse } from \"effect/unstable/http\"\n *\n * const Route = HttpRouter.add(\n * \"GET\",\n * \"/hello\",\n * Effect.succeed(HttpServerResponse.text(\"Hello, World!\"))\n * )\n * ```\n *\n * @category HttpRouter\n * @since 4.0.0\n */\nexport const add = (method, path, handler, options) => use(router => router.add(method, path, handler, options));\n/**\n * Create a layer that adds multiple routes to the HTTP router.\n *\n * **Example** (Adding multiple routes)\n *\n * ```ts\n * import { Effect } from \"effect\"\n * import { HttpRouter, HttpServerResponse } from \"effect/unstable/http\"\n *\n * const Routes = HttpRouter.addAll([\n * HttpRouter.route(\n * \"GET\",\n * \"/hello\",\n * Effect.succeed(HttpServerResponse.text(\"Hello, World!\"))\n * )\n * ])\n * ```\n *\n * @category HttpRouter\n * @since 4.0.0\n */\nexport const addAll = (routes, options) => Layer.effectDiscard(Effect.gen(function* () {\n const toAdd = Effect.isEffect(routes) ? yield* routes : routes;\n let router = yield* HttpRouter;\n if (options?.prefix) {\n router = router.prefixed(options.prefix);\n }\n yield* router.addAll(toAdd);\n}));\n/**\n * Layer that provides a newly constructed `HttpRouter`.\n *\n * @category HttpRouter\n * @since 4.0.0\n */\nexport const layer = /*#__PURE__*/Layer.effect(HttpRouter)(make);\n/**\n * Builds an application layer with a router and returns the router as an HTTP\n * handler effect.\n *\n * **Details**\n *\n * The returned effect handles the current `HttpServerRequest` in the current\n * `Scope`; route request markers are converted into the ordinary requirements of\n * the returned handler.\n *\n * @category HttpRouter\n * @since 4.0.0\n */\nexport const toHttpEffect = appLayer => Effect.gen(function* () {\n const context = yield* Layer.build(Layer.provideMerge(appLayer, layer));\n const router = Context.get(context, HttpRouter);\n // @effect-diagnostics effect/returnEffectInGen:off\n return router.asHttpEffect();\n});\nconst RouteTypeId = \"~effect/http/HttpRouter/Route\";\nconst makeRoute = options => ({\n ...options,\n uninterruptible: options.uninterruptible ?? false,\n prefix: typeof options.prefix === \"string\" ? Option.some(options.prefix) : options.prefix ?? Option.none(),\n [RouteTypeId]: RouteTypeId\n});\n/**\n * Constructs a `Route` from an HTTP method, path, and handler.\n *\n * **Details**\n *\n * The handler may be a static response, an effect that produces a response, or a\n * function from the current request to a response effect. Set `uninterruptible` to\n * prevent the route handler from being made interruptible while it runs.\n *\n * @category Route\n * @since 4.0.0\n */\nexport const route = (method, path, handler, options) => makeRoute({\n ...options,\n method,\n path,\n handler: HttpServerResponse.isHttpServerResponse(handler) ? Effect.succeed(handler) : Effect.isEffect(handler) ? handler : Effect.flatMap(HttpServerRequest.HttpServerRequest, handler),\n uninterruptible: options?.uninterruptible ?? false\n});\nconst removeTrailingSlash = path => path.endsWith(\"/\") ? path.slice(0, -1) : path;\n/**\n * Adds a path prefix to a route path.\n *\n * **Details**\n *\n * Trailing slashes are removed from the prefix; `/` becomes the prefix itself and\n * `*` becomes a wildcard route under the prefix.\n *\n * @category PathInput\n * @since 4.0.0\n */\nexport const prefixPath = /*#__PURE__*/dual(2, (self, prefix) => {\n prefix = removeTrailingSlash(prefix);\n if (self === \"*\") return `${prefix}/*`;else if (self === \"/\") return prefix;\n return prefix + self;\n});\n/**\n * Returns a copy of a route with its path prefixed.\n *\n * **Details**\n *\n * The prefix is also tracked on the route so that, when the route handles a\n * request, the matched prefix can be removed from the request URL seen by the\n * handler.\n *\n * @category Route\n * @since 4.0.0\n */\nexport const prefixRoute = /*#__PURE__*/dual(2, (self, prefix) => makeRoute({\n ...self,\n path: prefixPath(self.path, prefix),\n prefix: Option.match(self.prefix, {\n onNone: () => prefix,\n onSome: existingPrefix => prefixPath(existingPrefix, prefix)\n })\n}));\nconst MiddlewareTypeId = \"~effect/http/HttpRouter/Middleware\";\n/**\n * Create a middleware layer that can be used to modify requests and responses.\n *\n * **Details**\n *\n * By default, the middleware only affects the routes that it is provided to.\n *\n * If you want to create a middleware that applies globally to all routes, pass\n * the `global` option as `true`.\n *\n * **Example** (Applying route and global middleware)\n *\n * ```ts\n * import { Context, Effect, Layer } from \"effect\"\n * import { HttpMiddleware, HttpRouter, HttpServerResponse } from \"effect/unstable/http\"\n *\n * // Here we are defining a CORS middleware\n * const CorsMiddleware = HttpRouter.middleware(HttpMiddleware.cors()).layer\n * // You can also use HttpRouter.cors() to create a CORS middleware\n *\n * class CurrentSession extends Context.Service<CurrentSession, {\n * readonly token: string\n * }>()(\"CurrentSession\") {}\n *\n * // You can create middleware that provides a service to the HTTP requests.\n * const SessionMiddleware = HttpRouter.middleware<{\n * provides: CurrentSession\n * }>()(\n * Effect.gen(function*() {\n * yield* Effect.log(\"SessionMiddleware initialized\")\n *\n * return (httpEffect) =>\n * Effect.provideService(httpEffect, CurrentSession, {\n * token: \"dummy-token\"\n * })\n * })\n * ).layer\n *\n * Effect.gen(function*() {\n * const router = yield* HttpRouter.HttpRouter\n * yield* router.add(\n * \"GET\",\n * \"/hello\",\n * Effect.gen(function*() {\n * // Requests can now access the current session\n * const session = yield* CurrentSession\n * return HttpServerResponse.text(\n * `Hello, World! Your token is ${session.token}`\n * )\n * })\n * )\n * }).pipe(\n * Layer.effectDiscard,\n * // Provide the SessionMiddleware & CorsMiddleware to some routes\n * Layer.provide([SessionMiddleware, CorsMiddleware])\n * )\n * ```\n *\n * @category middleware\n * @since 4.0.0\n */\nexport const middleware = function () {\n if (arguments.length === 0) {\n return makeMiddleware;\n }\n return makeMiddleware(arguments[0], arguments[1]);\n};\nconst makeMiddleware = (middleware, options) => options?.global ? Layer.effectDiscard(Effect.gen(function* () {\n const router = yield* HttpRouter;\n const fn = Effect.isEffect(middleware) ? yield* middleware : middleware;\n yield* router.addGlobalMiddleware(fn);\n})) : new MiddlewareImpl(Effect.isEffect(middleware) ? Layer.effectContext(Effect.map(middleware, fn => Context.makeUnsafe(new Map([[fnContextKey, fn]])))) : Layer.succeedContext(Context.makeUnsafe(new Map([[fnContextKey, middleware]]))));\nlet middlewareId = 0;\nconst fnContextKey = \"effect/http/HttpRouter/MiddlewareFn\";\nclass MiddlewareImpl {\n [MiddlewareTypeId] = {};\n layerFn;\n dependencies;\n constructor(layerFn, dependencies) {\n this.layerFn = layerFn;\n this.dependencies = dependencies;\n const contextKey = `effect/http/HttpRouter/Middleware-${++middlewareId}`;\n this.layer = Layer.effectContext(Effect.gen({\n self: this\n }, function* () {\n const context = yield* Effect.context();\n const stack = [context.mapUnsafe.get(fnContextKey)];\n if (this.dependencies) {\n const memoMap = yield* Layer.CurrentMemoMap;\n const scope = Context.get(context, Scope.Scope);\n const depsContext = yield* Layer.buildWithMemoMap(this.dependencies, memoMap, scope);\n stack.push(...getMiddleware(depsContext));\n }\n return Context.makeUnsafe(new Map([[contextKey, stack]]));\n })).pipe(Layer.provide(this.layerFn));\n }\n layer;\n combine(other) {\n return new MiddlewareImpl(this.layerFn, this.dependencies ? Layer.provideMerge(this.dependencies, other.layer) : other.layer);\n }\n}\nconst middlewareCache = /*#__PURE__*/new WeakMap();\nconst getMiddleware = context => {\n let arr = middlewareCache.get(context);\n if (arr) return arr;\n const topLevel = Arr.empty();\n let maxLength = 0;\n for (const [key, value] of context.mapUnsafe) {\n if (key.startsWith(\"effect/http/HttpRouter/Middleware-\")) {\n topLevel.push(value);\n if (value.length > maxLength) {\n maxLength = value.length;\n }\n }\n }\n if (topLevel.length === 0) {\n arr = [];\n } else {\n const middleware = new Set();\n for (let i = maxLength - 1; i >= 0; i--) {\n for (const arr of topLevel) {\n if (i < arr.length) {\n middleware.add(arr[i]);\n }\n }\n }\n arr = Arr.fromIterable(middleware).reverse();\n }\n middlewareCache.set(context, arr);\n return arr;\n};\n/**\n * Middleware that applies CORS headers to the HTTP response.\n *\n * @category middleware\n * @since 4.0.0\n */\nexport const cors = options => middleware(HttpMiddleware.cors(options), {\n global: true\n});\n/**\n * Middleware that disables the logger for some routes.\n *\n * **Example** (Disabling route logging)\n *\n * ```ts\n * import { Effect, Layer } from \"effect\"\n * import { HttpRouter, HttpServerResponse } from \"effect/unstable/http\"\n *\n * const Route = HttpRouter.add(\n * \"GET\",\n * \"/hello\",\n * Effect.succeed(HttpServerResponse.text(\"Hello, World!\"))\n * ).pipe(\n * // disable the logger for this route\n * Layer.provide(HttpRouter.disableLogger)\n * )\n * ```\n *\n * @category middleware\n * @since 4.0.0\n */\nexport const disableLogger = /*#__PURE__*/middleware(HttpMiddleware.withLoggerDisabled).layer;\n/**\n * Provides request-level dependencies to some routes.\n *\n * @category middleware\n * @since 4.0.0\n */\nexport const provideRequest = layer => self => Layer.provide(self, middleware()(Effect.gen(function* () {\n const services = yield* Layer.build(layer);\n return effect => Effect.provideContext(effect, services);\n})).layer);\n/**\n * Runs the provided application layer as an HTTP server.\n *\n * @category server\n * @since 4.0.0\n */\nexport const serve = (appLayer, options) => {\n let middleware = options?.middleware;\n if (options?.disableLogger !== true) {\n middleware = middleware ? compose(middleware, HttpMiddleware.logger) : HttpMiddleware.logger;\n }\n const RouterLayer = options?.routerConfig ? Layer.provide(layer, Layer.succeed(RouterConfig)(options.routerConfig)) : layer;\n return Effect.gen(function* () {\n const router = yield* HttpRouter;\n const handler = router.asHttpEffect();\n return middleware ? HttpServer.serve(handler, middleware) : HttpServer.serve(handler);\n }).pipe(Layer.unwrap, Layer.provideMerge(appLayer), Layer.provide(RouterLayer), options?.disableListenLog ? identity : HttpServer.withLogAddress);\n};\n/**\n * Builds a Fetch-compatible request handler from an HTTP router application\n * layer.\n *\n * **Details**\n *\n * The result contains a `handler` function that converts Web `Request` values to\n * Web `Response` values and a `dispose` function for releasing the layer\n * resources.\n *\n * @category server\n * @since 4.0.0\n */\nexport const toWebHandler = (appLayer, options) => {\n let middleware = options?.middleware;\n if (options?.disableLogger !== true) {\n middleware = middleware ? compose(middleware, HttpMiddleware.logger) : HttpMiddleware.logger;\n }\n const RouterLayer = options?.routerConfig ? Layer.provide(layer, Layer.succeed(RouterConfig)(options.routerConfig)) : layer;\n return HttpEffect.toWebHandlerLayerWith(Layer.provideMerge(appLayer, RouterLayer), {\n toHandler: s => Effect.succeed(Context.get(s, HttpRouter).asHttpEffect()),\n middleware,\n memoMap: options?.memoMap\n });\n};\n//# sourceMappingURL=HttpRouter.js.map",
39
- "/**\n * Fetch-based implementation of the Effect HTTP client service.\n *\n * This module provides an `HttpClient` layer that executes requests through a\n * Web Fetch API implementation. It is the transport to use in browsers, edge\n * runtimes, and Node.js environments where `globalThis.fetch` is available, or\n * anywhere a compatible fetch function can be supplied.\n *\n * **Mental model**\n *\n * `layer` installs an `HttpClient` whose runtime boundary is a call to `fetch`.\n * The `Fetch` reference chooses the fetch function and defaults to\n * `globalThis.fetch`. The `RequestInit` service supplies default fetch options\n * such as credentials, redirects, cache behavior, or other platform-specific\n * settings. Request-specific method, headers, body, and abort signal are written\n * by the client for each call.\n *\n * **Common tasks**\n *\n * Provide `layer` when an Effect program should run outbound HTTP through the\n * current platform. Override `Fetch` in tests or custom runtimes to capture\n * requests or route them to a different implementation. Provide `RequestInit`\n * when all requests made by this client should share fetch defaults.\n *\n * **Gotchas**\n *\n * Fetch behavior is platform behavior: CORS, cookies, redirect handling, aborts,\n * and streaming support can differ across runtimes. Stream request bodies are\n * sent as Web streams with `duplex: \"half\"` for runtimes that require it, and\n * `content-length` is removed so fetch can manage body framing.\n *\n * @since 4.0.0\n */\nimport * as Context from \"../../Context.js\";\nimport * as Effect from \"../../Effect.js\";\nimport * as Stream from \"../../Stream.js\";\nimport * as Headers from \"./Headers.js\";\nimport * as HttpClient from \"./HttpClient.js\";\nimport * as HttpClientError from \"./HttpClientError.js\";\nimport * as HttpClientResponse from \"./HttpClientResponse.js\";\n/**\n * Context reference for the `fetch` implementation used by the fetch-based HTTP client.\n *\n * **Details**\n *\n * Defaults to `globalThis.fetch`.\n *\n * @category services\n * @since 4.0.0\n */\nexport const Fetch = /*#__PURE__*/Context.Reference(\"effect/http/FetchHttpClient/Fetch\", {\n defaultValue: () => globalThis.fetch\n});\n/**\n * Service that contains default fetch options for the fetch-based HTTP client.\n *\n * **When to use**\n *\n * Use to provide default credentials, cache, redirect, integrity, or other\n * fetch options for outgoing HTTP requests.\n *\n * **Details**\n *\n * Request-specific method, headers, body, and abort signal are supplied by the client when a request is executed.\n *\n * @category services\n * @since 4.0.0\n */\nexport class RequestInit extends /*#__PURE__*/Context.Service()(\"effect/http/FetchHttpClient/RequestInit\") {}\nconst fetch = /*#__PURE__*/HttpClient.make((request, url, signal, fiber) => {\n const fetch = fiber.getRef(Fetch);\n const options = fiber.context.mapUnsafe.get(RequestInit.key) ?? {};\n let headers = options.headers ? Headers.merge(Headers.fromInput(options.headers), request.headers) : request.headers;\n if (headers[\"content-length\"]) {\n headers = Headers.remove(headers, \"content-length\");\n }\n const send = body => Effect.map(Effect.tryPromise({\n try: () => fetch(url, {\n ...options,\n method: request.method,\n headers,\n body,\n duplex: request.body._tag === \"Stream\" ? \"half\" : undefined,\n signal\n }),\n catch: cause => new HttpClientError.HttpClientError({\n reason: new HttpClientError.TransportError({\n request,\n cause\n })\n })\n }), response => HttpClientResponse.fromWeb(request, response));\n switch (request.body._tag) {\n case \"Raw\":\n case \"Uint8Array\":\n return send(request.body.body);\n case \"FormData\":\n return send(request.body.formData);\n case \"Stream\":\n return Effect.flatMap(Stream.toReadableStreamEffect(request.body.stream), send);\n }\n return send(undefined);\n});\n/**\n * Layer that provides an `HttpClient` implementation backed by the configured\n * `Fetch` function.\n *\n * **When to use**\n *\n * Use when an Effect program should execute `HttpClient` requests through the\n * platform `fetch` implementation, especially in browser, edge, or Node.js\n * runtimes with `globalThis.fetch`.\n *\n * **Details**\n *\n * The layer uses the current `Fetch` reference and optional `RequestInit`\n * service for each request. Request-specific method, headers, body, and abort\n * signal are supplied by the client and override matching `RequestInit` fields.\n *\n * **Gotchas**\n *\n * Fetch behavior comes from the runtime's implementation, so CORS, cookies,\n * redirects, abort handling, and streaming support can vary by platform. Stream\n * request bodies are sent as Web streams with `duplex: \"half\"`, and any\n * `content-length` header is removed before calling `fetch`.\n *\n * @see {@link Fetch} for supplying the fetch implementation used by this layer\n * @see {@link RequestInit} for default `RequestInit` options applied before request-specific fields\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layer = /*#__PURE__*/HttpClient.layerMergedContext(/*#__PURE__*/Effect.succeed(fetch));\n//# sourceMappingURL=FetchHttpClient.js.map",
40
- "import path from \"path\"\nimport fs from \"fs/promises\"\nimport { xdgData, xdgCache, xdgConfig, xdgState } from \"xdg-basedir\"\nimport os from \"os\"\nimport { Context, Effect, Layer } from \"effect\"\nimport { Flock } from \"./util/flock\"\nimport { Flag } from \"./flag/flag\"\n\nconst app = \"opencode\"\nconst data = path.join(xdgData!, app)\nconst cache = path.join(xdgCache!, app)\nconst config = path.join(xdgConfig!, app)\nconst state = path.join(xdgState!, app)\nconst tmp = path.join(os.tmpdir(), app)\n\nconst paths = {\n get home() {\n return process.env.OPENCODE_TEST_HOME ?? os.homedir()\n },\n data,\n bin: path.join(cache, \"bin\"),\n log: path.join(data, \"log\"),\n repos: path.join(data, \"repos\"),\n cache,\n config,\n state,\n tmp,\n}\n\nexport const Path = paths\n\nFlock.setGlobal({ state })\n\nawait Promise.all([\n fs.mkdir(Path.data, { recursive: true }),\n fs.mkdir(Path.config, { recursive: true }),\n fs.mkdir(Path.state, { recursive: true }),\n fs.mkdir(Path.tmp, { recursive: true }),\n fs.mkdir(Path.log, { recursive: true }),\n fs.mkdir(Path.bin, { recursive: true }),\n fs.mkdir(Path.repos, { recursive: true }),\n])\n\nexport class Service extends Context.Service<Service, Interface>()(\"@opencode/Global\") {}\n\nexport interface Interface {\n readonly home: string\n readonly data: string\n readonly cache: string\n readonly config: string\n readonly state: string\n readonly tmp: string\n readonly bin: string\n readonly log: string\n readonly repos: string\n}\n\nexport function make(input: Partial<Interface> = {}): Interface {\n return {\n home: Path.home,\n data: Path.data,\n cache: Path.cache,\n config: Flag.OPENCODE_CONFIG_DIR ?? Path.config,\n state: Path.state,\n tmp: Path.tmp,\n bin: Path.bin,\n log: Path.log,\n repos: Path.repos,\n ...input,\n }\n}\n\nexport const layer = Layer.effect(\n Service,\n Effect.sync(() => Service.of(make())),\n)\n\nexport const defaultLayer = layer\n\nexport const layerWith = (input: Partial<Interface>) =>\n Layer.effect(\n Service,\n Effect.sync(() => Service.of(make(input))),\n )\n\nexport * as Global from \"./global\"\n",
41
- "import os from 'os';\nimport path from 'path';\n\nconst homeDirectory = os.homedir();\nconst {env} = process;\n\nexport const xdgData = env.XDG_DATA_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.local', 'share') : undefined);\n\nexport const xdgConfig = env.XDG_CONFIG_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.config') : undefined);\n\nexport const xdgState = env.XDG_STATE_HOME ||\n\t(homeDirectory ? path.join(homeDirectory, '.local', 'state') : undefined);\n\nexport const xdgCache = env.XDG_CACHE_HOME || (homeDirectory ? path.join(homeDirectory, '.cache') : undefined);\n\nexport const xdgRuntime = env.XDG_RUNTIME_DIR || undefined;\n\nexport const xdgDataDirectories = (env.XDG_DATA_DIRS || '/usr/local/share/:/usr/share/').split(':');\n\nif (xdgData) {\n\txdgDataDirectories.unshift(xdgData);\n}\n\nexport const xdgConfigDirectories = (env.XDG_CONFIG_DIRS || '/etc/xdg').split(':');\n\nif (xdgConfig) {\n\txdgConfigDirectories.unshift(xdgConfig);\n}\n",
42
- "import path from \"path\"\nimport os from \"os\"\nimport { randomBytes, randomUUID } from \"crypto\"\nimport { mkdir, readFile, rm, stat, utimes, writeFile } from \"fs/promises\"\nimport { Hash } from \"./hash\"\nimport { Effect } from \"effect\"\n\nexport type FlockGlobal = {\n state: string\n}\n\nexport namespace Flock {\n let global: FlockGlobal | undefined\n\n export function setGlobal(g: FlockGlobal) {\n global = g\n }\n\n const root = () => {\n if (!global) throw new Error(\"Flock global not set\")\n return path.join(global.state, \"locks\")\n }\n\n // Defaults for callers that do not provide timing options.\n const defaultOpts = {\n staleMs: 60_000,\n timeoutMs: 5 * 60_000,\n baseDelayMs: 100,\n maxDelayMs: 2_000,\n }\n\n export interface WaitEvent {\n key: string\n attempt: number\n delay: number\n waited: number\n }\n\n export type Wait = (input: WaitEvent) => void | Promise<void>\n\n export interface Options {\n dir?: string\n signal?: AbortSignal\n staleMs?: number\n timeoutMs?: number\n baseDelayMs?: number\n maxDelayMs?: number\n onWait?: Wait\n }\n\n type Opts = {\n staleMs: number\n timeoutMs: number\n baseDelayMs: number\n maxDelayMs: number\n }\n\n type Owned = {\n acquired: true\n startHeartbeat: (intervalMs?: number) => void\n release: () => Promise<void>\n }\n\n export interface Lease {\n release: () => Promise<void>\n [Symbol.asyncDispose]: () => Promise<void>\n }\n\n function code(err: unknown) {\n if (typeof err !== \"object\" || err === null || !(\"code\" in err)) return\n const value = err.code\n if (typeof value !== \"string\") return\n return value\n }\n\n function sleep(ms: number, signal?: AbortSignal) {\n return new Promise<void>((resolve, reject) => {\n if (signal?.aborted) {\n reject(signal.reason ?? new Error(\"Aborted\"))\n return\n }\n\n let timer: NodeJS.Timeout | undefined\n\n const done = () => {\n signal?.removeEventListener(\"abort\", abort)\n resolve()\n }\n\n const abort = () => {\n if (timer) {\n clearTimeout(timer)\n }\n signal?.removeEventListener(\"abort\", abort)\n reject(signal?.reason ?? new Error(\"Aborted\"))\n }\n\n signal?.addEventListener(\"abort\", abort, { once: true })\n timer = setTimeout(done, ms)\n })\n }\n\n function jitter(ms: number) {\n const j = Math.floor(ms * 0.3)\n const d = Math.floor(Math.random() * (2 * j + 1)) - j\n return Math.max(0, ms + d)\n }\n\n function mono() {\n return performance.now()\n }\n\n function wall() {\n return performance.timeOrigin + mono()\n }\n\n async function stats(file: string) {\n try {\n return await stat(file)\n } catch (err) {\n const errCode = code(err)\n if (errCode === \"ENOENT\" || errCode === \"ENOTDIR\") return\n throw err\n }\n }\n\n async function stale(lockDir: string, heartbeatPath: string, metaPath: string, staleMs: number) {\n // Stale detection allows automatic recovery after crashed owners.\n const now = wall()\n const heartbeat = await stats(heartbeatPath)\n if (heartbeat) {\n return now - heartbeat.mtimeMs > staleMs\n }\n\n const meta = await stats(metaPath)\n if (meta) {\n return now - meta.mtimeMs > staleMs\n }\n\n const dir = await stats(lockDir)\n if (!dir) {\n return false\n }\n\n return now - dir.mtimeMs > staleMs\n }\n\n async function tryAcquireLockDir(lockDir: string, opts: Opts): Promise<Owned | { acquired: false }> {\n const token = randomUUID?.() ?? randomBytes(16).toString(\"hex\")\n const metaPath = path.join(lockDir, \"meta.json\")\n const heartbeatPath = path.join(lockDir, \"heartbeat\")\n\n try {\n await mkdir(lockDir, { mode: 0o700 })\n } catch (err) {\n if (code(err) !== \"EEXIST\") {\n throw err\n }\n\n if (!(await stale(lockDir, heartbeatPath, metaPath, opts.staleMs))) {\n return { acquired: false }\n }\n\n const breakerPath = lockDir + \".breaker\"\n try {\n await mkdir(breakerPath, { mode: 0o700 })\n } catch (claimErr) {\n const errCode = code(claimErr)\n if (errCode === \"EEXIST\") {\n const breaker = await stats(breakerPath)\n if (breaker && wall() - breaker.mtimeMs > opts.staleMs) {\n await rm(breakerPath, { recursive: true, force: true }).catch(() => undefined)\n }\n return { acquired: false }\n }\n\n if (errCode === \"ENOENT\" || errCode === \"ENOTDIR\") {\n return { acquired: false }\n }\n\n throw claimErr\n }\n\n try {\n // Breaker ownership ensures only one contender performs stale cleanup.\n if (!(await stale(lockDir, heartbeatPath, metaPath, opts.staleMs))) {\n return { acquired: false }\n }\n\n await rm(lockDir, { recursive: true, force: true })\n\n try {\n await mkdir(lockDir, { mode: 0o700 })\n } catch (retryErr) {\n const errCode = code(retryErr)\n if (errCode === \"EEXIST\" || errCode === \"ENOTEMPTY\") {\n return { acquired: false }\n }\n throw retryErr\n }\n } finally {\n await rm(breakerPath, { recursive: true, force: true }).catch(() => undefined)\n }\n }\n\n const meta = {\n token,\n pid: process.pid,\n hostname: os.hostname(),\n createdAt: new Date().toISOString(),\n }\n\n await writeFile(heartbeatPath, \"\", { flag: \"wx\" }).catch(async () => {\n await rm(lockDir, { recursive: true, force: true })\n throw new Error(\"Lock acquired but heartbeat already existed (possible compromise).\")\n })\n\n await writeFile(metaPath, JSON.stringify(meta, null, 2), { flag: \"wx\" }).catch(async () => {\n await rm(lockDir, { recursive: true, force: true })\n throw new Error(\"Lock acquired but meta.json already existed (possible compromise).\")\n })\n\n let timer: NodeJS.Timeout | undefined\n\n const startHeartbeat = (intervalMs = Math.max(100, Math.floor(opts.staleMs / 3))) => {\n if (timer) return\n // Heartbeat prevents long critical sections from being evicted as stale.\n timer = setInterval(() => {\n const t = new Date()\n void utimes(heartbeatPath, t, t).catch(() => undefined)\n }, intervalMs)\n timer.unref?.()\n }\n\n const release = async () => {\n if (timer) {\n clearInterval(timer)\n timer = undefined\n }\n\n const current = await readFile(metaPath, \"utf8\")\n .then((raw) => {\n const parsed = JSON.parse(raw)\n if (!parsed || typeof parsed !== \"object\") return {}\n return {\n token: \"token\" in parsed && typeof parsed.token === \"string\" ? parsed.token : undefined,\n }\n })\n .catch((err) => {\n const errCode = code(err)\n if (errCode === \"ENOENT\" || errCode === \"ENOTDIR\") {\n throw new Error(\"Refusing to release: lock is compromised (metadata missing).\")\n }\n if (err instanceof SyntaxError) {\n throw new Error(\"Refusing to release: lock is compromised (metadata invalid).\")\n }\n throw err\n })\n // Token check prevents deleting a lock that was re-acquired by another process.\n if (current.token !== token) {\n throw new Error(\"Refusing to release: lock token mismatch (not the owner).\")\n }\n\n await rm(lockDir, { recursive: true, force: true })\n }\n\n return {\n acquired: true,\n startHeartbeat,\n release,\n }\n }\n\n async function acquireLockDir(\n lockDir: string,\n input: { key: string; onWait?: Wait; signal?: AbortSignal },\n opts: Opts,\n ) {\n const stop = mono() + opts.timeoutMs\n let attempt = 0\n let waited = 0\n let delay = opts.baseDelayMs\n\n while (true) {\n input.signal?.throwIfAborted()\n\n const res = await tryAcquireLockDir(lockDir, opts)\n if (res.acquired) {\n return res\n }\n\n if (mono() > stop) {\n throw new Error(`Timed out waiting for lock: ${input.key}`)\n }\n\n attempt += 1\n const ms = jitter(delay)\n await input.onWait?.({\n key: input.key,\n attempt,\n delay: ms,\n waited,\n })\n await sleep(ms, input.signal)\n waited += ms\n delay = Math.min(opts.maxDelayMs, Math.floor(delay * 1.7))\n }\n }\n\n export async function acquire(key: string, input: Options = {}): Promise<Lease> {\n input.signal?.throwIfAborted()\n const cfg: Opts = {\n staleMs: input.staleMs ?? defaultOpts.staleMs,\n timeoutMs: input.timeoutMs ?? defaultOpts.timeoutMs,\n baseDelayMs: input.baseDelayMs ?? defaultOpts.baseDelayMs,\n maxDelayMs: input.maxDelayMs ?? defaultOpts.maxDelayMs,\n }\n const dir = input.dir ?? root()\n\n await mkdir(dir, { recursive: true })\n const lockfile = path.join(dir, Hash.fast(key) + \".lock\")\n const lock = await acquireLockDir(\n lockfile,\n {\n key,\n onWait: input.onWait,\n signal: input.signal,\n },\n cfg,\n )\n lock.startHeartbeat()\n\n const release = () => lock.release()\n return {\n release,\n [Symbol.asyncDispose]() {\n return release()\n },\n }\n }\n\n export async function withLock<T>(key: string, fn: () => Promise<T>, input: Options = {}) {\n await using _ = await acquire(key, input)\n input.signal?.throwIfAborted()\n return await fn()\n }\n\n export const effect = Effect.fn(\"Flock.effect\")(function* (key: string, input: Options = {}) {\n return yield* Effect.acquireRelease(\n Effect.promise((signal) => Flock.acquire(key, { ...input, signal })).pipe(\n Effect.withSpan(\"Flock.acquire\", {\n attributes: { key },\n }),\n ),\n (lock) => Effect.promise(() => lock.release()).pipe(Effect.withSpan(\"Flock.release\")),\n ).pipe(Effect.asVoid)\n })\n}\n",
43
- "import { createHash } from \"crypto\"\n\nexport namespace Hash {\n export function fast(input: string | Buffer): string {\n return createHash(\"sha1\").update(input).digest(\"hex\")\n }\n\n export function sha256(input: string | Buffer): string {\n return createHash(\"sha256\").update(input).digest(\"hex\")\n }\n}\n",
44
- "import { Config } from \"effect\"\n\nexport function truthy(key: string) {\n const value = process.env[key]?.toLowerCase()\n return value === \"true\" || value === \"1\"\n}\n\nconst copy = process.env[\"OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT\"]\n\nfunction enabledByExperimental(key: string) {\n return process.env[key] === undefined ? truthy(\"OPENCODE_EXPERIMENTAL\") : truthy(key)\n}\n\nexport const Flag = {\n OTEL_EXPORTER_OTLP_ENDPOINT: process.env[\"OTEL_EXPORTER_OTLP_ENDPOINT\"],\n OTEL_EXPORTER_OTLP_HEADERS: process.env[\"OTEL_EXPORTER_OTLP_HEADERS\"],\n\n OPENCODE_AUTO_HEAP_SNAPSHOT: truthy(\"OPENCODE_AUTO_HEAP_SNAPSHOT\"),\n OPENCODE_GIT_BASH_PATH: process.env[\"OPENCODE_GIT_BASH_PATH\"],\n OPENCODE_CONFIG: process.env[\"OPENCODE_CONFIG\"],\n OPENCODE_CONFIG_CONTENT: process.env[\"OPENCODE_CONFIG_CONTENT\"],\n OPENCODE_DISABLE_AUTOUPDATE: truthy(\"OPENCODE_DISABLE_AUTOUPDATE\"),\n OPENCODE_ALWAYS_NOTIFY_UPDATE: truthy(\"OPENCODE_ALWAYS_NOTIFY_UPDATE\"),\n OPENCODE_DISABLE_PRUNE: truthy(\"OPENCODE_DISABLE_PRUNE\"),\n OPENCODE_DISABLE_TERMINAL_TITLE: truthy(\"OPENCODE_DISABLE_TERMINAL_TITLE\"),\n OPENCODE_SHOW_TTFD: truthy(\"OPENCODE_SHOW_TTFD\"),\n OPENCODE_DISABLE_AUTOCOMPACT: truthy(\"OPENCODE_DISABLE_AUTOCOMPACT\"),\n OPENCODE_DISABLE_MODELS_FETCH: truthy(\"OPENCODE_DISABLE_MODELS_FETCH\"),\n OPENCODE_DISABLE_MOUSE: truthy(\"OPENCODE_DISABLE_MOUSE\"),\n OPENCODE_FAKE_VCS: process.env[\"OPENCODE_FAKE_VCS\"],\n OPENCODE_SERVER_PASSWORD: process.env[\"OPENCODE_SERVER_PASSWORD\"],\n OPENCODE_SERVER_USERNAME: process.env[\"OPENCODE_SERVER_USERNAME\"],\n\n // Experimental\n OPENCODE_EXPERIMENTAL_FILEWATCHER: Config.boolean(\"OPENCODE_EXPERIMENTAL_FILEWATCHER\").pipe(\n Config.withDefault(false),\n ),\n OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER: Config.boolean(\"OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER\").pipe(\n Config.withDefault(false),\n ),\n OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT:\n copy === undefined ? process.platform === \"win32\" : truthy(\"OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT\"),\n OPENCODE_MODELS_URL: process.env[\"OPENCODE_MODELS_URL\"],\n OPENCODE_MODELS_PATH: process.env[\"OPENCODE_MODELS_PATH\"],\n OPENCODE_DB: process.env[\"OPENCODE_DB\"],\n\n OPENCODE_WORKSPACE_ID: process.env[\"OPENCODE_WORKSPACE_ID\"],\n OPENCODE_EXPERIMENTAL_WORKSPACES: enabledByExperimental(\"OPENCODE_EXPERIMENTAL_WORKSPACES\"),\n OPENCODE_EXPERIMENTAL_SESSION_SWITCHER: enabledByExperimental(\"OPENCODE_EXPERIMENTAL_SESSION_SWITCHER\"),\n\n // Evaluated at access time (not module load) because tests, the CLI, and\n // external tooling set these env vars at runtime.\n get OPENCODE_DISABLE_PROJECT_CONFIG() {\n return truthy(\"OPENCODE_DISABLE_PROJECT_CONFIG\")\n },\n get OPENCODE_EXPERIMENTAL_REFERENCES() {\n return enabledByExperimental(\"OPENCODE_EXPERIMENTAL_REFERENCES\")\n },\n get OPENCODE_TUI_CONFIG() {\n return process.env[\"OPENCODE_TUI_CONFIG\"]\n },\n get OPENCODE_CONFIG_DIR() {\n return process.env[\"OPENCODE_CONFIG_DIR\"]\n },\n get OPENCODE_PURE() {\n return truthy(\"OPENCODE_PURE\")\n },\n get OPENCODE_PERMISSION() {\n return process.env[\"OPENCODE_PERMISSION\"]\n },\n get OPENCODE_PLUGIN_META_FILE() {\n return process.env[\"OPENCODE_PLUGIN_META_FILE\"]\n },\n get OPENCODE_CLIENT() {\n return process.env[\"OPENCODE_CLIENT\"] ?? \"cli\"\n },\n}\n",
45
- "declare global {\n const OPENCODE_VERSION: string\n const OPENCODE_CHANNEL: string\n}\n\nexport const InstallationVersion = typeof OPENCODE_VERSION === \"string\" ? OPENCODE_VERSION : \"local\"\nexport const InstallationChannel = typeof OPENCODE_CHANNEL === \"string\" ? OPENCODE_CHANNEL : \"local\"\nexport const InstallationLocal = InstallationChannel === \"local\"\n",
46
37
  "/**\n * Service contract for process standard input, output, error output, and\n * command-line arguments.\n *\n * `Stdio` lets command-line programs depend on standard I/O through the Effect\n * environment instead of reading from or writing to global process handles\n * directly. The service exposes arguments as an `Effect`, stdout and stderr as\n * `Sink`s that accept strings or bytes, and stdin as a byte `Stream`.\n *\n * **Mental model**\n *\n * Application code describes what it needs from standard I/O, and a runtime\n * layer supplies the concrete streams. Platform packages provide real process\n * implementations, while tests can use `Stdio.layerTest` to replace only the\n * fields that matter for a scenario and keep the rest inert.\n *\n * **Common tasks**\n *\n * - Read command-line arguments from the service's `args` effect.\n * - Write text or bytes by running values into the service's `stdout()` or\n * `stderr()` sinks.\n * - Consume `stdin` as a stream of `Uint8Array` chunks.\n * - Build deterministic tests with `Stdio.layerTest`.\n *\n * **Gotchas**\n *\n * Standard I/O is a platform capability. Reads and writes can fail with\n * `PlatformError`, so handle failures in the Effect error channel instead of\n * assuming the process streams are always available.\n *\n * @since 4.0.0\n */\nimport * as Context from \"./Context.js\";\nimport * as Effect from \"./Effect.js\";\nimport * as Layer from \"./Layer.js\";\nimport * as Sink from \"./Sink.js\";\nimport * as Stream from \"./Stream.js\";\n/**\n * Runtime identifier stored on `Stdio` service implementations.\n *\n * **Details**\n *\n * This marker is part of the runtime representation of `Stdio` service\n * implementations.\n *\n * @category type IDs\n * @since 4.0.0\n */\nexport const TypeId = \"~effect/Stdio\";\n/**\n * Service tag for process standard I/O.\n *\n * **When to use**\n *\n * Use when an effect needs command-line arguments or standard I/O streams\n * supplied by its environment.\n *\n * @see {@link make} for constructing a `Stdio` service directly\n * @see {@link layerTest} for a test layer with defaults and overrides\n *\n * @category services\n * @since 4.0.0\n */\nexport const Stdio = /*#__PURE__*/Context.Service(TypeId);\n/**\n * Creates a `Stdio` service implementation from the provided fields and\n * attaches the `Stdio` type identifier.\n *\n * **When to use**\n *\n * Use to assemble a concrete `Stdio` service when you already have\n * implementations for command-line arguments, standard output, standard error,\n * and standard input.\n *\n * **Details**\n *\n * The returned service reuses the supplied fields unchanged and only adds the\n * `Stdio` type identifier; it does not create a `Layer` or provide defaults.\n *\n * @see {@link layerTest} for a test layer with default fields that can be overridden\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = options => ({\n [TypeId]: TypeId,\n ...options\n});\n/**\n * Creates a test layer for `Stdio`.\n *\n * **When to use**\n *\n * Use to provide deterministic standard I/O in tests while overriding only the\n * command-line arguments, input stream, or output sinks relevant to the case.\n *\n * **Details**\n *\n * Any provided fields override defaults. By default, arguments are empty,\n * standard output and error are draining sinks, and standard input is an empty\n * stream.\n *\n * @see {@link make} for constructing a `Stdio` service directly without a `Layer` or defaults\n *\n * @category layers\n * @since 4.0.0\n */\nexport const layerTest = impl => Layer.succeed(Stdio, make({\n args: Effect.succeed([]),\n stdout: () => Sink.drain,\n stderr: () => Sink.drain,\n stdin: Stream.empty,\n ...impl\n}));\n//# sourceMappingURL=Stdio.js.map",
47
38
  "import * as Context from \"./Context.js\";\nimport * as Predicate from \"./Predicate.js\";\nimport * as Schema from \"./Schema.js\";\nconst TypeId = \"~effect/platform/Terminal\";\nconst QuitErrorTypeId = \"effect/platform/Terminal/QuitError\";\n/**\n * Represents an error that occurs when a user attempts to\n * quit out of a `Terminal` prompt for input (usually by entering `ctrl`+`c`).\n *\n * **When to use**\n *\n * Use when implementing terminal input or prompts that need to signal\n * user-requested cancellation through the typed error channel.\n *\n * @see {@link isQuitError} for checking unknown errors when handling terminal cancellation\n *\n * @category QuitError\n * @since 4.0.0\n */\nexport class QuitError extends /*#__PURE__*/Schema.ErrorClass(\"QuitError\")({\n _tag: /*#__PURE__*/Schema.tag(\"QuitError\")\n}) {\n /**\n * Marks this value as a terminal quit error for runtime guards.\n *\n * @since 4.0.0\n */\n [QuitErrorTypeId] = QuitErrorTypeId;\n}\n/**\n * Returns `true` if the provided value is a `Terminal.QuitError`.\n *\n * **When to use**\n *\n * Use to narrow unknown failures to `QuitError` when handling terminal input\n * cancellation.\n *\n * **Details**\n *\n * Returns `true` when the value carries the `QuitError` runtime marker and\n * narrows it to `QuitError`.\n *\n * @see {@link QuitError} for the error value produced when terminal input is quit\n *\n * @category guards\n * @since 4.0.0\n */\nexport const isQuitError = u => Predicate.hasProperty(u, QuitErrorTypeId);\n/**\n * Service tag for command-line input and output services.\n *\n * **When to use**\n *\n * Use to access or provide platform terminal capabilities such as reading\n * input, writing output, and inspecting terminal dimensions.\n *\n * @category services\n * @since 4.0.0\n */\nexport const Terminal = /*#__PURE__*/Context.Service(\"effect/platform/Terminal\");\n/**\n * Creates a `Terminal` service implementation.\n *\n * **When to use**\n *\n * Use to construct a custom `Terminal` service implementation from concrete\n * terminal capabilities when writing a platform adapter, test implementation,\n * or custom runtime service.\n *\n * **Details**\n *\n * The implementation object supplies `columns`, `rows`, `readInput`,\n * `readLine`, and `display`; `make` attaches the `Terminal` service marker so\n * the result can be provided through the `Terminal` context service.\n *\n * @category constructors\n * @since 4.0.0\n */\nexport const make = impl => Terminal.of({\n ...impl,\n [TypeId]: TypeId\n});\n//# sourceMappingURL=Terminal.js.map"
48
39
  ],
49
- "mappings": "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EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,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",
50
- "debugId": "EBB01DEDAF4D862B64756E2164756E21",
40
+ "mappings": "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EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAChxB,SAA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",
41
+ "debugId": "527B3455129CB09664756E2164756E21",
51
42
  "names": []
52
43
  }